From 34f6354610821478ee66a1aee09cbfecb5d22226 Mon Sep 17 00:00:00 2001 From: notchum Date: Sun, 6 Jun 2021 19:38:56 -0700 Subject: [PATCH] Refactor of code files. --- Car_Gauge/Car_Gauge.ino | 160 --- .../Adafruit_SH1106.cpp | 879 ------------- .../Adafruit_SH1106-master/Adafruit_SH1106.h | 180 --- Libraries/Adafruit_SH1106-master/LICENSE.txt | 26 - Libraries/Adafruit_SH1106-master/README.md | 16 - .../sh1106_128x64_i2c/sh1106_128x64_i2c.ino | 363 ------ .../sh1106_128x64_spi/sh1106_128x64_spi.ino | 369 ------ .../ArduinoOBD-master/README.md | 73 -- .../bikelogger/bikelogger.ino | 487 ------- .../ArduinoOBD-master/bikelogger/config.h | 39 - .../ArduinoOBD-master/bikelogger/datalogger.h | 257 ---- .../ArduinoOBD-master/bikelogger/images.h | 5 - .../ArduinoOBD-master/datalogger/config.h | 51 - .../ArduinoOBD-master/datalogger/datalogger.h | 212 ---- .../datalogger/datalogger.ino | 446 ------- .../ArduinoOBD-master/esplogger/SH1106.cpp | 781 ------------ .../ArduinoOBD-master/esplogger/SH1106.h | 66 - .../ArduinoOBD-master/esplogger/config.h | 29 - .../ArduinoOBD-master/esplogger/datalogger.h | 275 ---- .../ArduinoOBD-master/esplogger/esplogger.ino | 370 ------ .../ArduinoOBD-master/esplogger/images.h | 5 - .../ArduinoOBD-master/gpslogger/config.h | 25 - .../ArduinoOBD-master/gpslogger/datalogger.h | 257 ---- .../ArduinoOBD-master/gpslogger/gpslogger.ino | 177 --- .../libraries/MicroLCD/MicroLCD.cpp | 657 ---------- .../libraries/MicroLCD/MicroLCD.h | 119 -- .../libraries/MicroLCD/PCD8544.cpp | 316 ----- .../libraries/MicroLCD/PCD8544.h | 117 -- .../libraries/MicroLCD/SH1106.cpp | 413 ------ .../libraries/MicroLCD/SSD1306.cpp | 277 ---- .../libraries/MicroLCD/SSD1306.h | 112 -- .../libraries/MultiLCD/ILI9325D.cpp | 454 ------- .../libraries/MultiLCD/ILI9341.cpp | 526 -------- .../libraries/MultiLCD/MultiLCD.cpp | 46 - .../libraries/MultiLCD/MultiLCD.h | 326 ----- .../libraries/MultiLCD/R61581.cpp | 517 -------- .../libraries/MultiLCD/SSD1289.cpp | 446 ------- .../libraries/MultiLCD/UTFT.cpp | 1129 ----------------- .../libraries/MultiLCD/UTFT.h | 276 ---- .../libraries/MultiLCD/fonts.h | 331 ----- .../libraries/MultiLCD/hardware/arm/HW_ARM.h | 7 - .../MultiLCD/hardware/arm/HW_ARM_defines.h | 45 - .../MultiLCD/hardware/arm/HW_MX20DX256.h | 188 --- .../MultiLCD/hardware/arm/HW_SAM3X8E.h | 242 ---- .../MultiLCD/hardware/avr/HW_ATmega1280.h | 239 ---- .../MultiLCD/hardware/avr/HW_ATmega1284P.h | 190 --- .../MultiLCD/hardware/avr/HW_ATmega328P.h | 171 --- .../MultiLCD/hardware/avr/HW_ATmega32U4.h | 222 ---- .../libraries/MultiLCD/hardware/avr/HW_AVR.h | 4 - .../MultiLCD/hardware/avr/HW_AVR_defines.h | 25 - .../MultiLCD/hardware/pic32/HW_PIC32.h | 7 - .../hardware/pic32/HW_PIC32MX320F128H.h | 174 --- .../hardware/pic32/HW_PIC32MX340F512H.h | 174 --- .../hardware/pic32/HW_PIC32MX795F512L.h | 188 --- .../hardware/pic32/HW_PIC32_defines.h | 26 - .../libraries/MultiLCD/memorysaver.h | 46 - .../libraries/Narcoleptic/Narcoleptic.cpp | 68 - .../libraries/Narcoleptic/Narcoleptic.h | 34 - .../ArduinoOBD-master/libraries/OBD/OBD.cpp | 789 ------------ .../ArduinoOBD-master/libraries/OBD/OBD.h | 243 ---- .../examples/obd_i2c_test/obd_i2c_test.ino | 155 --- .../examples/obd_uart_test/obd_uart_test.ino | 189 --- .../OBD/examples/rpm_led_i2c/rpm_led_i2c.ino | 32 - .../examples/rpm_led_uart/rpm_led_uart.ino | 32 - .../libraries/OBD2UART/OBD2UART.cpp | 654 ---------- .../libraries/OBD2UART/OBD2UART.h | 177 --- .../examples/obd_uart_test/obd_uart_test.ino | 205 --- .../orientation_demo/orientation_demo.ino | 97 -- .../examples/rpm_led_uart/rpm_led_uart.ino | 31 - .../libraries/OBD2UART/keywords.txt | 29 - .../libraries/OBD2UART/library.properties | 9 - .../libraries/SIM800/SIM800.cpp | 322 ----- .../libraries/SIM800/SIM800.h | 86 -- .../SIM800/examples/GPRSTest/GPRSTest.ino | 130 -- .../libraries/TinyGPS/TinyGPS.cpp | 453 ------- .../libraries/TinyGPS/TinyGPS.h | 147 --- .../ArduinoOBD-master/megalogger/README.md | 86 -- .../ArduinoOBD-master/megalogger/config.h | 68 - .../ArduinoOBD-master/megalogger/datalogger.h | 284 ----- .../ArduinoOBD-master/megalogger/images.h | 86 -- .../megalogger/megalogger.cbp | 100 -- .../megalogger/megalogger.ino | 856 ------------- .../ArduinoOBD-master/megaloggerHD/README.md | 3 - .../ArduinoOBD-master/megaloggerHD/config.h | 56 - .../megaloggerHD/datalogger.h | 281 ---- .../ArduinoOBD-master/megaloggerHD/images.h | 86 -- .../megaloggerHD/megaloggerHD.ino | 832 ------------ .../ArduinoOBD-master/nanologger/README.txt | 5 - .../ArduinoOBD-master/nanologger/config.h | 34 - .../ArduinoOBD-master/nanologger/datalogger.h | 403 ------ .../ArduinoOBD-master/nanologger/images.h | 5 - .../nanologger/nanologger.cbp | 327 ----- .../nanologger/nanologger.ino | 360 ------ .../ArduinoOBD-master/nanotimer/README.md | 3 - .../ArduinoOBD-master/nanotimer/config.h | 32 - .../ArduinoOBD-master/nanotimer/datalogger.h | 377 ------ .../ArduinoOBD-master/nanotimer/nanotimer.ino | 405 ------ .../simple_obd_display/simple_obd_display.ino | 110 -- .../ArduinoOBD-master/tester/config.h | 52 - .../ArduinoOBD-master/tester/datalogger.h | 284 ----- .../ArduinoOBD-master/tester/tester.ino | 442 ------- .../utilities/data2kml/README.txt | 4 - .../utilities/data2kml/SampleData.CSV | 1 - .../utilities/data2kml/data2kml.cpp | 461 ------- .../utilities/data2kml/data2kml.vcxproj | 93 -- .../data2kml/data2kml.vcxproj.filters | 30 - .../utilities/data2kml/kmlhead.txt | 159 --- .../utilities/data2kml/logdata.h | 85 -- .../utilities/dataplayer/config.h | 55 - .../utilities/dataplayer/datalogger.h | 340 ----- .../utilities/dataplayer/dataplayer.cbp | 666 ---------- .../utilities/dataplayer/dataplayer.ino | 401 ------ .../MultiLCD-master/MicroLCD/MicroLCD.cpp | 657 ---------- .../MultiLCD-master/MicroLCD/MicroLCD.h | 119 -- .../MultiLCD-master/MicroLCD/PCD8544.cpp | 316 ----- .../MultiLCD-master/MicroLCD/PCD8544.h | 117 -- .../MultiLCD-master/MicroLCD/SH1106.cpp | 413 ------ .../MultiLCD-master/MicroLCD/SSD1306.cpp | 277 ---- .../MultiLCD-master/MicroLCD/SSD1306.h | 112 -- .../MicroLCD/examples/lcdhello/lcdhello.ino | 80 -- .../MultiLCD-master/MultiLCD/ILI9325D.cpp | 454 ------- .../MultiLCD-master/MultiLCD/ILI9341.cpp | 526 -------- .../MultiLCD-master/MultiLCD/MultiLCD.cpp | 46 - .../MultiLCD-master/MultiLCD/MultiLCD.h | 326 ----- .../MultiLCD-master/MultiLCD/R61581.cpp | 517 -------- .../MultiLCD-master/MultiLCD/SSD1289.cpp | 446 ------- .../MultiLCD-master/MultiLCD/UTFT.cpp | 1129 ----------------- .../MultiLCD-master/MultiLCD/UTFT.h | 276 ---- .../examples/AnalogInput/AnalogInput.ino | 54 - .../MultiLCD/examples/SDInfo/SDInfo.ino | 88 -- .../MultiLCD/examples/tfthello/tfthello.ino | 79 -- .../MultiLCD-master/MultiLCD/fonts.h | 331 ----- .../MultiLCD/hardware/arm/HW_ARM.h | 7 - .../MultiLCD/hardware/arm/HW_ARM_defines.h | 45 - .../MultiLCD/hardware/arm/HW_MX20DX256.h | 188 --- .../MultiLCD/hardware/arm/HW_SAM3X8E.h | 242 ---- .../MultiLCD/hardware/avr/HW_ATmega1280.h | 239 ---- .../MultiLCD/hardware/avr/HW_ATmega1284P.h | 190 --- .../MultiLCD/hardware/avr/HW_ATmega328P.h | 171 --- .../MultiLCD/hardware/avr/HW_ATmega32U4.h | 222 ---- .../MultiLCD/hardware/avr/HW_AVR.h | 4 - .../MultiLCD/hardware/avr/HW_AVR_defines.h | 25 - .../MultiLCD/hardware/pic32/HW_PIC32.h | 7 - .../hardware/pic32/HW_PIC32MX320F128H.h | 174 --- .../hardware/pic32/HW_PIC32MX340F512H.h | 174 --- .../hardware/pic32/HW_PIC32MX795F512L.h | 188 --- .../hardware/pic32/HW_PIC32_defines.h | 26 - .../MultiLCD-master/MultiLCD/lcdhello.cbp | 673 ---------- .../MultiLCD-master/MultiLCD/memorysaver.h | 46 - .../MultiLCD-master/MultiLCD/tfthello.cbp | 448 ------- .../MultiLCD-master/MultiLCD-master/README.md | 140 -- .../MultiLCD-master/RGBMatrix/RGBMatrix.c | 573 --------- .../MultiLCD-master/RGBMatrix/RGBMatrix.h | 16 - .../MultiLCD-master/RGBMatrix/draw.c | 486 ------- .../MultiLCD-master/RGBMatrix/draw.h | 14 - .../MultiLCD-master/RGBMatrix/font.c | 48 - OBD_Gauge.ino | 222 ++++ OLED128x64_ada/OLED128x64_ada.ino | 240 ---- OLED128x64_ada/bitmaps.h | 152 --- README.md | 27 + batt_bits.bmp => assets/batt_bits.bmp | Bin coolant_bits.bmp => assets/coolant_bits.bmp | Bin intake.bmp => assets/intake_bits.bmp | Bin beep.bmp => assets/its_okay.bmp | Bin o2_bits.bmp => assets/o2_bits.bmp | Bin oil_bits.bmp => assets/oil_bits.bmp | Bin wywh.bmp => assets/wywh.bmp | Bin Car_Gauge/bitmaps.h => bitmaps.h | 10 +- newGauge/bitmaps.h | 156 --- newGauge/newGauge.ino => ref/reference.ino | 0 simple_obd_display/simple_obd_display.ino | 103 -- 171 files changed, 255 insertions(+), 36676 deletions(-) delete mode 100644 Car_Gauge/Car_Gauge.ino delete mode 100644 Libraries/Adafruit_SH1106-master/Adafruit_SH1106.cpp delete mode 100644 Libraries/Adafruit_SH1106-master/Adafruit_SH1106.h delete mode 100644 Libraries/Adafruit_SH1106-master/LICENSE.txt delete mode 100644 Libraries/Adafruit_SH1106-master/README.md delete mode 100644 Libraries/Adafruit_SH1106-master/examples/sh1106_128x64_i2c/sh1106_128x64_i2c.ino delete mode 100644 Libraries/Adafruit_SH1106-master/examples/sh1106_128x64_spi/sh1106_128x64_spi.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/README.md delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/bikelogger.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/images.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/esplogger.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/images.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/gpslogger.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SH1106.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9325D.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9341.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/R61581.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/SSD1289.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/fonts.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM_defines.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_MX20DX256.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_SAM3X8E.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/avr/HW_ATmega1280.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/avr/HW_ATmega1284P.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/avr/HW_ATmega328P.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/avr/HW_ATmega32U4.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/avr/HW_AVR.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/avr/HW_AVR_defines.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/pic32/HW_PIC32.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/pic32/HW_PIC32MX320F128H.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/pic32/HW_PIC32MX340F512H.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/pic32/HW_PIC32MX795F512L.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/pic32/HW_PIC32_defines.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/memorysaver.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/Narcoleptic/Narcoleptic.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/Narcoleptic/Narcoleptic.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/OBD.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/OBD.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_i2c_test/obd_i2c_test.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_uart_test/obd_uart_test.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_i2c/rpm_led_i2c.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_uart/rpm_led_uart.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/obd_uart_test/obd_uart_test.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/orientation_demo/orientation_demo.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/rpm_led_uart/rpm_led_uart.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/keywords.txt delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/library.properties delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/examples/GPRSTest/GPRSTest.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/README.md delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/images.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.cbp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/README.md delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/images.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/megaloggerHD.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/README.txt delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/images.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.cbp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/README.md delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/nanotimer.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/simple_obd_display/simple_obd_display.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/tester.ino delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/README.txt delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/SampleData.CSV delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.cpp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj.filters delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/kmlhead.txt delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/logdata.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/config.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/datalogger.h delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.cbp delete mode 100644 Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.ino delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SH1106.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/examples/lcdhello/lcdhello.ino delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9325D.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9341.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/R61581.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/SSD1289.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.cpp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/AnalogInput/AnalogInput.ino delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/SDInfo/SDInfo.ino delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/tfthello/tfthello.ino delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/fonts.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM_defines.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_MX20DX256.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_SAM3X8E.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/avr/HW_ATmega1280.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/avr/HW_ATmega1284P.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/avr/HW_ATmega328P.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/avr/HW_ATmega32U4.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/avr/HW_AVR.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/avr/HW_AVR_defines.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/pic32/HW_PIC32.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/pic32/HW_PIC32MX320F128H.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/pic32/HW_PIC32MX340F512H.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/pic32/HW_PIC32MX795F512L.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/pic32/HW_PIC32_defines.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/lcdhello.cbp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/memorysaver.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/tfthello.cbp delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/README.md delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.c delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.c delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.h delete mode 100644 Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/font.c create mode 100644 OBD_Gauge.ino delete mode 100644 OLED128x64_ada/OLED128x64_ada.ino delete mode 100644 OLED128x64_ada/bitmaps.h rename batt_bits.bmp => assets/batt_bits.bmp (100%) rename coolant_bits.bmp => assets/coolant_bits.bmp (100%) rename intake.bmp => assets/intake_bits.bmp (100%) rename beep.bmp => assets/its_okay.bmp (100%) rename o2_bits.bmp => assets/o2_bits.bmp (100%) rename oil_bits.bmp => assets/oil_bits.bmp (100%) rename wywh.bmp => assets/wywh.bmp (100%) rename Car_Gauge/bitmaps.h => bitmaps.h (97%) delete mode 100644 newGauge/bitmaps.h rename newGauge/newGauge.ino => ref/reference.ino (100%) delete mode 100644 simple_obd_display/simple_obd_display.ino diff --git a/Car_Gauge/Car_Gauge.ino b/Car_Gauge/Car_Gauge.ino deleted file mode 100644 index 1fb0fd2..0000000 --- a/Car_Gauge/Car_Gauge.ino +++ /dev/null @@ -1,160 +0,0 @@ -/************************************************************************* -* OBD Data Display -* Works with any Arduino board connected with SH1106 128*64 I2C OLED and -* Freematics OBD-II UART Adapter - https://freematics.com/products -* Author: Morgan Chumbley -*************************************************************************/ - -#include "bitmaps.h" -#define PID_AIR_FUEL_RATIO 0x34 - -int buttonV; - -LCD_SH1106 lcd; // Create display -COBD obd; // Create obd member - -void reconnect(); -void showData(byte pid, int value); -void initScreen(); -void drawIcon(byte pid); -void debounce(); - -void setup() -{ - // initialize button - pinMode(A0, INPUT_PULLUP); - - // Start screen - lcd.begin(); - //Serial.begin(9600); - //Serial.println("Begin"); - - // Draw intro screen - lcd.draw(wywh, 128, 64); - delay(5000); - - // Clear and set font size - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - - // Initialize OBD communitcation - delay(500); - obd.begin(); - - // Print a connecting screen while waiting for connection - lcd.println("\nConnecting..."); - while (!obd.init()); - lcd.clear(); -} - -void loop() -{ - static byte pids[]= {PID_AIR_FUEL_RATIO, PID_BATTERY_VOLTAGE, PID_ENGINE_OIL_TEMP, PID_COOLANT_TEMP, PID_INTAKE_TEMP}; - static byte index = 0; - byte pid = pids[index]; - int value; - char data[130]; - - buttonV = analogRead(A0); - - // While mode button is not pressed - while ( (analogRead(A0) <= 200) || (analogRead(A0) >= 270) ){ - buttonV = analogRead(A0); - drawIcon(pid); - - // send a query to OBD adapter for specified OBD-II pid - if(pid == PID_ENGINE_OIL_TEMP){ - if(obd.sendCommand("2101\r", data, 130)){ - value = ((float)strtol(&data[129],0,16)); - showData(pids[2], value); - } - } - else{ - if (obd.readPID(pid, value)) { - showData(pid, value); - } - } - if (obd.errors >= 2) { - reconnect(); - setup(); - } - } - - // When mode button is pressed - while ( (analogRead(A0) >= 200) && (analogRead(A0) <= 270) ){ - } - - // Increment mode - lcd.clear(); - if(index == (sizeof(pids)-1)) - index = 0; - else - index++; -} - -void reconnect() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; !obd.init(); i++) { - if (i == 5) { - lcd.clear(); - } - delay(3000); - } -} - -void showData(byte pid, int value) -{ - switch (pid) { - case PID_INTAKE_TEMP: - lcd.setCursor(55, 3); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt(value*1.8+32, 3); - break; - case PID_COOLANT_TEMP: - lcd.setCursor(55, 3); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt(value*1.8+32, 3); - break; - case PID_BATTERY_VOLTAGE: - lcd.setCursor(55, 3); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.print((float)value/10, 2); - break; - case PID_ENGINE_OIL_TEMP: - lcd.setCursor(55, 3); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.print((value-40)*1.8+32, 2); - break; - case PID_AIR_FUEL_RATIO: - lcd.setCursor(55, 3); - lcd.setFontSize(10); - lcd.print((float)value*256/32768*14.7, 2); - break; - } -} - -void drawIcon(byte pid){ - - lcd.setCursor(2, 2); - switch (pid) { - case PID_INTAKE_TEMP: - lcd.draw(intake_bits, 32, 32); - break; - case PID_COOLANT_TEMP: - lcd.draw(coolant_bits, 32, 32); - break; - case PID_BATTERY_VOLTAGE: - lcd.draw(batt_bits, 32, 32); - break; - case PID_ENGINE_OIL_TEMP: - lcd.draw(oil_bits, 32, 32); - break; - case PID_AIR_FUEL_RATIO: - lcd.draw(o2_bits, 32, 32); - break; - } -} diff --git a/Libraries/Adafruit_SH1106-master/Adafruit_SH1106.cpp b/Libraries/Adafruit_SH1106-master/Adafruit_SH1106.cpp deleted file mode 100644 index 816cba4..0000000 --- a/Libraries/Adafruit_SH1106-master/Adafruit_SH1106.cpp +++ /dev/null @@ -1,879 +0,0 @@ -/********************************************************************* -This is a library for our Monochrome OLEDs based on SSD1306 drivers - - Pick one up today in the adafruit shop! - ------> http://www.adafruit.com/category/63_98 - -These displays use SPI to communicate, 4 or 5 pins are required to -interface - -Adafruit invests time and resources providing this open source code, -please support Adafruit and open-source hardware by purchasing -products from Adafruit! - -Written by Limor Fried/Ladyada for Adafruit Industries. -BSD license, check license.txt for more information -All text above, and the splash screen below must be included in any redistribution -*********************************************************************/ - -/********************************************************************* -I change the adafruit SSD1306 to SH1106 - -SH1106 driver similar to SSD1306 so, just change the display() method. - -However, SH1106 driver don't provide several functions such as scroll commands. - - -*********************************************************************/ - -#include -#ifndef __SAM3X8E__ - #include -#endif -#include - -#include - -#include "Adafruit_GFX.h" -#include "Adafruit_SH1106.h" - -// the memory buffer for the LCD - -static uint8_t buffer[SH1106_LCDHEIGHT * SH1106_LCDWIDTH / 8] = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, -0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x80, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, -0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xFF, -#if (SH1106_LCDHEIGHT * SH1106_LCDWIDTH > 96*16) -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, -0x80, 0xFF, 0xFF, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x8C, 0x8E, 0x84, 0x00, 0x00, 0x80, 0xF8, -0xF8, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0xE0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xC7, 0x01, 0x01, -0x01, 0x01, 0x83, 0xFF, 0xFF, 0x00, 0x00, 0x7C, 0xFE, 0xC7, 0x01, 0x01, 0x01, 0x01, 0x83, 0xFF, -0xFF, 0xFF, 0x00, 0x38, 0xFE, 0xC7, 0x83, 0x01, 0x01, 0x01, 0x83, 0xC7, 0xFF, 0xFF, 0x00, 0x00, -0x01, 0xFF, 0xFF, 0x01, 0x01, 0x00, 0xFF, 0xFF, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x7F, 0xFF, -0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0xFF, -0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC7, 0xC7, 0x8F, -0x8F, 0x9F, 0xBF, 0xFF, 0xFF, 0xC3, 0xC0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFC, 0xFC, -0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x00, 0x01, 0x03, 0x03, 0x03, -0x03, 0x03, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, -0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, -0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, -0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -#if (SH1106_LCDHEIGHT == 64) -0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x0F, -0x87, 0xC7, 0xF7, 0xFF, 0xFF, 0x1F, 0x1F, 0x3D, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0x7C, 0x7D, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x0F, 0x07, 0x00, 0x30, 0x30, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xC0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x3F, 0x1F, -0x0F, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, -0x00, 0xFC, 0xFE, 0xFC, 0x0C, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0xF0, 0xF8, 0x1C, 0x0E, -0x06, 0x06, 0x06, 0x0C, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFC, -0xFE, 0xFC, 0x00, 0x18, 0x3C, 0x7E, 0x66, 0xE6, 0xCE, 0x84, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0x06, -0x06, 0xFC, 0xFE, 0xFC, 0x0C, 0x06, 0x06, 0x06, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0xC0, 0xF8, -0xFC, 0x4E, 0x46, 0x46, 0x46, 0x4E, 0x7C, 0x78, 0x40, 0x18, 0x3C, 0x76, 0xE6, 0xCE, 0xCC, 0x80, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x0F, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, -0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x03, 0x07, 0x0E, 0x0C, -0x18, 0x18, 0x0C, 0x06, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x01, 0x0F, 0x0E, 0x0C, 0x18, 0x0C, 0x0F, -0x07, 0x01, 0x00, 0x04, 0x0E, 0x0C, 0x18, 0x0C, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, -0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x07, -0x07, 0x0C, 0x0C, 0x18, 0x1C, 0x0C, 0x06, 0x06, 0x00, 0x04, 0x0E, 0x0C, 0x18, 0x0C, 0x0F, 0x07, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#endif -#endif -}; - -#define sh1106_swap(a, b) { int16_t t = a; a = b; b = t; } - -// the most basic function, set a single pixel -void Adafruit_SH1106::drawPixel(int16_t x, int16_t y, uint16_t color) { - if ((x < 0) || (x >= width()) || (y < 0) || (y >= height())) - return; - - // check rotation, move pixel around if necessary - switch (getRotation()) { - case 1: - sh1106_swap(x, y); - x = WIDTH - x - 1; - break; - case 2: - x = WIDTH - x - 1; - y = HEIGHT - y - 1; - break; - case 3: - sh1106_swap(x, y); - y = HEIGHT - y - 1; - break; - } - - // x is which column - switch (color) - { - case WHITE: buffer[x+ (y/8)*SH1106_LCDWIDTH] |= (1 << (y&7)); break; - case BLACK: buffer[x+ (y/8)*SH1106_LCDWIDTH] &= ~(1 << (y&7)); break; - case INVERSE: buffer[x+ (y/8)*SH1106_LCDWIDTH] ^= (1 << (y&7)); break; - } - -} - -Adafruit_SH1106::Adafruit_SH1106(int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS) : Adafruit_GFX(SH1106_LCDWIDTH, SH1106_LCDHEIGHT) { - cs = CS; - rst = RST; - dc = DC; - sclk = SCLK; - sid = SID; - hwSPI = false; -} - -// constructor for hardware SPI - we indicate DataCommand, ChipSelect, Reset -Adafruit_SH1106::Adafruit_SH1106(int8_t DC, int8_t RST, int8_t CS) : Adafruit_GFX(SH1106_LCDWIDTH, SH1106_LCDHEIGHT) { - dc = DC; - rst = RST; - cs = CS; - hwSPI = true; -} - -// initializer for I2C - we only indicate the reset pin! -Adafruit_SH1106::Adafruit_SH1106(int8_t reset) : -Adafruit_GFX(SH1106_LCDWIDTH, SH1106_LCDHEIGHT) { - sclk = dc = cs = sid = -1; - rst = reset; -} - - -void Adafruit_SH1106::begin(uint8_t vccstate, uint8_t i2caddr, bool reset) { - _vccstate = vccstate; - _i2caddr = i2caddr; - - // set pin directions - if (sid != -1){ - pinMode(dc, OUTPUT); - pinMode(cs, OUTPUT); - csport = portOutputRegister(digitalPinToPort(cs)); - cspinmask = digitalPinToBitMask(cs); - dcport = portOutputRegister(digitalPinToPort(dc)); - dcpinmask = digitalPinToBitMask(dc); - if (!hwSPI){ - // set pins for software-SPI - pinMode(sid, OUTPUT); - pinMode(sclk, OUTPUT); - clkport = portOutputRegister(digitalPinToPort(sclk)); - clkpinmask = digitalPinToBitMask(sclk); - mosiport = portOutputRegister(digitalPinToPort(sid)); - mosipinmask = digitalPinToBitMask(sid); - } - if (hwSPI){ - SPI.begin (); -#ifdef __SAM3X8E__ - SPI.setClockDivider (9); // 9.3 MHz -#else - SPI.setClockDivider (SPI_CLOCK_DIV2); // 8 MHz -#endif - } - } - else - { - // I2C Init - Wire.begin(); -#ifdef __SAM3X8E__ - // Force 400 KHz I2C, rawr! (Uses pins 20, 21 for SDA, SCL) - TWI1->TWI_CWGR = 0; - TWI1->TWI_CWGR = ((VARIANT_MCK / (2 * 400000)) - 4) * 0x101; -#endif - } - - if (reset) { - // Setup reset pin direction (used by both SPI and I2C) - pinMode(rst, OUTPUT); - digitalWrite(rst, HIGH); - // VDD (3.3V) goes high at start, lets just chill for a ms - delay(1); - // bring reset low - digitalWrite(rst, LOW); - // wait 10ms - delay(10); - // bring out of reset - digitalWrite(rst, HIGH); - // turn on VCC (9V?) - } - - #if defined SH1106_128_32 - // Init sequence for 128x32 OLED module - SH1106_command(SH1106_DISPLAYOFF); // 0xAE - SH1106_command(SH1106_SETDISPLAYCLOCKDIV); // 0xD5 - SH1106_command(0x80); // the suggested ratio 0x80 - SH1106_command(SH1106_SETMULTIPLEX); // 0xA8 - SH1106_command(0x1F); - SH1106_command(SH1106_SETDISPLAYOFFSET); // 0xD3 - SH1106_command(0x0); // no offset - SH1106_command(SH1106_SETSTARTLINE | 0x0); // line #0 - SH1106_command(SH1106_CHARGEPUMP); // 0x8D - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x10); } - else - { SH1106_command(0x14); } - SH1106_command(SH1106_MEMORYMODE); // 0x20 - SH1106_command(0x00); // 0x0 act like ks0108 - SH1106_command(SH1106_SEGREMAP | 0x1); - SH1106_command(SH1106_COMSCANDEC); - SH1106_command(SH1106_SETCOMPINS); // 0xDA - SH1106_command(0x02); - SH1106_command(SH1106_SETCONTRAST); // 0x81 - SH1106_command(0x8F); - SH1106_command(SH1106_SETPRECHARGE); // 0xd9 - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x22); } - else - { SH1106_command(0xF1); } - SH1106_command(SH1106_SETVCOMDETECT); // 0xDB - SH1106_command(0x40); - SH1106_command(SH1106_DISPLAYALLON_RESUME); // 0xA4 - SH1106_command(SH1106_NORMALDISPLAY); // 0xA6 - #endif - - #if defined SH1106_128_64 - // Init sequence for 128x64 OLED module - SH1106_command(SH1106_DISPLAYOFF); // 0xAE - SH1106_command(SH1106_SETDISPLAYCLOCKDIV); // 0xD5 - SH1106_command(0x80); // the suggested ratio 0x80 - SH1106_command(SH1106_SETMULTIPLEX); // 0xA8 - SH1106_command(0x3F); - SH1106_command(SH1106_SETDISPLAYOFFSET); // 0xD3 - SH1106_command(0x00); // no offset - - SH1106_command(SH1106_SETSTARTLINE | 0x0); // line #0 0x40 - SH1106_command(SH1106_CHARGEPUMP); // 0x8D - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x10); } - else - { SH1106_command(0x14); } - SH1106_command(SH1106_MEMORYMODE); // 0x20 - SH1106_command(0x00); // 0x0 act like ks0108 - SH1106_command(SH1106_SEGREMAP | 0x1); - SH1106_command(SH1106_COMSCANDEC); - SH1106_command(SH1106_SETCOMPINS); // 0xDA - SH1106_command(0x12); - SH1106_command(SH1106_SETCONTRAST); // 0x81 - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x9F); } - else - { SH1106_command(0xCF); } - SH1106_command(SH1106_SETPRECHARGE); // 0xd9 - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x22); } - else - { SH1106_command(0xF1); } - SH1106_command(SH1106_SETVCOMDETECT); // 0xDB - SH1106_command(0x40); - SH1106_command(SH1106_DISPLAYALLON_RESUME); // 0xA4 - SH1106_command(SH1106_NORMALDISPLAY); // 0xA6 - #endif - - #if defined SH1106_96_16 - // Init sequence for 96x16 OLED module - SH1106_command(SH1106_DISPLAYOFF); // 0xAE - SH1106_command(SH1106_SETDISPLAYCLOCKDIV); // 0xD5 - SH1106_command(0x80); // the suggested ratio 0x80 - SH1106_command(SH1106_SETMULTIPLEX); // 0xA8 - SH1106_command(0x0F); - SH1106_command(SH1106_SETDISPLAYOFFSET); // 0xD3 - SH1106_command(0x00); // no offset - SH1106_command(SH1106_SETSTARTLINE | 0x0); // line #0 - SH1106_command(SH1106_CHARGEPUMP); // 0x8D - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x10); } - else - { SH1106_command(0x14); } - SH1106_command(SH1106_MEMORYMODE); // 0x20 - SH1106_command(0x00); // 0x0 act like ks0108 - SH1106_command(SH1106_SEGREMAP | 0x1); - SH1106_command(SH1106_COMSCANDEC); - SH1106_command(SH1106_SETCOMPINS); // 0xDA - SH1106_command(0x2); //ada x12 - SH1106_command(SH1106_SETCONTRAST); // 0x81 - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x10); } - else - { SH1106_command(0xAF); } - SH1106_command(SH1106_SETPRECHARGE); // 0xd9 - if (vccstate == SH1106_EXTERNALVCC) - { SH1106_command(0x22); } - else - { SH1106_command(0xF1); } - SH1106_command(SH1106_SETVCOMDETECT); // 0xDB - SH1106_command(0x40); - SH1106_command(SH1106_DISPLAYALLON_RESUME); // 0xA4 - SH1106_command(SH1106_NORMALDISPLAY); // 0xA6 - #endif - - SH1106_command(SH1106_DISPLAYON);//--turn on oled panel -} - - -void Adafruit_SH1106::invertDisplay(uint8_t i) { - if (i) { - SH1106_command(SH1106_INVERTDISPLAY); - } else { - SH1106_command(SH1106_NORMALDISPLAY); - } -} - -void Adafruit_SH1106::SH1106_command(uint8_t c) { - if (sid != -1) - { - // SPI - //digitalWrite(cs, HIGH); - *csport |= cspinmask; - //digitalWrite(dc, LOW); - *dcport &= ~dcpinmask; - //digitalWrite(cs, LOW); - *csport &= ~cspinmask; - fastSPIwrite(c); - //digitalWrite(cs, HIGH); - *csport |= cspinmask; - } - else - { - // I2C - uint8_t control = 0x00; // Co = 0, D/C = 0 - Wire.beginTransmission(_i2caddr); - WIRE_WRITE(control); - WIRE_WRITE(c); - Wire.endTransmission(); - } - -} - -// startscrollright -// Activate a right handed scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -/*void Adafruit_SH1106::startscrollright(uint8_t start, uint8_t stop){ - SH1106_command(SH1106_RIGHT_HORIZONTAL_SCROLL); - SH1106_command(0X00); - SH1106_command(start); - SH1106_command(0X00); - SH1106_command(stop); - SH1106_command(0X00); - SH1106_command(0XFF); - SH1106_command(SH1106_ACTIVATE_SCROLL); -} - -// startscrollleft -// Activate a right handed scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void Adafruit_SH1106::startscrollleft(uint8_t start, uint8_t stop){ - SH1106_command(SH1106_LEFT_HORIZONTAL_SCROLL); - SH1106_command(0X00); - SH1106_command(start); - SH1106_command(0X00); - SH1106_command(stop); - SH1106_command(0X00); - SH1106_command(0XFF); - SH1106_command(SH1106_ACTIVATE_SCROLL); -} - -// startscrolldiagright -// Activate a diagonal scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void Adafruit_SH1106::startscrolldiagright(uint8_t start, uint8_t stop){ - SH1106_command(SH1106_SET_VERTICAL_SCROLL_AREA); - SH1106_command(0X00); - SH1106_command(SH1106_LCDHEIGHT); - SH1106_command(SH1106_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL); - SH1106_command(0X00); - SH1106_command(start); - SH1106_command(0X00); - SH1106_command(stop); - SH1106_command(0X01); - SH1106_command(SH1106_ACTIVATE_SCROLL); -} - -// startscrolldiagleft -// Activate a diagonal scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void Adafruit_SH1106::startscrolldiagleft(uint8_t start, uint8_t stop){ - SH1106_command(SH1106_SET_VERTICAL_SCROLL_AREA); - SH1106_command(0X00); - SH1106_command(SH1106_LCDHEIGHT); - SH1106_command(SH1106_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL); - SH1106_command(0X00); - SH1106_command(start); - SH1106_command(0X00); - SH1106_command(stop); - SH1106_command(0X01); - SH1106_command(SH1106_ACTIVATE_SCROLL); -} - -void Adafruit_SH1106::stopscroll(void){ - SH1106_command(SH1106_DEACTIVATE_SCROLL); -} - -// Dim the display -// dim = true: display is dimmed -// dim = false: display is normal -void Adafruit_SH1106::dim(boolean dim) { - uint8_t contrast; - - if (dim) { - contrast = 0; // Dimmed display - } else { - if (_vccstate == SH1106_EXTERNALVCC) { - contrast = 0x9F; - } else { - contrast = 0xCF; - } - } - // the range of contrast to too small to be really useful - // it is useful to dim the display - SH1106_command(SH1106_SETCONTRAST); - SH1106_command(contrast); -}*/ - -void Adafruit_SH1106::SH1106_data(uint8_t c) { - - if (sid != -1) - { - // SPI - //digitalWrite(cs, HIGH); - *csport |= cspinmask; - //digitalWrite(dc, HIGH); - *dcport |= dcpinmask; - //digitalWrite(cs, LOW); - *csport &= ~cspinmask; - fastSPIwrite(c); - //digitalWrite(cs, HIGH); - *csport |= cspinmask; - } - else - { - // I2C - uint8_t control = 0x40; // Co = 0, D/C = 1 - Wire.beginTransmission(_i2caddr); - WIRE_WRITE(control); - WIRE_WRITE(c); - Wire.endTransmission(); - } - -} -/*#define SH1106_SETLOWCOLUMN 0x00 -#define SH1106_SETHIGHCOLUMN 0x10 - -#define SH1106_SETSTARTLINE 0x40*/ - -void Adafruit_SH1106::display(void) { - - SH1106_command(SH1106_SETLOWCOLUMN | 0x0); // low col = 0 - SH1106_command(SH1106_SETHIGHCOLUMN | 0x0); // hi col = 0 - SH1106_command(SH1106_SETSTARTLINE | 0x0); // line #0 - - - - - //Serial.println(TWBR, DEC); - //Serial.println(TWSR & 0x3, DEC); - - // I2C - //height >>= 3; - //width >>= 3; - byte height=64; - byte width=132; - byte m_row = 0; - byte m_col = 2; - - - height >>= 3; - width >>= 3; - //Serial.println(width); - - int p = 0; - - byte i, j, k =0; - - if(sid != -1) - { - - for ( i = 0; i < height; i++) { - - // send a bunch of data in one xmission - SH1106_command(0xB0 + i + m_row);//set page address - SH1106_command(m_col & 0xf);//set lower column address - SH1106_command(0x10 | (m_col >> 4));//set higher column address - - for( j = 0; j < 8; j++){ - // SPI - *csport |= cspinmask; - *dcport |= dcpinmask; - *csport &= ~cspinmask; - - for ( k = 0; k < width; k++, p++) { - fastSPIwrite(buffer[p]); - } - *csport |= cspinmask; - } - } - - } - else{ - - // save I2C bitrate - #ifndef __SAM3X8E__ - uint8_t twbrbackup = TWBR; - TWBR = 12; // upgrade to 400KHz! - #endif - - for ( i = 0; i < height; i++) { - - // send a bunch of data in one xmission - SH1106_command(0xB0 + i + m_row);//set page address - SH1106_command(m_col & 0xf);//set lower column address - SH1106_command(0x10 | (m_col >> 4));//set higher column address - - for( j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for ( k = 0; k < width; k++, p++) { - Wire.write(buffer[p]); - } - Wire.endTransmission(); - } - } - - #ifndef __SAM3X8E__ - TWBR = twbrbackup; - #endif - } -} - -/*void Adafruit_SH1106::display(void) { - SH1106_command(SH1106_COLUMNADDR); - SH1106_command(0); // Column start address (0 = reset) - SH1106_command(SH1106_LCDWIDTH-1); // Column end address (127 = reset) - - SH1106_command(SH1106_PAGEADDR); - SH1106_command(0); // Page start address (0 = reset) - #if SH1106_LCDHEIGHT == 64 - SH1106_command(7); // Page end address - #endif - #if SH1106_LCDHEIGHT == 32 - SH1106_command(3); // Page end address - #endif - #if SH1106_LCDHEIGHT == 16 - SH1106_command(1); // Page end address - #endif - - if (sid != -1) - { - // SPI - *csport |= cspinmask; - *dcport |= dcpinmask; - *csport &= ~cspinmask; - - for (uint16_t i=0; i<(SH1106_LCDWIDTH*SH1106_LCDHEIGHT/8); i++) { - fastSPIwrite(buffer[i]); - //SH1106_data(buffer[i]); - } - *csport |= cspinmask; - } - else - { - // save I2C bitrate -#ifndef __SAM3X8E__ - uint8_t twbrbackup = TWBR; - TWBR = 12; // upgrade to 400KHz! -#endif - - //Serial.println(TWBR, DEC); - //Serial.println(TWSR & 0x3, DEC); - - // I2C - int k = 0; - for (uint16_t i=0; i<(SH1106_LCDWIDTH*SH1106_LCDHEIGHT/8); i++) { - // send a bunch of data in one xmission - if(k < 2) - { - k++; - continue; - } - Wire.beginTransmission(_i2caddr); - WIRE_WRITE(0x40); - for (uint8_t x=0; x<16; x++) { - WIRE_WRITE(buffer[i]); - i++; - } - i--; - Wire.endTransmission(); - } -#ifndef __SAM3X8E__ - TWBR = twbrbackup; -#endif - } -} -*/ -// clear everything -void Adafruit_SH1106::clearDisplay(void) { - memset(buffer, 0, (SH1106_LCDWIDTH*SH1106_LCDHEIGHT/8)); -} - - -inline void Adafruit_SH1106::fastSPIwrite(uint8_t d) { - - if(hwSPI) { - (void)SPI.transfer(d); - } else { - for(uint8_t bit = 0x80; bit; bit >>= 1) { - *clkport &= ~clkpinmask; - if(d & bit) *mosiport |= mosipinmask; - else *mosiport &= ~mosipinmask; - *clkport |= clkpinmask; - } - } - //*csport |= cspinmask; -} - -void Adafruit_SH1106::drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color) { - boolean bSwap = false; - switch(rotation) { - case 0: - // 0 degree rotation, do nothing - break; - case 1: - // 90 degree rotation, swap x & y for rotation, then invert x - bSwap = true; - sh1106_swap(x, y); - x = WIDTH - x - 1; - break; - case 2: - // 180 degree rotation, invert x and y - then shift y around for height. - x = WIDTH - x - 1; - y = HEIGHT - y - 1; - x -= (w-1); - break; - case 3: - // 270 degree rotation, swap x & y for rotation, then invert y and adjust y for w (not to become h) - bSwap = true; - sh1106_swap(x, y); - y = HEIGHT - y - 1; - y -= (w-1); - break; - } - - if(bSwap) { - drawFastVLineInternal(x, y, w, color); - } else { - drawFastHLineInternal(x, y, w, color); - } -} - -void Adafruit_SH1106::drawFastHLineInternal(int16_t x, int16_t y, int16_t w, uint16_t color) { - // Do bounds/limit checks - if(y < 0 || y >= HEIGHT) { return; } - - // make sure we don't try to draw below 0 - if(x < 0) { - w += x; - x = 0; - } - - // make sure we don't go off the edge of the display - if( (x + w) > WIDTH) { - w = (WIDTH - x); - } - - // if our width is now negative, punt - if(w <= 0) { return; } - - // set up the pointer for movement through the buffer - register uint8_t *pBuf = buffer; - // adjust the buffer pointer for the current row - pBuf += ((y/8) * SH1106_LCDWIDTH); - // and offset x columns in - pBuf += x; - - register uint8_t mask = 1 << (y&7); - - switch (color) - { - case WHITE: while(w--) { *pBuf++ |= mask; }; break; - case BLACK: mask = ~mask; while(w--) { *pBuf++ &= mask; }; break; - case INVERSE: while(w--) { *pBuf++ ^= mask; }; break; - } -} - -void Adafruit_SH1106::drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color) { - bool bSwap = false; - switch(rotation) { - case 0: - break; - case 1: - // 90 degree rotation, swap x & y for rotation, then invert x and adjust x for h (now to become w) - bSwap = true; - sh1106_swap(x, y); - x = WIDTH - x - 1; - x -= (h-1); - break; - case 2: - // 180 degree rotation, invert x and y - then shift y around for height. - x = WIDTH - x - 1; - y = HEIGHT - y - 1; - y -= (h-1); - break; - case 3: - // 270 degree rotation, swap x & y for rotation, then invert y - bSwap = true; - sh1106_swap(x, y); - y = HEIGHT - y - 1; - break; - } - - if(bSwap) { - drawFastHLineInternal(x, y, h, color); - } else { - drawFastVLineInternal(x, y, h, color); - } -} - - -void Adafruit_SH1106::drawFastVLineInternal(int16_t x, int16_t __y, int16_t __h, uint16_t color) { - - // do nothing if we're off the left or right side of the screen - if(x < 0 || x >= WIDTH) { return; } - - // make sure we don't try to draw below 0 - if(__y < 0) { - // __y is negative, this will subtract enough from __h to account for __y being 0 - __h += __y; - __y = 0; - - } - - // make sure we don't go past the height of the display - if( (__y + __h) > HEIGHT) { - __h = (HEIGHT - __y); - } - - // if our height is now negative, punt - if(__h <= 0) { - return; - } - - // this display doesn't need ints for coordinates, use local byte registers for faster juggling - register uint8_t y = __y; - register uint8_t h = __h; - - - // set up the pointer for fast movement through the buffer - register uint8_t *pBuf = buffer; - // adjust the buffer pointer for the current row - pBuf += ((y/8) * SH1106_LCDWIDTH); - // and offset x columns in - pBuf += x; - - // do the first partial byte, if necessary - this requires some masking - register uint8_t mod = (y&7); - if(mod) { - // mask off the high n bits we want to set - mod = 8-mod; - - // note - lookup table results in a nearly 10% performance improvement in fill* functions - // register uint8_t mask = ~(0xFF >> (mod)); - static uint8_t premask[8] = {0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE }; - register uint8_t mask = premask[mod]; - - // adjust the mask if we're not going to reach the end of this byte - if( h < mod) { - mask &= (0XFF >> (mod-h)); - } - - switch (color) - { - case WHITE: *pBuf |= mask; break; - case BLACK: *pBuf &= ~mask; break; - case INVERSE: *pBuf ^= mask; break; - } - - // fast exit if we're done here! - if(h= 8) { - if (color == INVERSE) { // separate copy of the code so we don't impact performance of the black/white write version with an extra comparison per loop - do { - *pBuf=~(*pBuf); - - // adjust the buffer forward 8 rows worth of data - pBuf += SH1106_LCDWIDTH; - - // adjust h & y (there's got to be a faster way for me to do this, but this should still help a fair bit for now) - h -= 8; - } while(h >= 8); - } - else { - // store a local value to work with - register uint8_t val = (color == WHITE) ? 255 : 0; - - do { - // write our value in - *pBuf = val; - - // adjust the buffer forward 8 rows worth of data - pBuf += SH1106_LCDWIDTH; - - // adjust h & y (there's got to be a faster way for me to do this, but this should still help a fair bit for now) - h -= 8; - } while(h >= 8); - } - } - - // now do the final partial byte, if necessary - if(h) { - mod = h & 7; - // this time we want to mask the low bits of the byte, vs the high bits we did above - // register uint8_t mask = (1 << mod) - 1; - // note - lookup table results in a nearly 10% performance improvement in fill* functions - static uint8_t postmask[8] = {0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; - register uint8_t mask = postmask[mod]; - switch (color) - { - case WHITE: *pBuf |= mask; break; - case BLACK: *pBuf &= ~mask; break; - case INVERSE: *pBuf ^= mask; break; - } - } -} diff --git a/Libraries/Adafruit_SH1106-master/Adafruit_SH1106.h b/Libraries/Adafruit_SH1106-master/Adafruit_SH1106.h deleted file mode 100644 index 5640c25..0000000 --- a/Libraries/Adafruit_SH1106-master/Adafruit_SH1106.h +++ /dev/null @@ -1,180 +0,0 @@ -/********************************************************************* -This is a library for our Monochrome OLEDs based on SSD1306 drivers - - Pick one up today in the adafruit shop! - ------> http://www.adafruit.com/category/63_98 - -These displays use SPI to communicate, 4 or 5 pins are required to -interface - -Adafruit invests time and resources providing this open source code, -please support Adafruit and open-source hardware by purchasing -products from Adafruit! - -Written by Limor Fried/Ladyada for Adafruit Industries. -BSD license, check license.txt for more information -All text above, and the splash screen must be included in any redistribution -*********************************************************************/ - -/********************************************************************* -I change the adafruit SSD1306 to SH1106 - -SH1106 driver similar to SSD1306 so, just change the display() method. - -However, SH1106 driver don't provide several functions such as scroll commands. - - -*********************************************************************/ - -#if ARDUINO >= 100 - #include "Arduino.h" - #define WIRE_WRITE Wire.write -#else - #include "WProgram.h" - #define WIRE_WRITE Wire.send -#endif - -#ifdef __SAM3X8E__ - typedef volatile RwReg PortReg; - typedef uint32_t PortMask; -#else - typedef volatile uint8_t PortReg; - typedef uint8_t PortMask; -#endif - -#include -#include - -#define BLACK 0 -#define WHITE 1 -#define INVERSE 2 - -#define SH1106_I2C_ADDRESS 0x3C // 011110+SA0+RW - 0x3C or 0x3D -// Address for 128x32 is 0x3C -// Address for 128x64 is 0x3D (default) or 0x3C (if SA0 is grounded) - -/*========================================================================= - SH1106 Displays - ----------------------------------------------------------------------- - The driver is used in multiple displays (128x64, 128x32, etc.). - Select the appropriate display below to create an appropriately - sized framebuffer, etc. - - SH1106_128_64 128x64 pixel display - - SH1106_128_32 128x32 pixel display - - SH1106_96_16 - - -----------------------------------------------------------------------*/ - #define SH1106_128_64 -// #define SH1106_128_32 -// #define SH1106_96_16 -/*=========================================================================*/ - -#if defined SH1106_128_64 && defined SH1106_128_32 - #error "Only one SH1106 display can be specified at once in SH1106.h" -#endif -#if !defined SH1106_128_64 && !defined SH1106_128_32 && !defined SH1106_96_16 - #error "At least one SH1106 display must be specified in SH1106.h" -#endif - -#if defined SH1106_128_64 - #define SH1106_LCDWIDTH 128 - #define SH1106_LCDHEIGHT 64 -#endif -#if defined SH1106_128_32 - #define SH1106_LCDWIDTH 128 - #define SH1106_LCDHEIGHT 32 -#endif -#if defined SH1106_96_16 - #define SH1106_LCDWIDTH 96 - #define SH1106_LCDHEIGHT 16 -#endif - -#define SH1106_SETCONTRAST 0x81 -#define SH1106_DISPLAYALLON_RESUME 0xA4 -#define SH1106_DISPLAYALLON 0xA5 -#define SH1106_NORMALDISPLAY 0xA6 -#define SH1106_INVERTDISPLAY 0xA7 -#define SH1106_DISPLAYOFF 0xAE -#define SH1106_DISPLAYON 0xAF - -#define SH1106_SETDISPLAYOFFSET 0xD3 -#define SH1106_SETCOMPINS 0xDA - -#define SH1106_SETVCOMDETECT 0xDB - -#define SH1106_SETDISPLAYCLOCKDIV 0xD5 -#define SH1106_SETPRECHARGE 0xD9 - -#define SH1106_SETMULTIPLEX 0xA8 - -#define SH1106_SETLOWCOLUMN 0x00 -#define SH1106_SETHIGHCOLUMN 0x10 - -#define SH1106_SETSTARTLINE 0x40 - -#define SH1106_MEMORYMODE 0x20 -#define SH1106_COLUMNADDR 0x21 -#define SH1106_PAGEADDR 0x22 - -#define SH1106_COMSCANINC 0xC0 -#define SH1106_COMSCANDEC 0xC8 - -#define SH1106_SEGREMAP 0xA0 - -#define SH1106_CHARGEPUMP 0x8D - -#define SH1106_EXTERNALVCC 0x1 -#define SH1106_SWITCHCAPVCC 0x2 - -// Scrolling #defines -#define SH1106_ACTIVATE_SCROLL 0x2F -#define SH1106_DEACTIVATE_SCROLL 0x2E -#define SH1106_SET_VERTICAL_SCROLL_AREA 0xA3 -#define SH1106_RIGHT_HORIZONTAL_SCROLL 0x26 -#define SH1106_LEFT_HORIZONTAL_SCROLL 0x27 -#define SH1106_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29 -#define SH1106_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A - -class Adafruit_SH1106 : public Adafruit_GFX { - public: - Adafruit_SH1106(int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS); - Adafruit_SH1106(int8_t DC, int8_t RST, int8_t CS); - Adafruit_SH1106(int8_t RST); - - void begin(uint8_t switchvcc = SH1106_SWITCHCAPVCC, uint8_t i2caddr = SH1106_I2C_ADDRESS, bool reset=true); - void SH1106_command(uint8_t c); - void SH1106_data(uint8_t c); - - void clearDisplay(void); - void invertDisplay(uint8_t i); - void display(); - - /*void startscrollright(uint8_t start, uint8_t stop); - void startscrollleft(uint8_t start, uint8_t stop); - - void startscrolldiagright(uint8_t start, uint8_t stop); - void startscrolldiagleft(uint8_t start, uint8_t stop); - void stopscroll(void); */ - - void dim(uint8_t contrast); - - void drawPixel(int16_t x, int16_t y, uint16_t color); - - virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color); - virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); - - private: - int8_t _i2caddr, _vccstate, sid, sclk, dc, rst, cs; - void fastSPIwrite(uint8_t c); - - boolean hwSPI; - PortReg *mosiport, *clkport, *csport, *dcport; - PortMask mosipinmask, clkpinmask, cspinmask, dcpinmask; - - inline void drawFastVLineInternal(int16_t x, int16_t y, int16_t h, uint16_t color) __attribute__((always_inline)); - inline void drawFastHLineInternal(int16_t x, int16_t y, int16_t w, uint16_t color) __attribute__((always_inline)); - -}; diff --git a/Libraries/Adafruit_SH1106-master/LICENSE.txt b/Libraries/Adafruit_SH1106-master/LICENSE.txt deleted file mode 100644 index f6a0f22..0000000 --- a/Libraries/Adafruit_SH1106-master/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -Software License Agreement (BSD License) - -Copyright (c) 2012, Adafruit Industries -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -3. Neither the name of the copyright holders nor the -names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Libraries/Adafruit_SH1106-master/README.md b/Libraries/Adafruit_SH1106-master/README.md deleted file mode 100644 index c457a3c..0000000 --- a/Libraries/Adafruit_SH1106-master/README.md +++ /dev/null @@ -1,16 +0,0 @@ -Adafruit_SH1106 -=============== - -Adafruit graphic library for SH1106 driver lcds. - -some small oled lcd use SH1106 driver. - -I change the adafruit SSD1306 to SH1106 - -SH1106 driver similar to SSD1306. thus, just change the display() method. - -However, SH1106 driver don't provide several functions such as scroll commands. - - - Adafruit-GFX-Library - https://github.com/adafruit/Adafruit-GFX-Library diff --git a/Libraries/Adafruit_SH1106-master/examples/sh1106_128x64_i2c/sh1106_128x64_i2c.ino b/Libraries/Adafruit_SH1106-master/examples/sh1106_128x64_i2c/sh1106_128x64_i2c.ino deleted file mode 100644 index 2b2c903..0000000 --- a/Libraries/Adafruit_SH1106-master/examples/sh1106_128x64_i2c/sh1106_128x64_i2c.ino +++ /dev/null @@ -1,363 +0,0 @@ -/********************************************************************* -This is an example for our Monochrome OLEDs based on SSD1306 drivers - - Pick one up today in the adafruit shop! - ------> http://www.adafruit.com/category/63_98 - -This example is for a 128x64 size display using I2C to communicate -3 pins are required to interface (2 I2C and one reset) - -Adafruit invests time and resources providing this open source code, -please support Adafruit and open-source hardware by purchasing -products from Adafruit! - -Written by Limor Fried/Ladyada for Adafruit Industries. -BSD license, check license.txt for more information -All text above, and the splash screen must be included in any redistribution -*********************************************************************/ - -/********************************************************************* -I change the adafruit SSD1306 to SH1106 - -SH1106 driver don't provide several functions such as scroll commands. - -*********************************************************************/ - -#include -#include -#include -#include - -#define OLED_RESET 4 -Adafruit_SH1106 display(OLED_RESET); - -#define NUMFLAKES 10 -#define XPOS 0 -#define YPOS 1 -#define DELTAY 2 - - -#define LOGO16_GLCD_HEIGHT 16 -#define LOGO16_GLCD_WIDTH 16 -static const unsigned char PROGMEM logo16_glcd_bmp[] = -{ B00000000, B11000000, - B00000001, B11000000, - B00000001, B11000000, - B00000011, B11100000, - B11110011, B11100000, - B11111110, B11111000, - B01111110, B11111111, - B00110011, B10011111, - B00011111, B11111100, - B00001101, B01110000, - B00011011, B10100000, - B00111111, B11100000, - B00111111, B11110000, - B01111100, B11110000, - B01110000, B01110000, - B00000000, B00110000 }; - -#if (SH1106_LCDHEIGHT != 64) -#error("Height incorrect, please fix Adafruit_SH1106.h!"); -#endif - -void setup() { - Serial.begin(9600); - - // by default, we'll generate the high voltage from the 3.3v line internally! (neat!) - display.begin(SH1106_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64) - // init done - - // Show image buffer on the display hardware. - // Since the buffer is intialized with an Adafruit splashscreen - // internally, this will display the splashscreen. - display.display(); - delay(2000); - - // Clear the buffer. - display.clearDisplay(); - - // draw a single pixel - display.drawPixel(10, 10, WHITE); - // Show the display buffer on the hardware. - // NOTE: You _must_ call display after making any drawing commands - // to make them visible on the display hardware! - display.display(); - delay(2000); - display.clearDisplay(); - - // draw many lines - testdrawline(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw rectangles - testdrawrect(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw multiple rectangles - testfillrect(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw mulitple circles - testdrawcircle(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw a white circle, 10 pixel radius - display.fillCircle(display.width()/2, display.height()/2, 10, WHITE); - display.display(); - delay(2000); - display.clearDisplay(); - - testdrawroundrect(); - delay(2000); - display.clearDisplay(); - - testfillroundrect(); - delay(2000); - display.clearDisplay(); - - testdrawtriangle(); - delay(2000); - display.clearDisplay(); - - testfilltriangle(); - delay(2000); - display.clearDisplay(); - - // draw the first ~12 characters in the font - testdrawchar(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw scrolling text - /* testscrolltext(); - delay(2000); - display.clearDisplay();*/ - - // text display tests - display.setTextSize(1); - display.setTextColor(WHITE); - display.setCursor(0,0); - display.println("Hello, world!"); - display.setTextColor(BLACK, WHITE); // 'inverted' text - display.println(3.141592); - display.setTextSize(2); - display.setTextColor(WHITE); - display.print("0x"); display.println(0xDEADBEEF, HEX); - display.display(); - delay(2000); - - // miniature bitmap display - display.clearDisplay(); - display.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1); - display.display(); - - // invert the display - display.invertDisplay(true); - delay(1000); - display.invertDisplay(false); - delay(1000); - - // draw a bitmap icon and 'animate' movement - testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH); -} - - -void loop() { - -} - - -void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) { - uint8_t icons[NUMFLAKES][3]; - - // initialize - for (uint8_t f=0; f< NUMFLAKES; f++) { - icons[f][XPOS] = random(display.width()); - icons[f][YPOS] = 0; - icons[f][DELTAY] = random(5) + 1; - - Serial.print("x: "); - Serial.print(icons[f][XPOS], DEC); - Serial.print(" y: "); - Serial.print(icons[f][YPOS], DEC); - Serial.print(" dy: "); - Serial.println(icons[f][DELTAY], DEC); - } - - while (1) { - // draw each icon - for (uint8_t f=0; f< NUMFLAKES; f++) { - display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, WHITE); - } - display.display(); - delay(200); - - // then erase it + move it - for (uint8_t f=0; f< NUMFLAKES; f++) { - display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK); - // move it - icons[f][YPOS] += icons[f][DELTAY]; - // if its gone, reinit - if (icons[f][YPOS] > display.height()) { - icons[f][XPOS] = random(display.width()); - icons[f][YPOS] = 0; - icons[f][DELTAY] = random(5) + 1; - } - } - } -} - - -void testdrawchar(void) { - display.setTextSize(1); - display.setTextColor(WHITE); - display.setCursor(0,0); - - for (uint8_t i=0; i < 168; i++) { - if (i == '\n') continue; - display.write(i); - if ((i > 0) && (i % 21 == 0)) - display.println(); - } - display.display(); -} - -void testdrawcircle(void) { - for (int16_t i=0; i0; i-=5) { - display.fillTriangle(display.width()/2, display.height()/2-i, - display.width()/2-i, display.height()/2+i, - display.width()/2+i, display.height()/2+i, WHITE); - if (color == WHITE) color = BLACK; - else color = WHITE; - display.display(); - } -} - -void testdrawroundrect(void) { - for (int16_t i=0; i=0; i-=4) { - display.drawLine(0, display.height()-1, display.width()-1, i, WHITE); - display.display(); - } - delay(250); - - display.clearDisplay(); - for (int16_t i=display.width()-1; i>=0; i-=4) { - display.drawLine(display.width()-1, display.height()-1, i, 0, WHITE); - display.display(); - } - for (int16_t i=display.height()-1; i>=0; i-=4) { - display.drawLine(display.width()-1, display.height()-1, 0, i, WHITE); - display.display(); - } - delay(250); - - display.clearDisplay(); - for (int16_t i=0; i http://www.adafruit.com/category/63_98 - -This example is for a 128x64 size display using SPI to communicate -4 or 5 pins are required to interface - -Adafruit invests time and resources providing this open source code, -please support Adafruit and open-source hardware by purchasing -products from Adafruit! - -Written by Limor Fried/Ladyada for Adafruit Industries. -BSD license, check license.txt for more information -All text above, and the splash screen must be included in any redistribution -*********************************************************************/ - -#include -#include -#include -#include - -// If using software SPI (the default case): -#define OLED_MOSI 9 -#define OLED_CLK 10 -#define OLED_DC 11 -#define OLED_CS 12 -#define OLED_RESET 13 -Adafruit_SH1106 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); - -/* Uncomment this block to use hardware SPI -#define OLED_DC 6 -#define OLED_CS 7 -#define OLED_RESET 8 -Adafruit_SH1106 display(OLED_DC, OLED_RESET, OLED_CS); -*/ - -#define NUMFLAKES 10 -#define XPOS 0 -#define YPOS 1 -#define DELTAY 2 - -#define LOGO16_GLCD_HEIGHT 16 -#define LOGO16_GLCD_WIDTH 16 -static const unsigned char PROGMEM logo16_glcd_bmp[] = -{ B00000000, B11000000, - B00000001, B11000000, - B00000001, B11000000, - B00000011, B11100000, - B11110011, B11100000, - B11111110, B11111000, - B01111110, B11111111, - B00110011, B10011111, - B00011111, B11111100, - B00001101, B01110000, - B00011011, B10100000, - B00111111, B11100000, - B00111111, B11110000, - B01111100, B11110000, - B01110000, B01110000, - B00000000, B00110000 }; - -#if (SH1106_LCDHEIGHT != 64) -#error("Height incorrect, please fix Adafruit_SH1106.h!"); -#endif - -void setup() { - Serial.begin(9600); - - // by default, we'll generate the high voltage from the 3.3v line internally! (neat!) - display.begin(SH1106_SWITCHCAPVCC); - // init done - - // Show image buffer on the display hardware. - // Since the buffer is intialized with an Adafruit splashscreen - // internally, this will display the splashscreen. - display.display(); - delay(2000); - - // Clear the buffer. - display.clearDisplay(); - - // draw a single pixel - display.drawPixel(10, 10, WHITE); - // Show the display buffer on the hardware. - // NOTE: You _must_ call display after making any drawing commands - // to make them visible on the display hardware! - display.display(); - delay(2000); - display.clearDisplay(); - - // draw many lines - testdrawline(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw rectangles - testdrawrect(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw multiple rectangles - testfillrect(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw mulitple circles - testdrawcircle(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw a white circle, 10 pixel radius - display.fillCircle(display.width()/2, display.height()/2, 10, WHITE); - display.display(); - delay(2000); - display.clearDisplay(); - - testdrawroundrect(); - delay(2000); - display.clearDisplay(); - - testfillroundrect(); - delay(2000); - display.clearDisplay(); - - testdrawtriangle(); - delay(2000); - display.clearDisplay(); - - testfilltriangle(); - delay(2000); - display.clearDisplay(); - - // draw the first ~12 characters in the font - testdrawchar(); - display.display(); - delay(2000); - display.clearDisplay(); - - // draw scrolling text - /*testscrolltext(); - delay(2000); - display.clearDisplay();*/ - - // text display tests - display.setTextSize(1); - display.setTextColor(WHITE); - display.setCursor(0,0); - display.println("Hello, world!"); - display.setTextColor(BLACK, WHITE); // 'inverted' text - display.println(3.141592); - display.setTextSize(2); - display.setTextColor(WHITE); - display.print("0x"); display.println(0xDEADBEEF, HEX); - display.display(); - delay(2000); - - // miniature bitmap display - display.clearDisplay(); - display.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1); - display.display(); - - // invert the display - display.invertDisplay(true); - delay(1000); - display.invertDisplay(false); - delay(1000); - - // draw a bitmap icon and 'animate' movement - testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH); -} - - -void loop() { - -} - - -void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) { - uint8_t icons[NUMFLAKES][3]; - - // initialize - for (uint8_t f=0; f< NUMFLAKES; f++) { - icons[f][XPOS] = random(display.width()); - icons[f][YPOS] = 0; - icons[f][DELTAY] = random(5) + 1; - - Serial.print("x: "); - Serial.print(icons[f][XPOS], DEC); - Serial.print(" y: "); - Serial.print(icons[f][YPOS], DEC); - Serial.print(" dy: "); - Serial.println(icons[f][DELTAY], DEC); - } - - while (1) { - // draw each icon - for (uint8_t f=0; f< NUMFLAKES; f++) { - display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, WHITE); - } - display.display(); - delay(200); - - // then erase it + move it - for (uint8_t f=0; f< NUMFLAKES; f++) { - display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK); - // move it - icons[f][YPOS] += icons[f][DELTAY]; - // if its gone, reinit - if (icons[f][YPOS] > display.height()) { - icons[f][XPOS] = random(display.width()); - icons[f][YPOS] = 0; - icons[f][DELTAY] = random(5) + 1; - } - } - } -} - - -void testdrawchar(void) { - display.setTextSize(1); - display.setTextColor(WHITE); - display.setCursor(0,0); - - for (uint8_t i=0; i < 168; i++) { - if (i == '\n') continue; - display.write(i); - if ((i > 0) && (i % 21 == 0)) - display.println(); - } - display.display(); -} - -void testdrawcircle(void) { - for (int16_t i=0; i0; i-=5) { - display.fillTriangle(display.width()/2, display.height()/2-i, - display.width()/2-i, display.height()/2+i, - display.width()/2+i, display.height()/2+i, WHITE); - if (color == WHITE) color = BLACK; - else color = WHITE; - display.display(); - } -} - -void testdrawroundrect(void) { - for (int16_t i=0; i=0; i-=4) { - display.drawLine(0, display.height()-1, display.width()-1, i, WHITE); - display.display(); - } - delay(250); - - display.clearDisplay(); - for (int16_t i=display.width()-1; i>=0; i-=4) { - display.drawLine(display.width()-1, display.height()-1, i, 0, WHITE); - display.display(); - } - for (int16_t i=display.height()-1; i>=0; i-=4) { - display.drawLine(display.width()-1, display.height()-1, 0, i, WHITE); - display.display(); - } - delay(250); - - display.clearDisplay(); - for (int16_t i=0; i -#include -#include -#include -#include -#include "config.h" -#if USE_SOFTSERIAL -#include -#endif -#include "datalogger.h" - -#define DISPLAY_MODES 1 - -uint32_t start; -uint32_t distance = 0; -int speed = 0; -byte sat = 0; -uint32_t records = 0; -char heading[2]; -bool acc = false; - -float curLat = 0; -float curLon = 0; -int16_t alt = 0; -int16_t startAlt = 32767; -long lastLat = 0; -long lastLon = 0; -uint32_t time; - - -#if USE_MPU6050 -#include -#include -#endif - -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) -#define GPSUART Serial2 -#elif defined(__AVR_ATmega644P__) -#define GPSUART Serial1 -#else -#define GPSUART Serial -#endif - -#define PMTK_SET_NMEA_UPDATE_10HZ "$PMTK220,100*2F" - -TinyGPS gps; - -CDataLogger logger; - -void initScreen(); - -#if USE_MPU6050 -bool initACC() -{ - if (MPU6050_init() != 0) - return false; - return true; - -} -void processACC() -{ - accel_t_gyro_union data; - MPU6050_readout(&data); - logger.dataTime = millis(); - // log x/y/z of accelerometer - logger.logData(PID_ACC, data.value.x_accel, data.value.y_accel, data.value.z_accel); - // log x/y/z of gyro meter - logger.logData(PID_GYRO, data.value.x_gyro, data.value.y_gyro, data.value.z_gyro); -} -#endif - -void processGPS() -{ - static uint32_t lastTime = 0; - - // parsed GPS data is ready - logger.dataTime = millis(); - - uint32_t date; - gps.get_datetime(&date, &time, 0); - logger.logData(PID_GPS_TIME, (int32_t)time); - - speed = (int)(gps.speed() * 1852 / 100); - if (speed < 1000) speed = 0; - logger.logData(PID_GPS_SPEED, speed); - - /* - if (sat >= 3 && gps.satellites() < 3) { - initScreen(); - } - */ - - sat = gps.satellites(); - if (sat > 100) sat = 0; - - long lat, lon; - gps.get_position(&lat, &lon, 0); - curLat = (float)lat / 100000; - curLon = (float)lon / 100000; - logger.logData(PID_GPS_LATITUDE, lat); - logger.logData(PID_GPS_LONGITUDE, lon); - - if (logger.dataTime - lastTime >= 3000 && speed > 0) { - if (lastLat == 0) lastLat = lat; - if (lastLon == 0) lastLon = lon; - - int16_t latDiff = lat - lastLat; - int16_t lonDiff = lon - lastLon; - - uint16_t d = latDiff * latDiff + lonDiff * lonDiff; - if (d >= 100) { - distance += sqrt(d); - lastLat = lat; - lastLon = lon; - - if (latDiff > 0) { - heading[0] = 'N'; - } else if (latDiff < 0) { - heading[0] = 'S'; - } else { - heading[0] = ' '; - } - if (lonDiff > 0) { - heading[1] = 'E'; - } else if (lonDiff < 0) { - heading[1] = 'W'; - } else { - heading[1] = ' '; - } - } - lastTime = logger.dataTime; - -#if ENABLE_DATA_LOG - // flush file every several seconds - logger.flushFile(); -#endif - } - - alt = gps.altitude() / 100; - if (alt > -10000 && alt < 10000) { - logger.logData(PID_GPS_ALTITUDE, alt); - if (sat > 5 && startAlt == 32767) { - // save start altitude - startAlt = alt; - } - } else { - alt = 0; - } - - records++; -} - -bool CheckSD() -{ - Sd2Card card; - SdVolume volume; - - pinMode(SS, OUTPUT); - if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) { - const char* type; - char buf[20]; - - switch(card.type()) { - case SD_CARD_TYPE_SD1: - type = "SD1"; - break; - case SD_CARD_TYPE_SD2: - type = "SD2"; - break; - case SD_CARD_TYPE_SDHC: - type = "SDHC"; - break; - default: - type = "SDx"; - } - - lcd.print(type); - lcd.write(' '); - if (!volume.init(card)) { - lcd.println("No FAT!"); - return false; - } - - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - lcd.print((int)((volumesize + 511) / 1000)); - lcd.println("GB"); - } else { - lcd.println("SD Error"); - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - lcd.println("Bad SD"); - return false; - } - return true; -} - -void initScreen() -{ - lcd.clear(); - lcd.setColor(RGB16_CYAN); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(32, 0); - lcd.print("Speed"); - lcd.setCursor(120, 0); - lcd.print("Distance"); - lcd.setCursor(32, 8); - lcd.print("Watts"); - lcd.setCursor(120, 8); - lcd.print("Calories"); - lcd.setCursor(40, 16); - lcd.print("Time"); - lcd.setCursor(150, 16); - lcd.print("RPM"); - lcd.setCursor(20, 24); - lcd.print("Altitude"); - lcd.setCursor(120, 24); - lcd.print("Alt Gained"); - - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(76, 5); - lcd.print("km/h"); - lcd.setCursor(180, 5); - lcd.print("km"); - lcd.setCursor(72, 28); - lcd.print('m'); - lcd.setCursor(192, 28); - lcd.print('m'); - - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(240, 0); - lcd.println("UTC:"); - lcd.setCursor(240, 2); - lcd.println("LAT:"); - lcd.setCursor(240, 4); - lcd.println("LON:"); - lcd.setCursor(240, 6); - lcd.println("ALT:"); - lcd.setCursor(240, 8); - lcd.println("SAT:"); - lcd.setCursor(240, 10); - lcd.println("PTS:"); - lcd.setCursor(240, 12); - lcd.println("KBs:"); -} - -#if USE_MPU6050 -void displayMPU6050() -{ - accel_t_gyro_union data; - char buf[8]; - MPU6050_readout(&data); - - int temp = (data.value.temperature + 12412) / 340; - sprintf(buf, "TEMP%3dC", temp); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(80, 2); - lcd.print(buf); - - sprintf(buf, "AX%3d", data.value.x_accel / 160); - lcd.setCursor(98, 3); - lcd.print(buf); - sprintf(buf, "AY%3d", data.value.y_accel / 160); - lcd.setCursor(98, 4); - lcd.print(buf); - sprintf(buf, "AZ%3d", data.value.z_accel / 160); - lcd.setCursor(98, 5); - lcd.print(buf); - - sprintf(buf, "GX%3d", data.value.x_gyro / 256); - lcd.setCursor(64, 3); - lcd.print(buf); - sprintf(buf, "GY%3d", data.value.y_gyro / 256); - lcd.setCursor(64, 4); - lcd.print(buf); - sprintf(buf, "GZ%3d", data.value.z_gyro / 256); - lcd.setCursor(64, 5); - lcd.print(buf); -} -#endif - -void setup() -{ - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(RGB16_YELLOW); - lcd.println("Freematics GPS Logger/Meter"); - lcd.setColor(RGB16_WHITE); - lcd.println("\r\nInitializing..."); - -#if ENABLE_DATA_LOG - CheckSD(); - - int index = logger.openFile(); - lcd.print("File: "); - lcd.println(index); -#endif // ENABLE_DATA_LOG - -#if USE_MPU6050 - Wire.begin(); - acc = initACC(); - - lcd.print("ACC:"); - lcd.println(acc ? "YES" : "NO"); -#endif - - logger.initSender(); - - GPSUART.begin(GPS_BAUDRATE); - delay(1000); - - if (GPSUART.available()) { - // init GPS - lcd.println("GPS:"); - byte n = 0xff; - uint32_t tm = 0; - start = millis(); - char progress[] = {'-', '/', '|', '\\'}; - do { - if (!GPSUART.available()) continue; - if (n == 0xff) { - lcd.print("YES"); - lcd.setCursor(0, 10); - lcd.print("SAT "); - n = 0; - } - char c = GPSUART.read(); - - if (sat == 0 && millis() - tm > 100) { - lcd.setCursor(32, 12); - lcd.write(progress[n]); - n = (n + 1) % 4; - tm = millis(); - } - - if (!gps.encode(c)) continue; - sat = gps.satellites(); - if (sat > 100) sat = 0; - lcd.setCursor(32, 12); - lcd.printInt(sat); - } while (sat < 3 && millis() - start < 30000); - } else { - lcd.println("No GPS"); - } - delay(1000); - - //GPSUART.println(PMTK_SET_NMEA_UPDATE_10HZ); - - - initScreen(); - - start = millis(); -} - -void displayTimeSpeedDistance() -{ - uint32_t elapsed = millis() - start; - uint16_t n; - - // display elapsed time (mm:ss:mm) - lcd.setColor(RGB16_WHITE); - lcd.setFontSize(FONT_SIZE_XLARGE); - n = elapsed / 60000; - lcd.setCursor(0, 18); - lcd.printInt(n, 2); - lcd.write(':'); - elapsed -= n * 60000; - lcd.setFlags(FLAG_PAD_ZERO); - lcd.printInt(n = elapsed / 1000, 2); - lcd.write('.'); - elapsed -= n * 1000; - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.write(elapsed / 100 + '0'); - //if (sat < 3) return; - - - lcd.setFlags(0); - lcd.setColor(RGB16_WHITE); - lcd.setFontSize(FONT_SIZE_XLARGE); - - // display RPM - lcd.setCursor(120, 18); - lcd.printInt(120, 4); - - // display speed - n = speed / 1000; - lcd.setCursor(0, 3); - lcd.printInt(n, 3); - n = speed - n * 1000; - lcd.write('.'); - lcd.write(n / 100 + '0'); - - // display distance - lcd.setCursor(100, 3); - lcd.printInt(n = distance / 1000, 3); - n = distance - n * 1000; - lcd.write('.'); - lcd.write(n / 100 + '0'); - - // display watts - lcd.setCursor(0, 10); - lcd.printInt(123, 4); - lcd.setCursor(120, 10); - lcd.printInt(234, 4); - - // display altitude - lcd.setCursor(0, 26); - if (alt >= 0) { - lcd.printInt(alt, 4); - } else { - lcd.print(" -"); - lcd.printInt(-alt, 3); - } - - lcd.setCursor(120, 26); - if (startAlt != 32767) { - if (alt >= startAlt) { - lcd.printInt(alt - startAlt, 4); - } else { - lcd.print(" -"); - lcd.printInt(startAlt - alt, 3); - } - } else { - lcd.printInt(0, 4); - } -} - -void displayExtraInfo() -{ - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setColor(RGB16_WHITE); - lcd.setCursor(0, 0); - lcd.write(heading[0]); - lcd.write(heading[1]); - - lcd.setFlags(0); - lcd.setCursor(266, 0); - lcd.print(time); - lcd.setCursor(266, 2); - lcd.print(curLat, 5); - lcd.setCursor(266, 4); - lcd.print(curLon, 5); - lcd.setCursor(266, 6); - lcd.print(alt); - lcd.print(' '); - lcd.setCursor(266, 8); - lcd.print(sat); - lcd.print(' '); - - lcd.setCursor(266, 10); - lcd.printLong(records); - - lcd.setCursor(266, 12); - lcd.printInt(logger.dataSize >> 10); -} - -void loop() -{ - if (GPSUART.available()) { - char c = GPSUART.read(); - if (gps.encode(c)) { - processGPS(); - } else { - return; - } - } - -#if USE_MPU6050 - processACC(); -#endif - - displayTimeSpeedDistance(); - displayExtraInfo(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/config.h deleted file mode 100644 index ee7abba..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/config.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Data logging/streaming out -**************************************/ -#define ENABLE_DATA_OUT 1 -#define ENABLE_DATA_LOG 1 -#define USE_SOFTSERIAL 0 -//this defines the format of log file -#define LOG_FORMAT FORMAT_CSV -#define STREAM_FORMAT FORMAT_CSV -#define STREAM_BAUDRATE 115200 - -/************************************** -* Choose SD pin here -**************************************/ -#define SD_CS_PIN SS // generic -//#define SD_CS_PIN 4 // ethernet shield -//#define SD_CS_PIN 7 // microduino -//#define SD_CS_PIN 10 // SD breakout - -/************************************** -* Choose LCD model here -**************************************/ -LCD_SSD1289 lcd; -//LCD_ILI9341 lcd; -//LCD_Null lcd; - -/************************************** -* Other options -**************************************/ -#define USE_MPU6050 0 -#define GPS_BAUDRATE 38400 -#define GPS_DATA_TIMEOUT 2000 /* ms */ -//#define DEBUG Serial -#define DEBUG_BAUDRATE 9600 - -#endif // CONFIG_H_INCLUDED diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/datalogger.h deleted file mode 100644 index 40847d8..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/datalogger.h +++ /dev/null @@ -1,257 +0,0 @@ -/************************************************************************* -* Arduino Data Logger Class -* Distributed under GPL v2.0 -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -#define FORMAT_BIN 0 -#define FORMAT_CSV 1 -#define FORMAT_TEXT 2 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -#define PID_DATA_SIZE 0x80 - -#define FILE_NAME_FORMAT "/DAT%05d.CSV" - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL -SoftwareSerial SerialRF(A2, A3); -#else -#define SerialRF Serial -#endif - -#endif - -#if ENABLE_DATA_LOG -static File sdfile; -#endif - -typedef struct { - uint16_t pid; - char name[3]; -} PID_NAME; - -const PID_NAME pidNames[] PROGMEM = { -{PID_ACC, {'A','C','C'}}, -{PID_GYRO, {'G','Y','R'}}, -{PID_COMPASS, {'M','A','G'}}, -{PID_GPS_LATITUDE, {'L','A','T'}}, -{PID_GPS_LONGITUDE, {'L','O','N'}}, -{PID_GPS_ALTITUDE, {'A','L','T'}}, -{PID_GPS_SPEED, {'S','P','D'}}, -{PID_GPS_HEADING, {'C','R','S'}}, -{PID_GPS_SAT_COUNT, {'S','A','T'}}, -{PID_GPS_TIME, {'T','I','M'}}, -{PID_GPS_DATE, {'D','T','E'}}, -{PID_BATTERY_VOLTAGE, {'B','A','T'}}, -{PID_DATA_SIZE, {'D','A','T'}}, -}; - -class CDataLogger { -public: - void initSender() - { -#if ENABLE_DATA_OUT - SerialRF.begin(STREAM_BAUDRATE); - /* - SerialRF.print("AT+NAMEFreematics"); - delay(10); - while (SerialRF.available()) SerialRF.read(); - SerialRF.println(); - */ - m_lastSendTime = 0; -#endif -#if ENABLE_DATA_LOG - m_lastDataTime = 0; -#endif - } - void recordData(const char* buf, byte len) - { -#if ENABLE_DATA_LOG - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.write(buf, len); - m_lastDataTime = dataTime; -#endif - } - void sendData(const char* buf, byte len) - { - SerialRF.write(buf, len); -#if MIN_DATA_INTERVAL - uint32_t t = millis(); - uint32_t elapsed = t - m_lastSendTime; - if (elapsed < MIN_DATA_INTERVAL) delay(MIN_DATA_INTERVAL - elapsed); - m_lastSendTime = t; -#else - delay(10); -#endif - } - void logData(char c) - { -#if ENABLE_DATA_LOG - if (c >= ' ') { - sdfile.write(c); - dataSize++; - } -#endif - } - void logData(uint16_t pid, int value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d\r", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - sendData((char*)&ld, 12); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%ld\r", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - sendData((uint8_t*)&ld, 12); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%lu\r", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - sendData((uint8_t*)&ld, 12); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d,%d,%d\r", value1, value2, value3) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); - SerialRF.write((uint8_t*)&ld, 20); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - dataSize = 0; - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - m_lastDataTime = dateTime; - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -private: - byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } -#if STREAM_FORMAT == FORMAT_TEXT - byte translatePIDName(uint16_t pid, char* text) - { -#if STREAM_FORMAT == FORMAT_TEXT - for (uint16_t n = 0; n < sizeof(pidNames) / sizeof(pidNames[0]); n++) { - uint16_t id = pgm_read_word(&pidNames[n].pid); - if (pid == id) { - memcpy_P(text, pidNames[n].name, 3); - text[3] = ','; - return 4; - } - } -#endif - return sprintf(text, "%X,", pid); - } -#endif -#if ENABLE_DATA_LOG - uint32_t m_lastDataTime; -#endif -#if ENABLE_DATA_OUT - uint32_t m_lastSendTime; -#endif -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/images.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/images.h deleted file mode 100644 index 2f92ee1..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/bikelogger/images.h +++ /dev/null @@ -1,5 +0,0 @@ -static const PROGMEM uint8_t tick[16 *16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -static const PROGMEM uint8_t cross[16 *16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/config.h deleted file mode 100644 index 9697da2..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/config.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Data logging/streaming out -**************************************/ - -// enable(1)/disable(0) data logging (if SD card is present) -#define ENABLE_DATA_LOG 1 - -// enable(1)/disable(0) data streaming -#define ENABLE_DATA_OUT 1 - -#define ENABLE_DATA_CACHE 0 -#define MAX_CACHE_SIZE 256 /* bytes */ - -#define STREAM_FORMAT FORMAT_TEXT -//#define STREAM_FORMAT FORMAT_BIN - -// serial baudrate for data out streaming -#define STREAM_BAUDRATE 115200 - -// maximum size per file, a new file will be created on reaching this size -#define MAX_LOG_FILE_SIZE 1024 /* KB */ - -/************************************** -* Hardware setup -**************************************/ - -// max allowed time for connecting OBD-II (0 for forever) -#define OBD_ATTEMPT_TIME 0 /* seconds */ - -// SD pin -#define SD_CS_PIN 10 - -// enable(1)/disable(0) MEMS sensor -#define USE_MPU6050 1 -#define ACC_DATA_RATIO 172 -#define GYRO_DATA_RATIO 256 -#define COMPASS_DATA_RATIO 8 - -// enable(1)/disable(0) GPS module -#define USE_GPS 0 - -// GPS parameters -#define GPS_SERIAL_BAUDRATE 115200L - -// motion detection -#define START_MOTION_THRESHOLD 10000 /* for wakeup on movement */ - -#endif // CONFIG_H_INCLUDED diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.h deleted file mode 100644 index fb70353..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.h +++ /dev/null @@ -1,212 +0,0 @@ -/************************************************************************* -* Telematics Data Logger Class -* Distributed under BSD license -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -// additional custom PID for data logger -#define PID_DATA_SIZE 0x80 - -#if ENABLE_DATA_LOG -File sdfile; -#endif - -class CDataLogger { -public: - CDataLogger():m_lastDataTime(0),dataTime(0),dataSize(0) - { -#if ENABLE_DATA_CACHE - cacheBytes = 0; -#endif - } - void initSender() - { -#if ENABLE_DATA_OUT - Serial.begin(STREAM_BAUDRATE); -#endif - } - byte genTimestamp(char* buf, bool absolute) - { - byte n; - if (absolute || dataTime >= m_lastDataTime + 60000) { - // absolute timestamp - n = sprintf_P(buf, PSTR("#%lu,"), dataTime); - } else { - // relative timestamp - uint16_t elapsed = (unsigned int)(dataTime - m_lastDataTime); - n = sprintf_P(buf, PSTR("%u,"), elapsed); - } - return n; - } - void record(const char* buf, byte len) - { -#if ENABLE_DATA_LOG - char tmp[12]; - byte n = genTimestamp(tmp, dataSize == 0); - dataSize += sdfile.write((uint8_t*)tmp, n); - dataSize += sdfile.write(buf, len); - sdfile.write('\n'); - dataSize++; -#endif - m_lastDataTime = dataTime; - } - void dispatch(const char* buf, byte len) - { -#if ENABLE_DATA_CACHE - // reserve some space for timestamp, ending white space and zero terminator - int l = cacheBytes + len + 12 - CACHE_SIZE; - if (l >= 0) { - // cache full -#if CACHE_SHIFT - // discard the oldest data - for (l = CACHE_SIZE / 2; cache[l] && cache[l] != ' '; l++); - if (cache[l]) { - cacheBytes -= l; - memcpy(cache, cache + l + 1, cacheBytes); - } else { - cacheBytes = 0; - } -#else - return; -#endif - } - // add new data at the end - byte n = genTimestamp(cache + cacheBytes, cacheBytes == 0); - if (n == 0) { - // same timestamp - cache[cacheBytes - 1] = ';'; - } else { - cacheBytes += n; - cache[cacheBytes++] = ','; - } - if (cacheBytes + len < CACHE_SIZE - 1) { - memcpy(cache + cacheBytes, buf, len); - cacheBytes += len; - cache[cacheBytes++] = ' '; - } - cache[cacheBytes] = 0; -#else - //char tmp[12]; - //byte n = genTimestamp(tmp, dataTime >= m_lastDataTime + 100); - //Serial.write(tmp, n); -#endif -#if ENABLE_DATA_OUT - Serial.write((uint8_t*)buf, len); - Serial.println(); -#endif - } - void logData(const char* buf, byte len) - { - dispatch(buf, len); - record(buf, len); - } - void logData(uint16_t pid) - { - char buf[8]; - byte len = translatePIDName(pid, buf); - dispatch(buf, len); - record(buf, len); - } - void logData(uint16_t pid, int16_t value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf_P(buf + n, PSTR("%d"), value) + n; - dispatch(buf, len); - record(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf_P(buf + n, PSTR("%ld"), value) + n; - dispatch(buf, len); - record(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf_P(buf + n, PSTR("%lu"), value) + n; - dispatch(buf, len); - record(buf, len); - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - n += sprintf_P(buf + n, PSTR("%d,%d,%d"), value1, value2, value3); - dispatch(buf, n); - record(buf, n); - } - void logCoordinate(uint16_t pid, int32_t value) - { - char buf[24]; - byte len = translatePIDName(pid, buf); - len += sprintf_P(buf + len, PSTR("%d.%06lu"), (int)(value / 1000000), abs(value) % 1000000); - dispatch(buf, len); - record(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint32_t dateTime = 0) - { - uint16_t fileIndex; - char path[20] = "/DATA"; - - dataSize = 0; - if (SD.exists(path)) { - if (dateTime) { - // using date and time as file name - sprintf(path + 5, "/%08lu.CSV", dateTime); - fileIndex = 1; - } else { - // use index number as file name - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(path + 5, "/DAT%05u.CSV", fileIndex); - if (!SD.exists(path)) { - break; - } - } - if (fileIndex == 0) - return 0; - } - } else { - SD.mkdir(path); - fileIndex = 1; - sprintf(path + 5, "/DAT%05u.CSV", 1); - } - - sdfile = SD.open(path, FILE_WRITE); - if (!sdfile) { - return 0; - } - return fileIndex; - } - void closeFile() - { - sdfile.close(); - dataSize = 0; - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -#if ENABLE_DATA_CACHE - void purgeCache() - { - cacheBytes = 0; - } - char cache[CACHE_SIZE]; - int cacheBytes; -#endif -private: - byte translatePIDName(uint16_t pid, char* text) - { - return sprintf_P(text, PSTR("%X,"), pid); - } - uint32_t m_lastDataTime; -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.ino deleted file mode 100644 index c04b2c9..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/datalogger/datalogger.ino +++ /dev/null @@ -1,446 +0,0 @@ -/************************************************************************* - OBD-II/GPS/MEMS Data Logging Sketch - Requires an Arduino board with 2 serial UARTs (3 if GPS required) - - Serial: serial monitor - Serial1: Freematics OBD-II UART Adapter (V2 required for MEMS data) - Serial2: GPS Receiver (default 115200bps) - Change parameters in config.h - - Distributed under BSD license - Visit http://freematics.com/products for more information - Developed by Stanley Huang - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "config.h" -#include "datalogger.h" - -#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168P__) -#error This sketch requires at least 2 hardware serial -#endif - -// states -#define STATE_SD_READY 0x1 -#define STATE_OBD_READY 0x2 -#define STATE_GPS_FOUND 0x4 -#define STATE_GPS_READY 0x8 -#define STATE_MEMS_READY 0x10 -#define STATE_FILE_READY 0x20 - -static uint8_t lastFileSize = 0; -static uint16_t fileIndex = 0; - -uint16_t MMDD = 0; -uint32_t UTC = 0; - -#if USE_MPU6050 -byte accCount = 0; // count of accelerometer readings -long accSum[3] = {0}; // sum of accelerometer data -int accCal[3] = {0}; // calibrated reference accelerometer data -byte deviceTemp; // device temperature (celcius degree) -#endif - -#if USE_GPS -// GPS logging can only be enabled when there is additional hardware serial UART -#define GPSUART Serial2 -TinyGPS gps; - -typedef struct { - uint32_t date; - uint32_t time; - int32_t lat; - int32_t lng; - int16_t alt; - uint8_t speed; - uint8_t sat; - int16_t heading; -} GPS_DATA; - -bool getGPSData(GPS_DATA* gd) -{ - bool parsed = false; - while (!parsed && GPSUART.available()) { - char c = GPSUART.read(); - parsed = gps.encode(c); - } - if (!parsed) return false; - gps.get_datetime((unsigned long*)&gd->date, (unsigned long*)&gd->time, 0); - gps.get_position((long*)&gd->lat, (long*)&gd->lng, 0); - gd->sat = gps.satellites(); - gd->speed = gps.speed() * 1852 / 100000; /* km/h */ - gd->alt = gps.altitude(); - gd->heading = gps.course() / 100; - return true; -} - -bool initGPS(uint32_t baudrate) -{ - if (baudrate) - GPSUART.begin(baudrate); - else - GPSUART.end(); - return true; -} -#endif - -class COBDLogger : public COBD, public CDataLogger -{ - public: - COBDLogger(): state(0) {} - void setup() - { - state = 0; - - delay(500); - byte ver = begin(); - Serial.print("Firmware Ver. "); - Serial.println(ver); - -#if USE_MPU6050 - Serial.print("MEMS "); - if (memsInit()) { - state |= STATE_MEMS_READY; - Serial.println("OK"); - } else { - Serial.println("NO"); - } -#endif - -#if ENABLE_DATA_LOG - Serial.print("SD "); - uint16_t volsize = initSD(); - if (volsize) { - Serial.print(volsize); - Serial.println("MB"); - } else { - Serial.println("NO"); - } -#endif - - Serial.print("OBD "); - if (init()) { - Serial.println("OK"); - } else { - Serial.println("NO"); - reconnect(); - } - state |= STATE_OBD_READY; - -#if 0 - // retrieve VIN - char buffer[128]; - if ((state & STATE_OBD_READY) && getVIN(buffer, sizeof(buffer))) { - Serial.print("VIN:"); - Serial.println(buffer); - } -#endif - -#if USE_GPS - Serial.print("GPS "); - if (initGPS(GPS_SERIAL_BAUDRATE)) { - state |= STATE_GPS_FOUND; - Serial.println("OK"); - } else { - Serial.println("NO"); - } -#endif - -#if USE_MPU6050 - // obtain reference MEMS data - Serial.print("Calibrating MEMS..."); - for (uint32_t t = millis(); millis() - t < 1000; ) { - readMEMS(); - } - calibrateMEMS(); - Serial.print(accCal[0]); - Serial.print('/'); - Serial.print(accCal[1]); - Serial.print('/'); - Serial.println(accCal[2]); -#endif - - delay(500); - } -#if USE_GPS - void logGPSData() - { -#if LOG_GPS_NMEA_DATA - // issue the command to get NMEA data (one line per request) - char buf[255]; - byte n = getGPSRawData(buf, sizeof(buf)); - if (n) { - dataTime = millis(); - // strip heading $GPS and ending \r\n - logData(buf + 4, n - 6); - } -#endif -#if LOG_GPS_PARSED_DATA - // issue the command to get parsed GPS data - GPS_DATA gd = {0}; - - if (getGPSData(&gd)) { - dataTime = millis(); - if (gd.time && gd.time != UTC) { - byte day = gd.date / 10000; - if (MMDD % 100 != day) { - logData(PID_GPS_DATE, gd.date); - } - logData(PID_GPS_TIME, gd.time); - logData(PID_GPS_LATITUDE, gd.lat); - logData(PID_GPS_LONGITUDE, gd.lng); - logData(PID_GPS_ALTITUDE, gd.alt); - logData(PID_GPS_SPEED, gd.speed); - logData(PID_GPS_SAT_COUNT, gd.sat); - // save current date in MMDD format - unsigned int DDMM = gd.date / 100; - UTC = gd.time; - MMDD = (DDMM % 100) * 100 + (DDMM / 100); - // set GPS ready flag - state |= STATE_GPS_READY; - } - } -#endif - } -#endif -#if ENABLE_DATA_LOG - uint16_t initSD() - { - state &= ~STATE_SD_READY; - pinMode(SS, OUTPUT); - - Sd2Card card; - uint32_t volumesize = 0; - if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) { - SdVolume volume; - if (volume.init(card)) { - volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize /= 1000; - } - } - if (SD.begin(SD_CS_PIN)) { - state |= STATE_SD_READY; - return volumesize; - } else { - return 0; - } - } - void flushData() - { - // flush SD data every 1KB - byte dataSizeKB = dataSize >> 10; - if (dataSizeKB != lastFileSize) { - flushFile(); - lastFileSize = dataSizeKB; -#if MAX_LOG_FILE_SIZE - if (dataSize >= 1024L * MAX_LOG_FILE_SIZE) { - closeFile(); - state &= ~STATE_FILE_READY; - } -#endif - } - } -#endif - void reconnect() - { - Serial.println("Reconnecting"); - // try to re-connect to OBD - if (init()) return; -#if ENABLE_DATA_LOG - closeFile(); -#endif - // turn off GPS power -#if USE_GPS - initGPS(0); -#endif - state &= ~(STATE_OBD_READY | STATE_GPS_READY); - Serial.println("Standby"); - // put OBD chips into low power mode - enterLowPowerMode(); - - // calibrate MEMS for several seconds - for (;;) { -#if USE_MPU6050 - accSum[0] = 0; - accSum[1] = 0; - accSum[2] = 0; - for (accCount = 0; accCount < 10; ) { - readMEMS(); - delay(30); - } - // calculate relative movement - unsigned long motion = 0; - for (byte i = 0; i < 3; i++) { - long n = accSum[i] / accCount - accCal[i]; - motion += n * n; - } - // check movement - if (motion > START_MOTION_THRESHOLD) { - Serial.println(motion); - // try OBD reading -#endif - leaveLowPowerMode(); - if (init()) { - // OBD is accessible - break; - } - enterLowPowerMode(); -#if USE_MPU6050 - // calibrate MEMS again in case the device posture changed - calibrateMEMS(); - } -#endif - } -#ifdef ARDUINO_ARCH_AVR - // reset device - void(* resetFunc) (void) = 0; //declare reset function at address 0 - resetFunc(); -#else - setup(); -#endif - } -#if USE_MPU6050 - void calibrateMEMS() - { - // get accelerometer calibration reference data - if (accCount) { - accCal[0] = accSum[0] / accCount; - accCal[1] = accSum[1] / accCount; - accCal[2] = accSum[2] / accCount; - } - } - void readMEMS() - { - // load accelerometer and temperature data - int16_t acc[3] = {0}; - int16_t temp; // device temperature (in 0.1 celcius degree) - memsRead(acc, 0, 0, &temp); - if (accCount >= 250) { - accSum[0] >>= 1; - accSum[1] >>= 1; - accSum[2] >>= 1; - accCount >>= 1; - } - accSum[0] += acc[0]; - accSum[1] += acc[1]; - accSum[2] += acc[2]; - accCount++; - deviceTemp = temp / 10; - } -#endif - byte state; -}; - -static COBDLogger one; - -void setup() -{ - Serial.begin(115200); - one.initSender(); - one.setup(); -} - -void loop() -{ -#if ENABLE_DATA_LOG - if (!(one.state & STATE_FILE_READY) && (one.state & STATE_SD_READY)) { - // create log file - if (one.state & STATE_GPS_FOUND) { - // GPS connected, GPS time as file name - Serial.print("File "); - if (one.state & STATE_GPS_READY) { - uint32_t dateTime = (uint32_t)MMDD * 10000 + UTC / 10000; - if (one.openFile(dateTime) != 0) { - Serial.println(dateTime); - MMDD = 0; - one.state |= STATE_FILE_READY; - } else { - Serial.println("File error"); - } - } - } else { - // no GPS connected, index number as file name - int index = one.openFile(0); - if (index != 0) { - one.state |= STATE_FILE_READY; - Serial.println(index); - } else { - Serial.println("File error"); - } - } - } -#endif - - // log some OBD-II PIDs - if (one.state & STATE_OBD_READY) { - byte pids[] = {0, PID_RPM, PID_SPEED, PID_THROTTLE, PID_ENGINE_LOAD}; - byte pids2[] = {PID_COOLANT_TEMP, PID_INTAKE_TEMP, PID_DISTANCE}; - int values[sizeof(pids)]; - static byte index2 = 0; - pids[0] = pids2[index2 = (index2 + 1) % sizeof(pids2)]; - // read multiple OBD-II PIDs - if (one.readPID(pids, sizeof(pids), values) == sizeof(pids)) { - one.dataTime = millis(); - for (byte n = 0; n < sizeof(pids); n++) { - one.logData((uint16_t)pids[n] | 0x100, values[n]); - } - } - if (one.errors >= 10) { - one.reconnect(); - } - } else { - if (!OBD_ATTEMPT_TIME || millis() < OBD_ATTEMPT_TIME * 1000) { - if (one.init()) { - one.state |= STATE_OBD_READY; - } - } - } - - // log battery voltage (from voltmeter), data in 0.01v - int v = one.getVoltage() * 100; - one.dataTime = millis(); - one.logData(PID_BATTERY_VOLTAGE, v); - - // log MEMS data -#if USE_MPU6050 - if (one.state & STATE_MEMS_READY) { - one.readMEMS(); - if (accCount > 0) { - // log the loaded MEMS data - one.logData(PID_ACC, accSum[0] / accCount / ACC_DATA_RATIO, accSum[1] / accCount / ACC_DATA_RATIO, accSum[2] / accCount / ACC_DATA_RATIO); - accCount = 0; - } - } -#endif - - // log GPS data -#if USE_GPS - if (one.state & STATE_GPS_FOUND) { - one.logGPSData(); - } -#endif - -#if ENABLE_DATA_LOG - uint32_t logsize = sdfile.size(); - if (logsize > 0) { - one.flushData(); - Serial.print(sdfile.size()); - Serial.println(" bytes"); - } -#endif -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.cpp deleted file mode 100644 index 492fc7b..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.cpp +++ /dev/null @@ -1,781 +0,0 @@ -/************************************************************************* -* Arduino Display Library for SH1106 -* Distributed under GPL v2.0 -* Copyright (c) 2013 Stanley Huang -* All rights reserved. -*************************************************************************/ - -#include -#include -#include "SH1106.h" - -#define I2C_ADDR 0x78 >> 1 - -// fonts data -const unsigned char digits16x24[][48] = { -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"0",0*/ -{0x00,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,0x00,0xFC,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/ -{0x00,0x00,0x00,0xF8,0x00,0xE0,0xFC,0x00,0xF8,0xFE,0x00,0xFE,0xFE,0x80,0xFF,0xFF,0xC0,0xFF,0x07,0xF0,0xFF,0x07,0xFC,0xFF,0x07,0xFF,0xEF,0xFF,0xFF,0xE3,0xFF,0xFF,0xE1,0xFE,0x7F,0xE0,0xFE,0x3F,0xE0,0xFC,0x0F,0xE0,0xF0,0x03,0x00,0x00,0x00,0x00},/*"2",2*/ -{0x00,0x00,0x00,0xF8,0x80,0x1F,0xFE,0x80,0x3F,0xFE,0x80,0x7F,0xFF,0x80,0x7F,0xFF,0x80,0xFF,0xFF,0x9C,0xFF,0xFF,0x9C,0xFF,0x07,0x1C,0xE0,0x07,0x3E,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"3",3*/ -{0x00,0xF0,0x0F,0x00,0xFE,0x0F,0x80,0xFF,0x0F,0xE0,0xFF,0x0F,0xFC,0xBF,0x0F,0xFF,0x87,0x0F,0xFF,0x81,0x0F,0x3F,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x0F,0x00,0x80,0x0F},/*"4",4*/ -{0x00,0x00,0x00,0xFF,0xC7,0x0F,0xFF,0xC7,0x3F,0xFF,0xC7,0x7F,0xFF,0xC7,0x7F,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x87,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0xFF,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x7F,0x87,0xFF,0x7F,0x87,0xFF,0x3F,0x07,0xFE,0x1F},/*"5",5*/ -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x06,0xE0,0x07,0x07,0xE0,0x07,0x07,0xE0,0x3F,0xFF,0xFF,0x3F,0xFF,0xFF,0x3E,0xFF,0x7F,0x3E,0xFE,0x7F,0x3C,0xFE,0x3F,0x38,0xF8,0x1F},/*"6",6*/ -{0x00,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0xC0,0x07,0x00,0xF8,0x07,0x00,0xFF,0x07,0xE0,0xFF,0x07,0xFE,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x07,0xFF,0xFF,0x00,0xFF,0x0F,0x00,0xFF,0x01,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"7",1*/ -{0x00,0x00,0x00,0xF0,0xE3,0x1F,0xFC,0xF7,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"8",8*/ -{0x00,0x00,0x00,0xF8,0x1F,0x1C,0xFC,0x7F,0x3C,0xFE,0x7F,0x7C,0xFE,0xFF,0x7C,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0x07,0xE0,0xE0,0x07,0xE0,0xE0,0x07,0x60,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"9",9*/ -}; - -const unsigned char digits8x8[][8] = { -{0x3C,0x7E,0x83,0x81,0x81,0x7E,0x3C,0x00},/*0*/ -{0x84,0x84,0x82,0xFF,0xFF,0x80,0x80,0x00},/*1*/ -{0x84,0xC6,0xE1,0xA1,0xB1,0x9F,0x8E,0x00},/*2*/ -{0x42,0xC3,0x81,0x89,0x89,0xFF,0x76,0x00},/*3*/ -{0x20,0x38,0x24,0x22,0xFF,0xFF,0x20,0x00},/*4*/ -{0x5F,0xDF,0x99,0x89,0x89,0xF9,0x70,0x00},/*5*/ -{0x3C,0x7E,0x89,0x89,0x89,0xFB,0x72,0x00},/*6*/ -{0x01,0x01,0xE1,0xF9,0x1D,0x07,0x01,0x00},/*7*/ -{0x6E,0xFF,0x89,0x89,0x99,0xFF,0x76,0x00},/*8*/ -{0x4E,0xDF,0x91,0x91,0x91,0x7F,0x3E,0x00},/*9*/ -}; - -// The 7-bit ASCII character set... -const unsigned char font5x8[][5] = { - { 0x00, 0x00, 0x5f, 0x00, 0x00 }, // 21 ! - { 0x00, 0x07, 0x00, 0x07, 0x00 }, // 22 " - { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // 23 # - { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // 24 $ - { 0x23, 0x13, 0x08, 0x64, 0x62 }, // 25 % - { 0x36, 0x49, 0x55, 0x22, 0x50 }, // 26 & - { 0x00, 0x05, 0x03, 0x00, 0x00 }, // 27 ' - { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // 28 ( - { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // 29 ) - { 0x14, 0x08, 0x3e, 0x08, 0x14 }, // 2a * - { 0x08, 0x08, 0x3e, 0x08, 0x08 }, // 2b + - { 0x00, 0x50, 0x30, 0x00, 0x00 }, // 2c , - { 0x08, 0x08, 0x08, 0x08, 0x08 }, // 2d - - { 0x00, 0x60, 0x60, 0x00, 0x00 }, // 2e . - { 0x20, 0x10, 0x08, 0x04, 0x02 }, // 2f / - { 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 30 0 - { 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 31 1 - { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 32 2 - { 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 33 3 - { 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 34 4 - { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 35 5 - { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 36 6 - { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 37 7 - { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 38 8 - { 0x06, 0x49, 0x49, 0x29, 0x1e }, // 39 9 - { 0x00, 0x36, 0x36, 0x00, 0x00 }, // 3a : - { 0x00, 0x56, 0x36, 0x00, 0x00 }, // 3b ; - { 0x08, 0x14, 0x22, 0x41, 0x00 }, // 3c < - { 0x14, 0x14, 0x14, 0x14, 0x14 }, // 3d = - { 0x00, 0x41, 0x22, 0x14, 0x08 }, // 3e > - { 0x02, 0x01, 0x51, 0x09, 0x06 }, // 3f ? - { 0x32, 0x49, 0x79, 0x41, 0x3e }, // 40 @ - { 0x7e, 0x11, 0x11, 0x11, 0x7e }, // 41 A - { 0x7f, 0x49, 0x49, 0x49, 0x36 }, // 42 B - { 0x3e, 0x41, 0x41, 0x41, 0x22 }, // 43 C - { 0x7f, 0x41, 0x41, 0x22, 0x1c }, // 44 D - { 0x7f, 0x49, 0x49, 0x49, 0x41 }, // 45 E - { 0x7f, 0x09, 0x09, 0x09, 0x01 }, // 46 F - { 0x3e, 0x41, 0x49, 0x49, 0x7a }, // 47 G - { 0x7f, 0x08, 0x08, 0x08, 0x7f }, // 48 H - { 0x00, 0x41, 0x7f, 0x41, 0x00 }, // 49 I - { 0x20, 0x40, 0x41, 0x3f, 0x01 }, // 4a J - { 0x7f, 0x08, 0x14, 0x22, 0x41 }, // 4b K - { 0x7f, 0x40, 0x40, 0x40, 0x40 }, // 4c L - { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // 4d M - { 0x7f, 0x04, 0x08, 0x10, 0x7f }, // 4e N - { 0x3e, 0x41, 0x41, 0x41, 0x3e }, // 4f O - { 0x7f, 0x09, 0x09, 0x09, 0x06 }, // 50 P - { 0x3e, 0x41, 0x51, 0x21, 0x5e }, // 51 Q - { 0x7f, 0x09, 0x19, 0x29, 0x46 }, // 52 R - { 0x46, 0x49, 0x49, 0x49, 0x31 }, // 53 S - { 0x01, 0x01, 0x7f, 0x01, 0x01 }, // 54 T - { 0x3f, 0x40, 0x40, 0x40, 0x3f }, // 55 U - { 0x1f, 0x20, 0x40, 0x20, 0x1f }, // 56 V - { 0x3f, 0x40, 0x38, 0x40, 0x3f }, // 57 W - { 0x63, 0x14, 0x08, 0x14, 0x63 }, // 58 X - { 0x07, 0x08, 0x70, 0x08, 0x07 }, // 59 Y - { 0x61, 0x51, 0x49, 0x45, 0x43 }, // 5a Z - { 0x00, 0x7f, 0x41, 0x41, 0x00 }, // 5b [ - { 0x02, 0x04, 0x08, 0x10, 0x20 }, // 5c backslash - { 0x00, 0x41, 0x41, 0x7f, 0x00 }, // 5d ] - { 0x04, 0x02, 0x01, 0x02, 0x04 }, // 5e ^ - { 0x40, 0x40, 0x40, 0x40, 0x40 }, // 5f _ - { 0x00, 0x01, 0x02, 0x04, 0x00 }, // 60 ` - { 0x20, 0x54, 0x54, 0x54, 0x78 }, // 61 a - { 0x7f, 0x48, 0x44, 0x44, 0x38 }, // 62 b - { 0x38, 0x44, 0x44, 0x44, 0x20 }, // 63 c - { 0x38, 0x44, 0x44, 0x48, 0x7f }, // 64 d - { 0x38, 0x54, 0x54, 0x54, 0x18 }, // 65 e - { 0x08, 0x7e, 0x09, 0x01, 0x02 }, // 66 f - { 0x0c, 0x52, 0x52, 0x52, 0x3e }, // 67 g - { 0x7f, 0x08, 0x04, 0x04, 0x78 }, // 68 h - { 0x00, 0x44, 0x7d, 0x40, 0x00 }, // 69 i - { 0x20, 0x40, 0x44, 0x3d, 0x00 }, // 6a j - { 0x7f, 0x10, 0x28, 0x44, 0x00 }, // 6b k - { 0x00, 0x41, 0x7f, 0x40, 0x00 }, // 6c l - { 0x7c, 0x04, 0x18, 0x04, 0x78 }, // 6d m - { 0x7c, 0x08, 0x04, 0x04, 0x78 }, // 6e n - { 0x38, 0x44, 0x44, 0x44, 0x38 }, // 6f o - { 0x7c, 0x14, 0x14, 0x14, 0x08 }, // 70 p - { 0x08, 0x14, 0x14, 0x18, 0x7c }, // 71 q - { 0x7c, 0x08, 0x04, 0x04, 0x08 }, // 72 r - { 0x48, 0x54, 0x54, 0x54, 0x20 }, // 73 s - { 0x04, 0x3f, 0x44, 0x40, 0x20 }, // 74 t - { 0x3c, 0x40, 0x40, 0x20, 0x7c }, // 75 u - { 0x1c, 0x20, 0x40, 0x20, 0x1c }, // 76 v - { 0x3c, 0x40, 0x30, 0x40, 0x3c }, // 77 w - { 0x44, 0x28, 0x10, 0x28, 0x44 }, // 78 x - { 0x0c, 0x50, 0x50, 0x50, 0x3c }, // 79 y - { 0x44, 0x64, 0x54, 0x4c, 0x44 }, // 7a z - { 0x00, 0x08, 0x36, 0x41, 0x00 }, // 7b { - { 0x00, 0x00, 0x7f, 0x00, 0x00 }, // 7c | - { 0x00, 0x41, 0x36, 0x08, 0x00 }, // 7d } - { 0x10, 0x08, 0x08, 0x10, 0x08 }, // 7e ~ -}; - -#ifndef MEMORY_SAVING -const unsigned char digits16x16[][32] = { -{0x00,0xE0,0xF8,0xFC,0xFE,0x1E,0x07,0x07,0x07,0x07,0x1E,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x3F,0x3F,0x7C,0x70,0x70,0x70,0x70,0x7C,0x3F,0x1F,0x1F,0x07,0x00},/*0*/ -{0x00,0x00,0x00,0x06,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},/*1*/ -{0x00,0x38,0x3C,0x3E,0x3E,0x0F,0x07,0x07,0x07,0xCF,0xFF,0xFE,0xFE,0x38,0x00,0x00,0x00,0x40,0x40,0x60,0x70,0x78,0x7C,0x7E,0x7F,0x77,0x73,0x71,0x70,0x70,0x00,0x00},/*2*/ -{0x00,0x18,0x1C,0x1E,0x1E,0x0F,0xC7,0xC7,0xE7,0xFF,0xFE,0xBE,0x9C,0x00,0x00,0x00,0x00,0x0C,0x1C,0x3C,0x3C,0x78,0x70,0x70,0x70,0x79,0x7F,0x3F,0x1F,0x0F,0x00,0x00},/*3*/ -{0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x7F,0x7F,0x7F,0x7F,0x06,0x06,0x00},/*4*/ -{0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xE7,0xE7,0xE7,0xE7,0xC7,0x87,0x00,0x00,0x00,0x00,0x38,0x78,0x71,0x70,0x70,0x70,0x70,0x70,0x39,0x3F,0x3F,0x1F,0x0F,0x00},/*5*/ -{0x00,0x80,0xE0,0xF0,0xF8,0xFC,0x7F,0x7F,0x6F,0x67,0xE1,0xE1,0xC0,0x80,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x3F,0x78,0x70,0x70,0x70,0x70,0x78,0x3F,0x3F,0x1F,0x0F,0x00},/*6*/ -{0x00,0x07,0x07,0x07,0x07,0x07,0xC7,0xE7,0xF7,0xFF,0x7F,0x3F,0x1F,0x07,0x03,0x01,0x00,0x20,0x38,0x7C,0x7E,0x3F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*7*/ -{0x00,0x00,0x00,0x1C,0xBE,0xFE,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFE,0xBE,0x1C,0x00,0x00,0x00,0x0E,0x3F,0x3F,0x7F,0x71,0x60,0x60,0x60,0x71,0x7F,0x3F,0x3F,0x0F,0x00},/*8*/ -{0x00,0x78,0xFC,0xFE,0xFE,0x8F,0x07,0x07,0x07,0x07,0x8F,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0x00,0x00,0x01,0x43,0x43,0x73,0x7B,0x7F,0x7F,0x1F,0x0F,0x07,0x03,0x00,0x00},/*9*/ -}; - -const unsigned char font8x16_doslike[][16] = { -{0x00,0x00,0x00,0x00,0x78,0x00,0xFC,0x09,0xFC,0x09,0x78,0x00,0x00,0x00,0x00,0x00},/*"!*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00},/*""*/ -{0x20,0x02,0xF8,0x1F,0xF8,0x1F,0x20,0x02,0x20,0x02,0xF8,0x1F,0xF8,0x1F,0x20,0x02},/*"#*/ -{0x00,0x00,0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0x47,0x38,0xCC,0x0F,0x98,0x07},/*"$*/ -{0x10,0x08,0x38,0x0C,0x28,0x06,0x38,0x03,0x90,0x05,0xC0,0x0E,0x60,0x0A,0x30,0x0E},/*"%*/ -{0x80,0x07,0xD8,0x0F,0x7C,0x08,0x64,0x08,0xE4,0x08,0xBC,0x07,0x18,0x0F,0x80,0x09},/*"&*/ -{0x00,0x00,0x10,0x00,0x1C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'*/ -{0x00,0x00,0x00,0x00,0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x00,0x00,0x00,0x00},/*"(*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03,0x00,0x00},/*")*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"**/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+0*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*",*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*".*/ -{0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00},/*"/*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0xC4,0x08,0xC4,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03},/*"0*/ -{0x00,0x00,0x10,0x08,0x18,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x00},/*"1*/ -{0x08,0x0E,0x0C,0x0F,0x84,0x09,0xC4,0x08,0x64,0x08,0x3C,0x0C,0x18,0x0C,0x00,0x00},/*"2*/ -{0x08,0x04,0x0C,0x0C,0x04,0x08,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"3*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x09,0xFC,0x0F,0xFC,0x0F,0x00,0x09,0x00,0x00},/*"4*/ -{0x7C,0x04,0x7C,0x0C,0x44,0x08,0x44,0x08,0x44,0x08,0xC4,0x0F,0x84,0x07,0x00,0x00},/*"5*/ -{0xF0,0x07,0xF8,0x0F,0x4C,0x08,0x44,0x08,0x44,0x08,0xC4,0x0F,0x80,0x07,0x00,0x00},/*"6*/ -{0x0C,0x00,0x0C,0x00,0x84,0x0F,0xC4,0x0F,0x64,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00},/*"7*/ -{0xB8,0x07,0xFC,0x0F,0x44,0x08,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"8*/ -{0x38,0x00,0x7C,0x08,0x44,0x08,0x44,0x08,0x44,0x0C,0xFC,0x07,0xF8,0x03,0x00,0x00},/*"9*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x06,0x30,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*":*/ -{0x00,0x00,0x00,0x00,0x00,0x10,0x60,0x1C,0x60,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x00,0x00,0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x08,0x08,0x00,0x00},/*"<",28*/ -{0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x00,0x00},/*"=",29*/ -{0x00,0x00,0x00,0x00,0x08,0x08,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00},/*">",30*/ -{0x08,0x00,0x0C,0x00,0x04,0x00,0x84,0x0D,0xC4,0x0D,0x7C,0x00,0x38,0x00,0x00,0x00},/*"?",31*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x84,0x09,0xC4,0x09,0xFC,0x09,0xF8,0x00,0x00,0x00},/*"@",32*/ -{0xE0,0x0F,0xF0,0x0F,0x98,0x00,0x8C,0x00,0x98,0x00,0xF0,0x0F,0xE0,0x0F,0x00,0x00},/*"A",33*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"B",34*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x04,0x08,0x0C,0x0C,0x18,0x06,0x00,0x00},/*"C",35*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03,0x00,0x00},/*"D",36*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0xE4,0x08,0x0C,0x0C,0x0C,0x0C,0x00,0x00},/*"E",37*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0xE4,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00},/*"F",38*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x84,0x08,0x8C,0x07,0x98,0x0F,0x00,0x00},/*"G",39*/ -{0xFC,0x0F,0xFC,0x0F,0x40,0x00,0x40,0x00,0x40,0x00,0xFC,0x0F,0xFC,0x0F,0x00,0x00},/*"H",40*/ -{0x00,0x00,0x04,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00},/*"I",41*/ -{0x00,0x06,0x00,0x0E,0x00,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x07,0x04,0x00,0x00,0x00},/*"J",42*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0xE0,0x00,0xB0,0x01,0x1C,0x0F,0x0C,0x0E,0x00,0x00},/*"K",43*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x00,0x08,0x00,0x0C,0x00,0x0C,0x00,0x00},/*"L",44*/ -{0xFC,0x0F,0xFC,0x0F,0x30,0x00,0xE0,0x00,0xE0,0x00,0x30,0x00,0xFC,0x0F,0xFC,0x0F},/*"M",45*/ -{0xFC,0x0F,0xFC,0x0F,0x30,0x00,0x60,0x00,0xC0,0x00,0xFC,0x0F,0xFC,0x0F,0x00,0x00},/*"N",46*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0xF8,0x07,0x00,0x00},/*"O",47*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x84,0x08,0x84,0x00,0xFC,0x00,0x78,0x00,0x00,0x00},/*"P",48*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x04,0x0C,0x04,0x18,0xFC,0x3F,0xF8,0x27,0x00,0x00},/*"Q",49*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x00,0xC4,0x00,0xFC,0x0F,0x38,0x0F,0x00,0x00},/*"R",50*/ -{0x18,0x04,0x3C,0x0C,0x64,0x08,0x44,0x08,0xC4,0x08,0x8C,0x0F,0x08,0x07,0x00,0x00},/*"S",51*/ -{0x0C,0x00,0x0C,0x00,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x0C,0x00,0x0C,0x00},/*"T",52*/ -{0xFC,0x07,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0xFC,0x0F,0xFC,0x07,0x00,0x00},/*"U",53*/ -{0xFC,0x01,0xFC,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x06,0xFC,0x03,0xFC,0x01},/*"V",54*/ -{0xFC,0x03,0xFC,0x0F,0x00,0x0E,0x80,0x03,0x80,0x03,0x00,0x0E,0xFC,0x0F,0xFC,0x03},/*"W",55*/ -{0x0C,0x0C,0x1C,0x0E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1C,0x0E,0x0C,0x0C},/*"X",56*/ -{0x1C,0x00,0x3C,0x00,0x60,0x08,0xC0,0x0F,0xC0,0x0F,0x60,0x08,0x3C,0x00,0x1C,0x00},/*"Y",57*/ -{0x0C,0x0E,0x0C,0x0F,0x84,0x09,0xC4,0x08,0x64,0x08,0x34,0x08,0x1C,0x0C,0x0C,0x0C},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x04,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x00,0x00,0x10,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x10,0x00},/*"^",62*/ -{0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x08,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x07,0xA0,0x0F,0xA0,0x08,0xA0,0x08,0xE0,0x07,0xC0,0x0F,0x00,0x08,0x00,0x00},/*"a",65*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x07,0x20,0x08,0x60,0x08,0xC0,0x0F,0x80,0x07,0x00,0x00},/*"b",66*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x08,0x20,0x08,0x60,0x0C,0x40,0x04,0x00,0x00},/*"c",67*/ -{0x80,0x07,0xC0,0x0F,0x60,0x08,0x24,0x08,0xFC,0x07,0xFC,0x0F,0x00,0x08,0x00,0x00},/*"d",68*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x09,0x20,0x09,0x20,0x09,0xE0,0x0D,0xC0,0x05,0x00,0x00},/*"e",69*/ -{0x00,0x00,0x40,0x08,0xF8,0x0F,0xFC,0x0F,0x44,0x08,0x4C,0x00,0x08,0x00,0x00,0x00},/*"f",70*/ -{0xC0,0x27,0xE0,0x6F,0x20,0x48,0x20,0x48,0xC0,0x7F,0xE0,0x3F,0x20,0x00,0x00,0x00},/*"g",71*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x40,0x00,0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x00,0x00},/*"h",72*/ -{0x00,0x00,0x00,0x00,0x20,0x08,0xEC,0x0F,0xEC,0x0F,0x00,0x08,0x00,0x00,0x00,0x00},/*"i",73*/ -{0x00,0x00,0x00,0x20,0x00,0x60,0x00,0x40,0x20,0x40,0xEC,0x7F,0xEC,0x3F,0x00,0x00},/*"j",74*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x80,0x01,0xC0,0x03,0x60,0x0E,0x20,0x0C,0x00,0x00},/*"k",75*/ -{0x00,0x00,0x00,0x00,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x08,0x00,0x00,0x00,0x00},/*"l",76*/ -{0xE0,0x0F,0xE0,0x0F,0x60,0x00,0xC0,0x07,0xC0,0x07,0x60,0x00,0xE0,0x0F,0xC0,0x0F},/*"m",77*/ -{0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x20,0x00,0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x00,0x00},/*"n",78*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x08,0x20,0x08,0xE0,0x0F,0xC0,0x07,0x00,0x00},/*"o",79*/ -{0x20,0x40,0xE0,0x7F,0xC0,0x7F,0x20,0x48,0x20,0x08,0xE0,0x0F,0xC0,0x07,0x00,0x00},/*"p",80*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x48,0xC0,0x7F,0xE0,0x7F,0x20,0x40,0x00,0x00},/*"q",81*/ -{0x20,0x08,0xE0,0x0F,0xC0,0x0F,0x60,0x08,0x20,0x00,0x60,0x00,0x40,0x00,0x00,0x00},/*"r",82*/ -{0xC0,0x04,0xE0,0x0D,0x20,0x09,0x20,0x09,0x20,0x09,0x60,0x0F,0x40,0x06,0x00,0x00},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xF8,0x07,0xFC,0x0F,0x20,0x08,0x20,0x0C,0x00,0x04,0x00,0x00},/*"t",84*/ -{0xE0,0x07,0xE0,0x0F,0x00,0x08,0x00,0x08,0xE0,0x07,0xE0,0x0F,0x00,0x08,0x00,0x00},/*"u",85*/ -{0xE0,0x01,0xE0,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x06,0xE0,0x03,0xE0,0x01},/*"v",86*/ -{0xE0,0x07,0xE0,0x0F,0x00,0x0C,0x00,0x07,0x00,0x07,0x00,0x0C,0xE0,0x0F,0xE0,0x07},/*"w",87*/ -{0x20,0x08,0x60,0x0C,0xC0,0x06,0x80,0x03,0x80,0x03,0xC0,0x06,0x60,0x0C,0x20,0x08},/*"x",88*/ -{0xE0,0x47,0xE0,0x4F,0x00,0x48,0x00,0x48,0x00,0x68,0xE0,0x3F,0xE0,0x1F,0x00,0x00},/*"y",89*/ -{0x60,0x0C,0x60,0x0E,0x20,0x0B,0xA0,0x09,0xE0,0x08,0x60,0x0C,0x20,0x0C,0x00,0x00},/*"z",90*/ -{0x00,0x00,0x40,0x00,0x40,0x00,0xF8,0x07,0xBC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x7C,0x1F,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x04,0x08,0x04,0x08,0xBC,0x0F,0xF8,0x07,0x40,0x00,0x40,0x00,0x00,0x00},/*"}",93*/ -}; - -const unsigned char font8x16_terminal[][16] = { -{0x00,0x00,0x00,0x00,0x7C,0x00,0xFE,0x1B,0xFE,0x1B,0x7C,0x00,0x00,0x00,0x00,0x00},/*"!",0*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00},/*""",1*/ -{0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01,0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01},/*"#",2*/ -{0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0xFF,0x3F,0x84,0x08,0x8C,0x0F,0x18,0x07},/*"$",3*/ -{0x1C,0x18,0x14,0x1E,0x9C,0x07,0xE0,0x01,0x78,0x1C,0x1E,0x14,0x06,0x1C,0x00,0x00},/*"%",4*/ -{0xBC,0x1F,0xFE,0x10,0x42,0x10,0xC2,0x10,0xFE,0x1F,0x3C,0x0F,0x80,0x19,0x80,0x10},/*"&",5*/ -{0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ -{0x00,0x00,0x00,0x00,0xF0,0x07,0xFC,0x1F,0x0E,0x38,0x02,0x20,0x00,0x00,0x00,0x00},/*"(",7*/ -{0x00,0x00,0x00,0x00,0x02,0x20,0x0E,0x38,0xFC,0x1F,0xF0,0x07,0x00,0x00,0x00,0x00},/*")",8*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"*",9*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+",10*/ -{0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00},/*",",11*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-",12*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},/*".",13*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",14*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0xC2,0x10,0xC2,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"0",15*/ -{0x00,0x00,0x08,0x10,0x0C,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"1",16*/ -{0x04,0x1C,0x06,0x1E,0x02,0x13,0x82,0x11,0xC2,0x10,0x62,0x10,0x3E,0x18,0x1C,0x18},/*"2",17*/ -{0x04,0x08,0x06,0x18,0x02,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"3",18*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x01,0x0C,0x11,0xFE,0x1F,0xFE,0x1F,0x00,0x11},/*"4",19*/ -{0x7E,0x08,0x7E,0x18,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC2,0x1F,0x82,0x0F},/*"5",20*/ -{0xF8,0x0F,0xFC,0x1F,0x46,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC0,0x1F,0x80,0x0F},/*"6",21*/ -{0x06,0x00,0x06,0x00,0x02,0x00,0x02,0x1F,0xC2,0x1F,0xF2,0x00,0x3E,0x00,0x0E,0x00},/*"7",22*/ -{0xBC,0x0F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"8",23*/ -{0x3C,0x00,0x7E,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x18,0xFE,0x0F,0xFC,0x07},/*"9",24*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x3C,0x60,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x0C,0x18,0x04,0x10,0x00,0x00},/*"<",28*/ -{0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02},/*"=",29*/ -{0x04,0x10,0x0C,0x18,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00,0x00,0x00},/*">",30*/ -{0x04,0x00,0x06,0x00,0x02,0x00,0x82,0x1B,0xC2,0x1B,0x62,0x00,0x3E,0x00,0x1C,0x00},/*"?",31*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x82,0x11,0xC2,0x13,0xE2,0x13,0xFE,0x13,0xFC,0x03},/*"@",32*/ -{0xF0,0x1F,0xF8,0x1F,0x0C,0x01,0x06,0x01,0x06,0x01,0x0C,0x01,0xF8,0x1F,0xF0,0x1F},/*"A",33*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"B",34*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x02,0x10,0x02,0x10,0x06,0x18,0x0C,0x0C},/*"C",35*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"D",36*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0xE2,0x10,0x06,0x18,0x06,0x18},/*"E",37*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0xE2,0x00,0x06,0x00,0x06,0x00},/*"F",38*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x82,0x10,0x82,0x10,0x86,0x0F,0x8C,0x1F},/*"G",39*/ -{0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFE,0x1F,0xFE,0x1F},/*"H",40*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00},/*"I",41*/ -{0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x02,0x00},/*"J",42*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0xE0,0x00,0xB0,0x01,0x18,0x03,0x0E,0x1E,0x06,0x1C},/*"K",43*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x18},/*"L",44*/ -{0xFE,0x1F,0xFE,0x1F,0x18,0x00,0xF0,0x00,0xF0,0x00,0x18,0x00,0xFE,0x1F,0xFE,0x1F},/*"M",45*/ -{0xFE,0x1F,0xFE,0x1F,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0xFE,0x1F,0xFE,0x1F},/*"N",46*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFC,0x0F},/*"O",47*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0x42,0x00,0x7E,0x00,0x3C,0x00},/*"P",48*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x1C,0x02,0x38,0x02,0x70,0xFE,0x5F,0xFC,0x0F},/*"Q",49*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x00,0x42,0x00,0xC2,0x00,0xFE,0x1F,0x3C,0x1F},/*"R",50*/ -{0x1C,0x0C,0x3E,0x1C,0x62,0x10,0x42,0x10,0x42,0x10,0xC2,0x10,0x8E,0x1F,0x0C,0x0F},/*"S",51*/ -{0x06,0x00,0x06,0x00,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x06,0x00,0x06,0x00},/*"T",52*/ -{0xFE,0x0F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0xFE,0x1F,0xFE,0x0F},/*"U",53*/ -{0xFE,0x03,0xFE,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xFE,0x07,0xFE,0x03},/*"V",54*/ -{0xFE,0x07,0xFE,0x1F,0x00,0x1C,0xC0,0x07,0xC0,0x07,0x00,0x1C,0xFE,0x1F,0xFE,0x07},/*"W",55*/ -{0x0E,0x1C,0x1E,0x1E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1E,0x1E,0x0E,0x1C},/*"X",56*/ -{0x1E,0x00,0x3E,0x00,0x60,0x10,0xC0,0x1F,0xC0,0x1F,0x60,0x10,0x3E,0x00,0x1E,0x00},/*"Y",57*/ -{0x06,0x1E,0x06,0x1F,0x82,0x11,0xC2,0x10,0x62,0x10,0x32,0x10,0x1E,0x18,0x0E,0x18},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x20,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,0x00},/*"^",62*/ -{0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x0E,0x20,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x0F,0xC0,0x1F,0x00,0x10},/*"a",65*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x20,0x10,0x20,0x10,0x60,0x10,0xC0,0x1F,0x80,0x0F},/*"b",66*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x60,0x18,0x40,0x08},/*"c",67*/ -{0x80,0x0F,0xC0,0x1F,0x60,0x10,0x20,0x10,0x22,0x10,0xFE,0x0F,0xFE,0x1F,0x00,0x10},/*"d",68*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x19,0xC0,0x09},/*"e",69*/ -{0x00,0x00,0x20,0x10,0xFC,0x1F,0xFE,0x1F,0x22,0x10,0x22,0x00,0x06,0x00,0x04,0x00},/*"f",70*/ -{0xC0,0x4F,0xE0,0xDF,0x20,0x90,0x20,0x90,0x20,0x90,0xC0,0xFF,0xE0,0x7F,0x20,0x00},/*"g",71*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"h",72*/ -{0x00,0x00,0x20,0x10,0x20,0x10,0xEC,0x1F,0xEC,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"i",73*/ -{0x00,0x60,0x00,0xC0,0x20,0x80,0x20,0x80,0xEC,0xFF,0xEC,0x7F,0x00,0x00,0x00,0x00},/*"j",74*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x80,0x01,0x80,0x03,0xC0,0x06,0x60,0x1C,0x20,0x18},/*"k",75*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"l",76*/ -{0xE0,0x1F,0xE0,0x1F,0x60,0x00,0xC0,0x0F,0xC0,0x0F,0x60,0x00,0xE0,0x1F,0xC0,0x1F},/*"m",77*/ -{0x20,0x00,0xE0,0x1F,0xC0,0x1F,0x20,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"n",78*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"o",79*/ -{0x20,0x80,0xE0,0xFF,0xC0,0xFF,0x20,0x90,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"p",80*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x90,0xC0,0xFF,0xE0,0xFF,0x20,0x80},/*"q",81*/ -{0x20,0x10,0xE0,0x1F,0xC0,0x1F,0x60,0x10,0x20,0x00,0x20,0x00,0x60,0x00,0x40,0x00},/*"r",82*/ -{0xC0,0x08,0xE0,0x19,0x20,0x11,0x20,0x11,0x20,0x13,0x20,0x12,0x60,0x1E,0x40,0x0C},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xFC,0x0F,0xFE,0x1F,0x20,0x10,0x20,0x18,0x00,0x08,0x00,0x00},/*"t",84*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0xE0,0x0F,0xE0,0x1F,0x00,0x10},/*"u",85*/ -{0xE0,0x03,0xE0,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xE0,0x07,0xE0,0x03},/*"v",86*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x18,0x00,0x0F,0x00,0x0F,0x00,0x18,0xE0,0x1F,0xE0,0x0F},/*"w",87*/ -{0x20,0x10,0x60,0x18,0xC0,0x0C,0x80,0x07,0x80,0x07,0xC0,0x0C,0x60,0x18,0x20,0x10},/*"x",88*/ -{0xE0,0x8F,0xE0,0x9F,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xD0,0xE0,0x7F,0xE0,0x3F},/*"y",89*/ -{0x60,0x18,0x60,0x1C,0x20,0x16,0x20,0x13,0xA0,0x11,0xE0,0x10,0x60,0x18,0x20,0x18},/*"z",90*/ -{0x00,0x00,0x00,0x00,0x80,0x00,0xFC,0x1F,0x7E,0x3F,0x02,0x20,0x02,0x20,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3E,0x7C,0x3E,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x02,0x20,0x02,0x20,0x7E,0x3F,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,0x00},/*"}",93*/ -}; -#endif - -void LCD_Common::printInt(uint16_t value, int8_t padding) -{ - uint16_t den = 10000; - for (int8_t i = 5; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_Common::printLong(uint32_t value, int8_t padding) -{ - uint32_t den = 1000000000; - for (int8_t i = 10; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - - -void LCD_SH1106::WriteCommand(unsigned char ins) -{ - Wire.beginTransmission(I2C_ADDR);//0x78 >> 1 - Wire.write(0x00);//0x00 - Wire.write(ins); - Wire.endTransmission(); -} - -void LCD_SH1106::WriteData(unsigned char dat) -{ - Wire.beginTransmission(I2C_ADDR);//0x78 >> 1 - Wire.write(0x40);//0x40 - Wire.write(dat); - Wire.endTransmission(); -} - -void LCD_SH1106::setCursor(unsigned char x, unsigned char y) -{ - m_col = x + 2; - m_row = y; - WriteCommand(0xb0 + m_row); - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address -} - -void LCD_SH1106::clear(byte x, byte y, byte width, byte height) -{ - height >>= 3; - width >>= 3; - y >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - WriteCommand(0xB0 + i + y);//set page address - WriteCommand((x + 2) & 0xf);//set lower column address - WriteCommand(0x10 | (x >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte k = 0; k < width; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - setCursor(0, 0); -} - -size_t LCD_SH1106::write(uint8_t c) -{ - if (c == '\n') { - setCursor(0, m_row + ((m_font == FONT_SIZE_SMALL) ? 1 : 2)); - return 1; - } else if (c == '\r') { - m_col = 0; - return 1; - } - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - for (byte i = 0; i < 5; i++) { - byte d = font5x8[c][i]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.write(0); - } else { - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; i > 0; i--) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; - if (m_col >= 128) { - m_col = 0; - m_row ++; - } -#ifndef MEMORY_SAVING - } else { - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = 0; i <= 14; i += 2) { - byte d = font8x16_terminal[c][i]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = 1; i <= 15; i += 2) { - byte d = font8x16_terminal[c][i]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 17 : 9; - if (m_col >= 128) { - m_col = 0; - m_row += 2; - } - } -#endif -#ifdef TWBR - TWBR = twbrbackup; -#endif - return 1; -} - -void LCD_SH1106::writeDigit(byte n) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - if (m_font == FONT_SIZE_SMALL) { - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - if (n <= 9) { - n += '0' - 0x21; - for (byte i = 0; i < 5; i++) { - Wire.write(font5x8[n][i]); - } - Wire.write(0); - } else { - for (byte i = 0; i < 6; i++) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += 6; - } else if (m_font == FONT_SIZE_MEDIUM) { - write(n <= 9 ? ('0' + n) : ' '); -#ifndef MEMORY_SAVING - } else if (m_font == FONT_SIZE_LARGE) { - if (n <= 9) { - byte i; - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = digits16x16[n][i]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (; i < 32; i ++) { - byte d = digits16x16[n][i]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; -#endif - } else { - if (n <= 9) { - byte i; - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = digits16x24[n][i * 3]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = digits16x24[n][i * 3 + 1]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 2);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = digits16x24[n][i * 3 + 2]; - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 2);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SH1106::draw(const byte* buffer, byte width, byte height) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - - const byte *p = buffer; - height >>= 3; - width >>= 3; - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - WriteCommand(0xB0 + i + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte k = 0; k < width; k++, p++) { - Wire.write(*p); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - m_col += width; -} - -void LCD_SH1106::begin() -{ - Wire.begin(); - - WriteCommand(0xAE); /*display off*/ - - WriteCommand(0x02); /*set lower column address*/ - WriteCommand(0x10); /*set higher column address*/ - - WriteCommand(0x40); /*set display start line*/ - - WriteCommand(0xB0); /*set page address*/ - - WriteCommand(0x81); /*contract control*/ - WriteCommand(0x80); /*128*/ - - WriteCommand(0xA1); /*set segment remap*/ - - WriteCommand(0xA6); /*normal / reverse*/ - - WriteCommand(0xA8); /*multiplex ratio*/ - WriteCommand(0x3F); /*duty = 1/32*/ - - WriteCommand(0xad); /*set charge pump enable*/ - WriteCommand(0x8b); /*external VCC */ - - WriteCommand(0x30); /*0X30---0X33 set VPP 9V liangdu!!!!*/ - - WriteCommand(0xC8); /*Com scan direction*/ - - WriteCommand(0xD3); /*set display offset*/ - WriteCommand(0x00); /* 0x20 */ - - WriteCommand(0xD5); /*set osc division*/ - WriteCommand(0x80); - - WriteCommand(0xD9); /*set pre-charge period*/ - WriteCommand(0x1f); /*0x22*/ - - WriteCommand(0xDA); /*set COM pins*/ - WriteCommand(0x12); - - WriteCommand(0xdb); /*set vcomh*/ - WriteCommand(0x40); - - WriteCommand(0xAF); /*display ON*/ - - clear(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.h deleted file mode 100644 index 95935bc..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/SH1106.h +++ /dev/null @@ -1,66 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for multiple models of monochrome LCD display -* Distributed under GPL v2.0 -* Copyright (c) 2013-2014 Stanley Huang -* All rights reserved. -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include - -//#define MEMORY_SAVING - -typedef enum { - FONT_SIZE_SMALL = 0, - FONT_SIZE_MEDIUM, - FONT_SIZE_LARGE, - FONT_SIZE_XLARGE -} FONT_SIZE; - -#define FLAG_PAD_ZERO 1 -#define FLAG_PIXEL_DOUBLE_H 2 -#define FLAG_PIXEL_DOUBLE_V 4 -#define FLAG_PIXEL_DOUBLE (FLAG_PIXEL_DOUBLE_H | FLAG_PIXEL_DOUBLE_V) - -extern const unsigned char font5x8[][5]; -extern const unsigned char digits8x8[][8] ; -extern const unsigned char digits16x16[][32]; -extern const unsigned char digits16x24[][48]; -extern const unsigned char font8x16_doslike[][16]; -extern const unsigned char font8x16_terminal[][16]; - -class LCD_Common -{ -public: - LCD_Common():m_font(FONT_SIZE_SMALL),m_flags(0) {} - void setFontSize(FONT_SIZE size) { m_font = size; } - void setFlags(byte flags) { m_flags = flags; } - virtual void backlight(bool on) {} - virtual void draw(const byte* buffer, byte width, byte height) {} - void printInt(uint16_t value, int8_t padding = -1); - void printLong(uint32_t value, int8_t padding = -1); -protected: - virtual void writeDigit(byte n) {} - byte m_font; - byte m_flags; -}; - -class LCD_SH1106 : public LCD_Common, public Print -{ -public: - void begin(); - void setCursor(byte column, byte line); - void draw(const byte* buffer, byte width, byte height); - size_t write(uint8_t c); - void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64); - void clearLine(byte line); - byte getLines() { return 21; } - byte getCols() { return 8; } -private: - void WriteCommand(unsigned char ins); - void WriteData(unsigned char dat); - void writeDigit(byte n); - byte m_col; - byte m_row; -}; - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/config.h deleted file mode 100644 index aa60fb1..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/config.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Data logging/streaming out -**************************************/ -#define ENABLE_DATA_OUT 0 -#define ENABLE_DATA_LOG 0 -#define USE_SOFTSERIAL 0 -//this defines the format of log file -#define LOG_FORMAT FORMAT_CSV - -/************************************** -* Choose SD pin here -**************************************/ -#define SD_CS_PIN 10 // SD breakout - -/************************************** -* Choose LCD model here -**************************************/ -LCD_SH1106 lcd; - -/************************************** -* Other options -**************************************/ -//#define DEBUG Serial -#define DEBUG_BAUDRATE 9600 - -#endif // CONFIG_H_INCLUDED diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/datalogger.h deleted file mode 100644 index bf4ccb1..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/datalogger.h +++ /dev/null @@ -1,275 +0,0 @@ -/************************************************************************* -* Freematics Data Logger Class -* Distributed under GPL v2.0 -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -#define FORMAT_BIN 0 -#define FORMAT_TEXT 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -#define PID_DATA_SIZE 0x80 - -#define FILE_NAME_FORMAT "DAT%05d.CSV" -#define FILE_PATH "/DATA/" - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL -SoftwareSerial SerialRF(A2, A3); -#elif defined(RF_SERIAL) -#define SerialRF RF_SERIAL -#else -#define SerialRF Serial -#endif - -#endif - -#if ENABLE_DATA_LOG -static File sdfile; -#endif - -typedef struct { - uint8_t pid; - char name[3]; -} PID_NAME; - -const PID_NAME pidNames[] PROGMEM = { -{PID_ACC, {'A','C','C'}}, -{PID_GYRO, {'G','Y','R'}}, -{PID_COMPASS, {'M','A','G'}}, -{PID_GPS_LATITUDE, {'L','A','T'}}, -{PID_GPS_LONGITUDE, {'L','N','G'}}, -{PID_GPS_ALTITUDE, {'A','L','T'}}, -{PID_GPS_SPEED, {'S','P','D'}}, -{PID_GPS_HEADING, {'C','R','S'}}, -{PID_GPS_SAT_COUNT, {'S','A','T'}}, -{PID_GPS_TIME, {'U','T','C'}}, -{PID_GPS_DATE, {'D','T','E'}}, -{PID_BATTERY_VOLTAGE, {'B','A','T'}}, -{PID_DATA_SIZE, {'D','A','T'}}, -}; - -class CDataLogger { -public: - CDataLogger() - { - m_lastDataTime = 0; -#if ENABLE_DATA_CACHE - cacheBytes = 0; -#endif - } - byte genTimestamp(char* buf, bool absolute) - { - byte n; - if (absolute || dataTime >= m_lastDataTime + 60000) { - // absolute timestamp - n = sprintf(buf, "#%lu,", dataTime); - } else { - // incremental timestamp - n = sprintf(buf, "%u,", (unsigned int)(dataTime - m_lastDataTime)); - } - return n; - } - void record(const char* buf, byte len) - { -#if ENABLE_DATA_LOG -#if STREAM_FORMAT == FORMAT_BIN - dataSize += sdfile.write((uint8_t*)buf, len); -#else - char tmp[12]; - byte n = genTimestamp(tmp, dataSize == 0); - dataSize += sdfile.write((uint8_t*)tmp, n); - dataSize += sdfile.write((uint8_t*)buf, len); - sdfile.println(); - dataSize += 3; -#endif -#endif - m_lastDataTime = dataTime; - } - void dispatch(const char* buf, byte len) - { -#if ENABLE_DATA_CACHE - if (cacheBytes + len < MAX_CACHE_SIZE - 10) { - cacheBytes += genTimestamp(cache + cacheBytes, cacheBytes == 0); - memcpy(cache + cacheBytes, buf, len); - cacheBytes += len; - cache[cacheBytes++] = '\n'; - cache[cacheBytes] = 0; - } -#endif -#if ENABLE_DATA_OUT - SerialRF.write((uint8_t*)buf, len); - SerialRF.println(); -#endif - } - void logData(const char* buf, byte len) - { -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid) - { - char buf[8]; - byte len = translatePIDName(pid, buf); -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, int16_t value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%ld", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%lu", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int values[]) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d,%d,%d", values[0], values[1], values[2]) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {values[0], values[1], values[2]}}; - ld.checksum = getChecksum((char*)&ld, 20); - dispatch((const char*)&ld, 20); -#else - dispatch(buf, len); -#endif - record(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = FILE_PATH; - - dataSize = 0; - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + sizeof(FILE_PATH) - 1, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + sizeof(FILE_PATH) - 1, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - m_lastDataTime = dateTime; - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -#if ENABLE_DATA_CACHE - char cache[MAX_CACHE_SIZE]; - int cacheBytes; -#endif -private: - byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } - byte translatePIDName(uint16_t pid, char* text) - { -#if STREAM_FORMAT == FORMAT_TEXT && USE_FRIENDLY_PID_NAME - for (uint16_t n = 0; n < sizeof(pidNames) / sizeof(pidNames[0]); n++) { - uint16_t id = pgm_read_byte(&pidNames[n].pid); - if (pid == id) { - memcpy_P(text, pidNames[n].name, 3); - text[3] = ','; - return 4; - } - } -#endif - return sprintf(text, "%X,", pid); - } - uint32_t m_lastDataTime; -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/esplogger.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/esplogger.ino deleted file mode 100644 index 6d9fb05..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/esplogger.ino +++ /dev/null @@ -1,370 +0,0 @@ -/************************************************************************* -* OBD-II Data Logger based on ESP8266 or ESP32 -* Distributed under GPL v2.0 -* Developed by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "SH1106.h" -#include "images.h" -#include "config.h" -#include "datalogger.h" - -// logger states -#define STATE_SD_READY 0x1 -#define STATE_OBD_READY 0x2 -#define STATE_GPS_FOUND 0x4 -#define STATE_GPS_READY 0x8 -#define STATE_ACC_READY 0x10 -#define STATE_SLEEPING 0x20 - -static uint32_t lastFileSize = 0; -static int lastSpeed = -1; -static int speed = 0; -static uint32_t distance = 0; -static uint16_t fileIndex = 0; -static uint32_t startTime = 0; -static uint8_t lastPid = 0; -static int lastValue = 0; - -static byte pidTier1[]= {PID_RPM, PID_SPEED, PID_ENGINE_LOAD, PID_THROTTLE}; -static byte pidTier2[] = {PID_INTAKE_MAP, PID_MAF_FLOW, PID_TIMING_ADVANCE}; -static byte pidTier3[] = {PID_COOLANT_TEMP, PID_INTAKE_TEMP, PID_AMBIENT_TEMP, PID_FUEL_LEVEL}; - -#define TIER_NUM1 sizeof(pidTier1) -#define TIER_NUM2 sizeof(pidTier2) -#define TIER_NUM3 sizeof(pidTier3) - -byte pidValue[TIER_NUM1]; - -#ifdef ESP32 -HardwareSerial Serial1(1); -#endif - -class COBDLogger : public COBD, public CDataLogger -{ -public: - COBDLogger():state(0) {} - void setup() - { - pinMode(8, OUTPUT); - digitalWrite(8, LOW); - - showStates(); - -#if USE_MPU6050 - Wire.begin(); - if (MPU6050_init() == 0) { - state |= STATE_ACC_READY; - showStates(); - } -#endif - - do { - showStates(); - } while (!init()); - - state |= STATE_OBD_READY; - - showStates(); - -#if ENABLE_DATA_LOG - // open file for logging - if (!(state & STATE_SD_READY)) { - if (checkSD()) { - state |= STATE_SD_READY; - showStates(); - } - } - - if (state & STATE_SD_READY) { - uint16_t index = openFile(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(86, 0); - if (index) { - lcd.write('['); - lcd.setFlags(FLAG_PAD_ZERO); - lcd.printInt(index, 5); - lcd.setFlags(0); - lcd.write(']'); - } else { - lcd.print("NO LOG"); - } - delay(100); - } -#endif - - initLoggerScreen(); - } - void loop() - { - static byte index = 0; - static byte index2 = 0; - static byte index3 = 0; - - // poll OBD-II PIDs - logOBDData(pidTier1[index++]); - if (index == TIER_NUM1) { - index = 0; - if (index2 == TIER_NUM2) { - index2 = 0; - logOBDData(pidTier3[index3]); - index3 = (index3 + 1) % TIER_NUM3; - } else { - logOBDData(pidTier2[index2++]); - } - } - - // display distance travelled (GPS) - char buf[10]; - sprintf(buf, "%4ukm", (uint16_t)(distance / 1000)); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(92, 6); - lcd.print(buf); - -#if USE_MPU6050 - if (state & STATE_ACC_READY) { - processAccelerometer(); - } -#endif - -#if ENABLE_DATA_LOG - // flush SD data every 1KB - if (dataSize - lastFileSize >= 1024) { - flushFile(); - lastFileSize = dataSize; - // display logged data size - char buf[7]; - sprintf(buf, "%4uKB", (int)(dataSize >> 10)); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(92, 7); - lcd.print(buf); - } -#endif - - if (errors >= 2) { - reconnect(); - } - } -#if ENABLE_DATA_LOG - bool checkSD() - { - state &= ~STATE_SD_READY; - if (!SD.begin()) { - lcd.print("SD "); - lcd.draw(cross, 16, 16); - lcd.println(); - return false; - } - - uint8_t cardType = SD.cardType(); - if(cardType == CARD_NONE){ - lcd.println("No SD card"); - return false; - } - - if(cardType == CARD_MMC){ - Serial.print("MMC "); - } else if(cardType == CARD_SD){ - Serial.print("SDSC "); - } else if(cardType == CARD_SDHC){ - Serial.print("SDHC "); - } else { - Serial.print("SD "); - } - unsigned int cardSize = (unsigned int)SD.cardSize() >> 30; - lcd.print(cardSize); - lcd.println("G"); - - state |= STATE_SD_READY; - return true; - } -#endif -private: - void dataIdleLoop() - { - if (lastPid) { - showLoggerData(lastPid, lastValue); - lastPid = 0; - } - } -#if USE_MPU6050 - void processAccelerometer() - { - accel_t_gyro_union data; - MPU6050_readout(&data); - dataTime = millis(); - // log x/y/z of accelerometer - logData(PID_ACC, data.value.x_accel, data.value.y_accel, data.value.z_accel); - //showGForce(data.value.y_accel); - // log x/y/z of gyro meter - logData(PID_GYRO, data.value.x_gyro, data.value.y_gyro, data.value.z_gyro); - } -#endif - int logOBDData(byte pid) - { - int value = 0; - // send a query to OBD adapter for specified OBD-II pid - if (readPID(pid, value)) { - dataTime = millis(); - // log data to SD card - logData(0x100 | pid, value); - lastValue = value; - lastPid = pid; - } - return value; - } - void reconnect() - { -#if ENABLE_DATA_LOG - closeFile(); -#endif - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - startTime = millis(); - state &= ~(STATE_OBD_READY | STATE_ACC_READY); - state |= STATE_SLEEPING; - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; ; i++) { - if (i == 5) { - lcd.backlight(false); - lcd.clear(); - } - if (init()) { - int value; - if (readPID(PID_RPM, value) && value > 0) - break; - } - } - state &= ~STATE_SLEEPING; - fileIndex++; - recover(); - setup(); - } - byte state; - - void showTickCross(bool yes) - { - lcd.draw(yes ? tick : cross, 16, 16); - } - // screen layout related stuff - void showStates() - { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(0, 4); - lcd.print("OBD "); - showTickCross(state & STATE_OBD_READY); - lcd.setCursor(0, 6); - lcd.print("ACC "); - showTickCross(state & STATE_ACC_READY); - } - void showLoggerData(byte pid, int value) - { - char buf[8]; - switch (pid) { - case PID_RPM: - lcd.setCursor(64, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - break; - case PID_SPEED: - if (lastSpeed != value) { - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - lastSpeed = value; - } - break; - case PID_THROTTLE: - lcd.setCursor(24, 5); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(value % 100); - break; - case PID_INTAKE_TEMP: - if (value < 1000) { - lcd.setCursor(102, 5); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(value); - } - break; - } - } -#if USE_MPU6050 - void showGForce(int g) - { - byte n; - /* 0~1.5g -> 0~8 */ - g /= 85 * 25; - lcd.setFont(FONT_SIZE_SMALL); - lcd.setCursor(0, 3); - if (g == 0) { - lcd.clearLine(1); - } else if (g < 0 && g >= -10) { - for (n = 0; n < 10 + g; n++) { - lcd.write(' '); - } - for (; n < 10; n++) { - lcd.write('<'); - } - lcd.print(" "); - } else if (g > 0 && g < 10) { - lcd.print(" "); - for (n = 0; n < g; n++) { - lcd.write('>'); - } - for (; n < 10; n++) { - lcd.write(' '); - } - } - } -#endif - void initLoggerScreen() - { - lcd.clear(); - lcd.backlight(true); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 3); - lcd.print("km/h"); - lcd.setCursor(110, 3); - lcd.print("rpm"); - lcd.setCursor(0, 5); - lcd.print("THR:"); - lcd.setCursor(80, 5); - lcd.print("AIR:"); - } -}; - -static COBDLogger logger; - -void setup() -{ - Serial.begin(115200); - Serial.println("Freematics"); - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.println("ESPLogger"); - delay(1000); - - logger.begin(); - -#if ENABLE_DATA_LOG - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(0, 2); - logger.checkSD(); -#endif - - logger.setup(); - - -} - -void loop() -{ - logger.loop(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/images.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/images.h deleted file mode 100644 index 226c8ec..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/esplogger/images.h +++ /dev/null @@ -1,5 +0,0 @@ -const uint8_t tick[16 *16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -const uint8_t cross[16 *16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/config.h deleted file mode 100644 index aebbfe0..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/config.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Data logging/streaming out -**************************************/ -#define ENABLE_DATA_OUT 1 -#define ENABLE_DATA_LOG 1 -#define USE_SOFTSERIAL 1 -//this defines the format of log file -#define STREAM_FORMAT FORMAT_TEXT -#define STREAM_BAUDRATE 9600 - -/************************************** -* Choose SD pin here -**************************************/ -#define SD_CS_PIN SS - -/************************************** -* Other options -**************************************/ -#define GPS_BAUDRATE 115200 -#define USE_MPU6050 1 - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/datalogger.h deleted file mode 100644 index 40847d8..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/datalogger.h +++ /dev/null @@ -1,257 +0,0 @@ -/************************************************************************* -* Arduino Data Logger Class -* Distributed under GPL v2.0 -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -#define FORMAT_BIN 0 -#define FORMAT_CSV 1 -#define FORMAT_TEXT 2 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -#define PID_DATA_SIZE 0x80 - -#define FILE_NAME_FORMAT "/DAT%05d.CSV" - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL -SoftwareSerial SerialRF(A2, A3); -#else -#define SerialRF Serial -#endif - -#endif - -#if ENABLE_DATA_LOG -static File sdfile; -#endif - -typedef struct { - uint16_t pid; - char name[3]; -} PID_NAME; - -const PID_NAME pidNames[] PROGMEM = { -{PID_ACC, {'A','C','C'}}, -{PID_GYRO, {'G','Y','R'}}, -{PID_COMPASS, {'M','A','G'}}, -{PID_GPS_LATITUDE, {'L','A','T'}}, -{PID_GPS_LONGITUDE, {'L','O','N'}}, -{PID_GPS_ALTITUDE, {'A','L','T'}}, -{PID_GPS_SPEED, {'S','P','D'}}, -{PID_GPS_HEADING, {'C','R','S'}}, -{PID_GPS_SAT_COUNT, {'S','A','T'}}, -{PID_GPS_TIME, {'T','I','M'}}, -{PID_GPS_DATE, {'D','T','E'}}, -{PID_BATTERY_VOLTAGE, {'B','A','T'}}, -{PID_DATA_SIZE, {'D','A','T'}}, -}; - -class CDataLogger { -public: - void initSender() - { -#if ENABLE_DATA_OUT - SerialRF.begin(STREAM_BAUDRATE); - /* - SerialRF.print("AT+NAMEFreematics"); - delay(10); - while (SerialRF.available()) SerialRF.read(); - SerialRF.println(); - */ - m_lastSendTime = 0; -#endif -#if ENABLE_DATA_LOG - m_lastDataTime = 0; -#endif - } - void recordData(const char* buf, byte len) - { -#if ENABLE_DATA_LOG - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.write(buf, len); - m_lastDataTime = dataTime; -#endif - } - void sendData(const char* buf, byte len) - { - SerialRF.write(buf, len); -#if MIN_DATA_INTERVAL - uint32_t t = millis(); - uint32_t elapsed = t - m_lastSendTime; - if (elapsed < MIN_DATA_INTERVAL) delay(MIN_DATA_INTERVAL - elapsed); - m_lastSendTime = t; -#else - delay(10); -#endif - } - void logData(char c) - { -#if ENABLE_DATA_LOG - if (c >= ' ') { - sdfile.write(c); - dataSize++; - } -#endif - } - void logData(uint16_t pid, int value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d\r", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - sendData((char*)&ld, 12); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%ld\r", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - sendData((uint8_t*)&ld, 12); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%lu\r", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - sendData((uint8_t*)&ld, 12); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d,%d,%d\r", value1, value2, value3) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); - SerialRF.write((uint8_t*)&ld, 20); -#else - sendData(buf, len); -#endif -#endif - recordData(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - dataSize = 0; - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - m_lastDataTime = dateTime; - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -private: - byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } -#if STREAM_FORMAT == FORMAT_TEXT - byte translatePIDName(uint16_t pid, char* text) - { -#if STREAM_FORMAT == FORMAT_TEXT - for (uint16_t n = 0; n < sizeof(pidNames) / sizeof(pidNames[0]); n++) { - uint16_t id = pgm_read_word(&pidNames[n].pid); - if (pid == id) { - memcpy_P(text, pidNames[n].name, 3); - text[3] = ','; - return 4; - } - } -#endif - return sprintf(text, "%X,", pid); - } -#endif -#if ENABLE_DATA_LOG - uint32_t m_lastDataTime; -#endif -#if ENABLE_DATA_OUT - uint32_t m_lastSendTime; -#endif -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/gpslogger.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/gpslogger.ino deleted file mode 100644 index 198b1d9..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/gpslogger/gpslogger.ino +++ /dev/null @@ -1,177 +0,0 @@ -/************************************************************************* -* Reference code for generic GPS data logger -* Works with Freematics GPS Data Logger Kit -* Visit http://freematics.com for more information -* Distributed under GPL v2.0 -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include -#include "config.h" -#if USE_SOFTSERIAL -#include -#endif -#include "datalogger.h" - -#if USE_MPU6050 -#include -#include -#endif - -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) -#define GPSUART Serial2 -#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega32U4__) -#define GPSUART Serial1 -#else -#define GPSUART Serial -#endif - -TinyGPS gps; - -CDataLogger logger; - -bool acc = false; - -#if USE_MPU6050 -bool initACC() -{ - return MPU6050_init() == 0; -} - -void processACC() -{ - accel_t_gyro_union data; - MPU6050_readout(&data); - logger.dataTime = millis(); - // log x/y/z of accelerometer - logger.logData(PID_ACC, data.value.x_accel, data.value.y_accel, data.value.z_accel); -} -#endif - -void processGPS() -{ - long lat, lon; - int speed = 0; - int16_t alt = 0; - uint32_t date, time; - - logger.dataTime = millis(); - gps.get_datetime(&date, &time, 0); - logger.logData(PID_GPS_TIME, (int32_t)time); - - speed = (int)(gps.speed() * 1852 / 100000); - logger.logData(PID_GPS_SPEED, speed); - - //logger.logData(PID_GPS_SAT_COUNT, (int)gps.satellites()); - - alt = gps.altitude() / 100; - if (alt > -10000 && alt < 10000) { - logger.logData(PID_GPS_ALTITUDE, alt); - } - - gps.get_position(&lat, &lon, 0); - logger.logData(PID_GPS_LATITUDE, lat); - logger.logData(PID_GPS_LONGITUDE, lon); -} - -bool CheckSD() -{ - Sd2Card card; - //SdVolume volume; - - pinMode(SS, OUTPUT); - if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) { - const char* type; - char buf[20]; - - switch (card.type()) { - case SD_CARD_TYPE_SD1: - type = "SD1"; - break; - case SD_CARD_TYPE_SD2: - type = "SD2"; - break; - case SD_CARD_TYPE_SDHC: - type = "SDHC"; - break; - default: - type = "SDx"; - } - SerialRF.print(type); - SerialRF.print(' '); - } else { - SerialRF.println("No SD"); - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - SerialRF.println("Bad SD"); - return false; - } - return true; -} - -void setup() -{ - logger.initSender(); - SerialRF.println("Init..."); - -#if ENABLE_DATA_LOG - if (CheckSD()) { - int index = logger.openFile(); - SerialRF.print("File ID:"); - SerialRF.println(index); - } -#endif - -#if USE_MPU6050 - Wire.begin(); - acc = initACC(); - - SerialRF.print("ACC:"); - SerialRF.println(acc ? "YES" : "NO"); -#endif - - GPSUART.begin(GPS_BAUDRATE); - delay(500); - - while (!GPSUART.available()) { - SerialRF.println("Waiting..."); - delay(500); - } - // init GPS - SerialRF.println("Searching..."); - for (;;) { - if (!GPSUART.available()) continue; - char c = GPSUART.read(); - if (!gps.encode(c)) break; - } -} - -void loop() -{ -#if ENABLE_DATA_LOG - static uint32_t lastTime = 0; - // flush file every 3 seconds - if (logger.dataTime - lastTime >= 3000) { - lastTime = logger.dataTime; - logger.flushFile(); - } -#endif - -#if USE_MPU6050 - if (acc) { - processACC(); - } -#endif - - if (GPSUART.available()) { - char c = GPSUART.read(); - if (gps.encode(c)) { - processGPS(); - } - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.cpp deleted file mode 100644 index a602b18..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.cpp +++ /dev/null @@ -1,657 +0,0 @@ -/************************************************************************* -* Arduino Text Display Library for Multiple LCDs -* Distributed under GPL v2.0 -* Copyright (c) 2013 Stanley Huang -* All rights reserved. -*************************************************************************/ - -#include -#include -#include "MicroLCD.h" - -// fonts data -const PROGMEM unsigned char digits16x24[][48] = { -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"0",0*/ -{0x00,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,0x00,0xFC,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/ -{0x00,0x00,0x00,0xF8,0x00,0xE0,0xFC,0x00,0xF8,0xFE,0x00,0xFE,0xFE,0x80,0xFF,0xFF,0xC0,0xFF,0x07,0xF0,0xFF,0x07,0xFC,0xFF,0x07,0xFF,0xEF,0xFF,0xFF,0xE3,0xFF,0xFF,0xE1,0xFE,0x7F,0xE0,0xFE,0x3F,0xE0,0xFC,0x0F,0xE0,0xF0,0x03,0x00,0x00,0x00,0x00},/*"2",2*/ -{0x00,0x00,0x00,0xF8,0x80,0x1F,0xFE,0x80,0x3F,0xFE,0x80,0x7F,0xFF,0x80,0x7F,0xFF,0x80,0xFF,0xFF,0x9C,0xFF,0xFF,0x9C,0xFF,0x07,0x1C,0xE0,0x07,0x3E,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"3",3*/ -{0x00,0xF0,0x0F,0x00,0xFE,0x0F,0x80,0xFF,0x0F,0xE0,0xFF,0x0F,0xFC,0xBF,0x0F,0xFF,0x87,0x0F,0xFF,0x81,0x0F,0x3F,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x0F,0x00,0x80,0x0F},/*"4",4*/ -{0x00,0x00,0x00,0xFF,0xC7,0x0F,0xFF,0xC7,0x3F,0xFF,0xC7,0x7F,0xFF,0xC7,0x7F,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x87,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0xFF,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x7F,0x87,0xFF,0x7F,0x87,0xFF,0x3F,0x07,0xFE,0x1F},/*"5",5*/ -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x06,0xE0,0x07,0x07,0xE0,0x07,0x07,0xE0,0x3F,0xFF,0xFF,0x3F,0xFF,0xFF,0x3E,0xFF,0x7F,0x3E,0xFE,0x7F,0x3C,0xFE,0x3F,0x38,0xF8,0x1F},/*"6",6*/ -{0x00,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0xC0,0x07,0x00,0xF8,0x07,0x00,0xFF,0x07,0xE0,0xFF,0x07,0xFE,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x07,0xFF,0xFF,0x00,0xFF,0x0F,0x00,0xFF,0x01,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"7",1*/ -{0x00,0x00,0x00,0xF0,0xE3,0x1F,0xFC,0xF7,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"8",8*/ -{0x00,0x00,0x00,0xF8,0x1F,0x1C,0xFC,0x7F,0x3C,0xFE,0x7F,0x7C,0xFE,0xFF,0x7C,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0x07,0xE0,0xE0,0x07,0xE0,0xE0,0x07,0x60,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"9",9*/ -}; - -const PROGMEM unsigned char digits8x8[][8] = { -{0x3C,0x7E,0x83,0x81,0x81,0x7E,0x3C,0x00},/*0*/ -{0x84,0x84,0x82,0xFF,0xFF,0x80,0x80,0x00},/*1*/ -{0x84,0xC6,0xE1,0xA1,0xB1,0x9F,0x8E,0x00},/*2*/ -{0x42,0xC3,0x81,0x89,0x89,0xFF,0x76,0x00},/*3*/ -{0x20,0x38,0x24,0x22,0xFF,0xFF,0x20,0x00},/*4*/ -{0x5F,0xDF,0x99,0x89,0x89,0xF9,0x70,0x00},/*5*/ -{0x3C,0x7E,0x89,0x89,0x89,0xFB,0x72,0x00},/*6*/ -{0x01,0x01,0xE1,0xF9,0x1D,0x07,0x01,0x00},/*7*/ -{0x6E,0xFF,0x89,0x89,0x99,0xFF,0x76,0x00},/*8*/ -{0x4E,0xDF,0x91,0x91,0x91,0x7F,0x3E,0x00},/*9*/ -}; - -// The 7-bit ASCII character set... -const PROGMEM unsigned char font5x8[][5] = { - { 0x00, 0x00, 0x5f, 0x00, 0x00 }, // 21 ! - { 0x00, 0x07, 0x00, 0x07, 0x00 }, // 22 " - { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // 23 # - { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // 24 $ - { 0x23, 0x13, 0x08, 0x64, 0x62 }, // 25 % - { 0x36, 0x49, 0x55, 0x22, 0x50 }, // 26 & - { 0x00, 0x05, 0x03, 0x00, 0x00 }, // 27 ' - { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // 28 ( - { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // 29 ) - { 0x14, 0x08, 0x3e, 0x08, 0x14 }, // 2a * - { 0x08, 0x08, 0x3e, 0x08, 0x08 }, // 2b + - { 0x00, 0x50, 0x30, 0x00, 0x00 }, // 2c , - { 0x08, 0x08, 0x08, 0x08, 0x08 }, // 2d - - { 0x00, 0x60, 0x60, 0x00, 0x00 }, // 2e . - { 0x20, 0x10, 0x08, 0x04, 0x02 }, // 2f / - { 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 30 0 - { 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 31 1 - { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 32 2 - { 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 33 3 - { 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 34 4 - { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 35 5 - { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 36 6 - { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 37 7 - { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 38 8 - { 0x06, 0x49, 0x49, 0x29, 0x1e }, // 39 9 - { 0x00, 0x36, 0x36, 0x00, 0x00 }, // 3a : - { 0x00, 0x56, 0x36, 0x00, 0x00 }, // 3b ; - { 0x08, 0x14, 0x22, 0x41, 0x00 }, // 3c < - { 0x14, 0x14, 0x14, 0x14, 0x14 }, // 3d = - { 0x00, 0x41, 0x22, 0x14, 0x08 }, // 3e > - { 0x02, 0x01, 0x51, 0x09, 0x06 }, // 3f ? - { 0x32, 0x49, 0x79, 0x41, 0x3e }, // 40 @ - { 0x7e, 0x11, 0x11, 0x11, 0x7e }, // 41 A - { 0x7f, 0x49, 0x49, 0x49, 0x36 }, // 42 B - { 0x3e, 0x41, 0x41, 0x41, 0x22 }, // 43 C - { 0x7f, 0x41, 0x41, 0x22, 0x1c }, // 44 D - { 0x7f, 0x49, 0x49, 0x49, 0x41 }, // 45 E - { 0x7f, 0x09, 0x09, 0x09, 0x01 }, // 46 F - { 0x3e, 0x41, 0x49, 0x49, 0x7a }, // 47 G - { 0x7f, 0x08, 0x08, 0x08, 0x7f }, // 48 H - { 0x00, 0x41, 0x7f, 0x41, 0x00 }, // 49 I - { 0x20, 0x40, 0x41, 0x3f, 0x01 }, // 4a J - { 0x7f, 0x08, 0x14, 0x22, 0x41 }, // 4b K - { 0x7f, 0x40, 0x40, 0x40, 0x40 }, // 4c L - { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // 4d M - { 0x7f, 0x04, 0x08, 0x10, 0x7f }, // 4e N - { 0x3e, 0x41, 0x41, 0x41, 0x3e }, // 4f O - { 0x7f, 0x09, 0x09, 0x09, 0x06 }, // 50 P - { 0x3e, 0x41, 0x51, 0x21, 0x5e }, // 51 Q - { 0x7f, 0x09, 0x19, 0x29, 0x46 }, // 52 R - { 0x46, 0x49, 0x49, 0x49, 0x31 }, // 53 S - { 0x01, 0x01, 0x7f, 0x01, 0x01 }, // 54 T - { 0x3f, 0x40, 0x40, 0x40, 0x3f }, // 55 U - { 0x1f, 0x20, 0x40, 0x20, 0x1f }, // 56 V - { 0x3f, 0x40, 0x38, 0x40, 0x3f }, // 57 W - { 0x63, 0x14, 0x08, 0x14, 0x63 }, // 58 X - { 0x07, 0x08, 0x70, 0x08, 0x07 }, // 59 Y - { 0x61, 0x51, 0x49, 0x45, 0x43 }, // 5a Z - { 0x00, 0x7f, 0x41, 0x41, 0x00 }, // 5b [ - { 0x02, 0x04, 0x08, 0x10, 0x20 }, // 5c backslash - { 0x00, 0x41, 0x41, 0x7f, 0x00 }, // 5d ] - { 0x04, 0x02, 0x01, 0x02, 0x04 }, // 5e ^ - { 0x40, 0x40, 0x40, 0x40, 0x40 }, // 5f _ - { 0x00, 0x01, 0x02, 0x04, 0x00 }, // 60 ` - { 0x20, 0x54, 0x54, 0x54, 0x78 }, // 61 a - { 0x7f, 0x48, 0x44, 0x44, 0x38 }, // 62 b - { 0x38, 0x44, 0x44, 0x44, 0x20 }, // 63 c - { 0x38, 0x44, 0x44, 0x48, 0x7f }, // 64 d - { 0x38, 0x54, 0x54, 0x54, 0x18 }, // 65 e - { 0x08, 0x7e, 0x09, 0x01, 0x02 }, // 66 f - { 0x0c, 0x52, 0x52, 0x52, 0x3e }, // 67 g - { 0x7f, 0x08, 0x04, 0x04, 0x78 }, // 68 h - { 0x00, 0x44, 0x7d, 0x40, 0x00 }, // 69 i - { 0x20, 0x40, 0x44, 0x3d, 0x00 }, // 6a j - { 0x7f, 0x10, 0x28, 0x44, 0x00 }, // 6b k - { 0x00, 0x41, 0x7f, 0x40, 0x00 }, // 6c l - { 0x7c, 0x04, 0x18, 0x04, 0x78 }, // 6d m - { 0x7c, 0x08, 0x04, 0x04, 0x78 }, // 6e n - { 0x38, 0x44, 0x44, 0x44, 0x38 }, // 6f o - { 0x7c, 0x14, 0x14, 0x14, 0x08 }, // 70 p - { 0x08, 0x14, 0x14, 0x18, 0x7c }, // 71 q - { 0x7c, 0x08, 0x04, 0x04, 0x08 }, // 72 r - { 0x48, 0x54, 0x54, 0x54, 0x20 }, // 73 s - { 0x04, 0x3f, 0x44, 0x40, 0x20 }, // 74 t - { 0x3c, 0x40, 0x40, 0x20, 0x7c }, // 75 u - { 0x1c, 0x20, 0x40, 0x20, 0x1c }, // 76 v - { 0x3c, 0x40, 0x30, 0x40, 0x3c }, // 77 w - { 0x44, 0x28, 0x10, 0x28, 0x44 }, // 78 x - { 0x0c, 0x50, 0x50, 0x50, 0x3c }, // 79 y - { 0x44, 0x64, 0x54, 0x4c, 0x44 }, // 7a z - { 0x00, 0x08, 0x36, 0x41, 0x00 }, // 7b { - { 0x00, 0x00, 0x7f, 0x00, 0x00 }, // 7c | - { 0x00, 0x41, 0x36, 0x08, 0x00 }, // 7d } - { 0x10, 0x08, 0x08, 0x10, 0x08 }, // 7e ~ -}; - -#ifndef MEMORY_SAVING -const PROGMEM unsigned char digits16x16[][32] = { -{0x00,0xE0,0xF8,0xFC,0xFE,0x1E,0x07,0x07,0x07,0x07,0x1E,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x3F,0x3F,0x7C,0x70,0x70,0x70,0x70,0x7C,0x3F,0x1F,0x1F,0x07,0x00},/*0*/ -{0x00,0x00,0x00,0x06,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},/*1*/ -{0x00,0x38,0x3C,0x3E,0x3E,0x0F,0x07,0x07,0x07,0xCF,0xFF,0xFE,0xFE,0x38,0x00,0x00,0x00,0x40,0x40,0x60,0x70,0x78,0x7C,0x7E,0x7F,0x77,0x73,0x71,0x70,0x70,0x00,0x00},/*2*/ -{0x00,0x18,0x1C,0x1E,0x1E,0x0F,0xC7,0xC7,0xE7,0xFF,0xFE,0xBE,0x9C,0x00,0x00,0x00,0x00,0x0C,0x1C,0x3C,0x3C,0x78,0x70,0x70,0x70,0x79,0x7F,0x3F,0x1F,0x0F,0x00,0x00},/*3*/ -{0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x7F,0x7F,0x7F,0x7F,0x06,0x06,0x00},/*4*/ -{0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xE7,0xE7,0xE7,0xE7,0xC7,0x87,0x00,0x00,0x00,0x00,0x38,0x78,0x71,0x70,0x70,0x70,0x70,0x70,0x39,0x3F,0x3F,0x1F,0x0F,0x00},/*5*/ -{0x00,0x80,0xE0,0xF0,0xF8,0xFC,0x7F,0x7F,0x6F,0x67,0xE1,0xE1,0xC0,0x80,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x3F,0x78,0x70,0x70,0x70,0x70,0x78,0x3F,0x3F,0x1F,0x0F,0x00},/*6*/ -{0x00,0x07,0x07,0x07,0x07,0x07,0xC7,0xE7,0xF7,0xFF,0x7F,0x3F,0x1F,0x07,0x03,0x01,0x00,0x20,0x38,0x7C,0x7E,0x3F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*7*/ -{0x00,0x00,0x00,0x1C,0xBE,0xFE,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFE,0xBE,0x1C,0x00,0x00,0x00,0x0E,0x3F,0x3F,0x7F,0x71,0x60,0x60,0x60,0x71,0x7F,0x3F,0x3F,0x0F,0x00},/*8*/ -{0x00,0x78,0xFC,0xFE,0xFE,0x8F,0x07,0x07,0x07,0x07,0x8F,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0x00,0x00,0x01,0x43,0x43,0x73,0x7B,0x7F,0x7F,0x1F,0x0F,0x07,0x03,0x00,0x00},/*9*/ -}; - -const PROGMEM unsigned char font8x16_terminal[][16] = { -{0x00,0x00,0x00,0x00,0x7C,0x00,0xFE,0x1B,0xFE,0x1B,0x7C,0x00,0x00,0x00,0x00,0x00},/*"!",0*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00},/*""",1*/ -{0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01,0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01},/*"#",2*/ -{0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0xFF,0x3F,0x84,0x08,0x8C,0x0F,0x18,0x07},/*"$",3*/ -{0x1C,0x18,0x14,0x1E,0x9C,0x07,0xE0,0x01,0x78,0x1C,0x1E,0x14,0x06,0x1C,0x00,0x00},/*"%",4*/ -{0xBC,0x1F,0xFE,0x10,0x42,0x10,0xC2,0x10,0xFE,0x1F,0x3C,0x0F,0x80,0x19,0x80,0x10},/*"&",5*/ -{0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ -{0x00,0x00,0x00,0x00,0xF0,0x07,0xFC,0x1F,0x0E,0x38,0x02,0x20,0x00,0x00,0x00,0x00},/*"(",7*/ -{0x00,0x00,0x00,0x00,0x02,0x20,0x0E,0x38,0xFC,0x1F,0xF0,0x07,0x00,0x00,0x00,0x00},/*")",8*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"*",9*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+",10*/ -{0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00},/*",",11*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-",12*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},/*".",13*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",14*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0xC2,0x10,0xC2,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"0",15*/ -{0x00,0x00,0x08,0x10,0x0C,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"1",16*/ -{0x04,0x1C,0x06,0x1E,0x02,0x13,0x82,0x11,0xC2,0x10,0x62,0x10,0x3E,0x18,0x1C,0x18},/*"2",17*/ -{0x04,0x08,0x06,0x18,0x02,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"3",18*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x01,0x0C,0x11,0xFE,0x1F,0xFE,0x1F,0x00,0x11},/*"4",19*/ -{0x7E,0x08,0x7E,0x18,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC2,0x1F,0x82,0x0F},/*"5",20*/ -{0xF8,0x0F,0xFC,0x1F,0x46,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC0,0x1F,0x80,0x0F},/*"6",21*/ -{0x06,0x00,0x06,0x00,0x02,0x00,0x02,0x1F,0xC2,0x1F,0xF2,0x00,0x3E,0x00,0x0E,0x00},/*"7",22*/ -{0xBC,0x0F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"8",23*/ -{0x3C,0x00,0x7E,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x18,0xFE,0x0F,0xFC,0x07},/*"9",24*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x3C,0x60,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x0C,0x18,0x04,0x10,0x00,0x00},/*"<",28*/ -{0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02},/*"=",29*/ -{0x04,0x10,0x0C,0x18,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00,0x00,0x00},/*">",30*/ -{0x04,0x00,0x06,0x00,0x02,0x00,0x82,0x1B,0xC2,0x1B,0x62,0x00,0x3E,0x00,0x1C,0x00},/*"?",31*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x82,0x11,0xC2,0x13,0xE2,0x13,0xFE,0x13,0xFC,0x03},/*"@",32*/ -{0xF0,0x1F,0xF8,0x1F,0x0C,0x01,0x06,0x01,0x06,0x01,0x0C,0x01,0xF8,0x1F,0xF0,0x1F},/*"A",33*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"B",34*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x02,0x10,0x02,0x10,0x06,0x18,0x0C,0x0C},/*"C",35*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"D",36*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0xE2,0x10,0x06,0x18,0x06,0x18},/*"E",37*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0xE2,0x00,0x06,0x00,0x06,0x00},/*"F",38*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x82,0x10,0x82,0x10,0x86,0x0F,0x8C,0x1F},/*"G",39*/ -{0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFE,0x1F,0xFE,0x1F},/*"H",40*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00},/*"I",41*/ -{0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x02,0x00},/*"J",42*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0xE0,0x00,0xB0,0x01,0x18,0x03,0x0E,0x1E,0x06,0x1C},/*"K",43*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x18},/*"L",44*/ -{0xFE,0x1F,0xFE,0x1F,0x18,0x00,0xF0,0x00,0xF0,0x00,0x18,0x00,0xFE,0x1F,0xFE,0x1F},/*"M",45*/ -{0xFE,0x1F,0xFE,0x1F,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0xFE,0x1F,0xFE,0x1F},/*"N",46*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFC,0x0F},/*"O",47*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0x42,0x00,0x7E,0x00,0x3C,0x00},/*"P",48*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x1C,0x02,0x38,0x02,0x70,0xFE,0x5F,0xFC,0x0F},/*"Q",49*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x00,0x42,0x00,0xC2,0x00,0xFE,0x1F,0x3C,0x1F},/*"R",50*/ -{0x1C,0x0C,0x3E,0x1C,0x62,0x10,0x42,0x10,0x42,0x10,0xC2,0x10,0x8E,0x1F,0x0C,0x0F},/*"S",51*/ -{0x06,0x00,0x06,0x00,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x06,0x00,0x06,0x00},/*"T",52*/ -{0xFE,0x0F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0xFE,0x1F,0xFE,0x0F},/*"U",53*/ -{0xFE,0x03,0xFE,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xFE,0x07,0xFE,0x03},/*"V",54*/ -{0xFE,0x07,0xFE,0x1F,0x00,0x1C,0xC0,0x07,0xC0,0x07,0x00,0x1C,0xFE,0x1F,0xFE,0x07},/*"W",55*/ -{0x0E,0x1C,0x1E,0x1E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1E,0x1E,0x0E,0x1C},/*"X",56*/ -{0x1E,0x00,0x3E,0x00,0x60,0x10,0xC0,0x1F,0xC0,0x1F,0x60,0x10,0x3E,0x00,0x1E,0x00},/*"Y",57*/ -{0x06,0x1E,0x06,0x1F,0x82,0x11,0xC2,0x10,0x62,0x10,0x32,0x10,0x1E,0x18,0x0E,0x18},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x20,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,0x00},/*"^",62*/ -{0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x0E,0x20,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x0F,0xC0,0x1F,0x00,0x10},/*"a",65*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x20,0x10,0x20,0x10,0x60,0x10,0xC0,0x1F,0x80,0x0F},/*"b",66*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x60,0x18,0x40,0x08},/*"c",67*/ -{0x80,0x0F,0xC0,0x1F,0x60,0x10,0x20,0x10,0x22,0x10,0xFE,0x0F,0xFE,0x1F,0x00,0x10},/*"d",68*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x19,0xC0,0x09},/*"e",69*/ -{0x00,0x00,0x20,0x10,0xFC,0x1F,0xFE,0x1F,0x22,0x10,0x22,0x00,0x06,0x00,0x04,0x00},/*"f",70*/ -{0xC0,0x4F,0xE0,0xDF,0x20,0x90,0x20,0x90,0x20,0x90,0xC0,0xFF,0xE0,0x7F,0x20,0x00},/*"g",71*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"h",72*/ -{0x00,0x00,0x20,0x10,0x20,0x10,0xEC,0x1F,0xEC,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"i",73*/ -{0x00,0x60,0x00,0xC0,0x20,0x80,0x20,0x80,0xEC,0xFF,0xEC,0x7F,0x00,0x00,0x00,0x00},/*"j",74*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x80,0x01,0x80,0x03,0xC0,0x06,0x60,0x1C,0x20,0x18},/*"k",75*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"l",76*/ -{0xE0,0x1F,0xE0,0x1F,0x60,0x00,0xC0,0x0F,0xC0,0x0F,0x60,0x00,0xE0,0x1F,0xC0,0x1F},/*"m",77*/ -{0x20,0x00,0xE0,0x1F,0xC0,0x1F,0x20,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"n",78*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"o",79*/ -{0x20,0x80,0xE0,0xFF,0xC0,0xFF,0x20,0x90,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"p",80*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x90,0xC0,0xFF,0xE0,0xFF,0x20,0x80},/*"q",81*/ -{0x20,0x10,0xE0,0x1F,0xC0,0x1F,0x60,0x10,0x20,0x00,0x20,0x00,0x60,0x00,0x40,0x00},/*"r",82*/ -{0xC0,0x08,0xE0,0x19,0x20,0x11,0x20,0x11,0x20,0x13,0x20,0x12,0x60,0x1E,0x40,0x0C},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xFC,0x0F,0xFE,0x1F,0x20,0x10,0x20,0x18,0x00,0x08,0x00,0x00},/*"t",84*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0xE0,0x0F,0xE0,0x1F,0x00,0x10},/*"u",85*/ -{0xE0,0x03,0xE0,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xE0,0x07,0xE0,0x03},/*"v",86*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x18,0x00,0x0F,0x00,0x0F,0x00,0x18,0xE0,0x1F,0xE0,0x0F},/*"w",87*/ -{0x20,0x10,0x60,0x18,0xC0,0x0C,0x80,0x07,0x80,0x07,0xC0,0x0C,0x60,0x18,0x20,0x10},/*"x",88*/ -{0xE0,0x8F,0xE0,0x9F,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xD0,0xE0,0x7F,0xE0,0x3F},/*"y",89*/ -{0x60,0x18,0x60,0x1C,0x20,0x16,0x20,0x13,0xA0,0x11,0xE0,0x10,0x60,0x18,0x20,0x18},/*"z",90*/ -{0x00,0x00,0x00,0x00,0x80,0x00,0xFC,0x1F,0x7E,0x3F,0x02,0x20,0x02,0x20,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3E,0x7C,0x3E,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x02,0x20,0x02,0x20,0x7E,0x3F,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,0x00},/*"}",93*/ -}; -#endif - -void LCD_Common::printInt(uint16_t value, int8_t padding) -{ - uint16_t den = 10000; - for (int8_t i = 5; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_Common::printLong(uint32_t value, int8_t padding) -{ - uint32_t den = 1000000000; - for (int8_t i = 10; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_SSD1306::setCursor(byte column, byte line) -{ - m_col = column; - m_row = line; - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address -} - -size_t LCD_SSD1306::write(uint8_t c) -{ - if (c == '\n') { - setCursor(0, m_row + ((m_font == FONT_SIZE_SMALL) ? 1 : 2)); - return 1; - } else if (c == '\r') { - m_col = 0; - return 1; - } -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - for (byte i = 0; i < 5; i++) { - byte d = pgm_read_byte(&font5x8[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.write(0); - } else { - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; i > 0; i--) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; - if (m_col >= 128) { - m_col = 0; - m_row ++; - } -#ifndef MEMORY_SAVING - } else { - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = 0; i <= 14; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = 1; i <= 15; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 17 : 9; - if (m_col >= 128) { - m_col = 0; - m_row += 2; - } - } -#endif -#ifdef TWBR - TWBR = twbrbackup; -#endif - return 1; -} - -void LCD_SSD1306::writeDigit(byte n) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - if (m_font == FONT_SIZE_SMALL) { - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - if (n <= 9) { - n += '0' - 0x21; - for (byte i = 0; i < 5; i++) { - Wire.write(pgm_read_byte(&font5x8[n][i])); - } - Wire.write(0); - } else { - for (byte i = 0; i < 6; i++) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += 6; - } else if (m_font == FONT_SIZE_MEDIUM) { - write(n <= 9 ? ('0' + n) : ' '); -#ifndef MEMORY_SAVING - } else if (m_font == FONT_SIZE_LARGE) { - if (n <= 9) { - byte i; - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (; i < 32; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; -#endif - } else { - if (n <= 9) { - byte i; - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 1]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 2);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 2]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 2);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SSD1306::draw(const PROGMEM byte* buffer, byte width, byte height) -{ - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - - const PROGMEM byte *p = buffer; - height >>= 3; - width >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < width; k++, p++) { - Wire.write(pgm_read_byte(p)); - } - Wire.endTransmission(); - } - } - m_col += width; -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SSD1306::clearLine(byte line) -{ - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - - // send a bunch of data in one xmission - ssd1306_command(0xB0 + line);//set page address - ssd1306_command(0);//set lower column address - ssd1306_command(0x10);//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < 16; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SSD1306::clear(byte x, byte y, byte width, byte height) -{ - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - - height >>= 3; - width >>= 3; - y >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i + y);//set page address - ssd1306_command(x & 0xf);//set lower column address - ssd1306_command(0x10 | (x >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < width; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - setCursor(0, 0); -} - -void LCD_SSD1306::setContrast(byte Contrast) -{ - ssd1306_command(SSD1306_SETCONTRAST); - ssd1306_command(Contrast); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.h deleted file mode 100644 index 51781ab..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/MicroLCD.h +++ /dev/null @@ -1,119 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for multiple models of monochrome LCD display -* Distributed under GPL v2.0 -* Copyright (c) 2013-2014 Stanley Huang -* All rights reserved. -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include - -//#define MEMORY_SAVING - -typedef enum { - FONT_SIZE_SMALL = 0, - FONT_SIZE_MEDIUM, - FONT_SIZE_LARGE, - FONT_SIZE_XLARGE -} FONT_SIZE; - -#define FLAG_PAD_ZERO 1 -#define FLAG_PIXEL_DOUBLE_H 2 -#define FLAG_PIXEL_DOUBLE_V 4 -#define FLAG_PIXEL_DOUBLE (FLAG_PIXEL_DOUBLE_H | FLAG_PIXEL_DOUBLE_V) - -extern const PROGMEM unsigned char font5x8[][5]; -extern const PROGMEM unsigned char digits8x8[][8] ; -extern const PROGMEM unsigned char digits16x16[][32]; -extern const PROGMEM unsigned char digits16x24[][48]; -extern const PROGMEM unsigned char font8x16_doslike[][16]; -extern const PROGMEM unsigned char font8x16_terminal[][16]; - -class LCD_Common -{ -public: - LCD_Common():m_font(FONT_SIZE_SMALL),m_flags(0) {} - void setFontSize(FONT_SIZE size) { m_font = size; } - void setFlags(byte flags) { m_flags = flags; } - virtual void backlight(bool on) {} - virtual void draw(const PROGMEM byte* buffer, byte width, byte height) {} - void printInt(uint16_t value, int8_t padding = -1); - void printLong(uint32_t value, int8_t padding = -1); -protected: - virtual void writeDigit(byte n) {} - byte m_font; - byte m_flags; -}; - -class LCD_Null : public LCD_Common, public Print -{ -public: - byte getLines() { return 0; } - byte getCols() { return 0; } - void clearLine(byte line) {} - void clear() {} - void begin() {} - void setCursor(byte column, byte line) {} - size_t write(uint8_t c) { return 0; } -}; - -#include "SSD1306.h" - -class LCD_SSD1306 : public LCD_Common, public SSD1306, public Print -{ -public: - void setCursor(byte column, byte line); - void setContrast(byte Contrast); - void draw(const PROGMEM byte* buffer, byte width, byte height); - size_t write(uint8_t c); - void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64); - void clearLine(byte line); - byte getLines() { return 21; } - byte getCols() { return 8; } -private: - void writeDigit(byte n); - byte m_col; - byte m_row; -}; - -class LCD_SH1106 : public LCD_Common, public Print -{ -public: - void begin(); - void setCursor(byte column, byte line); - void draw(const PROGMEM byte* buffer, byte width, byte height); - size_t write(uint8_t c); - void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64); - void clearLine(byte line); - byte getLines() { return 21; } - byte getCols() { return 8; } -private: - void WriteCommand(unsigned char ins); - void WriteData(unsigned char dat); - void writeDigit(byte n); - byte m_col; - byte m_row; -}; - -#include "PCD8544.h" - -class LCD_PCD8544 : public LCD_Common, public PCD8544 -{ -public: - byte getLines() { return 6; } - byte getCols() { return 14; } - void backlight(bool on) - { - pinMode(7, OUTPUT); - digitalWrite(7, on ? HIGH : LOW); - } - void clearLine(byte line) - { - setCursor(0, line); - for (byte i = 14; i > 0; i--) write(' '); - } - void draw(const PROGMEM byte* buffer, byte width, byte height); -private: - void writeDigit(byte n); -}; - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.cpp deleted file mode 100644 index 6b339fe..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.cpp +++ /dev/null @@ -1,316 +0,0 @@ -/* - * PCD8544 - Interface with Philips PCD8544 (or compatible) LCDs. - * - * Copyright (c) 2010 Carlos Rodrigues - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - - -#include "PCD8544.h" - -#include -#include - -extern const PROGMEM unsigned char font5x8[][5]; - -/* - * If this was a ".h", it would get added to sketches when using - * the "Sketch -> Import Library..." menu on the Arduino IDE... - */ - -PCD8544::PCD8544(unsigned char sclk, unsigned char sdin, - unsigned char dc, unsigned char reset, - unsigned char sce): - pin_sclk(sclk), - pin_sdin(sdin), - pin_dc(dc), - pin_reset(reset), - pin_sce(sce) -{} - - -void PCD8544::begin(unsigned char model) -{ - this->column = 0; - this->line = 0; - - // Sanitize the custom glyphs... - memset(this->custom, 0, sizeof(this->custom)); - - // All pins are outputs (these displays cannot be read)... - pinMode(this->pin_sclk, OUTPUT); - pinMode(this->pin_sdin, OUTPUT); - pinMode(this->pin_dc, OUTPUT); - pinMode(this->pin_reset, OUTPUT); - pinMode(this->pin_sce, OUTPUT); - - // Reset the controller state... - digitalWrite(this->pin_reset, HIGH); - digitalWrite(this->pin_sce, HIGH); - digitalWrite(this->pin_reset, LOW); - delay(100); - digitalWrite(this->pin_reset, HIGH); - - // Set the LCD parameters... - this->send(PCD8544_CMD, 0x21); // extended instruction set control (H=1) - this->send(PCD8544_CMD, 0x13); // bias system (1:48) - - if (model == CHIP_ST7576) { - this->send(PCD8544_CMD, 0xe0); // higher Vop, too faint at default - this->send(PCD8544_CMD, 0x05); // partial display mode - } else { - this->send(PCD8544_CMD, 0xc2); // default Vop (3.06 + 66 * 0.06 = 7V) - } - - this->send(PCD8544_CMD, 0x20); // extended instruction set control (H=0) - this->send(PCD8544_CMD, 0x09); // all display segments on - - // Clear RAM contents... - this->clear(); - - // Activate LCD... - this->send(PCD8544_CMD, 0x08); // display blank - this->send(PCD8544_CMD, 0x0c); // normal mode (0x0d = inverse mode) - delay(100); - - // Place the cursor at the origin... - this->send(PCD8544_CMD, 0x80); - this->send(PCD8544_CMD, 0x40); -} - - -void PCD8544::stop() -{ - this->clear(); - this->setPower(false); -} - - -void PCD8544::clear() -{ - this->setCursor(0, 0); - - for (unsigned short i = 0; i < PCD8544_WIDTH * (PCD8544_HEIGHT/8); i++) { - this->send(PCD8544_DATA, 0x00); - } - - this->setCursor(0, 0); -} - - -void PCD8544::clearLine() -{ - this->setCursor(0, this->line); - - for (unsigned char i = 0; i < PCD8544_WIDTH; i++) { - this->send(PCD8544_DATA, 0x00); - } - - this->setCursor(0, this->line); -} - - -void PCD8544::setPower(bool on) -{ - this->send(PCD8544_CMD, on ? 0x20 : 0x24); -} - - -inline void PCD8544::display() -{ - this->setPower(true); -} - - -inline void PCD8544::noDisplay() -{ - this->setPower(false); -} - - -void PCD8544::setInverse(bool inverse) -{ - this->send(PCD8544_CMD, inverse ? 0x0d : 0x0c); -} - - -void PCD8544::home() -{ - this->setCursor(0, this->line); -} - - -void PCD8544::setCursor(unsigned char column, unsigned char line) -{ - if (column > PCD8544_WIDTH) { - column = 0; - line++; - } - if (line > PCD8544_HEIGHT / 8) - line = 0; - - this->column = column; - this->line = line; - - this->send(PCD8544_CMD, 0x80 | column); - this->send(PCD8544_CMD, 0x40 | line); -} - - -void PCD8544::createChar(unsigned char chr, const unsigned char *glyph) -{ - // ASCII 0-31 only... - if (chr >= ' ') { - return; - } - - this->custom[chr] = glyph; -} - - -size_t PCD8544::write(uint8_t chr) -{ - // ASCII 7-bit only... - if (chr >= 0x7f) { - return 0; - } - - if (chr == '\n') { - column = 0; - line = (line + 1) % (PCD8544_HEIGHT/9 + 1); - return 0; - } else if (chr == '\r') { - column = 0; - return 0; - } - - const unsigned char *glyph; - unsigned char pgm_buffer[5]; - - if (chr >= ' ') { - // Regular ASCII characters are kept in flash to save RAM... - memcpy_P(pgm_buffer, &font5x8[chr - ' '], sizeof(pgm_buffer)); - glyph = pgm_buffer; - } else { - // Custom glyphs, on the other hand, are stored in RAM... - if (custom[chr]) { - glyph = custom[chr]; - } else { - // Default to a space character if unset... - memcpy_P(pgm_buffer, &font5x8[0], sizeof(pgm_buffer)); - glyph = pgm_buffer; - } - } - - // Output one column at a time... - for (unsigned char i = 0; i < 5; i++) { - this->send(PCD8544_DATA, glyph[i]); - } - - // One column between characters... - this->send(PCD8544_DATA, 0x00); - - // Update the cursor position... - this->column = (this->column + 6) % PCD8544_WIDTH; - - if (this->column == 0) { - this->line = (this->line + 1) % (PCD8544_HEIGHT/9 + 1); - } - -#if ARDUINO >= 100 - return 1; -#endif -} - -void PCD8544::draw8x8(const unsigned char *data) -{ - // Output one column at a time... - for (unsigned char i = 0; i < 8; i++) { - this->send(PCD8544_DATA, data[i]); - } - this->setCursor(column + 8, line); -} - -void PCD8544::draw16x16(const unsigned char *data) -{ - unsigned char scolumn = this->column; - unsigned char sline = this->line; - // Output one column at a time... - for (unsigned char i = 0; i < 16; i++) { - this->send(PCD8544_DATA, data[i]); - } - this->setCursor(scolumn, sline + 1); - for (unsigned char i = 0; i < 16; i++) { - this->send(PCD8544_DATA, data[i + 16]); - } - // Update the cursor position... - this->setCursor(scolumn + 16, sline); -} - -void PCD8544::drawColumn(unsigned char lines, unsigned char value) -{ - unsigned char scolumn = this->column; - unsigned char sline = this->line; - - // Keep "value" within range... - if (value > lines*8) { - value = lines*8; - } - - // Find the line where "value" resides... - unsigned char mark = (lines*8 - 1 - value)/8; - - // Clear the lines above the mark... - for (unsigned char line = 0; line < mark; line++) { - this->setCursor(scolumn, sline + line); - this->send(PCD8544_DATA, 0x00); - } - - // Compute the byte to draw at the "mark" line... - unsigned char b = 0xff; - for (unsigned char i = 0; i < lines*8 - mark*8 - value; i++) { - b <<= 1; - } - - this->setCursor(scolumn, sline + mark); - this->send(PCD8544_DATA, b); - - // Fill the lines below the mark... - for (unsigned char line = mark + 1; line < lines; line++) { - this->setCursor(scolumn, sline + line); - this->send(PCD8544_DATA, 0xff); - } - - // Leave the cursor in a consistent position... - this->setCursor(scolumn + 1, sline); -} - - -void PCD8544::send(unsigned char type, unsigned char data) -{ - digitalWrite(this->pin_dc, type); - - digitalWrite(this->pin_sce, LOW); - shiftOut(this->pin_sdin, this->pin_sclk, MSBFIRST, data); - digitalWrite(this->pin_sce, HIGH); -} - - -/* vim: set expandtab ts=4 sw=4: */ diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.h deleted file mode 100644 index c96bc7e..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/PCD8544.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * PCD8544 - Interface with Philips PCD8544 (or compatible) LCDs. - * - * Copyright (c) 2010 Carlos Rodrigues - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - - -#ifndef PCD8544_H -#define PCD8544_H - - -#if ARDUINO < 100 -#include -#else -#include -#endif - -// Chip variants supported... -#define CHIP_PCD8544 0 -#define CHIP_ST7576 1 - -#define PCD8544_WIDTH 84 -#define PCD8544_HEIGHT 48 - -#define PCD8544_CMD LOW -#define PCD8544_DATA HIGH - -class PCD8544: public Print { - public: - // All the pins can be changed from the default values... - PCD8544(unsigned char sclk = 2, /* clock (display pin 2) */ - unsigned char sdin = 3, /* data-in (display pin 3) */ - unsigned char dc = 4, /* data select (display pin 4) */ - unsigned char reset = 6, /* reset (display pin 8) */ - unsigned char sce = 5); /* enable (display pin 5) */ - - // Display initialization (dimensions in pixels)... - void begin(unsigned char model=CHIP_PCD8544); - void stop(); - - // Erase everything on the display... - void clear(); - void clearLine(); // ...or just the current line - - // Control the display's power state... - void setPower(bool on); - - // For compatibility with the LiquidCrystal library... - void display(); - void noDisplay(); - - // Activate white-on-black mode (whole display)... - void setInverse(bool inverse); - - // Place the cursor at the start of the current line... - void home(); - - // Place the cursor at position (column, line)... - void setCursor(unsigned char column, unsigned char line); - - // Assign a user-defined glyph (5x8) to an ASCII character (0-31)... - void createChar(unsigned char chr, const unsigned char *glyph); - - // Write an ASCII character at the current cursor position (7-bit)... -#if ARDUINO < 100 - virtual void write(uint8_t chr); -#else - virtual size_t write(uint8_t chr); -#endif - - // Draw a chart element at the current cursor position... - void drawColumn(unsigned char lines, unsigned char value); - - void draw8x8(const unsigned char *data); - void draw16x16(const unsigned char *data); - - protected: - // Current cursor position... - unsigned char column; - unsigned char line; - // Send a command or data to the display... - void send(unsigned char type, unsigned char data); - - private: - unsigned char pin_sclk; - unsigned char pin_sdin; - unsigned char pin_dc; - unsigned char pin_reset; - unsigned char pin_sce; - - // User-defined glyphs (below the ASCII space character)... - const unsigned char *custom[' ']; -}; - - -#endif /* PCD8544_H */ - - -/* vim: set expandtab ts=4 sw=4: */ diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SH1106.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SH1106.cpp deleted file mode 100644 index a46c821..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SH1106.cpp +++ /dev/null @@ -1,413 +0,0 @@ -#include -#include -#include "MicroLCD.h" - -#define I2C_ADDR 0x78 >> 1 - -void LCD_SH1106::WriteCommand(unsigned char ins) -{ - Wire.beginTransmission(I2C_ADDR);//0x78 >> 1 - Wire.write(0x00);//0x00 - Wire.write(ins); - Wire.endTransmission(); -} - -void LCD_SH1106::WriteData(unsigned char dat) -{ - Wire.beginTransmission(I2C_ADDR);//0x78 >> 1 - Wire.write(0x40);//0x40 - Wire.write(dat); - Wire.endTransmission(); -} - -void LCD_SH1106::setCursor(unsigned char x, unsigned char y) -{ - m_col = x + 2; - m_row = y; - WriteCommand(0xb0 + m_row); - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address -} - -void LCD_SH1106::clear(byte x, byte y, byte width, byte height) -{ - WriteCommand(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - WriteCommand(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - WriteCommand(SSD1306_SETSTARTLINE | 0x0); // line #0 - - height >>= 3; - width >>= 3; - y >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - WriteCommand(0xB0 + i + y);//set page address - WriteCommand((x + 2) & 0xf);//set lower column address - WriteCommand(0x10 | (x >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte k = 0; k < width; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - setCursor(0, 0); -} - -size_t LCD_SH1106::write(uint8_t c) -{ - if (c == '\n') { - setCursor(0, m_row + ((m_font == FONT_SIZE_SMALL) ? 1 : 2)); - return 1; - } else if (c == '\r') { - m_col = 0; - return 1; - } - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - for (byte i = 0; i < 5; i++) { - byte d = pgm_read_byte(&font5x8[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.write(0); - } else { - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; i > 0; i--) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; - if (m_col >= 128) { - m_col = 0; - m_row ++; - } -#ifndef MEMORY_SAVING - } else { - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = 0; i <= 14; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = 1; i <= 15; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 17 : 9; - if (m_col >= 128) { - m_col = 0; - m_row += 2; - } - } -#endif -#ifdef TWBR - TWBR = twbrbackup; -#endif - return 1; -} - -void LCD_SH1106::writeDigit(byte n) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - if (m_font == FONT_SIZE_SMALL) { - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - if (n <= 9) { - n += '0' - 0x21; - for (byte i = 0; i < 5; i++) { - Wire.write(pgm_read_byte(&font5x8[n][i])); - } - Wire.write(0); - } else { - for (byte i = 0; i < 6; i++) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += 6; - } else if (m_font == FONT_SIZE_MEDIUM) { - write(n <= 9 ? ('0' + n) : ' '); -#ifndef MEMORY_SAVING - } else if (m_font == FONT_SIZE_LARGE) { - if (n <= 9) { - byte i; - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (; i < 32; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; -#endif - } else { - if (n <= 9) { - byte i; - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 1]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 2);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 2]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 2);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SH1106::draw(const PROGMEM byte* buffer, byte width, byte height) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - - WriteCommand(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - WriteCommand(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - WriteCommand(SSD1306_SETSTARTLINE | 0x0); // line #0 - - const PROGMEM byte *p = buffer; - height >>= 3; - width >>= 3; - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - WriteCommand(0xB0 + i + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte k = 0; k < width; k++, p++) { - Wire.write(pgm_read_byte(p)); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - m_col += width; -} - -void LCD_SH1106::begin() -{ - Wire.begin(); - - WriteCommand(0xAE); /*display off*/ - - WriteCommand(0x02); /*set lower column address*/ - WriteCommand(0x10); /*set higher column address*/ - - WriteCommand(0x40); /*set display start line*/ - - WriteCommand(0xB0); /*set page address*/ - - WriteCommand(0x81); /*contract control*/ - WriteCommand(0x80); /*128*/ - - WriteCommand(0xA1); /*set segment remap*/ - - WriteCommand(0xA6); /*normal / reverse*/ - - WriteCommand(0xA8); /*multiplex ratio*/ - WriteCommand(0x3F); /*duty = 1/32*/ - - WriteCommand(0xad); /*set charge pump enable*/ - WriteCommand(0x8b); /*external VCC */ - - WriteCommand(0x30); /*0X30---0X33 set VPP 9V liangdu!!!!*/ - - WriteCommand(0xC8); /*Com scan direction*/ - - WriteCommand(0xD3); /*set display offset*/ - WriteCommand(0x00); /* 0x20 */ - - WriteCommand(0xD5); /*set osc division*/ - WriteCommand(0x80); - - WriteCommand(0xD9); /*set pre-charge period*/ - WriteCommand(0x1f); /*0x22*/ - - WriteCommand(0xDA); /*set COM pins*/ - WriteCommand(0x12); - - WriteCommand(0xdb); /*set vcomh*/ - WriteCommand(0x40); - - WriteCommand(0xAF); /*display ON*/ - - clear(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.cpp deleted file mode 100644 index 75662e8..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.cpp +++ /dev/null @@ -1,277 +0,0 @@ -#include -//#include -#include -#include -#include "SSD1306.h" - -SSD1306::SSD1306(int8_t SCLK, int8_t DC, int8_t RST, int8_t CS) { - cs = CS; - rst = RST; - dc = DC; - sclk = SCLK; -} - -// initializer for I2C - we only indicate the reset pin! - SSD1306::SSD1306(int8_t reset) { - sclk = dc = cs = -1; - rst = reset; -} - - -void SSD1306::begin(uint8_t vccstate, uint8_t i2caddr) { - _i2caddr = i2caddr; - - - // set pin directions - // I2C Init - Wire.begin(); // Is this the right place for this? - - // Setup reset pin direction (used by both SPI and I2C) - pinMode(rst, OUTPUT); - digitalWrite(rst, HIGH); - // VDD (3.3V) goes high at start, lets just chill for a ms - delay(1); - // bring reset low - digitalWrite(rst, LOW); - // wait 10ms - delay(10); - // bring out of reset - digitalWrite(rst, HIGH); - // turn on VCC (9V?) - #if defined SSD1306_128_32 - // Init sequence for 128x32 OLED module - ssd1306_command(SSD1306_DISPLAYOFF); // 0xAE - ssd1306_command(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5 - ssd1306_command(0x80); // the suggested ratio 0x80 - ssd1306_command(SSD1306_SETMULTIPLEX); // 0xA8 - ssd1306_command(0x1F); - ssd1306_command(SSD1306_SETDISPLAYOFFSET); // 0xD3 - ssd1306_command(0x0); // no offset - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - ssd1306_command(SSD1306_CHARGEPUMP); // 0x8D - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x10); } - else - { ssd1306_command(0x14); } - ssd1306_command(SSD1306_MEMORYMODE); // 0x20 - ssd1306_command(0x00); // 0x0 act like ks0108 - ssd1306_command(SSD1306_SEGREMAP | 0x1); - ssd1306_command(SSD1306_COMSCANDEC); - ssd1306_command(SSD1306_SETCOMPINS); // 0xDA - ssd1306_command(0x02); - ssd1306_command(SSD1306_SETCONTRAST); // 0x81 - ssd1306_command(0x8F); - ssd1306_command(SSD1306_SETPRECHARGE); // 0xd9 - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x22); } - else - { ssd1306_command(0xF1); } - ssd1306_command(SSD1306_SETVCOMDETECT); // 0xDB - ssd1306_command(0x40); - ssd1306_command(SSD1306_DISPLAYALLON_RESUME); // 0xA4 - ssd1306_command(SSD1306_NORMALDISPLAY); // 0xA6 - #endif - - #if defined SSD1306_128_64 - // Init sequence for 128x64 OLED module - ssd1306_command(SSD1306_DISPLAYOFF); // 0xAE - ssd1306_command(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5 - ssd1306_command(0x80); // the suggested ratio 0x80 - ssd1306_command(SSD1306_SETMULTIPLEX); // 0xA8 - ssd1306_command(0x3F); - ssd1306_command(SSD1306_SETDISPLAYOFFSET); // 0xD3 - ssd1306_command(0x0); // no offset - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - ssd1306_command(SSD1306_CHARGEPUMP); // 0x8D - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x10); } - else - { ssd1306_command(0x14); } - ssd1306_command(SSD1306_MEMORYMODE); // 0x20 - ssd1306_command(0x00); // 0x0 act like ks0108 - ssd1306_command(SSD1306_SEGREMAP | 0x1); - ssd1306_command(SSD1306_COMSCANDEC); - ssd1306_command(SSD1306_SETCOMPINS); // 0xDA - ssd1306_command(0x12); - ssd1306_command(SSD1306_SETCONTRAST); // 0x81 - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x9F); } - else - { ssd1306_command(0xCF); } - ssd1306_command(SSD1306_SETPRECHARGE); // 0xd9 - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x22); } - else - { ssd1306_command(0xF1); } - ssd1306_command(SSD1306_SETVCOMDETECT); // 0xDB - ssd1306_command(0x40); - ssd1306_command(SSD1306_DISPLAYALLON_RESUME); // 0xA4 - ssd1306_command(SSD1306_NORMALDISPLAY); // 0xA6 - #endif - - ssd1306_command(SSD1306_DISPLAYON);//--turn on oled panel - - // clear screen - delay(5); - - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - - for (byte i = 0; i < SSD1306_LCDHEIGHT / 8; i++) { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i);//set page address - ssd1306_command(0);//set lower column address - ssd1306_command(0x10);//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < SSD1306_LCDWIDTH / 8; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -} - - -void SSD1306::invertDisplay(uint8_t i) { - if (i) { - ssd1306_command(SSD1306_INVERTDISPLAY); - } else { - ssd1306_command(SSD1306_NORMALDISPLAY); - } -} - -void SSD1306::ssd1306_command(uint8_t c) { - // I2C - uint8_t control = 0x00; // Co = 0, D/C = 0 - Wire.beginTransmission(_i2caddr); - Wire.write(control); - Wire.write(c); - Wire.endTransmission(); -} - -// startscrollright -// Activate a right handed scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrollright(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_RIGHT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(0XFF); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -// startscrollleft -// Activate a right handed scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrollleft(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_LEFT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(0XFF); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -// startscrolldiagright -// Activate a diagonal scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrolldiagright(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_SET_VERTICAL_SCROLL_AREA); - ssd1306_command(0X00); - ssd1306_command(SSD1306_LCDHEIGHT); - ssd1306_command(SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -// startscrolldiagleft -// Activate a diagonal scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrolldiagleft(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_SET_VERTICAL_SCROLL_AREA); - ssd1306_command(0X00); - ssd1306_command(SSD1306_LCDHEIGHT); - ssd1306_command(SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -void SSD1306::stopscroll(void){ - ssd1306_command(SSD1306_DEACTIVATE_SCROLL); -} - -void SSD1306::ssd1306_data(uint8_t c) { - // I2C - uint8_t control = 0x40; // Co = 0, D/C = 1 - Wire.beginTransmission(_i2caddr); - Wire.write(control); - Wire.write(c); - Wire.endTransmission(); -} - -void SSD1306::fill(unsigned char dat) -{ - unsigned char i,j; - - ssd1306_command(0x00);//set lower column address - ssd1306_command(0x10);//set higher column address - ssd1306_command(0xB0);//set page address - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i=0; i<(SSD1306_LCDHEIGHT/8); i++) - { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i);//set page address - ssd1306_command(0);//set lower column address - ssd1306_command(0x10);//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < 16; k++) { - Wire.write(dat); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void SSD1306::draw8x8(byte* buffer, uint8_t x, uint8_t y) -{ - // send a bunch of data in one xmission - ssd1306_command(0xB0 + y);//set page address - ssd1306_command(x & 0xf);//set lower column address - ssd1306_command(0x10 | (x >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - Wire.write(buffer, 8); - Wire.endTransmission(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.h deleted file mode 100644 index ae7f339..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MicroLCD/SSD1306.h +++ /dev/null @@ -1,112 +0,0 @@ -#include "Arduino.h" - -#define SSD1306_I2C_ADDRESS 0x3C // 011110+SA0+RW - 0x3C or 0x3D -// Address for 128x32 is 0x3C -// Address for 128x32 is 0x3D (default) or 0x3C (if SA0 is grounded) - -/*========================================================================= - SSD1306 Displays - ----------------------------------------------------------------------- - The driver is used in multiple displays (128x64, 128x32, etc.). - Select the appropriate display below to create an appropriately - sized framebuffer, etc. - - SSD1306_128_64 128x64 pixel display - - SSD1306_128_32 128x32 pixel display - - You also need to set the LCDWIDTH and LCDHEIGHT defines to an - appropriate size - - -----------------------------------------------------------------------*/ - #define SSD1306_128_64 -// #define SSD1306_128_32 -/*=========================================================================*/ - -#if defined SSD1306_128_64 && defined SSD1306_128_32 - #error "Only one SSD1306 display can be specified at once in SSD1306.h" -#endif -#if !defined SSD1306_128_64 && !defined SSD1306_128_32 - #error "At least one SSD1306 display must be specified in SSD1306.h" -#endif - -#if defined SSD1306_128_64 - #define SSD1306_LCDWIDTH 128 - #define SSD1306_LCDHEIGHT 64 -#endif -#if defined SSD1306_128_32 - #define SSD1306_LCDWIDTH 128 - #define SSD1306_LCDHEIGHT 32 -#endif - -#define SSD1306_SETCONTRAST 0x81 -#define SSD1306_DISPLAYALLON_RESUME 0xA4 -#define SSD1306_DISPLAYALLON 0xA5 -#define SSD1306_NORMALDISPLAY 0xA6 -#define SSD1306_INVERTDISPLAY 0xA7 -#define SSD1306_DISPLAYOFF 0xAE -#define SSD1306_DISPLAYON 0xAF - -#define SSD1306_SETDISPLAYOFFSET 0xD3 -#define SSD1306_SETCOMPINS 0xDA - -#define SSD1306_SETVCOMDETECT 0xDB - -#define SSD1306_SETDISPLAYCLOCKDIV 0xD5 -#define SSD1306_SETPRECHARGE 0xD9 - -#define SSD1306_SETMULTIPLEX 0xA8 - -#define SSD1306_SETLOWCOLUMN 0x00 -#define SSD1306_SETHIGHCOLUMN 0x10 - -#define SSD1306_SETSTARTLINE 0x40 - -#define SSD1306_MEMORYMODE 0x20 - -#define SSD1306_COMSCANINC 0xC0 -#define SSD1306_COMSCANDEC 0xC8 - -#define SSD1306_SEGREMAP 0xA0 - -#define SSD1306_CHARGEPUMP 0x8D - -#define SSD1306_EXTERNALVCC 0x1 -#define SSD1306_SWITCHCAPVCC 0x2 - -// Scrolling #defines -#define SSD1306_ACTIVATE_SCROLL 0x2F -#define SSD1306_DEACTIVATE_SCROLL 0x2E -#define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3 -#define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26 -#define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27 -#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29 -#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A - -class SSD1306 { -public: - SSD1306(int8_t SCLK, int8_t DC, int8_t RST, int8_t CS); - SSD1306(int8_t RST = 4); - - void begin(uint8_t switchvcc = SSD1306_SWITCHCAPVCC, uint8_t i2caddr = SSD1306_I2C_ADDRESS); - void ssd1306_command(uint8_t c); - void ssd1306_data(uint8_t c); - - void invertDisplay(uint8_t i); - void draw8x8(byte* buffer, byte x, byte y); - - void startscrollright(uint8_t start, uint8_t stop); - void startscrollleft(uint8_t start, uint8_t stop); - - void startscrolldiagright(uint8_t start, uint8_t stop); - void startscrolldiagleft(uint8_t start, uint8_t stop); - void stopscroll(void); - - void fill(unsigned char dat); - void clearBuffer(); - -protected: - uint8_t _i2caddr; -private: - int8_t sclk, dc, rst, cs; -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9325D.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9325D.cpp deleted file mode 100644 index 375ad21..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9325D.cpp +++ /dev/null @@ -1,454 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" - -/********************************************** -Define zone -**********************************************/ - -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) - -#define RS 59 -#define WR 58 -#define CS 57 -#define RST 56 - -#define T_CLK 55 -#define T_CS 60 -#define T_DIN 54 -#define T_DOUT 8 -#define T_IRQ 9 - -#define X_CONST 240 -#define Y_CONST 320 - -#define PREC_TOUCH_CONST 10 - -#define PixSizeX 13.78 -#define PixOffsX 411 - -#define PixSizeY 11.01 -#define PixOffsY 378 - -#define WINDOW_XADDR_START 0x0050 // Horizontal Start Address Set -#define WINDOW_XADDR_END 0x0051 // Horizontal End Address Set -#define WINDOW_YADDR_START 0x0052 // Vertical Start Address Set -#define WINDOW_YADDR_END 0x0053 // Vertical End Address Set -#define GRAM_XADDR 0x0020 // GRAM Horizontal Address Set -#define GRAM_YADDR 0x0021 // GRAM Vertical Address Set -#define GRAMWR 0x0022 // memory write - -/* LCD color */ -#define White 0xFFFF -#define Black 0x0000 -#define Blue 0x001F -#define Blue2 0x051F -#define Red 0xF800 -#define Magenta 0xF81F -#define Green 0x07E0 -#define Cyan 0x7FFF -#define Yellow 0xFFE0 - -/********************************************** -Standard C functions zone -**********************************************/ -void LCD_ILI9325D::Enable() { digitalWrite(CS,LOW); } -void LCD_ILI9325D::Disable() { digitalWrite(CS,HIGH); } - -void LCD_ILI9325D::SetCommandMode() -{ - digitalWrite(CS,HIGH); - digitalWrite(RS, LOW); - digitalWrite(CS,LOW); -} - -void LCD_ILI9325D::SetDataMode() -{ - digitalWrite(CS,HIGH); - digitalWrite(RS, HIGH); - digitalWrite(CS,LOW); -} - -void LCD_ILI9325D::WriteData(byte l, byte h) -{ - if (h != lastData) { - PORTE = (h & 0x3) | ((h & 0xC) << 2) | ((h & 0x20) >> 2); - PORTG = (h & 0x10) << 1; - PORTH = (h & 0xC0) >> 3; - lastData = h; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - - if (l != lastData) { - PORTE = (l & 0x3) | ((l & 0xC) << 2) | ((l & 0x20) >> 2); - PORTG = (l & 0x10) << 1; - PORTH = (l & 0xC0) >> 3; - lastData = l; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; -} - -void LCD_ILI9325D::WriteData(uint16_t c) -{ - byte value = *((unsigned char*)&c + 1); - if (value != lastData) { - PORTE = (value & 0x3) | ((value & 0xC) << 2) | ((value & 0x20) >> 2); - PORTG = (value & 0x10) << 1; - PORTH = (value & 0xC0) >> 3; - lastData = value; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - - value = (unsigned char)c; - if (value != lastData) { - PORTE = (value & 0x3) | ((value & 0xC) << 2) | ((value & 0x20) >> 2); - PORTG = (value & 0x10) << 1; - PORTH = (value & 0xC0) >> 3; - lastData = value; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; -} - -void LCD_ILI9325D::WriteCommandData(uint16_t cmd,uint16_t dat) -{ - SetCommandMode(); - WriteData(cmd); - SetDataMode(); - WriteData(dat); -} - -void LCD_ILI9325D::begin() -{ - pinMode(RS,OUTPUT); - pinMode(WR,OUTPUT); - pinMode(CS,OUTPUT); - pinMode(RST,OUTPUT); - - //DDRD = 0xFF; - for(int a=0;a < 8;a++) - { - pinMode(a,OUTPUT); - digitalWrite(a, LOW); - } - - digitalWrite(RST,HIGH); - delay(5); - digitalWrite(RST,LOW); - delay(5); - - digitalWrite(RST,HIGH); - digitalWrite(CS,HIGH); - digitalWrite(WR,HIGH); - delay(50); - - PORTE = 0; - PORTG = 0; - PORTH = 0; - lastData = 0; - - WriteCommandData(0x00E5, 0x78F0); // set SRAM internal timing - WriteCommandData(0x0001, 0x0100); // set Driver Output Control - WriteCommandData(0x0002, 0x0200); // set 1 line inversion - WriteCommandData(0x0003, 0x1030); // set GRAM write direction and BGR=1. - WriteCommandData(0x0004, 0x0000); // Resize register - WriteCommandData(0x0008, 0x0207); // set the back porch and front porch - WriteCommandData(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0] - WriteCommandData(0x000A, 0x0000); // FMARK function - WriteCommandData(0x000C, 0x0000); // RGB interface setting - WriteCommandData(0x000D, 0x0000); // Frame marker Position - WriteCommandData(0x000F, 0x0000); // RGB interface polarity - //*************Power 00On sequence ****************// - WriteCommandData(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB - WriteCommandData(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0] - WriteCommandData(0x0012, 0x0000); // VREG1OUT voltage - WriteCommandData(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude - WriteCommandData(0x0007, 0x0001); - delay(200); // Dis-ch00arge capacitor power voltage - WriteCommandData(0x0010, 0x1690); // SAP, BT[3:0], AP, DSTB, SLP, STB - WriteCommandData(0x0011, 0x0227); // Set DC1[2:0], DC0[2:0], VC[2:0] - delay(50); // Delay 50ms - WriteCommandData(0x0012, 0x000D); // 0012 - delay(50); // Delay 50ms - WriteCommandData(0x0013, 0x1200); // VDV[4:0] for VCOM amplitude - WriteCommandData(0x0029, 0x000A); // 04 VCM[5:0] for VCOMH - WriteCommandData(0x002B, 0x000D); // Set Frame Rate - delay(50); // Delay 50ms - WriteCommandData(0x0020, 0x0000); // GRAM horizontal Address - WriteCommandData(0x0021, 0x0000); // GRAM Vertical Address - // ----------- Adjust00 the Gamma Curve ----------// - WriteCommandData(0x0030, 0x0000); - WriteCommandData(0x0031, 0x0404); - WriteCommandData(0x0032, 0x0003); - WriteCommandData(0x0035, 0x0405); - WriteCommandData(0x0036, 0x0808); - WriteCommandData(0x0037, 0x0407); - WriteCommandData(0x0038, 0x0303); - WriteCommandData(0x0039, 0x0707); - WriteCommandData(0x003C, 0x0504); - WriteCommandData(0x003D, 0x0808); - //------------------ 00Set GRAM area ---------------// - WriteCommandData(0x0050, 0x0000); // Horizontal GRAM Start Address - WriteCommandData(0x0051, 0x00EF); // Horizontal GRAM End Address - WriteCommandData(0x0052, 0x0000); // Vertical GRAM Start Address - WriteCommandData(0x0053, 0x013F); // Vertical GRAM Start Address - WriteCommandData(0x0060, 0xA700); // Gate Scan Line - WriteCommandData(0x0061, 0x0001); // NDL,VLE, REV - WriteCommandData(0x006A, 0x0000); // set scrolling line - //-------------- Part00ial Display Control ---------// - WriteCommandData(0x0080, 0x0000); - WriteCommandData(0x0081, 0x0000); - WriteCommandData(0x0082, 0x0000); - WriteCommandData(0x0083, 0x0000); - WriteCommandData(0x0084, 0x0000); - WriteCommandData(0x0085, 0x0000); - //-------------- Pane00l Control -------------------// - WriteCommandData(0x0090, 0x0010); - WriteCommandData(0x0092, 0x0000); - WriteCommandData(0x0007, 0x0133); - - Disable(); - - m_color[0] = 0; - m_color[1] = 0xffff; - clear(); -} - -void LCD_ILI9325D::setXY(uint16_t x0,uint16_t x1,uint16_t y1,uint16_t y0) -{ - y1 = 319 - y1; - y0 = 319 - y0; - - WriteCommandData(WINDOW_XADDR_START,x0); - WriteCommandData(WINDOW_XADDR_END,x1); - WriteCommandData(WINDOW_YADDR_START,y0); - WriteCommandData(WINDOW_YADDR_END,y1); - WriteCommandData(GRAM_XADDR,x0); - WriteCommandData(GRAM_YADDR,y0); - SetCommandMode(); - WriteData(0x0022);//LCD_WriteCMD(GRAMWR); - SetDataMode(); -} - -void LCD_ILI9325D::clearPixels(uint16_t pixels) -{ - digitalWrite(RS,HIGH);//LCD_RS=0; - digitalWrite(CS,LOW);//LCD_CS =0; - PORTE = 0; - PORTG = 0; - PORTH = 0; - lastData = 0; - do { - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - } while (--pixels); - digitalWrite(CS,HIGH);//LCD_CS =0; -} - -void LCD_ILI9325D::clear(uint16_t x, uint16_t y, uint16_t width, uint16_t height) -{ - unsigned long count = (unsigned long)width * height; - setXY(y, y + height - 1, x, x + width - 1); - - digitalWrite(RS,HIGH);//LCD_RS=0; - digitalWrite(CS,LOW);//LCD_CS =0; - PORTE = 0; - PORTG = 0; - PORTH = 0; - lastData = 0; - do { - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - } while (--count); - digitalWrite(CS,HIGH);//LCD_CS =0; - m_x = x; - m_y = y; -} - -size_t LCD_ILI9325D::write(uint8_t c) -{ - if (c == '\n') { - m_x += (m_font + 1) << 3; - return 0; - } else if (c == '\r') { - setXY(m_x, m_x + 7, m_y, 319); - clearPixels((320 - m_y) * 8); - m_y = 0; - return 0; - } - - if (m_font == FONT_SIZE_SMALL) { - setXY(m_x, m_x + 7, m_y, m_y + 4); - m_y += 6; - if (m_y >= 320) { - m_x += (m_font + 1) << 3; - m_y = 0; - if (m_x >= 240) { - m_x = 0; - } - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[5]; - memcpy_P(pgm_buffer, &font5x8[c - 0x21], 5); - byte i = 4; - do { - unsigned char d = pgm_buffer[i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } while (i--); - } else { - clearPixels(5 * 8); - } - } else { - setXY(m_x, m_x + 15, m_y, m_y + 7); - m_y += 9; - if (m_y >= 320) { - m_x += (m_font + 1) << 3; - m_y = 0; - if (m_x >= 240) { - m_x = 0; - } - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - for (byte i = 0; i < 16; i += 2) { - unsigned char d = pgm_buffer[14 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } else { - clearPixels(8 * 16); - } - } -} - -void LCD_ILI9325D::writeDigit(byte n) -{ - if (m_font == FONT_SIZE_LARGE) { - setXY(m_x, m_x + 15, m_y, m_y + 15); - m_y += 16; - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - for (byte i = 0; i < 16; i++) { - unsigned char d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[31 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } else { - clearPixels(16 * 16); - } - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_x, m_x + 23, m_y, m_y + 15); - m_y += 18; - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - for (int i = 0; i < 48; i += 3) { - unsigned char d = pgm_buffer[45 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[46 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[47 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } else { - clearPixels(16 * 24); - } - } else { - write(n <= 9 ? ('0' + n) : ' '); - } -} - -void LCD_ILI9325D::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - setXY(m_x, m_x + height - 1, m_y, m_y + width - 1); - uint16_t i = width - 1; - do { - for (uint8_t h = 0; h < rows; h++) { - byte d = pgm_read_byte_far(buffer + i + width * h); - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } while (i--); - m_y += width; -} - -void LCD_ILI9325D::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY) -{ - byte rows = height >> 3; - if (scaleY == 0) scaleY = scaleX; - setXY(m_x, m_x + height - 1, m_y, m_y + width - 1); - uint16_t i = width - 1; - do { - for (byte n = 0; n < scaleX; n++) { - for (uint8_t h = 0; h < rows; h++) { - byte d = pgm_read_byte_far(buffer + i + width * h); - for (byte j = 0; j < 8; j++, d >>= 1) { - for (byte m = 0; m < scaleY; m++) { - WriteData(m_color[d & 1]); - } - } - } - } - } while (i--); - m_y += width * scaleX; -} - -void LCD_ILI9325D::draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - char buf[240]; - setXY(m_x, m_x + height * 2 - 1, m_y, m_y + width * 2- 1); - uint16_t i = width - 1; - do { - memcpy_P(buf, buffer + i * height * 2, height * 2); - for (byte j = 0; j < height * 2; j += 2) { - WriteData(buf[j], buf[j + 1]); - WriteData(buf[j], buf[j + 1]); - } - for (byte j = 0; j < height * 2; j += 2) { - WriteData(buf[j], buf[j + 1]); - WriteData(buf[j], buf[j + 1]); - } - } while (i--); - m_y += width * 2; -} - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9341.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9341.cpp deleted file mode 100644 index 4f8b64c..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/ILI9341.cpp +++ /dev/null @@ -1,526 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include -#include "MultiLCD.h" - -/* Pins -D4 : RESET -D5 : CS -D6 : D/C -D7 : LED -D11 : MOSI -D12 : MISO -D13 : SCK -*/ - -#define PIN_RESET 4 -#define PIN_CS 5 -#define PIN_DC 6 -#define PIN_LED 7 - -//Basic Colors -#define RED 0xf800 -#define GREEN 0x07e0 -#define BLUE 0x001f -#define BLACK 0x0000 -#define YELLOW 0xffe0 -#define WHITE 0xffff - -//Other Colors -#define CYAN 0x07ff -#define BRIGHT_RED 0xf810 -#define GRAY1 0x8410 -#define GRAY2 0x4208 - -//TFT resolution 240*320 -#define MIN_X 0 -#define MIN_Y 0 -#define MAX_X 239 -#define MAX_Y 319 - -#define TFT_CS_LOW digitalWrite(PIN_CS, LOW) -#define TFT_CS_HIGH digitalWrite(PIN_CS, HIGH) -#define TFT_DC_LOW digitalWrite(PIN_DC, LOW) -#define TFT_DC_HIGH digitalWrite(PIN_DC, HIGH) -#define TFT_RST_OFF digitalWrite(PIN_RESET, HIGH) -#define TFT_RST_ON digitalWrite(PIN_RESET, LOW) - - -#define YP A2 // must be an analog pin, use "An" notation! -#define XM A1 // must be an analog pin, use "An" notation! -#define YM 14 // can be a digital pin, this is A0 -#define XP 17 // can be a digital pin, this is A3 - -#define TS_MINX 116*2 -#define TS_MAXX 890*2 -#define TS_MINY 83*2 -#define TS_MAXY 913*2 - -void LCD_ILI9341::sendCMD(uint8_t index) -{ - TFT_DC_LOW; - TFT_CS_LOW; - SPI.transfer(index); - TFT_CS_HIGH; -} - -void LCD_ILI9341::WRITE_DATA(uint8_t data) -{ - TFT_DC_HIGH; - TFT_CS_LOW; - SPI.transfer(data); - TFT_CS_HIGH; -} - -void LCD_ILI9341::sendData(uint16_t data) -{ - uint8_t data1 = data>>8; - uint8_t data2 = data&0xff; - TFT_DC_HIGH; - TFT_CS_LOW; - SPI.transfer(data1); - SPI.transfer(data2); - TFT_CS_HIGH; -} - -void LCD_ILI9341::WRITE_Package(uint16_t *data, uint8_t howmany) -{ - uint16_t data1 = 0; - uint8_t data2 = 0; - - TFT_DC_HIGH; - TFT_CS_LOW; - uint8_t count=0; - for(count=0;count>8; - data2 = data[count]&0xff; - SPI.transfer(data1); - SPI.transfer(data2); - } - TFT_CS_HIGH; -} - -uint8_t LCD_ILI9341::Read_Register(uint8_t Addr, uint8_t xParameter) -{ - uint8_t data=0; - sendCMD(0xd9); /* ext command */ - WRITE_DATA(0x10+xParameter); /* 0x11 is the first Parameter */ - TFT_DC_LOW; - TFT_CS_LOW; - SPI.transfer(Addr); - TFT_DC_HIGH; - data = SPI.transfer(0); - TFT_CS_HIGH; - return data; -} - -void LCD_ILI9341::begin (void) -{ - pinMode(PIN_CS, OUTPUT); - pinMode(PIN_DC, OUTPUT); - pinMode(PIN_LED, OUTPUT); - pinMode(PIN_RESET, OUTPUT); - - SPI.begin(); - TFT_CS_HIGH; - TFT_DC_HIGH; - uint8_t i=0, TFTDriver=0; - - TFT_RST_ON; - delay(10); - TFT_RST_OFF; - - for(i=0;i<3;i++) - { - TFTDriver = readID(); - } - - sendCMD(0xCB); - WRITE_DATA(0x39); - WRITE_DATA(0x2C); - WRITE_DATA(0x00); - WRITE_DATA(0x34); - WRITE_DATA(0x02); - - sendCMD(0xCF); - WRITE_DATA(0x00); - WRITE_DATA(0XC1); - WRITE_DATA(0X30); - - sendCMD(0xE8); - WRITE_DATA(0x85); - WRITE_DATA(0x00); - WRITE_DATA(0x78); - - sendCMD(0xEA); - WRITE_DATA(0x00); - WRITE_DATA(0x00); - - sendCMD(0xED); - WRITE_DATA(0x64); - WRITE_DATA(0x03); - WRITE_DATA(0X12); - WRITE_DATA(0X81); - - sendCMD(0xF7); - WRITE_DATA(0x20); - - sendCMD(0xC0); //Power control - WRITE_DATA(0x23); //VRH[5:0] - - sendCMD(0xC1); //Power control - WRITE_DATA(0x10); //SAP[2:0];BT[3:0] - - sendCMD(0xC5); //VCM control - WRITE_DATA(0x3e); //Contrast - WRITE_DATA(0x28); - - sendCMD(0xC7); //VCM control2 - WRITE_DATA(0x86); //-- - - sendCMD(0x36); // Memory Access Control - WRITE_DATA(0x48); //C8 - - sendCMD(0x3A); - WRITE_DATA(0x55); - - sendCMD(0xB1); - WRITE_DATA(0x00); - WRITE_DATA(0x18); - - sendCMD(0xB6); // Display Function Control - WRITE_DATA(0x08); - WRITE_DATA(0x82); - WRITE_DATA(0x27); - - sendCMD(0xF2); // 3Gamma Function Disable - WRITE_DATA(0x00); - - sendCMD(0x26); //Gamma curve selected - WRITE_DATA(0x01); - - sendCMD(0xE0); //Set Gamma - WRITE_DATA(0x0F); - WRITE_DATA(0x31); - WRITE_DATA(0x2B); - WRITE_DATA(0x0C); - WRITE_DATA(0x0E); - WRITE_DATA(0x08); - WRITE_DATA(0x4E); - WRITE_DATA(0xF1); - WRITE_DATA(0x37); - WRITE_DATA(0x07); - WRITE_DATA(0x10); - WRITE_DATA(0x03); - WRITE_DATA(0x0E); - WRITE_DATA(0x09); - WRITE_DATA(0x00); - - sendCMD(0XE1); //Set Gamma - WRITE_DATA(0x00); - WRITE_DATA(0x0E); - WRITE_DATA(0x14); - WRITE_DATA(0x03); - WRITE_DATA(0x11); - WRITE_DATA(0x07); - WRITE_DATA(0x31); - WRITE_DATA(0xC1); - WRITE_DATA(0x48); - WRITE_DATA(0x08); - WRITE_DATA(0x0F); - WRITE_DATA(0x0C); - WRITE_DATA(0x31); - WRITE_DATA(0x36); - WRITE_DATA(0x0F); - - sendCMD(0x11); //Exit Sleep - delay(120); - - sendCMD(0x29); //Display on - sendCMD(0x2c); - clear(); - - setBackLight(255); - setColor(0xffff); - setBackColor(0); -} - -uint8_t LCD_ILI9341::readID(void) -{ - uint8_t i=0; - uint8_t data[3] ; - uint8_t ID[3] = {0x00, 0x93, 0x41}; - uint8_t ToF=1; - for(i=0;i<3;i++) - { - data[i]=Read_Register(0xd3,i+1); - if(data[i] != ID[i]) - { - ToF=0; - } - } - if(!ToF) /* data!=ID */ - { -#if 0 - Serial.print("Read TFT ID failed, ID should be 0x09341, but read ID = 0x"); - for(i=0;i<3;i++) - { - Serial.print(data[i],HEX); - } - Serial.println(); -#endif - } - return ToF; -} - -void LCD_ILI9341::setCol(uint16_t StartCol,uint16_t EndCol) -{ - sendCMD(0x2A); /* Column Command address */ - sendData(StartCol); - sendData(EndCol); -} - -void LCD_ILI9341::setPage(uint16_t StartPage,uint16_t EndPage) -{ - sendCMD(0x2B); /* Column Command address */ - sendData(StartPage); - sendData(EndPage); -} - -void LCD_ILI9341::fill(uint16_t x0, uint16_t x1, uint16_t y0, uint16_t y1, uint16_t color) -{ - uint8_t Hcolor = color>>8; - uint8_t Lcolor = color&0xff; - - setCol(239 - y1, 239 - y0); - setPage(x0, x1); - sendCMD(0x2c); /* start to write to display ra */ - /* m */ - TFT_DC_HIGH; - TFT_CS_LOW; - for(uint16_t n = (x1-x0+1) * (y1-y0+1); n > 0; n--) - { - SPI.transfer(Hcolor); - SPI.transfer(Lcolor); - } - TFT_CS_HIGH; -} - -void LCD_ILI9341::clear(void) -{ - setCol(0, 239); - setPage(0, 319); - sendCMD(0x2c); /* start to write to display ra */ - /* m */ - - TFT_DC_HIGH; - TFT_CS_LOW; - for(uint16_t i=0; i<38400; i++) - { - SPI.transfer(0); - SPI.transfer(0); - SPI.transfer(0); - SPI.transfer(0); - } - TFT_CS_HIGH; - - m_x = 0; - m_y = 0; -} - - -void LCD_ILI9341::setXY(uint16_t x0, uint16_t x1, uint16_t y0, uint16_t y1) -{ - setCol(239 - x1, 239 - x0); - setPage(y0, y1); - sendCMD(0x2c); -} - -void LCD_ILI9341::setPixel(uint16_t poX, uint16_t poY,uint16_t color) -{ - setXY(poY, poY, poX, poX); - sendData(color); -} - -void LCD_ILI9341::setBackLight(byte brightness) -{ - digitalWrite(PIN_LED, brightness ? HIGH : LOW); -} - -void LCD_ILI9341::clearPixels(uint16_t pixels) -{ - TFT_DC_HIGH; - TFT_CS_LOW; - for(uint16_t i = 0; i < pixels; i++) - { - SPI.transfer(0); - SPI.transfer(0); - } - TFT_CS_HIGH; -} - -void LCD_ILI9341::sendPixelData(byte d) -{ - for (byte j = 0; j < 8; j++, d <<= 1) { - if (d & 0x80) { - SPI.transfer(m_color[1][1]); - SPI.transfer(m_color[1][0]); - } else { - SPI.transfer(m_color[0][1]); - SPI.transfer(m_color[0][0]); - } - } -} - -size_t LCD_ILI9341::write(uint8_t c) -{ - if (c == '\n') { - m_y += (m_font + 1) << 3; - return 1; - } else if (c == '\r') { - m_x = 0; - return 1; - } - -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - setXY(m_y, m_y + 7, m_x, m_x + 4); - m_x += 6; - if (m_x >= 320) { - m_y += 8; - m_x = 0; - if (m_y >= 240) m_y = 0; - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[5]; - memcpy_P(pgm_buffer, &font5x8[c - 0x21], 5); - TFT_DC_HIGH; - TFT_CS_LOW; - for (byte i = 0; i < 5; i++) { - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(5 * 8); - } -#ifndef MEMORY_SAVING - } else { - setXY(m_y, m_y + 15, m_x, m_x + 7); - m_x += 9; - if (m_x >= 320) { - m_y += 16; - m_x = 0; - if (m_y >= 240) m_y = 0; - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - TFT_DC_HIGH; - TFT_CS_LOW; - for (byte i = 0; i < 16; i += 2) { - sendPixelData(pgm_buffer[i + 1]); - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(8 * 16); - } - } -#endif - return 1; -} - -void LCD_ILI9341::writeDigit(byte n) -{ - if (m_font == FONT_SIZE_LARGE) { - setXY(m_y, m_y + 15, m_x, m_x + 15); - m_x += 16; - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - TFT_DC_HIGH; - TFT_CS_LOW; - for (byte i = 0; i < 16; i++) { - sendPixelData(pgm_buffer[16 + i]); - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(16 * 16); - } - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_y, m_y + 23, m_x, m_x + 15); - m_x += 17; - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - TFT_DC_HIGH; - TFT_CS_LOW; - for (int i = 0; i < 48; i += 3) { - sendPixelData(pgm_buffer[i + 2]); - sendPixelData(pgm_buffer[i + 1]); - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(16 * 24); - } - } else { - write(n <= 9 ? ('0' + n) : ' '); - } -} - -void LCD_ILI9341::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - setXY(m_y, m_y + height - 1, m_x, m_x + width - 1); - uint16_t i = width - 1; - TFT_DC_HIGH; - TFT_CS_LOW; - for (uint16_t i = 0; i < width; i++) { - for (int8_t h = rows - 1; h >= 0; h--) { - byte d = pgm_read_byte(buffer + i + width * h); - sendPixelData(d); - } - } - TFT_CS_HIGH; - m_x += width; -} - -void LCD_ILI9341::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte ScaleY) -{ - byte rows = height >> 3; - setXY(m_y, m_y + height * 2 - 1, m_x, m_x + width * 2 - 1); - uint16_t i = width - 1; - uint16_t w = width << 1; - TFT_DC_HIGH; - TFT_CS_LOW; - for (uint16_t i = 0; i < w; i++) { - for (int8_t h = rows - 1; h >= 0; h--) { - byte d = pgm_read_byte(buffer + (i >> 1) + width * h); - for (byte j = 0; j < 8; j++, d <<= 1) { - if (d & 0x80) { - SPI.transfer(m_color[1][1]); - SPI.transfer(m_color[1][0]); - SPI.transfer(m_color[1][1]); - SPI.transfer(m_color[1][0]); - } else { - SPI.transfer(m_color[0][1]); - SPI.transfer(m_color[0][0]); - SPI.transfer(m_color[0][1]); - SPI.transfer(m_color[0][0]); - } - } - } - }; - TFT_CS_HIGH; - m_x += (width << 1); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.cpp deleted file mode 100644 index e60e773..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" -#include "fonts.h" - -void LCD_Common::printInt(uint16_t value, int8_t padding) -{ - uint16_t den = 10000; - for (int8_t i = 5; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_Common::printLong(uint32_t value, int8_t padding) -{ - uint32_t den = 1000000000; - for (int8_t i = 10; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.h deleted file mode 100644 index 58f7a11..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/MultiLCD.h +++ /dev/null @@ -1,326 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include - -#if defined(__AVR_ATmega168P__) -#define MEMORY_SAVING -#endif - -#ifdef __arm__ -#define PROGMEM -#endif - -typedef enum { - FONT_SIZE_SMALL = 0, - FONT_SIZE_MEDIUM, - FONT_SIZE_LARGE, - FONT_SIZE_XLARGE -} FONT_SIZE; - -#define FLAG_PAD_ZERO 1 -#define FLAG_PIXEL_DOUBLE_H 2 -#define FLAG_PIXEL_DOUBLE_V 4 -#define FLAG_PIXEL_DOUBLE (FLAG_PIXEL_DOUBLE_H | FLAG_PIXEL_DOUBLE_V) - -#define RGB16(r,g,b) (((uint16_t)(r >> 3) << 11) | ((uint16_t)(g >> 2) << 5) | (b >> 3)) - -#define RGB16_RED 0xF800 -#define RGB16_GREEN 0x7E0 -#define RGB16_BLUE 0x1F -#define RGB16_YELLOW 0xFFE0 -#define RGB16_CYAN 0x7FF -#define RGB16_PINK 0xF81F -#define RGB16_WHITE 0xFFFF - - -extern const PROGMEM unsigned char font5x8[][5]; -extern const PROGMEM unsigned char digits8x8[][8] ; -extern const PROGMEM unsigned char digits16x16[][32]; -extern const PROGMEM unsigned char digits16x24[][48]; -extern const PROGMEM unsigned char font8x16_doslike[][16]; -extern const PROGMEM unsigned char font8x16_terminal[][16]; - -class LCD_Common -{ -public: - LCD_Common():m_font(FONT_SIZE_SMALL),m_flags(0) {} - void setFontSize(FONT_SIZE size) { m_font = size; } - void setFlags(byte flags) { m_flags = flags; } - virtual void setBackLight(byte brightness) {} - virtual void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) {} - virtual void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0) {} - virtual void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height) {} - virtual size_t write(uint8_t c) { return 0; } - virtual byte getLines() { return 0; } - virtual byte getCols() { return 0; } - virtual void clearLine(byte line) {} - virtual void clear() {} - virtual void begin() {} - virtual void setCursor(byte column, byte line) {} - virtual byte readTouchData(int& x, int& y) { return 0; } - virtual int getScreenWidth() { return 320; } - virtual int getScreenHeight() { return 240; } - void printInt(uint16_t value, int8_t padding = -1); - void printLong(uint32_t value, int8_t padding = -1); - void printSpace(byte n) - { - for (byte m = 0; m < n; m++) write(' '); - } -protected: - virtual void writeDigit(byte n) {} - byte m_font; - byte m_flags; - uint16_t m_x; - uint16_t m_y; -}; - -#define TFT_LINE_HEIGHT 8 - -class LCD_ILI9325D : public LCD_Common, public Print -{ -public: - LCD_ILI9325D() { m_font = FONT_SIZE_MEDIUM; } - void setCursor(uint16_t column, uint8_t line) - { - m_y = column; - m_x = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_y = x; - m_x = y; - } - void setColor(uint16_t color) - { - m_color[1] = color; - } - void setColor(uint8_t R, uint8_t G, uint8_t B) - { - m_color[1] = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - } - void setBackColor(uint16_t color) - { - m_color[0] = color; - } - void setBackColor(uint8_t R, uint8_t G, uint8_t B) - { - m_color[0] = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - } - void begin(); - void clear(uint16_t x = 0, uint16_t y = 0, uint16_t width = 320, uint16_t height = 240); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); - void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - size_t write(uint8_t); - void clearLine(byte line) - { - clear(0, line * TFT_LINE_HEIGHT, 320, 8); - } - byte getLines() { return 53; } - byte getCols() { return 30; } -private: - void setXY(uint16_t x0,uint16_t x1,uint16_t y0,uint16_t y1); - void writeDigit(byte n); - void clearPixels(uint16_t pixels); - void WriteData(uint16_t c); - void WriteData(byte l, byte h); - void WriteCommandData(uint16_t cmd,uint16_t dat); - void Enable(); - void Disable(); - void SetCommandMode(); - void SetDataMode(); - uint16_t m_x; - uint16_t m_y; - uint16_t m_color[2]; - byte lastData; -}; - -class LCD_ILI9341 : public LCD_Common, public Print -{ -public: - LCD_ILI9341() { m_font = FONT_SIZE_MEDIUM; } - void setCursor(uint16_t column, uint8_t line) - { - m_x = column; - m_y = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_x = x; - m_y = y; - } - void setColor(uint16_t color) - { - m_color[1][0] = color & 0xff; - m_color[1][1] = color >> 8; - } - void setColor(uint8_t R, uint8_t G, uint8_t B) - { - uint16_t color = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - m_color[1][0] = color & 0xff; - m_color[1][1] = color >> 8; - } - void setBackColor(uint16_t color) - { - m_color[0][0] = color & 0xff; - m_color[0][1] = color >> 8; - } - void setBackColor(uint8_t R, uint8_t G, uint8_t B) - { - uint16_t color = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - m_color[0][0] = color & 0xff; - m_color[0][1] = color >> 8; - } - void clearLine(byte line) - { - fill(0, line * TFT_LINE_HEIGHT, 320, 8); - } - void begin (void); - void setPixel(uint16_t poX, uint16_t poY,uint16_t color); - void fill(uint16_t XL,uint16_t XR,uint16_t YU,uint16_t YD,uint16_t color = 0); - void clear(void); - size_t write(uint8_t); - void setBackLight(byte brightness); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); -private: - void setXY(uint16_t x0, uint16_t x1, uint16_t y0, uint16_t y1); - void sendPixelData(byte d); - void writeDigit(byte n); - void clearPixels(uint16_t pixels); - void setCol(uint16_t StartCol,uint16_t EndCol); - void setPage(uint16_t StartPage,uint16_t EndPage); - void sendCMD(uint8_t index); - void WRITE_Package(uint16_t *data,uint8_t howmany); - void WRITE_DATA(uint8_t data); - void sendData(uint16_t data); - uint8_t Read_Register(uint8_t Addr,uint8_t xParameter); - uint8_t readID(void); - uint8_t m_color[2][2]; -}; - -class LCD_SSD1289 : public UTFT, public LCD_Common, public Print -{ -public: - LCD_SSD1289() - { - m_font = FONT_SIZE_MEDIUM; - disp_x_size = 239; - disp_y_size = 319; - orient = LANDSCAPE; - display_transfer_mode = 16; - display_model = ITDB32S; - __p1 = 38; - __p2 = 39; - __p3 = 40; - __p4 = 41; - __p5 = 0; - - P_RS = portOutputRegister(digitalPinToPort(38)); - B_RS = digitalPinToBitMask(38); - P_WR = portOutputRegister(digitalPinToPort(39)); - B_WR = digitalPinToBitMask(39); - P_CS = portOutputRegister(digitalPinToPort(40)); - B_CS = digitalPinToBitMask(40); - P_RST = portOutputRegister(digitalPinToPort(41)); - B_RST = digitalPinToBitMask(41); - } - void setCursor(uint16_t column, uint8_t line) - { - m_x = column; - m_y = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_x = x; - m_y = y; - } - void begin(); - void clear(uint16_t x = 0, uint16_t y = 0, uint16_t width = 319, uint16_t height = 239); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); - void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - size_t write(uint8_t); - void clearLine(byte line) - { - clear(0, line * TFT_LINE_HEIGHT, disp_y_size, 8); - } - void setBackLight(byte brightness); - void drawPixel(uint16_t poX, uint16_t poY, uint16_t color); - byte getTouchData(int& x, int& y); -private: - void setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2); - void writeDigit(byte n); - void clearPixels(uint32_t pixels); - void Enable(); - void Disable(); - void shiftOutTouchData(unsigned char data); - unsigned int shiftInTouchData(); -}; - -class LCD_R61581 : public UTFT, public LCD_Common, public Print -{ -public: - LCD_R61581() - { - m_font = FONT_SIZE_MEDIUM; - disp_x_size = 319; - disp_y_size = 479; - orient = LANDSCAPE; - display_transfer_mode = 16; - display_model = CTE35IPS; - __p1 = 38; - __p2 = 39; - __p3 = 40; - __p4 = 41; - __p5 = 0; - - P_RS = portOutputRegister(digitalPinToPort(38)); - B_RS = digitalPinToBitMask(38); - P_WR = portOutputRegister(digitalPinToPort(39)); - B_WR = digitalPinToBitMask(39); - P_CS = portOutputRegister(digitalPinToPort(40)); - B_CS = digitalPinToBitMask(40); - P_RST = portOutputRegister(digitalPinToPort(41)); - B_RST = digitalPinToBitMask(41); - } - void setCursor(uint16_t column, uint8_t line) - { - m_x = column; - m_y = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_x = x; - m_y = y; - } - void begin(); - void clear(uint16_t x = 0, uint16_t y = 0, uint16_t width = 479, uint16_t height = 319); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); - void draw2x(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - size_t write(uint8_t); - void clearLine(byte line) - { - clear(0, line * TFT_LINE_HEIGHT, disp_y_size, 8); - } - void setBackLight(byte brightness); - void drawPixel(uint16_t poX, uint16_t poY, uint16_t color); - byte getTouchData(int& x, int& y); - int getScreenWidth() { return 480; } - int getScreenHeight() { return 320; } -private: - void setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2); - void writeDigit(byte n); - void clearPixels(uint32_t pixels); - void Enable(); - void Disable(); - void shiftOutTouchData(unsigned char data); - unsigned int shiftInTouchData(); -}; - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/R61581.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/R61581.cpp deleted file mode 100644 index b17d5d5..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/R61581.cpp +++ /dev/null @@ -1,517 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" - -/********************************************** -Define zone -**********************************************/ - -#define PIN_CLK 6 -#define PIN_CS 5 -#define PIN_DIN 4 -#define PIN_DOUT 3 -#define PIN_IRQ 2 - -#define PIN_BACKLIGHT 8 - -#define PixSizeX 1143 -#define PixOffsX 1780 - -#define PixSizeY 793 -#define PixOffsY 1380 - -/********************************************** -Standard C functions zone -**********************************************/ -void LCD_R61581::begin() -{ - digitalWrite(PIN_BACKLIGHT, LOW); - delay(50); - pinMode(__p1,OUTPUT); - pinMode(__p2,OUTPUT); - pinMode(__p3,OUTPUT); - if (__p4 != NOTINUSE) - pinMode(__p4,OUTPUT); - if ((display_transfer_mode==LATCHED_16) or ((display_transfer_mode==1) and (display_serial_mode==SERIAL_5PIN))) - pinMode(__p5,OUTPUT); - if (display_transfer_mode!=1) - _set_direction_registers(display_transfer_mode); - - _hw_special_init(); - - sbi(P_RST, B_RST); - delay(5); - cbi(P_RST, B_RST); - delay(15); - sbi(P_RST, B_RST); - delay(15); - - setColor(0xffff); - setBackColor(0); - _transparent = false; - - cbi(P_CS, B_CS); - - LCD_Write_COM(0xB0); - LCD_Write_DATA(0x1E); - - LCD_Write_COM(0xB0); - LCD_Write_DATA(0x00); - - LCD_Write_COM(0xB3); - LCD_Write_DATA(0x02); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x10); - - LCD_Write_COM(0xB4); - LCD_Write_DATA(0x00);//0X10 - -// LCD_Write_COM(0xB9); //PWM Settings for Brightness Control -// LCD_Write_DATA(0x01);// Disabled by default. -// LCD_Write_DATA(0xFF); //0xFF = Max brightness -// LCD_Write_DATA(0xFF); -// LCD_Write_DATA(0x18); - - LCD_Write_COM(0xC0); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x3B);// - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x01); - LCD_Write_DATA(0x00);//NW - LCD_Write_DATA(0x43); - - LCD_Write_COM(0xC1); - LCD_Write_DATA(0x08); - LCD_Write_DATA(0x15);//CLOCK - LCD_Write_DATA(0x08); - LCD_Write_DATA(0x08); - - LCD_Write_COM(0xC4); - LCD_Write_DATA(0x15); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x01); - - LCD_Write_COM(0xC6); - LCD_Write_DATA(0x02); - - LCD_Write_COM(0xC8); - LCD_Write_DATA(0x0c); - LCD_Write_DATA(0x05); - LCD_Write_DATA(0x0A);//0X12 - LCD_Write_DATA(0x6B);//0x7D - LCD_Write_DATA(0x04); - LCD_Write_DATA(0x06);//0x08 - LCD_Write_DATA(0x15);//0x0A - LCD_Write_DATA(0x10); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x60);//0x23 - - LCD_Write_COM(0x36); - LCD_Write_DATA(0x8A); - - LCD_Write_COM(0x0C); - LCD_Write_DATA(0x55); - - LCD_Write_COM(0x3A); - LCD_Write_DATA(0x55); - - LCD_Write_COM(0x38); - - LCD_Write_COM(0xD0); - LCD_Write_DATA(0x07); - LCD_Write_DATA(0x07);//VCI1 - LCD_Write_DATA(0x14);//VRH 0x1D - LCD_Write_DATA(0xA2);//BT 0x06 - - LCD_Write_COM(0xD1); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x5A);//VCM 0x5A - LCD_Write_DATA(0x10);//VDV - - LCD_Write_COM(0xD2); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x04);//0x24 - LCD_Write_DATA(0x04); - - LCD_Write_COM(0x11); - delay(150); - - LCD_Write_COM(0x2A); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x01); - LCD_Write_DATA(0xDF);//320 - - LCD_Write_COM(0x2B); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x01); - LCD_Write_DATA(0x3F);//480 - - - delay(100); - - LCD_Write_COM(0x29); - delay(30); - - LCD_Write_COM(0x2C); - delay(30); - - sbi (P_CS, B_CS); - - clear(); - - pinMode(PIN_BACKLIGHT, OUTPUT); - digitalWrite(PIN_BACKLIGHT, HIGH); - - // init pins for touch controller - pinMode(PIN_CLK, OUTPUT); - pinMode(PIN_CS, OUTPUT); - pinMode(PIN_DIN, OUTPUT); - pinMode(PIN_DOUT, INPUT); - pinMode(PIN_IRQ, INPUT); - - digitalWrite(PIN_CS, HIGH); - digitalWrite(PIN_CLK, HIGH); - digitalWrite(PIN_DIN, HIGH); - digitalWrite(PIN_CLK, HIGH); -} - -void LCD_R61581::setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) -{ - swap(word, x1, y1); - swap(word, x2, y2) - y1=disp_y_size-y1; - y2=disp_y_size-y2; - swap(word, y1, y2) - // begin hardware specific code - LCD_Write_COM(0x2a); - LCD_Write_DATA(x1>>8); - LCD_Write_DATA(x1); - LCD_Write_DATA(x2>>8); - LCD_Write_DATA(x2); - LCD_Write_COM(0x2b); - LCD_Write_DATA(y1>>8); - LCD_Write_DATA(y1); - LCD_Write_DATA(y2>>8); - LCD_Write_DATA(y2); - LCD_Write_COM(0x2c); -} - -void LCD_R61581::setBackLight(byte brightness) -{ - analogWrite(PIN_BACKLIGHT, brightness); -} - -void LCD_R61581::Enable() -{ - cbi(P_CS, B_CS); -} -void LCD_R61581::Disable() -{ - sbi(P_CS, B_CS); -} - -void LCD_R61581::drawPixel(uint16_t poX, uint16_t poY,uint16_t color) -{ - Enable(); - setXY(poX, poY, poX, poY); - setPixel(color); - Disable(); -} - -void LCD_R61581::clearPixels(uint32_t pixels) -{ - Enable(); - do { - setPixel(bch, bcl); - } while(--pixels); - Disable(); -} - -void LCD_R61581::clear(uint16_t x, uint16_t y, uint16_t width, uint16_t height) -{ - setColor(0); - fillRect(x, y, x + width, y + height); - setColor(0xffff); - m_x = 0; - m_y = 0; -} - -size_t LCD_R61581::write(uint8_t c) -{ - if (c == '\n') { - m_x = 0; - m_y += m_font == 0 ? 8 : 16; - return 1; - } - if (m_x > disp_y_size) return 0; - Enable(); - if (m_font == FONT_SIZE_SMALL) { - setXY(m_x, m_y, m_x + 4, m_y + 7); - if (c > 0x20 && c < 0x7f) { - byte i = 4; - do { - unsigned char d = pgm_read_byte(&font5x8[c - 0x21][i]); - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } while(i--); - } else { - clearPixels(5 * 8); - } - m_x += 6; - } else { - setXY(m_x, m_y, m_x + 7, m_y + 15); - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - for (byte i = 0; i < 16; i += 2) { - unsigned char d = pgm_buffer[14 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 8); - } - m_x += 9; - } - Disable(); - return 1; -} - -void LCD_R61581::writeDigit(byte n) -{ - Enable(); - if (m_font == FONT_SIZE_LARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 15); - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - for (byte i = 0; i < 16; i++) { - unsigned char d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[31 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 16); - } - m_x += 16; - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 23); - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - for (int i = 0; i < 48; i += 3) { - unsigned char d = pgm_buffer[45 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[46 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[47 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 24); - } - m_x += 18; - } else { - write(n <= 9 ? ('0' + n) : ' '); - } - Disable(); -} - -void LCD_R61581::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - Enable(); - setXY(m_x, m_y, m_x + width - 1, m_y + height - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - setPixel(fch, fcl); - } else { - setPixel(bch, bcl); - } - } - } - } - Disable(); - m_x += width; -} - -void LCD_R61581::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY) -{ - byte rows = height >> 3; - if (scaleY == 0) scaleY = scaleX; - Enable(); - setXY(m_x, m_y, m_x + width * scaleX - 1, m_y + height * scaleY - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (byte n = 0; n < scaleX; n++) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - for (byte m = 0; m < scaleY; m++) { - setPixel(fch, fcl); - } - } else { - for (byte m = 0; m < scaleY; m++) { - setPixel(bch, bcl); - } - } - } - } - } - } - Disable(); - m_x += width * scaleX; -} - -void LCD_R61581::draw2x(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - char buf[240]; - Enable(); - setXY(m_x, m_y, m_x + width * 2 - 1, m_y + height * 2 - 1); - uint16_t i = width - 1; - do { - memcpy_P(buf, buffer + i * height * 2, height * 2); - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - } while (i--); - Disable(); - m_x += width * 2; -} - -void LCD_R61581::shiftOutTouchData(unsigned char data) -{ - unsigned char nop; - unsigned char count; - - digitalWrite(PIN_CLK,LOW); - - for(count=0; count<8; count++) - { - digitalWrite(PIN_DIN, data & 0x80 ? HIGH : LOW); - digitalWrite(PIN_CLK, LOW); - nop++; - digitalWrite(PIN_CLK, HIGH); - data <<= 1; - //nop++; - } -} - -unsigned int LCD_R61581::shiftInTouchData() -{ - unsigned char nop; - unsigned int data = 0; - unsigned char count; - for(count=0; count<12; count++) - { - data <<= 1; - digitalWrite(PIN_CLK, HIGH); - nop++; - digitalWrite(PIN_CLK, LOW); - //nop++; - data |= digitalRead(PIN_DOUT); - } - return data; -} - -byte LCD_R61581::getTouchData(int& x, int& y) -{ - unsigned long tx = 0; - unsigned long ty = 0; - - if (digitalRead(PIN_IRQ) == HIGH) - return 0; - - digitalWrite(PIN_CS,LOW); - for (int i=0; i < 10; i++) - { - shiftOutTouchData(0x90); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - int d = shiftInTouchData(); - if (d >= 3600) { - digitalWrite(PIN_CS,HIGH); - return 0; - } - ty += d; - - shiftOutTouchData(0xD0); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - tx+=shiftInTouchData(); - } - digitalWrite(PIN_CS,HIGH); - x = 480 - (ty - PixOffsY) * 10 / PixSizeY; - y = (tx - PixOffsX) * 10 / PixSizeX; - return 1; -} - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/SSD1289.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/SSD1289.cpp deleted file mode 100644 index dab0b32..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/SSD1289.cpp +++ /dev/null @@ -1,446 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" - -/********************************************** -Define zone -**********************************************/ - -#define PIN_BACKLIGHT 8 - -#define PIN_CLK 6 -#define PIN_CS 5 -#define PIN_DIN 4 -#define PIN_DOUT 3 -#define PIN_IRQ 2 - -#define PREC_TOUCH_CONST 10 - -#define PixSizeX 136 -#define PixOffsX 425 - -#define PixSizeY 106 -#define PixOffsY 366 - - -/********************************************** -Standard C functions zone -**********************************************/ -void LCD_SSD1289::begin() -{ - _hw_special_init(); - - pinMode(__p1,OUTPUT); - pinMode(__p2,OUTPUT); - pinMode(__p3,OUTPUT); - if (__p4 != NOTINUSE) - pinMode(__p4,OUTPUT); - if ((display_transfer_mode==LATCHED_16) or ((display_transfer_mode==1) and (display_serial_mode==SERIAL_5PIN))) - pinMode(__p5,OUTPUT); - if (display_transfer_mode!=1) - _set_direction_registers(display_transfer_mode); - - sbi(P_RST, B_RST); - delay(5); - cbi(P_RST, B_RST); - delay(15); - sbi(P_RST, B_RST); - delay(15); - - setColor(0xffff); - setBackColor(0); - _transparent = false; - - cbi(P_CS, B_CS); - - LCD_Write_COM_DATA(0x00,0x0001); - LCD_Write_COM_DATA(0x03,0xA8A4); - LCD_Write_COM_DATA(0x0C,0x0000); - LCD_Write_COM_DATA(0x0D,0x080C); - LCD_Write_COM_DATA(0x0E,0x2B00); - LCD_Write_COM_DATA(0x1E,0x00B7); - LCD_Write_COM_DATA(0x01,0x2B3F); - LCD_Write_COM_DATA(0x02,0x0600); - LCD_Write_COM_DATA(0x10,0x0000); - LCD_Write_COM_DATA(0x11,0x6070); - LCD_Write_COM_DATA(0x05,0x0000); - LCD_Write_COM_DATA(0x06,0x0000); - LCD_Write_COM_DATA(0x16,0xEF1C); - LCD_Write_COM_DATA(0x17,0x0003); - LCD_Write_COM_DATA(0x07,0x0233); - LCD_Write_COM_DATA(0x0B,0x0000); - LCD_Write_COM_DATA(0x0F,0x0000); - LCD_Write_COM_DATA(0x41,0x0000); - LCD_Write_COM_DATA(0x42,0x0000); - LCD_Write_COM_DATA(0x48,0x0000); - LCD_Write_COM_DATA(0x49,0x013F); - LCD_Write_COM_DATA(0x4A,0x0000); - LCD_Write_COM_DATA(0x4B,0x0000); - LCD_Write_COM_DATA(0x44,0xEF00); - LCD_Write_COM_DATA(0x45,0x0000); - LCD_Write_COM_DATA(0x46,0x013F); - LCD_Write_COM_DATA(0x30,0x0707); - LCD_Write_COM_DATA(0x31,0x0204); - LCD_Write_COM_DATA(0x32,0x0204); - LCD_Write_COM_DATA(0x33,0x0502); - LCD_Write_COM_DATA(0x34,0x0507); - LCD_Write_COM_DATA(0x35,0x0204); - LCD_Write_COM_DATA(0x36,0x0204); - LCD_Write_COM_DATA(0x37,0x0502); - LCD_Write_COM_DATA(0x3A,0x0302); - LCD_Write_COM_DATA(0x3B,0x0302); - LCD_Write_COM_DATA(0x23,0x0000); - LCD_Write_COM_DATA(0x24,0x0000); - LCD_Write_COM_DATA(0x25,0x8000); - LCD_Write_COM_DATA(0x4f,0x0000); - LCD_Write_COM_DATA(0x4e,0x0000); - LCD_Write_COM(0x22); - - sbi (P_CS, B_CS); - - clear(); - - pinMode(PIN_BACKLIGHT, OUTPUT); - digitalWrite(PIN_BACKLIGHT, HIGH); - - // set up pins for touch controller - pinMode(PIN_CLK, OUTPUT); - pinMode(PIN_CS, OUTPUT); - pinMode(PIN_DIN, OUTPUT); - pinMode(PIN_DOUT, INPUT); - pinMode(PIN_IRQ, INPUT); - - digitalWrite(PIN_CS, HIGH); - digitalWrite(PIN_CLK, HIGH); - digitalWrite(PIN_DIN, HIGH); - digitalWrite(PIN_CLK, HIGH); - -} - -void LCD_SSD1289::setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) -{ - swap(word, x1, y1); - swap(word, x2, y2) - y1=disp_y_size-y1; - y2=disp_y_size-y2; - swap(word, y1, y2) - // begin hardware specific code - LCD_Write_COM_DATA(0x44,(x2<<8)+x1); - LCD_Write_COM_DATA(0x45,y1); - LCD_Write_COM_DATA(0x46,y2); - LCD_Write_COM_DATA(0x4e,x1); - LCD_Write_COM_DATA(0x4f,y1); - LCD_Write_COM(0x22); -} - -void LCD_SSD1289::setBackLight(byte brightness) -{ - analogWrite(PIN_BACKLIGHT, brightness); -} - -void LCD_SSD1289::Enable() -{ - cbi(P_CS, B_CS); -} -void LCD_SSD1289::Disable() -{ - sbi(P_CS, B_CS); -} - -void LCD_SSD1289::drawPixel(uint16_t poX, uint16_t poY,uint16_t color) -{ - Enable(); - setXY(poX, poY, poX, poY); - setPixel(color); - Disable(); -} - -void LCD_SSD1289::clearPixels(uint32_t pixels) -{ - Enable(); - do { - setPixel(bch, bcl); - } while(--pixels); - Disable(); -} - -void LCD_SSD1289::clear(uint16_t x, uint16_t y, uint16_t width, uint16_t height) -{ - setColor(0); - fillRect(x, y, x + width, y + height); - setColor(0xffff); - m_x = 0; - m_y = 0; -} - -size_t LCD_SSD1289::write(uint8_t c) -{ - if (c == '\n') { - m_y += (m_font + 1) << 3; - return 0; - } else if (c == '\r') { - m_x = 0; - return 0; - } - if (m_x > disp_y_size) return 0; - Enable(); - if (m_font == FONT_SIZE_SMALL) { - setXY(m_x, m_y, m_x + 4, m_y + 7); - if (c > 0x20 && c < 0x7f) { - byte i = 4; - do { - unsigned char d = pgm_read_byte(&font5x8[c - 0x21][i]); - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } while(i--); - } else { - clearPixels(5 * 8); - } - m_x += 6; - } else { - setXY(m_x, m_y, m_x + 7, m_y + 15); - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - for (byte i = 0; i < 16; i += 2) { - unsigned char d = pgm_buffer[14 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 8); - } - m_x += 9; - } - Disable(); -} - -void LCD_SSD1289::writeDigit(byte n) -{ - Enable(); - if (m_font == FONT_SIZE_LARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 15); - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - for (byte i = 0; i < 16; i++) { - unsigned char d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[31 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 16); - } - m_x += 16; - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 23); - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - for (int i = 0; i < 48; i += 3) { - unsigned char d = pgm_buffer[45 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[46 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[47 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 24); - } - m_x += 18; - } else { - write(n <= 9 ? ('0' + n) : ' '); - } - Disable(); -} - -void LCD_SSD1289::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - Enable(); - setXY(m_x, m_y, m_x + width - 1, m_y + height - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - setPixel(fch, fcl); - } else { - setPixel(bch, bcl); - } - } - } - } - Disable(); - m_x += width; -} - -void LCD_SSD1289::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY) -{ - byte rows = height >> 3; - if (scaleY == 0) scaleY = scaleX; - Enable(); - setXY(m_x, m_y, m_x + width * scaleX - 1, m_y + height * scaleY - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (byte n = 0; n < scaleX; n++) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - for (byte m = 0; m < scaleY; m++) { - setPixel(fch, fcl); - } - } else { - for (byte m = 0; m < scaleY; m++) { - setPixel(bch, bcl); - } - } - } - } - } - } - Disable(); - m_x += width * scaleX; -} - -void LCD_SSD1289::draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - char buf[240]; - Enable(); - setXY(m_x, m_y, m_x + width * 2 - 1, m_y + height * 2 - 1); - uint16_t i = width - 1; - do { - memcpy_P(buf, buffer + i * height * 2, height * 2); - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - } while (i--); - Disable(); - m_x += width * 2; -} - -void LCD_SSD1289::shiftOutTouchData(unsigned char data) -{ - unsigned char nop; - unsigned char count; - - digitalWrite(PIN_CLK,LOW); - - for(count=0; count<8; count++) - { - digitalWrite(PIN_DIN, data & 0x80 ? HIGH : LOW); - digitalWrite(PIN_CLK, LOW); - nop++; - digitalWrite(PIN_CLK, HIGH); - data <<= 1; - //nop++; - } -} - -unsigned int LCD_SSD1289::shiftInTouchData() -{ - unsigned char nop; - unsigned int data = 0; - unsigned char count; - for(count=0; count<12; count++) - { - data <<= 1; - digitalWrite(PIN_CLK, HIGH); - nop++; - digitalWrite(PIN_CLK, LOW); - //nop++; - data |= digitalRead(PIN_DOUT); - } - return data; -} - -byte LCD_SSD1289::getTouchData(int& x, int& y) -{ - long tx = 0; - long ty = 0; - - if (digitalRead(PIN_IRQ) == HIGH) - return 0; - - digitalWrite(PIN_CS,LOW); - for (int i=0; i < PREC_TOUCH_CONST; i++) - { - shiftOutTouchData(0x90); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - int d = shiftInTouchData(); - if (d < PixOffsY) return 0; - ty += d; - - shiftOutTouchData(0xD0); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - tx+=shiftInTouchData(); - } - digitalWrite(PIN_CS,HIGH); - y = (tx - PixOffsX * PREC_TOUCH_CONST) / PixSizeX; - x = (ty - PixOffsY * PREC_TOUCH_CONST) / PixSizeY; - return 1; -} - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.cpp deleted file mode 100644 index c46561e..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.cpp +++ /dev/null @@ -1,1129 +0,0 @@ -/* - UTFT.cpp - Multi-Platform library support for Color TFT LCD Boards - Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved - - This library is the continuation of my ITDB02_Graph, ITDB02_Graph16 - and RGB_GLCD libraries for Arduino and chipKit. As the number of - supported display modules and controllers started to increase I felt - it was time to make a single, universal library as it will be much - easier to maintain in the future. - - Basic functionality of this library was origianlly based on the - demo-code provided by ITead studio (for the ITDB02 modules) and - NKC Electronics (for the RGB GLCD module/shield). - - This library supports a number of 8bit, 16bit and serial graphic - displays, and will work with both Arduino, chipKit boards and select - TI LaunchPads. For a full list of tested display modules and controllers, - see the document UTFT_Supported_display_modules_&_controllers.pdf. - - When using 8bit and 16bit display modules there are some - requirements you must adhere to. These requirements can be found - in the document UTFT_Requirements.pdf. - There are no special requirements when using serial displays. - - You can find the latest version of the library at - http://www.RinkyDinkElectronics.com/ - - This library is free software; you can redistribute it and/or - modify it under the terms of the CC BY-NC-SA 3.0 license. - Please see the included documents for further information. - - Commercial use of this library requires you to buy a license that - will allow commercial use. This includes using the library, - modified or not, as a tool to sell products. - - The license applies to all part of the library including the - examples and tools supplied with the library. -*/ - -#include "UTFT.h" - -// Include hardware-specific functions for the correct MCU -#if defined(__AVR__) - #include - #include "hardware/avr/HW_AVR.h" - #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - #include "hardware/avr/HW_ATmega1280.h" - #elif defined(__AVR_ATmega328P__) - #include "hardware/avr/HW_ATmega328P.h" - #elif defined(__AVR_ATmega32U4__) - #include "hardware/avr/HW_ATmega32U4.h" - #elif defined(__AVR_ATmega168__) - #error "ATmega168 MCUs are not supported because they have too little flash memory!" - #elif defined(__AVR_ATmega1284P__) - #include "hardware/avr/HW_ATmega1284P.h" - #else - #error "Unsupported AVR MCU!" - #endif -#elif defined(__PIC32MX__) - #include "hardware/pic32/HW_PIC32.h" - #if defined(__32MX320F128H__) - #pragma message("Compiling for chipKIT UNO32 (PIC32MX320F128H)") - #include "hardware/pic32/HW_PIC32MX320F128H.h" - #elif defined(__32MX340F512H__) - #pragma message("Compiling for chipKIT uC32 (PIC32MX340F512H)") - #include "hardware/pic32/HW_PIC32MX340F512H.h" - #elif defined(__32MX795F512L__) - #pragma message("Compiling for chipKIT MAX32 (PIC32MX795F512L)") - #include "hardware/pic32/HW_PIC32MX795F512L.h" - #else - #error "Unsupported PIC32 MCU!" - #endif -#elif defined(__arm__) - #include "hardware/arm/HW_ARM.h" - #if defined(__SAM3X8E__) - #pragma message("Compiling for Arduino Due (AT91SAM3X8E)...") - #include "hardware/arm/HW_SAM3X8E.h" - #elif defined(__MK20DX128__) || defined(__MK20DX256__) - #pragma message("Compiling for Teensy 3.x (MK20DX128VLH7 / MK20DX256VLH7)...") - #include "hardware/arm/HW_MX20DX256.h" - #elif defined(__CC3200R1M1RGC__) - #pragma message("Compiling for TI CC3200 LaunchPad...") - #include "hardware/arm/HW_CC3200.h" - #else - #error "Unsupported ARM MCU!" - #endif -#endif -#include "memorysaver.h" - -UTFT::UTFT() -{ -} - -UTFT::UTFT(byte model, int RS, int WR, int CS, int RST, int SER) -{ - word dsx[] = {239, 239, 239, 239, 239, 239, 175, 175, 239, 127, 127, 239, 271, 479, 239, 239, 239, 0, 0, 239, 479, 319, 239, 175, 127, 239, 239, 319, 319, 799, 127, 127}; - word dsy[] = {319, 399, 319, 319, 319, 319, 219, 219, 399, 159, 127, 319, 479, 799, 319, 319, 319, 0, 0, 319, 799, 479, 319, 219, 159, 319, 319, 479, 479, 479, 159, 159}; - byte dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 16, SERIAL_5PIN, SERIAL_5PIN, 16, 16, 16, 8, 16, LATCHED_16, 0, 0, 8, 16, 16, 16, 8, SERIAL_5PIN, SERIAL_5PIN, SERIAL_4PIN, 16, 16, 16, SERIAL_5PIN, SERIAL_5PIN}; - - disp_x_size = dsx[model]; - disp_y_size = dsy[model]; - display_transfer_mode = dtm[model]; - display_model = model; - - __p1 = RS; - __p2 = WR; - __p3 = CS; - __p4 = RST; - __p5 = SER; - - if (display_transfer_mode == SERIAL_4PIN) - { - display_transfer_mode=1; - display_serial_mode=SERIAL_4PIN; - } - if (display_transfer_mode == SERIAL_5PIN) - { - display_transfer_mode=1; - display_serial_mode=SERIAL_5PIN; - } - - if (display_transfer_mode!=1) - { - _set_direction_registers(display_transfer_mode); - P_RS = portOutputRegister(digitalPinToPort(RS)); - B_RS = digitalPinToBitMask(RS); - P_WR = portOutputRegister(digitalPinToPort(WR)); - B_WR = digitalPinToBitMask(WR); - P_CS = portOutputRegister(digitalPinToPort(CS)); - B_CS = digitalPinToBitMask(CS); - P_RST = portOutputRegister(digitalPinToPort(RST)); - B_RST = digitalPinToBitMask(RST); - if (display_transfer_mode==LATCHED_16) - { - P_ALE = portOutputRegister(digitalPinToPort(SER)); - B_ALE = digitalPinToBitMask(SER); - cbi(P_ALE, B_ALE); - pinMode(8,OUTPUT); - digitalWrite(8, LOW); - } - } - else - { - P_SDA = portOutputRegister(digitalPinToPort(RS)); - B_SDA = digitalPinToBitMask(RS); - P_SCL = portOutputRegister(digitalPinToPort(WR)); - B_SCL = digitalPinToBitMask(WR); - P_CS = portOutputRegister(digitalPinToPort(CS)); - B_CS = digitalPinToBitMask(CS); - if (RST != NOTINUSE) - { - P_RST = portOutputRegister(digitalPinToPort(RST)); - B_RST = digitalPinToBitMask(RST); - } - if (display_serial_mode!=SERIAL_4PIN) - { - P_RS = portOutputRegister(digitalPinToPort(SER)); - B_RS = digitalPinToBitMask(SER); - } - } -} - -void UTFT::LCD_Write_COM(char VL) -{ - if (display_transfer_mode!=1) - { - cbi(P_RS, B_RS); - LCD_Writ_Bus(0x00,VL,display_transfer_mode); - } - else - LCD_Writ_Bus(0x00,VL,display_transfer_mode); -} - -void UTFT::LCD_Write_DATA(char VH,char VL) -{ - if (display_transfer_mode!=1) - { - sbi(P_RS, B_RS); - LCD_Writ_Bus(VH,VL,display_transfer_mode); - } - else - { - LCD_Writ_Bus(0x01,VH,display_transfer_mode); - LCD_Writ_Bus(0x01,VL,display_transfer_mode); - } -} - -void UTFT::LCD_Write_DATA(char VL) -{ - if (display_transfer_mode!=1) - { - sbi(P_RS, B_RS); - LCD_Writ_Bus(0x00,VL,display_transfer_mode); - } - else - LCD_Writ_Bus(0x01,VL,display_transfer_mode); -} - -void UTFT::LCD_Write_COM_DATA(char com1,int dat1) -{ - LCD_Write_COM(com1); - LCD_Write_DATA(dat1>>8,dat1); -} - -void UTFT::clrXY() -{ - if (orient==PORTRAIT) - setXY(0,0,disp_x_size,disp_y_size); - else - setXY(0,0,disp_y_size,disp_x_size); -} - -void UTFT::drawRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - - drawHLine(x1, y1, x2-x1); - drawHLine(x1, y2, x2-x1); - drawVLine(x1, y1, y2-y1); - drawVLine(x2, y1, y2-y1); -} - -void UTFT::drawRoundRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - if ((x2-x1)>4 && (y2-y1)>4) - { - drawPixel(x1+1,y1+1); - drawPixel(x2-1,y1+1); - drawPixel(x1+1,y2-1); - drawPixel(x2-1,y2-1); - drawHLine(x1+2, y1, x2-x1-4); - drawHLine(x1+2, y2, x2-x1-4); - drawVLine(x1, y1+2, y2-y1-4); - drawVLine(x2, y1+2, y2-y1-4); - } -} - -void UTFT::fillRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - if (display_transfer_mode==16) - { - cbi(P_CS, B_CS); - setXY(x1, y1, x2, y2); - sbi(P_RS, B_RS); - _fast_fill_16(fch,fcl,((long(x2-x1)+1)*(long(y2-y1)+1))); - sbi(P_CS, B_CS); - } - else if ((display_transfer_mode==8) and (fch==fcl)) - { - cbi(P_CS, B_CS); - setXY(x1, y1, x2, y2); - sbi(P_RS, B_RS); - _fast_fill_8(fch,((long(x2-x1)+1)*(long(y2-y1)+1))); - sbi(P_CS, B_CS); - } - else - { - if (orient==PORTRAIT) - { - for (int i=0; i<((y2-y1)/2)+1; i++) - { - drawHLine(x1, y1+i, x2-x1); - drawHLine(x1, y2-i, x2-x1); - } - } - else - { - for (int i=0; i<((x2-x1)/2)+1; i++) - { - drawVLine(x1+i, y1, y2-y1); - drawVLine(x2-i, y1, y2-y1); - } - } - } -} - -void UTFT::fillRoundRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - - if ((x2-x1)>4 && (y2-y1)>4) - { - for (int i=0; i<((y2-y1)/2)+1; i++) - { - switch(i) - { - case 0: - drawHLine(x1+2, y1+i, x2-x1-4); - drawHLine(x1+2, y2-i, x2-x1-4); - break; - case 1: - drawHLine(x1+1, y1+i, x2-x1-2); - drawHLine(x1+1, y2-i, x2-x1-2); - break; - default: - drawHLine(x1, y1+i, x2-x1); - drawHLine(x1, y2-i, x2-x1); - } - } - } -} - -void UTFT::drawCircle(int x, int y, int radius) -{ - int f = 1 - radius; - int ddF_x = 1; - int ddF_y = -2 * radius; - int x1 = 0; - int y1 = radius; - - cbi(P_CS, B_CS); - setXY(x, y + radius, x, y + radius); - LCD_Write_DATA(fch,fcl); - setXY(x, y - radius, x, y - radius); - LCD_Write_DATA(fch,fcl); - setXY(x + radius, y, x + radius, y); - LCD_Write_DATA(fch,fcl); - setXY(x - radius, y, x - radius, y); - LCD_Write_DATA(fch,fcl); - - while(x1 < y1) - { - if(f >= 0) - { - y1--; - ddF_y += 2; - f += ddF_y; - } - x1++; - ddF_x += 2; - f += ddF_x; - setXY(x + x1, y + y1, x + x1, y + y1); - LCD_Write_DATA(fch,fcl); - setXY(x - x1, y + y1, x - x1, y + y1); - LCD_Write_DATA(fch,fcl); - setXY(x + x1, y - y1, x + x1, y - y1); - LCD_Write_DATA(fch,fcl); - setXY(x - x1, y - y1, x - x1, y - y1); - LCD_Write_DATA(fch,fcl); - setXY(x + y1, y + x1, x + y1, y + x1); - LCD_Write_DATA(fch,fcl); - setXY(x - y1, y + x1, x - y1, y + x1); - LCD_Write_DATA(fch,fcl); - setXY(x + y1, y - x1, x + y1, y - x1); - LCD_Write_DATA(fch,fcl); - setXY(x - y1, y - x1, x - y1, y - x1); - LCD_Write_DATA(fch,fcl); - } - sbi(P_CS, B_CS); - clrXY(); -} - -void UTFT::fillCircle(int x, int y, int radius) -{ - for(int y1=-radius; y1<=0; y1++) - for(int x1=-radius; x1<=0; x1++) - if(x1*x1+y1*y1 <= radius*radius) - { - drawHLine(x+x1, y+y1, 2*(-x1)); - drawHLine(x+x1, y-y1, 2*(-x1)); - break; - } -} - -void UTFT::clrScr() -{ - long i; - - cbi(P_CS, B_CS); - clrXY(); - if (display_transfer_mode!=1) - sbi(P_RS, B_RS); - if (display_transfer_mode==16) - _fast_fill_16(0,0,((disp_x_size+1)*(disp_y_size+1))); - else if (display_transfer_mode==8) - _fast_fill_8(0,((disp_x_size+1)*(disp_y_size+1))); - else - { - for (i=0; i<((disp_x_size+1)*(disp_y_size+1)); i++) - { - if (display_transfer_mode!=1) - LCD_Writ_Bus(0,0,display_transfer_mode); - else - { - LCD_Writ_Bus(1,0,display_transfer_mode); - LCD_Writ_Bus(1,0,display_transfer_mode); - } - } - } - sbi(P_CS, B_CS); -} - -void UTFT::fillScr(byte r, byte g, byte b) -{ - word color = ((r&248)<<8 | (g&252)<<3 | (b&248)>>3); - fillScr(color); -} - -void UTFT::fillScr(word color) -{ - long i; - char ch, cl; - - ch=byte(color>>8); - cl=byte(color & 0xFF); - - cbi(P_CS, B_CS); - clrXY(); - if (display_transfer_mode!=1) - sbi(P_RS, B_RS); - if (display_transfer_mode==16) - _fast_fill_16(ch,cl,((disp_x_size+1)*(disp_y_size+1))); - else if ((display_transfer_mode==8) and (ch==cl)) - _fast_fill_8(ch,((disp_x_size+1)*(disp_y_size+1))); - else - { - for (i=0; i<((disp_x_size+1)*(disp_y_size+1)); i++) - { - if (display_transfer_mode!=1) - LCD_Writ_Bus(ch,cl,display_transfer_mode); - else - { - LCD_Writ_Bus(1,ch,display_transfer_mode); - LCD_Writ_Bus(1,cl,display_transfer_mode); - } - } - } - sbi(P_CS, B_CS); -} - -void UTFT::setColor(byte r, byte g, byte b) -{ - fch=((r&248)|g>>5); - fcl=((g&28)<<3|b>>3); -} - -void UTFT::setColor(word color) -{ - fch=byte(color>>8); - fcl=byte(color & 0xFF); -} - -word UTFT::getColor() -{ - return (fch<<8) | fcl; -} - -void UTFT::setBackColor(byte r, byte g, byte b) -{ - bch=((r&248)|g>>5); - bcl=((g&28)<<3|b>>3); - _transparent=false; -} - -void UTFT::setBackColor(uint32_t color) -{ - if (color==VGA_TRANSPARENT) - _transparent=true; - else - { - bch=byte(color>>8); - bcl=byte(color & 0xFF); - _transparent=false; - } -} - -word UTFT::getBackColor() -{ - return (bch<<8) | bcl; -} - -void UTFT::setPixel(word color) -{ - LCD_Write_DATA((color>>8),(color&0xFF)); // rrrrrggggggbbbbb -} - -void UTFT::setPixel(byte h, byte l) -{ - LCD_Write_DATA(h, l); // rrrrrggggggbbbbb -} - -void UTFT::drawPixel(int x, int y) -{ - cbi(P_CS, B_CS); - setXY(x, y, x, y); - setPixel((fch<<8)|fcl); - sbi(P_CS, B_CS); - clrXY(); -} - -void UTFT::drawLine(int x1, int y1, int x2, int y2) -{ - if (y1==y2) - drawHLine(x1, y1, x2-x1); - else if (x1==x2) - drawVLine(x1, y1, y2-y1); - else - { - unsigned int dx = (x2 > x1 ? x2 - x1 : x1 - x2); - short xstep = x2 > x1 ? 1 : -1; - unsigned int dy = (y2 > y1 ? y2 - y1 : y1 - y2); - short ystep = y2 > y1 ? 1 : -1; - int col = x1, row = y1; - - cbi(P_CS, B_CS); - if (dx < dy) - { - int t = - (dy >> 1); - while (true) - { - setXY (col, row, col, row); - LCD_Write_DATA (fch, fcl); - if (row == y2) - return; - row += ystep; - t += dx; - if (t >= 0) - { - col += xstep; - t -= dy; - } - } - } - else - { - int t = - (dx >> 1); - while (true) - { - setXY (col, row, col, row); - LCD_Write_DATA (fch, fcl); - if (col == x2) - return; - col += xstep; - t += dy; - if (t >= 0) - { - row += ystep; - t -= dx; - } - } - } - sbi(P_CS, B_CS); - } - clrXY(); -} - -void UTFT::drawHLine(int x, int y, int l) -{ - if (l<0) - { - l = -l; - x -= l; - } - cbi(P_CS, B_CS); - setXY(x, y, x+l, y); - if (display_transfer_mode == 16) - { - sbi(P_RS, B_RS); - _fast_fill_16(fch,fcl,l); - } - else if ((display_transfer_mode==8) and (fch==fcl)) - { - sbi(P_RS, B_RS); - _fast_fill_8(fch,l); - } - else - { - for (int i=0; i=0; zz--) - { - ch=pgm_read_byte(&cfont.font[temp+zz]); - for(i=0;i<8;i++) - { - if((ch&(1<0) - { - buf[c]=48+(num % 10); - c++; - num=(num-(num % 10))/10; - } - buf[c]=0; - - if (neg) - { - st[0]=45; - } - - if (length>(c+neg)) - { - for (int i=0; i<(length-c-neg); i++) - { - st[i+neg]=filler; - f++; - } - } - - for (int i=0; i5) - dec=5; - - if (num<0) - neg = true; - - _convert_float(st, num, length, dec); - - if (divider != '.') - { - for (int i=0; i>8,col & 0xff); - } - sbi(P_CS, B_CS); - } - else - { - cbi(P_CS, B_CS); - for (ty=0; ty=0; tx--) - { - col=pgm_read_word(&data[(ty*sx)+tx]); - LCD_Write_DATA(col>>8,col & 0xff); - } - } - sbi(P_CS, B_CS); - } - } - else - { - if (orient==PORTRAIT) - { - cbi(P_CS, B_CS); - for (ty=0; ty>8,col & 0xff); - } - } - sbi(P_CS, B_CS); - } - else - { - cbi(P_CS, B_CS); - for (ty=0; ty=0; tx--) - { - col=pgm_read_word(&data[(ty*sx)+tx]); - for (tsx=0; tsx>8,col & 0xff); - } - } - } - sbi(P_CS, B_CS); - } - } - clrXY(); -} - -void UTFT::drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy) -{ - unsigned int col; - int tx, ty, newx, newy; - double radian; - radian=deg*0.0175; - - if (deg==0) - drawBitmap(x, y, sx, sy, data); - else - { - cbi(P_CS, B_CS); - for (ty=0; ty>8,col & 0xff); - } - sbi(P_CS, B_CS); - } - clrXY(); -} - -void UTFT::lcdOff() -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case PCF8833: - LCD_Write_COM(0x28); - break; - case CPLD: - LCD_Write_COM_DATA(0x01,0x0000); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::lcdOn() -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case PCF8833: - LCD_Write_COM(0x29); - break; - case CPLD: - LCD_Write_COM_DATA(0x01,0x0010); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::setContrast(char c) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case PCF8833: - if (c>64) c=64; - LCD_Write_COM(0x25); - LCD_Write_DATA(c); - break; - } - sbi(P_CS, B_CS); -} - -int UTFT::getDisplayXSize() -{ - if (orient==PORTRAIT) - return disp_x_size+1; - else - return disp_y_size+1; -} - -int UTFT::getDisplayYSize() -{ - if (orient==PORTRAIT) - return disp_y_size+1; - else - return disp_x_size+1; -} - -void UTFT::setBrightness(byte br) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case CPLD: - if (br>16) br=16; - LCD_Write_COM_DATA(0x01,br); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::setDisplayPage(byte page) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case CPLD: - if (page>7) page=7; - LCD_Write_COM_DATA(0x04,page); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::setWritePage(byte page) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case CPLD: - if (page>7) page=7; - LCD_Write_COM_DATA(0x05,page); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.h deleted file mode 100644 index 2db39a2..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/UTFT.h +++ /dev/null @@ -1,276 +0,0 @@ -/* - UTFT.h - Multi-Platform library support for Color TFT LCD Boards - Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved - - This library is the continuation of my ITDB02_Graph, ITDB02_Graph16 - and RGB_GLCD libraries for Arduino and chipKit. As the number of - supported display modules and controllers started to increase I felt - it was time to make a single, universal library as it will be much - easier to maintain in the future. - - Basic functionality of this library was origianlly based on the - demo-code provided by ITead studio (for the ITDB02 modules) and - NKC Electronics (for the RGB GLCD module/shield). - - This library supports a number of 8bit, 16bit and serial graphic - displays, and will work with both Arduino, chipKit boards and select - TI LaunchPads. For a full list of tested display modules and controllers, - see the document UTFT_Supported_display_modules_&_controllers.pdf. - - When using 8bit and 16bit display modules there are some - requirements you must adhere to. These requirements can be found - in the document UTFT_Requirements.pdf. - There are no special requirements when using serial displays. - - You can find the latest version of the library at - http://www.RinkyDinkElectronics.com/ - - This library is free software; you can redistribute it and/or - modify it under the terms of the CC BY-NC-SA 3.0 license. - Please see the included documents for further information. - - Commercial use of this library requires you to buy a license that - will allow commercial use. This includes using the library, - modified or not, as a tool to sell products. - - The license applies to all part of the library including the - examples and tools supplied with the library. -*/ - -#ifndef UTFT_h -#define UTFT_h - -#define UTFT_VERSION 281 - -#define LEFT 0 -#define RIGHT 9999 -#define CENTER 9998 - -#define PORTRAIT 0 -#define LANDSCAPE 1 - -#define HX8347A 0 -#define ILI9327 1 -#define SSD1289 2 -#define ILI9325C 3 -#define ILI9325D_8 4 -#define ILI9325D_16 5 -#define HX8340B_8 6 -#define HX8340B_S 7 -#define HX8352A 8 -#define ST7735 9 -#define PCF8833 10 -#define S1D19122 11 -#define SSD1963_480 12 -#define SSD1963_800 13 -#define S6D1121_8 14 -#define S6D1121_16 15 -#define SSD1289LATCHED 16 -//#define NOT_IN_USE 17 -//#define NOT_IN_USE 18 -#define SSD1289_8 19 -#define SSD1963_800ALT 20 -#define ILI9481 21 -#define ILI9325D_16ALT 22 -#define S6D0164 23 -#define ST7735S 24 -#define ILI9341_S5P 25 -#define ILI9341_S4P 26 -#define R61581 27 -#define ILI9486 28 -#define CPLD 29 -#define HX8353C 30 -#define ST7735_ALT 31 - -#define ITDB32 0 // HX8347-A (16bit) -#define ITDB32WC 1 // ILI9327 (16bit) -#define TFT01_32W 1 // ILI9327 (16bit) -#define ITDB32S 2 // SSD1289 (16bit) -#define TFT01_32 2 // SSD1289 (16bit) -#define CTE32 2 // SSD1289 (16bit) -#define ITDB24 3 // ILI9325C (8bit) -#define ITDB24D 4 // ILI9325D (8bit) -#define ITDB24DWOT 4 // ILI9325D (8bit) -#define ITDB28 4 // ILI9325D (8bit) -#define TFT01_24_8 4 // ILI9325D (8bit) -#define DMTFT24104 4 // ILI9325D (8bit) -#define DMTFT28103 4 // ILI9325D (8bit) -#define TFT01_24_16 5 // ILI9325D (16bit) -#define ITDB22 6 // HX8340-B (8bit) -#define ITDB22SP 7 // HX8340-B (Serial 4Pin) -#define ITDB32WD 8 // HX8352-A (16bit) -#define TFT01_32WD 8 // HX8352-A (16bit) -#define CTE32W 8 // HX8352-A (16bit) -#define ITDB18SP 9 // ST7735 (Serial 5Pin) -#define LPH9135 10 // PCF8833 (Serial 5Pin) -#define ITDB25H 11 // S1D19122 (16bit) -#define ITDB43 12 // SSD1963 (16bit) 480x272 -#define TFT01_43 12 // SSD1963 (16bit) 480x272 -#define ITDB50 13 // SSD1963 (16bit) 800x480 -#define TFT01_50 13 // SSD1963 (16bit) 800x480 -#define CTE50 13 // SSD1963 (16bit) 800x480 -#define EHOUSE50 13 // SSD1963 (16bit) 800x480 -#define ITDB24E_8 14 // S6D1121 (8bit) -#define TFT01_24R2 14 // S6D1121 (8bit) -#define ITDB24E_16 15 // S6D1121 (16bit) -#define INFINIT32 16 // SSD1289 (Latched 16bit) -- Legacy, will be removed later -#define ELEE32_REVA 16 // SSD1289 (Latched 16bit) -//#define NOT_IN_USE 17 -//#define NOT_IN_USE 18 -#define ELEE32_REVB 19 // SSD1289 (8bit) -#define TFT01_70 20 // SSD1963 (16bit) 800x480 Alternative Init -#define CTE70 20 // SSD1963 (16bit) 800x480 Alternative Init -#define EHOUSE70 20 // SSD1963 (16bit) 800x480 Alternative Init -#define CTE32HR 21 // ILI9481 (16bit) -#define CTE28 22 // ILI9325D (16bit) Alternative Init -#define TFT01_28 22 // ILI9325D (16bit) Alternative Init -#define CTE22 23 // S6D0164 (8bit) -#define TFT01_22 23 // S6D0164 (8bit) -#define DMTFT22102 23 // S6D0164 (8bit) -#define TFT01_18SP 24 // ST7735S (Serial 5Pin) -#define TFT01_22SP 25 // ILI9341 (Serial 5Pin) -#define TFT01_24SP 25 // ILI9341 (Serial 5Pin) -#define TFT22SHLD 25 // ILI9341 (Serial 5Pin) -#define DMTFT28105 25 // ILI9341 (Serial 5Pin) -#define MI0283QT9 26 // ILI9341 (Serial 4Pin) -#define CTE35IPS 27 // R61581 (16bit) -#define CTE40 28 // ILI9486 (16bit) -#define EHOUSE50CPLD 29 // CPLD (16bit) -#define CTE50CPLD 29 // CPLD (16bit) -#define CTE70CPLD 29 // CPLD (16bit) -#define DMTFT18101 30 // HX8353C (Serial 5Pin) -#define TFT18SHLD 31 // ST7735 (Serial 5Pin) Alternative Init - -#define SERIAL_4PIN 4 -#define SERIAL_5PIN 5 -#define LATCHED_16 17 - -#define NOTINUSE 255 - -//********************************* -// COLORS -//********************************* -// VGA color palette -#define VGA_BLACK 0x0000 -#define VGA_WHITE 0xFFFF -#define VGA_RED 0xF800 -#define VGA_GREEN 0x0400 -#define VGA_BLUE 0x001F -#define VGA_SILVER 0xC618 -#define VGA_GRAY 0x8410 -#define VGA_MAROON 0x8000 -#define VGA_YELLOW 0xFFE0 -#define VGA_OLIVE 0x8400 -#define VGA_LIME 0x07E0 -#define VGA_AQUA 0x07FF -#define VGA_TEAL 0x0410 -#define VGA_NAVY 0x0010 -#define VGA_FUCHSIA 0xF81F -#define VGA_PURPLE 0x8010 -#define VGA_TRANSPARENT 0xFFFFFFFF - -#if defined(__AVR__) - #include "Arduino.h" - #include "hardware/avr/HW_AVR_defines.h" -#elif defined(__PIC32MX__) - #include "WProgram.h" - #include "hardware/pic32/HW_PIC32_defines.h" -#elif defined(__arm__) - #include "Arduino.h" // This will include energia.h where appropriate - #include "hardware/arm/HW_ARM_defines.h" -#endif - -struct _current_font -{ - uint8_t* font; - uint8_t x_size; - uint8_t y_size; - uint8_t offset; - uint8_t numchars; -}; - -class UTFT -{ - public: - UTFT(); - UTFT(byte model, int RS, int WR, int CS, int RST, int SER=0); - void InitLCD(byte orientation=LANDSCAPE); - void clrScr(); - void drawPixel(int x, int y); - void drawLine(int x1, int y1, int x2, int y2); - void fillScr(byte r, byte g, byte b); - void fillScr(word color); - void drawRect(int x1, int y1, int x2, int y2); - void drawRoundRect(int x1, int y1, int x2, int y2); - void fillRect(int x1, int y1, int x2, int y2); - void fillRoundRect(int x1, int y1, int x2, int y2); - void drawCircle(int x, int y, int radius); - void fillCircle(int x, int y, int radius); - void setColor(byte r, byte g, byte b); - void setColor(word color); - word getColor(); - void setBackColor(byte r, byte g, byte b); - void setBackColor(uint32_t color); - word getBackColor(); - void print2(char *st, int x, int y, int deg=0); - void print2(String st, int x, int y, int deg=0); - void printNumI(long num, int x, int y, int length=0, char filler=' '); - void printNumF(double num, byte dec, int x, int y, char divider='.', int length=0, char filler=' '); - void setFont(uint8_t* font); - uint8_t* getFont(); - uint8_t getFontXsize(); - uint8_t getFontYsize(); - void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1); - void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy); - void lcdOff(); - void lcdOn(); - void setContrast(char c); - int getDisplayXSize(); - int getDisplayYSize(); - void setBrightness(byte br); - void setDisplayPage(byte page); - void setWritePage(byte page); - -/* - The functions and variables below should not normally be used. - They have been left publicly available for use in add-on libraries - that might need access to the lower level functions of UTFT. - - Please note that these functions and variables are not documented - and I do not provide support on how to use them. -*/ - byte fch, fcl, bch, bcl; - byte orient; - long disp_x_size, disp_y_size; - byte display_model, display_transfer_mode, display_serial_mode; - regtype *P_RS, *P_WR, *P_CS, *P_RST, *P_SDA, *P_SCL, *P_ALE; - regsize B_RS, B_WR, B_CS, B_RST, B_SDA, B_SCL, B_ALE; - byte __p1, __p2, __p3, __p4, __p5; - _current_font cfont; - boolean _transparent; - - void LCD_Writ_Bus(char VH,char VL, byte mode); - void LCD_Write_COM(char VL); - void LCD_Write_DATA(char VH,char VL); - void LCD_Write_DATA(char VL); - void LCD_Write_COM_DATA(char com1,int dat1); - void _hw_special_init(); - void setPixel(word color); - void setPixel(byte h, byte l); - void drawHLine(int x, int y, int l); - void drawVLine(int x, int y, int l); - void printChar(byte c, int x, int y); - virtual void setXY(word x1, word y1, word x2, word y2) {} - void clrXY(); - void rotateChar(byte c, int x, int y, int pos, int deg); - void _set_direction_registers(byte mode); - void _fast_fill_16(int ch, int cl, long pix); - void _fast_fill_8(int ch, long pix); - void _convert_float(char *buf, double num, int width, byte prec); - -#if defined(ENERGIA) - volatile uint32_t* portOutputRegister(int value); -#endif -}; - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/fonts.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/fonts.h deleted file mode 100644 index ab83ba3..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/fonts.h +++ /dev/null @@ -1,331 +0,0 @@ -// The 7-bit ASCII character set... -const unsigned char font5x8[][5] PROGMEM = { - { 0x00, 0x00, 0x5f, 0x00, 0x00 }, // 21 ! - { 0x00, 0x07, 0x00, 0x07, 0x00 }, // 22 " - { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // 23 # - { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // 24 $ - { 0x23, 0x13, 0x08, 0x64, 0x62 }, // 25 % - { 0x36, 0x49, 0x55, 0x22, 0x50 }, // 26 & - { 0x00, 0x05, 0x03, 0x00, 0x00 }, // 27 ' - { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // 28 ( - { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // 29 ) - { 0x14, 0x08, 0x3e, 0x08, 0x14 }, // 2a * - { 0x08, 0x08, 0x3e, 0x08, 0x08 }, // 2b + - { 0x00, 0x50, 0x30, 0x00, 0x00 }, // 2c , - { 0x08, 0x08, 0x08, 0x08, 0x08 }, // 2d - - { 0x00, 0x60, 0x60, 0x00, 0x00 }, // 2e . - { 0x20, 0x10, 0x08, 0x04, 0x02 }, // 2f / - { 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 30 0 - { 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 31 1 - { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 32 2 - { 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 33 3 - { 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 34 4 - { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 35 5 - { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 36 6 - { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 37 7 - { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 38 8 - { 0x06, 0x49, 0x49, 0x29, 0x1e }, // 39 9 - { 0x00, 0x36, 0x36, 0x00, 0x00 }, // 3a : - { 0x00, 0x56, 0x36, 0x00, 0x00 }, // 3b ; - { 0x08, 0x14, 0x22, 0x41, 0x00 }, // 3c < - { 0x14, 0x14, 0x14, 0x14, 0x14 }, // 3d = - { 0x00, 0x41, 0x22, 0x14, 0x08 }, // 3e > - { 0x02, 0x01, 0x51, 0x09, 0x06 }, // 3f ? - { 0x32, 0x49, 0x79, 0x41, 0x3e }, // 40 @ - { 0x7e, 0x11, 0x11, 0x11, 0x7e }, // 41 A - { 0x7f, 0x49, 0x49, 0x49, 0x36 }, // 42 B - { 0x3e, 0x41, 0x41, 0x41, 0x22 }, // 43 C - { 0x7f, 0x41, 0x41, 0x22, 0x1c }, // 44 D - { 0x7f, 0x49, 0x49, 0x49, 0x41 }, // 45 E - { 0x7f, 0x09, 0x09, 0x09, 0x01 }, // 46 F - { 0x3e, 0x41, 0x49, 0x49, 0x7a }, // 47 G - { 0x7f, 0x08, 0x08, 0x08, 0x7f }, // 48 H - { 0x00, 0x41, 0x7f, 0x41, 0x00 }, // 49 I - { 0x20, 0x40, 0x41, 0x3f, 0x01 }, // 4a J - { 0x7f, 0x08, 0x14, 0x22, 0x41 }, // 4b K - { 0x7f, 0x40, 0x40, 0x40, 0x40 }, // 4c L - { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // 4d M - { 0x7f, 0x04, 0x08, 0x10, 0x7f }, // 4e N - { 0x3e, 0x41, 0x41, 0x41, 0x3e }, // 4f O - { 0x7f, 0x09, 0x09, 0x09, 0x06 }, // 50 P - { 0x3e, 0x41, 0x51, 0x21, 0x5e }, // 51 Q - { 0x7f, 0x09, 0x19, 0x29, 0x46 }, // 52 R - { 0x46, 0x49, 0x49, 0x49, 0x31 }, // 53 S - { 0x01, 0x01, 0x7f, 0x01, 0x01 }, // 54 T - { 0x3f, 0x40, 0x40, 0x40, 0x3f }, // 55 U - { 0x1f, 0x20, 0x40, 0x20, 0x1f }, // 56 V - { 0x3f, 0x40, 0x38, 0x40, 0x3f }, // 57 W - { 0x63, 0x14, 0x08, 0x14, 0x63 }, // 58 X - { 0x07, 0x08, 0x70, 0x08, 0x07 }, // 59 Y - { 0x61, 0x51, 0x49, 0x45, 0x43 }, // 5a Z - { 0x00, 0x7f, 0x41, 0x41, 0x00 }, // 5b [ - { 0x02, 0x04, 0x08, 0x10, 0x20 }, // 5c backslash - { 0x00, 0x41, 0x41, 0x7f, 0x00 }, // 5d ] - { 0x04, 0x02, 0x01, 0x02, 0x04 }, // 5e ^ - { 0x40, 0x40, 0x40, 0x40, 0x40 }, // 5f _ - { 0x00, 0x01, 0x02, 0x04, 0x00 }, // 60 ` - { 0x20, 0x54, 0x54, 0x54, 0x78 }, // 61 a - { 0x7f, 0x48, 0x44, 0x44, 0x38 }, // 62 b - { 0x38, 0x44, 0x44, 0x44, 0x20 }, // 63 c - { 0x38, 0x44, 0x44, 0x48, 0x7f }, // 64 d - { 0x38, 0x54, 0x54, 0x54, 0x18 }, // 65 e - { 0x08, 0x7e, 0x09, 0x01, 0x02 }, // 66 f - { 0x0c, 0x52, 0x52, 0x52, 0x3e }, // 67 g - { 0x7f, 0x08, 0x04, 0x04, 0x78 }, // 68 h - { 0x00, 0x44, 0x7d, 0x40, 0x00 }, // 69 i - { 0x20, 0x40, 0x44, 0x3d, 0x00 }, // 6a j - { 0x7f, 0x10, 0x28, 0x44, 0x00 }, // 6b k - { 0x00, 0x41, 0x7f, 0x40, 0x00 }, // 6c l - { 0x7c, 0x04, 0x18, 0x04, 0x78 }, // 6d m - { 0x7c, 0x08, 0x04, 0x04, 0x78 }, // 6e n - { 0x38, 0x44, 0x44, 0x44, 0x38 }, // 6f o - { 0x7c, 0x14, 0x14, 0x14, 0x08 }, // 70 p - { 0x08, 0x14, 0x14, 0x18, 0x7c }, // 71 q - { 0x7c, 0x08, 0x04, 0x04, 0x08 }, // 72 r - { 0x48, 0x54, 0x54, 0x54, 0x20 }, // 73 s - { 0x04, 0x3f, 0x44, 0x40, 0x20 }, // 74 t - { 0x3c, 0x40, 0x40, 0x20, 0x7c }, // 75 u - { 0x1c, 0x20, 0x40, 0x20, 0x1c }, // 76 v - { 0x3c, 0x40, 0x30, 0x40, 0x3c }, // 77 w - { 0x44, 0x28, 0x10, 0x28, 0x44 }, // 78 x - { 0x0c, 0x50, 0x50, 0x50, 0x3c }, // 79 y - { 0x44, 0x64, 0x54, 0x4c, 0x44 }, // 7a z - { 0x00, 0x08, 0x36, 0x41, 0x00 }, // 7b { - { 0x00, 0x00, 0x7f, 0x00, 0x00 }, // 7c | - { 0x00, 0x41, 0x36, 0x08, 0x00 }, // 7d } - { 0x10, 0x08, 0x08, 0x10, 0x08 }, // 7e ~ -}; - -const unsigned char digits16x24[][48] PROGMEM = { -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"0",0*/ -{0x00,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,0x00,0xFC,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/ -{0x00,0x00,0x00,0xF8,0x00,0xE0,0xFC,0x00,0xF8,0xFE,0x00,0xFE,0xFE,0x80,0xFF,0xFF,0xC0,0xFF,0x07,0xF0,0xFF,0x07,0xFC,0xFF,0x07,0xFF,0xEF,0xFF,0xFF,0xE3,0xFF,0xFF,0xE1,0xFE,0x7F,0xE0,0xFE,0x3F,0xE0,0xFC,0x0F,0xE0,0xF0,0x03,0x00,0x00,0x00,0x00},/*"2",2*/ -{0x00,0x00,0x00,0xF8,0x80,0x1F,0xFE,0x80,0x3F,0xFE,0x80,0x7F,0xFF,0x80,0x7F,0xFF,0x80,0xFF,0xFF,0x9C,0xFF,0xFF,0x9C,0xFF,0x07,0x1C,0xE0,0x07,0x3E,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"3",3*/ -{0x00,0xF0,0x0F,0x00,0xFE,0x0F,0x80,0xFF,0x0F,0xE0,0xFF,0x0F,0xFC,0xBF,0x0F,0xFF,0x87,0x0F,0xFF,0x81,0x0F,0x3F,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x0F,0x00,0x80,0x0F},/*"4",4*/ -{0x00,0x00,0x00,0xFF,0xC7,0x0F,0xFF,0xC7,0x3F,0xFF,0xC7,0x7F,0xFF,0xC7,0x7F,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x87,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0xFF,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x7F,0x87,0xFF,0x7F,0x87,0xFF,0x3F,0x07,0xFE,0x1F},/*"5",5*/ -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x06,0xE0,0x07,0x07,0xE0,0x07,0x07,0xE0,0x3F,0xFF,0xFF,0x3F,0xFF,0xFF,0x3E,0xFF,0x7F,0x3E,0xFE,0x7F,0x3C,0xFE,0x3F,0x38,0xF8,0x1F},/*"6",6*/ -{0x00,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0xC0,0x07,0x00,0xF8,0x07,0x00,0xFF,0x07,0xE0,0xFF,0x07,0xFE,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x07,0xFF,0xFF,0x00,0xFF,0x0F,0x00,0xFF,0x01,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"7",1*/ -{0x00,0x00,0x00,0xF0,0xE3,0x1F,0xFC,0xF7,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"8",8*/ -{0x00,0x00,0x00,0xF8,0x1F,0x1C,0xFC,0x7F,0x3C,0xFE,0x7F,0x7C,0xFE,0xFF,0x7C,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0x07,0xE0,0xE0,0x07,0xE0,0xE0,0x07,0x60,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"9",9*/ -}; - -const unsigned char digits16x16[][32] PROGMEM = { -{0x00,0xE0,0xF8,0xFC,0xFE,0x1E,0x07,0x07,0x07,0x07,0x1E,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x3F,0x3F,0x7C,0x70,0x70,0x70,0x70,0x7C,0x3F,0x1F,0x1F,0x07,0x00},/*0*/ -{0x00,0x00,0x00,0x06,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},/*1*/ -{0x00,0x38,0x3C,0x3E,0x3E,0x0F,0x07,0x07,0x07,0xCF,0xFF,0xFE,0xFE,0x38,0x00,0x00,0x00,0x40,0x40,0x60,0x70,0x78,0x7C,0x7E,0x7F,0x77,0x73,0x71,0x70,0x70,0x00,0x00},/*2*/ -{0x00,0x18,0x1C,0x1E,0x1E,0x0F,0xC7,0xC7,0xE7,0xFF,0xFE,0xBE,0x9C,0x00,0x00,0x00,0x00,0x0C,0x1C,0x3C,0x3C,0x78,0x70,0x70,0x70,0x79,0x7F,0x3F,0x1F,0x0F,0x00,0x00},/*3*/ -{0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x7F,0x7F,0x7F,0x7F,0x06,0x06,0x00},/*4*/ -{0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xE7,0xE7,0xE7,0xE7,0xC7,0x87,0x00,0x00,0x00,0x00,0x38,0x78,0x71,0x70,0x70,0x70,0x70,0x70,0x39,0x3F,0x3F,0x1F,0x0F,0x00},/*5*/ -{0x00,0x80,0xE0,0xF0,0xF8,0xFC,0x7F,0x7F,0x6F,0x67,0xE1,0xE1,0xC0,0x80,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x3F,0x78,0x70,0x70,0x70,0x70,0x78,0x3F,0x3F,0x1F,0x0F,0x00},/*6*/ -{0x00,0x07,0x07,0x07,0x07,0x07,0xC7,0xE7,0xF7,0xFF,0x7F,0x3F,0x1F,0x07,0x03,0x01,0x00,0x20,0x38,0x7C,0x7E,0x3F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*7*/ -{0x00,0x00,0x00,0x1C,0xBE,0xFE,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFE,0xBE,0x1C,0x00,0x00,0x00,0x0E,0x3F,0x3F,0x7F,0x71,0x60,0x60,0x60,0x71,0x7F,0x3F,0x3F,0x0F,0x00},/*8*/ -{0x00,0x78,0xFC,0xFE,0xFE,0x8F,0x07,0x07,0x07,0x07,0x8F,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0x00,0x00,0x01,0x43,0x43,0x73,0x7B,0x7F,0x7F,0x1F,0x0F,0x07,0x03,0x00,0x00},/*9*/ -}; - -const unsigned char digits8x8[][8] PROGMEM = { -{0x3C,0x7E,0x83,0x81,0x81,0x7E,0x3C,0x00},/*0*/ -{0x84,0x84,0x82,0xFF,0xFF,0x80,0x80,0x00},/*1*/ -{0x84,0xC6,0xE1,0xA1,0xB1,0x9F,0x8E,0x00},/*2*/ -{0x42,0xC3,0x81,0x89,0x89,0xFF,0x76,0x00},/*3*/ -{0x20,0x38,0x24,0x22,0xFF,0xFF,0x20,0x00},/*4*/ -{0x5F,0xDF,0x99,0x89,0x89,0xF9,0x70,0x00},/*5*/ -{0x3C,0x7E,0x89,0x89,0x89,0xFB,0x72,0x00},/*6*/ -{0x01,0x01,0xE1,0xF9,0x1D,0x07,0x01,0x00},/*7*/ -{0x6E,0xFF,0x89,0x89,0x99,0xFF,0x76,0x00},/*8*/ -{0x4E,0xDF,0x91,0x91,0x91,0x7F,0x3E,0x00},/*9*/ -}; - -#ifndef MEMORY_SAVING -const PROGMEM unsigned char font8x16_doslike[][16] = { -{0x00,0x00,0x00,0x00,0x78,0x00,0xFC,0x09,0xFC,0x09,0x78,0x00,0x00,0x00,0x00,0x00},/*"!*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00},/*""*/ -{0x20,0x02,0xF8,0x1F,0xF8,0x1F,0x20,0x02,0x20,0x02,0xF8,0x1F,0xF8,0x1F,0x20,0x02},/*"#*/ -{0x00,0x00,0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0x47,0x38,0xCC,0x0F,0x98,0x07},/*"$*/ -{0x10,0x08,0x38,0x0C,0x28,0x06,0x38,0x03,0x90,0x05,0xC0,0x0E,0x60,0x0A,0x30,0x0E},/*"%*/ -{0x80,0x07,0xD8,0x0F,0x7C,0x08,0x64,0x08,0xE4,0x08,0xBC,0x07,0x18,0x0F,0x80,0x09},/*"&*/ -{0x00,0x00,0x10,0x00,0x1C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'*/ -{0x00,0x00,0x00,0x00,0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x00,0x00,0x00,0x00},/*"(*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03,0x00,0x00},/*")*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"**/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+0*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*",*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*".*/ -{0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00},/*"/*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0xC4,0x08,0xC4,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03},/*"0*/ -{0x00,0x00,0x10,0x08,0x18,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x00},/*"1*/ -{0x08,0x0E,0x0C,0x0F,0x84,0x09,0xC4,0x08,0x64,0x08,0x3C,0x0C,0x18,0x0C,0x00,0x00},/*"2*/ -{0x08,0x04,0x0C,0x0C,0x04,0x08,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"3*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x09,0xFC,0x0F,0xFC,0x0F,0x00,0x09,0x00,0x00},/*"4*/ -{0x7C,0x04,0x7C,0x0C,0x44,0x08,0x44,0x08,0x44,0x08,0xC4,0x0F,0x84,0x07,0x00,0x00},/*"5*/ -{0xF0,0x07,0xF8,0x0F,0x4C,0x08,0x44,0x08,0x44,0x08,0xC4,0x0F,0x80,0x07,0x00,0x00},/*"6*/ -{0x0C,0x00,0x0C,0x00,0x84,0x0F,0xC4,0x0F,0x64,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00},/*"7*/ -{0xB8,0x07,0xFC,0x0F,0x44,0x08,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"8*/ -{0x38,0x00,0x7C,0x08,0x44,0x08,0x44,0x08,0x44,0x0C,0xFC,0x07,0xF8,0x03,0x00,0x00},/*"9*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x06,0x30,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*":*/ -{0x00,0x00,0x00,0x00,0x00,0x10,0x60,0x1C,0x60,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x00,0x00,0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x08,0x08,0x00,0x00},/*"<",28*/ -{0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x00,0x00},/*"=",29*/ -{0x00,0x00,0x00,0x00,0x08,0x08,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00},/*">",30*/ -{0x08,0x00,0x0C,0x00,0x04,0x00,0x84,0x0D,0xC4,0x0D,0x7C,0x00,0x38,0x00,0x00,0x00},/*"?",31*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x84,0x09,0xC4,0x09,0xFC,0x09,0xF8,0x00,0x00,0x00},/*"@",32*/ -{0xE0,0x0F,0xF0,0x0F,0x98,0x00,0x8C,0x00,0x98,0x00,0xF0,0x0F,0xE0,0x0F,0x00,0x00},/*"A",33*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"B",34*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x04,0x08,0x0C,0x0C,0x18,0x06,0x00,0x00},/*"C",35*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03,0x00,0x00},/*"D",36*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0xE4,0x08,0x0C,0x0C,0x0C,0x0C,0x00,0x00},/*"E",37*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0xE4,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00},/*"F",38*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x84,0x08,0x8C,0x07,0x98,0x0F,0x00,0x00},/*"G",39*/ -{0xFC,0x0F,0xFC,0x0F,0x40,0x00,0x40,0x00,0x40,0x00,0xFC,0x0F,0xFC,0x0F,0x00,0x00},/*"H",40*/ -{0x00,0x00,0x04,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00},/*"I",41*/ -{0x00,0x06,0x00,0x0E,0x00,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x07,0x04,0x00,0x00,0x00},/*"J",42*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0xE0,0x00,0xB0,0x01,0x1C,0x0F,0x0C,0x0E,0x00,0x00},/*"K",43*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x00,0x08,0x00,0x0C,0x00,0x0C,0x00,0x00},/*"L",44*/ -{0xFC,0x0F,0xFC,0x0F,0x30,0x00,0xE0,0x00,0xE0,0x00,0x30,0x00,0xFC,0x0F,0xFC,0x0F},/*"M",45*/ -{0xFC,0x0F,0xFC,0x0F,0x30,0x00,0x60,0x00,0xC0,0x00,0xFC,0x0F,0xFC,0x0F,0x00,0x00},/*"N",46*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0xF8,0x07,0x00,0x00},/*"O",47*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x84,0x08,0x84,0x00,0xFC,0x00,0x78,0x00,0x00,0x00},/*"P",48*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x04,0x0C,0x04,0x18,0xFC,0x3F,0xF8,0x27,0x00,0x00},/*"Q",49*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x00,0xC4,0x00,0xFC,0x0F,0x38,0x0F,0x00,0x00},/*"R",50*/ -{0x18,0x04,0x3C,0x0C,0x64,0x08,0x44,0x08,0xC4,0x08,0x8C,0x0F,0x08,0x07,0x00,0x00},/*"S",51*/ -{0x0C,0x00,0x0C,0x00,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x0C,0x00,0x0C,0x00},/*"T",52*/ -{0xFC,0x07,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0xFC,0x0F,0xFC,0x07,0x00,0x00},/*"U",53*/ -{0xFC,0x01,0xFC,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x06,0xFC,0x03,0xFC,0x01},/*"V",54*/ -{0xFC,0x03,0xFC,0x0F,0x00,0x0E,0x80,0x03,0x80,0x03,0x00,0x0E,0xFC,0x0F,0xFC,0x03},/*"W",55*/ -{0x0C,0x0C,0x1C,0x0E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1C,0x0E,0x0C,0x0C},/*"X",56*/ -{0x1C,0x00,0x3C,0x00,0x60,0x08,0xC0,0x0F,0xC0,0x0F,0x60,0x08,0x3C,0x00,0x1C,0x00},/*"Y",57*/ -{0x0C,0x0E,0x0C,0x0F,0x84,0x09,0xC4,0x08,0x64,0x08,0x34,0x08,0x1C,0x0C,0x0C,0x0C},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x04,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x00,0x00,0x10,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x10,0x00},/*"^",62*/ -{0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x08,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x07,0xA0,0x0F,0xA0,0x08,0xA0,0x08,0xE0,0x07,0xC0,0x0F,0x00,0x08,0x00,0x00},/*"a",65*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x07,0x20,0x08,0x60,0x08,0xC0,0x0F,0x80,0x07,0x00,0x00},/*"b",66*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x08,0x20,0x08,0x60,0x0C,0x40,0x04,0x00,0x00},/*"c",67*/ -{0x80,0x07,0xC0,0x0F,0x60,0x08,0x24,0x08,0xFC,0x07,0xFC,0x0F,0x00,0x08,0x00,0x00},/*"d",68*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x09,0x20,0x09,0x20,0x09,0xE0,0x0D,0xC0,0x05,0x00,0x00},/*"e",69*/ -{0x00,0x00,0x40,0x08,0xF8,0x0F,0xFC,0x0F,0x44,0x08,0x4C,0x00,0x08,0x00,0x00,0x00},/*"f",70*/ -{0xC0,0x27,0xE0,0x6F,0x20,0x48,0x20,0x48,0xC0,0x7F,0xE0,0x3F,0x20,0x00,0x00,0x00},/*"g",71*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x40,0x00,0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x00,0x00},/*"h",72*/ -{0x00,0x00,0x00,0x00,0x20,0x08,0xEC,0x0F,0xEC,0x0F,0x00,0x08,0x00,0x00,0x00,0x00},/*"i",73*/ -{0x00,0x00,0x00,0x20,0x00,0x60,0x00,0x40,0x20,0x40,0xEC,0x7F,0xEC,0x3F,0x00,0x00},/*"j",74*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x80,0x01,0xC0,0x03,0x60,0x0E,0x20,0x0C,0x00,0x00},/*"k",75*/ -{0x00,0x00,0x00,0x00,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x08,0x00,0x00,0x00,0x00},/*"l",76*/ -{0xE0,0x0F,0xE0,0x0F,0x60,0x00,0xC0,0x07,0xC0,0x07,0x60,0x00,0xE0,0x0F,0xC0,0x0F},/*"m",77*/ -{0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x20,0x00,0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x00,0x00},/*"n",78*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x08,0x20,0x08,0xE0,0x0F,0xC0,0x07,0x00,0x00},/*"o",79*/ -{0x20,0x40,0xE0,0x7F,0xC0,0x7F,0x20,0x48,0x20,0x08,0xE0,0x0F,0xC0,0x07,0x00,0x00},/*"p",80*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x48,0xC0,0x7F,0xE0,0x7F,0x20,0x40,0x00,0x00},/*"q",81*/ -{0x20,0x08,0xE0,0x0F,0xC0,0x0F,0x60,0x08,0x20,0x00,0x60,0x00,0x40,0x00,0x00,0x00},/*"r",82*/ -{0xC0,0x04,0xE0,0x0D,0x20,0x09,0x20,0x09,0x20,0x09,0x60,0x0F,0x40,0x06,0x00,0x00},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xF8,0x07,0xFC,0x0F,0x20,0x08,0x20,0x0C,0x00,0x04,0x00,0x00},/*"t",84*/ -{0xE0,0x07,0xE0,0x0F,0x00,0x08,0x00,0x08,0xE0,0x07,0xE0,0x0F,0x00,0x08,0x00,0x00},/*"u",85*/ -{0xE0,0x01,0xE0,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x06,0xE0,0x03,0xE0,0x01},/*"v",86*/ -{0xE0,0x07,0xE0,0x0F,0x00,0x0C,0x00,0x07,0x00,0x07,0x00,0x0C,0xE0,0x0F,0xE0,0x07},/*"w",87*/ -{0x20,0x08,0x60,0x0C,0xC0,0x06,0x80,0x03,0x80,0x03,0xC0,0x06,0x60,0x0C,0x20,0x08},/*"x",88*/ -{0xE0,0x47,0xE0,0x4F,0x00,0x48,0x00,0x48,0x00,0x68,0xE0,0x3F,0xE0,0x1F,0x00,0x00},/*"y",89*/ -{0x60,0x0C,0x60,0x0E,0x20,0x0B,0xA0,0x09,0xE0,0x08,0x60,0x0C,0x20,0x0C,0x00,0x00},/*"z",90*/ -{0x00,0x00,0x40,0x00,0x40,0x00,0xF8,0x07,0xBC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x7C,0x1F,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x04,0x08,0x04,0x08,0xBC,0x0F,0xF8,0x07,0x40,0x00,0x40,0x00,0x00,0x00},/*"}",93*/ -}; - -const PROGMEM unsigned char font8x16_terminal[][16] = { -{0x00,0x00,0x00,0x00,0x7C,0x00,0xFE,0x1B,0xFE,0x1B,0x7C,0x00,0x00,0x00,0x00,0x00},/*"!",0*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00},/*""",1*/ -{0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01,0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01},/*"#",2*/ -{0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0xFF,0x3F,0x84,0x08,0x8C,0x0F,0x18,0x07},/*"$",3*/ -{0x1C,0x18,0x14,0x1E,0x9C,0x07,0xE0,0x01,0x78,0x1C,0x1E,0x14,0x06,0x1C,0x00,0x00},/*"%",4*/ -{0xBC,0x1F,0xFE,0x10,0x42,0x10,0xC2,0x10,0xFE,0x1F,0x3C,0x0F,0x80,0x19,0x80,0x10},/*"&",5*/ -{0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ -{0x00,0x00,0x00,0x00,0xF0,0x07,0xFC,0x1F,0x0E,0x38,0x02,0x20,0x00,0x00,0x00,0x00},/*"(",7*/ -{0x00,0x00,0x00,0x00,0x02,0x20,0x0E,0x38,0xFC,0x1F,0xF0,0x07,0x00,0x00,0x00,0x00},/*")",8*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"*",9*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+",10*/ -{0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00},/*",",11*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-",12*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},/*".",13*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",14*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0xC2,0x10,0xC2,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"0",15*/ -{0x00,0x00,0x08,0x10,0x0C,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"1",16*/ -{0x04,0x1C,0x06,0x1E,0x02,0x13,0x82,0x11,0xC2,0x10,0x62,0x10,0x3E,0x18,0x1C,0x18},/*"2",17*/ -{0x04,0x08,0x06,0x18,0x02,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"3",18*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x01,0x0C,0x11,0xFE,0x1F,0xFE,0x1F,0x00,0x11},/*"4",19*/ -{0x7E,0x08,0x7E,0x18,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC2,0x1F,0x82,0x0F},/*"5",20*/ -{0xF8,0x0F,0xFC,0x1F,0x46,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC0,0x1F,0x80,0x0F},/*"6",21*/ -{0x06,0x00,0x06,0x00,0x02,0x00,0x02,0x1F,0xC2,0x1F,0xF2,0x00,0x3E,0x00,0x0E,0x00},/*"7",22*/ -{0xBC,0x0F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"8",23*/ -{0x3C,0x00,0x7E,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x18,0xFE,0x0F,0xFC,0x07},/*"9",24*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x3C,0x60,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x0C,0x18,0x04,0x10,0x00,0x00},/*"<",28*/ -{0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02},/*"=",29*/ -{0x04,0x10,0x0C,0x18,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00,0x00,0x00},/*">",30*/ -{0x04,0x00,0x06,0x00,0x02,0x00,0x82,0x1B,0xC2,0x1B,0x62,0x00,0x3E,0x00,0x1C,0x00},/*"?",31*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x82,0x11,0xC2,0x13,0xE2,0x13,0xFE,0x13,0xFC,0x03},/*"@",32*/ -{0xF0,0x1F,0xF8,0x1F,0x0C,0x01,0x06,0x01,0x06,0x01,0x0C,0x01,0xF8,0x1F,0xF0,0x1F},/*"A",33*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"B",34*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x02,0x10,0x02,0x10,0x06,0x18,0x0C,0x0C},/*"C",35*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"D",36*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0xE2,0x10,0x06,0x18,0x06,0x18},/*"E",37*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0xE2,0x00,0x06,0x00,0x06,0x00},/*"F",38*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x82,0x10,0x82,0x10,0x86,0x0F,0x8C,0x1F},/*"G",39*/ -{0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFE,0x1F,0xFE,0x1F},/*"H",40*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00},/*"I",41*/ -{0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x02,0x00},/*"J",42*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0xE0,0x00,0xB0,0x01,0x18,0x03,0x0E,0x1E,0x06,0x1C},/*"K",43*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x18},/*"L",44*/ -{0xFE,0x1F,0xFE,0x1F,0x18,0x00,0xF0,0x00,0xF0,0x00,0x18,0x00,0xFE,0x1F,0xFE,0x1F},/*"M",45*/ -{0xFE,0x1F,0xFE,0x1F,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0xFE,0x1F,0xFE,0x1F},/*"N",46*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFC,0x0F},/*"O",47*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0x42,0x00,0x7E,0x00,0x3C,0x00},/*"P",48*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x1C,0x02,0x38,0x02,0x70,0xFE,0x5F,0xFC,0x0F},/*"Q",49*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x00,0x42,0x00,0xC2,0x00,0xFE,0x1F,0x3C,0x1F},/*"R",50*/ -{0x1C,0x0C,0x3E,0x1C,0x62,0x10,0x42,0x10,0x42,0x10,0xC2,0x10,0x8E,0x1F,0x0C,0x0F},/*"S",51*/ -{0x06,0x00,0x06,0x00,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x06,0x00,0x06,0x00},/*"T",52*/ -{0xFE,0x0F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0xFE,0x1F,0xFE,0x0F},/*"U",53*/ -{0xFE,0x03,0xFE,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xFE,0x07,0xFE,0x03},/*"V",54*/ -{0xFE,0x07,0xFE,0x1F,0x00,0x1C,0xC0,0x07,0xC0,0x07,0x00,0x1C,0xFE,0x1F,0xFE,0x07},/*"W",55*/ -{0x0E,0x1C,0x1E,0x1E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1E,0x1E,0x0E,0x1C},/*"X",56*/ -{0x1E,0x00,0x3E,0x00,0x60,0x10,0xC0,0x1F,0xC0,0x1F,0x60,0x10,0x3E,0x00,0x1E,0x00},/*"Y",57*/ -{0x06,0x1E,0x06,0x1F,0x82,0x11,0xC2,0x10,0x62,0x10,0x32,0x10,0x1E,0x18,0x0E,0x18},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x20,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,0x00},/*"^",62*/ -{0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x0E,0x20,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x0F,0xC0,0x1F,0x00,0x10},/*"a",65*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x20,0x10,0x20,0x10,0x60,0x10,0xC0,0x1F,0x80,0x0F},/*"b",66*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x60,0x18,0x40,0x08},/*"c",67*/ -{0x80,0x0F,0xC0,0x1F,0x60,0x10,0x20,0x10,0x22,0x10,0xFE,0x0F,0xFE,0x1F,0x00,0x10},/*"d",68*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x19,0xC0,0x09},/*"e",69*/ -{0x00,0x00,0x20,0x10,0xFC,0x1F,0xFE,0x1F,0x22,0x10,0x22,0x00,0x06,0x00,0x04,0x00},/*"f",70*/ -{0xC0,0x4F,0xE0,0xDF,0x20,0x90,0x20,0x90,0x20,0x90,0xC0,0xFF,0xE0,0x7F,0x20,0x00},/*"g",71*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"h",72*/ -{0x00,0x00,0x20,0x10,0x20,0x10,0xEC,0x1F,0xEC,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"i",73*/ -{0x00,0x60,0x00,0xC0,0x20,0x80,0x20,0x80,0xEC,0xFF,0xEC,0x7F,0x00,0x00,0x00,0x00},/*"j",74*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x80,0x01,0x80,0x03,0xC0,0x06,0x60,0x1C,0x20,0x18},/*"k",75*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"l",76*/ -{0xE0,0x1F,0xE0,0x1F,0x60,0x00,0xC0,0x0F,0xC0,0x0F,0x60,0x00,0xE0,0x1F,0xC0,0x1F},/*"m",77*/ -{0x20,0x00,0xE0,0x1F,0xC0,0x1F,0x20,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"n",78*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"o",79*/ -{0x20,0x80,0xE0,0xFF,0xC0,0xFF,0x20,0x90,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"p",80*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x90,0xC0,0xFF,0xE0,0xFF,0x20,0x80},/*"q",81*/ -{0x20,0x10,0xE0,0x1F,0xC0,0x1F,0x60,0x10,0x20,0x00,0x20,0x00,0x60,0x00,0x40,0x00},/*"r",82*/ -{0xC0,0x08,0xE0,0x19,0x20,0x11,0x20,0x11,0x20,0x13,0x20,0x12,0x60,0x1E,0x40,0x0C},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xFC,0x0F,0xFE,0x1F,0x20,0x10,0x20,0x18,0x00,0x08,0x00,0x00},/*"t",84*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0xE0,0x0F,0xE0,0x1F,0x00,0x10},/*"u",85*/ -{0xE0,0x03,0xE0,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xE0,0x07,0xE0,0x03},/*"v",86*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x18,0x00,0x0F,0x00,0x0F,0x00,0x18,0xE0,0x1F,0xE0,0x0F},/*"w",87*/ -{0x20,0x10,0x60,0x18,0xC0,0x0C,0x80,0x07,0x80,0x07,0xC0,0x0C,0x60,0x18,0x20,0x10},/*"x",88*/ -{0xE0,0x8F,0xE0,0x9F,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xD0,0xE0,0x7F,0xE0,0x3F},/*"y",89*/ -{0x60,0x18,0x60,0x1C,0x20,0x16,0x20,0x13,0xA0,0x11,0xE0,0x10,0x60,0x18,0x20,0x18},/*"z",90*/ -{0x00,0x00,0x00,0x00,0x80,0x00,0xFC,0x1F,0x7E,0x3F,0x02,0x20,0x02,0x20,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3E,0x7C,0x3E,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x02,0x20,0x02,0x20,0x7E,0x3F,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,0x00},/*"}",93*/ -}; - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM.h deleted file mode 100644 index c71a5ff..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM.h +++ /dev/null @@ -1,7 +0,0 @@ -void UTFT::_convert_float(char *buf, double num, int width, byte prec) -{ - char format[10]; - - sprintf(format, "%%%i.%if", width, prec); - sprintf(buf, format, num); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM_defines.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM_defines.h deleted file mode 100644 index 8df5f97..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_ARM_defines.h +++ /dev/null @@ -1,45 +0,0 @@ -// CTE TFT LCD/SD Shield for Arduino Due -// ------------------------------------- -// Uncomment the following line if you are using this shield -//#define CTE_DUE_SHIELD 1 -// -// For this shield: RS=25, WR=26, CS=27, RST=28 -//******************************************************************** - -// ElecHouse TFT LCD/SD Shield for Arduino Due -// ------------------------------------- -// Uncomment the following line if you are using this shield -//#define EHOUSE_DUE_SHIELD 1 -// -// For this shield: RS=22, WR=23, CS=31, RST=33 -//******************************************************************** - -// *** Hardwarespecific defines *** -#if defined(ENERGIA) - #define cbi(reg, bitmask) HWREG((uint32_t)reg + 0x3FC) &= ~bitmask - #define sbi(reg, bitmask) HWREG((uint32_t)reg + 0x3FC) |= bitmask -#else - #define cbi(reg, bitmask) *reg &= ~bitmask - #define sbi(reg, bitmask) *reg |= bitmask -#endif -#define pulse_high(reg, bitmask) sbi(reg, bitmask); cbi(reg, bitmask); -#define pulse_low(reg, bitmask) cbi(reg, bitmask); sbi(reg, bitmask); - -#define cport(port, data) port &= data -#define sport(port, data) port |= data - -#define swap(type, i, j) {type t = i; i = j; j = t;} - -#define fontbyte(x) cfont.font[x] - -#define pgm_read_word(data) *data -#define pgm_read_byte(data) *data -#define bitmapdatatype unsigned short* - -#if defined(TEENSYDUINO) && TEENSYDUINO >= 117 - #define regtype volatile uint8_t - #define regsize uint8_t -#else - #define regtype volatile uint32_t - #define regsize uint32_t -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_MX20DX256.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_MX20DX256.h deleted file mode 100644 index 93df980..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/MultiLCD/hardware/arm/HW_MX20DX256.h +++ /dev/null @@ -1,188 +0,0 @@ -/** - * - * This file is a modified version of the HW_Teensy3.h created by Paul Stoffregen. - * - * Teensy 3.x pin definitions created by Dawnmist - * http://forum.pjrc.com/threads/18002-Teensy-3-0-driving-an-SSD1289-with-utft?p=34719&viewfull=1#post34719 - * - * This file only supports the B and D ports as defined by Dawnmist for 8-bit and 16-bit display modules. - * Serial display modules are also supported. - * - * NOTE: This file has only been tested on a Teensy 3.1 - * -**/ - -// *** Hardware specific functions *** -void UTFT::_hw_special_init() -{ -} - -void UTFT::LCD_Writ_Bus(char VH,char VL, byte mode) -{ - switch (mode) - { - case 1: - if (display_serial_mode==SERIAL_4PIN) - { - if (VH==1) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - } - else - { - if (VH==1) - sbi(P_RS, B_RS); - else - cbi(P_RS, B_RS); - } - - if (VL & 0x80) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x40) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x20) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x10) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x08) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x04) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x02) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x01) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - break; - case 8: - *(volatile uint8_t *)(&GPIOD_PDOR) = VH; - pulse_low(P_WR, B_WR); - *(volatile uint8_t *)(&GPIOD_PDOR) = VL; - pulse_low(P_WR, B_WR); - break; - case 16: - *(volatile uint8_t *)(&GPIOD_PDOR) = VH; - GPIOB_PCOR = 0x000F000F; // clear data lines B0-3,B16-19 - GPIOB_PSOR = (0x0F & VL) | ((VL >> 4) << 16); // set data lines 0-3,16-19 if set in cl - pulse_low(P_WR, B_WR); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - GPIOD_PDDR |= 0xFF; - PORTD_PCR0 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR1 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR2 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR3 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR4 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR5 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR6 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR7 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - - if (mode == 16) - { - GPIOB_PDDR |= 0x000F000F; - PORTB_PCR0 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR1 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR2 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR3 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR16 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR17 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR18 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR19 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - } -} -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - *(volatile uint8_t *)(&GPIOD_PDOR) = ch; - GPIOB_PCOR = 0x000F000F; // clear data lines B0-3,B16-19 - GPIOB_PSOR = (0x0F & cl) | ((cl >> 4) << 16); // set data lines 0-3,16-19 if set in cl - - blocks = pix/16; - for (int i=0; i>3) | ((VH & 0x80)>>1); - pulse_low(P_WR, B_WR); - - REG_PIOA_CODR=0x0000C000; - REG_PIOD_CODR=0x0000064F; - REG_PIOA_SODR=(VL & 0x06)<<13; - (VL & 0x01) ? REG_PIOB_SODR = 0x4000000 : REG_PIOB_CODR = 0x4000000; - REG_PIOD_SODR=((VL & 0x78)>>3) | ((VL & 0x80)>>1); - pulse_low(P_WR, B_WR); -#endif - break; - case 16: -#if defined(CTE_DUE_SHIELD) - REG_PIOC_CODR=0xFF1FE; - REG_PIOC_SODR=(VL<<1) & 0x1FE; - REG_PIOC_SODR=(VH<<12) & 0xFF000; -#elif defined(EHOUSE_DUE_SHIELD) - PIOC->PIO_ODSR = ((PIOC->PIO_ODSR&(~0x000FF3FC)) | ((((uint32_t)VL)<<2) | (((uint32_t)VH)<<12))); -#else - REG_PIOA_CODR=0x0000C080; - REG_PIOC_CODR=0x0000003E; - REG_PIOD_CODR=0x0000064F; - REG_PIOA_SODR=((VH & 0x06)<<13) | ((VL & 0x40)<<1); - (VH & 0x01) ? REG_PIOB_SODR = 0x4000000 : REG_PIOB_CODR = 0x4000000; - REG_PIOC_SODR=((VL & 0x01)<<5) | ((VL & 0x02)<<3) | ((VL & 0x04)<<1) | ((VL & 0x08)>>1) | ((VL & 0x10)>>3); - REG_PIOD_SODR=((VH & 0x78)>>3) | ((VH & 0x80)>>1) | ((VL & 0x20)<<5) | ((VL & 0x80)<<2); -#endif - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - asm("nop"); // Mode is unsupported - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - if (mode!=LATCHED_16) - { -#if defined(CTE_DUE_SHIELD) - if (mode==16) - { - REG_PIOC_OER=0x000FF1FE; - } - else - REG_PIOC_OER=0x000FF000; -#elif defined(EHOUSE_DUE_SHIELD) - if (mode==16) - { - REG_PIOC_OER=0x000FF3FC; - REG_PIOC_OWER=0x000FF3FC; - } - else - REG_PIOC_OER=0x000FF000; -#else - REG_PIOA_OER=0x0000c000; //PA14,PA15 enable - REG_PIOB_OER=0x04000000; //PB26 enable - REG_PIOD_OER=0x0000064f; //PD0-3,PD6,PD9-10 enable - if (mode==16) - { - REG_PIOA_OER=0x00000080; //PA7 enable - REG_PIOC_OER=0x0000003e; //PC1 - PC5 enable - } -#endif - } - else - { - asm("nop"); // Mode is unsupported - } -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - -#if defined(CTE_DUE_SHIELD) - REG_PIOC_CODR=0xFF1FE; - REG_PIOC_SODR=(cl<<1) & 0x1FE; - REG_PIOC_SODR=(ch<<12) & 0xFF000; -#elif defined(EHOUSE_DUE_SHIELD) - PIOC->PIO_ODSR = ((PIOC->PIO_ODSR&(~0x000FF3FC)) | ((((uint32_t)cl)<<2) | (((uint32_t)ch)<<12))); -#else - REG_PIOA_CODR=0x0000C080; - REG_PIOC_CODR=0x0000003E; - REG_PIOD_CODR=0x0000064F; - REG_PIOA_SODR=((ch & 0x06)<<13) | ((cl & 0x40)<<1); - (ch & 0x01) ? REG_PIOB_SODR = 0x4000000 : REG_PIOB_CODR = 0x4000000; - REG_PIOC_SODR=((cl & 0x01)<<5) | ((cl & 0x02)<<3) | ((cl & 0x04)<<1) | ((cl & 0x08)>>1) | ((cl & 0x10)>>3); - REG_PIOD_SODR=((ch & 0x78)>>3) | ((ch & 0x80)>>1) | ((cl & 0x20)<<5) | ((cl & 0x80)<<2); -#endif - - blocks = pix/16; - for (int i=0; i>3) | ((ch & 0x80)>>1); -#endif - - blocks = pix/16; - for (int i=0; i>3; - PORTE &= ~0x3B; - PORTE |= (VH & 0x03) + ((VH & 0x0C)<<2) + ((VH & 0x20)>>2); - pulse_low(P_WR, B_WR); - PORTG &= ~0x20; - PORTG |= (VL & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (VL & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (VL & 0x03) + ((VL & 0x0C)<<2) + ((VL & 0x20)>>2); - pulse_low(P_WR, B_WR); -#else - PORTA = VH; - pulse_low(P_WR, B_WR); - PORTA = VL; - pulse_low(P_WR, B_WR); -#endif - break; - case 16: - PORTA = VH; - PORTC = VL; - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - PORTG &= ~0x20; - PORTG |= (VH & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (VH & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (VH & 0x03) + ((VH & 0x0C)<<2) + ((VH & 0x20)>>2); - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - PORTG &= ~0x20; - PORTG |= (VL & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (VL & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (VL & 0x03) + ((VL & 0x0C)<<2) + ((VL & 0x20)>>2); - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ -#if defined(USE_UNO_SHIELD_ON_MEGA) - DDRH = 0x18; - DDRG = 0x20; - DDRE = 0x3B; -#else - if (mode!=LATCHED_16) - { - DDRA = 0xFF; - if (mode==16) - DDRC = 0xFF; - } - else - { - DDRH = 0x18; - DDRG = 0x20; - DDRE = 0x3B; - } -#endif -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ -#if defined(USE_UNO_SHIELD_ON_MEGA) - if (ch==cl) - _fast_fill_8(ch, pix); - else - { - for (int i=0; i>3; - PORTE &= ~0x3B; - PORTE |= (ch & 0x03) + ((ch & 0x0C)<<2) + ((ch & 0x20)>>2); - pulse_low(P_WR, B_WR); - PORTG &= ~0x20; - PORTG |= (cl & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (cl & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (cl & 0x03) + ((cl & 0x0C)<<2) + ((cl & 0x20)>>2); - pulse_low(P_WR, B_WR); - } - } -#else - long blocks; - - PORTA = ch; - PORTC = cl; - - blocks = pix/16; - for (int i=0; i>3; - PORTE &= ~0x3B; - PORTE |= (ch & 0x03) + ((ch & 0x0C)<<2) + ((ch & 0x20)>>2); -#else - PORTA = ch; -#endif - - blocks = pix/16; - for (int i=0; i>4); - pulse_low(P_WR, B_WR); - cport (PORTD, 0xF0); - sport (PORTD, (VL & 0x0F)); - cport (PORTB, 0xF0); - sport (PORTB, (VL & 0xF0)>>4); - pulse_low(P_WR, B_WR); - break; - case 16: - cport (PORTD, 0x90); - sport (PORTD, (VH & 0x0F) | ((VL & 0x03)<<5)); - PORTB = ((VH & 0xF0)>>4) | ((VL & 0x3C)<<2); - cport (PORTA, 0x3F); - sport (PORTA, ((VL & 0x40)<<1) | ((VL & 0x80)>>1)); - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - cport (PORTD, 0xF0); - sport (PORTD, (VH & 0x0F)); - cport (PORTB, 0xF0); - sport (PORTB, (VH & 0xF0)>>4); - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - cport (PORTD, 0xF0); - sport (PORTD, (VL & 0x0F)); - cport (PORTB, 0xF0); - sport (PORTB, (VL & 0xF0)>>4); - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - DDRB |= 0x0F; - DDRD |= 0x0F; - if (mode==16) - { - DDRB = 0xFF; - DDRD |= 0x6F; - DDRA |= 0xC0; - } - -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - cport (PORTD, 0x90); - sport (PORTD, (ch & 0x0F) | ((cl & 0x03)<<5)); - PORTB = ((ch & 0xF0)>>4) | ((cl & 0x3C)<<2); - cport (PORTA, 0x3F); - sport (PORTA, ((cl & 0x40)<<1) | ((cl & 0x80)>>1)); - - blocks = pix/16; - for (int i=0; i>4); - - blocks = pix/16; - for (int i=0; i>6) & 0x03); - PORTB = VL & 0x3F; - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - PORTD = VH; - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - PORTD = VL; - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - DDRD = 0xFF; - if (mode==16) - { - DDRB |= 0x3F; - DDRC |= 0x03; - } - -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - PORTD = ch; - cport(PORTC, 0xFC); - sport(PORTC, (cl>>6) & 0x03); - PORTB = cl & 0x3F; - - blocks = pix/16; - for (int i=0; i>3) + ((VH & 0x04)>>1) + ((VH & 0x03)<<2); - PORTE += ((VH & 0x80)>>1); - pulse_low(P_WR, B_WR); - - cport(PORTC, 0xBF); - cport(PORTD, 0x60); - cport(PORTE, 0xBF); - PORTC += ((VL & 0x20)<<1); - PORTD += ((VL & 0x40)<<1) + (VL & 0x10) + ((VL & 0x08)>>3) + ((VL & 0x04)>>1) + ((VL & 0x03)<<2); - PORTE += ((VL & 0x80)>>1); - pulse_low(P_WR, B_WR); - break; - case 16: - cport(PORTB, 0x0F); - cport(PORTC, 0x3F); - cport(PORTD, 0x20); - cport(PORTE, 0xBF); - cport(PORTF, 0x3F); - - PORTB |= ((VL & 0x0F)<<4); - PORTC |= ((VL & 0x20)<<2) + ((VH & 0x20)<<1); - PORTD |= ((VH & 0x40)<<1) + (VH & 0x10) + ((VH & 0x08)>>3) + ((VH & 0x04)>>1) + ((VH & 0x03)<<2) + ((VL & 0x10)<<2); - PORTE |= ((VH & 0x80)>>1); - PORTF |= ((VL & 0x80)>>1) + ((VL & 0x40)<<1); - - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - cport(PORTC, 0xBF); - cport(PORTD, 0x60); - cport(PORTE, 0xBF); - PORTC += ((VH & 0x20)<<1); - PORTD += ((VH & 0x40)<<1) + (VH & 0x10) + ((VH & 0x08)>>3) + ((VH & 0x04)>>1) + ((VH & 0x03)<<2); - PORTE += ((VH & 0x80)>>1); - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - cport(PORTC, 0xBF); - cport(PORTD, 0x60); - cport(PORTE, 0xBF); - PORTC += ((VL & 0x20)<<1); - PORTD += ((VL & 0x40)<<1) + (VL & 0x10) + ((VL & 0x08)>>3) + ((VL & 0x04)>>1) + ((VL & 0x03)<<2); - PORTE += ((VL & 0x80)>>1); - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - switch (mode) - { - case 8: - case LATCHED_16: - DDRC |= 0x40; - DDRD |= 0x9F; - DDRE |= 0x40; - break; - case 16: - DDRB |= 0xF0; - DDRC |= 0xC0; - DDRD |= 0xDF; - DDRE |= 0x40; - DDRF |= 0xC0; - break; - } -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - cport(PORTB, 0x0F); - cport(PORTC, 0x3F); - cport(PORTD, 0x20); - cport(PORTE, 0xBF); - cport(PORTF, 0x3F); - - PORTB |= ((cl & 0x0F)<<4); - PORTC |= ((cl & 0x20)<<2) + ((ch & 0x20)<<1); - PORTD |= ((ch & 0x40)<<1) + (ch & 0x10) + ((ch & 0x08)>>3) + ((ch & 0x04)>>1) + ((ch & 0x03)<<2) + ((cl & 0x10)<<2); - PORTE |= ((ch & 0x80)>>1); - PORTF |= ((cl & 0x80)>>1) + ((cl & 0x40)<<1); - - blocks = pix/16; - for (int i=0; i>3) + ((ch & 0x04)>>1) + ((ch & 0x03)<<2); - PORTE |= ((ch & 0x80)>>1); - - blocks = pix/16; - for (int i=0; i. -*/ - -#include "Narcoleptic.h" - -#ifndef __SAM3X8E__ - -#include -#include -#include -//#include - -#include -#include - -SIGNAL(WDT_vect) { - wdt_disable(); - wdt_reset(); - WDTCSR &= ~_BV(WDIE); -} - -void NarcolepticClass::sleep(uint8_t wdt_period) { - wdt_enable(wdt_period); - wdt_reset(); - WDTCSR |= _BV(WDIE); - set_sleep_mode(SLEEP_MODE_PWR_DOWN); - sleep_mode(); - wdt_disable(); - WDTCSR &= ~_BV(WDIE); -} - -void NarcolepticClass::delay(int milliseconds) { - while (milliseconds >= 8000) { sleep(WDTO_8S); milliseconds -= 8000; } - if (milliseconds >= 4000) { sleep(WDTO_4S); milliseconds -= 4000; } - if (milliseconds >= 2000) { sleep(WDTO_2S); milliseconds -= 2000; } - if (milliseconds >= 1000) { sleep(WDTO_1S); milliseconds -= 1000; } - if (milliseconds >= 500) { sleep(WDTO_500MS); milliseconds -= 500; } - if (milliseconds >= 250) { sleep(WDTO_250MS); milliseconds -= 250; } - if (milliseconds >= 125) { sleep(WDTO_120MS); milliseconds -= 120; } - if (milliseconds >= 64) { sleep(WDTO_60MS); milliseconds -= 60; } - if (milliseconds >= 32) { sleep(WDTO_30MS); milliseconds -= 30; } - if (milliseconds >= 16) { sleep(WDTO_15MS); milliseconds -= 15; } -} - -#else - -void NarcolepticClass::delay(int milliseconds) { - delay(milliseconds); -} - -#endif - -NarcolepticClass Narcoleptic; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/Narcoleptic/Narcoleptic.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/Narcoleptic/Narcoleptic.h deleted file mode 100644 index 9b1f255..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/Narcoleptic/Narcoleptic.h +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Narcoleptic - A sleep library for Arduino - * Copyright (C) 2010 Peter Knight (Cathedrow) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -#ifndef Narcoleptic_h -#define Narcoleptic_h - -#include -#include - -class NarcolepticClass -{ - public: - void delay(int milliseconds); - private: - void sleep(uint8_t); -}; -extern NarcolepticClass Narcoleptic; - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/OBD.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/OBD.cpp deleted file mode 100644 index 92b9bdf..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/OBD.cpp +++ /dev/null @@ -1,789 +0,0 @@ -/************************************************************************* -* Arduino Library for OBD-II UART/I2C Adapter -* Distributed under BSD License -* Visit http://freematics.com for more information -* (C)2012-2016 Stanley Huang -*************************************************************************/ - -#include -#include -#include "OBD.h" - -//#define DEBUG Serial - -uint16_t hex2uint16(const char *p) -{ - char c = *p; - uint16_t i = 0; - for (char n = 0; c && n < 4; c = *(++p)) { - if (c >= 'A' && c <= 'F') { - c -= 7; - } else if (c>='a' && c<='f') { - c -= 39; - } else if (c == ' ') { - continue; - } else if (c < '0' || c > '9') { - break; - } - i = (i << 4) | (c & 0xF); - n++; - } - return i; -} - -byte hex2uint8(const char *p) -{ - byte c1 = *p; - byte c2 = *(p + 1); - if (c1 >= 'A' && c1 <= 'F') - c1 -= 7; - else if (c1 >='a' && c1 <= 'f') - c1 -= 39; - else if (c1 < '0' || c1 > '9') - return 0; - - if (c2 >= 'A' && c2 <= 'F') - c2 -= 7; - else if (c2 >= 'a' && c2 <= 'f') - c2 -= 39; - else if (c2 < '0' || c2 > '9') - return 0; - - return c1 << 4 | (c2 & 0xf); -} - -/************************************************************************* -* OBD-II UART Adapter -*************************************************************************/ - -byte COBD::sendCommand(const char* cmd, char* buf, byte bufsize, int timeout) -{ - write(cmd); - dataIdleLoop(); - return receive(buf, bufsize, timeout); -} - -void COBD::sendQuery(byte pid) -{ - char cmd[8]; - sprintf(cmd, "%02X%02X\r", dataMode, pid); -#ifdef DEBUG - debugOutput(cmd); -#endif - write(cmd); -} - -bool COBD::readPID(byte pid, int& result) -{ - // send a query command - sendQuery(pid); - // receive and parse the response - return getResult(pid, result); -} - -byte COBD::readPID(const byte pid[], byte count, int result[]) -{ - byte results = 0; - for (byte n = 0; n < count; n++) { - if (readPID(pid[n], result[n])) { - results++; - } - } - return results; -} - -byte COBD::readDTC(uint16_t codes[], byte maxCodes) -{ - /* - Response example: - 0: 43 04 01 08 01 09 - 1: 01 11 01 15 00 00 00 - */ - byte codesRead = 0; - for (byte n = 0; n < 6; n++) { - char buffer[128]; - sprintf_P(buffer, n == 0 ? PSTR("03\r") : PSTR("03%02X\r"), n); - write(buffer); - if (receive(buffer, sizeof(buffer)) > 0) { - if (!strstr(buffer, "NO DATA")) { - char *p = strstr(buffer, "43"); - if (p) { - while (codesRead < maxCodes && *p) { - p += 6; - if (*p == '\r') { - p = strchr(p, ':'); - if (!p) break; - p += 2; - } - uint16_t code = hex2uint16(p); - if (code == 0) break; - codes[codesRead++] = code; - } - } - break; - } - } - } - return codesRead; -} - -void COBD::clearDTC() -{ - char buffer[32]; - write("04\r"); - receive(buffer, sizeof(buffer)); -} - -void COBD::write(const char* s) -{ -#ifdef DEBUG - DEBUG.print("<<<"); - DEBUG.println(s); -#endif - OBDUART.write(s); -} - -int COBD::normalizeData(byte pid, char* data) -{ - int result; - switch (pid) { - case PID_RPM: - case PID_EVAP_SYS_VAPOR_PRESSURE: // kPa - result = getLargeValue(data) >> 2; - break; - case PID_FUEL_PRESSURE: // kPa - result = getSmallValue(data) * 3; - break; - case PID_COOLANT_TEMP: - case PID_INTAKE_TEMP: - case PID_AMBIENT_TEMP: - case PID_ENGINE_OIL_TEMP: - result = getTemperatureValue(data); - break; - case PID_THROTTLE: - case PID_COMMANDED_EGR: - case PID_COMMANDED_EVAPORATIVE_PURGE: - case PID_FUEL_LEVEL: - case PID_RELATIVE_THROTTLE_POS: - case PID_ABSOLUTE_THROTTLE_POS_B: - case PID_ABSOLUTE_THROTTLE_POS_C: - case PID_ACC_PEDAL_POS_D: - case PID_ACC_PEDAL_POS_E: - case PID_ACC_PEDAL_POS_F: - case PID_COMMANDED_THROTTLE_ACTUATOR: - case PID_ENGINE_LOAD: - case PID_ABSOLUTE_ENGINE_LOAD: - case PID_ETHANOL_FUEL: - case PID_HYBRID_BATTERY_PERCENTAGE: - result = getPercentageValue(data); - break; - case PID_MAF_FLOW: // grams/sec - result = getLargeValue(data) / 100; - break; - case PID_TIMING_ADVANCE: - result = (int)(getSmallValue(data) / 2) - 64; - break; - case PID_DISTANCE: // km - case PID_DISTANCE_WITH_MIL: // km - case PID_TIME_WITH_MIL: // minute - case PID_TIME_SINCE_CODES_CLEARED: // minute - case PID_RUNTIME: // second - case PID_FUEL_RAIL_PRESSURE: // kPa - case PID_ENGINE_REF_TORQUE: // Nm - result = getLargeValue(data); - break; - case PID_CONTROL_MODULE_VOLTAGE: // V - result = getLargeValue(data) / 1000; - break; - case PID_ENGINE_FUEL_RATE: // L/h - result = getLargeValue(data) / 20; - break; - case PID_ENGINE_TORQUE_DEMANDED: // % - case PID_ENGINE_TORQUE_PERCENTAGE: // % - result = (int)getSmallValue(data) - 125; - break; - case PID_SHORT_TERM_FUEL_TRIM_1: - case PID_LONG_TERM_FUEL_TRIM_1: - case PID_SHORT_TERM_FUEL_TRIM_2: - case PID_LONG_TERM_FUEL_TRIM_2: - case PID_EGR_ERROR: - result = ((int)getSmallValue(data) - 128) * 100 / 128; - break; - case PID_FUEL_INJECTION_TIMING: - result = ((int32_t)getLargeValue(data) - 26880) / 128; - break; - case PID_CATALYST_TEMP_B1S1: - case PID_CATALYST_TEMP_B2S1: - case PID_CATALYST_TEMP_B1S2: - case PID_CATALYST_TEMP_B2S2: - result = getLargeValue(data) / 10 - 40; - break; - case PID_AIR_FUEL_EQUIV_RATIO: // 0~200 - result = (long)getLargeValue(data) * 200 / 65536; - break; - default: - result = getSmallValue(data); - } - return result; -} - -char* COBD::getResponse(byte& pid, char* buffer, byte bufsize) -{ - while (receive(buffer, bufsize) > 0) { - char *p = buffer; - while ((p = strstr(p, "41 "))) { - p += 3; - byte curpid = hex2uint8(p); - if (pid == 0) pid = curpid; - if (curpid == pid) { - errors = 0; - p += 2; - if (*p == ' ') - return p + 1; - } - } - } - return 0; -} - -bool COBD::getResult(byte& pid, int& result) -{ - char buffer[64]; - char* data = getResponse(pid, buffer, sizeof(buffer)); - if (!data) { - recover(); - errors++; - return false; - } - result = normalizeData(pid, data); - return true; -} - -void COBD::enterLowPowerMode() -{ - char buf[32]; - sendCommand("ATLP\r", buf, sizeof(buf)); -} - -void COBD::leaveLowPowerMode() -{ - // simply send any command to wake the device up - char buf[32]; - sendCommand("ATI\r", buf, sizeof(buf), 1000); -} - -char* COBD::getResultValue(char* buf) -{ - char* p = buf; - for (;;) { - if (isdigit(*p) || *p == '-') { - return p; - } - p = strchr(p, '\r'); - if (!p) break; - if (*(++p) == '\n') p++; - } - return 0; -} - -float COBD::getVoltage() -{ - char buf[32]; - if (sendCommand("ATRV\r", buf, sizeof(buf)) > 0) { - char* p = getResultValue(buf); - if (p) return (float)atof(p); - } - return 0; -} - -bool COBD::getVIN(char* buffer, byte bufsize) -{ - for (byte n = 0; n < 5; n++) { - if (sendCommand("0902\r", buffer, bufsize)) { - int len = hex2uint16(buffer); - char *p = strstr_P(buffer + 4, PSTR("0: 49 02 01")); - if (p) { - char *q = buffer; - p += 11; // skip the header - do { - while (*(++p) == ' '); - for (;;) { - *(q++) = hex2uint8(p); - while (*p && *p != ' ') p++; - while (*p == ' ') p++; - if (!*p || *p == '\r') break; - } - p = strchr(p, ':'); - } while(p); - *q = 0; - if (q - buffer == len - 3) { - return true; - } - } - } - delay(100); - } - return false; -} - -bool COBD::isValidPID(byte pid) -{ - if (pid >= 0x7f) - return true; - pid--; - byte i = pid >> 3; - byte b = 0x80 >> (pid & 0x7); - return (pidmap[i] & b) != 0; -} - -byte COBD::begin() -{ - long baudrates[] = {115200, 38400}; - byte version = 0; - for (byte n = 0; n < sizeof(baudrates) / sizeof(baudrates[0]) && version == 0; n++) { - OBDUART.begin(baudrates[n]); - version = getVersion(); - } - return version; -} - -byte COBD::getVersion() -{ - byte version = 0; - for (byte n = 0; n < 3; n++) { - char buffer[32]; - if (sendCommand("ATI\r", buffer, sizeof(buffer), 200)) { - char *p = strchr(buffer, ' '); - if (p) { - p += 2; - version = (*p - '0') * 10 + (*(p + 2) - '0'); - break; - } - } - } - return version; -} - -byte COBD::receive(char* buffer, byte bufsize, int timeout) -{ - unsigned char n = 0; - unsigned long startTime = millis(); - char c = 0; - for (;;) { - if (OBDUART.available()) { - c = OBDUART.read(); - if (!buffer) { - n++; - } else if (n < bufsize - 1) { - if (c == '.' && n > 2 && buffer[n - 1] == '.' && buffer[n - 2] == '.') { - // waiting siginal - n = 0; - timeout = OBD_TIMEOUT_LONG; - } else { - if (c == '\r' || c == '\n' || c == ' ') { - if (n == 0 || buffer[n - 1] == '\r' || buffer[n - 1] == '\n') continue; - } - buffer[n++] = c; - } - } - } else { - if (c == '>') { - // prompt char received - break; - } - if ((int)(millis() - startTime) > timeout) { - // timeout - break; - } - dataIdleLoop(); - } - } - if (buffer) { - buffer[n] = 0; - } -#ifdef DEBUG - DEBUG.print(">>>"); - DEBUG.println(buffer); -#endif - return n; -} - -void COBD::recover() -{ - sendCommand("\r", 0, 0); -} - -bool COBD::init(OBD_PROTOCOLS protocol) -{ - const char *initcmd[] = {"ATZ\r", "ATE0\r", "ATH0\r"}; - char buffer[64]; - - m_state = OBD_DISCONNECTED; - for (unsigned char i = 0; i < sizeof(initcmd) / sizeof(initcmd[0]); i++) { - write(initcmd[i]); - if (receive(buffer, sizeof(buffer), OBD_TIMEOUT_LONG) == 0) { - return false; - } - } - if (protocol != PROTO_AUTO) { - sprintf_P(buffer, PSTR("ATSP %u\r"), protocol); - write(buffer); - if (receive(buffer, sizeof(buffer), OBD_TIMEOUT_LONG) == 0 && !strstr(buffer, "OK")) { - return false; - } - } - - // load pid map - memset(pidmap, 0, sizeof(pidmap)); - bool success = false; - for (byte i = 0; i < 4; i++) { - byte pid = i * 0x20; - sendQuery(pid); - if (receive(buffer, sizeof(buffer), OBD_TIMEOUT_LONG) > 0) { - char *p = buffer; - while ((p = strstr(p, "41 "))) { - p += 3; - if (hex2uint8(p) == pid) { - p += 2; - for (byte n = 0; n < 4 && *(p + n * 3) == ' '; n++) { - pidmap[i * 4 + n] = hex2uint8(p + n * 3 + 1); - } - success = true; - } - } - } - } - - if (success) { - m_state = OBD_CONNECTED; - errors = 0; - } - return success; -} - -void COBD::end() -{ - m_state = OBD_DISCONNECTED; - OBDUART.end(); -} - -bool COBD::setBaudRate(unsigned long baudrate) -{ - OBDUART.print("ATBR1 "); - OBDUART.print(baudrate); - OBDUART.print('\r'); - delay(50); - OBDUART.end(); - OBDUART.begin(baudrate); - recover(); - return true; -} - -bool COBD::memsInit() -{ - char buf[16]; - return sendCommand("ATTEMP\r", buf, sizeof(buf)) > 0 && !strchr(buf, '?'); -} - -bool COBD::memsRead(int16_t* acc, int16_t* gyr, int16_t* mag, int16_t* temp) -{ - char buf[64]; - bool success; - if (acc) { - success = false; - if (sendCommand("ATACL\r", buf, sizeof(buf)) > 0) do { - char* p = getResultValue(buf); - if (!p) break; - acc[0] = atoi(p++); - if (!(p = strchr(p, ','))) break; - acc[1] = atoi(++p); - if (!(p = strchr(p, ','))) break; - acc[2] = atoi(++p); - success = true; - } while (0); - if (!success) return false; - } - if (gyr) { - success = false; - if (sendCommand("ATGYRO\r", buf, sizeof(buf)) > 0) do { - char* p = getResultValue(buf); - if (!p) break; - gyr[0] = atoi(p++); - if (!(p = strchr(p, ','))) break; - gyr[1] = atoi(++p); - if (!(p = strchr(p, ','))) break; - gyr[2] = atoi(++p); - success = true; - } while (0); - if (!success) return false; - } - if (temp) { - success = false; - if (sendCommand("ATTEMP\r", buf, sizeof(buf)) > 0) { - char* p = getResultValue(buf); - if (p) { - *temp = (atoi(p) + 12412) / 34; - success = true; - } - } - if (!success) return false; - } - return true; -} - -#ifdef DEBUG -void COBD::debugOutput(const char *s) -{ - DEBUG.print('['); - DEBUG.print(millis()); - DEBUG.print(']'); - DEBUG.print(s); -} -#endif - -/************************************************************************* -* OBD-II I2C Adapter -*************************************************************************/ - -byte COBDI2C::begin() -{ - Wire.begin(); -#ifdef DEBUG - DEBUG.begin(115200); -#endif - recover(); - return getVersion(); -} - -void COBDI2C::end() -{ - m_state = OBD_DISCONNECTED; -} - -void COBDI2C::write(const char* s) -{ - COMMAND_BLOCK cmdblock = {millis(), CMD_SEND_AT_COMMAND}; - Wire.beginTransmission(I2C_ADDR); - Wire.write((byte*)&cmdblock, sizeof(cmdblock)); - Wire.write(s); - Wire.endTransmission(); -} - -bool COBDI2C::sendCommandBlock(byte cmd, uint8_t data, byte* payload, byte payloadBytes) -{ - COMMAND_BLOCK cmdblock = {millis(), cmd, data}; - Wire.beginTransmission(I2C_ADDR); - bool success = Wire.write((byte*)&cmdblock, sizeof(COMMAND_BLOCK)) == sizeof(COMMAND_BLOCK); - if (payload) Wire.write(payload, payloadBytes); - Wire.endTransmission(); - return success; -} - -byte COBDI2C::receive(char* buffer, byte bufsize, int timeout) -{ - uint32_t start = millis(); - byte offset = 0; - do { - Wire.requestFrom((byte)I2C_ADDR, (byte)MAX_PAYLOAD_SIZE, (byte)1); - int c = Wire.read(); - if (offset == 0 && c < 0xa) { - // data not ready - dataIdleLoop(); - continue; - } - if (buffer) buffer[offset++] = c; - for (byte i = 1; i < MAX_PAYLOAD_SIZE && Wire.available(); i++) { - char c = Wire.read(); - if (c == '.' && offset > 2 && buffer[offset - 1] == '.' && buffer[offset - 2] == '.') { - // waiting signal - offset = 0; - timeout = OBD_TIMEOUT_LONG; - } else if (c == 0 || offset == bufsize - 1) { - // string terminator encountered or buffer full - if (buffer) buffer[offset] = 0; - // discard the remaining data - while (Wire.available()) Wire.read(); - return offset; - } else { - if (buffer) buffer[offset++] = c; - } - } - } while(millis() - start < timeout); - if (buffer) buffer[offset] = 0; - return 0; -} - -void COBDI2C::setQueryPID(byte pid, byte obdPid[]) -{ - byte n = 0; - for (; n < MAX_PIDS && obdPid[n]; n++) { - if (obdPid[n] == pid) - return; - } - if (n == MAX_PIDS) { - memmove(obdPid, obdPid + 1, sizeof(obdPid[0]) * (MAX_PIDS - 1)); - n = MAX_PIDS - 1; - } - obdPid[n] = pid; -} - -void COBDI2C::applyQueryPIDs(byte obdPid[]) -{ - sendCommandBlock(CMD_APPLY_OBD_PIDS, 0, (byte*)obdPid, sizeof(obdPid[0])* MAX_PIDS); - delay(200); -} - -void COBDI2C::loadQueryData(PID_INFO obdInfo[]) -{ - sendCommandBlock(CMD_LOAD_OBD_DATA); - dataIdleLoop(); - Wire.requestFrom((byte)I2C_ADDR, (byte)MAX_PAYLOAD_SIZE, (byte)0); - Wire.readBytes((char*)obdInfo, sizeof(obdInfo[0]) * MAX_PIDS); -} - -#define MPU6050_I2C_ADDRESS 0x68 -#define MPU6050_ACCEL_XOUT_H 0x3B // R -#define MPU6050_ACCEL_XOUT_L 0x3C // R -#define MPU6050_ACCEL_YOUT_H 0x3D // R -#define MPU6050_ACCEL_YOUT_L 0x3E // R -#define MPU6050_ACCEL_ZOUT_H 0x3F // R -#define MPU6050_ACCEL_ZOUT_L 0x40 // R -#define MPU6050_TEMP_OUT_H 0x41 // R -#define MPU6050_TEMP_OUT_L 0x42 // R -#define MPU6050_GYRO_XOUT_H 0x43 // R -#define MPU6050_GYRO_XOUT_L 0x44 // R -#define MPU6050_GYRO_YOUT_H 0x45 // R -#define MPU6050_GYRO_YOUT_L 0x46 // R -#define MPU6050_GYRO_ZOUT_H 0x47 // R -#define MPU6050_GYRO_ZOUT_L 0x48 // R -#define MPU6050_PWR_MGMT_1 0x6B // R/W -#define MPU6050_PWR_MGMT_2 0x6C // R/W -#define MPU6050_WHO_AM_I 0x75 // R - -typedef struct -{ - uint8_t x_accel_h; - uint8_t x_accel_l; - uint8_t y_accel_h; - uint8_t y_accel_l; - uint8_t z_accel_h; - uint8_t z_accel_l; - uint8_t t_h; - uint8_t t_l; - uint8_t x_gyro_h; - uint8_t x_gyro_l; - uint8_t y_gyro_h; - uint8_t y_gyro_l; - uint8_t z_gyro_h; - uint8_t z_gyro_l; -} MPU6050_READOUT_DATA; - -bool COBDI2C::memsInit() -{ - // default at power-up: - // Gyro at 250 degrees second - // Acceleration at 2g - // Clock source at internal 8MHz - // The device is in sleep mode. - // - uint8_t c; - bool success; - success = MPU6050_read (MPU6050_WHO_AM_I, &c, 1); - if (!success) return false; - - // According to the datasheet, the 'sleep' bit - // should read a '1'. But I read a '0'. - // That bit has to be cleared, since the sensor - // is in sleep mode at power-up. Even if the - // bit reads '0'. - success = MPU6050_read (MPU6050_PWR_MGMT_2, &c, 1); - if (!success) return false; - - // Clear the 'sleep' bit to start the sensor. - MPU6050_write_reg (MPU6050_PWR_MGMT_1, 0); - return true; -} - -bool COBDI2C::memsRead(int* acc, int* gyr, int* mag, int* temp) -{ - bool success; - - // Read the raw values. - // Read 14 bytes at once, - // containing acceleration, temperature and gyro. - // With the default settings of the MPU-6050, - // there is no filter enabled, and the values - // are not very stable. - - MPU6050_READOUT_DATA accel_t_gyro; - success = MPU6050_read (MPU6050_ACCEL_XOUT_H, (uint8_t *)&accel_t_gyro, sizeof(MPU6050_READOUT_DATA)); - if (!success) return false; - - if (temp) { - // 340 per degrees Celsius, -512 at 35 degrees. - *temp = ((int)(((uint16_t)accel_t_gyro.t_h << 8) | accel_t_gyro.t_l) + 512) / 34 + 350; - } - - if (acc) { - MPU6050_store(acc, accel_t_gyro.x_accel_l, accel_t_gyro.x_accel_h); - MPU6050_store(acc + 1, accel_t_gyro.y_accel_l, accel_t_gyro.y_accel_h); - MPU6050_store(acc + 2, accel_t_gyro.z_accel_l, accel_t_gyro.z_accel_h); - } - - if (gyr) { - MPU6050_store(gyr, accel_t_gyro.x_gyro_l, accel_t_gyro.x_gyro_h); - MPU6050_store(gyr + 1, accel_t_gyro.y_gyro_l, accel_t_gyro.y_gyro_h); - MPU6050_store(gyr + 2, accel_t_gyro.z_gyro_l, accel_t_gyro.z_gyro_h); - } - - if (mag) { - // no magnetometer - mag[0] = 0; - mag[1] = 0; - mag[2] = 0; - } - - return true; -} - -void COBDI2C::MPU6050_store(int* pData, uint8_t data_l, uint8_t data_h) -{ - uint8_t* ptr = (uint8_t*)pData; - *ptr = data_l; - *(ptr + 1) = data_h; -} - -bool COBDI2C::MPU6050_read(int start, uint8_t* buffer, int size) -{ - int i, n; - - Wire.beginTransmission(MPU6050_I2C_ADDRESS); - Wire.write(start); - Wire.endTransmission(false); // hold the I2C-bus - - // Third parameter is true: relase I2C-bus after data is read. - Wire.requestFrom(MPU6050_I2C_ADDRESS, size, true); - while(Wire.available() && i -*************************************************************************/ - -#include - -#define OBD_MODEL_UART 0 -#define OBD_MODEL_I2C 1 - -#define OBD_TIMEOUT_SHORT 1000 /* ms */ -#define OBD_TIMEOUT_LONG 5000 /* ms */ -#define OBD_TIMEOUT_GPS 200 /* ms */ - -#ifndef OBDUART -#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168P__) -#define OBDUART Serial -#else -#define OBDUART Serial1 -#endif -#endif - -// Mode 1 PIDs -#define PID_ENGINE_LOAD 0x04 -#define PID_COOLANT_TEMP 0x05 -#define PID_SHORT_TERM_FUEL_TRIM_1 0x06 -#define PID_LONG_TERM_FUEL_TRIM_1 0x07 -#define PID_SHORT_TERM_FUEL_TRIM_2 0x08 -#define PID_LONG_TERM_FUEL_TRIM_2 0x09 -#define PID_FUEL_PRESSURE 0x0A -#define PID_INTAKE_MAP 0x0B -#define PID_RPM 0x0C -#define PID_SPEED 0x0D -#define PID_TIMING_ADVANCE 0x0E -#define PID_INTAKE_TEMP 0x0F -#define PID_MAF_FLOW 0x10 -#define PID_THROTTLE 0x11 -#define PID_AUX_INPUT 0x1E -#define PID_RUNTIME 0x1F -#define PID_DISTANCE_WITH_MIL 0x21 -#define PID_COMMANDED_EGR 0x2C -#define PID_EGR_ERROR 0x2D -#define PID_COMMANDED_EVAPORATIVE_PURGE 0x2E -#define PID_FUEL_LEVEL 0x2F -#define PID_WARMS_UPS 0x30 -#define PID_DISTANCE 0x31 -#define PID_EVAP_SYS_VAPOR_PRESSURE 0x32 -#define PID_BAROMETRIC 0x33 -#define PID_CATALYST_TEMP_B1S1 0x3C -#define PID_CATALYST_TEMP_B2S1 0x3D -#define PID_CATALYST_TEMP_B1S2 0x3E -#define PID_CATALYST_TEMP_B2S2 0x3F -#define PID_CONTROL_MODULE_VOLTAGE 0x42 -#define PID_ABSOLUTE_ENGINE_LOAD 0x43 -#define PID_AIR_FUEL_EQUIV_RATIO 0x44 -#define PID_RELATIVE_THROTTLE_POS 0x45 -#define PID_AMBIENT_TEMP 0x46 -#define PID_ABSOLUTE_THROTTLE_POS_B 0x47 -#define PID_ABSOLUTE_THROTTLE_POS_C 0x48 -#define PID_ACC_PEDAL_POS_D 0x49 -#define PID_ACC_PEDAL_POS_E 0x4A -#define PID_ACC_PEDAL_POS_F 0x4B -#define PID_COMMANDED_THROTTLE_ACTUATOR 0x4C -#define PID_TIME_WITH_MIL 0x4D -#define PID_TIME_SINCE_CODES_CLEARED 0x4E -#define PID_ETHANOL_FUEL 0x52 -#define PID_FUEL_RAIL_PRESSURE 0x59 -#define PID_HYBRID_BATTERY_PERCENTAGE 0x5B -#define PID_ENGINE_OIL_TEMP 0x5C -#define PID_FUEL_INJECTION_TIMING 0x5D -#define PID_ENGINE_FUEL_RATE 0x5E -#define PID_ENGINE_TORQUE_DEMANDED 0x61 -#define PID_ENGINE_TORQUE_PERCENTAGE 0x62 -#define PID_ENGINE_REF_TORQUE 0x63 - -// non-OBD/custom PIDs (no mode number) -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -// custom PIDs for calculated data -#define PID_TRIP_DISTANCE 0x30 - -typedef enum { - PROTO_AUTO = 0, - PROTO_ISO_9141_2 = 3, - PROTO_KWP2000_5KBPS = 4, - PROTO_KWP2000_FAST = 5, - PROTO_CAN_11B_500K = 6, - PROTO_CAN_29B_500K = 7, - PROTO_CAN_29B_250K = 8, - PROTO_CAN_11B_250K = 9, -} OBD_PROTOCOLS; - -// states -typedef enum { - OBD_DISCONNECTED = 0, - OBD_CONNECTING = 1, - OBD_CONNECTED = 2, - OBD_FAILED = 3 -} OBD_STATES; - -uint16_t hex2uint16(const char *p); -uint8_t hex2uint8(const char *p); - -class COBD -{ -public: - COBD():dataMode(1),errors(0),m_state(OBD_DISCONNECTED) {} - // begin serial UART, return the version number on success and 0 on failure - virtual byte begin(); - // initialize OBD-II connection - virtual bool init(OBD_PROTOCOLS protocol = PROTO_AUTO); - // un-initialize OBD-II connection - virtual void end(); - // set serial baud rate - virtual bool setBaudRate(unsigned long baudrate); - // get connection state - virtual OBD_STATES getState() { return m_state; } - // read specified OBD-II PID value - virtual bool readPID(byte pid, int& result); - // read multiple (up to 8) OBD-II PID values, return number of values obtained - virtual byte readPID(const byte pid[], byte count, int result[]); - // set device into low power mode - virtual void enterLowPowerMode(); - // wake up device from low power mode - virtual void leaveLowPowerMode(); - // send AT command and receive response - virtual byte sendCommand(const char* cmd, char* buf, byte bufsize, int timeout = OBD_TIMEOUT_LONG); - // read diagnostic trouble codes (return number of DTCs read) - virtual byte readDTC(uint16_t codes[], byte maxCodes = 1); - // clear diagnostic trouble code - virtual void clearDTC(); - // get battery voltage (works without ECU) - virtual float getVoltage(); - // get VIN as a string, buffer length should be >= OBD_RECV_BUF_SIZE - virtual bool getVIN(char* buffer, byte bufsize); - // initialize MEMS sensor - virtual bool memsInit(); - // read out MEMS data (acc for accelerometer, gyr for gyroscope, temp in 0.1 celcius degree) - virtual bool memsRead(int16_t* acc, int16_t* gyr = 0, int16_t* mag = 0, int16_t* temp = 0); - // send query for specified PID - virtual void sendQuery(byte pid); - // retrive and parse the response of specifie PID - virtual bool getResult(byte& pid, int& result); - // determine if the PID is supported - virtual bool isValidPID(byte pid); - // get adapter firmware version - virtual byte getVersion(); - // set current PID mode - byte dataMode; - // number of subsequent errors - byte errors; - // bit map of supported PIDs - byte pidmap[4 * 4]; -protected: - virtual char* getResponse(byte& pid, char* buffer, byte bufsize); - virtual byte receive(char* buffer, byte bufsize, int timeout = OBD_TIMEOUT_SHORT); - virtual void write(const char* s); - virtual void dataIdleLoop() {} - void recover(); - void debugOutput(const char* s); - int normalizeData(byte pid, char* data); - OBD_STATES m_state; -private: - virtual uint8_t getPercentageValue(char* data) - { - return (uint16_t)hex2uint8(data) * 100 / 255; - } - virtual uint16_t getLargeValue(char* data) - { - return hex2uint16(data); - } - virtual uint8_t getSmallValue(char* data) - { - return hex2uint8(data); - } - virtual int16_t getTemperatureValue(char* data) - { - return (int)hex2uint8(data) - 40; - } - char* getResultValue(char* buf); -}; - -#define I2C_ADDR 0x62 - -#define MAX_PAYLOAD_SIZE 32 -#define MAX_PIDS 8 - -#define CMD_QUERY_STATUS 0x10 -#define CMD_SEND_AT_COMMAND 0x11 -#define CMD_APPLY_OBD_PIDS 0x12 -#define CMD_LOAD_OBD_DATA 0x13 -#define CMD_GPS_SETUP 0x14 -#define CMD_GPS_QUERY 0x15 - -typedef struct { - uint16_t age; - uint16_t value; -} PID_INFO; - -typedef struct { - uint16_t time; - uint8_t message; - uint8_t data; -} COMMAND_BLOCK; - -class COBDI2C : public COBD { -public: - byte begin(); - void end(); - void write(const char* s); - // API not applicable - bool setBaudRate(unsigned long baudrate) { return false; } - // Asynchronized access API - void setQueryPID(byte pid, byte obdPid[]); - void applyQueryPIDs(byte obdPid[]); - void loadQueryData(PID_INFO obdInfo[]); - // initialize MEMS sensor - bool memsInit(); - // read out MEMS sensor data (acc for accelerometer, gyr for gyroscope, temp in 0.1 celcius degree) - bool memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0); -protected: - byte receive(char* buffer, byte bufsize, int timeout = OBD_TIMEOUT_SHORT); - bool sendCommandBlock(byte cmd, uint8_t data = 0, byte* payload = 0, byte payloadBytes = 0); -private: - bool MPU6050_read(int start, uint8_t* buffer, int size); - bool MPU6050_write(int start, const uint8_t* pData, int size); - bool MPU6050_write_reg(int reg, uint8_t data); - void MPU6050_store(int* pData, uint8_t data_l, uint8_t data_h); -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_i2c_test/obd_i2c_test.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_i2c_test/obd_i2c_test.ino deleted file mode 100644 index 810aacf..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_i2c_test/obd_i2c_test.ino +++ /dev/null @@ -1,155 +0,0 @@ -/************************************************************************* -* Testing sketch for Freematics OBD-II I2C Adapter -* Reads and prints several OBD-II PIDs value and MEMS sensor data -* Distributed under GPL v2.0 -* Visit http://freematics.com for more information -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include - -COBDI2C obd; -bool hasMEMS; - -void testOut() -{ - static const char cmds[][6] = {"ATZ\r", "ATH0\r", "ATRV\r", "0100\r", "010C\r", "0902\r"}; - char buf[128]; - - for (byte i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { - const char *cmd = cmds[i]; - Serial.print("Sending "); - Serial.println(cmd); - if (obd.sendCommand(cmd, buf, sizeof(buf))) { - char *p = strstr(buf, cmd); - if (p) - p += strlen(cmd); - else - p = buf; - while (*p == '\r') p++; - while (*p) { - Serial.write(*p); - if (*p == '\r' && *(p + 1) != '\r') - Serial.write('\n'); - p++; - } - } else { - Serial.println("Timeout"); - } - delay(1000); - } - Serial.println(); -} - -void readMEMS() -{ - int acc[3]; - int gyro[3]; - int temp; - - if (!obd.memsRead(acc, gyro, 0, &temp)) return; - - Serial.print('['); - Serial.print(millis()); - Serial.print(']'); - - Serial.print("ACC:"); - Serial.print(acc[0]); - Serial.print('/'); - Serial.print(acc[1]); - Serial.print('/'); - Serial.print(acc[2]); - - Serial.print(" GYRO:"); - Serial.print(gyro[0]); - Serial.print('/'); - Serial.print(gyro[1]); - Serial.print('/'); - Serial.print(gyro[2]); - - Serial.print(" TEMP:"); - Serial.print((float)temp / 10, 1); - Serial.println("C"); -} - -void readPIDs() -{ - static const byte pidlist[] = {PID_ENGINE_LOAD, PID_COOLANT_TEMP, PID_RPM, PID_SPEED, PID_TIMING_ADVANCE, PID_INTAKE_TEMP, PID_THROTTLE, PID_FUEL_LEVEL}; - Serial.print('['); - Serial.print(millis()); - Serial.print(']'); - for (byte i = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i++) { - byte pid = pidlist[i]; - bool valid = obd.isValidPID(pid); - Serial.print((int)pid | 0x100, HEX); - Serial.print('='); - if (valid) { - int value; - if (obd.readPID(pid, value)) { - Serial.print(value); - } - } - Serial.print(' '); - } - Serial.println(); -} - -void readBatteryVoltage() -{ - Serial.print('['); - Serial.print(millis()); - Serial.print(']'); - Serial.print("Battery:"); - Serial.print(obd.getVoltage(), 1); - Serial.println('V'); -} - -void setup() { - Serial.begin(115200); - delay(500); - obd.begin(); - - hasMEMS = obd.memsInit(); - Serial.print("MEMS:"); - Serial.println(hasMEMS ? "Yes" : "No"); - - // send some commands for testing and show response for debugging purpose - testOut(); - - // initialize OBD-II adapter - do { - Serial.println("Init..."); - } while (!obd.init()); - - char buf[64]; - if (obd.getVIN(buf, sizeof(buf))) { - Serial.print("VIN:"); - Serial.println(buf); - } - - unsigned int codes[6]; - byte dtcCount = obd.readDTC(codes, 6); - if (dtcCount == 0) { - Serial.println("No DTC"); - } else { - Serial.print(dtcCount); - Serial.print(" DTC:"); - for (byte n = 0; n < dtcCount; n++) { - Serial.print(' '); - Serial.print(codes[n], HEX); - } - Serial.println(); - } - delay(3000); -} - -void loop() { - readPIDs(); - readBatteryVoltage(); - if (hasMEMS) { - readMEMS(); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_uart_test/obd_uart_test.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_uart_test/obd_uart_test.ino deleted file mode 100644 index 1f58405..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/obd_uart_test/obd_uart_test.ino +++ /dev/null @@ -1,189 +0,0 @@ -/************************************************************************* -* Testing sketch for Freematics OBD-II UART Adapter -* Reads and prints several OBD-II PIDs value -* Distributed under GPL v2.0 -* Visit http://freematics.com for more information -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include - -// On Arduino Leonardo, Micro, MEGA or DUE, hardware serial can be used for output -// as OBD-II UART adapter uses to Serial1 -// On Arduino UNO and those have no Serial1, we use software serial for output -// as OBD-II UART adapter uses to Serial -SoftwareSerial mySerial(A2, A3); -//#define mySerial Serial - -COBD obd; -bool hasMEMS; - -void testOut() -{ - static const char cmds[][6] = {"ATZ\r", "ATI\r", "ATH0\r", "ATRV\r", "0100\r", "010C\r", "0902\r"}; - char buf[128]; - - for (byte i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { - const char *cmd = cmds[i]; - mySerial.print("Sending "); - mySerial.println(cmd); - if (obd.sendCommand(cmd, buf, sizeof(buf))) { - char *p = strstr(buf, cmd); - if (p) - p += strlen(cmd); - else - p = buf; - while (*p == '\r') p++; - while (*p) { - mySerial.write(*p); - if (*p == '\r' && *(p + 1) != '\r') - mySerial.write('\n'); - p++; - } - mySerial.println(); - } else { - mySerial.println("Timeout"); - } - delay(1000); - } - mySerial.println(); -} - -void readPIDSingle() -{ - int value; - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - mySerial.print("RPM="); - if (obd.readPID(PID_RPM, value)) { - mySerial.print(value); - } - mySerial.println(); -} - -void readPIDMultiple() -{ - static const byte pids[] = {PID_SPEED, PID_ENGINE_LOAD, PID_THROTTLE, PID_COOLANT_TEMP}; - int values[sizeof(pids)]; - if (obd.readPID(pids, sizeof(pids), values) == sizeof(pids)) { - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - for (byte i = 0; i < sizeof(pids) ; i++) { - mySerial.print((int)pids[i] | 0x100, HEX); - mySerial.print('='); - mySerial.print(values[i]); - mySerial.print(' '); - } - mySerial.println(); - } -} - -void readBatteryVoltage() -{ - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - mySerial.print("Battery:"); - mySerial.print(obd.getVoltage(), 1); - mySerial.println('V'); -} - -void readMEMS() -{ - int acc[3]; - int gyro[3]; - int temp; - - if (!obd.memsRead(acc, gyro, 0, &temp)) return; - - Serial.print('['); - Serial.print(millis()); - Serial.print(']'); - - Serial.print("ACC:"); - Serial.print(acc[0]); - Serial.print('/'); - Serial.print(acc[1]); - Serial.print('/'); - Serial.print(acc[2]); - - Serial.print(" GYRO:"); - Serial.print(gyro[0]); - Serial.print('/'); - Serial.print(gyro[1]); - Serial.print('/'); - Serial.print(gyro[2]); - - Serial.print(" TEMP:"); - Serial.print((float)temp / 10, 1); - Serial.println("C"); -} - -void setup() -{ - mySerial.begin(115200); - while (!mySerial); - - // this will begin serial - byte version = obd.begin(); - - mySerial.print("Freematics OBD-II Adapter "); - if (version > 0) { - mySerial.print("Ver. "); - mySerial.print(version / 10); - mySerial.print('.'); - mySerial.println(version % 10); - } else { - mySerial.println("not detected"); - for (;;); - } - delay(1000); - - // send some commands for testing and show response for debugging purpose - testOut(); - - hasMEMS = obd.memsInit(); - mySerial.print("MEMS:"); - mySerial.println(hasMEMS ? "Yes" : "No"); - - // initialize OBD-II adapter - do { - mySerial.println("Init..."); - } while (!obd.init()); - - char buf[64]; - if (obd.getVIN(buf, sizeof(buf))) { - mySerial.print("VIN:"); - mySerial.println(buf); - } - - unsigned int codes[6]; - byte dtcCount = obd.readDTC(codes, 6); - if (dtcCount == 0) { - mySerial.println("No DTC"); - } else { - mySerial.print(dtcCount); - mySerial.print(" DTC:"); - for (byte n = 0; n < dtcCount; n++) { - mySerial.print(' '); - mySerial.print(codes[n], HEX); - } - mySerial.println(); - } - delay(5000); -} - - -void loop() -{ - readPIDSingle(); - readPIDMultiple(); - readBatteryVoltage(); - if (hasMEMS) { - readMEMS(); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_i2c/rpm_led_i2c.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_i2c/rpm_led_i2c.ino deleted file mode 100644 index 619ae32..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_i2c/rpm_led_i2c.ino +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************* -* Sample sketch based on OBD-II library for Arduino -* Distributed under GPL v2.0 -* Visit http://freematics.com for more information -* (C)2012-2014 Stanley Huang -*************************************************************************/ - -#include -#include -#include - -COBDI2C obd; - -void setup() -{ - // we'll use the debug LED as output - pinMode(13, OUTPUT); - // start communication with OBD-II UART adapter - obd.begin(); - // initiate OBD-II connection until success - while (!obd.init()); -} - -void loop() -{ - int value; - if (obd.readPID(PID_RPM, value)) { - // RPM is successfully read and its value stored in variable 'value' - // light on LED when RPM exceeds 3000 - digitalWrite(13, value > 3000 ? HIGH : LOW); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_uart/rpm_led_uart.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_uart/rpm_led_uart.ino deleted file mode 100644 index a248307..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD/examples/rpm_led_uart/rpm_led_uart.ino +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************* -* Sample sketch based on OBD-II library for Arduino -* Distributed under GPL v2.0 -* Visit http://freematics.com for more information -* (C)2012-2014 Stanley Huang -*************************************************************************/ - -#include -#include -#include - -COBD obd; - -void setup() -{ - // we'll use the debug LED as output - pinMode(13, OUTPUT); - // start communication with OBD-II UART adapter - obd.begin(); - // initiate OBD-II connection until success - while (!obd.init()); -} - -void loop() -{ - int value; - if (obd.readPID(PID_RPM, value)) { - // RPM is successfully read and its value stored in variable 'value' - // light on LED when RPM exceeds 3000 - digitalWrite(13, value > 3000 ? HIGH : LOW); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.cpp deleted file mode 100644 index 76968b9..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.cpp +++ /dev/null @@ -1,654 +0,0 @@ -/************************************************************************* -* Arduino Library for Freematics OBD-II UART Adapter -* Distributed under BSD License -* Visit http://freematics.com for more information -* (C)2012-2016 Stanley Huang -*************************************************************************/ - -#include "OBD2UART.h" - -//#define DEBUG Serial - -uint16_t hex2uint16(const char *p) -{ - char c = *p; - uint16_t i = 0; - for (uint8_t n = 0; c && n < 4; c = *(++p)) { - if (c >= 'A' && c <= 'F') { - c -= 7; - } else if (c>='a' && c<='f') { - c -= 39; - } else if (c == ' ' && n == 2) { - continue; - } else if (c < '0' || c > '9') { - break; - } - i = (i << 4) | (c & 0xF); - n++; - } - return i; -} - -byte hex2uint8(const char *p) -{ - byte c1 = *p; - byte c2 = *(p + 1); - if (c1 >= 'A' && c1 <= 'F') - c1 -= 7; - else if (c1 >='a' && c1 <= 'f') - c1 -= 39; - else if (c1 < '0' || c1 > '9') - return 0; - - if (c2 == 0) - return (c1 & 0xf); - else if (c2 >= 'A' && c2 <= 'F') - c2 -= 7; - else if (c2 >= 'a' && c2 <= 'f') - c2 -= 39; - else if (c2 < '0' || c2 > '9') - return 0; - - return c1 << 4 | (c2 & 0xf); -} - -/************************************************************************* -* OBD-II UART Adapter -*************************************************************************/ - -byte COBD::sendCommand(const char* cmd, char* buf, byte bufsize, int timeout) -{ - write(cmd); - idleTasks(); - return receive(buf, bufsize, timeout); -} - -bool COBD::readPID(byte pid, int& result) -{ - char cmd[8]; - sprintf(cmd, "%02X%02X\r", dataMode, pid); - write(cmd); - // receive and parse the response - return getResult(pid, result); -} - -byte COBD::readPID(const byte pid[], byte count, int result[]) -{ - byte results = 0; - for (byte n = 0; n < count; n++) { - if (readPID(pid[n], result[n])) { - results++; - } - } - return results; -} - -byte COBD::readDTC(uint16_t codes[], byte maxCodes) -{ - /* - Response example: - 0: 43 04 01 08 01 09 - 1: 01 11 01 15 00 00 00 - */ - byte codesRead = 0; - for (byte n = 0; n < 6; n++) { - char buffer[128]; - sprintf_P(buffer, n == 0 ? PSTR("03\r") : PSTR("03%02X\r"), n); - write(buffer); - if (receive(buffer, sizeof(buffer)) > 0) { - if (!strstr_P(buffer, PSTR("NO DATA"))) { - char *p = strstr(buffer, "43"); - if (p) { - while (codesRead < maxCodes && *p) { - p += 6; - if (*p == '\r') { - p = strchr(p, ':'); - if (!p) break; - p += 2; - } - uint16_t code = hex2uint16(p); - if (code == 0) break; - codes[codesRead++] = code; - } - } - break; - } - } - } - return codesRead; -} - -void COBD::clearDTC() -{ - char buffer[32]; - write("04\r"); - receive(buffer, sizeof(buffer)); -} - -void COBD::write(const char* s) -{ -#ifdef DEBUG - DEBUG.print("<<<"); - DEBUG.println(s); -#endif - OBDUART.write(s); -} - -int COBD::normalizeData(byte pid, char* data) -{ - int result; - switch (pid) { - case PID_RPM: - case PID_EVAP_SYS_VAPOR_PRESSURE: // kPa - result = getLargeValue(data) >> 2; - break; - case PID_FUEL_PRESSURE: // kPa - result = getSmallValue(data) * 3; - break; - case PID_COOLANT_TEMP: - case PID_INTAKE_TEMP: - case PID_AMBIENT_TEMP: - case PID_ENGINE_OIL_TEMP: - result = getTemperatureValue(data); - break; - case PID_THROTTLE: - case PID_COMMANDED_EGR: - case PID_COMMANDED_EVAPORATIVE_PURGE: - case PID_FUEL_LEVEL: - case PID_RELATIVE_THROTTLE_POS: - case PID_ABSOLUTE_THROTTLE_POS_B: - case PID_ABSOLUTE_THROTTLE_POS_C: - case PID_ACC_PEDAL_POS_D: - case PID_ACC_PEDAL_POS_E: - case PID_ACC_PEDAL_POS_F: - case PID_COMMANDED_THROTTLE_ACTUATOR: - case PID_ENGINE_LOAD: - case PID_ABSOLUTE_ENGINE_LOAD: - case PID_ETHANOL_FUEL: - case PID_HYBRID_BATTERY_PERCENTAGE: - result = getPercentageValue(data); - break; - case PID_MAF_FLOW: // grams/sec - result = getLargeValue(data) / 100; - break; - case PID_TIMING_ADVANCE: - result = (int)(getSmallValue(data) / 2) - 64; - break; - case PID_DISTANCE: // km - case PID_DISTANCE_WITH_MIL: // km - case PID_TIME_WITH_MIL: // minute - case PID_TIME_SINCE_CODES_CLEARED: // minute - case PID_RUNTIME: // second - case PID_FUEL_RAIL_PRESSURE: // kPa - case PID_ENGINE_REF_TORQUE: // Nm - result = getLargeValue(data); - break; - case PID_CONTROL_MODULE_VOLTAGE: // V - result = getLargeValue(data) / 1000; - break; - case PID_ENGINE_FUEL_RATE: // L/h - result = getLargeValue(data) / 20; - break; - case PID_ENGINE_TORQUE_DEMANDED: // % - case PID_ENGINE_TORQUE_PERCENTAGE: // % - result = (int)getSmallValue(data) - 125; - break; - case PID_SHORT_TERM_FUEL_TRIM_1: - case PID_LONG_TERM_FUEL_TRIM_1: - case PID_SHORT_TERM_FUEL_TRIM_2: - case PID_LONG_TERM_FUEL_TRIM_2: - case PID_EGR_ERROR: - result = ((int)getSmallValue(data) - 128) * 100 / 128; - break; - case PID_FUEL_INJECTION_TIMING: - result = ((int32_t)getLargeValue(data) - 26880) / 128; - break; - case PID_CATALYST_TEMP_B1S1: - case PID_CATALYST_TEMP_B2S1: - case PID_CATALYST_TEMP_B1S2: - case PID_CATALYST_TEMP_B2S2: - result = getLargeValue(data) / 10 - 40; - break; - case PID_AIR_FUEL_EQUIV_RATIO: // 0~200 - result = (long)getLargeValue(data) * 200 / 65536; - break; - default: - result = getSmallValue(data); - } - return result; -} - -char* COBD::getResponse(byte& pid, char* buffer, byte bufsize) -{ - while (receive(buffer, bufsize) > 0) { - char *p = buffer; - while ((p = strstr(p, "41 "))) { - p += 3; - byte curpid = hex2uint8(p); - if (pid == 0) pid = curpid; - if (curpid == pid) { - errors = 0; - p += 2; - if (*p == ' ') - return p + 1; - } - } - } - return 0; -} - -bool COBD::getResult(byte& pid, int& result) -{ - char buffer[64]; - char* data = getResponse(pid, buffer, sizeof(buffer)); - if (!data) { - recover(); - errors++; - return false; - } - result = normalizeData(pid, data); - return true; -} - -void COBD::enterLowPowerMode() -{ - char buf[32]; - sendCommand("ATLP\r", buf, sizeof(buf)); -} - -void COBD::leaveLowPowerMode() -{ - // simply send any command to wake the device up - char buf[32]; - sendCommand("ATI\r", buf, sizeof(buf), 1000); -} - -char* COBD::getResultValue(char* buf) -{ - char* p = buf; - for (;;) { - if (isdigit(*p) || *p == '-') { - return p; - } - p = strchr(p, '\r'); - if (!p) break; - if (*(++p) == '\n') p++; - } - return 0; -} - -float COBD::getVoltage() -{ - char buf[32]; - if (sendCommand("ATRV\r", buf, sizeof(buf)) > 0) { - char* p = getResultValue(buf); - if (p) return (float)atof(p); - } - return 0; -} - -bool COBD::getVIN(char* buffer, byte bufsize) -{ - for (byte n = 0; n < 5; n++) { - if (sendCommand("0902\r", buffer, bufsize)) { - int len = hex2uint16(buffer); - char *p = strstr_P(buffer + 4, PSTR("0: 49 02 01")); - if (p) { - char *q = buffer; - p += 11; // skip the header - do { - while (*(++p) == ' '); - for (;;) { - *(q++) = hex2uint8(p); - while (*p && *p != ' ') p++; - while (*p == ' ') p++; - if (!*p || *p == '\r') break; - } - p = strchr(p, ':'); - } while(p); - *q = 0; - if (q - buffer == len - 3) { - return true; - } - } - } - delay(100); - } - return false; -} - -bool COBD::isValidPID(byte pid) -{ - if (pid >= 0x7f) - return true; - pid--; - byte i = pid >> 3; - byte b = 0x80 >> (pid & 0x7); - return (pidmap[i] & b) != 0; -} - -byte COBD::begin() -{ - long baudrates[] = {115200, 38400}; - byte version = 0; - for (byte n = 0; n < sizeof(baudrates) / sizeof(baudrates[0]); n++) { -#ifndef ESP32 - OBDUART.begin(baudrates[n]); -#else - OBDUART.begin(baudrates[n], SERIAL_8N1, 16, 17); -#endif - version = getVersion(); - if (version != 0) break; - OBDUART.end(); - } - return version; -} - -byte COBD::getVersion() -{ - byte version = 0; - for (byte n = 0; n < 3; n++) { - char buffer[32]; - if (sendCommand("ATI\r", buffer, sizeof(buffer), 200)) { - char *p = strchr(buffer, ' '); - if (p) { - p += 2; - version = (*p - '0') * 10 + (*(p + 2) - '0'); - break; - } - } - } - return version; -} - -int COBD::receive(char* buffer, int bufsize, unsigned int timeout) -{ - unsigned char n = 0; - unsigned long startTime = millis(); - char c = 0; - for (;;) { - if (OBDUART.available()) { - c = OBDUART.read(); - if (!buffer) { - n++; - } else if (n < bufsize - 1) { - if (c == '.' && n > 2 && buffer[n - 1] == '.' && buffer[n - 2] == '.') { - // waiting siginal - n = 0; - timeout = OBD_TIMEOUT_LONG; - } else { - if (c == '\r' || c == '\n' || c == ' ') { - if (n == 0 || buffer[n - 1] == '\r' || buffer[n - 1] == '\n') continue; - } - buffer[n++] = c; - } - } - } else { - if (c == '>') { - // prompt char received - break; - } - if ((int)(millis() - startTime) > timeout) { - // timeout - break; - } - idleTasks(); - } - } - if (buffer) { - buffer[n] = 0; - } -#ifdef DEBUG - DEBUG.print(">>>"); - DEBUG.println(buffer); -#endif - return n; -} - -void COBD::recover() -{ - sendCommand("\r", 0, 0); -} - -bool COBD::init(OBD_PROTOCOLS protocol) -{ - const char *initcmd[] = {"ATZ\r", "ATE0\r", "ATH0\r"}; - char buffer[64]; - byte stage; - - m_state = OBD_DISCONNECTED; - - for (byte n = 0; n < 2; n++) { - stage = 0; - if (n != 0) reset(); - for (byte i = 0; i < sizeof(initcmd) / sizeof(initcmd[0]); i++) { - delay(10); - if (!sendCommand(initcmd[i], buffer, sizeof(buffer), OBD_TIMEOUT_SHORT)) { - continue; - } - } - stage = 1; - if (protocol != PROTO_AUTO) { - sprintf(buffer, "ATSP%u\r", protocol); - delay(10); - if (!sendCommand(buffer, buffer, sizeof(buffer), OBD_TIMEOUT_SHORT) || !strstr(buffer, "OK")) { - continue; - } - } - stage = 2; - delay(10); - if (!sendCommand("010D\r", buffer, sizeof(buffer), OBD_TIMEOUT_LONG) || checkErrorMessage(buffer)) { - continue; - } - stage = 3; - // load pid map - memset(pidmap, 0, sizeof(pidmap)); - bool success = false; - for (byte i = 0; i < 4; i++) { - byte pid = i * 0x20; - sprintf(buffer, "%02X%02X\r", dataMode, pid); - delay(10); - write(buffer); - if (receive(buffer, sizeof(buffer), OBD_TIMEOUT_LONG) > 0) { - if (checkErrorMessage(buffer)) { - break; - } - char *p = buffer; - while ((p = strstr(p, "41 "))) { - p += 3; - if (hex2uint8(p) == pid) { - p += 2; - for (byte n = 0; n < 4 && *(p + n * 3) == ' '; n++) { - pidmap[i * 4 + n] = hex2uint8(p + n * 3 + 1); - } - success = true; - } - } - } else { - break; - } - } - if (success) { - stage = 0xff; - break; - } - } - if (stage == 0xff) { - m_state = OBD_CONNECTED; - errors = 0; - return true; - } else { -#ifdef DEBUG - Serial.print("Stage:"); - Serial.println(stage); -#endif - reset(); - return false; - } -} - -void COBD::end() -{ - m_state = OBD_DISCONNECTED; - OBDUART.end(); -} - -bool COBD::setBaudRate(unsigned long baudrate) -{ - OBDUART.print("ATBR1 "); - OBDUART.print(baudrate); - OBDUART.print('\r'); - delay(50); - OBDUART.end(); - OBDUART.begin(baudrate); - recover(); - return true; -} - -void COBD::reset() -{ - char buf[32]; - sendCommand("ATR\r", buf, sizeof(buf)); - delay(3000); - sendCommand("ATZ\r", buf, sizeof(buf)); -} - -void COBD::uninit() -{ - char buf[32]; - sendCommand("ATPC\r", buf, sizeof(buf)); -} - -byte COBD::checkErrorMessage(const char* buffer) -{ - const char *errmsg[] = {"UNABLE", "ERROR", "TIMEOUT", "NO DATA"}; - for (byte i = 0; i < sizeof(errmsg) / sizeof(errmsg[0]); i++) { - if (strstr(buffer, errmsg[i])) return i + 1; - } - return 0; -} - -uint8_t COBD::getPercentageValue(char* data) -{ - return (uint16_t)hex2uint8(data) * 100 / 255; -} - -uint16_t COBD::getLargeValue(char* data) -{ - return hex2uint16(data); -} - -uint8_t COBD::getSmallValue(char* data) -{ - return hex2uint8(data); -} - -int16_t COBD::getTemperatureValue(char* data) -{ - return (int)hex2uint8(data) - 40; -} - -bool COBD::memsInit(bool fusion) -{ - char buf[16]; - if (sendCommand("ATTEMP\r", buf, sizeof(buf)) <= 0 || strchr(buf, '?')) - return false; - if (fusion) { - m_fusion = true; - return sendCommand("ATQU1\r", buf, sizeof(buf)); - } else { - if (m_fusion) { - m_fusion = false; - sendCommand("ATQU0\r", buf, sizeof(buf)); - } - return true; - } -} - -bool COBD::memsRead(int16_t* acc, int16_t* gyr, int16_t* mag, int16_t* temp) -{ - char buf[64]; - bool success; - if (acc) { - success = false; - if (sendCommand("ATACL\r", buf, sizeof(buf)) > 0) do { - char* p = getResultValue(buf); - if (!p) break; - acc[0] = atoi(p++); - if (!(p = strchr(p, ','))) break; - acc[1] = atoi(++p); - if (!(p = strchr(p, ','))) break; - acc[2] = atoi(++p); - success = true; - } while (0); - if (!success) return false; - } - if (gyr) { - success = false; - if (sendCommand("ATGYRO\r", buf, sizeof(buf)) > 0) do { - char* p = getResultValue(buf); - if (!p) break; - gyr[0] = atoi(p++); - if (!(p = strchr(p, ','))) break; - gyr[1] = atoi(++p); - if (!(p = strchr(p, ','))) break; - gyr[2] = atoi(++p); - success = true; - } while (0); - if (!success) return false; - } - if (mag) { - success = false; - if (sendCommand("ATMAG\r", buf, sizeof(buf)) > 0) do { - char* p = getResultValue(buf); - if (!p) break; - mag[0] = atoi(p++); - if (!(p = strchr(p, ','))) break; - mag[1] = atoi(++p); - if (!(p = strchr(p, ','))) break; - mag[2] = atoi(++p); - success = true; - } while (0); - if (!success) return false; - } - if (temp) { - success = false; - if (sendCommand("ATTEMP\r", buf, sizeof(buf)) > 0) { - char* p = getResultValue(buf); - if (p) { - *temp = (atoi(p) + 12412) / 34; - success = true; - } - } - if (!success) return false; - } - return true; -} - -bool COBD::memsOrientation(float& yaw, float& pitch, float& roll) -{ - char buf[64]; - bool success = false; - if (sendCommand("ATORI\r", buf, sizeof(buf)) > 0) do { - char* p = getResultValue(buf); - if (!p) break; - yaw = (float)atof(p++); - if (!(p = strchr(p, ','))) break; - pitch = (float)atoi(++p); - if (!(p = strchr(p, ','))) break; - roll = (float) atof(++p); - success = true; - } while (0); - return success; -} - -#ifdef DEBUG -void COBD::debugOutput(const char *s) -{ - DEBUG.print('['); - DEBUG.print(millis()); - DEBUG.print(']'); - DEBUG.print(s); -} -#endif - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.h deleted file mode 100644 index 2674274..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/OBD2UART.h +++ /dev/null @@ -1,177 +0,0 @@ -/************************************************************************* -* Arduino Library for Freematics OBD-II UART Adapter -* Distributed under BSD License -* Visit http://freematics.com for more information -* (C)2012-2016 Stanley Huang -*************************************************************************/ - -#include - -#define OBD_TIMEOUT_SHORT 1000 /* ms */ -#define OBD_TIMEOUT_LONG 10000 /* ms */ - -#ifndef OBDUART -#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168P__) -#define OBDUART Serial -#else -#define OBDUART Serial1 -#endif -#endif - -#ifdef ESP32 -extern HardwareSerial Serial1; -#endif - -// Mode 1 PIDs -#define PID_ENGINE_LOAD 0x04 -#define PID_COOLANT_TEMP 0x05 -#define PID_SHORT_TERM_FUEL_TRIM_1 0x06 -#define PID_LONG_TERM_FUEL_TRIM_1 0x07 -#define PID_SHORT_TERM_FUEL_TRIM_2 0x08 -#define PID_LONG_TERM_FUEL_TRIM_2 0x09 -#define PID_FUEL_PRESSURE 0x0A -#define PID_INTAKE_MAP 0x0B -#define PID_RPM 0x0C -#define PID_SPEED 0x0D -#define PID_TIMING_ADVANCE 0x0E -#define PID_INTAKE_TEMP 0x0F -#define PID_MAF_FLOW 0x10 -#define PID_THROTTLE 0x11 -#define PID_AUX_INPUT 0x1E -#define PID_RUNTIME 0x1F -#define PID_DISTANCE_WITH_MIL 0x21 -#define PID_COMMANDED_EGR 0x2C -#define PID_EGR_ERROR 0x2D -#define PID_COMMANDED_EVAPORATIVE_PURGE 0x2E -#define PID_FUEL_LEVEL 0x2F -#define PID_WARMS_UPS 0x30 -#define PID_DISTANCE 0x31 -#define PID_EVAP_SYS_VAPOR_PRESSURE 0x32 -#define PID_BAROMETRIC 0x33 -#define PID_CATALYST_TEMP_B1S1 0x3C -#define PID_CATALYST_TEMP_B2S1 0x3D -#define PID_CATALYST_TEMP_B1S2 0x3E -#define PID_CATALYST_TEMP_B2S2 0x3F -#define PID_CONTROL_MODULE_VOLTAGE 0x42 -#define PID_ABSOLUTE_ENGINE_LOAD 0x43 -#define PID_AIR_FUEL_EQUIV_RATIO 0x44 -#define PID_RELATIVE_THROTTLE_POS 0x45 -#define PID_AMBIENT_TEMP 0x46 -#define PID_ABSOLUTE_THROTTLE_POS_B 0x47 -#define PID_ABSOLUTE_THROTTLE_POS_C 0x48 -#define PID_ACC_PEDAL_POS_D 0x49 -#define PID_ACC_PEDAL_POS_E 0x4A -#define PID_ACC_PEDAL_POS_F 0x4B -#define PID_COMMANDED_THROTTLE_ACTUATOR 0x4C -#define PID_TIME_WITH_MIL 0x4D -#define PID_TIME_SINCE_CODES_CLEARED 0x4E -#define PID_ETHANOL_FUEL 0x52 -#define PID_FUEL_RAIL_PRESSURE 0x59 -#define PID_HYBRID_BATTERY_PERCENTAGE 0x5B -#define PID_ENGINE_OIL_TEMP 0x5C -#define PID_FUEL_INJECTION_TIMING 0x5D -#define PID_ENGINE_FUEL_RATE 0x5E -#define PID_ENGINE_TORQUE_DEMANDED 0x61 -#define PID_ENGINE_TORQUE_PERCENTAGE 0x62 -#define PID_ENGINE_REF_TORQUE 0x63 - -// non-OBD/custom PIDs (no mode number) -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -typedef enum { - PROTO_AUTO = 0, - PROTO_ISO_9141_2 = 3, - PROTO_KWP2000_5KBPS = 4, - PROTO_KWP2000_FAST = 5, - PROTO_CAN_11B_500K = 6, - PROTO_CAN_29B_500K = 7, - PROTO_CAN_29B_250K = 8, - PROTO_CAN_11B_250K = 9, -} OBD_PROTOCOLS; - -// states -typedef enum { - OBD_DISCONNECTED = 0, - OBD_CONNECTING = 1, - OBD_CONNECTED = 2, - OBD_FAILED = 3 -} OBD_STATES; - -uint16_t hex2uint16(const char *p); -uint8_t hex2uint8(const char *p); - -class COBD -{ -public: - // begin serial UART - virtual byte begin(); - // terminate communication channel - virtual void end(); - // initialize OBD-II connection - virtual bool init(OBD_PROTOCOLS protocol = PROTO_AUTO); - // reset OBD-II connection - virtual void reset(); - // un-initialize OBD-II connection - virtual void uninit(); - // set serial baud rate - virtual bool setBaudRate(unsigned long baudrate); - // get connection state - virtual OBD_STATES getState() { return m_state; } - // read specified OBD-II PID value - virtual bool readPID(byte pid, int& result); - // read multiple (up to 8) OBD-II PID values, return number of values obtained - virtual byte readPID(const byte pid[], byte count, int result[]); - // set device into low power mode - virtual void enterLowPowerMode(); - // wake up device from low power mode - virtual void leaveLowPowerMode(); - // send AT command and receive response (return bytes received) - virtual byte sendCommand(const char* cmd, char* buf, byte bufsize, int timeout = OBD_TIMEOUT_LONG); - // read diagnostic trouble codes (return number of DTCs read) - virtual byte readDTC(uint16_t codes[], byte maxCodes = 1); - // clear diagnostic trouble code - virtual void clearDTC(); - // get battery voltage (works without ECU) - virtual float getVoltage(); - // get VIN as a string, buffer length should be >= OBD_RECV_BUF_SIZE - virtual bool getVIN(char* buffer, byte bufsize); - // initialize MEMS sensor (enable or disable sensor fusion by quanterion algorithm) - virtual bool memsInit(bool fusion = false); - // read out MEMS data (acc for accelerometer, gyr for gyroscope, temp in 0.1 celcius degree) - virtual bool memsRead(int16_t* acc, int16_t* gyr = 0, int16_t* mag = 0, int16_t* temp = 0); - // get computed orientation values - virtual bool memsOrientation(float& yaw, float& pitch, float& roll); - // retrive and parse the response of specifie PID - virtual bool getResult(byte& pid, int& result); - // determine if the PID is supported - virtual bool isValidPID(byte pid); - // get adapter firmware version - virtual byte getVersion(); - // set current PID mode - byte dataMode = 1; - // occurrence of errors - byte errors = 0; - // bit map of supported PIDs - byte pidmap[4 * 4] = {0}; -protected: - virtual char* getResponse(byte& pid, char* buffer, byte bufsize); - virtual int receive(char* buffer, int bufsize, unsigned int timeout = OBD_TIMEOUT_SHORT); - virtual void write(const char* s); - virtual uint8_t getPercentageValue(char* data); - virtual uint16_t getLargeValue(char* data); - virtual uint8_t getSmallValue(char* data); - virtual int16_t getTemperatureValue(char* data); - virtual int normalizeData(byte pid, char* data); - virtual byte checkErrorMessage(const char* buffer); - virtual char* getResultValue(char* buf); - OBD_STATES m_state = OBD_DISCONNECTED; -private: - void recover(); - virtual void idleTasks() {} - bool m_fusion = false; -}; - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/obd_uart_test/obd_uart_test.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/obd_uart_test/obd_uart_test.ino deleted file mode 100644 index 4d30b0e..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/obd_uart_test/obd_uart_test.ino +++ /dev/null @@ -1,205 +0,0 @@ -/************************************************************************* -* Testing sketch for Freematics OBD-II UART Adapter V1/V2/V2.1 -* Performs AT command-set test -* Reads and prints several OBD-II PIDs value -* Reads and prints motion sensor data if available -* Distributed under BSD -* Visit https://freematics.com/products for more product information -* Written by Stanley Huang -*************************************************************************/ - -#include - -// On Arduino Leonardo, Micro, MEGA or DUE, hardware serial can be used for output as the adapter occupies Serial1 -// On Arduino UNO and those have no Serial1, we use software serial for output as the adapter uses Serial -#ifdef ARDUINO_AVR_UNO -#include -SoftwareSerial mySerial(A2, A3); -#else -#define mySerial Serial -#endif - -#if defined(ESP32) && !defined(Serial1) -HardwareSerial Serial1(1); -#endif - -COBD obd; -bool hasMEMS; - -void testATcommands() -{ - static const char cmds[][6] = {"ATZ\r", "ATI\r", "ATH0\r", "ATRV\r", "0100\r", "010C\r", "0902\r"}; - char buf[128]; - - for (byte i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { - const char *cmd = cmds[i]; - mySerial.print("Sending "); - mySerial.println(cmd); - if (obd.sendCommand(cmd, buf, sizeof(buf))) { - char *p = strstr(buf, cmd); - if (p) - p += strlen(cmd); - else - p = buf; - while (*p == '\r') p++; - while (*p) { - mySerial.write(*p); - if (*p == '\r' && *(p + 1) != '\r') - mySerial.write('\n'); - p++; - } - mySerial.println(); - } else { - mySerial.println("Timeout"); - } - delay(1000); - } - mySerial.println(); -} - -void readPIDSingle() -{ - int value; - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - mySerial.print("RPM="); - if (obd.readPID(PID_RPM, value)) { - mySerial.print(value); - } - mySerial.println(); -} - -void readPIDMultiple() -{ - static const byte pids[] = {PID_SPEED, PID_ENGINE_LOAD, PID_THROTTLE, PID_COOLANT_TEMP}; - int values[sizeof(pids)]; - if (obd.readPID(pids, sizeof(pids), values) == sizeof(pids)) { - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - for (byte i = 0; i < sizeof(pids) ; i++) { - mySerial.print((int)pids[i] | 0x100, HEX); - mySerial.print('='); - mySerial.print(values[i]); - mySerial.print(' '); - } - mySerial.println(); - } -} - -void readBatteryVoltage() -{ - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - mySerial.print("Battery:"); - mySerial.print(obd.getVoltage(), 1); - mySerial.println('V'); -} - -void readMEMS() -{ - int16_t acc[3] = {0}; - int16_t gyro[3] = {0}; - int16_t mag[3] = {0}; - int16_t temp = 0; - - if (!obd.memsRead(acc, gyro, mag, &temp)) return; - - mySerial.print('['); - mySerial.print(millis()); - mySerial.print(']'); - - mySerial.print("ACC:"); - mySerial.print(acc[0]); - mySerial.print('/'); - mySerial.print(acc[1]); - mySerial.print('/'); - mySerial.print(acc[2]); - - mySerial.print(" GYRO:"); - mySerial.print(gyro[0]); - mySerial.print('/'); - mySerial.print(gyro[1]); - mySerial.print('/'); - mySerial.print(gyro[2]); - - mySerial.print(" MAG:"); - mySerial.print(mag[0]); - mySerial.print('/'); - mySerial.print(mag[1]); - mySerial.print('/'); - mySerial.print(mag[2]); - - mySerial.print(" TEMP:"); - mySerial.print((float)temp / 10, 1); - mySerial.println("C"); -} - -void setup() -{ - mySerial.begin(115200); - while (!mySerial); - - for (;;) { - delay(1000); - byte version = obd.begin(); - mySerial.print("Freematics OBD-II Adapter "); - if (version > 0) { - mySerial.println("detected"); - mySerial.print("OBD firmware version "); - mySerial.print(version / 10); - mySerial.print('.'); - mySerial.println(version % 10); - break; - } else { - mySerial.println("not detected"); - } - } - - // send some commands for testing and show response for debugging purpose - testATcommands(); - - hasMEMS = obd.memsInit(); - mySerial.print("MEMS:"); - mySerial.println(hasMEMS ? "Yes" : "No"); - - // initialize OBD-II adapter - do { - mySerial.println("Connecting..."); - } while (!obd.init()); - mySerial.println("OBD connected!"); - - char buf[64]; - if (obd.getVIN(buf, sizeof(buf))) { - mySerial.print("VIN:"); - mySerial.println(buf); - } - - uint16_t codes[6]; - byte dtcCount = obd.readDTC(codes, 6); - if (dtcCount == 0) { - mySerial.println("No DTC"); - } else { - mySerial.print(dtcCount); - mySerial.print(" DTC:"); - for (byte n = 0; n < dtcCount; n++) { - mySerial.print(' '); - mySerial.print(codes[n], HEX); - } - mySerial.println(); - } - delay(5000); -} - -void loop() -{ - readPIDSingle(); - readPIDMultiple(); - readBatteryVoltage(); - if (hasMEMS) { - readMEMS(); - } -} - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/orientation_demo/orientation_demo.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/orientation_demo/orientation_demo.ino deleted file mode 100644 index e04949c..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/orientation_demo/orientation_demo.ino +++ /dev/null @@ -1,97 +0,0 @@ -/************************************************************************* -* Testing sketch for Freematics OBD-II UART Adapter V2.1 -* Reads and prints motion sensor data and computed orientation data -* Distributed under BSD -* Visit https://freematics.com/products for more product information -* Written by Stanley Huang -*************************************************************************/ - -#include - -// On Arduino Leonardo, Micro, MEGA or DUE, hardware serial can be used for output as the adapter occupies Serial1 -// On Arduino UNO and those have no Serial1, we use software serial for output as the adapter uses Serial -#ifdef ARDUINO_AVR_UNO -#include -SoftwareSerial mySerial(A2, A3); -#else -#define mySerial Serial -#endif - -#if defined(ESP32) && !defined(Serial1) -HardwareSerial Serial1(1); -#endif - -COBD obd; - -void setup() -{ - mySerial.begin(115200); - while (!mySerial); - - // this will begin serial - - for (;;) { - delay(1000); - byte version = obd.begin(); - mySerial.print("Freematics OBD-II Adapter "); - if (version > 0) { - mySerial.println("detected"); - break; - } else { - mySerial.println("not detected"); - } - } - - // initialize MEMS with sensor fusion enabled - bool hasMEMS = obd.memsInit(true); - mySerial.print("Motion sensor is "); - mySerial.println(hasMEMS ? "present" : "not present"); - if (!hasMEMS) { - for (;;) delay(1000); - } -} - - -void loop() -{ - int16_t acc[3] = {0}; - int16_t gyro[3] = {0}; - int16_t mag[3] = {0}; - - if (!obd.memsRead(acc, gyro, mag)) return; - - mySerial.print("ACC:"); - mySerial.print(acc[0]); - mySerial.print('/'); - mySerial.print(acc[1]); - mySerial.print('/'); - mySerial.print(acc[2]); - - mySerial.print(" GYRO:"); - mySerial.print(gyro[0]); - mySerial.print('/'); - mySerial.print(gyro[1]); - mySerial.print('/'); - mySerial.print(gyro[2]); - - mySerial.print(" MAG:"); - mySerial.print(mag[0]); - mySerial.print('/'); - mySerial.print(mag[1]); - mySerial.print('/'); - mySerial.print(mag[2]); - - mySerial.println(); - - float yaw, pitch, roll; - if (obd.memsOrientation(yaw, pitch, roll)) { - mySerial.print("Orientation: "); - mySerial.print(yaw, 2); - mySerial.print(' '); - mySerial.print(pitch, 2); - mySerial.print(' '); - mySerial.println(roll, 2); - } - - delay(100); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/rpm_led_uart/rpm_led_uart.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/rpm_led_uart/rpm_led_uart.ino deleted file mode 100644 index 5b7a13e..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/examples/rpm_led_uart/rpm_led_uart.ino +++ /dev/null @@ -1,31 +0,0 @@ -/************************************************************************* -* Testing sketch for Freematics OBD-II UART Adapter -* Reads engine RPM data from OBD and triggers Arduino onboard LED -* Distributed under BSD -* Visit https://freematics.com/products for more product information -* Written by Stanley Huang -*************************************************************************/ - -#include - -COBD obd; - -void setup() -{ - // we'll use the debug LED as output - pinMode(13, OUTPUT); - // start communication with OBD-II UART adapter - obd.begin(); - // initiate OBD-II connection until success - while (!obd.init()); -} - -void loop() -{ - int value; - if (obd.readPID(PID_RPM, value)) { - // RPM is successfully read and its value stored in variable 'value' - // light on LED when RPM exceeds 3000 - digitalWrite(13, value > 3000 ? HIGH : LOW); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/keywords.txt b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/keywords.txt deleted file mode 100644 index 316a4fb..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/keywords.txt +++ /dev/null @@ -1,29 +0,0 @@ -################################################################################ -# Datatypes (KEYWORD1) -################################################################################ -COBD KEYWORD1 - -################################################################################ -# Methods and Functions (KEYWORD2) -################################################################################ -begin KEYWORD2 -end KEYWORD2 -init KEYWORD2 -uninit KEYWORD2 -reset KEYWORD2 - -readPID KEYWORD2 -readDTC KEYWORD2 -clearDTC KEYWORD2 -getVoltage KEYWORD2 -getVIN KEYWORD2 - -memsInit KEYWORD2 -memsRead KEYWORD2 -memsOrientation KEYWORD2 - -################################################################################ -# Constants (LITERAL1) -################################################################################ -OBD_PROTOCOLS LITERAL1 -OBD_STATES LITERAL1 \ No newline at end of file diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/library.properties b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/library.properties deleted file mode 100644 index cbb921d..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/OBD2UART/library.properties +++ /dev/null @@ -1,9 +0,0 @@ -name=OBD2UART -version=1.2 -author=Stanley Huang -maintainer=Stanley Huang -sentence=Arduino library for Freematics OBD-II UART Adapter -paragraph=Arduino library for Freematics OBD-II UART Adapter -category=Communication -url=https://freematics.com -includes=OBD2UART.h \ No newline at end of file diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.cpp deleted file mode 100644 index 6f328c4..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.cpp +++ /dev/null @@ -1,322 +0,0 @@ -/************************************************************************* -* SIM800 GPRS/HTTP Library -* Distributed under GPL v2.0 -* Written by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include "SIM800.h" - -bool CGPRS_SIM800::init() -{ - simser.begin(115200); - pinMode(SIM800_RESET_PIN, OUTPUT); - digitalWrite(SIM800_RESET_PIN, HIGH); - delay(10); - digitalWrite(SIM800_RESET_PIN, LOW); - delay(100); - // generate turn on pulse - digitalWrite(SIM800_RESET_PIN, HIGH); - delay(3000); - if (sendCommand("AT")) { - sendCommand("AT+IPR=115200"); - sendCommand("ATE0"); - sendCommand("AT+CFUN=1", 10000); - return true; - } - return false; -} -byte CGPRS_SIM800::setup(const char* apn) -{ - bool success = false; - for (byte n = 0; n < 30; n++) { - if (sendCommand("AT+CREG?", 2000)) { - char *p = strstr(buffer, "0,"); - if (p) { - char mode = *(p + 2); -#if DEBUG - con.print("Mode:"); - con.println(mode); -#endif - if (mode == '1' || mode == '5') { - success = true; - break; - } - } - } - delay(1000); - } - - if (!success) - return 1; - - if (!sendCommand("AT+CGATT?")) - return 2; - - if (!sendCommand("AT+SAPBR=3,1,\"Contype\",\"GPRS\"")) - return 3; - - simser.print("AT+SAPBR=3,1,\"APN\",\""); - simser.print(apn); - simser.println('\"'); - if (!sendCommand(0)) - return 4; - - sendCommand("AT+SAPBR=1,1", 10000); - sendCommand("AT+SAPBR=2,1", 10000); - - if (!success) - return 5; - - return 0; -} -bool CGPRS_SIM800::getOperatorName() -{ - // display operator name - if (sendCommand("AT+COPS?", "OK\r", "ERROR\r") == 1) { - char *p = strstr(buffer, ",\""); - if (p) { - p += 2; - char *s = strchr(p, '\"'); - if (s) *s = 0; - strcpy(buffer, p); - return true; - } - } - return false; -} -bool CGPRS_SIM800::checkSMS() -{ - if (sendCommand("AT+CMGR=1", "+CMGR:", "ERROR") == 1) { - // reads the data of the SMS - sendCommand(0, 100, "\r\n"); - if (sendCommand(0)) { - // remove the SMS - sendCommand("AT+CMGD=1"); - return true; - } - } - return false; -} -int CGPRS_SIM800::getSignalQuality() -{ - sendCommand("AT+CSQ"); - char *p = strstr(buffer, "CSQ: "); - if (p) { - int n = atoi(p + 2); - if (n == 99 || n == -1) return 0; - return n * 2 - 114; - } else { - return 0; - } -} - -bool CGPRS_SIM800::getLocation(GSM_LOCATION* loc) -{ - if (sendCommand("AT+CIPGSMLOC=1,1", 10000)) do { - char *p; - if (!(p = strchr(buffer, ':'))) break; - if (!(p = strchr(p, ','))) break; - loc->lon = atof(++p); - if (!(p = strchr(p, ','))) break; - loc->lat = atof(++p); - if (!(p = strchr(p, ','))) break; - loc->year = atoi(++p) - 2000; - if (!(p = strchr(p, '/'))) break; - loc->month = atoi(++p); - if (!(p = strchr(p, '/'))) break; - loc->day = atoi(++p); - if (!(p = strchr(p, ','))) break; - loc->hour = atoi(++p); - if (!(p = strchr(p, ':'))) break; - loc->minute = atoi(++p); - if (!(p = strchr(p, ':'))) break; - loc->second = atoi(++p); - return true; - } while(0); - return false; -} - -void CGPRS_SIM800::httpUninit() -{ - sendCommand("AT+HTTPTERM"); -} - -bool CGPRS_SIM800::httpInit() -{ - if (!sendCommand("AT+HTTPINIT", 10000) || !sendCommand("AT+HTTPPARA=\"CID\",1", 5000)) { - httpState = HTTP_DISABLED; - return false; - } - httpState = HTTP_READY; - return true; -} -bool CGPRS_SIM800::httpConnect(const char* url, const char* args) -{ - // Sets url - simser.print("AT+HTTPPARA=\"URL\",\""); - simser.print(url); - if (args) { - simser.print('?'); - simser.print(args); - } - - simser.println('\"'); - if (sendCommand(0)) - { - // Starts GET action - simser.println("AT+HTTPACTION=0"); - httpState = HTTP_CONNECTING; - m_bytesRecv = 0; - m_checkTimer = millis(); - } else { - httpState = HTTP_ERROR; - } - return false; -} -// check if HTTP connection is established -// return 0 for in progress, 1 for success, 2 for error -byte CGPRS_SIM800::httpIsConnected() -{ - byte ret = checkbuffer("0,200", "0,60", 10000); - if (ret >= 2) { - httpState = HTTP_ERROR; - return -1; - } - return ret; -} -void CGPRS_SIM800::httpRead() -{ - simser.println("AT+HTTPREAD"); - httpState = HTTP_READING; - m_bytesRecv = 0; - m_checkTimer = millis(); -} -// check if HTTP connection is established -// return 0 for in progress, -1 for error, number of http payload bytes on success -int CGPRS_SIM800::httpIsRead() -{ - byte ret = checkbuffer("+HTTPREAD: ", "Error", 10000) == 1; - if (ret == 1) { - m_bytesRecv = 0; - // read the rest data - sendCommand(0, 100, "\r\n"); - int bytes = atoi(buffer); - sendCommand(0); - bytes = min(bytes, sizeof(buffer) - 1); - buffer[bytes] = 0; - return bytes; - } else if (ret >= 2) { - httpState = HTTP_ERROR; - return -1; - } - return 0; -} -byte CGPRS_SIM800::sendCommand(const char* cmd, unsigned int timeout, const char* expected) -{ - if (cmd) { - purgeSerial(); -#if DEBUG - con.print('>'); - con.println(cmd); -#endif - simser.println(cmd); - } - uint32_t t = millis(); - byte n = 0; - do { - if (simser.available()) { - char c = simser.read(); - if (n >= sizeof(buffer) - 1) { - // buffer full, discard first half - n = sizeof(buffer) / 2 - 1; - memcpy(buffer, buffer + sizeof(buffer) / 2, n); - } - buffer[n++] = c; - buffer[n] = 0; - if (strstr(buffer, expected ? expected : "OK\r")) { -#if DEBUG - con.print("[1]"); - con.println(buffer); -#endif - return n; - } - } - } while (millis() - t < timeout); -#if DEBUG - con.print("[0]"); - con.println(buffer); -#endif - return 0; -} -byte CGPRS_SIM800::sendCommand(const char* cmd, const char* expected1, const char* expected2, unsigned int timeout) -{ - if (cmd) { - purgeSerial(); -#if DEBUG - con.print('>'); - con.println(cmd); -#endif - simser.println(cmd); - } - uint32_t t = millis(); - byte n = 0; - do { - if (simser.available()) { - char c = simser.read(); - if (n >= sizeof(buffer) - 1) { - // buffer full, discard first half - n = sizeof(buffer) / 2 - 1; - memcpy(buffer, buffer + sizeof(buffer) / 2, n); - } - buffer[n++] = c; - buffer[n] = 0; - if (strstr(buffer, expected1)) { -#if DEBUG - con.print("[1]"); - con.println(buffer); -#endif - return 1; - } - if (strstr(buffer, expected2)) { -#if DEBUG - con.print("[2]"); - con.println(buffer); -#endif - return 2; - } - } - } while (millis() - t < timeout); -#if DEBUG - con.print("[0]"); - con.println(buffer); -#endif - return 0; -} - -byte CGPRS_SIM800::checkbuffer(const char* expected1, const char* expected2, unsigned int timeout) -{ - while (simser.available()) { - char c = simser.read(); - if (m_bytesRecv >= sizeof(buffer) - 1) { - // buffer full, discard first half - m_bytesRecv = sizeof(buffer) / 2 - 1; - memcpy(buffer, buffer + sizeof(buffer) / 2, m_bytesRecv); - } - buffer[m_bytesRecv++] = c; - buffer[m_bytesRecv] = 0; - if (strstr(buffer, expected1)) { - return 1; - } - if (expected2 && strstr(buffer, expected2)) { - return 2; - } - } - return (millis() - m_checkTimer < timeout) ? 0 : 3; -} - -void CGPRS_SIM800::purgeSerial() -{ - while (simser.available()) simser.read(); -} - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.h deleted file mode 100644 index c7de892..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/SIM800.h +++ /dev/null @@ -1,86 +0,0 @@ -/************************************************************************* -* SIM800 GPRS/HTTP Library -* Distributed under GPL v2.0 -* Written by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include - -// change this to the pin connect with SIM800 reset pin -#define SIM800_RESET_PIN 7 - -// change this to the serial UART which SIM800 is attached to -#define simser Serial1 - -// change this to the serial UART used for console -#define con Serial - -// change this to 1 to enable debug information output -#define DEBUG 0 - -typedef enum { - HTTP_DISABLED = 0, - HTTP_READY, - HTTP_CONNECTING, - HTTP_READING, - HTTP_ERROR, -} HTTP_STATES; - -typedef struct { - float lat; - float lon; - uint8_t year; /* year past 2000, e.g. 15 for 2015 */ - uint8_t month; - uint8_t day; - uint8_t hour; - uint8_t minute; - uint8_t second; -} GSM_LOCATION; - -class CGPRS_SIM800 { -public: - CGPRS_SIM800():httpState(HTTP_DISABLED) {} - bool init(); - byte setup(const char* apn); - bool getOperatorName(); - bool checkSMS(); - int getSignalQuality(); - bool getLocation(GSM_LOCATION* loc); - // initialize HTTP connection - bool httpInit(); - // terminate HTTP connection - void httpUninit(); - // connect to HTTP server - bool httpConnect(const char* url, const char* args = 0); - // check if HTTP connection is established - // return 0 for in progress, 1 for success, 2 for error - byte httpIsConnected(); - // read data from HTTP connection - void httpRead(); - // check if HTTP connection is established - // return 0 for in progress, -1 for error, number of http payload bytes on success - int httpIsRead(); - // send AT command and check for expected response - byte sendCommand(const char* cmd, unsigned int timeout = 2000, const char* expected = 0); - // send AT command and check for two possible responses - byte sendCommand(const char* cmd, const char* expected1, const char* expected2, unsigned int timeout = 2000); - // toggle low-power mode - bool sleep(bool enabled) - { - return sendCommand(enabled ? "AT+CFUN=0" : "AT+CFUN=1"); - } - // check if there is available serial data - bool available() - { - return simser.available(); - } - char buffer[256]; - byte httpState; -private: - byte checkbuffer(const char* expected1, const char* expected2 = 0, unsigned int timeout = 2000); - void purgeSerial(); - byte m_bytesRecv; - uint32_t m_checkTimer; -}; - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/examples/GPRSTest/GPRSTest.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/examples/GPRSTest/GPRSTest.ino deleted file mode 100644 index 3555bbf..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/SIM800/examples/GPRSTest/GPRSTest.ino +++ /dev/null @@ -1,130 +0,0 @@ -/************************************************************************* -* Test sketch for SIM800 library -* Distributed under GPL v2.0 -* Written by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include "SIM800.h" - -#define APN "connect" -static const char* url = "http://arduinodev.com/datetime.php"; - -CGPRS_SIM800 gprs; -uint32_t count = 0; -uint32_t errors = 0; - -void setup() -{ - con.begin(9600); - while (!con); - - con.println("SIM800 TEST"); - - for (;;) { - con.print("Resetting..."); - while (!gprs.init()) { - con.write('.'); - } - con.println("OK"); - - con.print("Setting up network..."); - byte ret = gprs.setup(APN); - if (ret == 0) - break; - con.print("Error code:"); - con.println(ret); - con.println(gprs.buffer); - } - con.println("OK"); - delay(3000); - - if (gprs.getOperatorName()) { - con.print("Operator:"); - con.println(gprs.buffer); - } - int ret = gprs.getSignalQuality(); - if (ret) { - con.print("Signal:"); - con.print(ret); - con.println("dB"); - } - - gprs.sendCommand("AT+CMGF=1"); // sets the SMS mode to text - gprs.sendCommand("AT+CPMS=\"SM\",\"SM\",\"SM\""); // selects the memory - - for (;;) { - if (gprs.httpInit()) break; - con.println(gprs.buffer); - gprs.httpUninit(); - delay(1000); - } - delay(3000); -} - -void loop() -{ - - char mydata[16]; - sprintf(mydata, "t=%lu", millis()); - con.print("Requesting "); - con.print(url); - con.print('?'); - con.println(mydata); - gprs.httpConnect(url, mydata); - count++; - while (gprs.httpIsConnected() == 0) { - // can do something here while waiting - con.write('.'); - for (byte n = 0; n < 25 && !gprs.available(); n++) { - delay(10); - } - } - if (gprs.httpState == HTTP_ERROR) { - con.println("Connect error"); - errors++; - delay(3000); - return; - } - con.println(); - gprs.httpRead(); - int ret; - while ((ret = gprs.httpIsRead()) == 0) { - // can do something here while waiting - } - if (gprs.httpState == HTTP_ERROR) { - con.println("Read error"); - errors++; - delay(3000); - return; - } - - // now we have received payload - con.print("[Payload]"); - con.println(gprs.buffer); - - // show position - GSM_LOCATION loc; - if (gprs.getLocation(&loc)) { - con.print("LAT:"); - con.print(loc.lat, 6); - con.print(" LON:"); - con.print(loc.lon, 6); - con.print(" TIME:"); - con.print(loc.hour); - con.print(':'); - con.print(loc.minute); - con.print(':'); - con.println(loc.second); - } - - // show stats - con.print("Total Requests:"); - con.print(count); - if (errors) { - con.print(" Errors:"); - con.print(errors); - } - con.println(); -} - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.cpp deleted file mode 100644 index 3ff6635..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.cpp +++ /dev/null @@ -1,453 +0,0 @@ -/* -TinyGPS - a small GPS library for Arduino providing basic NMEA parsing -Based on work by and "distance_to" and "course_to" courtesy of Maarten Lamers. -Suggestion to add satellites(), course_to(), and cardinal(), by Matt Monson. -Copyright (C) 2008-2012 Mikal Hart -All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "TinyGPS.h" - -#define _GPRMC_TERM "GPRMC" -#define _GPGGA_TERM "GPGGA" - -TinyGPS::TinyGPS() - : _time(GPS_INVALID_TIME) - , _date(GPS_INVALID_DATE) - , _latitude(GPS_INVALID_ANGLE) - , _longitude(GPS_INVALID_ANGLE) - , _altitude(GPS_INVALID_ALTITUDE) - , _speed(GPS_INVALID_SPEED) - , _course(GPS_INVALID_ANGLE) - , _hdop(GPS_INVALID_HDOP) - , _numsats(GPS_INVALID_SATELLITES) - , _last_time_fix(GPS_INVALID_FIX_TIME) - , _last_position_fix(GPS_INVALID_FIX_TIME) - , _parity(0) - , _is_checksum_term(false) - , _sentence_type(_GPS_SENTENCE_OTHER) - , _term_number(0) - , _term_offset(0) - , _gps_data_good(false) -#ifndef _GPS_NO_STATS - , _encoded_characters(0) - , _good_sentences(0) - , _failed_checksum(0) -#endif -{ - _term[0] = '\0'; -} - -// -// public methods -// - -bool TinyGPS::encode(char c) -{ - bool valid_sentence = false; - -#ifndef _GPS_NO_STATS - ++_encoded_characters; -#endif - switch(c) - { - case ',': // term terminators - _parity ^= ','; - case '\r': - case '\n': - case '*': - if (_term_offset < sizeof(_term)) - { - _term[_term_offset] = 0; - valid_sentence = term_complete(); - } - ++_term_number; - _term_offset = 0; - _is_checksum_term = c == '*'; - return valid_sentence; - - case '$': // sentence begin - _term_number = _term_offset = 0; - _parity = 0; - _sentence_type = _GPS_SENTENCE_OTHER; - _is_checksum_term = false; - _gps_data_good = false; - return valid_sentence; - } - - // ordinary characters - if (_term_offset < sizeof(_term) - 1) - _term[_term_offset++] = c; - if (!_is_checksum_term) - _parity ^= (byte)c; - - return valid_sentence; -} - -#ifndef _GPS_NO_STATS -void TinyGPS::stats(unsigned long *chars, unsigned short *sentences, unsigned short *failed_cs) -{ - if (chars) *chars = _encoded_characters; - if (sentences) *sentences = _good_sentences; - if (failed_cs) *failed_cs = _failed_checksum; -} -#endif - -// -// internal utilities -// -byte TinyGPS::from_hex(char a) -{ - if (a >= 'A' && a <= 'F') - return a - 'A' + 10; - else if (a >= 'a' && a <= 'f') - return a - 'a' + 10; - else - return a - '0'; -} - -byte TinyGPS::hex2uint8(const char *p) -{ - byte c1 = *p; - byte c2 = *(p + 1); - if (c1 >= 'A' && c1 <= 'F') - c1 -= 7; - else if (c1 >= 'a' && c1 <= 'f') - c1 -= 39; - else if (c1 < '0' || c1 > '9') - return 0; - - if (c2 == 0) - return (c1 & 0xf); - else if (c2 >= 'A' && c2 <= 'F') - c2 -= 7; - else if (c2 >= 'a' && c2 <= 'f') - c2 -= 39; - else if (c2 < '0' || c2 > '9') - return 0; - - return c1 << 4 | (c2 & 0xf); -} - -unsigned long TinyGPS::parse_decimal() -{ - char *p = _term; - bool isneg = *p == '-'; - if (isneg) ++p; - unsigned long ret = 100UL * gpsatol(p); - while (gpsisdigit(*p)) ++p; - if (*p == '.') - { - if (gpsisdigit(p[1])) - { - ret += 10 * (p[1] - '0'); - if (gpsisdigit(p[2])) - ret += p[2] - '0'; - } - } - return isneg ? -ret : ret; -} - -unsigned long TinyGPS::parse_degrees() -{ - char *p; - unsigned long left = gpsatol(_term); - unsigned long tenk_minutes = (left % 100UL) * 10000UL; - for (p=_term; gpsisdigit(*p); ++p); - if (*p == '.') - { - unsigned long mult = 10000; - while (gpsisdigit(*++p)) - { - tenk_minutes += mult * (*p - '0'); - mult /= 10; - } - } - return (left / 100) * 100000 + tenk_minutes / 6; -} - -#define COMBINE(sentence_type, term_number) (((unsigned)(sentence_type) << 5) | term_number) - -// Processes a just-completed term -// Returns true if new sentence has just passed checksum test and is validated -bool TinyGPS::term_complete() -{ - if (_is_checksum_term) - { - byte checksum = hex2uint8(_term); - if (checksum == _parity) - { - if (_gps_data_good) - { -#ifndef _GPS_NO_STATS - ++_good_sentences; -#endif - _last_time_fix = _new_time_fix; - _last_position_fix = _new_position_fix; - - switch(_sentence_type) - { - case _GPS_SENTENCE_GPRMC: - _time = _new_time; - _date = _new_date; - _latitude = _new_latitude; - _longitude = _new_longitude; - _speed = _new_speed; - _course = _new_course; - break; - case _GPS_SENTENCE_GPGGA: - _altitude = _new_altitude; - _time = _new_time; - _latitude = _new_latitude; - _longitude = _new_longitude; - _numsats = _new_numsats; - _hdop = _new_hdop; - break; - } - - return true; - } - } - -#ifndef _GPS_NO_STATS - else - ++_failed_checksum; -#endif - return false; - } - - // the first term determines the sentence type - if (_term_number == 0) - { - if (!gpsstrcmp(_term, _GPRMC_TERM)) - _sentence_type = _GPS_SENTENCE_GPRMC; - else if (!gpsstrcmp(_term, _GPGGA_TERM)) - _sentence_type = _GPS_SENTENCE_GPGGA; - else - _sentence_type = _GPS_SENTENCE_OTHER; - return false; - } - - if (_sentence_type != _GPS_SENTENCE_OTHER && _term[0]) - switch(COMBINE(_sentence_type, _term_number)) - { - case COMBINE(_GPS_SENTENCE_GPRMC, 1): // Time in both sentences - case COMBINE(_GPS_SENTENCE_GPGGA, 1): - _new_time = parse_decimal(); - _new_time_fix = millis(); - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 2): // GPRMC validity - _gps_data_good = _term[0] == 'A'; - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 3): // Latitude - case COMBINE(_GPS_SENTENCE_GPGGA, 2): - _new_latitude = parse_degrees(); - _new_position_fix = millis(); - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 4): // N/S - case COMBINE(_GPS_SENTENCE_GPGGA, 3): - if (_term[0] == 'S') - _new_latitude = -_new_latitude; - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 5): // Longitude - case COMBINE(_GPS_SENTENCE_GPGGA, 4): - _new_longitude = parse_degrees(); - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 6): // E/W - case COMBINE(_GPS_SENTENCE_GPGGA, 5): - if (_term[0] == 'W') - _new_longitude = -_new_longitude; - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 7): // Speed (GPRMC) - _new_speed = parse_decimal(); - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 8): // Course (GPRMC) - _new_course = parse_decimal(); - break; - case COMBINE(_GPS_SENTENCE_GPRMC, 9): // Date (GPRMC) - _new_date = gpsatol(_term); - break; - case COMBINE(_GPS_SENTENCE_GPGGA, 6): // Fix data (GPGGA) - _gps_data_good = _term[0] > '0'; - break; - case COMBINE(_GPS_SENTENCE_GPGGA, 7): // Satellites used (GPGGA) - _new_numsats = (unsigned char)atoi(_term); - break; - case COMBINE(_GPS_SENTENCE_GPGGA, 8): // HDOP - _new_hdop = parse_decimal(); - break; - case COMBINE(_GPS_SENTENCE_GPGGA, 9): // Altitude (GPGGA) - _new_altitude = parse_decimal(); - break; - } - - return false; -} - -long TinyGPS::gpsatol(const char *str) -{ - long ret = 0; - while (gpsisdigit(*str)) - ret = 10 * ret + *str++ - '0'; - return ret; -} - -int TinyGPS::gpsstrcmp(const char *str1, const char *str2) -{ - if (*str1 == *str2) { - str1 += 2; - str2 += 2; - while (*str1 && *str1 == *str2) - ++str1, ++str2; - } - return *str1; -} - -/* static */ -float TinyGPS::distance_between (float lat1, float long1, float lat2, float long2) -{ - // returns distance in meters between two positions, both specified - // as signed decimal-degrees latitude and longitude. Uses great-circle - // distance computation for hypothetical sphere of radius 6372795 meters. - // Because Earth is no exact sphere, rounding errors may be up to 0.5%. - // Courtesy of Maarten Lamers - float delta = radians(long1-long2); - float sdlong = sin(delta); - float cdlong = cos(delta); - lat1 = radians(lat1); - lat2 = radians(lat2); - float slat1 = sin(lat1); - float clat1 = cos(lat1); - float slat2 = sin(lat2); - float clat2 = cos(lat2); - delta = (clat1 * slat2) - (slat1 * clat2 * cdlong); - delta = sq(delta); - delta += sq(clat2 * sdlong); - delta = sqrt(delta); - float denom = (slat1 * slat2) + (clat1 * clat2 * cdlong); - delta = atan2(delta, denom); - return delta * 6372795; -} - -float TinyGPS::course_to (float lat1, float long1, float lat2, float long2) -{ - // returns course in degrees (North=0, West=270) from position 1 to position 2, - // both specified as signed decimal-degrees latitude and longitude. - // Because Earth is no exact sphere, calculated course may be off by a tiny fraction. - // Courtesy of Maarten Lamers - float dlon = radians(long2-long1); - lat1 = radians(lat1); - lat2 = radians(lat2); - float a1 = sin(dlon) * cos(lat2); - float a2 = sin(lat1) * cos(lat2) * cos(dlon); - a2 = cos(lat1) * sin(lat2) - a2; - a2 = atan2(a1, a2); - if (a2 < 0.0) - { - a2 += TWO_PI; - } - return degrees(a2); -} - -const char *TinyGPS::cardinal (float course) -{ - static const char* directions[] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"}; - - int direction = (int)((course + 11.25f) / 22.5f); - return directions[direction % 16]; -} - -// lat/long in hundred thousandths of a degree and age of fix in milliseconds -void TinyGPS::get_position(long *latitude, long *longitude, unsigned long *fix_age) -{ - if (latitude) *latitude = _latitude; - if (longitude) *longitude = _longitude; - if (fix_age) *fix_age = _last_position_fix == GPS_INVALID_FIX_TIME ? -GPS_INVALID_AGE : millis() - _last_position_fix; -} - -// date as ddmmyy, time as hhmmsscc, and age in milliseconds -void TinyGPS::get_datetime(unsigned long *date, unsigned long *time, unsigned long *age) -{ - if (date) *date = _date; - if (time) *time = _time; - if (age) *age = _last_time_fix == GPS_INVALID_FIX_TIME ? -GPS_INVALID_AGE : millis() - _last_time_fix; -} - -void TinyGPS::f_get_position(float *latitude, float *longitude, unsigned long *fix_age) -{ - long lat, lon; - get_position(&lat, &lon, fix_age); - *latitude = lat == GPS_INVALID_ANGLE ? GPS_INVALID_F_ANGLE : (lat / 100000.0); - *longitude = lat == GPS_INVALID_ANGLE ? GPS_INVALID_F_ANGLE : (lon / 100000.0); -} - -void TinyGPS::crack_datetime(int *year, byte *month, byte *day, - byte *hour, byte *minute, byte *second, byte *hundredths, unsigned long *age) -{ - unsigned long date, time; - get_datetime(&date, &time, age); - if (year) - { - *year = date % 100; - *year += *year > 80 ? 1900 : 2000; - } - if (month) *month = (date / 100) % 100; - if (day) *day = date / 10000; - if (hour) *hour = time / 1000000; - if (minute) *minute = (time / 10000) % 100; - if (second) *second = (time / 100) % 100; - if (hundredths) *hundredths = time % 100; -} - -float TinyGPS::f_altitude() -{ - return _altitude == GPS_INVALID_ALTITUDE ? GPS_INVALID_F_ALTITUDE : _altitude / 100.0; -} - -float TinyGPS::f_course() -{ - return _course == GPS_INVALID_ANGLE ? GPS_INVALID_F_ANGLE : _course / 100.0; -} - -float TinyGPS::f_speed_knots() -{ - return _speed == GPS_INVALID_SPEED ? GPS_INVALID_F_SPEED : _speed / 100.0; -} - -float TinyGPS::f_speed_mph() -{ - float sk = f_speed_knots(); - return sk == GPS_INVALID_F_SPEED ? GPS_INVALID_F_SPEED : _GPS_MPH_PER_KNOT * f_speed_knots(); -} - -float TinyGPS::f_speed_mps() -{ - float sk = f_speed_knots(); - return sk == GPS_INVALID_F_SPEED ? GPS_INVALID_F_SPEED : _GPS_MPS_PER_KNOT * f_speed_knots(); -} - -float TinyGPS::f_speed_kmph() -{ - float sk = f_speed_knots(); - return sk == GPS_INVALID_F_SPEED ? GPS_INVALID_F_SPEED : _GPS_KMPH_PER_KNOT * f_speed_knots(); -} - -const float TinyGPS::GPS_INVALID_F_ANGLE = 1000.0; -const float TinyGPS::GPS_INVALID_F_ALTITUDE = 1000000.0; -const float TinyGPS::GPS_INVALID_F_SPEED = -1.0; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.h deleted file mode 100644 index dad262d..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/libraries/TinyGPS/TinyGPS.h +++ /dev/null @@ -1,147 +0,0 @@ -/* -TinyGPS - a small GPS library for Arduino providing basic NMEA parsing -Based on work by and "distance_to" and "course_to" courtesy of Maarten Lamers. -Suggestion to add satellites(), course_to(), and cardinal(), by Matt Monson. -Copyright (C) 2008-2012 Mikal Hart -All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef TinyGPS_h -#define TinyGPS_h - -#include "Arduino.h" - -#define _GPS_VERSION 12 // software version of this library -#define _GPS_MPH_PER_KNOT 1.15077945 -#define _GPS_MPS_PER_KNOT 0.51444444 -#define _GPS_KMPH_PER_KNOT 1.852 -#define _GPS_MILES_PER_METER 0.00062137112 -#define _GPS_KM_PER_METER 0.001 -#define _GPS_NO_STATS - -class TinyGPS -{ -public: - enum { - GPS_INVALID_AGE = 0xFFFFFFFF, GPS_INVALID_ANGLE = 999999999, - GPS_INVALID_ALTITUDE = 999999999, GPS_INVALID_DATE = 0, - GPS_INVALID_TIME = 0xFFFFFFFF, GPS_INVALID_SPEED = 999999999, - GPS_INVALID_FIX_TIME = 0xFFFFFFFF, GPS_INVALID_SATELLITES = 0xFF, - GPS_INVALID_HDOP = 0xFFFFFFFF - }; - - static const float GPS_INVALID_F_ANGLE, GPS_INVALID_F_ALTITUDE, GPS_INVALID_F_SPEED; - - TinyGPS(); - bool encode(char c); // process one character received from GPS - TinyGPS &operator << (char c) {encode(c); return *this;} - - // lat/long in hundred thousandths of a degree and age of fix in milliseconds - void get_position(long *latitude, long *longitude, unsigned long *fix_age = 0); - - // date as ddmmyy, time as hhmmsscc, and age in milliseconds - void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0); - - // signed altitude in centimeters (from GPGGA sentence) - inline long altitude() { return _altitude; } - - // course in last full GPRMC sentence in 100th of a degree - inline unsigned long course() { return _course; } - - // speed in last full GPRMC sentence in 100ths of a knot - inline unsigned long speed() { return _speed; } - - // satellites used in last full GPGGA sentence - inline unsigned short satellites() { return _numsats; } - - // horizontal dilution of precision in 100ths - inline unsigned long hdop() { return _hdop; } - - void f_get_position(float *latitude, float *longitude, unsigned long *fix_age = 0); - void crack_datetime(int *year, byte *month, byte *day, - byte *hour, byte *minute, byte *second, byte *hundredths = 0, unsigned long *fix_age = 0); - float f_altitude(); - float f_course(); - float f_speed_knots(); - float f_speed_mph(); - float f_speed_mps(); - float f_speed_kmph(); - - static int library_version() { return _GPS_VERSION; } - - static float distance_between (float lat1, float long1, float lat2, float long2); - static float course_to (float lat1, float long1, float lat2, float long2); - static const char *cardinal(float course); - -#ifndef _GPS_NO_STATS - void stats(unsigned long *chars, unsigned short *good_sentences, unsigned short *failed_cs); - // statistics - unsigned long _encoded_characters; - unsigned short _good_sentences; - unsigned short _failed_checksum; - unsigned short _passed_checksum; -#endif - -private: - enum {_GPS_SENTENCE_GPGGA, _GPS_SENTENCE_GPRMC, _GPS_SENTENCE_OTHER}; - - // properties - unsigned long _time, _new_time; - unsigned long _date, _new_date; - long _latitude, _new_latitude; - long _longitude, _new_longitude; - long _altitude, _new_altitude; - unsigned long _speed, _new_speed; - unsigned long _course, _new_course; - unsigned long _hdop, _new_hdop; - unsigned short _numsats, _new_numsats; - - unsigned long _last_time_fix, _new_time_fix; - unsigned long _last_position_fix, _new_position_fix; - - // parsing state variables - byte _parity; - bool _is_checksum_term; - char _term[15]; - byte _sentence_type; - byte _term_number; - byte _term_offset; - bool _gps_data_good; - - // internal utilities - byte from_hex(char a); - byte hex2uint8(const char* p); - unsigned long parse_decimal(); - unsigned long parse_degrees(); - bool term_complete(); - bool gpsisdigit(char c) { return c >= '0' && c <= '9'; } - long gpsatol(const char *str); - int gpsstrcmp(const char *str1, const char *str2); -}; - -#if !defined(ARDUINO) -// Arduino 0012 workaround -#undef int -#undef char -#undef long -#undef byte -#undef float -#undef abs -#undef round -#endif - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/README.md b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/README.md deleted file mode 100644 index bd9ada5..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/README.md +++ /dev/null @@ -1,86 +0,0 @@ -MegaLogger -========== - -MegaLogger is a sketch developed for Arduino Telematics Kits based on Arduino MEGA or MEGA ADK. The sketch features OBD-II, GPS and motion sensor data access, data logging, data streaming and data display. - -The sketch utilize following custom Arduino libraries: - - OBD-II Library - TinyGPS Library - MPU6050 Library - MPU9150 Library - MultiLCD Library - - -Configuration -------------- - -MegaLogger has several configurable options all stay in the config.h file. Major options include: - - OBD_MODEL - defines the model of OBD-II Adapter (OBD_MODEL_UART or OBD_MODEL_I2C) - USE_GPS - defines whether GPS is used - USE_MPU6050 - defines whether MPU-6050 is used - USE_MPU9150 - defines whether MPU-9150 is used - ENABLE_DATA_LOG - toggles data logging on microSD card - ENABLE_DATA_OUT - toggles data streaming (to mobile devices via Bluetooth) - STREAM_FORMAT - sets streaming data format (FORMAT_BIN for binary format or FORMAT_CSV for text format) - -OBD-II ------- - -The kit connects to the OBD-II port of a motor vehicle via OBD-II Adapter for Arduino. There are two versions of OBD-II Adapter available, UART and I2C. The UART version provides ELM327 command-set via serial UART at baudrate of 38400bps. The I2C version works as an I2C device which is accessed by I2C address for OBD-II data access. It also integrates I2C MEMS sensor which provides accelerometer and gyro. OBD_MODEL define in config.h should be corresponding to the model of the adapter. The OBD-II Adapter should be connected at Serial1 or I2C interface and is access from Arduino by OBD-II library. - -GPS ---- -The kit comes with optional GPS receiver which should be connected at Serial2. The incoming NMEA data stream is parsed by TinyGPS library. - -MEMS Sensors ------------- - -MEMS Sensors (MPU-6050 or MPU-9150) are embedded in I2C version of OBD-II Adapter. They are accessed via I2C by MPU6050/MPU9150 library. - -Data Logging ------------- - -The kit provides complete data logging for OBD-II, GPS and motion sensor data. The data is stored on microSD card if present. Standard Arduino SD library used for accessing microSD card. - -The data is logged in a simple CSV text format.Each line represents a record with time, data type and data value like this: - - [Time Elapsed],[Data Type],[Data Value] - -Time Elapsed is the time elapsed in milliseconds since previous data record. Data Type is the OBD-II PID which is defined in the OBD-II library (e.g. 0x10C is engine RPM). Here is an example data clip: - - 169,10D,0 - 171,111,12 - 170,143,21 - 165,10B,30 - 175,10C,705 - 169,10D,0 - 170,111,12 - ... - -GPS and motion sensor data are defined as special PID which OBD-II standard does not use and are defined in datalogger.h file. - - #define PID_GPS_LATITUDE 0xA - #define PID_GPS_LONGITUDE 0xB - #define PID_GPS_ALTITUDE 0xC - #define PID_GPS_SPEED 0xD - #define PID_GPS_HEADING 0xE - #define PID_GPS_SAT_COUNT 0xF - #define PID_GPS_TIME 0x10 - #define PID_GPS_DATE 0x11 - #define PID_ACC 0x20 - #define PID_GYRO 0x21 - #define PID_COMPASS 0x22 - #define PID_MEMS_TEMP 0x23 - #define PID_BATTERY_VOLTAGE 0x24 - -Data Streaming --------------- - -Live data can be streamed to a mobile device via Bluetooth (BLE or 2.1) module which is optionally connected at Serial3. Two stream data formats are available, text or binary based. Text based format is same as data logging format in form of CSV. The binary format is based on a framed data format and is used by streaming data to iOS device with Freematics OBD App installed. - -Data Display ------------- - -The kit provides a 3.2" color TFT LCD display. The live data will be displayed on the screen. The LCD display is driven by MultiLCD library. diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/config.h deleted file mode 100644 index e89f0e3..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/config.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* OBD-II Adapter options -**************************************/ -#define OBD_ADAPTER_MODEL OBD_MODEL_I2C -//#define OBD_ADAPTER_MODEL OBD_MODEL_UART -#define OBD_PROTOCOL PROTO_AUTO - -/************************************** -* Data logging options -**************************************/ -// enable(1)/disable(0) data logging (if SD card is present) -#define ENABLE_DATA_LOG 1 -#define SD_CS_PIN SS - -/************************************** -* Data streaming options -**************************************/ -// enable(1)/disable(0) data streaming -#define ENABLE_DATA_OUT 1 - -// uses software(1)/hardware(0) serial for data streaming -#define USE_SOFTSERIAL 0 -#define RF_SERIAL Serial -#define STREAM_BAUDRATE 115200 /* bps */ - -// this defines the format of data streaming -// FORMAT_BIN is required by Freematics OBD iOS App -// FORMAT_TEXT for text-based, text names for PID -#define STREAM_FORMAT FORMAT_TEXT - -/************************************** -* GPS configuration -**************************************/ -#define USE_GPS 1 -#define GPSUART Serial2 -#define MAX_GPS_PROCESS_TIME 50 /* ms */ -#define GPS_DATA_TIMEOUT 2000 /* ms */ - -// GPS baudrate could be 38400bps or 115200bps -#define GPS_BAUDRATE 115200 /* bps */ - -/************************************** -* Accelerometer & Gyro -**************************************/ -#define USE_MPU6050 1 -//#define USE_MPU9150 1 -#define ACC_DATA_RATIO 160 -#define GYRO_DATA_RATIO 256 -#define COMPASS_DATA_RATIO 8 - -/************************************** -* Timeout/interval options -**************************************/ -#define ACC_DATA_INTERVAL 200 /* ms */ - -/************************************** -* LCD module (uncomment only one) -**************************************/ -//LCD_R61581 lcd; /* 3.5" CTE35IPS/R61581 based LCD */ -LCD_SSD1289 lcd; /* 3.2" SSD12389 based LCD */ -//LCD_ILI9325D lcd; /* 2.8" ILI9325 based LCD */ -//LCD_ILI9341 lcd; /* 2.4" ILI9341 based SPI LCD */ -//LCD_Null lcd; - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/datalogger.h deleted file mode 100644 index c67583b..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/datalogger.h +++ /dev/null @@ -1,284 +0,0 @@ -/************************************************************************* -* Freematics Data Logger Class -* Distributed under GPL v2.0 -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -#define FORMAT_BIN 0 -#define FORMAT_TEXT 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -#define PID_DATA_SIZE 0x80 - -#define FILE_NAME_FORMAT "/DAT%05d.CSV" - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL -SoftwareSerial SerialRF(A2, A3); -#elif defined(RF_SERIAL) -#define SerialRF RF_SERIAL -#else -#define SerialRF Serial -#endif - -#endif - -#if ENABLE_DATA_LOG -static File sdfile; -#endif - -typedef struct { - uint8_t pid; - char name[3]; -} PID_NAME; - -const PID_NAME pidNames[] PROGMEM = { -{PID_ACC, {'A','C','C'}}, -{PID_GYRO, {'G','Y','R'}}, -{PID_COMPASS, {'M','A','G'}}, -{PID_GPS_LATITUDE, {'L','A','T'}}, -{PID_GPS_LONGITUDE, {'L','N','G'}}, -{PID_GPS_ALTITUDE, {'A','L','T'}}, -{PID_GPS_SPEED, {'S','P','D'}}, -{PID_GPS_HEADING, {'C','R','S'}}, -{PID_GPS_SAT_COUNT, {'S','A','T'}}, -{PID_GPS_TIME, {'U','T','C'}}, -{PID_GPS_DATE, {'D','T','E'}}, -{PID_BATTERY_VOLTAGE, {'B','A','T'}}, -{PID_DATA_SIZE, {'D','A','T'}}, -}; - -class CDataLogger { -public: - CDataLogger() - { - m_lastDataTime = 0; -#if ENABLE_DATA_CACHE - cacheBytes = 0; -#endif - } - void initSender() - { -#if ENABLE_DATA_OUT - SerialRF.begin(STREAM_BAUDRATE); -#endif - } - byte genTimestamp(char* buf, bool absolute) - { - byte n; - if (absolute || dataTime >= m_lastDataTime + 60000) { - // absolute timestamp - n = sprintf(buf, "#%lu,", dataTime); - } else { - // incremental timestamp - n = sprintf(buf, "%u,", (unsigned int)(dataTime - m_lastDataTime)); - } - return n; - } - void record(const char* buf, byte len) - { -#if ENABLE_DATA_LOG -#if STREAM_FORMAT == FORMAT_BIN - dataSize += sdfile.write(buf, len); -#else - char tmp[12]; - byte n = genTimestamp(tmp, dataSize == 0); - dataSize += sdfile.write(tmp, n); - dataSize += sdfile.write(buf, len); - sdfile.println(); - dataSize += 3; -#endif -#endif - m_lastDataTime = dataTime; - } - void dispatch(const char* buf, byte len) - { -#if ENABLE_DATA_CACHE - if (cacheBytes + len < MAX_CACHE_SIZE - 10) { - cacheBytes += genTimestamp(cache + cacheBytes, cacheBytes == 0); - memcpy(cache + cacheBytes, buf, len); - cacheBytes += len; - cache[cacheBytes++] = '\n'; - cache[cacheBytes] = 0; - } -#else - char tmp[12]; - genTimestamp(tmp, false); - SerialRF.print(tmp); -#endif -#if ENABLE_DATA_OUT - SerialRF.write(buf, len); - SerialRF.println(); -#endif - } - void logData(const char* buf, byte len) - { -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid) - { - char buf[8]; - byte len = translatePIDName(pid, buf); -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, int value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%ld", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%lu", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d,%d,%d", value1, value2, value3) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); - dispatch((const char*)&ld, 20); -#else - dispatch(buf, len); -#endif - record(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - dataSize = 0; - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - m_lastDataTime = dateTime; - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -#if ENABLE_DATA_CACHE - char cache[MAX_CACHE_SIZE]; - int cacheBytes; -#endif -private: - byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } - byte translatePIDName(uint16_t pid, char* text) - { -#if STREAM_FORMAT == FORMAT_TEXT && USE_FRIENDLY_PID_NAME - for (uint16_t n = 0; n < sizeof(pidNames) / sizeof(pidNames[0]); n++) { - uint16_t id = pgm_read_byte(&pidNames[n].pid); - if (pid == id) { - memcpy_P(text, pidNames[n].name, 3); - text[3] = ','; - return 4; - } - } -#endif - return sprintf(text, "%X,", pid); - } - uint32_t m_lastDataTime; -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/images.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/images.h deleted file mode 100644 index 219afd2..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/images.h +++ /dev/null @@ -1,86 +0,0 @@ -const unsigned char PROGMEM frame0[78][58 * 2] = { -{0xe3,0x20,0xec,0x5a,0xcb,0x5a,0x6a,0x4a,0x28,0x42,0xc7,0x39,0x86,0x31,0x25,0x29,0x04,0x21,0xa3,0x18,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x18,0xe3,0x20,0x04,0x21,0x65,0x29,0x86,0x31,0xc7,0x39,0x08,0x42,0x49,0x4a,0x8a,0x52,0xaa,0x5a,0xc4,0x18}, -{0xec,0x5a,0x8d,0x73,0xab,0x52,0x49,0x4a,0x29,0x42,0x07,0x42,0xa7,0x31,0x86,0x31,0x66,0x29,0x45,0x29,0x45,0x21,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x29,0x44,0x29,0x45,0x21,0x45,0x29,0x66,0x29,0xa6,0x39,0xc7,0x39,0x07,0x42,0x29,0x42,0x89,0x52,0x6d,0x6b,0xcb,0x5a}, -{0x2c,0x6b,0xcb,0x5a,0xe7,0x39,0x86,0x31,0x65,0x29,0x25,0x21,0x04,0x21,0xc3,0x18,0xa2,0x10,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0xa2,0x10,0xc3,0x18,0x04,0x21,0x25,0x29,0x86,0x31,0xa7,0x39,0xaa,0x5a,0xec,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xab,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xca,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x31,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x85,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xab,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xab,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x5a,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x66,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x81,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x31,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xca,0x5a,0xc7,0x39,0x86,0x31,0x66,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x5a,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0xaa,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x81,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0xaa,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x5a,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x31,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0xaa,0x5a,0xcb,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x66,0x31,0x65,0x29,0x04,0x21,0xe3,0x18,0xa3,0x10,0x81,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x2d,0x63,0xcb,0x5a,0xc7,0x39,0xa6,0x39,0x66,0x29,0x24,0x29,0x04,0x19,0xc3,0x18,0x83,0x10,0x61,0x10,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x61,0x10,0xa3,0x10,0xc3,0x18,0x04,0x19,0x44,0x29,0x66,0x29,0xc7,0x39,0xcb,0x52,0xcb,0x5a}, -{0x0c,0x63,0x6e,0x73,0xaa,0x52,0x49,0x4a,0x28,0x4a,0xe8,0x41,0xc7,0x39,0x86,0x31,0x65,0x31,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x65,0x31,0x86,0x31,0xe7,0x39,0xe8,0x41,0x49,0x4a,0x8a,0x52,0x6d,0x73,0xcc,0x5a}, -{0xe4,0x18,0xeb,0x62,0xcb,0x5a,0x69,0x52,0x09,0x42,0xc7,0x39,0x86,0x29,0x44,0x29,0x04,0x19,0xc2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xc2,0x18,0xe4,0x18,0x24,0x29,0x45,0x29,0x86,0x31,0xc7,0x39,0x08,0x42,0x49,0x4a,0xaa,0x5a,0xcb,0x52,0xc3,0x18}, -}; - -static const PROGMEM uint8_t tick[16 * 16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -static const PROGMEM uint8_t cross[16 * 16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.cbp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.cbp deleted file mode 100644 index 491af67..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.cbp +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.ino deleted file mode 100644 index 53b6475..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megalogger/megalogger.ino +++ /dev/null @@ -1,856 +0,0 @@ -/************************************************************************* -* Reference code for OBD-II/GPS/9-Axis Data Logger -* Works with Freematics OBD-II Telematics Advanced Kit -* Visit http://freematics.com for more information -* Distributed under GPL v2.0 -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "config.h" -#if ENABLE_DATA_LOG -#include -#endif -#include "Narcoleptic.h" -#include "images.h" -#if ENABLE_DATA_OUT && USE_SOFTSERIAL -#include -#endif -#include "datalogger.h" - -// logger states -#define STATE_SD_READY 0x1 -#define STATE_OBD_READY 0x2 -#define STATE_GPS_CONNECTED 0x4 -#define STATE_GPS_READY 0x8 -#define STATE_MEMS_READY 0x10 -#define STATE_GUI_ON 0x20 - -// adapter type -#define OBD_ADAPTER_I2C 0 -#define OBD_ADAPTER_UART 1 - -#if USE_GPS -// GPS logging can only be enabled when there is additional hardware serial UART -#define GPSUART Serial2 -TinyGPS gps; -#endif - -#if USE_MPU6050 || USE_MPU9150 -MPU6050 accelgyro; -static uint32_t lastMemsDataTime = 0; -#endif - -static uint8_t lastFileSize = 0; -static uint32_t lastRefreshTime = 0; -static uint32_t distance = 0; -static uint32_t startTime = 0; -static uint16_t lastSpeed = 0; -static uint32_t lastSpeedTime = 0; -static uint32_t gpsDate = 0; -#if USE_GPS -static uint32_t lastGPSDataTime = 0; -static int gpsSpeed = -1; -#endif - -byte state = 0; - -void processAccelerometer(); -void processGPS(); - -CDataLogger logger; - -class CMyOBD : public COBD -{ -public: - void dataIdleLoop() - { - if (!(state & STATE_GUI_ON)) return; - - if (state & STATE_MEMS_READY) { - processAccelerometer(); - } -#if USE_GPS - uint32_t t = millis(); - while (GPSUART.available() && millis() - t < MAX_GPS_PROCESS_TIME) { - processGPS(); - } -#endif - } -}; - -class CMyOBDI2C : public COBDI2C -{ -public: - void dataIdleLoop() - { - if (!(state & STATE_GUI_ON)) return; - - if (state & STATE_MEMS_READY) { - processAccelerometer(); - } -#if USE_GPS - uint32_t t = millis(); - while (GPSUART.available() && millis() - t < MAX_GPS_PROCESS_TIME) { - processGPS(); - } -#endif - } -}; - -#if OBD_ADAPTER_MODEL == OBD_MODEL_I2C -CMyOBDI2C obd; -#else -CMyOBD obd; -#endif - -void setColorByValue(int value, int threshold1, int threshold2, int threshold3) -{ - if (value < 0) value = -value; - if (value < threshold1) { - lcd.setColor(RGB16_WHITE); - } else if (value < threshold2) { - byte n = (uint32_t)(threshold2 - value) * 255 / (threshold2 - threshold1); - lcd.setColor(255, 255, n); - } else if (value < threshold3) { - byte n = (uint32_t)(threshold3 - value) * 255 / (threshold3 - threshold2); - lcd.setColor(255, n, 0); - } else { - lcd.setColor(255, 0, 0); - } -} - -void showPIDData(byte pid, int value) -{ - char buf[8]; - switch (pid) { - case PID_RPM: - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(32, 6); - if (value >= 10000) break; - setColorByValue(value, 2500, 3500, 5000); - lcd.printInt(value, 4); - break; - case PID_SPEED: - if (value < 1000) { - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(50, 2); - setColorByValue(value, 60, 100, 160); - lcd.printInt(value, 3); - -#if USE_GPS - if (gpsSpeed != -1) { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(110, 2); - lcd.setColor(RGB16_YELLOW); - int diff = gpsSpeed - value; - if (diff >= 0) { - lcd.write('+'); - lcd.printInt(diff); - } else { - lcd.write('-'); - lcd.printInt(-diff); - } - lcd.write(' '); - } -#endif - } - break; - case PID_ENGINE_LOAD: - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(50, 10); - if (value >= 100) value = 99; - setColorByValue(value, 75, 80, 100); - lcd.printInt(value, 3); - break; - case PID_THROTTLE: - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(92, 21); - if (value >= 100) value = 99; - setColorByValue(value, 50, 75, 100); - lcd.printInt(value, 2); - break; - case PID_ENGINE_FUEL_RATE: - if (value < 100) { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(92, 24); - lcd.printInt(value, 2); - } - break; - case PID_INTAKE_TEMP: - if (value >= 0 && value < 100) { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(92, 27); - lcd.printInt(value, 2); - } - break; - } - lcd.setColor(RGB16_WHITE); -} - -void ShowVoltage(float v) -{ - lcd.setFontSize(FONT_SIZE_LARGE); - lcd.setCursor(84, 18); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print(v); -} - -void fadeOutScreen() -{ - // fade out backlight - for (int n = 254; n >= 0; n--) { - lcd.setBackLight(n); - delay(3); - } -} - -void fadeInScreen() -{ - for (int n = 1; n <= 255; n++) { - lcd.setBackLight(n); - delay(6); - } -} - -void initScreen() -{ - lcd.clear(); - lcd.draw4bpp(frame0[0], 78, 58); - lcd.setXY(164, 0); - lcd.draw4bpp(frame0[0], 78, 58); - lcd.setXY(0, 124); - lcd.draw4bpp(frame0[0], 78, 58); - lcd.setXY(164, 124); - lcd.draw4bpp(frame0[0], 78, 58); - - lcd.setColor(RGB16_CYAN); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(110, 4); - lcd.print("km/h"); - lcd.setCursor(110, 8); - lcd.print("RPM"); - lcd.setCursor(110, 11); - lcd.print("ENGINE"); - lcd.setCursor(110, 12); - lcd.print("LOAD %"); - - //lcd.setFont(FONT_SIZE_MEDIUM); - lcd.setColor(RGB16_CYAN); - lcd.setCursor(184, 2); - lcd.print("ELAPSED:"); - lcd.setCursor(184, 5); - lcd.print("DISTANCE: km"); - lcd.setCursor(184, 8); - lcd.print("AVG SPEED: kph"); - lcd.setCursor(184, 11); - lcd.print("ALTITUDE: m"); - - lcd.setCursor(18, 18); - lcd.print("BATTERY: V"); - lcd.setCursor(18, 21); - lcd.print("THROTTLE: %"); - lcd.setCursor(18, 24); - lcd.print("FUEL RATE: L/h"); - lcd.setCursor(18, 27); - lcd.print("INTAKE: C"); - - lcd.setCursor(184, 18); - lcd.print("UTC:"); - lcd.setCursor(184, 19); - lcd.print("LAT:"); - lcd.setCursor(280, 19); - lcd.print("SAT:"); - lcd.setCursor(184, 20); - lcd.print("LNG:"); - - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(184, 22); - lcd.print("ACC:"); - lcd.setCursor(184, 23); - lcd.print("GYR:"); - lcd.setCursor(184, 24); - lcd.print("MAG:"); - - lcd.setCursor(184, 26); - lcd.print("OBD FREQ:"); - - lcd.setCursor(184, 27); - lcd.print("GPS FREQ:"); - - lcd.setCursor(184, 28); - lcd.print("LOG SIZE:"); - - //lcd.setColor(0xFFFF); - /* - lcd.setCursor(32, 4); - lcd.print("%"); - lcd.setCursor(68, 5); - lcd.print("Intake Air"); - lcd.setCursor(112, 4); - lcd.print("C"); - */ - - state |= STATE_GUI_ON; - - fadeInScreen(); -} - -#if ENABLE_DATA_LOG -bool checkSD() -{ - Sd2Card card; - SdVolume volume; - state &= ~STATE_SD_READY; - pinMode(SS, OUTPUT); - - lcd.setFontSize(FONT_SIZE_MEDIUM); - if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) { - const char* type; - switch(card.type()) { - case SD_CARD_TYPE_SD1: - type = "SD1"; - break; - case SD_CARD_TYPE_SD2: - type = "SD2"; - break; - case SD_CARD_TYPE_SDHC: - type = "SDHC"; - break; - default: - type = "SDx"; - } - - lcd.print(type); - lcd.write(' '); - if (!volume.init(card)) { - lcd.print("No FAT!"); - return false; - } - - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - lcd.print((int)volumesize); - lcd.print("MB"); - } else { - lcd.println("No SD Card"); - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - lcd.println("Bad SD"); - return false; - } - - state |= STATE_SD_READY; - return true; -} -#endif - -#if USE_GPS -void processGPS() -{ - // process GPS data - char c = GPSUART.read(); - if (!gps.encode(c)) - return; - - // parsed GPS data is ready - uint32_t time; - uint32_t date; - - logger.dataTime = millis(); - - gps.get_datetime(&date, &time, 0); - if (date != gpsDate) { - // log date only if it's changed and valid - int year = date % 100; - if (date < 1000000 && date >= 10000 && year >= 15 && (gpsDate == 0 || year - (gpsDate % 100) <= 1)) { - logger.logData(PID_GPS_DATE, (int32_t)date); - gpsDate = date; - } - } - logger.logData(PID_GPS_TIME, (int32_t)time); - - int32_t lat, lng; - gps.get_position(&lat, &lng, 0); - - byte sat = gps.satellites(); - - // show GPS data interval - lcd.setFontSize(FONT_SIZE_SMALL); - if (lastGPSDataTime) { - lcd.setCursor(242, 27); - lcd.printInt((uint16_t)logger.dataTime - lastGPSDataTime); - lcd.print("ms"); - lcd.printSpace(2); - } - - // keep current data time as last GPS time - lastGPSDataTime = logger.dataTime; - - // display UTC date/time - lcd.write(' '); - lcd.setCursor(214, 18); - lcd.setFlags(FLAG_PAD_ZERO); - lcd.printLong(date, 6); - lcd.write(' '); - lcd.printLong(time, 8); - - // display latitude - lcd.setCursor(214, 19); - lcd.print((float)lat / 100000, 5); - // display longitude - lcd.setCursor(214, 20); - lcd.print((float)lng / 100000, 5); - // log latitude/longitude - logger.logData(PID_GPS_LATITUDE, lat); - logger.logData(PID_GPS_LONGITUDE, lng); - - // display number of satellites - if (sat < 100) { - lcd.setCursor(280, 20); - lcd.printInt(sat); - lcd.write(' '); - } - // display altitude - int32_t alt = gps.altitude(); - lcd.setFlags(0); - if (alt > -1000000 && alt < 1000000) { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(250, 11); - lcd.print(alt / 100); - lcd.write(' '); - // log altitude - logger.logData(PID_GPS_ALTITUDE, (int)(alt / 100)); - } - - // only log these data when satellite status is good - if (sat >= 3) { - gpsSpeed = gps.speed() * 1852 / 100000; - logger.logData(PID_GPS_SPEED, gpsSpeed); - } -} -#endif - -void processAccelerometer() -{ -#if USE_MPU6050 || USE_MPU9150 - int16_t ax, ay, az; - int16_t gx, gy, gz; -#if USE_MPU9150 - int16_t mx, my, mz; -#endif - int temp; - - if (logger.dataTime - lastMemsDataTime < ACC_DATA_INTERVAL) { - return; - } - -#if USE_MPU9150 - accelgyro.getMotion9(&ax, &ay, &az, &gx, &gy, &gz, &mx, &my, &mz); -#else - accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); -#endif - - logger.dataTime = millis(); - - temp = accelgyro.getTemperature(); - - ax /= ACC_DATA_RATIO; - ay /= ACC_DATA_RATIO; - az /= ACC_DATA_RATIO; - gx /= GYRO_DATA_RATIO; - gy /= GYRO_DATA_RATIO; - gz /= GYRO_DATA_RATIO; -#if USE_MPU9150 - mx /= COMPASS_DATA_RATIO; - my /= COMPASS_DATA_RATIO; - mz /= COMPASS_DATA_RATIO; -#endif - // display MEMS data - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(214, 22); - setColorByValue(ax, 50, 100, 200); - lcd.print(ax); - setColorByValue(ay, 50, 100, 200); - lcd.write('/'); - lcd.print(ay); - setColorByValue(az, 50, 100, 200); - lcd.write('/'); - lcd.print(az); - lcd.printSpace(8); - - // display gyro data - lcd.setCursor(214, 23); - lcd.setColor(RGB16_WHITE); - lcd.print(gx); - lcd.write('/'); - lcd.print(gy); - lcd.write('/'); - lcd.print(gz); - lcd.printSpace(8); - -#if USE_MPU9150 - // display compass data - lcd.setCursor(214, 24); - lcd.setColor(RGB16_WHITE); - lcd.print(mx); - lcd.write('/'); - lcd.print(my); - lcd.write('/'); - lcd.print(mz); - lcd.printSpace(8); -#endif - - // log x/y/z of accelerometer - logger.logData(PID_ACC, ax, ay, az); - // log x/y/z of gyro meter - logger.logData(PID_GYRO, gx, gy, gz); -#if USE_MPU9150 - // log x/y/z of compass - logger.logData(PID_COMPASS, mx, my, mz); -#endif - logger.logData(PID_MEMS_TEMP, temp); - - lastMemsDataTime = logger.dataTime; -#endif -} - -void logOBDData(byte pid, int value) -{ - char buffer[64]; - // send query for OBD-II PID - logger.dataTime = millis(); - // display data - showPIDData(pid, value); - - // log data to SD card - logger.logData(0x100 | pid, value); - - if (pid == PID_SPEED) { - // estimate distance travelled since last speed update - distance += (uint32_t)(value + lastSpeed) * (logger.dataTime - lastSpeedTime) / 6000; - // display speed - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(250, 5); - lcd.printInt(distance / 1000); - lcd.write('.'); - lcd.printInt(((uint16_t)distance % 1000) / 100); - // calculate and display average speed - int avgSpeed = (unsigned long)distance * 3600 / (millis() - startTime); - lcd.setCursor(250, 8); - lcd.printInt(avgSpeed); - - lastSpeed = value; - lastSpeedTime = logger.dataTime; - } -#if ENABLE_DATA_LOG - // flush SD data every 1KB - byte dataSizeKB = logger.dataSize >> 10; - if (dataSizeKB != lastFileSize) { - logger.flushFile(); - lastFileSize = dataSizeKB; - // display logged data size - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(242, 28); - lcd.print((unsigned int)(logger.dataSize >> 10)); - lcd.print("KB"); - } -#endif -} - -void showECUCap() -{ - static const byte PROGMEM pidlist[] = {PID_ENGINE_LOAD, PID_COOLANT_TEMP, PID_FUEL_PRESSURE, PID_INTAKE_MAP, PID_RPM, PID_SPEED, PID_TIMING_ADVANCE, PID_INTAKE_TEMP, PID_MAF_FLOW, PID_THROTTLE, PID_AUX_INPUT, - PID_EGR_ERROR, PID_COMMANDED_EVAPORATIVE_PURGE, PID_FUEL_LEVEL, PID_CONTROL_MODULE_VOLTAGE, PID_ABSOLUTE_ENGINE_LOAD, PID_AMBIENT_TEMP, PID_COMMANDED_THROTTLE_ACTUATOR, PID_ETHANOL_FUEL, - PID_FUEL_RAIL_PRESSURE, PID_HYBRID_BATTERY_PERCENTAGE, PID_ENGINE_OIL_TEMP, PID_FUEL_INJECTION_TIMING, PID_ENGINE_FUEL_RATE, PID_ENGINE_TORQUE_DEMANDED, PID_ENGINE_TORQUE_PERCENTAGE}; - - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setColor(RGB16_WHITE); - for (byte i = 0, n = 4; i < sizeof(pidlist) / sizeof(pidlist[0]); i++) { - byte pid = pgm_read_byte(pidlist + i); - if (obd.isValidPID(pid)) { - lcd.setCursor(252, n++); - lcd.write('0'); - lcd.print((int)pid | 0x100, HEX); - } - } - int values[sizeof(pidlist)]; - bool scanned = false; - bool touched = false; - for (uint32_t t = millis(); millis() - t < 10000 & !touched; ) { - for (byte i = 0, n = 4; i < sizeof(pidlist) / sizeof(pidlist[0]); i++) { - byte pid = pgm_read_byte(pidlist + i); - if (obd.isValidPID(pid)) { - int value; - lcd.setCursor(280 , n++); - if (obd.readPID(pid, value)) { - if (!scanned || value == values[i]) - lcd.setColor(RGB16_CYAN); - else if (value > values[i]) - lcd.setColor(RGB16_GREEN); - else - lcd.setColor(RGB16_RED); - byte n = lcd.print(value); - for (; n < 4; n++) lcd.print(' '); - values[i] = value; - } else { - lcd.setColor(RGB16_YELLOW); - lcd.print("N/A"); - } - } - if (!touched) { - int x, y; - touched = lcd.getTouchData(x, y); - } - } - scanned = true; - } -} - -void reconnect() -{ - fadeOutScreen(); -#if ENABLE_DATA_LOG - logger.closeFile(); -#endif - lcd.clear(); - state &= ~(STATE_OBD_READY | STATE_GUI_ON); - //digitalWrite(SD_CS_PIN, LOW); - for (;;) { - if (!obd.init()) - continue; - - int value; - if (obd.readPID(PID_RPM, value)) - break; - - obd.sleep(); - Narcoleptic.delay(4000); - } - // re-initialize - state |= STATE_OBD_READY; - startTime = millis(); - lastSpeedTime = startTime; - lastSpeed = 0; - distance = 0; -#if ENABLE_DATA_LOG - logger.openFile(); -#endif - initScreen(); -} - -// screen layout related stuff -void showStates() -{ - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(RGB16_WHITE); - lcd.setCursor(0, 8); - lcd.print("MEMS "); - lcd.setColor((state & STATE_MEMS_READY) ? RGB16_GREEN : RGB16_RED); - lcd.draw((state & STATE_MEMS_READY) ? tick : cross, 16, 16); - -#if USE_GPS - lcd.setColor(RGB16_WHITE); - lcd.setCursor(60, 8); - lcd.print(" GPS "); - if (state & STATE_GPS_CONNECTED) { - lcd.setColor(RGB16_GREEN); - lcd.draw(tick, 16, 16); - } else { - lcd.setColor(RGB16_RED); - lcd.draw(cross, 16, 16); - } -#endif - lcd.setColor(RGB16_WHITE); -} - -void testOut() -{ - static const char PROGMEM cmds[][6] = {"ATZ\r", "ATL1\r", "ATRV\r", "0100\r", "010C\r", "0902\r"}; - char buf[128]; - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(0, 11); - - for (byte i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { - char cmd[6]; - memcpy_P(cmd, cmds[i], sizeof(cmd)); - lcd.setColor(RGB16_WHITE); - lcd.print("Sending "); - lcd.println(cmd); - lcd.setColor(RGB16_CYAN); - if (obd.sendCommand(cmd, buf, sizeof(buf))) { - char *p = strstr(buf, cmd); - if (p) - p += strlen(cmd); - else - p = buf; - while (*p == '\r') p++; - while (*p) { - lcd.write(*p); - if (*p == '\r' && *(p + 1) != '\r') - lcd.write('\n'); - p++; - } - } else { - lcd.println("Timeout"); - } - delay(500); - } - lcd.println(); -} - -void setup() -{ -#if USE_GPS - GPSUART.begin(GPS_BAUDRATE); - lastGPSDataTime = 0; -#endif - logger.initSender(); - - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(0xFFE0); - lcd.println("MEGA LOGGER - OBD-II/GPS/MEMS"); - lcd.println(); - lcd.setColor(RGB16_WHITE); - -#if ENABLE_DATA_LOG - if (checkSD()) { - uint16_t index = logger.openFile(); - lcd.println(); - if (index > 0) { - lcd.print("File ID:"); - lcd.println(index); - } else { - lcd.print("No File"); - } - } -#endif - -#if USE_MPU6050 || USE_MPU9150 - Wire.begin(); - accelgyro.initialize(); - if (accelgyro.testConnection()) state |= STATE_MEMS_READY; -#endif - showStates(); - -#if USE_GPS - unsigned long t = millis(); - do { - if (GPSUART.available() && GPSUART.read() == '\r') { - state |= STATE_GPS_CONNECTED; - break; - } - } while (millis() - t <= 2000); - showStates(); -#endif - - obd.begin(); - - // this will send a bunch of commands and display response - testOut(); - - // initialize the OBD until success - while (!obd.init(OBD_PROTOCOL)); - state |= STATE_OBD_READY; - - char buf[64]; - if (obd.getVIN(buf, sizeof(buf))) { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setColor(RGB16_WHITE); - lcd.print("VIN:"); - lcd.setColor(RGB16_YELLOW); - lcd.println(buf); - } - - lcd.setCursor(0, 28); - lcd.setColor(RGB16_GREEN); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Tap on LCD to continue"); - - showECUCap(); - lcd.setCursor(0, 28); - lcd.setColor(RGB16_YELLOW); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("HERE WE GO! "); - - fadeOutScreen(); - initScreen(); - - startTime = millis(); - lastSpeedTime = startTime; - lastRefreshTime = millis(); -} - - -void loop() -{ - static byte index2 = 0; - const byte pids[]= {PID_RPM, PID_SPEED, PID_THROTTLE, PID_ENGINE_LOAD}; - const byte pids2[] = {PID_COOLANT_TEMP, PID_INTAKE_TEMP, PID_ENGINE_FUEL_RATE}; - int values[sizeof(pids)] = {0}; - uint32_t pidTime = millis(); - // read multiple OBD-II PIDs - byte results = obd.readPID(pids, sizeof(pids), values); - pidTime = millis() - pidTime; - if (results == sizeof(pids)) { - for (byte n = 0; n < sizeof(pids); n++) { - logOBDData(pids[n], values[n]); - } - } - byte pid = pids2[index2 = (index2 + 1) % sizeof(pids2)]; - // check validation and read a single OBD-II PID - if (obd.isValidPID(pid)) { - int value; - if (obd.readPID(pid, value)) { - logOBDData(pid, value); - } - } - - if (logger.dataTime - lastRefreshTime >= 1000) { - float v = obd.getVoltage(); - ShowVoltage(v); - - char buf[12]; - // display elapsed time - unsigned int sec = (logger.dataTime - startTime) / 1000; - sprintf(buf, "%02u:%02u", sec / 60, sec % 60); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(250, 2); - lcd.print(buf); - // display OBD time - if (results) { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(242, 26); - lcd.print((uint16_t)(pidTime / results)); - lcd.print("ms "); - } - lastRefreshTime = logger.dataTime; - } - - if (obd.errors >= 3) { - reconnect(); - } - -#if USE_GPS - if (millis() - lastGPSDataTime > GPS_DATA_TIMEOUT || gps.satellites() < 3) { - // GPS not ready - state &= ~STATE_GPS_READY; - } else { - // GPS ready - state |= STATE_GPS_READY; - } -#endif -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/README.md b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/README.md deleted file mode 100644 index 13a5fb7..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/README.md +++ /dev/null @@ -1,3 +0,0 @@ -This sketch is developed for [Freematics Mega Kit](https://freematics.com/products/arduino-telematics-kit-3/). It works as a vehicle telematics data display and logger. - -![Freematics Mega Kit running this sketch](https://freematics.com/pages/wp-content/uploads/2018/04/FreematicsMegaKit-running.jpg) diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/config.h deleted file mode 100644 index 66aa53d..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/config.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* OBD-II Adapter options -**************************************/ -//#define OBD_ADAPTER_I2C -#define OBD_ADAPTER_UART -#define OBD_PROTOCOL PROTO_AUTO - -/************************************** -* Data logging options -**************************************/ -// enable(1)/disable(0) data logging (if SD card is present) -#define ENABLE_DATA_LOG 1 -#define SD_CS_PIN SS - -/************************************** -* Data streaming options -**************************************/ -// enable(1)/disable(0) data streaming -#define ENABLE_DATA_OUT 1 - -// uses software(1)/hardware(0) serial for data streaming -#define RF_SERIAL Serial -#define STREAM_BAUDRATE 115200 /* bps */ - -// this defines the format of data streaming -// FORMAT_BIN is required by Freematics OBD iOS App -// FORMAT_TEXT for text-based, text names for PID -#define STREAM_FORMAT FORMAT_TEXT - -/************************************** -* GPS configuration -**************************************/ -#define USE_GPS 1 -#define GPSUART Serial2 -#define MAX_GPS_PROCESS_TIME 50 /* ms */ -#define GPS_DATA_TIMEOUT 2000 /* ms */ - -// GPS baudrate could be 38400bps or 115200bps -#define GPS_BAUDRATE 115200 /* bps */ - -/************************************** -* Accelerometer & Gyro -**************************************/ -#define ACC_DATA_RATIO 10 -#define GYRO_DATA_RATIO 100 - -/************************************** -* LCD module (uncomment only one) -**************************************/ -LCD_R61581 lcd; /* 3.5" CTE35IPS/R61581 based LCD */ -//LCD_Null lcd; - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/datalogger.h deleted file mode 100644 index 462c157..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/datalogger.h +++ /dev/null @@ -1,281 +0,0 @@ -/************************************************************************* -* Freematics Data Logger Class -* Distributed under GPL v2.0 -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -#define FORMAT_BIN 0 -#define FORMAT_TEXT 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -#define PID_DATA_SIZE 0x80 - -#define FILE_NAME_FORMAT "DAT%05d.CSV" -#define FILE_PATH "/DATA/" - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL -SoftwareSerial SerialRF(A2, A3); -#elif defined(RF_SERIAL) -#define SerialRF RF_SERIAL -#else -#define SerialRF Serial -#endif - -#endif - -#if ENABLE_DATA_LOG -static File sdfile; -#endif - -typedef struct { - uint8_t pid; - char name[3]; -} PID_NAME; - -const PID_NAME pidNames[] PROGMEM = { -{PID_ACC, {'A','C','C'}}, -{PID_GYRO, {'G','Y','R'}}, -{PID_COMPASS, {'M','A','G'}}, -{PID_GPS_LATITUDE, {'L','A','T'}}, -{PID_GPS_LONGITUDE, {'L','N','G'}}, -{PID_GPS_ALTITUDE, {'A','L','T'}}, -{PID_GPS_SPEED, {'S','P','D'}}, -{PID_GPS_HEADING, {'C','R','S'}}, -{PID_GPS_SAT_COUNT, {'S','A','T'}}, -{PID_GPS_TIME, {'U','T','C'}}, -{PID_GPS_DATE, {'D','T','E'}}, -{PID_BATTERY_VOLTAGE, {'B','A','T'}}, -{PID_DATA_SIZE, {'D','A','T'}}, -}; - -class CDataLogger { -public: - CDataLogger() - { - m_lastDataTime = 0; -#if ENABLE_DATA_CACHE - cacheBytes = 0; -#endif - } - void initSender() - { -#if ENABLE_DATA_OUT - SerialRF.begin(STREAM_BAUDRATE); -#endif - } - byte genTimestamp(char* buf, bool absolute) - { - byte n; - if (absolute || dataTime >= m_lastDataTime + 60000) { - // absolute timestamp - n = sprintf(buf, "#%lu,", dataTime); - } else { - // incremental timestamp - n = sprintf(buf, "%u,", (unsigned int)(dataTime - m_lastDataTime)); - } - return n; - } - void record(const char* buf, byte len) - { -#if ENABLE_DATA_LOG -#if STREAM_FORMAT == FORMAT_BIN - dataSize += sdfile.write(buf, len); -#else - char tmp[12]; - byte n = genTimestamp(tmp, dataSize == 0); - dataSize += sdfile.write(tmp, n); - dataSize += sdfile.write(buf, len); - sdfile.println(); - dataSize += 3; -#endif -#endif - m_lastDataTime = dataTime; - } - void dispatch(const char* buf, byte len) - { -#if ENABLE_DATA_CACHE - if (cacheBytes + len < MAX_CACHE_SIZE - 10) { - cacheBytes += genTimestamp(cache + cacheBytes, cacheBytes == 0); - memcpy(cache + cacheBytes, buf, len); - cacheBytes += len; - cache[cacheBytes++] = '\n'; - cache[cacheBytes] = 0; - } -#endif -#if ENABLE_DATA_OUT - SerialRF.write(buf, len); - SerialRF.println(); -#endif - } - void logData(const char* buf, byte len) - { -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid) - { - char buf[8]; - byte len = translatePIDName(pid, buf); -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, int value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%ld", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%lu", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int values[]) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d,%d,%d", values[0], values[1], values[2]) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {values[0], values[1], values[2]}}; - ld.checksum = getChecksum((char*)&ld, 20); - dispatch((const char*)&ld, 20); -#else - dispatch(buf, len); -#endif - record(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = FILE_PATH; - - dataSize = 0; - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + sizeof(FILE_PATH) - 1, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + sizeof(FILE_PATH) - 1, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - m_lastDataTime = dateTime; - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -#if ENABLE_DATA_CACHE - char cache[MAX_CACHE_SIZE]; - int cacheBytes; -#endif -private: - byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } - byte translatePIDName(uint16_t pid, char* text) - { -#if STREAM_FORMAT == FORMAT_TEXT && USE_FRIENDLY_PID_NAME - for (uint16_t n = 0; n < sizeof(pidNames) / sizeof(pidNames[0]); n++) { - uint16_t id = pgm_read_byte(&pidNames[n].pid); - if (pid == id) { - memcpy_P(text, pidNames[n].name, 3); - text[3] = ','; - return 4; - } - } -#endif - return sprintf(text, "%X,", pid); - } - uint32_t m_lastDataTime; -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/images.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/images.h deleted file mode 100644 index 8037fe2..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/images.h +++ /dev/null @@ -1,86 +0,0 @@ -const unsigned char PROGMEM frame0[78][78 * 2] = { -{0xe3,0x20,0xec,0x5a,0xcb,0x5a,0x6a,0x4a,0x28,0x42,0xc7,0x39,0x86,0x31,0x25,0x29,0x04,0x21,0xa3,0x18,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x18,0xe3,0x20,0x04,0x21,0x65,0x29,0x86,0x31,0xc7,0x39,0x08,0x42,0x49,0x4a,0x8a,0x52,0xaa,0x5a,0xc4,0x18}, -{0xec,0x5a,0x8d,0x73,0xab,0x52,0x49,0x4a,0x29,0x42,0x07,0x42,0xa7,0x31,0x86,0x31,0x66,0x29,0x45,0x29,0x45,0x21,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x29,0x45,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x21,0x44,0x29,0x45,0x29,0x44,0x29,0x45,0x21,0x45,0x29,0x66,0x29,0xa6,0x39,0xc7,0x39,0x07,0x42,0x29,0x42,0x89,0x52,0x6d,0x6b,0xcb,0x5a}, -{0x2c,0x6b,0xcb,0x5a,0xe7,0x39,0x86,0x31,0x65,0x29,0x25,0x21,0x04,0x21,0xc3,0x18,0xa2,0x10,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0xa2,0x10,0xc3,0x18,0x04,0x21,0x25,0x29,0x86,0x31,0xa7,0x39,0xaa,0x5a,0xec,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xab,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xca,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x31,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x85,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xab,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xab,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x5a,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x66,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x81,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x31,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xca,0x5a,0xc7,0x39,0x86,0x31,0x66,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x5a,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0xaa,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x81,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0xaa,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x5a,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xc3,0x18,0x04,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x10,0xc3,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x31,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xa6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0x03,0x21,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcb,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0x04,0x19,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0xaa,0x5a,0xcb,0x5a}, -{0x0d,0x63,0xaa,0x5a,0xc7,0x31,0x86,0x31,0x46,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x82,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x86,0x31,0x65,0x29,0x04,0x21,0xe3,0x20,0xa3,0x18,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x31,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x0c,0x63,0xaa,0x5a,0xc7,0x39,0x86,0x31,0x45,0x29,0x24,0x29,0xe4,0x18,0xc2,0x18,0x62,0x08,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x82,0x08,0xc2,0x18,0xe4,0x18,0x24,0x29,0x66,0x29,0xc6,0x39,0xaa,0x52,0xcb,0x5a}, -{0x2c,0x63,0xab,0x52,0xc7,0x39,0x66,0x31,0x65,0x29,0x04,0x21,0xe3,0x18,0xa3,0x10,0x81,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x10,0xa3,0x18,0x03,0x21,0x25,0x21,0x65,0x29,0xa7,0x39,0x8a,0x5a,0xcc,0x5a}, -{0x2d,0x63,0xcb,0x5a,0xc7,0x39,0xa6,0x39,0x66,0x29,0x24,0x29,0x04,0x19,0xc3,0x18,0x83,0x10,0x61,0x10,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x61,0x10,0xa3,0x10,0xc3,0x18,0x04,0x19,0x44,0x29,0x66,0x29,0xc7,0x39,0xcb,0x52,0xcb,0x5a}, -{0x0c,0x63,0x6e,0x73,0xaa,0x52,0x49,0x4a,0x28,0x4a,0xe8,0x41,0xc7,0x39,0x86,0x31,0x65,0x31,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x25,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x45,0x29,0x65,0x31,0x86,0x31,0xe7,0x39,0xe8,0x41,0x49,0x4a,0x8a,0x52,0x6d,0x73,0xcc,0x5a}, -{0xe4,0x18,0xeb,0x62,0xcb,0x5a,0x69,0x52,0x09,0x42,0xc7,0x39,0x86,0x29,0x44,0x29,0x04,0x19,0xc2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xa2,0x18,0xa3,0x10,0xc2,0x18,0xe4,0x18,0x24,0x29,0x45,0x29,0x86,0x31,0xc7,0x39,0x08,0x42,0x49,0x4a,0xaa,0x5a,0xcb,0x52,0xc3,0x18}, -}; - -static const PROGMEM uint8_t tick[16 * 16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -static const PROGMEM uint8_t cross[16 * 16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/megaloggerHD.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/megaloggerHD.ino deleted file mode 100644 index 046ace2..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/megaloggerHD/megaloggerHD.ino +++ /dev/null @@ -1,832 +0,0 @@ -/************************************************************************* -* Reference code for Freematics OBD-II Advanced Telematics Kit -* Visit http://freematics.com for more information -* Distributed under BSD license -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "config.h" -#if ENABLE_DATA_LOG -#include -#endif -#include "Narcoleptic.h" -#include "images.h" -#include "datalogger.h" - -// logger states -#define STATE_SD_READY 0x1 -#define STATE_OBD_READY 0x2 -#define STATE_GPS_CONNECTED 0x4 -#define STATE_GPS_READY 0x8 -#define STATE_MEMS_READY 0x10 -#define STATE_GUI_ON 0x20 - -#if USE_GPS -// GPS logging can only be enabled when there is additional hardware serial UART -#define GPSUART Serial2 -TinyGPS gps; -#endif - - -static uint8_t lastFileSize = 0; -static uint32_t lastRefreshTime = 0; -static uint32_t distance = 0; -static uint32_t startTime = 0; -static uint16_t lastSpeed = 0; -static uint32_t lastSpeedTime = 0; -static uint32_t gpsDate = 0; -#if USE_GPS -static uint32_t lastGPSDataTime = 0; -static int gpsSpeed = -1; -#endif - -byte state = 0; - -void processMEMS(); -void processGPS(); - -CDataLogger logger; - -#ifdef OBD_ADAPTER_I2C -class CMyOBD : public COBDI2C -#else -class CMyOBD : public COBD -#endif -{ -public: - void dataIdleLoop() - { - if (!(state & STATE_GUI_ON)) { - delay(10); - return; - } - -#if USE_GPS - uint32_t t = millis(); - while (GPSUART.available() && millis() - t < MAX_GPS_PROCESS_TIME) { - processGPS(); - } -#endif - } -}; - -CMyOBD obd; - -void setColorByValue(int value, int threshold1, int threshold2, int threshold3) -{ - if (value < 0) value = -value; - if (value < threshold1) { - lcd.setColor(RGB16_WHITE); - } else if (value < threshold2) { - byte n = (uint32_t)(threshold2 - value) * 255 / (threshold2 - threshold1); - lcd.setColor(255, 255, n); - } else if (value < threshold3) { - byte n = (uint32_t)(threshold3 - value) * 255 / (threshold3 - threshold2); - lcd.setColor(255, n, 0); - } else { - lcd.setColor(255, 0, 0); - } -} - -void showPIDData(byte pid, int value) -{ - char buf[8]; - switch (pid) { - case PID_RPM: - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(14, 8); - if (value >= 10000) break; - setColorByValue(value, 2500, 3500, 5000); - lcd.printInt(value, 6); - break; - case PID_SPEED: - if (value < 1000) { - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(50,3); - setColorByValue(value, 60, 100, 160); - lcd.printInt(value, 3); - -#if USE_GPS - if (gpsSpeed != -1) { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(110, 3); - lcd.setColor(RGB16_YELLOW); - int diff = gpsSpeed - value; - if (diff >= 0) { - lcd.write('+'); - lcd.printInt(diff); - } else { - lcd.write('-'); - lcd.printInt(-diff); - } - lcd.write(' '); - } -#endif - } - break; - case PID_ENGINE_LOAD: - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(50, 13); - if (value >= 100) value = 99; - setColorByValue(value, 75, 80, 100); - lcd.printInt(value, 3); - break; - case PID_THROTTLE: - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(102, 27); - if (value >= 100) value = 99; - setColorByValue(value, 50, 75, 100); - lcd.printInt(value, 2); - break; - case PID_ENGINE_FUEL_RATE: - if (value < 100) { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(102, 30); - lcd.printInt(value, 2); - } - break; - case PID_INTAKE_TEMP: - if (value >= 0 && value < 100) { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(102, 33); - lcd.printInt(value, 2); - } - break; - } - lcd.setColor(RGB16_WHITE); -} - -void fadeOutScreen() -{ - // fade out backlight - for (int n = 254; n >= 0; n--) { - lcd.setBackLight(n); - delay(3); - } -} - -void fadeInScreen() -{ - for (int n = 1; n <= 255; n++) { - lcd.setBackLight(n); - delay(6); - } -} - -void initScreen() -{ - lcd.clear(); - lcd.draw2x(frame0[0], 78, 78); - lcd.setXY(162, 0); - lcd.draw2x(frame0[0], 78, 78); - lcd.setXY(324, 0); - lcd.draw2x(frame0[0], 78, 78); - lcd.setXY(0, 164); - lcd.draw2x(frame0[0], 78, 78); - lcd.setXY(162, 164); - lcd.draw2x(frame0[0], 78, 78); - lcd.setXY(324, 164); - lcd.draw2x(frame0[0], 78, 78); - - lcd.setColor(RGB16_CYAN); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(110,4); - lcd.print("kph"); - lcd.setCursor(110, 9); - lcd.print("RPM"); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(110, 14); - lcd.print("ENGINE"); - lcd.setCursor(110, 15); - lcd.print("LOAD %"); - - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(208, 3); - lcd.print("Elapsed"); - lcd.setCursor(204, 8); - lcd.print("Distance"); - lcd.setCursor(180, 13); - lcd.print("Average Speed"); - - lcd.setCursor(16, 24); - lcd.print("Battery V"); - lcd.setCursor(16, 27); - lcd.print("Throttle %"); - lcd.setCursor(16, 30); - lcd.print("Fuel L/h"); - lcd.setCursor(16, 33); - lcd.print("Intake: C"); - - lcd.setCursor(180, 24); - lcd.print("UTC:"); - lcd.setCursor(180, 27); - lcd.print("LAT:"); - lcd.setCursor(180, 30); - lcd.print("LNG:"); - lcd.setCursor(180, 33); - lcd.print("ALT:"); - lcd.setCursor(180, 36); - lcd.print("SAT:"); - - lcd.setCursor(340, 3); - lcd.print("Accelerometer"); - lcd.setCursor(356, 8); - lcd.print("Gyroscope"); - lcd.setCursor(348, 13); - lcd.print("Temperature"); - - lcd.setCursor(348, 24); - lcd.print("OBD Interval"); - - lcd.setCursor(348, 29); - lcd.print("GPS Interval"); - - lcd.setCursor(352, 34); - lcd.print("Data Size"); - - //lcd.setColor(0xFFFF); - /* - lcd.setCursor(32, 4); - lcd.print("%"); - lcd.setCursor(68, 5); - lcd.print("Intake Air"); - lcd.setCursor(112, 4); - lcd.print("C"); - */ - - state |= STATE_GUI_ON; - - fadeInScreen(); -} - -#if ENABLE_DATA_LOG -bool checkSD() -{ - Sd2Card card; - SdVolume volume; - state &= ~STATE_SD_READY; - pinMode(SS, OUTPUT); - - lcd.setFontSize(FONT_SIZE_MEDIUM); - if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) { - const char* type; - switch(card.type()) { - case SD_CARD_TYPE_SD1: - type = "SD1"; - break; - case SD_CARD_TYPE_SD2: - type = "SD2"; - break; - case SD_CARD_TYPE_SDHC: - type = "SDHC"; - break; - default: - type = "SDx"; - } - - lcd.print(type); - lcd.write(' '); - if (!volume.init(card)) { - lcd.println("No FAT!"); - return false; - } - - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - lcd.print((int)volumesize); - lcd.print("MB"); - } else { - lcd.print("SD Card "); - lcd.setColor(RGB16_RED); - lcd.draw(cross, 16, 16); - lcd.setColor(RGB16_WHITE); - lcd.println(); - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - lcd.println("Bad SD"); - return false; - } - - state |= STATE_SD_READY; - return true; -} -#endif - -#if USE_GPS -void processGPS() -{ - // process GPS data - char c = GPSUART.read(); - if (!gps.encode(c)) - return; - - // parsed GPS data is ready - uint32_t time; - uint32_t date; - - logger.dataTime = millis(); - - gps.get_datetime(&date, &time, 0); - if (date != gpsDate) { - // log date only if it's changed and valid - int year = date % 100; - if (date < 1000000 && date >= 10000 && year >= 15 && (gpsDate == 0 || year - (gpsDate % 100) <= 1)) { - logger.logData(PID_GPS_DATE, (int32_t)date); - gpsDate = date; - } - } - logger.logData(PID_GPS_TIME, (int32_t)time); - - int32_t lat, lng; - gps.get_position(&lat, &lng, 0); - - byte sat = gps.satellites(); - - // show GPS data interval - lcd.setFontSize(FONT_SIZE_MEDIUM); - if (lastGPSDataTime) { - lcd.setCursor(380, 31); - lcd.printInt((uint16_t)logger.dataTime - lastGPSDataTime); - lcd.print("ms"); - lcd.printSpace(2); - } - - // keep current data time as last GPS time - lastGPSDataTime = logger.dataTime; - - // display UTC date/time - lcd.setFlags(FLAG_PAD_ZERO); - lcd.setCursor(216, 24); - lcd.printLong(time, 8); - - // display latitude - lcd.setCursor(216, 27); - lcd.print((float)lat / 100000, 5); - // display longitude - lcd.setCursor(216, 30); - lcd.print((float)lng / 100000, 5); - // log latitude/longitude - logger.logData(PID_GPS_LATITUDE, lat); - logger.logData(PID_GPS_LONGITUDE, lng); - - // display altitude - int32_t alt = gps.altitude(); - lcd.setFlags(0); - if (alt > -1000000 && alt < 1000000) { - lcd.setCursor(216, 33); - lcd.print(alt / 100); - lcd.print("m "); - } - // log altitude - logger.logData(PID_GPS_ALTITUDE, (int)(alt / 100)); - - // display number of satellites - if (sat < 100) { - lcd.setCursor(216, 36); - lcd.printInt(sat); - lcd.write(' '); - } - - // only log these data when satellite status is good - if (sat >= 3) { - gpsSpeed = gps.speed() * 1852 / 100000; - logger.logData(PID_GPS_SPEED, gpsSpeed); - } -} -#endif - -void processMEMS() -{ - int acc[3]; - int gyro[3]; - int temp; - - if (!obd.memsRead(acc, gyro, 0, &temp)) return; - - logger.dataTime = millis(); - - acc[0] /= ACC_DATA_RATIO; - acc[1] /= ACC_DATA_RATIO; - acc[2] /= ACC_DATA_RATIO; - gyro[0] /= GYRO_DATA_RATIO; - gyro[1] /= GYRO_DATA_RATIO; - gyro[2] /= GYRO_DATA_RATIO; - - // display MEMS data - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(362, 5); - setColorByValue(acc[0], 50, 100, 200); - lcd.print(acc[0]); - setColorByValue(acc[1], 50, 100, 200); - lcd.write('/'); - lcd.print(acc[1]); - setColorByValue(acc[2], 50, 100, 200); - lcd.write('/'); - lcd.print(acc[2]); - Serial.println(acc[2]); - lcd.printSpace(8); - - // display gyro data - lcd.setCursor(374, 10); - lcd.setColor(RGB16_WHITE); - lcd.print(gyro[0]); - lcd.write('/'); - lcd.print(gyro[1]); - lcd.write('/'); - lcd.print(gyro[2]); - lcd.printSpace(8); - - // display adapter temperature - lcd.setCursor(382, 15); - lcd.setColor(RGB16_WHITE); - lcd.print((float)temp / 10, 1); - lcd.print("C "); - - // log x/y/z of accelerometer - logger.logData(PID_ACC, acc); - // log x/y/z of gyro meter - logger.logData(PID_GYRO, gyro); -} - -void logOBDData(byte pid, int value) -{ - char buffer[64]; - // send query for OBD-II PID - logger.dataTime = millis(); - // display data - showPIDData(pid, value); - - // log data to SD card - logger.logData(0x100 | pid, value); - - if (pid == PID_SPEED) { - // estimate distance travelled since last speed update - distance += (uint32_t)(value + lastSpeed) * (logger.dataTime - lastSpeedTime) / 6000; - // display speed - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(220, 10); - lcd.printInt(distance / 1000); - lcd.write('.'); - lcd.printInt(((uint16_t)distance % 1000) / 100); - lcd.print(" km"); - // calculate and display average speed - int avgSpeed = (unsigned long)distance * 3600 / (millis() - startTime); - lcd.setCursor(220, 15); - lcd.printInt(avgSpeed); - lcd.print(" km/h"); - - lastSpeed = value; - lastSpeedTime = logger.dataTime; - } -#if ENABLE_DATA_LOG - // flush SD data every 1KB - byte dataSizeKB = logger.dataSize >> 10; - if (dataSizeKB != lastFileSize) { - logger.flushFile(); - lastFileSize = dataSizeKB; - // display logged data size - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(380, 36); - lcd.print((unsigned int)(logger.dataSize >> 10)); - lcd.print("KB"); - } -#endif -} - -void processTouch() -{ - int x, y; - if (lcd.getTouchData(x, y)) { - Serial.print("X:"); - Serial.print(x); - Serial.print(" Y:"); - Serial.println(y); - } -} - -void showECUCap() -{ - static const byte PROGMEM pidlist[] = {PID_ENGINE_LOAD, PID_COOLANT_TEMP, PID_FUEL_PRESSURE, PID_INTAKE_MAP, PID_RPM, PID_SPEED, PID_TIMING_ADVANCE, PID_INTAKE_TEMP, PID_MAF_FLOW, PID_THROTTLE, PID_AUX_INPUT, - PID_EGR_ERROR, PID_COMMANDED_EVAPORATIVE_PURGE, PID_FUEL_LEVEL, PID_CONTROL_MODULE_VOLTAGE, PID_ABSOLUTE_ENGINE_LOAD, PID_AMBIENT_TEMP, PID_COMMANDED_THROTTLE_ACTUATOR, PID_ETHANOL_FUEL, - PID_FUEL_RAIL_PRESSURE}; - - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(RGB16_WHITE); - for (byte i = 0, n = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i++, n += 2) { - byte pid = pgm_read_byte(pidlist + i); - bool valid = obd.isValidPID(pid); - lcd.setCursor(320, n); - lcd.setColor(valid ? RGB16_GREEN : RGB16_RED); - lcd.draw(valid ? tick : cross, 16, 16); - lcd.setColor(RGB16_WHITE); - lcd.print(" 0"); - lcd.print((int)pid | 0x100, HEX); - } - int values[sizeof(pidlist)]; - bool scanned = false; - bool touched = false; - for (uint32_t t = millis(); millis() - t < 5000; ) { - for (byte i = 0, n = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i++, n += 2) { - byte pid = pgm_read_byte(pidlist + i); - if (obd.isValidPID(pid)) { - int value; - lcd.setCursor(392, n); - if (obd.readPID(pid, value)) { - if (!scanned || value == values[i]) - lcd.setColor(RGB16_CYAN); - else if (value > values[i]) - lcd.setColor(RGB16_GREEN); - else - lcd.setColor(RGB16_RED); - byte n = lcd.print(value); - for (; n < 4; n++) lcd.print(' '); - values[i] = value; - } else { - lcd.setColor(RGB16_YELLOW); - lcd.print("N/A"); - } - } - } - scanned = true; - } -} - -void reconnect() -{ - fadeOutScreen(); -#if ENABLE_DATA_LOG - logger.closeFile(); -#endif - lcd.clear(); - state &= ~(STATE_OBD_READY | STATE_GUI_ON); - //digitalWrite(SD_CS_PIN, LOW); - for (;;) { - if (obd.init()) - break; - - obd.enterLowPowerMode(); - Narcoleptic.delay(10000); - obd.leaveLowPowerMode(); - } - // re-initialize - state |= STATE_OBD_READY; - startTime = millis(); - lastSpeedTime = startTime; - lastSpeed = 0; - distance = 0; -#if ENABLE_DATA_LOG - logger.openFile(); -#endif - initScreen(); -} - -// screen layout related stuff -void showStates() -{ - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(RGB16_WHITE); - lcd.setCursor(0, 10); - lcd.print("MEMS "); - lcd.setColor((state & STATE_MEMS_READY) ? RGB16_GREEN : RGB16_RED); - lcd.draw((state & STATE_MEMS_READY) ? tick : cross, 16, 16); - -#if USE_GPS - lcd.setColor(RGB16_WHITE); - lcd.setCursor(60, 10); - lcd.print(" GPS "); - if (state & STATE_GPS_CONNECTED) { - lcd.setColor(RGB16_GREEN); - lcd.draw(tick, 16, 16); - } else { - lcd.setColor(RGB16_RED); - lcd.draw(cross, 16, 16); - } -#endif - lcd.setColor(RGB16_WHITE); -} - -void testOut() -{ - const char cmds[][6] = {"ATZ\r", "ATH1\r", "ATRV\r", "0100\r", "0902\r"}; - char buf[128]; - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(0, 13); - - for (byte i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { - const char* cmd = cmds[i]; - lcd.setColor(RGB16_WHITE); - lcd.print("Sending "); - lcd.println(cmd); - Serial.println(cmd); - lcd.setColor(RGB16_CYAN); - if (obd.sendCommand(cmd, buf, sizeof(buf))) { - char *p = strstr(buf, cmd); - if (p) - p += strlen(cmd); - else - p = buf; - Serial.println(p); - while (*p == '\r') p++; - while (*p) { - lcd.write(*p); - if (*p == '\r' && *(p + 1) != '\r') { - lcd.write('\n'); - } - p++; - } - lcd.println(); - } else { - lcd.println("Timeout"); - Serial.println("Timeout"); - } - delay(500); - } - lcd.println(); -} - -void setup() -{ - delay(500); - Serial.begin(115200); -#if USE_GPS - GPSUART.begin(GPS_BAUDRATE); - lastGPSDataTime = 0; -#endif - logger.initSender(); - - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(0xFFE0); - lcd.println("MEGA LOGGER HD - OBD-II/GPS/MEMS"); - lcd.println(); - lcd.setColor(RGB16_WHITE); - -#if ENABLE_DATA_LOG - if (checkSD()) { - uint16_t index = logger.openFile(); - lcd.println(); - if (index > 0) { - lcd.print("File ID:"); - lcd.println(index); - } else { - lcd.println("No File"); - } - } -#endif - - byte version = obd.begin(); -#ifdef OBD_ADAPTER_I2C - lcd.print("OBD-II I2C Adapter "); -#else - lcd.print("OBD-II UART Adapter "); -#endif - if (version) { - lcd.print("Firmware V"); - lcd.print(version); - } else { - lcd.setColor(RGB16_RED); - lcd.draw(cross, 16, 16); - lcd.setColor(RGB16_WHITE); - } - -#ifdef OBD_ADAPTER_I2C - Wire.begin(); -#endif - if (version && obd.memsInit()) - state |= STATE_MEMS_READY; - - showStates(); - -#if USE_GPS - unsigned long t = millis(); - while (GPSUART.available()) GPSUART.read(); - do { - if (GPSUART.available() && GPSUART.read() == '\r') { - state |= STATE_GPS_CONNECTED; - break; - } - } while (millis() - t <= 2000); - showStates(); -#endif - - // this will send a bunch of commands and display response - testOut(); - - // initialize the OBD until success - while (!obd.init(OBD_PROTOCOL)); - state |= STATE_OBD_READY; - - char buf[64]; - if (obd.getVIN(buf, sizeof(buf))) { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setColor(RGB16_WHITE); - lcd.print("VIN:"); - lcd.setColor(RGB16_YELLOW); - lcd.println(buf); - } - - uint16_t dtc[6]; - int num = obd.readDTC(dtc, sizeof(dtc) / sizeof(dtc[0])); - lcd.setColor(RGB16_WHITE); - lcd.print(num); - lcd.println(" DTC found"); - if (num > 0) { - lcd.setColor(RGB16_YELLOW); - for (byte i = 0; i < num; i++) { - lcd.print(dtc[i], HEX); - lcd.print(' '); - } - } - lcd.println(); - - showECUCap(); - lcd.setCursor(0, 28); - lcd.setColor(RGB16_YELLOW); - lcd.setFontSize(FONT_SIZE_MEDIUM); - - fadeOutScreen(); - initScreen(); - - startTime = millis(); - lastSpeedTime = startTime; - lastRefreshTime = millis(); -} - - -void loop() -{ - static byte index2 = 0; - const byte pids[]= {PID_RPM, PID_SPEED, PID_THROTTLE, PID_ENGINE_LOAD}; - const byte pids2[] = {PID_COOLANT_TEMP, PID_INTAKE_TEMP, PID_ENGINE_FUEL_RATE}; - int values[sizeof(pids)] = {0}; - uint32_t pidTime = millis(); - // read multiple OBD-II PIDs - byte results = obd.readPID(pids, sizeof(pids), values); - pidTime = millis() - pidTime; - if (results == sizeof(pids)) { - for (byte n = 0; n < sizeof(pids); n++) { - logOBDData(pids[n], values[n]); - } - } - byte pid = pids2[index2 = (index2 + 1) % sizeof(pids2)]; - // check validation and read a single OBD-II PID - if (obd.isValidPID(pid)) { - int value; - if (obd.readPID(pid, value)) { - logOBDData(pid, value); - } - } - - if (state & STATE_MEMS_READY) { - processMEMS(); - } - - if (logger.dataTime - lastRefreshTime >= 1000) { - float v = obd.getVoltage(); - if (v > 0) { - lcd.setCursor(84, 24); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print(v, 1); - } - - char buf[12]; - // display elapsed time - unsigned int sec = (logger.dataTime - startTime) / 1000; - sprintf(buf, "%02u:%02u", sec / 60, sec % 60); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(220, 5); - lcd.print(buf); - // display OBD time - if (results) { - lcd.setCursor(380, 26); - lcd.print((uint16_t)(pidTime / results)); - lcd.print("ms "); - } - lastRefreshTime = logger.dataTime; - } - - if (obd.errors >= 3) { - reconnect(); - } - -#if USE_GPS - if (millis() - lastGPSDataTime > GPS_DATA_TIMEOUT || gps.satellites() < 3) { - // GPS not ready - state &= ~STATE_GPS_READY; - } else { - // GPS ready - state |= STATE_GPS_READY; - } -#endif -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/README.txt b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/README.txt deleted file mode 100644 index d381889..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -This is the source code for the Arduino OBD-II data logger, which displays (on a 128x64 OLED display module) and records (to a SD card) a selected set of OBD-II data. - -To compile the code with Arduino IDE, please copy all library files from the libraries directory to Arduino's libraries directory. - -The source code is distributed under GPL license. diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/config.h deleted file mode 100644 index 6ac97a1..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/config.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Data logging/streaming out -**************************************/ -#define ENABLE_DATA_OUT 0 -#define ENABLE_DATA_LOG 0 -#define USE_SOFTSERIAL 0 -//this defines the format of log file -#define LOG_FORMAT FORMAT_CSV - -/************************************** -* Choose SD pin here -**************************************/ -//#define SD_CS_PIN SS // generic -//#define SD_CS_PIN 4 // ethernet shield -//#define SD_CS_PIN 7 // microduino -#define SD_CS_PIN 10 // SD breakout - -/************************************** -* Choose LCD model here -**************************************/ -LCD_SH1106 lcd; -//LCD_SSD1306 lcd; -//LCD_Null lcd; - -/************************************** -* Other options -**************************************/ -//#define DEBUG Serial -#define DEBUG_BAUDRATE 9600 - -#endif // CONFIG_H_INCLUDED diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/datalogger.h deleted file mode 100644 index 8009a80..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/datalogger.h +++ /dev/null @@ -1,403 +0,0 @@ -#define FORMAT_BIN 0 -#define FORMAT_CSV 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value; -} LOG_DATA; - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -typedef struct { - uint32_t time; /* e.g. 1307281259 */ - uint16_t pid; - uint8_t message; - uint8_t checksum; - uint16_t fileIndex; - uint16_t fileSize; /* KB */ - uint16_t logFlags; - uint8_t logType; - uint8_t data[5]; -} LOG_DATA_FILE_INFO; - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t message; - uint8_t checksum; - uint8_t data[12]; -} LOG_DATA_COMMAND; - -typedef struct { - uint32_t id; - uint32_t dataOffset; - uint8_t ver; - uint8_t logType; - uint16_t flags; - uint32_t dateTime; //4, YYMMDDHHMM, e.g. 1305291359 - /* - uint8_t devid[8]; - uint8_t vin[24]; - uint8_t unused[84]; - */ -} HEADER; - -#define HEADER_LEN 128 /* bytes */ - -#define PID_GPS_COORDINATES 0xF00A -#define PID_GPS_ALTITUDE 0xF00C -#define PID_GPS_SPEED 0xF00D -#define PID_GPS_HEADING 0xF00E -#define PID_GPS_SAT_COUNT 0xF00F -#define PID_GPS_TIME 0xF010 - -#define PID_ACC 0xF020 -#define PID_GYRO 0xF021 - -#define PID_MESSAGE 0xFE00 -#define PID_HEART_BEAT 0xFFEE - -#define MSG_FILE_LIST_BEGIN 0x1 -#define MSG_FILE_LIST_END 0x2 -#define MSG_FILE_INFO 0x3 -#define MSG_FILE_REQUEST 0x4 - -#if LOG_FORMAT == FORMAT_BIN -#define FILE_NAME_FORMAT "/DAT%05d.LOG" -#else -#define FILE_NAME_FORMAT "/DAT%05d.CSV" -#endif - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL - -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) - SoftwareSerial SerialBLE(A8, A9); /* for BLE Shield on MEGA*/ -#elif defined(__AVR_ATmega644P__) - SoftwareSerial SerialBLE(9, 10); /* for Microduino */ -#else - SoftwareSerial SerialBLE(A2, A3); /* for BLE Shield on UNO/leonardo*/ -#endif - -#define OUTPUT_BAUDRATE 9600 - -#else - -#define SerialBLE Serial -#define OUTPUT_BAUDRATE 115200 - -#endif - -#endif - -void btInit(int baudrate); -void btSend(byte* data, byte length); - -class CDataLogger { -public: - void initSender() - { -#if ENABLE_DATA_OUT - SerialBLE.begin(OUTPUT_BAUDRATE); -#endif -#if ENABLE_DATA_LOG && LOG_FORMAT == FORMAT_CSV - m_lastDataTime = 0; -#endif - } -#if ENABLE_DATA_OUT - void sendFileInfo(File& file) - { - if (file.size() < HEADER_LEN) return; - - LOG_DATA_FILE_INFO info = {0}; - info.fileIndex = atol(file.name() + 3); - if (info.fileIndex == 0) return; - - HEADER hdr; - if (file.readBytes((char*)&hdr, sizeof(hdr)) != sizeof(hdr)) return; - - info.pid = PID_MESSAGE; - info.message = MSG_FILE_INFO; - info.fileSize = file.size(); - info.time = hdr.dateTime; - info.logType = hdr.logType; - info.logFlags = hdr.flags; - info.checksum = getChecksum((char*)&info, sizeof(info)); - SerialBLE.write((uint8_t*)&info, sizeof(info)); - } - void sendCommand(byte message, void* data = 0, byte bytes = 0) - { - LOG_DATA_COMMAND msg = {0, PID_MESSAGE, message}; - if (data) memcpy(msg.data, data, bytes); - msg.checksum = getChecksum((char*)&msg, sizeof(msg)); - SerialBLE.write((uint8_t*)&msg, sizeof(msg)); - } - bool receiveCommand(LOG_DATA_COMMAND& msg) - { - if (!SerialBLE.available()) - return false; - - if (SerialBLE.readBytes((char*)&msg, sizeof(msg)) != sizeof(msg)) - return false; - - uint8_t checksum = msg.checksum; - msg.checksum = 0; - if (getChecksum((char*)&msg, sizeof(msg)) != msg.checksum) { - return false; - } - return true; - } -#endif - void logData(uint16_t pid, int value) - { -#if LOG_FORMAT == FORMAT_BIN || STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); -#endif -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - SerialBLE.write((uint8_t*)&ld, 12); -#else - SerialBLE.print(pid, HEX); - SerialBLE.write(','); - SerialBLE.print(value); - SerialBLE.write('\n'); -#endif -#endif -#if ENABLE_DATA_LOG - if (!sdfile) return; -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 12); - dataSize += 12; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - sdfile.write(','); - dataSize += sdfile.print(value); - sdfile.write('\n'); - dataSize += 3; - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, float value) - { -#if LOG_FORMAT == FORMAT_BIN || STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); -#endif -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - SerialBLE.write((uint8_t*)&ld, 12); -#else - SerialBLE.print(pid, HEX); - SerialBLE.write(','); - SerialBLE.print(value); - SerialBLE.write('\n'); -#endif -#endif -#if ENABLE_DATA_LOG - if (!sdfile) return; -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 12); - dataSize += 12; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - sdfile.write(','); - dataSize += sdfile.print(value); - sdfile.write('\n'); - dataSize += 3; - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, float value1, float value2) - { -#if LOG_FORMAT == FORMAT_BIN || STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 2, 0, {value1, value2}}; - ld.checksum = getChecksum((char*)&ld, 16); -#endif -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - SerialBLE.write((uint8_t*)&ld, 16); -#else - SerialBLE.print(pid, HEX); - SerialBLE.write(','); - SerialBLE.print(value1, 6); - SerialBLE.write(','); - SerialBLE.print(value2, 6); - SerialBLE.write('\n'); -#endif -#endif -#if ENABLE_DATA_LOG - if (!sdfile) return; -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 16); - dataSize += 16; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - sdfile.write(','); - dataSize += sdfile.print(value1, 6); - sdfile.write(','); - dataSize += sdfile.print(value2, 6); - sdfile.write('\n'); - dataSize += 4; - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, uint32_t value1, uint32_t value2) - { -#if LOG_FORMAT == FORMAT_BIN || STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 2, 0, {value1, value2}}; - ld.checksum = getChecksum((char*)&ld, 16); -#endif -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - SerialBLE.write((uint8_t*)&ld, 16); -#else - SerialBLE.print(pid, HEX); - SerialBLE.write(','); - SerialBLE.print(value1); - SerialBLE.write(','); - SerialBLE.print(value2); - SerialBLE.write('\n'); -#endif -#endif -#if ENABLE_DATA_LOG - if (!sdfile) return; -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 16); - dataSize += 16; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - sdfile.write(','); - dataSize += sdfile.print(value1); - sdfile.write(','); - dataSize += sdfile.print(value2); - sdfile.write('\n'); - dataSize += 4; - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, int value1, int value2, int value3) - { -#if LOG_FORMAT == FORMAT_BIN || STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); -#endif -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - SerialBLE.write((uint8_t*)&ld, 20); -#else - SerialBLE.print(pid, HEX); - SerialBLE.write(','); - SerialBLE.print(value1); - SerialBLE.write(','); - SerialBLE.print(value2); - SerialBLE.write(','); - SerialBLE.print(value3); - SerialBLE.write('\n'); -#endif -#endif -#if ENABLE_DATA_LOG - if (!sdfile) return; -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 20); - dataSize += 20; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - sdfile.write(','); - dataSize += sdfile.print(value1); - sdfile.write(','); - dataSize += sdfile.print(value2); - sdfile.write(','); - dataSize += sdfile.print(value3); - sdfile.write('\n'); - dataSize += 5; - m_lastDataTime = dataTime; -#endif -#endif - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - -#if LOG_FORMAT == FORMAT_BIN - HEADER hdr = {'UDUS', HEADER_LEN, 1, 0, logFlags, dateTime}; - sdfile.write((uint8_t*)&hdr, sizeof(hdr)); - for (byte i = 0; i < HEADER_LEN - sizeof(hdr); i++) - sdfile.write((uint8_t)0); - dataSize = HEADER_LEN; -#endif - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - if (sdfile) sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -private: - static byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } -#if ENABLE_DATA_LOG - File sdfile; -#if LOG_FORMAT == FORMAT_CSV - uint32_t m_lastDataTime; -#endif -#endif -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/images.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/images.h deleted file mode 100644 index 0a0f0b6..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/images.h +++ /dev/null @@ -1,5 +0,0 @@ -const PROGMEM uint8_t tick[16 *16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -const PROGMEM uint8_t cross[16 *16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.cbp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.cbp deleted file mode 100644 index f60e0be..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.cbp +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.ino deleted file mode 100644 index d299e09..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanologger/nanologger.ino +++ /dev/null @@ -1,360 +0,0 @@ -/************************************************************************* -* Arduino GPS/OBD-II/G-Force Data Logger -* Distributed under GPL v2.0 -* Copyright (c) 2013 Stanley Huang -* All rights reserved. -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "images.h" -#include "config.h" -#if USE_SOFTSERIAL -#include -#endif -#include "datalogger.h" - -// logger states -#define STATE_SD_READY 0x1 -#define STATE_OBD_READY 0x2 -#define STATE_GPS_FOUND 0x4 -#define STATE_GPS_READY 0x8 -#define STATE_ACC_READY 0x10 -#define STATE_SLEEPING 0x20 - -static uint32_t lastFileSize = 0; -static int lastSpeed = -1; -static int speed = 0; -static uint32_t distance = 0; -static uint16_t fileIndex = 0; -static uint32_t startTime = 0; -static uint8_t lastPid = 0; -static int lastValue = 0; - -static byte pidTier1[]= {PID_RPM, PID_SPEED, PID_ENGINE_LOAD, PID_THROTTLE}; -static byte pidTier2[] = {PID_INTAKE_MAP, PID_MAF_FLOW, PID_TIMING_ADVANCE}; - -#define TIER_NUM1 sizeof(pidTier1) -#define TIER_NUM2 sizeof(pidTier2) - -byte pidValue[TIER_NUM1]; - -class COBDLogger : public COBD, public CDataLogger -{ -public: - COBDLogger():state(0) {} - void setup() - { - showStates(); - - do { - showStates(); - } while (!init()); - - state |= STATE_OBD_READY; - - showStates(); - -#if ENABLE_DATA_LOG - uint16_t index = openFile(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(86, 0); - if (index) { - lcd.write('['); - lcd.setFlags(FLAG_PAD_ZERO); - lcd.printInt(index, 5); - lcd.setFlags(0); - lcd.write(']'); - } else { - lcd.print("NO LOG"); - } - delay(100); -#endif - -#if ENABLE_DATA_LOG - // open file for logging - if (!(state & STATE_SD_READY)) { - if (checkSD()) { - state |= STATE_SD_READY; - showStates(); - } - } -#endif - - initScreen(); - } - void loop() - { - static byte index = 0; - static byte index2 = 0; - static byte index3 = 0; - - // poll OBD-II PIDs - logOBDData(pidTier1[index++]); - if (index == TIER_NUM1) { - index = 0; - if (index2 == TIER_NUM2) { - index2 = 0; - } else { - logOBDData(pidTier2[index2++]); - } - } - - // display distance travelled (GPS) - char buf[10]; - sprintf(buf, "%4ukm", (uint16_t)(distance / 1000)); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(92, 6); - lcd.print(buf); - -#if USE_MPU6050 - if (state & STATE_ACC_READY) { - processAccelerometer(); - } -#endif - -#if ENABLE_DATA_LOG - // flush SD data every 1KB - if (dataSize - lastFileSize >= 1024) { - flushFile(); - lastFileSize = dataSize; - // display logged data size - char buf[7]; - sprintf(buf, "%4uKB", (int)(dataSize >> 10)); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(92, 7); - lcd.print(buf); - } -#endif - - if (errors >= 2) { - reconnect(); - } - } -#if ENABLE_DATA_LOG - bool checkSD() - { - Sd2Card card; - SdVolume volume; - state &= ~STATE_SD_READY; - pinMode(SS, OUTPUT); - if (card.init(SPI_FULL_SPEED, SD_CS_PIN)) { - const char* type; - - lcd.print("SD"); - switch(card.type()) { - case SD_CARD_TYPE_SD1: - type = "1"; - break; - case SD_CARD_TYPE_SD2: - type = "2"; - break; - case SD_CARD_TYPE_SDHC: - type = "HC"; - break; - default: - type = "x"; - } - - lcd.print(type); - lcd.write(' '); - if (!volume.init(card)) { - lcd.print("No FAT"); - return false; - } - - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - lcd.print((int)((volumesize + 511) / 1000)); - lcd.print("GB"); - } else { - lcd.print("SD "); - lcd.draw(cross, 16, 16); - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - lcd.print("Bad"); - return false; - } - - state |= STATE_SD_READY; - return true; - } -#endif - void initScreen() - { - initLoggerScreen(); - } -private: - void dataIdleLoop() - { - if (lastPid) { - showLoggerData(lastPid, lastValue); - lastPid = 0; - } - } - int logOBDData(byte pid) - { - int value = 0; - // send a query to OBD adapter for specified OBD-II pid - if (readPID(pid, value)) { - dataTime = millis(); - // log data to SD card - logData(0x100 | pid, value); - lastValue = value; - lastPid = pid; - } - return value; - } - void reconnect() - { -#if ENABLE_DATA_LOG - closeFile(); -#endif - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - startTime = millis(); - state &= ~(STATE_OBD_READY | STATE_ACC_READY); - state |= STATE_SLEEPING; - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; ; i++) { - if (i == 5) { - lcd.backlight(false); - lcd.clear(); - } - if (init()) { - int value; - if (readPID(PID_RPM, value) && value > 0) - break; - } - } - state &= ~STATE_SLEEPING; - fileIndex++; - recover(); - setup(); - } - byte state; - - void showTickCross(bool yes) - { - lcd.draw(yes ? tick : cross, 16, 16); - } - // screen layout related stuff - void showStates() - { - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(0, 4); - lcd.print("OBD "); - showTickCross(state & STATE_OBD_READY); - lcd.setCursor(0, 6); - lcd.print("ACC "); - showTickCross(state & STATE_ACC_READY); - } - void showLoggerData(byte pid, int value) - { - char buf[8]; - switch (pid) { - case PID_RPM: - lcd.setCursor(64, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - break; - case PID_SPEED: - if (lastSpeed != value) { - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - lastSpeed = value; - } - break; - case PID_THROTTLE: - lcd.setCursor(24, 5); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.printInt(value % 100, 3); - break; - case PID_INTAKE_TEMP: - if (value < 1000) { - lcd.setCursor(102, 5); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.printInt(value, 3); - } - break; - } - } -#if USE_MPU6050 - void showGForce(int g) - { - byte n; - /* 0~1.5g -> 0~8 */ - g /= 85 * 25; - lcd.setFont(FONT_SIZE_SMALL); - lcd.setCursor(0, 3); - if (g == 0) { - lcd.clearLine(1); - } else if (g < 0 && g >= -10) { - for (n = 0; n < 10 + g; n++) { - lcd.write(' '); - } - for (; n < 10; n++) { - lcd.write('<'); - } - lcd.print(" "); - } else if (g > 0 && g < 10) { - lcd.print(" "); - for (n = 0; n < g; n++) { - lcd.write('>'); - } - for (; n < 10; n++) { - lcd.write(' '); - } - } - } -#endif - void initLoggerScreen() - { - lcd.clear(); - lcd.backlight(true); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 3); - lcd.print("km/h"); - lcd.setCursor(110, 3); - lcd.print("rpm"); - lcd.setCursor(0, 5); - lcd.print("THR: %"); - lcd.setCursor(80, 5); - lcd.print("AIR: C"); - } -}; - -static COBDLogger logger; - -void setup() -{ - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.println("NanoLogger"); - - logger.begin(); - logger.initSender(); - -#if ENABLE_DATA_LOG - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(0, 2); - logger.checkSD(); -#endif - logger.setup(); -} - -void loop() -{ - logger.loop(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/README.md b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/README.md deleted file mode 100644 index 29e5495..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/README.md +++ /dev/null @@ -1,3 +0,0 @@ -This sketch works like a Performance Box with the Arduino Nano based [Freematics Nano Kit](https://freematics.com/products/arduino-telematics-kit-1/). It displays live vehicle speed (data from OBD-II) and the time used for reaching speed of 60km/h, 100km/h, 200km/h and distance of 400m. Measurement is automatically started evey time when vehicle starts moving from stationary. - -![Freematics Nano Kit running NanoTimer sketch](https://freematics.com/pages/wp-content/uploads/2014/08/DSC04398-1000.jpg) diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/config.h deleted file mode 100644 index 42b7e70..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/config.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Data logging/streaming out -**************************************/ -#define ENABLE_DATA_OUT 0 -#define ENABLE_DATA_LOG 0 -#define USE_SOFTSERIAL 0 -//this defines the format of log file -#define LOG_FORMAT FORMAT_CSV - -/************************************** -* Choose SD pin here -**************************************/ -#define SD_CS_PIN 10 - -/************************************** -* Choose LCD model here -**************************************/ -//LCD_SSD1306 lcd; -LCD_SH1106 lcd; -//LCD_Null lcd; - -/************************************** -* Other options -**************************************/ -//#define OBD_MIN_INTERVAL 50 /* ms */ -//#define DEBUG Serial -#define DEBUG_BAUDRATE 9600 - -#endif // CONFIG_H_INCLUDED diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/datalogger.h deleted file mode 100644 index 2c4ebfe..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/datalogger.h +++ /dev/null @@ -1,377 +0,0 @@ -typedef enum { - LOG_TYPE_DEFAULT = 0, - LOG_TYPE_0_60, - LOG_TYPE_0_100, - LOG_TYPE_100_200, - LOG_TYPE_400M, - LOG_TYPE_LAPS, - LOG_TYPE_ROUTE, -} LOG_TYPES; - -#define FLAG_CAR 0x1 -#define FLAG_CYCLING 0x2 -#define FLAG_OBD 0x10 -#define FLAG_GPS 0x20 -#define FLAG_ACC 0x40 - -#define FORMAT_BIN 0 -#define FORMAT_CSV 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value; -} LOG_DATA; - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -typedef struct { - uint32_t time; /* e.g. 1307281259 */ - uint16_t pid; - uint8_t message; - uint8_t checksum; - uint16_t fileIndex; - uint16_t fileSize; /* KB */ - uint16_t logFlags; - uint8_t logType; - uint8_t data[5]; -} LOG_DATA_FILE_INFO; - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t message; - uint8_t checksum; - uint8_t data[12]; -} LOG_DATA_COMMAND; - -typedef struct { - uint32_t id; - uint32_t dataOffset; - uint8_t ver; - uint8_t logType; - uint16_t flags; - uint32_t dateTime; //4, YYMMDDHHMM, e.g. 1305291359 - /* - uint8_t devid[8]; - uint8_t vin[24]; - uint8_t unused[84]; - */ -} HEADER; - -#define HEADER_LEN 128 /* bytes */ - -#define PID_GPS_COORDINATES 0xF00A -#define PID_GPS_ALTITUDE 0xF00C -#define PID_GPS_SPEED 0xF00D -#define PID_GPS_HEADING 0xF00E -#define PID_GPS_SAT_COUNT 0xF00F -#define PID_GPS_TIME 0xF010 - -#define PID_ACC 0xF020 -#define PID_GYRO 0xF021 - -#define PID_MESSAGE 0xFE00 -#define PID_HEART_BEAT 0xFFEE - -#define MSG_FILE_LIST_BEGIN 0x1 -#define MSG_FILE_LIST_END 0x2 -#define MSG_FILE_INFO 0x3 -#define MSG_FILE_REQUEST 0x4 - -#if LOG_FORMAT == FORMAT_BIN -#define FILE_NAME_FORMAT "/DAT%05d.LOG" -#else -#define FILE_NAME_FORMAT "/DAT%05d.CSV" -#endif - -#if ENABLE_DATA_OUT && !USE_OBD_BT -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) - SoftwareSerial mySerial(A8, A9); /* for BLE Shield on MEGA*/ -#elif defined(__AVR_ATmega644P__) - SoftwareSerial mySerial(9, 10); /* for Microduino */ -#else - SoftwareSerial mySerial(A2, A3); /* for BLE Shield on UNO*/ -#endif -#endif - -void btInit(int baudrate); -void btSend(byte* data, byte length); - -class CDataLogger { -public: - void initSender() - { -#if ENABLE_DATA_OUT -#if USE_OBD_BT - btInit(9600); -#else - mySerial.begin(9600); -#endif -#endif -#if ENABLE_DATA_LOG && LOG_FORMAT == FORMAT_CSV - m_lastDataTime = 0; -#endif - } -#if ENABLE_DATA_OUT - void sendFileInfo(File& file) - { - if (file.size() < HEADER_LEN) return; - - LOG_DATA_FILE_INFO info = {0}; - info.fileIndex = atol(file.name() + 3); - if (info.fileIndex == 0) return; - - HEADER hdr; - if (file.readBytes((char*)&hdr, sizeof(hdr)) != sizeof(hdr)) return; - - info.pid = PID_MESSAGE; - info.message = MSG_FILE_INFO; - info.fileSize = file.size(); - info.time = hdr.dateTime; - info.logType = hdr.logType; - info.logFlags = hdr.flags; - info.checksum = getChecksum((char*)&info, sizeof(info)); -#if USE_OBD_BT - btSend((uint8_t*)&info, sizeof(info)); -#else - mySerial.write((uint8_t*)&info, sizeof(info)); -#endif - } - void sendCommand(byte message, void* data = 0, byte bytes = 0) - { - LOG_DATA_COMMAND msg = {0, PID_MESSAGE, message}; - if (data) memcpy(msg.data, data, bytes); - msg.checksum = getChecksum((char*)&msg, sizeof(msg)); -#if USE_OBD_BT - btSend((uint8_t*)&msg, sizeof(msg)); -#else - mySerial.write((uint8_t*)&msg, sizeof(msg)); -#endif - } - bool receiveCommand(LOG_DATA_COMMAND& msg) - { -#if !USE_OBD_BT - if (!mySerial.available()) - return false; - - if (mySerial.readBytes((char*)&msg, sizeof(msg)) != sizeof(msg)) - return false; - - uint8_t checksum = msg.checksum; - msg.checksum = 0; - if (getChecksum((char*)&msg, sizeof(msg)) != msg.checksum) { - return false; - } -#endif - return true; - } -#endif - void logData(uint16_t pid, int value) - { - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); -#if ENABLE_DATA_OUT -#if USE_OBD_BT - btSend((uint8_t*)&ld, 12); -#else - mySerial.write((uint8_t*)&ld, 12); -#endif -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 12); - dataSize += 12; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, float value) - { - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); -#if ENABLE_DATA_OUT -#if USE_OBD_BT - btSend((uint8_t*)&ld, 12); -#else - mySerial.write((uint8_t*)&ld, 12); -#endif -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 12); - dataSize += 12; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, float value1, float value2) - { - LOG_DATA_COMM ld = {dataTime, pid, 2, 0, {value1, value2}}; - ld.checksum = getChecksum((char*)&ld, 16); -#if ENABLE_DATA_OUT -#if USE_OBD_BT - btSend((uint8_t*)&ld, 16); -#else - mySerial.write((uint8_t*)&ld, 16); -#endif -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 16); - dataSize += 16; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value1, 6); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value2, 6); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, uint32_t value1, uint32_t value2) - { - LOG_DATA_COMM ld = {dataTime, pid, 2, 0, {value1, value2}}; - ld.checksum = getChecksum((char*)&ld, 16); -#if ENABLE_DATA_OUT -#if USE_OBD_BT - btSend((uint8_t*)&ld, 16); -#else - mySerial.write((uint8_t*)&ld, 16); -#endif -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 16); - dataSize += 16; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value1); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value2); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); -#if ENABLE_DATA_OUT -#if USE_OBD_BT - btSend((uint8_t*)&ld, 20); -#else - mySerial.write((uint8_t*)&ld, 20); -#endif -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 20); - dataSize += 20; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value1); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value2); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value3); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } -#if ENABLE_DATA_LOG - uint16_t openFile(LOG_TYPES logType, uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - -#if LOG_FORMAT == FORMAT_BIN - HEADER hdr = {'UDUS', HEADER_LEN, 1, logType, logFlags, dateTime}; - sdfile.write((uint8_t*)&hdr, sizeof(hdr)); - for (byte i = 0; i < HEADER_LEN - sizeof(hdr); i++) - sdfile.write((uint8_t)0); - dataSize = HEADER_LEN; -#endif - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -private: - static byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } -#if ENABLE_DATA_LOG - File sdfile; -#if LOG_FORMAT == FORMAT_CSV - uint32_t m_lastDataTime; -#endif -#endif -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/nanotimer.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/nanotimer.ino deleted file mode 100644 index b4a1013..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/nanotimer/nanotimer.ino +++ /dev/null @@ -1,405 +0,0 @@ -/************************************************************************* -* OBD-II based performance timer and logger -* Distributed under GPL v2.0 -* Copyright (c) 2014 Stanley Huang -* All rights reserved. -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "config.h" -#if USE_SOFTSERIAL -#include -#endif -#include "datalogger.h" - -// logger states -#define STATE_SD_READY 0x1 -#define STATE_OBD_READY 0x2 -#define STATE_SLEEPING 0x20 - -static uint32_t lastFileSize = 0; -static int lastSpeed = -1; -static uint32_t lastSpeedTime = 0; -static int speed = 0; -static uint32_t distance = 0; -static uint16_t fileIndex = 0; -static uint32_t startTime = 0; - -#define STAGE_IDLE 0 -#define STAGE_WAIT_START 1 -#define STAGE_MEASURING 2 - -static byte stage = STAGE_IDLE; - -#define SPEED_THRESHOLD_1 60 /* kph */ -#define SPEED_THRESHOLD_2 100 /* kph */ -#define SPEED_THRESHOLD_3 200 /* kph */ -#define DISTANCE_THRESHOLD 400 /* meters */ - -static uint16_t times[4] = {0}; - -#if ENABLE_DATA_LOG -class COBDLogger : public COBD, public CDataLogger -#else -class COBDLogger : public COBD -#endif -{ -public: - COBDLogger():state(0) {} - void setup() - { -#if ENABLE_DATA_LOG - if (!(state & STATE_SD_READY)) { - if (checkSD()) { - state |= STATE_SD_READY; - showStates(); - } - } -#endif - - do { - showStates(); - } while (!init()); - - state |= STATE_OBD_READY; - - showStates(); - -#if ENABLE_DATA_LOG - uint16_t index = openFile(LOG_TYPE_DEFAULT); - lcd.print("File ID:"); - if (index) { - lcd.setFlags(FLAG_PAD_ZERO); - lcd.printInt(index, 5); - lcd.setFlags(0); - } else { - lcd.print("N/A"); - } -#endif - - initTimerScreen(); - } - void loop() - { - static byte index = 0; - static byte index2 = 0; - static byte index3 = 0; - - timerLoop(); - -#if ENABLE_DATA_LOG - // flush SD data every 1KB - if (dataSize - lastFileSize >= 1024 && stage != STAGE_MEASURING) { - flushFile(); - lastFileSize = dataSize; - // display logged data size - } -#endif - - if (errors >= 2) { - reconnect(); - } - } -#if ENABLE_DATA_LOG - bool checkSD() - { - Sd2Card card; - SdVolume volume; - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_MEDIUM); - state &= ~STATE_SD_READY; - pinMode(SS, OUTPUT); - if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) { - const char* type; - char buf[20]; - - switch(card.type()) { - case SD_CARD_TYPE_SD1: - type = "SD1"; - break; - case SD_CARD_TYPE_SD2: - type = "SD2"; - break; - case SD_CARD_TYPE_SDHC: - type = "SDHC"; - break; - default: - type = "SDx"; - } - - lcd.clear(); - lcd.print(type); - lcd.write(' '); - if (!volume.init(card)) { - lcd.print("No FAT!"); - return false; - } - - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - sprintf(buf, "%dGB", (int)((volumesize + 511) / 1000)); - lcd.print(buf); - } else { - lcd.clear(); - lcd.print("SD"); - lcd.draw(cross, 32, 0, 16, 16); - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - lcd.setCursor(48, 0); - lcd.print("Bad SD"); - return false; - } - - state |= STATE_SD_READY; - return true; - } -#endif -private: - void dataIdleLoop() - { - if (state & STATE_SLEEPING) return; - - if (getState() == OBD_CONNECTED) - return; - - // called while initializing - char buf[10]; - unsigned int t = (millis() - startTime) / 1000; - sprintf(buf, "%02u:%02u", t / 60, t % 60); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(97, 7); - lcd.print(buf); - } - void timerLoop() - { - uint32_t elapsed = millis() - startTime; - uint16_t n; -#if !ENABLE_DATA_LOG - uint32_t dataTime; -#endif - int speed; - if (!readPID(PID_SPEED, speed)) - return; - - dataTime = millis(); -#if ENABLE_DATA_LOG - logData(0x100 | PID_SPEED, speed); - - int rpm = 0; - if (read(PID_RPM, rpm)) { - dataTime = millis(); - logData(0x100 | PID_RPM, rpm); - } -#endif - - lcd.setFontSize(FONT_SIZE_XLARGE); - // estimate distance - distance += (uint32_t)(speed + lastSpeed) * (dataTime - lastSpeedTime) / 2 / 3600; - - if (lastSpeed != speed) { - lcd.setCursor(0, 4); - lcd.printInt((unsigned int)speed % 1000, 3); - lastSpeed = speed; - } - - lastSpeedTime = dataTime; - - if (stage == STAGE_WAIT_START) { - if (speed > 0) { - stage = STAGE_MEASURING; - startTime = lastSpeedTime; - -#if ENABLE_DATA_LOG - uint32_t t = dataTime; - dataTime = lastSpeedTime; - logData(0x100 | PID_SPEED, lastSpeed); - dataTime = t; - logData(0x100 | PID_SPEED, speed); -#endif - - lastSpeed = 0; - distance = 0; - - memset(times, 0, sizeof(times)); - - initTimerScreen(); - } - } else if (stage == STAGE_MEASURING) { - // display elapsed time (mm:ss:mm) - n = elapsed / 1000; - if (n < 100) { - lcd.setCursor(0, 0); - lcd.printInt(n, 2); - n = (elapsed % 1000) / 100; - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(32, 1); - lcd.write('.'); - lcd.write('0' + n); - } - if (times[2] == 0 && speed >= SPEED_THRESHOLD_3) { - times[2] = elapsed / 100; - stage = STAGE_IDLE; - lcd.clear(0, 0, 128, 24); - showTimerResults(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(0, 0); - lcd.print("DONE!"); - } else if (times[1] == 0 && speed >= SPEED_THRESHOLD_2) { - times[1] = elapsed / 100; - showTimerResults(); - } else if (times[0] == 0 && speed >= SPEED_THRESHOLD_1) { - times[0] = elapsed / 100; - showTimerResults(); - } else if (speed == 0) { - // speed go back to 0 - stage = STAGE_IDLE; - } - if (distance > 0) { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(62, 6); - if (distance >= 400) { - lcd.printInt(400, 3); - if (!times[3]) { - times[3] = elapsed / 100; - showTimerResults(); - } - } else { - lcd.printInt(distance, 3); - } - } -#if ENABLE_DATA_LOG - // log speed data - logData(0x100 | PID_SPEED, speed); - // log additional data - int rpm; - if (read(PID_RPM, rpm)) { - dataTime = millis(); - logData(0x100 | PID_RPM, rpm); - } -#endif - } else { - if (speed == 0) { - stage = STAGE_WAIT_START; - initTimerScreen(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.setCursor(0, 0); - lcd.println(" GET"); - lcd.println("READY"); - delay(500); - } - } - } - void reconnect() - { -#if ENABLE_DATA_LOG - closeFile(); -#endif - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - startTime = millis(); - state &= ~STATE_OBD_READY; - state |= STATE_SLEEPING; - //digitalWrite(SD_CS_PIN, LOW); - for (int i = 0; !init(); i++) { - if (i == 10) lcd.clear(); - } - state &= ~STATE_SLEEPING; - fileIndex++; - setup(); - } - byte state; - - // screen layout related stuff - void showStates() - { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(0, 3); - if (state & STATE_OBD_READY) { - lcd.println("OBD connected! "); - } else { - lcd.println("Connecting OBD..."); - } - } - void showTimerResults() - { - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(56, 0); - lcd.print(" 0~60: --"); - lcd.setCursor(56, 2); - lcd.print("0~100: --"); - lcd.setCursor(56, 4); - lcd.print("0~200: --"); - lcd.setCursor(56, 6); - lcd.print(" 400m: --"); - lcd.setFontSize(FONT_SIZE_MEDIUM); - char buf[8]; - if (times[0]) { - sprintf(buf, "%2d.%1d", times[0] / 10, times[0] % 10); - Serial.println(times[0]); - lcd.setCursor(92, 0); - lcd.print(buf); - } - if (times[1]) { - sprintf(buf, "%2d.%1d", times[1] / 10, times[1] % 10); - Serial.println(buf); - lcd.setCursor(92, 2); - lcd.print(buf); - } - if (times[2]) { - sprintf(buf, "%2d.%1d", times[2] / 10, times[2] % 10); - Serial.println(buf); - lcd.setCursor(92, 4); - lcd.print(buf); - } - if (times[3]) { - sprintf(buf, "%2d.%1d", times[3] / 10, times[3] % 10); - Serial.println(buf); - lcd.setCursor(92, 6); - lcd.print(buf); - } - } - void initTimerScreen() - { - lcd.clear(); - showTimerResults(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 7); - lcd.print("km/h"); - } -}; - -static COBDLogger logger; - -void setup() -{ -#ifdef DEBUG - DEBUG.begin(DEBUG_BAUDRATE); -#endif - - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.println("PerformanceBox"); - - logger.begin(); -#if ENABLE_DATA_LOG - logger.initSender(); - logger.checkSD(); -#endif - logger.setup(); -} - -void loop() -{ - logger.loop(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/simple_obd_display/simple_obd_display.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/simple_obd_display/simple_obd_display.ino deleted file mode 100644 index 72e590e..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/simple_obd_display/simple_obd_display.ino +++ /dev/null @@ -1,110 +0,0 @@ -/************************************************************************* -* Simple OBD Data Display -* Works with any Arduino board connected with SH1106 128*64 I2C OLED and -* Freematics OBD-II UART Adapter - https://freematics.com/products -* Distributed under public domain -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include - - -LCD_SH1106 lcd; -COBD obd; - -void reconnect() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; !obd.init(); i++) { - if (i == 5) { - lcd.clear(); - } - delay(3000); - } -} - -void showData(byte pid, int value) -{ - switch (pid) { - case PID_RPM: - lcd.setCursor(64, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - break; - case PID_SPEED: - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - break; - case PID_THROTTLE: - lcd.setCursor(88, 5); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printInt(value % 100, 3); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(" %"); - break; - case PID_ENGINE_LOAD: - lcd.setCursor(12, 5); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printInt(value, 3); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(" %"); - break; - } -} - -void initScreen() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 3); - lcd.print("km/h"); - lcd.setCursor(110, 3); - lcd.print("rpm"); - lcd.setCursor(0, 7); - lcd.print("ENGINE LOAD"); - lcd.setCursor(80, 7); - lcd.print("THROTTLE"); -} - -void setup() -{ - // Start screen - lcd.begin(); - - // Clear and set font size - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - - // Initialize OBD communitcation - delay(500); - obd.begin(); - - // Print a connecting screen while waiting for connection - lcd.println("\nConnecting..."); - while (!obd.init()); - initScreen(); -} - -void loop() -{ - static byte pids[]= {PID_RPM, PID_SPEED, PID_ENGINE_LOAD, PID_THROTTLE}; - static byte index = 0; - byte pid = pids[index]; - int value; - // send a query to OBD adapter for specified OBD-II pid - if (obd.readPID(pid, value)) { - showData(pid, value); - } - index = (index + 1) % sizeof(pids); - - if (obd.errors >= 2) { - reconnect(); - setup(); - } -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/config.h deleted file mode 100644 index 47c9471..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/config.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* Choose model of OBD-II Adapter -**************************************/ -// OBD_MODEL_I2C for I2C version -// OBD_MODEL_UART for UART version -#define OBD_MODEL OBD_MODEL_UART -#define OBD_PROTOCOL PROTO_AUTO - -/************************************** -* LCD module (uncomment only one) -**************************************/ -LCD_ILI9341 lcd; /* 2.2" ILI9341 based SPI TFT LCD */ -//LCD_SSD1289 lcd; /* 3.2" SSD12389 based TFT LCD */ -//LCD_Null lcd; - -/************************************** -* Benchmark option -**************************************/ -#define OBD_BENCHMARK_TIME 5 /* seconds */ -#define MEMS_BENCHMARK_TIME 3 /* seconds */ - -/************************************** -* Accelerometer & Gyro -**************************************/ -#define ACC_DATA_RATIO 172 -#define GYRO_DATA_RATIO 256 - -/************************************** -* Data streaming options -**************************************/ -// enable(1)/disable(0) data streaming -#define ENABLE_DATA_OUT 0 -#define ENABLE_DATA_LOG 0 -#define SD_CS_PIN 10 - -#define DELAY_AFTER_SENDING 10 - -// uses software(1)/hardware(0) serial for data streaming -#define USE_SOFTSERIAL 0 - -// followings define the format of data streaming, enable one of them only -// FORMAT_CSV is for CSV based text output -//#define STREAM_FORMAT FORMAT_CSV -// FORMAT_LINE is for readable text output -#define STREAM_FORMAT FORMAT_TEXT - -#define STREAM_BAUDRATE 115200 - -#endif diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/datalogger.h deleted file mode 100644 index c548bd9..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/datalogger.h +++ /dev/null @@ -1,284 +0,0 @@ -/************************************************************************* -* Freematics Data Logger Class -* Distributed under GPL v2.0 -* Written by Stanley Huang -* Visit http://freematics.com for more information -*************************************************************************/ - -#define FORMAT_BIN 0 -#define FORMAT_TEXT 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -#define PID_DATA_SIZE 0x80 - -#define FILE_NAME_FORMAT "/DAT%05d.CSV" - -#if ENABLE_DATA_OUT - -#if USE_SOFTSERIAL -SoftwareSerial SerialRF(A2, A3); -#elif defined(RF_SERIAL) -#define SerialRF RF_SERIAL -#else -#define SerialRF Serial -#endif - -#endif - -#if ENABLE_DATA_LOG -static File sdfile; -#endif - -typedef struct { - uint8_t pid; - char name[3]; -} PID_NAME; - -const PID_NAME pidNames[] PROGMEM = { -{PID_ACC, {'A','C','C'}}, -{PID_GYRO, {'G','Y','R'}}, -{PID_COMPASS, {'M','A','G'}}, -{PID_GPS_LATITUDE, {'L','A','T'}}, -{PID_GPS_LONGITUDE, {'L','N','G'}}, -{PID_GPS_ALTITUDE, {'A','L','T'}}, -{PID_GPS_SPEED, {'S','P','D'}}, -{PID_GPS_HEADING, {'C','R','S'}}, -{PID_GPS_SAT_COUNT, {'S','A','T'}}, -{PID_GPS_TIME, {'U','T','C'}}, -{PID_GPS_DATE, {'D','T','E'}}, -{PID_BATTERY_VOLTAGE, {'B','A','T'}}, -{PID_DATA_SIZE, {'D','A','T'}}, -}; - -class CDataLogger { -public: - CDataLogger() - { - m_lastDataTime = 0; -#if ENABLE_DATA_CACHE - cacheBytes = 0; -#endif - } - void initSender() - { -#if ENABLE_DATA_OUT - SerialRF.begin(STREAM_BAUDRATE); -#endif - } - byte genTimestamp(char* buf, bool absolute) - { - byte n; - if (absolute || dataTime >= m_lastDataTime + 60000) { - // absolute timestamp - n = sprintf(buf, "#%lu,", dataTime); - } else { - // incremental timestamp - n = sprintf(buf, "%u,", (unsigned int)(dataTime - m_lastDataTime)); - } - return n; - } - void record(const char* buf, byte len) - { -#if ENABLE_DATA_LOG -#if STREAM_FORMAT == FORMAT_BIN - dataSize += sdfile.write(buf, len); -#else - char tmp[12]; - byte n = genTimestamp(tmp, dataSize == 0); - dataSize += sdfile.write(tmp, n); - dataSize += sdfile.write(buf, len); - sdfile.println(); - dataSize += 3; -#endif -#endif - m_lastDataTime = dataTime; - } - void dispatch(const char* buf, byte len) - { -#if ENABLE_DATA_CACHE - if (cacheBytes + len < MAX_CACHE_SIZE - 10) { - cacheBytes += genTimestamp(cache + cacheBytes, cacheBytes == 0); - memcpy(cache + cacheBytes, buf, len); - cacheBytes += len; - cache[cacheBytes++] = '\n'; - cache[cacheBytes] = 0; - } -#else - //char tmp[12]; - //genTimestamp(tmp, false); - //SerialRF.print(tmp); -#endif -#if ENABLE_DATA_OUT - SerialRF.write(buf, len); - SerialRF.println(); -#endif - } - void logData(const char* buf, byte len) - { -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid) - { - char buf[8]; - byte len = translatePIDName(pid, buf); -#if ENABLE_DATA_OUT -#if STREAM_FORMAT != FORMAT_BIN - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, int value) - { - char buf[16]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%ld", value) + n; -#if ENABLE_DATA_OUT -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif -#endif - record(buf, len); - } - void logData(uint16_t pid, uint32_t value) - { - char buf[20]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%lu", value) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); - dispatch((const char*)&ld, 12); -#else - dispatch(buf, len); -#endif - record(buf, len); - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - char buf[24]; - byte n = translatePIDName(pid, buf); - byte len = sprintf(buf + n, "%d,%d,%d", value1, value2, value3) + n; -#if STREAM_FORMAT == FORMAT_BIN - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); - dispatch((const char*)&ld, 20); -#else - dispatch(buf, len); -#endif - record(buf, len); - } -#if ENABLE_DATA_LOG - uint16_t openFile(uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - dataSize = 0; - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - m_lastDataTime = dateTime; - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -#if ENABLE_DATA_CACHE - char cache[MAX_CACHE_SIZE]; - int cacheBytes; -#endif -private: - byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } - byte translatePIDName(uint16_t pid, char* text) - { -#if STREAM_FORMAT == FORMAT_TEXT && USE_FRIENDLY_PID_NAME - for (uint16_t n = 0; n < sizeof(pidNames) / sizeof(pidNames[0]); n++) { - uint16_t id = pgm_read_byte(&pidNames[n].pid); - if (pid == id) { - memcpy_P(text, pidNames[n].name, 3); - text[3] = ','; - return 4; - } - } -#endif - return sprintf(text, "%X,", pid); - } - uint32_t m_lastDataTime; -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/tester.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/tester.ino deleted file mode 100644 index bbbcf6d..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/tester/tester.ino +++ /dev/null @@ -1,442 +0,0 @@ -/************************************************************************* -* Tester sketch for Freematics OBD-II Adapter for Arduino -* Visit http://freematics.com for more information -* Distributed under BSD license -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include -#include "MultiLCD.h" -#include "config.h" -#if ENABLE_DATA_LOG -#include -#endif -#include "datalogger.h" - -#define OBD_MODEL_UART 0 -#define OBD_MODEL_I2C 1 - -#define STATE_MEMS_READY 1 -#define STATE_INIT_DONE 2 - -typedef struct { - uint16_t left; - uint16_t right; - uint16_t bottom; - uint16_t height; - uint16_t pos; -} CHART_DATA; - -CHART_DATA chartRPM = {24, 319, 239, 100, 24}; -void chartUpdate(CHART_DATA* chart, int value); - -void(* resetFunc) (void) = 0; //declare reset function at address 0 - -static uint32_t lastFileSize = 0; -static int speed = 0; -static uint32_t distance = 0; -static uint16_t fileIndex = 0; -static uint32_t startTime = 0; -static uint16_t elapsed = 0; -static uint8_t lastPid = 0; -static int lastValue = 0; - -void chartUpdate(CHART_DATA* chart, int value) -{ - if (value > chart->height) value = chart->height; - for (uint16_t n = 0; n < value; n++) { - byte b = n * 255 / chart->height; - lcd.setPixel(chart->pos, chart->bottom - n, RGB16(0, 0, b)); - } - if (chart->pos++ == chart->right) { - chart->pos = chart->left; - } - lcd.fill(chart->pos, chart->pos, 239 - chart->height, chart->bottom); -} - -#if OBD_MODEL == OBD_MODEL_UART -class COBDDevice : public COBD, public CDataLogger -#else -class COBDDevice : public COBDI2C, public CDataLogger -#endif -{ -public: - COBDDevice():state(0) {} - void setup() - { -#if ENABLE_DATA_LOG - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setColor(RGB16_WHITE); - lcd.setCursor(0, 3); - checkSD(); -#endif - -#ifdef OBD_ADAPTER_I2C - Wire.begin(); -#endif - if (memsInit()) - state |= STATE_MEMS_READY; - - testOut(); - - while (!init()); - - showVIN(); - showDTC(); - delay(3000); - - initScreen(); - - state |= STATE_INIT_DONE; - } -#if ENABLE_DATA_LOG -bool checkSD() -{ - Sd2Card card; - SdVolume volume; - pinMode(SS, OUTPUT); - - if (card.init(SPI_FULL_SPEED, SD_CS_PIN)) { - const char* type; - switch(card.type()) { - case SD_CARD_TYPE_SD1: - type = "SD1"; - break; - case SD_CARD_TYPE_SD2: - type = "SD2"; - break; - case SD_CARD_TYPE_SDHC: - type = "SDHC"; - break; - default: - type = "SDx"; - } - - lcd.print(type); - lcd.write(' '); - if (!volume.init(card)) { - return false; - } - - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - lcd.print((int)volumesize); - lcd.print("MB"); - } else { - return false; - } - - if (!SD.begin(SD_CS_PIN)) { - return false; - } - - return true; -} -#endif - void testOut() - { - static const char PROGMEM cmds[][8] = {"ATZ\r", "ATH1\r", "ATSP 0\r", "ATRV\r", "0100\r", "0902\r"}; - char buf[128]; - - lcd.setColor(RGB16_WHITE); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(0, 4); - - // recover from possible previous incomplete communication - recover(); - for (byte i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { - char cmd[8]; - memcpy_P(cmd, cmds[i], sizeof(cmd)); - lcd.setColor(RGB16_WHITE); - lcd.print("Sending "); - lcd.println(cmd); - lcd.setColor(RGB16_CYAN); - if (sendCommand(cmd, buf, sizeof(buf), OBD_TIMEOUT_LONG)) { - char *p = strstr(buf, cmd); - if (p) - p += strlen(cmd); - else - p = buf; - while (*p == '\r') p++; - while (*p) { - lcd.write(*p); - if (*p == '\r') - lcd.write('\n'); - p++; - } - lcd.println(); - } else { - lcd.println("Timeout"); - } - delay(500); - } - lcd.println(); - } - void showVIN() - { - char buf[255]; - lcd.setFontSize(FONT_SIZE_MEDIUM); - if (getVIN(buf, sizeof(buf))) { - lcd.setColor(RGB16_WHITE); - lcd.print("VIN:"); - lcd.setColor(RGB16_YELLOW); - lcd.println(buf); - } - } - void showDTC() - { - uint16_t dtc[6]; - int num = readDTC(dtc, sizeof(dtc) / sizeof(dtc[0])); - lcd.setColor(RGB16_WHITE); - lcd.print(num); - lcd.println(" DTC found"); - if (num > 0) { - lcd.setColor(RGB16_YELLOW); - for (byte i = 0; i < num; i++) { - lcd.print(dtc[i], HEX); - lcd.print(' '); - } - } - } - void loop() - { - static byte index2 = 0; - const byte pids[]= {PID_RPM, PID_SPEED, PID_THROTTLE, PID_ENGINE_LOAD}; - int values[sizeof(pids)]; - // read multiple OBD-II PIDs - if (readPID(pids, sizeof(pids), values) == sizeof(pids)) { - dataTime = millis(); - for (byte n = 0; n < sizeof(pids); n++) { - logData((uint16_t)pids[n] | 0x100, values[n]); - showData(pids[n], values[n]); - } - } - static byte lastSec = 0; - const byte pids2[] = {PID_COOLANT_TEMP, PID_INTAKE_TEMP, PID_AMBIENT_TEMP, PID_DISTANCE}; - byte sec = (uint8_t)(millis() >> 10); - if (sec != lastSec) { - // goes in every other second - int value; - byte pid = pids2[index2 = (index2 + 1) % (sizeof(pids2))]; - // read single OBD-II PID - if (isValidPID(pid) && readPID(pid, value)) { - dataTime = millis(); - logData((uint16_t)pid | 0x100, value); - showData(pid, value); - lastSec = sec; - } - } - if (errors >= 5) { - reconnect(); - } - if (state & STATE_MEMS_READY) { - processMEMS(); - } - } - void processMEMS() - { - int acc[3]; - int gyro[3]; - int temp; - - if (!memsRead(acc, gyro, 0, &temp)) return; - - dataTime = millis(); - - acc[0] /= ACC_DATA_RATIO; - acc[1] /= ACC_DATA_RATIO; - acc[2] /= ACC_DATA_RATIO; - gyro[0] /= GYRO_DATA_RATIO; - gyro[1] /= GYRO_DATA_RATIO; - gyro[2] /= GYRO_DATA_RATIO; - - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 14); - lcd.print(acc[0]); - lcd.print('/'); - lcd.print(acc[1]); - lcd.print('/'); - lcd.print(acc[2]); - lcd.print(' '); - - lcd.setCursor(152, 14); - lcd.print(gyro[0]); - lcd.print('/'); - lcd.print(gyro[1]); - lcd.print('/'); - lcd.print(gyro[2]); - lcd.print(' '); - - lcd.setFontSize(FONT_SIZE_MEDIUM); - - // log x/y/z of accelerometer - logData(PID_ACC, acc[0], acc[1], acc[2]); - // log x/y/z of gyro meter - logData(PID_GYRO, gyro[0], gyro[1], gyro[2]); - } - void reconnect() - { - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - startTime = millis(); - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; ; i++) { - if (i == 5) { - lcd.setBackLight(0); - lcd.clear(); - } - if (init()) { - lcd.setBackLight(255); - lcd.clear(); - lcd.print("Reseting..."); - // reset Arduino - resetFunc(); - } - } - } - // screen layout related stuff - void showData(byte pid, int value) - { - switch (pid) { - case PID_RPM: - lcd.setCursor(0, 2); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - showChart(value); - break; - case PID_SPEED: - lcd.setCursor(90, 2); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - break; - case PID_ENGINE_LOAD: - lcd.setCursor(164, 2); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt(value % 100, 3); - break; - case PID_INTAKE_TEMP: - if (value < 0) value = 0; - lcd.setCursor(248, 2); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt(value, 3); - break; - case PID_INTAKE_MAP: - lcd.setCursor(164, 9); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((uint16_t)value % 1000, 3); - break; - case PID_COOLANT_TEMP: - lcd.setCursor(8, 9); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((uint16_t)value % 1000, 3); - break; - case PID_DISTANCE: - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.setCursor(90, 9); - lcd.printInt((uint16_t)value % 1000, 3); - break; - } - } - void ShowVoltage(float v) - { - lcd.setFontSize(FONT_SIZE_LARGE); - lcd.setCursor(260, 10); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print(v); - } - void showChart(int value) - { - uint16_t height; - if (value >= 560) { - height = (value - 500) / 60; - } else { - height = 1; - } - chartUpdate(&chartRPM, height); - } - void initScreen() - { - lcd.clear(); - lcd.setBackLight(255); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setColor(RGB16_CYAN); - lcd.setCursor(4, 0); - lcd.print("ENGINE RPM"); - lcd.setCursor(104, 0); - lcd.print("SPEED"); - lcd.setCursor(164, 0); - lcd.print("ENGINE LOAD"); - lcd.setCursor(248, 0); - lcd.print("INTAKE TEMP"); - - lcd.setCursor(4, 7); - lcd.print("COOLANT TEMP"); - lcd.setCursor(104, 7); - lcd.print("DISTANCE"); - lcd.setCursor(164, 7); - lcd.print("INTAKE MAP"); - - lcd.setCursor(260, 9); - lcd.print("BATTERY"); - - lcd.setCursor(0, 14); - lcd.print("ACC"); - lcd.setCursor(122, 14); - lcd.print("GYRO"); - - lcd.setColor(RGB16_YELLOW); - lcd.setCursor(24, 5); - lcd.print("rpm"); - lcd.setCursor(110, 5); - lcd.print("km/h"); - lcd.setCursor(216, 4); - lcd.print("%"); - lcd.setCursor(304, 4); - lcd.print("C"); - lcd.setCursor(64, 11); - lcd.print("C"); - lcd.setCursor(110, 12); - lcd.print("km"); - lcd.setCursor(200, 12); - lcd.print("kpa"); - lcd.setCursor(296, 12); - lcd.print("V"); - - lcd.setColor(RGB16_CYAN); - lcd.setXY(0, 140); - lcd.print("6500"); - lcd.setXY(0, 186); - lcd.print("3500"); - lcd.setXY(0, 232); - lcd.print("500"); - - lcd.setColor(RGB16_WHITE); - } - byte state; -}; - -COBDDevice myOBD; - -void setup() -{ - lcd.begin(); - lcd.clear(); - lcd.setColor(RGB16_YELLOW); - lcd.println("Freematics OBD-II Adapter Tester"); - - myOBD.begin(); - myOBD.initSender(); - myOBD.setup(); -} - -void loop() -{ - myOBD.loop(); -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/README.txt b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/README.txt deleted file mode 100644 index 7a87cc5..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/README.txt +++ /dev/null @@ -1,4 +0,0 @@ -Data2KML is a command line program which converts Freematics CSV file generated by Freematics vehicle telematics products (http://freematics.com/products/) to KML files for viewing with Google Earth. - -Freematics Data Logging Format: -http://freematics.com/pages/software/freematics-data-logging-format diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/SampleData.CSV b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/SampleData.CSV deleted file mode 100644 index 68fbf99..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/SampleData.CSV +++ /dev/null @@ -1 +0,0 @@ -655930,20,101,-23,1 0,21,0,0,0 26,10C,1628 49,10D,0 25,104,23 19,111,14 20,10C,1554 32,10D,0 31,104,23 2,20,99,-26,-4 0,21,-1,0,0 26,111,14 2,10,7075900 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 78,10C,1484 32,10D,0 33,104,24 14,111,14 16,20,99,-28,-5 0,21,-1,0,0 19,10C,1425 20,10,7075920 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 58,10D,0 29,104,25 18,111,14 20,10C,1328 30,10D,0 21,20,99,-28,-7 0,21,-1,0,0 18,104,25 18,111,14 20,10C,1234 28,10D,0 29,104,26 24,111,14 18,10C,1167 30,10D,0 21,20,99,-28,-6 0,21,-1,0,0 23,104,26 14,111,14 24,10C,1089 28,10D,0 29,104,27 20,111,13 22,10C,1023 27,10D,0 21,20,98,-28,-9 0,21,-1,0,0 15,10,7075980 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 68,104,29 28,111,13 21,10C,789 26,10D,0 33,104,33 3,10,7080000 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 44,20,97,-26,-7 0,21,-1,0,0 17,111,13 16,10C,628 30,10D,0 33,104,36 15,111,12 23,10C,582 25,10,7080020 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 38,10D,0 22,20,100,-29,-6 0,21,0,0,0 17,104,38 15,111,12 22,10C,562 28,10D,0 31,104,40 20,111,12 2,10,7080040 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 52,10C,574 31,20,99,-28,-7 0,21,-1,0,0 19,10D,0 30,104,41 22,111,12 19,10C,589 25,10,7080060 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 39,10D,0 29,104,41 20,20,102,-26,-6 0,21,-1,0,0 17,111,12 15,10C,621 30,10D,0 28,104,41 21,111,12 2,10,7080080 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 53,10C,648 31,10D,0 22,20,99,-27,-6 0,21,-1,0,0 17,104,41 24,111,12 22,10C,644 28,10D,0 22,10,7080100 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 37,104,40 16,111,12 22,10C,632 20,20,99,-28,-10 0,21,-1,0,0 21,10D,0 31,104,40 21,111,12 21,10C,621 19,10,7080120 0,D,0 0,A,-3381958 0,B,15129730 0,C,80 39,10D,0 33,104,40 17,20,100,-27,-5 0,21,0,0,0 17,111,12 14,10C,609 29,10D,0 31,104,40 21,111,12 2,10,7080140 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 51,10C,617 32,10D,0 22,20,98,-29,-6 0,21,-1,0,0 17,104,38 16,111,12 20,10C,621 21,10,7080160 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 48,10D,0 29,104,38 23,111,12 19,10C,605 20,20,101,-27,-7 0,21,-1,0,0 16,10D,0 33,104,38 2,10,7080180 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 66,111,12 26,10C,597 30,10D,0 29,20,101,-27,-5 0,21,-1,0,0 16,104,38 26,111,12 14,10,7080200 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 53,10C,597 29,10D,0 28,104,38 20,111,12 15,20,101,-28,3 0,21,0,0,0 16,10C,601 31,10D,0 22,10,7080220 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 41,104,38 14,111,12 24,10C,597 27,10D,0 26,20,101,-27,-7 0,21,0,0,0 15,104,38 18,111,12 16,10C,597 19,10,7080240 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 53,10D,0 29,104,38 23,111,12 23,10C,617 19,20,98,-28,-4 0,21,-1,0,0 16,10D,0 34,104,38 23,111,12 15,10C,628 32,10D,0 29,104,37 18,111,12 23,10C,625 20,20,99,-29,-7 0,21,0,0,0 17,10D,0 22,10,7080280 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 56,104,37 18,111,12 16,10C,621 31,10D,0 27,104,38 23,20,102,-25,-9 0,21,-1,0,0 18,111,12 14,10C,640 22,10,7080300 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 53,10D,0 30,104,41 21,111,14 20,10C,656 22,20,98,-29,-5 0,21,-1,0,0 16,10,7080320 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 67,10D,0 31,104,47 17,111,18 24,10C,746 29,10D,0 21,20,94,-30,-10 0,21,-1,0,0 23,104,60 25,111,19 19,10C,859 32,10D,0 29,104,65 19,111,18 22,10C,1039 31,10D,0 20,20,97,-35,-5 0,21,-1,0,0 15,10,7080360 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 68,104,63 20,111,18 14,10C,1414 31,10D,0 31,104,57 9,10,7080380 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 38,111,18 7,20,95,-41,-7 0,21,-1,0,0 17,10C,1527 32,10D,0 30,104,53 20,111,18 21,10C,1546 30,10D,0 32,10,7080400 0,D,0 0,A,-3381958 0,B,15129730 0,C,75 38,104,51 7,20,98,-32,-8 0,21,-1,0,0 18,111,18 14,10C,1523 29,10D,0 30,104,50 20,111,18 20,10,7080420 0,D,1 0,A,-3381958 0,B,15129730 0,C,75 38,10C,1496 29,10D,0 20,20,98,-31,-7 0,21,-2,0,0 19,104,51 14,111,18 19,10C,1457 30,10D,0 30,104,51 2,10,7080440 0,D,1 0,A,-3381958 0,B,15129730 0,C,75 56,111,18 20,10C,1449 19,20,97,-37,-10 0,21,-3,0,0 19,10D,0 31,104,52 20,111,18 19,10C,1445 23,10,7080460 0,D,2 0,A,-3381958 0,B,15129730 0,C,75 39,10D,1 29,104,52 18,111,18 2,20,105,-33,19 0,21,-3,4,-2 31,10C,1441 26,10D,1 32,104,52 14,10,7080480 0,D,2 0,A,-3381958 0,B,15129730 0,C,75 38,111,18 19,10C,1453 40,20,101,-31,-8 0,21,-5,1,0 19,10D,1 30,104,41 20,111,14 21,10C,1386 22,10,7080500 0,D,3 0,A,-3381958 0,B,15129730 0,C,75 39,10D,1 39,104,33 11,20,101,-26,-11 0,21,-6,1,0 18,111,14 15,10C,1156 30,10D,1 31,104,33 13,10,7080520 0,D,4 0,A,-3381958 0,B,15129731 0,C,75 39,111,15 18,10C,1023 28,10D,3 21,20,103,-26,-4 0,21,-6,1,0 18,104,37 17,111,14 19,10C,933 32,10D,3 22,10,7080540 0,D,4 0,A,-3381957 0,B,15129731 0,C,75 38,104,40 18,111,14 20,10C,863 19,20,103,-21,-10 0,21,-7,1,0 17,10D,3 28,104,40 21,111,13 20,10C,839 24,10,7080560 0,D,4 0,A,-3381957 0,B,15129731 0,C,75 38,10D,3 33,104,40 20,111,13 2,20,101,-24,-8 0,21,-7,1,0 29,10C,804 30,10D,3 27,10,7080580 0,D,4 0,A,-3381957 0,B,15129731 0,C,75 38,104,40 18,111,13 24,10C,769 27,10D,3 21,20,97,-26,-5 0,21,-6,1,0 17,104,40 18,111,14 18,10C,718 29,10D,3 30,104,43 21,111,15 31,10C,671 31,10D,3 21,20,100,-27,-4 0,21,-5,1,0 17,104,48 17,111,15 20,10C,660 20,10,7080620 0,D,3 0,A,-3381957 0,B,15129731 0,C,75 48,10D,3 29,104,56 22,111,16 20,10C,761 19,20,104,-24,-5 0,21,-6,1,0 20,10D,3 45,104,55 22,111,16 18,10C,929 31,10D,3 30,104,51 17,111,16 21,20,101,-25,-8 0,21,-5,0,0 16,10C,1015 29,10D,3 30,104,49 22,111,16 19,10C,1101 29,10D,2 29,104,46 21,111,16 5,20,98,-32,-8 0,21,-5,1,0 29,10C,1132 20,10,7080680 0,D,2 0,A,-3381956 0,B,15129732 0,C,75 48,10D,2 29,104,44 19,111,16 19,10C,1132 31,10D,2 20,20,97,-29,-8 0,21,-5,0,0 19,104,43 7,10,7080700 0,D,2 0,A,-3381956 0,B,15129732 0,C,75 71,111,16 24,10C,1117 28,10D,2 32,104,43 18,111,16 2,20,103,-26,-8 0,21,-5,0,0 24,10,7080720 0,D,3 0,A,-3381956 0,B,15129732 0,C,75 59,10C,1097 33,10D,2 32,104,43 15,111,16 20,10C,1078 20,20,101,-27,-14 0,21,-6,1,0 18,10D,2 22,10,7080740 0,D,3 0,A,-3381956 0,B,15129732 0,C,75 55,104,43 15,111,16 23,10C,1078 28,10D,2 31,104,44 9,20,103,-23,-5 0,21,-6,1,0 19,111,16 7,10,7080760 0,D,3 0,A,-3381956 0,B,15129732 0,C,75 70,10C,1074 28,10D,2 30,104,44 22,111,16 19,10C,1066 19,20,97,-30,-11 0,21,-6,0,0 20,10D,2 30,104,44 21,111,16 21,10C,1066 28,10D,2 29,104,45 21,111,16 20,10C,1066 19,20,97,-30,-7 0,21,-5,1,0 24,10D,2 44,104,45 16,111,16 33,10C,1066 28,10D,2 30,104,45 22,111,16 2,10,7080820 0,D,3 0,A,-3381956 0,B,15129733 0,C,75 44,20,101,-29,-11 0,21,-6,1,0 19,10C,1066 27,10D,2 30,104,43 22,111,13 20,10C,1066 32,10D,2 21,10,7080840 0,D,3 0,A,-3381956 0,B,15129733 0,C,75 38,104,37 7,20,101,-23,-8 0,21,-6,0,0 18,111,13 18,10C,1027 32,10D,2 27,104,34 20,111,14 21,10C,941 20,10,7080860 0,D,3 0,A,-3381956 0,B,15129733 0,C,75 39,10D,2 20,20,105,-21,-6 0,21,-6,1,0 19,104,37 18,111,14 20,10C,855 29,10D,2 28,104,37 12,10,7080880 0,D,3 0,A,-3381956 0,B,15129733 0,C,75 39,111,13 18,10C,816 20,20,104,-22,-4 0,21,-5,0,0 17,10D,2 30,104,40 22,111,13 19,10C,796 32,10D,2 21,10,7080900 0,D,2 0,A,-3381955 0,B,15129733 0,C,75 38,104,38 19,111,13 2,20,98,-26,-2 0,21,-5,1,0 30,10C,785 36,10D,2 32,104,38 21,111,13 2,10,7080920 0,D,2 0,A,-3381955 0,B,15129733 0,C,75 57,10C,773 23,20,100,-22,-8 0,21,-4,0,0 18,10D,2 34,104,37 13,111,13 23,10C,761 28,10D,2 22,10,7080940 0,D,2 0,A,-3381955 0,B,15129734 0,C,75 38,104,38 15,111,13 18,20,102,-24,-8 0,21,-4,0,0 19,10C,753 27,10D,2 31,104,38 19,111,13 15,10,7080960 0,D,2 0,A,-3381955 0,B,15129734 0,C,75 38,10C,746 27,10D,2 27,20,100,-24,-5 0,21,-4,0,0 17,104,38 19,111,13 17,10C,730 30,10D,2 27,10,7080980 0,D,2 0,A,-3381955 0,B,15129734 0,C,75 38,104,40 15,111,13 19,10C,726 20,20,98,-27,-8 0,21,-4,0,0 18,10D,2 29,104,40 26,111,13 21,10C,738 21,10,7081000 0,D,1 0,A,-3381955 0,B,15129734 0,C,75 39,10D,2 33,104,40 16,20,101,-24,-5 0,21,-4,0,0 18,111,12 28,10C,746 28,10D,2 27,10,7081020 0,D,1 0,A,-3381955 0,B,15129734 0,C,75 42,104,37 15,111,12 19,10C,734 24,20,98,-24,-9 0,21,-3,0,0 18,10D,1 28,104,35 20,111,12 22,10C,718 22,10,7081040 0,D,1 0,A,-3381955 0,B,15129734 0,C,75 39,10D,1 33,104,35 19,111,12 2,20,97,-24,-7 0,21,-3,0,0 31,10C,703 29,10D,1 28,104,35 12,10,7081060 0,D,1 0,A,-3381955 0,B,15129734 0,C,75 39,111,12 15,10C,695 27,10D,1 22,20,102,-23,-6 0,21,-2,0,0 17,104,35 19,111,12 14,10C,675 29,10D,1 30,104,35 16,10,7081080 0,D,1 0,A,-3381955 0,B,15129734 0,C,76 38,111,12 18,10C,671 19,20,101,-23,-8 0,21,-2,0,0 22,10D,0 43,104,36 18,111,12 15,10,7081100 0,D,1 0,A,-3381955 0,B,15129735 0,C,76 39,10C,664 27,10D,0 30,104,37 6,20,100,-24,-10 0,21,-2,0,0 30,111,12 26,10C,671 30,10D,0 23,10,7081120 0,D,0 0,A,-3381955 0,B,15129735 0,C,76 39,104,37 18,111,13 19,10C,687 20,20,100,-24,-15 0,21,-2,0,0 17,10D,0 32,104,40 19,111,13 22,10C,691 19,10,7081140 0,D,0 0,A,-3381955 0,B,15129735 0,C,76 39,10D,0 33,104,44 20,111,15 2,20,98,3,2 0,21,-1,-1,1 26,10C,718 29,10D,0 30,104,49 2,10,7081160 0,D,0 0,A,-3381955 0,B,15129735 0,C,76 56,111,13 19,10C,769 28,10D,0 22,20,102,-15,-5 0,21,-1,0,0 17,104,45 16,111,13 20,10C,824 33,10D,0 30,104,42 22,111,13 15,10C,804 32,10D,0 21,20,100,-19,-13 0,21,0,0,0 18,104,42 16,111,13 21,10C,789 20,10,7081200 0,D,0 0,A,-3381955 0,B,15129735 0,C,76 46,10D,0 30,104,42 23,111,13 19,10C,734 19,20,101,-20,-9 0,21,0,0,0 17,10D,0 35,10,7081220 0,D,0 0,A,-3381955 0,B,15129735 0,C,76 45,104,42 19,111,13 19,10C,687 31,10D,0 29,104,42 5,20,101,-15,-7 0,21,0,0,0 24,111,12 23,10C,671 21,10,7081240 0,D,0 0,A,-3381955 0,B,15129735 0,C,76 43,10D,0 56,104,41 16,111,12 19,20,107,-21,-7 0,21,0,0,0 16,10C,667 26,10D,0 23,10,7081260 0,D,1 0,A,-3381955 0,B,15129735 0,C,76 43,104,41 19,111,12 18,10C,652 28,10D,0 30,104,41 1,20,101,-21,-10 0,21,-1,0,0 28,111,12 22,10C,644 19,10,7081280 0,D,1 0,A,-3381955 0,B,15129734 0,C,76 41,10D,0 30,104,41 22,111,12 16,10C,636 23,20,103,-17,-14 0,21,-1,0,0 17,10D,0 28,104,41 3,10,7081300 0,D,2 0,A,-3381955 0,B,15129734 0,C,76 70,111,12 19,10C,632 31,10D,1 29,104,41 6,20,106,-18,-10 0,21,-1,0,0 28,111,12 19,10,7081320 0,D,2 0,A,-3381955 0,B,15129734 0,C,76 50,10C,621 28,10D,1 30,104,41 17,111,12 24,10C,613 19,20,105,-20,-11 0,21,-3,0,0 17,10D,1 22,10,7081340 0,D,2 0,A,-3381955 0,B,15129734 0,C,76 56,104,42 20,111,12 18,10C,628 32,10D,1 28,104,42 7,20,101,-23,-12 0,21,-4,0,0 30,111,12 2,10,7081360 0,D,2 0,A,-3381955 0,B,15129734 0,C,76 76,10C,644 32,10D,1 33,104,41 14,111,12 14,20,103,-22,-16 0,21,-4,0,0 17,10C,652 20,10,7081380 0,D,3 0,A,-3381955 0,B,15129734 0,C,76 58,10D,2 46,104,41 22,111,12 20,10C,660 19,20,102,-20,-13 0,21,-5,0,0 17,10D,2 22,10,7081400 0,D,3 0,A,-3381955 0,B,15129734 0,C,76 56,104,41 17,10,7081400 0,D,3 0,A,-3381955 0,B,15129734 0,C,65 58,111,12 15,10C,664 19,20,100,-20,-19 0,21,-6,0,0 18,10D,2 31,10,7081420 0,D,3 0,A,-3381955 0,B,15129733 0,C,65 59,104,40 19,111,12 18,10C,671 31,10D,2 24,20,103,-20,-13 0,21,-6,1,0 18,104,40 7,10,7081440 0,D,3 0,A,-3381955 0,B,15129733 0,C,65 71,111,12 15,10C,683 28,10D,3 32,104,40 18,111,12 13,20,97,-28,-10 0,21,-6,1,0 23,10C,699 19,10,7081460 0,D,3 0,A,-3381955 0,B,15129733 0,C,65 55,10D,3 34,104,38 18,111,12 18,10C,703 30,10D,3 21,20,102,-20,-17 0,21,-7,1,0 19,104,38 15,111,12 2,10,7081480 0,D,3 0,A,-3381954 0,B,15129733 0,C,76 85,10C,710 28,10D,3 31,104,37 20,111,12 2,20,100,-23,-12 0,21,-7,0,0 15,10,7081500 0,D,3 0,A,-3381954 0,B,15129733 0,C,76 80,10C,714 27,10D,3 29,104,34 22,111,12 22,10C,714 19,20,97,-22,-18 0,21,-7,0,0 15,10,7081520 0,D,4 0,A,-3381954 0,B,15129733 0,C,76 68,10D,4 40,104,31 22,111,12 19,10C,687 41,20,99,-24,-15 0,21,-6,1,0 21,10D,4 32,104,31 20,111,12 19,10C,652 32,10D,4 31,104,31 19,111,12 9,10,7081560 0,D,4 0,A,-3381954 0,B,15129732 0,C,76 39,10C,652 20,20,105,-21,-13 0,21,-6,1,0 17,10D,4 34,104,31 14,111,12 23,10C,640 30,10D,4 26,10,7081580 0,D,4 0,A,-3381954 0,B,15129732 0,C,76 38,104,31 20,111,12 6,20,107,-16,-9 0,21,-6,0,0 17,10C,621 32,10D,4 30,104,31 20,111,12 20,10C,621 29,10D,4 31,104,31 17,111,12 4,20,91,-33,-12 0,21,-6,1,0 30,10C,617 28,10D,4 28,104,31 22,111,12 21,10C,617 21,10,7081620 0,D,4 0,A,-3381953 0,B,15129732 0,C,76 42,10D,4 21,20,95,-27,-14 0,21,-7,1,1 18,104,31 28,111,12 19,10C,613 29,10D,4 29,104,31 3,10,7081640 0,D,4 0,A,-3381953 0,B,15129732 0,C,76 52,111,12 22,10C,613 19,20,103,-24,-7 0,21,-6,1,0 18,10D,4 33,104,34 17,111,13 25,10C,640 21,10,7081660 0,D,4 0,A,-3381953 0,B,15129732 0,C,76 39,10D,4 33,104,37 15,20,104,-19,-15 0,21,-6,1,0 18,111,13 18,10C,683 26,10D,4 31,104,40 14,10,7081680 0,D,4 0,A,-3381953 0,B,15129732 0,C,76 38,111,13 19,10C,742 31,10D,4 21,20,99,-22,-13 0,21,-5,0,0 50,104,40 28,111,13 14,10,7081700 0,D,4 0,A,-3381952 0,B,15129732 0,C,76 39,10C,792 32,10D,4 29,104,40 11,20,99,-18,-12 0,21,-5,0,0 17,111,13 18,10C,835 30,10D,4 30,104,40 19,111,14 3,10,7081720 0,D,4 0,A,-3381952 0,B,15129732 0,C,76 54,10C,863 28,10D,4 30,20,97,-21,-13 0,21,-4,1,0 18,104,40 16,111,14 23,10C,878 19,10,7081740 0,D,4 0,A,-3381952 0,B,15129731 0,C,76 46,10D,4 33,104,41 19,111,15 20,10C,914 19,20,98,-22,-13 0,21,-4,0,1 16,10D,4 30,104,42 3,10,7081760 0,D,5 0,A,-3381952 0,B,15129731 0,C,76 72,111,15 24,10C,960 27,10D,4 28,104,42 2,20,98,-19,-10 0,21,-3,0,0 29,111,15 12,10,7081780 0,D,5 0,A,-3381951 0,B,15129731 0,C,76 55,10C,1000 29,10D,4 29,104,42 18,111,15 24,10C,1007 19,20,98,-20,-14 0,21,-3,0,0 17,10D,5 23,10,7081800 0,D,5 0,A,-3381951 0,B,15129731 0,C,76 55,104,42 20,111,15 14,10C,1035 28,10D,5 32,104,41 11,20,108,-10,-7 0,21,-3,1,0 17,111,15 13,10,7081820 0,D,5 0,A,-3381951 0,B,15129731 0,C,76 66,10C,1039 29,10D,5 28,104,40 31,111,15 17,20,103,-15,-10 0,21,-2,0,0 17,10C,1070 37,10,7081840 0,D,6 0,A,-3381951 0,B,15129731 0,C,76 42,10D,5 29,104,40 23,111,15 20,10C,1085 30,10D,5 21,20,102,-16,-11 0,21,-1,0,0 18,104,40 15,111,15 4,10,7081860 0,D,6 0,A,-3381950 0,B,15129731 0,C,76 80,10C,1109 32,10D,6 28,104,40 21,111,15 2,20,98,-21,-10 0,21,0,0,0 15,10,7081880 0,D,7 0,A,-3381950 0,B,15129730 0,C,76 79,10C,1121 28,10D,6 32,104,40 19,111,15 20,10C,1136 20,20,99,-21,-7 0,21,0,0,-1 15,10,7081900 0,D,7 0,A,-3381950 0,B,15129730 0,C,76 68,10D,6 33,104,37 20,111,15 18,10C,1160 31,10D,6 20,20,108,-11,-10 0,21,0,0,0 19,10,7081920 0,D,7 0,A,-3381949 0,B,15129730 0,C,76 65,104,37 14,111,15 23,10C,1183 27,10D,6 39,10,7081940 0,D,8 0,A,-3381949 0,B,15129730 0,C,76 38,104,36 7,20,102,-17,-16 0,21,0,0,0 18,111,12 14,10C,1187 28,10D,7 34,104,29 16,111,12 25,10C,1132 28,10D,7 31,104,26 10,20,104,-18,-13 0,21,0,0,0 18,111,13 15,10C,1054 32,10D,7 33,104,26 14,111,12 28,10C,1019 21,10,7081980 0,D,8 0,A,-3381948 0,B,15129729 0,C,76 38,10D,7 22,20,95,-27,-14 0,21,0,0,0 17,104,25 14,111,12 20,10C,984 30,10D,7 45,104,24 11,10,7082000 0,D,8 0,A,-3381948 0,B,15129729 0,C,76 39,111,12 14,10C,953 19,20,100,-23,-10 0,21,0,0,0 19,10D,8 29,104,22 18,111,12 20,10C,914 31,10D,8 22,10,7082020 0,D,8 0,A,-3381947 0,B,15129728 0,C,76 38,104,23 15,111,12 11,20,93,-31,-11 0,21,0,0,0 18,10C,847 31,10D,8 29,104,24 33,111,12 8,10,7082040 0,D,8 0,A,-3381947 0,B,15129728 0,C,76 38,10C,816 32,10D,8 21,20,97,-27,-13 0,21,0,0,0 18,104,24 14,111,12 22,10C,800 30,10D,8 27,10,7082060 0,D,8 0,A,-3381947 0,B,15129728 0,C,76 38,104,25 15,111,13 18,10C,750 20,20,98,-27,-13 0,21,0,0,0 18,10D,8 33,104,28 19,111,12 19,10C,738 29,10D,7 30,104,31 18,111,12 23,10C,765 20,20,103,-21,-6 0,21,0,0,0 17,10D,7 29,104,32 22,111,13 22,10C,824 20,10,7082100 0,D,7 0,A,-3381946 0,B,15129727 0,C,76 39,10D,7 34,104,31 18,111,13 3,20,97,-25,-14 0,21,0,0,0 29,10C,910 30,10D,7 29,104,30 11,10,7082120 0,D,7 0,A,-3381946 0,B,15129727 0,C,76 39,111,12 14,10C,914 32,10D,7 20,20,89,-28,-15 0,21,0,0,0 19,104,29 14,111,13 23,10C,910 37,10D,7 21,10,7082140 0,D,7 0,A,-3381945 0,B,15129727 0,C,76 43,104,29 27,111,12 18,20,104,-19,-15 0,21,0,0,0 17,10C,898 30,10D,6 28,104,29 14,10,7082160 0,D,7 0,A,-3381945 0,B,15129727 0,C,76 38,111,12 15,10C,886 28,10D,6 30,20,103,-20,-17 0,21,0,0,0 17,104,30 14,111,13 22,10C,882 27,10D,6 22,10,7082180 0,D,7 0,A,-3381945 0,B,15129726 0,C,76 38,104,29 15,111,12 22,10C,894 24,20,104,-20,-12 0,21,0,0,0 18,10D,6 32,104,29 18,111,12 23,10C,886 19,10,7082200 0,D,7 0,A,-3381945 0,B,15129726 0,C,76 39,10D,6 30,104,30 21,111,12 2,20,102,-21,-18 0,21,0,0,1 42,10C,894 29,10D,6 31,104,29 21,111,12 2,10,7082220 0,D,7 0,A,-3381944 0,B,15129726 0,C,77 51,10C,890 25,20,101,-22,-14 0,21,0,0,0 17,10D,6 29,104,29 32,111,13 12,10,7082240 0,D,7 0,A,-3381944 0,B,15129726 0,C,77 39,10C,890 28,10D,6 29,104,29 16,20,95,-27,-11 0,21,0,0,0 17,111,13 17,10C,890 30,10D,6 30,104,29 19,111,12 3,10,7082260 0,D,7 0,A,-3381944 0,B,15129725 0,C,77 55,10C,890 28,10D,6 21,20,104,-19,-16 0,21,0,0,0 17,104,29 18,111,13 18,10C,894 22,10,7082280 0,D,7 0,A,-3381943 0,B,15129725 0,C,77 51,10D,6 45,104,30 16,111,13 17,20,99,-21,-17 0,21,0,0,0 16,10C,902 29,10D,6 30,104,30 19,111,13 2,10,7082300 0,D,7 0,A,-3381943 0,B,15129725 0,C,77 55,10C,906 29,10D,6 20,20,95,-26,-15 0,21,0,0,0 18,104,31 16,111,13 22,10C,910 20,10,7082320 0,D,7 0,A,-3381943 0,B,15129724 0,C,77 46,10D,6 33,104,33 19,111,14 21,10C,921 19,20,103,-22,-12 0,21,0,0,0 17,10D,6 39,104,34 18,111,14 5,10,7082340 0,D,7 0,A,-3381942 0,B,15129724 0,C,77 55,10C,945 32,10D,6 29,104,33 5,20,107,-16,-16 0,21,0,0,0 24,111,14 20,10C,964 24,10,7082360 0,D,7 0,A,-3381942 0,B,15129724 0,C,77 41,10D,6 29,104,34 23,111,14 19,10C,984 20,20,95,-25,-10 0,21,0,0,0 15,10D,6 29,104,34 6,10,7082380 0,D,7 0,A,-3381942 0,B,15129724 0,C,77 72,111,14 17,10C,984 33,10D,6 28,20,96,-22,-12 0,21,0,0,0 17,104,33 16,111,14 19,10,7082400 0,D,7 0,A,-3381942 0,B,15129723 0,C,77 56,10C,984 33,10D,6 28,104,33 20,111,13 13,20,103,-20,-16 0,21,0,0,0 16,10C,996 29,10,7082420 0,D,7 0,A,-3381941 0,B,15129723 0,C,77 52,10D,6 30,104,32 18,111,13 24,10C,996 27,10D,6 21,20,104,-17,-11 0,21,0,0,0 22,104,32 27,10,7082440 0,D,7 0,A,-3381941 0,B,15129723 0,C,77 47,111,13 19,10C,996 32,10D,6 32,104,31 19,111,12 2,20,101,-22,-18 0,21,-1,0,0 30,10C,1000 20,10,7082460 0,D,8 0,A,-3381941 0,B,15129722 0,C,77 47,10D,6 34,104,27 18,111,12 21,10C,972 29,10D,6 21,20,101,-22,-12 0,21,-1,0,0 18,104,25 16,111,12 10,10,7082480 0,D,8 0,A,-3381940 0,B,15129722 0,C,77 64,10C,921 31,10D,6 29,104,24 22,111,12 10,20,97,-27,-12 0,21,-1,0,0 14,10,7082500 0,D,7 0,A,-3381940 0,B,15129722 0,C,77 69,10C,878 32,10D,6 29,104,24 27,111,12 20,10C,839 19,20,105,-21,-15 0,21,-2,0,0 19,10D,6 29,104,25 22,111,12 21,10C,804 27,10D,6 29,104,27 23,111,12 20,10C,800 20,20,104,-24,-13 0,21,-2,0,0 14,10,7082540 0,D,7 0,A,-3381939 0,B,15129721 0,C,77 68,10D,6 40,104,28 22,111,12 20,10C,808 29,10D,6 22,20,93,-34,-15 0,21,-2,0,0 18,104,28 14,111,12 23,10C,816 28,10D,6 29,104,28 22,111,12 19,10C,812 29,10D,6 21,20,99,-33,-10 0,21,-1,0,0 19,104,28 18,111,12 20,10C,796 27,10D,6 30,104,29 22,111,12 19,10C,789 29,10D,6 21,20,98,-23,-13 0,21,-2,0,0 23,104,29 26,111,12 23,10C,773 27,10D,6 32,104,29 21,111,12 12,10,7082620 0,D,5 0,A,-3381938 0,B,15129720 0,C,77 39,10C,750 18,20,95,-29,-21 0,21,-2,0,0 19,10D,6 29,104,30 22,111,12 19,10C,734 30,10D,6 30,104,30 19,111,12 4,10,7082640 0,D,5 0,A,-3381938 0,B,15129720 0,C,77 42,20,98,-26,-12 0,21,-2,0,0 19,10C,738 32,10D,5 37,104,30 22,111,12 18,10C,746 20,10,7082660 0,D,5 0,A,-3381938 0,B,15129720 0,C,77 39,10D,5 20,20,103,-22,-13 0,21,-3,0,0 19,104,29 18,111,12 20,10C,738 29,10D,5 33,104,28 11,10,7082680 0,D,5 0,A,-3381938 0,B,15129720 0,C,77 38,111,12 19,10C,738 19,20,101,-19,-18 0,21,-2,0,0 17,10D,5 34,104,27 19,111,12 23,10C,730 25,10,7082700 0,D,5 0,A,-3381937 0,B,15129720 0,C,77 38,10D,5 29,104,27 15,20,100,-22,-13 0,21,-3,0,0 17,111,19 19,10C,722 30,10D,4 28,104,48 21,111,17 2,10,7082720 0,D,5 0,A,-3381937 0,B,15129719 0,C,77 53,10C,855 31,10D,4 21,20,99,-20,-17 0,21,-3,1,0 18,104,55 15,111,16 21,10C,1019 31,10D,4 22,10,7082740 0,D,5 0,A,-3381937 0,B,15129719 0,C,77 39,104,52 19,111,16 35,10C,1152 21,20,103,-15,-17 0,21,-3,0,0 18,10D,4 40,104,47 14,10,7082760 0,D,5 0,A,-3381937 0,B,15129719 0,C,77 38,111,16 18,10C,1199 29,10D,4 29,104,44 15,20,103,-11,-16 0,21,-3,0,0 16,111,16 13,10C,1214 31,10D,4 23,10,7082780 0,D,6 0,A,-3381936 0,B,15129719 0,C,77 40,104,44 18,111,17 20,10C,1218 28,10D,5 21,20,103,-18,-6 0,21,-2,0,0 17,104,45 18,111,17 23,10C,1253 21,10,7082800 0,D,6 0,A,-3381936 0,B,15129719 0,C,77 43,10D,5 29,104,47 23,111,17 15,10C,1308 20,20,96,-14,-7 0,21,-1,0,0 17,10D,5 29,104,48 11,10,7082820 0,D,7 0,A,-3381936 0,B,15129718 0,C,77 52,111,17 19,10C,1386 28,10D,5 30,104,46 14,20,110,-4,-7 0,21,-1,0,0 17,111,18 20,10C,1425 30,10D,5 30,104,46 17,111,18 20,10C,1468 33,10D,5 29,104,46 4,20,102,-11,-13 0,21,0,0,0 37,111,18 13,10,7082860 0,D,8 0,A,-3381935 0,B,15129718 0,C,77 46,10C,1507 29,10D,7 30,104,45 21,111,18 20,10C,1531 19,20,108,-10,-5 0,21,0,0,0 16,10D,7 31,104,44 19,111,18 2,10,7082880 0,D,8 0,A,-3381934 0,B,15129718 0,C,77 62,10C,1535 29,10D,7 32,104,43 11,20,103,-9,-5 0,21,1,0,0 21,111,18 20,10,7082900 0,D,10 0,A,-3381934 0,B,15129717 0,C,77 55,10C,1519 29,10D,7 32,104,43 15,111,18 20,10C,1507 20,20,102,-13,-7 0,21,1,-2,0 17,10D,7 22,10,7082920 0,D,11 0,A,-3381933 0,B,15129717 0,C,77 56,104,43 15,111,17 23,10C,1511 28,10D,10 28,104,42 12,20,99,-17,-10 0,21,1,0,0 19,111,15 7,10,7082940 0,D,12 0,A,-3381933 0,B,15129716 0,C,77 70,10C,1507 28,10D,10 30,104,31 20,111,14 28,20,89,-21,-5 0,21,1,0,-1 19,10C,1390 19,10,7082960 0,D,12 0,A,-3381932 0,B,15129716 0,C,77 57,10D,10 30,104,26 23,111,13 18,10C,1250 30,10D,10 21,20,98,-24,-5 0,21,1,0,0 19,104,26 14,111,14 24,10C,1207 28,10D,10 30,104,26 18,111,12 23,10C,1195 30,10D,12 21,20,105,-23,-5 0,21,0,-2,0 19,104,23 18,111,12 19,10C,1187 32,10D,12 34,104,22 18,111,12 24,10C,1148 28,10D,12 21,20,100,-30,-13 0,21,0,0,0 13,10,7083020 0,D,13 0,A,-3381931 0,B,15129714 0,C,77 70,104,21 15,111,13 22,10C,1066 30,10D,12 29,104,25 2,10,7083040 0,D,13 0,A,-3381930 0,B,15129714 0,C,77 44,20,105,-24,-6 0,21,0,0,0 19,111,14 14,10C,1062 32,10D,12 34,104,28 31,111,14 28,10,7083060 0,D,13 0,A,-3381930 0,B,15129713 0,C,77 39,10C,1109 19,20,99,-23,-11 0,21,0,0,0 18,10D,12 31,104,30 17,111,14 24,10C,1191 26,10D,12 31,104,30 22,111,15 2,10,7083080 0,D,13 0,A,-3381929 0,B,15129713 0,C,77 45,20,103,-17,-15 0,21,0,-1,0 17,10C,1218 29,10D,12 29,104,33 22,111,16 20,10C,1269 22,10,7083100 0,D,13 0,A,-3381929 0,B,15129712 0,C,77 38,10D,12 26,20,101,-18,-12 0,21,0,0,0 18,104,33 14,111,13 24,10C,1292 26,10D,12 33,104,29 8,10,7083120 0,D,13 0,A,-3381928 0,B,15129712 0,C,77 43,111,13 19,10C,1242 19,20,103,-23,-12 0,21,0,0,0 17,10D,12 31,104,26 22,111,13 19,10C,1207 29,10D,12 21,10,7083140 0,D,13 0,A,-3381928 0,B,15129711 0,C,77 38,104,25 16,111,12 10,20,95,-25,-20 0,21,0,0,0 17,10C,1191 29,10D,12 29,104,21 21,111,12 22,10,7083160 0,D,13 0,A,-3381927 0,B,15129711 0,C,77 37,10C,1167 29,10D,12 22,20,101,-28,-17 0,21,0,0,0 17,104,20 18,111,12 18,10C,1117 31,10D,12 26,10,7083180 0,D,13 0,A,-3381927 0,B,15129710 0,C,77 38,104,18 15,111,12 22,10C,1027 19,20,104,-23,-11 0,21,0,0,0 23,10D,12 40,104,22 22,111,14 22,10C,945 19,10,7083200 0,D,13 0,A,-3381926 0,B,15129710 0,C,77 38,10D,12 31,104,28 5,20,102,-24,-11 0,21,-1,0,0 30,111,14 14,10C,960 30,10D,12 30,104,31 3,10,7083220 0,D,13 0,A,-3381926 0,B,15129709 0,C,77 51,111,14 23,10C,1066 20,20,96,-29,-14 0,21,0,0,0 18,10D,12 29,104,32 22,111,14 20,10C,1140 30,10D,12 30,104,32 18,111,15 23,10C,1191 20,20,98,-26,-9 0,21,0,0,0 17,10D,12 30,104,32 22,111,15 22,10C,1234 31,10,7083260 0,D,12 0,A,-3381925 0,B,15129708 0,C,77 37,10D,12 34,104,33 11,20,101,-21,-10 0,21,0,0,0 18,111,15 17,10C,1308 30,10D,12 28,10,7083280 0,D,12 0,A,-3381924 0,B,15129708 0,C,77 38,104,33 18,111,16 19,10C,1324 32,10D,12 22,20,104,-18,-11 0,21,0,0,0 17,104,33 13,111,15 23,10C,1328 30,10D,12 30,104,33 17,111,16 20,10C,1343 33,10D,12 20,20,102,-21,-15 0,21,0,0,0 18,104,33 17,111,16 21,10C,1355 21,10,7083320 0,D,13 0,A,-3381923 0,B,15129707 0,C,77 46,10D,12 30,104,34 20,111,16 19,10C,1378 19,20,103,-16,-10 0,21,-1,-1,0 18,10D,12 29,104,35 11,10,7083340 0,D,13 0,A,-3381923 0,B,15129706 0,C,77 52,111,16 27,10C,1417 30,10D,12 30,104,36 3,20,101,-23,-16 0,21,-1,0,0 28,111,16 18,10C,1425 23,10,7083360 0,D,13 0,A,-3381922 0,B,15129705 0,C,77 41,10D,12 43,104,36 18,111,16 21,10C,1425 19,20,99,-18,-16 0,21,-1,0,0 16,10D,12 27,10,7083380 0,D,13 0,A,-3381922 0,B,15129705 0,C,77 53,104,36 16,111,16 21,10C,1414 29,10D,12 29,104,36 11,20,100,-17,-16 0,21,-1,0,0 16,111,16 19,10C,1410 20,10,7083400 0,D,14 0,A,-3381921 0,B,15129704 0,C,77 53,10D,12 30,104,36 18,111,16 24,10C,1398 23,20,101,-12,-17 0,21,-1,0,0 20,10D,12 31,104,36 17,10,7083420 0,D,14 0,A,-3381921 0,B,15129704 0,C,77 41,111,16 19,10C,1386 27,10D,13 30,104,35 15,20,97,-15,-18 0,21,-1,0,0 17,111,15 19,10C,1382 20,10,7083440 0,D,15 0,A,-3381920 0,B,15129703 0,C,77 53,10D,13 29,104,31 22,111,13 20,10C,1324 23,20,105,-18,-10 0,21,-2,0,0 16,10D,13 31,104,26 19,111,13 2,10,7083460 0,D,15 0,A,-3381920 0,B,15129702 0,C,77 66,10C,1156 37,10D,13 29,20,92,-25,-18 0,21,0,0,0 16,104,27 15,111,12 2,10,7083480 0,D,15 0,A,-3381919 0,B,15129702 0,C,77 84,10C,1195 39,10D,15 35,104,22 9,20,102,-25,-8 0,21,0,1,0 17,111,12 15,10C,1191 20,10,7083500 0,D,16 0,A,-3381918 0,B,15129701 0,C,77 56,10D,15 34,104,20 18,111,12 20,10C,1128 23,20,110,-26,-15 0,21,-1,-1,0 17,10D,15 30,104,20 15,10,7083520 0,D,16 0,A,-3381918 0,B,15129701 0,C,77 47,111,12 18,10C,1066 33,10D,15 32,104,20 8,20,99,-21,-14 0,21,0,0,0 16,111,12 12,10,7083540 0,D,15 0,A,-3381917 0,B,15129700 0,C,77 67,10C,1015 33,10D,15 30,104,20 20,111,12 20,10C,945 20,20,99,-27,-11 0,21,0,0,0 18,10D,15 38,104,21 19,111,11 19,10C,929 32,10D,15 38,104,21 21,111,11 15,20,108,-25,-11 0,21,-1,0,0 18,10C,898 32,10D,15 29,104,21 19,111,12 20,10C,867 32,10D,15 28,104,22 20,111,11 2,20,96,-27,-17 0,21,-1,0,0 31,10C,835 29,10D,15 33,104,22 19,111,12 25,10C,812 26,10D,15 32,104,22 9,20,105,-24,-16 0,21,-1,0,0 15,10,7083620 0,D,15 0,A,-3381915 0,B,15129697 0,C,77 68,111,12 16,10C,796 31,10D,15 30,104,22 26,111,11 14,20,100,-28,-16 0,21,0,0,0 15,10,7083640 0,D,15 0,A,-3381914 0,B,15129697 0,C,77 69,10C,789 31,10D,14 49,104,24 22,111,11 14,20,94,-27,-26 0,21,-1,0,1 15,10,7083660 0,D,14 0,A,-3381914 0,B,15129696 0,C,77 68,10C,765 32,10D,14 34,104,24 31,111,11 21,10C,742 20,20,105,-32,-15 0,21,-1,0,0 14,10,7083680 0,D,14 0,A,-3381913 0,B,15129695 0,C,77 69,10D,14 29,104,24 23,111,11 18,10C,738 31,10D,14 21,20,94,-28,-22 0,21,-1,0,0 15,10,7083700 0,D,14 0,A,-3381913 0,B,15129695 0,C,77 68,104,24 20,111,11 14,10C,746 30,10D,14 33,104,24 7,10,7083720 0,D,14 0,A,-3381912 0,B,15129694 0,C,77 39,111,11 6,20,101,-27,-14 0,21,-1,0,0 22,10C,738 28,10D,14 30,104,25 20,111,11 21,10C,738 31,10D,14 22,10,7083740 0,D,13 0,A,-3381912 0,B,15129694 0,C,77 38,104,25 7,20,56,-8,-20 0,21,-1,0,-6 17,111,11 19,10C,730 32,10D,14 27,104,25 28,111,11 12,10,7083760 0,D,12 0,A,-3381911 0,B,15129693 0,C,77 38,10C,730 29,10D,14 21,20,82,-54,-42 0,21,-2,-3,4 18,104,25 14,111,11 19,10C,722 30,10D,12 43,104,25 20,111,11 2,10,7083780 0,D,12 0,A,-3381911 0,B,15129693 0,C,76 55,20,119,-24,-18 0,21,-1,0,-2 18,10C,746 28,10D,12 32,104,25 18,111,13 23,10C,757 35,10,7083800 0,D,12 0,A,-3381910 0,B,15129692 0,C,76 41,10D,12 21,20,79,-50,-30 0,21,-1,0,3 17,104,30 19,111,14 21,10C,750 30,10D,12 23,10,7083820 0,D,11 0,A,-3381910 0,B,15129692 0,C,76 38,104,35 19,111,14 19,10C,839 20,20,74,-25,-12 0,21,-2,2,-2 17,10D,12 33,104,40 18,111,15 22,10C,957 19,10,7083840 0,D,11 0,A,-3381910 0,B,15129691 0,C,76 39,10D,12 30,104,38 18,111,16 4,20,104,-26,-22 0,21,0,-2,-5 29,10C,1167 30,10D,10 30,104,40 3,10,7083860 0,D,10 0,A,-3381909 0,B,15129691 0,C,76 51,111,18 19,10C,1277 36,10D,10 22,20,104,-14,-20 0,21,-1,1,2 17,104,49 17,111,20 29,10C,1355 22,10,7083880 0,D,10 0,A,-3381909 0,B,15129690 0,C,76 38,10D,10 29,104,63 23,111,21 19,10C,1507 20,20,105,-8,-21 0,21,-1,0,-1 17,10D,10 32,104,66 12,10,7083900 0,D,10 0,A,-3381908 0,B,15129690 0,C,76 48,111,21 15,10C,1718 28,10D,10 34,104,65 14,20,99,-7,-18 0,21,-1,0,0 17,111,21 16,10C,1792 30,10D,10 31,104,61 20,111,21 21,10C,1847 28,10D,10 30,104,60 7,20,98,-14,-27 0,21,-1,0,1 28,111,21 15,10C,1878 22,10,7083940 0,D,11 0,A,-3381908 0,B,15129689 0,C,76 45,10D,10 45,104,55 17,111,20 23,10C,1894 19,20,112,-5,-29 0,21,-1,0,-1 16,10D,10 34,104,52 20,111,20 2,10,7083960 0,D,11 0,A,-3381907 0,B,15129688 0,C,76 62,10C,1835 32,10D,10 33,104,52 2,20,101,-17,-17 0,21,-1,0,0 27,111,20 19,10,7083980 0,D,14 0,A,-3381906 0,B,15129688 0,C,76 50,10C,1804 33,10D,12 30,104,52 17,111,19 23,10C,1789 20,20,101,-3,-25 0,21,-1,0,0 18,10D,12 22,10,7084000 0,D,14 0,A,-3381906 0,B,15129687 0,C,76 56,104,51 19,111,19 22,10C,1757 31,10D,12 32,104,48 2,20,111,-9,-21 0,21,-1,1,0 23,10,7084020 0,D,15 0,A,-3381905 0,B,15129687 0,C,76 60,111,18 19,10C,1695 29,10D,12 28,104,43 22,111,15 20,10C,1648 20,20,101,-11,-22 0,21,-1,0,-1 19,10D,12 30,104,35 23,111,15 19,10C,1527 29,10D,12 28,104,32 23,111,15 21,10C,1414 21,20,103,-13,-17 0,21,-1,1,0 13,10,7084060 0,D,16 0,A,-3381904 0,B,15129685 0,C,76 70,10D,15 29,104,30 21,111,14 20,10C,1285 28,10D,15 31,20,107,-23,-18 0,21,-2,0,0 14,10,7084080 0,D,17 0,A,-3381903 0,B,15129685 0,C,76 70,104,29 14,111,14 23,10C,1242 29,10D,15 35,104,27 23,20,102,-20,-17 0,21,-2,0,0 20,111,13 19,10C,1222 27,10D,15 31,104,26 18,111,13 23,10C,1199 29,10D,15 21,10,7084120 0,D,16 0,A,-3381902 0,B,15129683 0,C,76 39,104,24 6,20,103,-23,-26 0,21,-1,0,0 19,111,13 14,10C,1152 32,10D,15 31,104,24 16,111,12 21,10C,1132 21,10,7084140 0,D,16 0,A,-3381902 0,B,15129683 0,C,76 38,10D,15 21,20,96,-34,-19 0,21,-1,0,0 19,104,22 18,111,12 19,10C,1082 30,10D,15 34,104,22 2,10,7084160 0,D,15 0,A,-3381901 0,B,15129682 0,C,76 52,111,12 20,10C,1035 20,20,95,-28,-13 0,21,-1,0,0 22,10D,15 29,104,22 21,111,12 20,10C,1011 30,10D,15 40,104,22 17,111,14 21,20,107,-19,-14 0,21,-1,0,0 17,10C,976 28,10D,15 32,104,28 19,111,14 10,10,7084200 0,D,14 0,A,-3381900 0,B,15129681 0,C,76 38,10C,964 32,10D,14 27,20,98,-23,-13 0,21,-1,1,0 17,104,32 14,111,15 22,10C,1046 30,10D,14 30,104,34 24,111,15 2,10,7084220 0,D,14 0,A,-3381899 0,B,15129681 0,C,76 55,10C,1191 20,20,102,-20,-16 0,21,0,0,0 18,10D,14 29,104,36 21,111,17 19,10C,1250 20,10,7084240 0,D,13 0,A,-3381899 0,B,15129680 0,C,76 38,10D,14 46,104,42 11,20,104,-14,-18 0,21,0,0,0 18,111,19 17,10C,1351 30,10D,14 31,104,50 18,111,20 3,10,7084260 0,D,13 0,A,-3381898 0,B,15129680 0,C,76 54,10C,1511 29,10D,13 22,20,105,-13,-23 0,21,0,0,0 17,104,55 16,111,20 22,10C,1644 21,10,7084280 0,D,13 0,A,-3381898 0,B,15129679 0,C,76 46,10D,13 42,104,54 20,111,19 17,20,101,-12,-3 0,21,0,1,-1 16,10C,1761 29,10D,13 31,104,51 20,111,18 2,10,7084300 0,D,13 0,A,-3381897 0,B,15129679 0,C,76 55,10C,1777 29,10D,13 20,20,102,-7,-13 0,21,-1,0,-2 17,104,47 18,111,18 19,10C,1746 26,10,7084320 0,D,13 0,A,-3381897 0,B,15129678 0,C,76 42,10D,13 34,104,43 18,111,15 21,10C,1691 19,20,109,-1,-16 0,21,-1,0,0 16,10D,13 30,104,34 3,10,7084340 0,D,14 0,A,-3381896 0,B,15129678 0,C,76 73,111,14 18,10C,1511 28,10D,13 33,104,28 2,20,107,-8,-22 0,21,0,0,1 27,111,14 19,10,7084360 0,D,14 0,A,-3381896 0,B,15129677 0,C,76 51,10C,1394 29,10D,13 29,104,29 22,111,18 19,10C,1269 20,20,100,-22,-13 0,21,0,0,0 16,10D,13 24,10,7084380 0,D,15 0,A,-3381895 0,B,15129676 0,C,76 55,104,42 26,111,19 20,10C,1421 43,10D,13 24,20,100,-14,-18 0,21,-1,0,-1 17,104,54 8,10,7084400 0,D,14 0,A,-3381895 0,B,15129676 0,C,76 70,111,19 19,10C,1613 29,10D,14 29,104,55 21,111,19 10,20,102,-8,-14 0,21,-1,0,-2 19,10C,1667 20,10,7084420 0,D,14 0,A,-3381894 0,B,15129675 0,C,76 58,10D,14 34,104,53 18,111,19 22,10C,1703 26,10D,14 22,20,103,-13,-12 0,21,0,0,1 18,104,50 18,111,18 19,10C,1703 32,10D,14 33,104,47 20,111,18 19,10C,1675 31,10D,14 22,20,107,-6,-13 0,21,-1,-1,0 14,10,7084460 0,D,15 0,A,-3381893 0,B,15129674 0,C,76 69,104,46 18,111,18 23,10C,1652 27,10D,14 33,104,45 7,10,7084480 0,D,15 0,A,-3381892 0,B,15129673 0,C,76 39,111,18 6,20,98,-16,-16 0,21,-1,1,0 19,10C,1636 36,10D,15 30,104,44 23,111,18 19,10C,1621 26,10,7084500 0,D,16 0,A,-3381892 0,B,15129673 0,C,76 38,10D,15 21,20,108,-10,-19 0,21,-1,0,0 19,104,45 14,111,18 23,10C,1609 28,10D,15 32,104,45 20,111,18 3,10,7084520 0,D,16 0,A,-3381891 0,B,15129672 0,C,76 55,10C,1605 20,20,100,-12,-15 0,21,-1,0,0 17,10D,15 34,104,45 19,111,18 22,10C,1605 27,10D,15 22,10,7084540 0,D,16 0,A,-3381891 0,B,15129671 0,C,76 43,104,45 19,20,101,-14,-14 0,21,0,0,0 19,111,18 19,10C,1613 27,10D,16 32,104,45 21,111,18 8,10,7084560 0,D,17 0,A,-3381890 0,B,15129671 0,C,76 39,10C,1617 31,10D,16 22,20,99,-9,-15 0,21,0,0,0 17,104,45 16,111,18 20,10C,1613 30,10D,16 31,104,45 18,111,18 4,10,7084580 0,D,17 0,A,-3381889 0,B,15129670 0,C,76 53,10C,1617 30,20,109,-10,-9 0,21,0,0,0 17,10D,16 32,104,45 20,111,18 18,10,7084600 0,D,17 0,A,-3381889 0,B,15129669 0,C,76 38,10C,1613 29,10D,16 29,104,45 19,20,109,-8,-12 0,21,0,-1,0 21,111,18 17,10C,1613 29,10D,16 35,104,45 16,10,7084620 0,D,17 0,A,-3381888 0,B,15129669 0,C,76 38,111,18 19,10C,1601 28,20,99,-16,-5 0,21,0,0,0 17,10D,17 32,104,45 18,111,18 16,10,7084640 0,D,18 0,A,-3381887 0,B,15129668 0,C,76 38,10C,1542 33,10D,17 30,104,47 18,111,18 2,20,103,-12,-4 0,21,0,0,1 30,10C,1484 30,10D,17 30,104,48 18,10,7084660 0,D,18 0,A,-3381887 0,B,15129667 0,C,76 39,111,18 18,10C,1441 28,10D,17 21,20,104,-8,-15 0,21,0,0,0 18,104,49 16,111,18 22,10C,1410 21,10,7084680 0,D,18 0,A,-3381886 0,B,15129666 0,C,76 50,10D,17 55,104,51 18,20,95,-18,-18 0,21,0,0,0 17,111,17 17,10C,1332 33,10D,18 21,10,7084700 0,D,19 0,A,-3381885 0,B,15129666 0,C,76 38,104,50 18,111,17 23,10C,1265 29,10D,18 20,20,104,-18,-18 0,21,0,0,0 17,104,49 17,111,17 17,10,7084720 0,D,19 0,A,-3381885 0,B,15129665 0,C,76 58,10C,1207 27,10D,18 31,104,50 23,111,16 11,20,109,-13,-11 0,21,0,0,0 16,10C,1195 32,10D,18 22,10,7084740 0,D,19 0,A,-3381884 0,B,15129664 0,C,76 39,104,48 19,111,15 18,10C,1195 33,10D,18 21,20,112,-9,-12 0,21,-1,0,0 20,104,43 18,111,14 9,10,7084760 0,D,19 0,A,-3381883 0,B,15129663 0,C,76 61,10C,1179 28,10D,18 29,104,35 23,111,13 12,20,111,-10,-12 0,21,-1,0,0 17,10C,1167 28,10D,18 22,10,7084780 0,D,19 0,A,-3381882 0,B,15129662 0,C,76 43,104,32 18,111,13 20,10C,1183 28,10D,18 30,20,95,-21,-15 0,21,-1,0,0 16,104,27 19,111,13 8,10,7084800 0,D,19 0,A,-3381882 0,B,15129662 0,C,76 65,10C,1148 28,10D,18 34,104,24 18,111,12 13,20,97,-26,-19 0,21,-1,0,0 16,10C,1128 26,10,7084820 0,D,19 0,A,-3381881 0,B,15129661 0,C,76 54,10D,18 45,104,20 9,10,7084820 0,D,19 0,A,55000 0,B,56666 0,C,33 33,111,12 16,10C,1078 20,20,101,-24,-15 0,21,-1,0,0 18,10D,18 23,10,7084840 0,D,19 0,A,-3381880 0,B,15129660 0,C,33 66,104,20 19,111,12 18,10C,988 31,10D,18 25,20,95,-24,-10 0,21,-1,0,0 17,104,20 8,10,7084860 0,D,18 0,A,-3381880 0,B,15129659 0,C,33 70,111,12 15,10C,960 29,10D,18 28,104,20 22,111,12 13,20,106,-22,-10 0,21,-1,0,0 19,10C,921 20,10,7084880 0,D,18 0,A,-3381879 0,B,15129658 0,C,33 58,10D,18 29,104,21 23,111,12 27,10C,871 24,20,97,-26,-11 0,21,-1,0,0 17,10D,18 23,10,7084900 0,D,17 0,A,-3381878 0,B,15129658 0,C,33 55,104,22 16,111,11 21,10C,847 31,10D,17 28,104,22 12,20,104,-25,-11 0,21,-1,0,0 18,111,13 7,10,7084920 0,D,17 0,A,-3381878 0,B,15129657 0,C,33 71,10C,820 28,10D,17 29,104,28 22,111,13 20,10C,824 20,20,101,-22,-13 0,21,-1,0,0 18,10D,17 30,104,29 19,111,13 24,10C,859 28,10D,17 29,104,29 20,111,13 23,10C,910 19,20,100,-22,-12 0,21,-1,0,0 15,10,7084960 0,D,16 0,A,-3381877 0,B,15129656 0,C,33 69,10D,17 29,104,29 22,111,13 36,10C,1007 30,20,104,-24,-15 0,21,-1,0,0 19,10D,15 34,104,26 18,111,12 21,10C,1066 31,10D,15 38,104,24 20,111,12 16,10,7085000 0,D,15 0,A,-3381875 0,B,15129654 0,C,33 39,10C,1066 19,20,103,-23,-13 0,21,-1,0,0 18,10D,15 34,104,23 15,111,12 27,10C,1031 29,10D,15 34,104,22 16,10,7085020 0,D,15 0,A,-3381875 0,B,15129654 0,C,77 38,111,12 6,20,97,-23,-11 0,21,-1,0,0 19,10C,1031 32,10D,15 28,104,21 19,111,11 21,10C,1027 21,10,7085040 0,D,15 0,A,-3381874 0,B,15129653 0,C,77 38,10D,15 26,20,100,-27,-12 0,21,-1,0,0 22,104,20 18,111,12 23,10C,949 25,10D,14 31,104,20 2,10,7085060 0,D,14 0,A,-3381874 0,B,15129653 0,C,77 55,111,12 21,10C,914 19,20,97,-28,-12 0,21,-1,0,0 18,10D,14 29,104,22 22,111,11 21,10C,898 21,10,7085080 0,D,13 0,A,-3381873 0,B,15129652 0,C,77 39,10D,14 34,104,21 15,111,11 1,20,98,-28,-14 0,21,-1,0,0 31,10C,871 39,10D,14 29,104,21 3,10,7085100 0,D,13 0,A,-3381873 0,B,15129652 0,C,77 52,111,11 18,10C,839 29,20,102,-27,-14 0,21,-1,0,0 17,10D,14 30,104,21 21,111,12 22,10C,804 20,10,7085120 0,D,12 0,A,-3381872 0,B,15129651 0,C,77 43,10D,13 45,104,22 9,20,101,-26,-13 0,21,-1,0,0 18,111,12 17,10C,765 30,10D,13 27,10,7085140 0,D,12 0,A,-3381872 0,B,15129651 0,C,77 38,104,26 15,111,13 23,10C,753 27,10D,13 22,20,98,-26,-5 0,21,-1,0,0 17,104,29 17,111,13 19,10C,785 29,10D,13 30,104,32 19,111,13 23,10C,824 28,10D,13 21,20,103,-22,-13 0,21,-1,0,0 18,104,32 17,111,14 20,10C,894 28,10D,13 31,104,33 19,111,14 23,10C,1003 29,10D,11 20,20,103,-25,-15 0,21,-1,0,0 18,104,33 26,111,14 22,10C,1093 20,10,7085200 0,D,10 0,A,-3381870 0,B,15129649 0,C,77 42,10D,11 30,104,32 22,111,14 20,10C,1179 19,20,96,-25,-10 0,21,-1,0,0 17,10D,11 30,10,7085220 0,D,10 0,A,-3381870 0,B,15129649 0,C,77 51,104,29 18,111,13 20,10C,1183 28,10D,11 29,104,27 7,20,99,-24,-10 0,21,-1,0,0 24,111,13 20,10C,1175 21,10,7085240 0,D,10 0,A,-3381870 0,B,15129648 0,C,77 44,10D,11 29,104,23 20,111,12 23,10C,1152 20,20,69,-54,-13 0,21,-1,0,-3 16,10D,11 31,10,7085260 0,D,9 0,A,-3381869 0,B,15129648 0,C,77 50,104,22 18,111,12 19,10C,1093 29,10D,9 31,104,21 10,20,71,0,7 0,21,0,0,2 20,111,12 27,10,7085280 0,D,8 0,A,-3381869 0,B,15129648 0,C,77 49,10C,1023 28,10D,9 30,104,23 19,111,12 22,10C,968 29,20,113,-50,-15 0,21,-1,0,2 17,10D,9 22,10,7085300 0,D,8 0,A,-3381869 0,B,15129647 0,C,77 56,104,23 15,111,12 22,10C,914 28,10D,9 30,104,22 10,20,94,-24,-11 0,21,-1,0,-2 19,111,11 7,10,7085320 0,D,8 0,A,-3381868 0,B,15129647 0,C,77 71,10C,902 27,10D,8 30,104,21 22,111,12 19,10C,855 20,20,97,-26,-10 0,21,0,0,0 18,10D,8 31,104,22 20,111,12 21,10C,816 31,10D,8 33,104,23 19,111,12 21,10C,789 20,20,120,-15,-11 0,21,-1,0,-2 14,10,7085360 0,D,7 0,A,-3381868 0,B,15129646 0,C,77 68,10D,8 33,104,28 20,111,14 22,10C,742 26,10D,8 21,20,98,-25,-6 0,21,-1,0,2 15,10,7085380 0,D,6 0,A,-3381868 0,B,15129646 0,C,77 68,104,32 19,111,14 18,10C,785 30,10D,8 39,104,40 2,10,7085400 0,D,6 0,A,-3381867 0,B,15129646 0,C,77 45,20,99,-18,-13 0,21,-1,0,-3 17,111,16 19,10C,878 27,10D,7 33,104,45 19,111,18 19,10C,964 29,10D,7 30,104,51 7,20,117,-4,-18 0,21,-1,0,-3 29,111,20 20,10C,1074 31,10D,7 29,104,61 29,111,20 13,10,7085440 0,D,5 0,A,-3381867 0,B,15129646 0,C,77 38,10C,1238 19,20,101,-6,-6 0,21,-1,0,1 19,10D,7 33,104,62 18,111,20 24,10C,1441 25,10D,7 27,10,7085460 0,D,6 0,A,-3381867 0,B,15129645 0,C,77 39,104,61 14,111,20 2,20,104,0,-12 0,21,-1,0,-1 31,10C,1527 27,10D,6 30,104,60 22,111,19 19,10C,1578 30,10D,6 30,104,56 14,20,108,1,-7 0,21,0,0,0 17,111,19 15,10C,1632 28,10D,6 32,104,54 19,111,19 31,10C,1660 21,10,7085500 0,D,8 0,A,-3381866 0,B,15129645 0,C,77 38,10D,6 21,20,105,3,-9 0,21,-1,0,0 17,104,53 23,111,19 19,10C,1679 30,10D,6 30,104,52 2,10,7085520 0,D,9 0,A,-3381866 0,B,15129644 0,C,77 52,111,18 24,10C,1675 19,20,96,-9,-13 0,21,-1,0,-1 19,10D,6 28,104,49 20,111,18 23,10C,1648 22,10,7085540 0,D,10 0,A,-3381865 0,B,15129644 0,C,77 39,10D,8 32,104,44 19,111,17 2,20,100,-13,-6 0,21,0,0,0 31,10C,1574 29,10D,8 28,104,43 13,10,7085560 0,D,10 0,A,-3381865 0,B,15129643 0,C,77 39,111,17 19,10C,1511 31,10D,8 22,20,101,-6,-14 0,21,-1,0,0 17,104,42 14,111,17 22,10C,1492 29,10D,8 21,10,7085580 0,D,11 0,A,-3381865 0,B,15129643 0,C,77 42,104,42 27,111,17 18,10C,1480 21,20,107,-10,-10 0,21,-1,0,0 17,10D,8 34,104,42 18,111,17 18,10,7085600 0,D,12 0,A,-3381864 0,B,15129643 0,C,77 38,10C,1484 33,10D,8 32,104,38 13,20,97,-18,-10 0,21,0,0,0 17,111,15 16,10C,1472 31,10D,11 23,10,7085620 0,D,12 0,A,-3381864 0,B,15129642 0,C,77 39,104,34 18,111,17 19,10C,1410 29,10D,11 22,20,96,-15,-10 0,21,-1,0,-1 16,104,38 17,111,17 22,10C,1378 20,10,7085640 0,D,13 0,A,-3381863 0,B,15129642 0,C,77 45,10D,11 34,104,41 20,111,17 19,10C,1429 24,20,106,-13,-10 0,21,-1,0,0 16,10D,11 27,10,7085660 0,D,13 0,A,-3381863 0,B,15129641 0,C,77 53,104,43 15,111,18 19,10C,1511 33,10D,11 32,104,43 8,20,104,-10,-14 0,21,-1,0,-1 17,111,18 14,10C,1550 22,10,7085680 0,D,13 0,A,-3381862 0,B,15129641 0,C,77 56,10D,13 33,104,43 15,111,18 27,10C,1554 19,20,101,-10,-10 0,21,-1,0,0 17,10D,13 30,104,43 21,10,7085700 0,D,13 0,A,-3381862 0,B,15129640 0,C,76 42,111,18 14,10C,1488 28,10D,13 34,104,43 14,20,98,-9,-10 0,21,-1,0,0 16,111,18 19,10C,1437 20,10,7085720 0,D,14 0,A,-3381861 0,B,15129639 0,C,76 71,10D,13 45,104,45 19,111,18 10,20,103,-18,-13 0,21,-1,0,0 16,10C,1363 29,10D,13 34,104,47 19,111,18 20,10C,1324 32,10D,14 33,104,48 19,111,18 2,20,92,-12,-17 0,21,-1,0,0 30,10C,1292 21,10,7085760 0,D,14 0,A,-3381860 0,B,15129638 0,C,76 47,10D,14 29,104,49 23,111,17 20,10C,1250 30,10D,14 22,20,100,-13,-18 0,21,0,-1,0 18,104,50 18,111,17 9,10,7085780 0,D,14 0,A,-3381859 0,B,15129638 0,C,76 62,10C,1222 29,10D,14 33,104,52 17,111,18 14,20,105,-14,-7 0,21,-1,0,0 15,10,7085800 0,D,16 0,A,-3381859 0,B,15129637 0,C,76 68,10C,1203 39,10D,14 30,104,53 18,111,17 21,10C,1195 19,20,110,-11,-6 0,21,0,0,1 19,10D,14 34,104,53 19,111,17 18,10C,1199 32,10D,15 30,104,53 18,111,17 21,10C,1199 19,20,102,-12,-13 0,21,-1,0,0 15,10,7085840 0,D,17 0,A,-3381858 0,B,15129636 0,C,76 69,10D,15 33,104,53 18,111,17 24,10C,1203 26,10D,15 22,20,100,-18,-6 0,21,-1,0,0 14,10,7085860 0,D,17 0,A,-3381857 0,B,15129635 0,C,76 69,104,52 15,111,17 23,10C,1187 26,10D,15 33,104,49 8,10,7085880 0,D,17 0,A,-3381856 0,B,15129634 0,C,76 43,111,16 18,20,103,-16,-7 0,21,-1,0,0 20,10C,1175 28,10D,15 30,104,46 21,111,15 21,10C,1175 29,10D,17 31,104,43 17,111,15 3,20,102,-18,-10 0,21,0,0,0 30,10C,1175 38,10D,17 32,104,40 18,111,15 20,10,7085920 0,D,18 0,A,-3381855 0,B,15129633 0,C,76 38,10C,1210 24,20,98,-18,-13 0,21,-1,0,0 19,10D,17 29,104,38 19,111,15 22,10C,1246 30,10D,17 31,104,36 18,111,15 2,10,7085940 0,D,18 0,A,-3381854 0,B,15129632 0,C,75 44,20,99,-21,-7 0,21,-1,0,-1 19,10C,1261 31,10D,17 29,104,34 19,111,15 21,10C,1273 25,10,7085960 0,D,18 0,A,-3381854 0,B,15129631 0,C,75 37,10D,18 22,20,101,-17,-6 0,21,0,0,-1 17,104,35 19,111,17 15,10C,1269 30,10D,18 33,104,40 8,10,7085980 0,D,18 0,A,-3381853 0,B,15129631 0,C,75 38,111,17 18,10C,1292 25,20,104,-15,-11 0,21,0,0,-1 18,10D,18 30,104,42 21,111,17 21,10C,1296 28,10D,18 22,10,7090000 0,D,19 0,A,-3381852 0,B,15129630 0,C,75 39,104,43 14,111,17 7,20,90,-20,-19 0,21,0,-1,-1 30,10C,1281 37,10D,18 32,104,44 20,111,17 2,10,7090020 0,D,19 0,A,-3381851 0,B,15129629 0,C,75 57,10C,1253 34,20,99,-18,-4 0,21,0,-1,0 20,10D,18 30,104,45 21,111,17 22,10C,1238 21,10,7090040 0,D,19 0,A,-3381851 0,B,15129628 0,C,75 39,10D,18 34,104,46 14,20,97,-14,-8 0,21,0,-1,0 17,111,17 19,10C,1226 31,10D,18 32,104,47 2,10,7090060 0,D,19 0,A,-3381850 0,B,15129627 0,C,75 53,111,17 22,10C,1234 25,20,96,-19,-12 0,21,0,0,-1 17,10D,18 30,104,46 22,111,17 20,10C,1234 22,10,7090080 0,D,20 0,A,-3381849 0,B,15129626 0,C,75 39,10D,18 34,104,46 19,111,17 2,20,106,-7,-10 0,21,0,-1,0 30,10C,1230 27,10D,18 32,104,46 9,10,7090100 0,D,20 0,A,-3381849 0,B,15129625 0,C,75 42,111,17 18,10C,1222 28,10D,19 21,20,97,-28,-15 0,21,0,0,0 19,104,47 26,111,17 15,10C,1218 30,10D,19 23,10,7090120 0,D,20 0,A,-3381848 0,B,15129625 0,C,75 38,104,47 18,111,16 16,10C,1222 20,20,110,-9,-16 0,21,0,0,1 18,10D,19 32,104,46 19,111,16 15,10,7090140 0,D,20 0,A,-3381847 0,B,15129624 0,C,75 38,10C,1230 29,10D,19 29,104,45 18,111,16 2,20,96,-18,0 0,21,0,0,0 30,10C,1234 29,10D,19 28,10,7090160 0,D,20 0,A,-3381847 0,B,15129623 0,C,75 38,104,45 15,111,16 30,10C,1234 31,10D,19 21,20,90,-26,-25 0,21,-1,1,-1 18,104,44 16,111,16 21,10C,1238 22,10,7090180 0,D,21 0,A,-3381846 0,B,15129622 0,C,75 45,10D,20 31,104,44 21,111,15 21,10C,1246 19,20,89,-26,-26 0,21,-1,-2,1 17,10D,20 32,104,40 8,10,7090200 0,D,21 0,A,-3381845 0,B,15129621 0,C,75 53,111,14 18,10C,1230 32,10D,20 34,104,33 16,20,101,-20,-9 0,21,0,0,-1 16,111,13 18,10C,1195 21,10,7090220 0,D,21 0,A,-3381844 0,B,15129620 0,C,75 53,10D,20 29,104,28 20,111,13 23,10C,1191 20,20,90,-27,-7 0,21,-1,-1,0 16,10D,20 42,104,25 14,10,7090240 0,D,21 0,A,-3381844 0,B,15129619 0,C,76 38,111,12 19,10C,1187 28,10D,20 30,104,22 14,20,75,-30,-8 0,21,0,0,0 17,111,12 14,10C,1156 22,10,7090260 0,D,21 0,A,-3381843 0,B,15129618 0,C,76 56,10D,20 33,104,20 18,111,12 24,10C,1117 19,20,112,-24,-5 0,21,0,0,0 17,10D,20 30,104,20 23,111,12 2,10,7090280 0,D,21 0,A,-3381842 0,B,15129617 0,C,76 62,10C,1058 29,10D,20 29,104,17 11,20,105,-17,-17 0,21,-1,0,0 16,111,12 19,10C,1023 20,10,7090300 0,D,21 0,A,-3381841 0,B,15129616 0,C,76 54,10D,20 29,104,20 31,111,12 22,10C,960 29,20,104,-17,-12 0,21,0,0,0 19,10D,20 29,104,20 23,111,11 19,10C,937 28,10D,20 34,104,20 17,111,12 20,10C,910 19,20,105,-22,-18 0,21,0,0,0 18,10D,20 35,104,20 19,111,12 19,10C,882 32,10D,20 33,104,21 14,111,12 20,10C,867 20,20,103,-26,-16 0,21,0,0,0 18,10D,20 34,104,21 19,111,11 23,10C,847 28,10D,20 28,104,21 22,111,11 18,10C,839 20,20,87,-35,-18 0,21,0,0,0 13,10,7090380 0,D,19 0,A,-3381839 0,B,15129612 0,C,76 70,10D,20 34,104,21 13,111,11 20,10C,820 30,10D,19 22,20,99,-28,-15 0,21,0,0,-1 18,10,7090400 0,D,19 0,A,-3381838 0,B,15129612 0,C,76 66,104,21 14,111,11 19,10C,812 30,10D,19 37,10,7090420 0,D,18 0,A,-3381837 0,B,15129611 0,C,76 38,104,21 7,20,98,-25,-18 0,21,0,0,0 17,111,11 19,10C,800 27,10D,19 30,104,21 23,111,11 19,10C,789 29,10D,19 31,104,22 5,20,107,-27,-15 0,21,0,0,0 29,111,11 20,10C,789 32,10D,19 28,104,22 20,111,11 20,10C,785 21,10,7090460 0,D,17 0,A,-3381836 0,B,15129609 0,C,76 38,10D,17 21,20,103,-19,-14 0,21,0,0,-1 17,104,23 19,111,11 18,10C,777 31,10D,17 32,104,23 23,10,7090480 0,D,17 0,A,-3381836 0,B,15129608 0,C,76 41,111,11 19,10C,777 18,20,98,-27,-16 0,21,0,0,-1 19,10D,17 32,104,23 19,111,11 16,10C,761 25,10,7090500 0,D,17 0,A,-3381835 0,B,15129607 0,C,76 39,10D,17 33,104,24 19,111,11 2,20,98,-27,-10 0,21,0,0,0 31,10C,757 26,10D,17 32,104,24 19,10,7090520 0,D,16 0,A,-3381835 0,B,15129607 0,C,76 39,111,11 15,10C,769 31,10D,16 22,20,96,-25,-11 0,21,0,0,0 17,104,24 15,111,11 21,10C,753 27,10D,16 23,10,7090540 0,D,16 0,A,-3381834 0,B,15129606 0,C,76 38,104,24 15,111,11 22,10C,750 25,20,102,-26,-12 0,21,0,0,0 17,10D,16 32,104,24 18,111,11 23,10C,753 19,10,7090560 0,D,15 0,A,-3381834 0,B,15129605 0,C,76 38,10D,16 31,104,24 22,111,11 2,20,102,-26,-11 0,21,0,-1,0 33,10C,765 30,10D,16 35,104,24 15,10,7090580 0,D,15 0,A,-3381833 0,B,15129604 0,C,76 39,111,11 14,10C,761 32,10D,16 22,20,100,-25,-13 0,21,0,0,0 16,104,24 14,111,11 23,10C,753 21,10,7090600 0,D,15 0,A,-3381833 0,B,15129604 0,C,76 47,10D,15 30,104,24 20,111,11 19,10C,753 19,20,101,-26,-14 0,21,0,0,0 18,10D,15 29,104,25 32,10,7090620 0,D,14 0,A,-3381832 0,B,15129603 0,C,76 40,111,11 19,10C,750 28,10D,15 29,104,25 5,20,97,-27,-17 0,21,0,0,0 28,111,11 19,10C,738 21,10,7090640 0,D,14 0,A,-3381832 0,B,15129602 0,C,76 42,10D,15 34,104,25 18,111,11 19,10C,750 20,20,99,-26,-19 0,21,0,0,1 16,10D,15 30,104,25 11,10,7090660 0,D,13 0,A,-3381832 0,B,15129601 0,C,76 52,111,11 19,10C,753 28,10D,13 29,104,25 15,20,96,-28,-14 0,21,0,0,0 16,111,11 13,10C,753 26,10,7090680 0,D,13 0,A,-3381831 0,B,15129601 0,C,76 53,10D,13 34,104,24 18,111,11 28,10C,761 18,20,101,-25,-11 0,21,0,0,0 17,10D,13 34,104,24 7,10,7090700 0,D,12 0,A,-3381831 0,B,15129600 0,C,76 52,111,11 18,10C,753 32,10D,13 33,104,24 8,20,104,-25,-10 0,21,0,0,0 16,111,11 18,10C,750 21,10,7090720 0,D,12 0,A,-3381831 0,B,15129600 0,C,76 53,10D,13 41,104,24 20,111,11 21,10C,746 18,20,101,-23,-13 0,21,0,0,0 16,10D,13 35,104,25 19,111,11 3,10,7090740 0,D,12 0,A,-3381830 0,B,15129599 0,C,76 61,10C,753 32,10D,11 33,104,24 2,20,107,-26,-9 0,21,0,0,0 27,111,11 14,10,7090760 0,D,11 0,A,-3381830 0,B,15129598 0,C,76 54,10C,750 39,10D,11 36,104,24 17,111,11 13,20,100,-28,-13 0,21,0,0,0 17,10C,757 33,10D,11 34,104,24 19,111,11 14,10C,757 32,10D,11 33,104,24 15,111,11 3,20,144,-14,4 0,21,0,1,-4 28,10C,746 28,10D,11 31,104,24 22,111,11 19,10C,734 28,10D,9 32,104,24 15,20,64,-18,-22 0,21,0,-2,0 16,111,11 19,10C,730 19,10,7090820 0,D,9 0,A,-3381829 0,B,15129597 0,C,76 53,10D,9 43,104,25 19,111,11 22,10C,707 19,20,127,-10,-19 0,21,0,0,4 18,10D,9 22,10,7090840 0,D,8 0,A,-3381829 0,B,15129596 0,C,76 59,104,25 15,111,12 22,10C,707 28,10D,9 30,104,26 10,20,118,-37,-11 0,21,0,0,-1 18,111,13 7,10,7090860 0,D,8 0,A,-3381829 0,B,15129596 0,C,76 71,10C,691 27,10D,9 33,104,32 19,111,13 19,10C,722 20,20,88,-23,-15 0,21,0,0,-1 18,10D,9 34,104,35 18,111,14 20,10C,785 31,10D,7 29,104,36 20,111,14 22,10C,882 20,20,103,-22,-17 0,21,0,0,0 15,10,7090900 0,D,7 0,A,-3381828 0,B,15129595 0,C,76 67,10D,7 34,104,37 19,111,16 18,10C,988 30,10D,7 21,20,106,-24,-20 0,21,0,0,4 15,10,7090920 0,D,7 0,A,-3381828 0,B,15129595 0,C,76 72,104,41 37,111,19 20,10C,1035 29,10D,7 27,20,88,-21,-15 0,21,0,0,0 18,104,56 15,111,19 22,10C,1164 29,10D,7 29,104,60 21,111,19 21,10C,1324 27,10D,6 21,20,96,-4,-16 0,21,0,0,-7 14,10,7090960 0,D,6 0,A,-3381828 0,B,15129594 0,C,76 70,104,57 18,111,16 20,10C,1449 29,10D,6 29,104,44 4,10,7090980 0,D,6 0,A,-3381828 0,B,15129594 0,C,76 43,20,107,-7,-13 0,21,0,0,1 17,111,16 19,10C,1468 29,10D,6 28,104,40 20,111,16 22,10C,1425 26,10,7091000 0,D,7 0,A,-3381828 0,B,15129593 0,C,76 38,10D,6 21,20,99,-11,-11 0,21,0,0,0 22,104,37 14,111,16 24,10C,1367 27,10D,6 31,104,37 18,111,17 6,10,7091020 0,D,8 0,A,-3381828 0,B,15129593 0,C,76 52,10C,1335 20,20,103,-12,-15 0,21,0,0,-1 18,10D,7 29,104,42 32,111,17 20,10C,1363 28,10D,7 22,10,7091040 0,D,9 0,A,-3381827 0,B,15129592 0,C,76 38,104,44 15,20,102,-10,-19 0,21,0,0,0 17,111,18 19,10C,1433 32,10D,7 27,104,47 21,111,18 6,10,7091060 0,D,9 0,A,-3381827 0,B,15129592 0,C,76 51,10C,1527 29,10D,7 20,20,106,-5,-10 0,21,0,0,0 19,104,46 14,111,18 22,10C,1574 30,10D,7 31,104,47 18,111,18 22,10,7091080 0,D,9 0,A,-3381827 0,B,15129591 0,C,76 41,10C,1585 19,20,108,-6,-10 0,21,0,0,0 18,10D,7 31,104,45 20,111,18 18,10C,1589 20,10,7091100 0,D,10 0,A,-3381827 0,B,15129591 0,C,76 39,10D,9 32,104,45 20,111,18 2,20,112,-5,-12 0,21,0,0,0 30,10C,1585 26,10D,9 33,104,45 2,10,7091120 0,D,11 0,A,-3381827 0,B,15129590 0,C,76 56,111,18 20,10C,1589 32,10D,9 21,20,93,-14,-20 0,21,0,0,1 17,104,45 26,111,18 22,10C,1585 19,10,7091140 0,D,11 0,A,-3381826 0,B,15129589 0,C,76 39,10D,9 30,104,45 17,111,18 25,10C,1539 23,20,110,-4,-9 0,21,0,0,0 17,10D,9 32,104,46 2,10,7091160 0,D,12 0,A,-3381826 0,B,15129589 0,C,76 67,111,18 22,10C,1480 29,10D,11 29,104,47 2,20,101,-14,-11 0,21,0,0,0 28,111,18 21,10C,1449 21,10,7091180 0,D,13 0,A,-3381826 0,B,15129588 0,C,76 39,10D,11 34,104,49 20,111,18 23,10C,1410 20,20,95,-11,-10 0,21,0,0,0 15,10D,11 31,10,7091200 0,D,14 0,A,-3381826 0,B,15129587 0,C,76 50,104,50 18,111,18 20,10C,1355 29,10D,11 28,104,51 12,20,108,-17,-14 0,21,0,0,0 17,111,18 18,10C,1320 21,10,7091220 0,D,14 0,A,-3381825 0,B,15129586 0,C,76 52,10D,11 41,104,54 19,111,18 23,10C,1269 29,20,102,-10,-31 0,21,0,0,-3 18,10D,13 22,10,7091240 0,D,15 0,A,-3381825 0,B,15129585 0,C,76 55,104,55 19,111,18 19,10C,1238 31,10D,13 28,104,57 8,20,91,-8,-1 0,21,0,0,0 20,10,7091260 0,D,15 0,A,-3381825 0,B,15129585 0,C,76 63,111,18 16,10C,1210 31,10D,13 33,104,58 19,111,18 16,10C,1207 19,20,102,-17,-16 0,21,-1,-1,-1 19,10D,13 31,104,58 21,111,18 21,10C,1199 28,10D,13 33,104,60 18,111,18 21,10C,1203 19,20,106,-14,-10 0,21,0,0,0 15,10,7091300 0,D,17 0,A,-3381824 0,B,15129583 0,C,76 68,10D,13 34,104,60 19,111,18 18,10C,1187 31,10D,16 21,20,101,0,4 0,21,1,0,0 15,10,7091320 0,D,17 0,A,-3381824 0,B,15129582 0,C,76 68,104,60 15,111,18 22,10C,1191 30,10D,16 40,104,61 2,10,7091340 0,D,18 0,A,-3381824 0,B,15129581 0,C,76 44,20,98,-14,-6 0,21,0,-1,0 18,111,18 14,10C,1207 32,10D,16 33,104,62 19,111,18 24,10C,1214 21,10,7091360 0,D,18 0,A,-3381824 0,B,15129579 0,C,76 39,10D,16 22,20,83,-22,-14 0,21,0,0,-1 17,104,62 19,111,18 18,10C,1234 31,10D,18 43,10,7091380 0,D,19 0,A,-3381823 0,B,15129578 0,C,76 40,104,61 19,111,19 16,20,99,-14,10 0,21,0,0,0 17,10C,1253 32,10D,18 33,104,61 14,111,19 21,10C,1257 21,10,7091400 0,D,19 0,A,-3381823 0,B,15129577 0,C,76 38,10D,18 26,20,92,-6,-14 0,21,0,0,-1 18,104,61 18,111,18 20,10C,1261 29,10D,18 31,104,61 2,10,7091420 0,D,20 0,A,-3381823 0,B,15129576 0,C,76 55,111,18 16,10C,1265 20,20,67,-24,-3 0,21,0,-1,2 18,10D,18 32,104,60 15,111,19 27,10C,1250 38,10D,18 30,104,60 18,111,19 24,10C,1250 19,20,124,7,-20 0,21,0,-1,0 22,10D,19 32,104,62 18,111,19 16,10,7091460 0,D,21 0,A,-3381822 0,B,15129573 0,C,76 37,10C,1253 29,10D,19 30,104,62 18,20,88,-24,-2 0,21,0,-1,1 18,111,19 13,10C,1261 30,10D,19 27,10,7091480 0,D,21 0,A,-3381822 0,B,15129572 0,C,76 38,104,62 16,111,19 21,10C,1273 29,10D,19 21,20,111,-17,-5 0,21,0,-2,-1 18,104,62 16,111,19 20,10C,1273 30,10D,19 30,104,63 18,111,19 25,10C,1273 32,10D,19 21,20,122,8,-6 0,21,0,-2,2 18,104,64 17,111,20 19,10C,1273 23,10,7091520 0,D,22 0,A,-3381822 0,B,15129570 0,C,76 46,10D,21 45,104,64 23,111,19 12,20,95,-13,-6 0,21,0,0,-2 16,10C,1277 30,10D,21 40,104,64 21,111,19 21,10C,1269 32,10D,21 29,104,64 13,20,91,-29,-13 0,21,0,0,2 16,111,19 16,10C,1265 29,10D,21 22,10,7091560 0,D,24 0,A,-3381821 0,B,15129567 0,C,76 38,104,65 16,111,19 22,10C,1242 29,10D,21 20,20,113,-14,-10 0,21,0,1,0 18,104,65 16,111,20 23,10C,1238 19,10,7091580 0,D,24 0,A,-3381821 0,B,15129565 0,C,76 46,10D,21 31,104,66 23,111,20 19,10C,1246 20,20,97,-21,-15 0,21,0,-2,-1 16,10D,23 27,10,7091600 0,D,25 0,A,-3381821 0,B,15129564 0,C,76 53,104,66 19,111,20 19,10C,1246 31,10D,23 33,104,65 2,20,109,-9,-5 0,21,1,0,0 28,111,17 14,10,7091620 0,D,25 0,A,-3381821 0,B,15129562 0,C,76 54,10C,1238 28,10D,23 31,104,54 18,111,15 28,10C,1222 18,20,96,-27,-3 0,21,1,0,2 19,10D,23 32,10,7091640 0,D,26 0,A,-3381821 0,B,15129561 0,C,76 47,104,45 18,111,14 20,10C,1222 27,10D,23 32,104,38 5,20,109,-15,-17 0,21,1,-2,-1 23,10,7091660 0,D,26 0,A,-3381821 0,B,15129559 0,C,76 60,111,14 18,10C,1222 29,10D,25 30,104,33 20,111,14 21,10C,1210 19,20,108,-22,-10 0,21,1,-1,0 24,10D,25 41,104,29 17,111,13 25,10C,1191 28,10D,25 28,104,26 20,111,13 18,20,94,-23,-9 0,21,1,0,-1 13,10,7091700 0,D,26 0,A,-3381821 0,B,15129556 0,C,76 70,10C,1195 32,10D,25 33,104,22 19,111,12 23,10C,1156 20,20,101,-23,-9 0,21,1,-1,-1 15,10,7091720 0,D,25 0,A,-3381821 0,B,15129554 0,C,76 69,10D,25 29,104,20 18,111,11 23,10C,1195 27,10D,25 22,20,104,-24,-10 0,21,0,0,-2 15,10,7091740 0,D,25 0,A,-3381821 0,B,15129553 0,C,76 68,104,18 28,111,11 19,10C,1144 29,10D,25 30,104,16 2,10,7091760 0,D,25 0,A,-3381821 0,B,15129551 0,C,76 45,20,106,-20,-19 0,21,0,-1,0 18,111,11 18,10C,1109 32,10D,25 29,104,15 22,111,12 21,10C,1042 22,10,7091780 0,D,24 0,A,-3381821 0,B,15129550 0,C,76 39,10D,25 21,20,98,-24,-11 0,21,0,0,0 18,104,17 18,111,12 20,10C,1023 30,10D,25 32,104,17 14,10,7091800 0,D,24 0,A,-3381821 0,B,15129548 0,C,76 38,111,11 16,10C,996 18,20,110,-11,0 0,21,0,0,0 19,10D,23 33,104,17 19,111,12 22,10C,949 31,10D,23 22,10,7091820 0,D,23 0,A,-3381821 0,B,15129547 0,C,76 38,104,20 19,111,12 2,20,100,-15,-13 0,21,1,0,0 34,10C,902 42,10D,23 34,104,21 13,10,7091840 0,D,23 0,A,-3381821 0,B,15129546 0,C,76 38,111,12 15,10C,878 24,20,92,-28,-16 0,21,0,0,0 18,10D,23 39,104,21 18,111,11 23,10C,867 25,10,7091860 0,D,22 0,A,-3381821 0,B,15129544 0,C,76 38,10D,23 30,104,21 11,20,97,-22,-10 0,21,0,1,0 18,111,11 18,10C,843 28,10D,21 32,104,21 20,111,11 2,10,7091880 0,D,22 0,A,-3381821 0,B,15129543 0,C,76 56,10C,832 28,20,110,-20,-14 0,21,0,0,0 17,10D,21 30,104,22 19,111,11 22,10C,824 28,10D,21 22,10,7091900 0,D,22 0,A,-3381821 0,B,15129542 0,C,76 42,104,22 19,111,11 2,20,101,-26,-12 0,21,0,0,0 29,10C,816 31,10D,21 29,104,22 21,111,11 6,10,7091920 0,D,21 0,A,-3381821 0,B,15129540 0,C,76 49,10C,812 30,10D,21 22,20,101,-25,-14 0,21,1,-1,0 18,104,22 15,111,11 21,10C,808 31,10D,21 22,10,7091940 0,D,21 0,A,-3381821 0,B,15129539 0,C,76 38,104,22 19,111,11 18,10C,808 20,20,105,-24,-7 0,21,1,0,0 17,10D,20 38,104,22 19,111,11 21,10C,796 19,10,7091960 0,D,20 0,A,-3381822 0,B,15129538 0,C,76 39,10D,20 34,104,22 15,20,93,-34,-13 0,21,0,0,0 22,111,11 29,10C,789 31,10D,20 31,104,22 14,10,7091980 0,D,20 0,A,-3381822 0,B,15129537 0,C,79 39,111,11 19,10C,789 19,20,106,-29,-11 0,21,1,0,-1 18,10D,20 32,104,22 19,111,11 20,10C,777 21,10,7092000 0,D,19 0,A,-3381822 0,B,15129535 0,C,79 38,10D,20 30,104,22 23,111,11 2,20,95,-32,-15 0,21,0,0,0 30,10C,773 29,10D,19 30,104,22 3,10,7092020 0,D,18 0,A,-3381822 0,B,15129534 0,C,79 55,111,11 20,10C,753 27,10D,19 22,20,96,-30,-11 0,21,0,0,-1 17,104,24 18,111,11 22,10C,757 29,10D,19 31,104,24 16,111,11 21,10C,757 31,10D,19 22,20,100,-30,-15 0,21,0,0,0 17,104,24 26,111,11 21,10C,753 20,10,7092060 0,D,17 0,A,-3381823 0,B,15129532 0,C,79 38,10D,19 30,104,24 19,111,11 20,10C,750 20,20,96,-28,-15 0,21,0,0,0 17,10D,19 28,104,24 13,10,7092080 0,D,16 0,A,-3381823 0,B,15129531 0,C,79 51,111,11 19,10C,765 27,10D,16 30,104,23 15,20,100,-31,-16 0,21,0,0,0 17,111,11 20,10C,757 29,10D,16 31,104,24 17,111,11 21,10C,761 31,10D,16 30,104,23 4,20,100,-27,-10 0,21,0,0,0 24,111,11 23,10C,765 21,10,7092120 0,D,15 0,A,-3381823 0,B,15129529 0,C,79 51,10D,16 42,104,23 18,111,11 21,10C,773 18,20,100,-29,-19 0,21,-1,0,0 17,10D,16 30,104,23 20,111,11 3,10,7092140 0,D,15 0,A,-3381823 0,B,15129528 0,C,80 65,10C,773 28,10D,16 29,104,23 20,20,100,-30,-14 0,21,0,-1,0 17,111,11 12,10,7092160 0,D,13 0,A,-3381823 0,B,15129527 0,C,80 66,10C,781 29,10D,13 34,104,23 17,111,11 20,10C,773 19,20,101,-33,-17 0,21,0,0,0 19,10D,13 33,104,23 19,111,11 23,10C,781 32,10D,13 29,104,23 19,111,11 24,10C,792 19,20,99,-24,-11 0,21,0,0,0 19,10D,13 29,104,23 20,111,11 19,10C,796 32,10D,13 30,104,22 20,111,11 19,10C,789 19,20,106,-24,-21 0,21,0,0,0 14,10,7092220 0,D,10 0,A,-3381824 0,B,15129525 0,C,80 69,10D,13 34,104,23 13,111,11 21,10C,773 30,10D,10 21,20,97,-25,-12 0,21,0,0,0 14,10,7092240 0,D,10 0,A,-3381824 0,B,15129525 0,C,80 70,104,23 14,111,11 20,10C,773 29,10D,10 40,10,7092260 0,D,9 0,A,-3381824 0,B,15129524 0,C,80 38,104,24 7,20,133,-31,13 0,21,0,2,-4 18,111,11 18,10C,746 32,10D,10 33,104,24 15,111,11 28,10C,738 21,10,7092280 0,D,8 0,A,-3381824 0,B,15129524 0,C,80 43,10D,10 71,20,68,-9,-8 0,21,0,-1,1 19,104,24 17,111,11 23,10C,722 29,10D,7 30,104,24 21,111,11 21,10C,714 27,10D,7 22,20,110,-32,-15 0,21,0,0,5 17,104,24 17,111,13 18,10C,699 21,10,7092320 0,D,7 0,A,-3381824 0,B,15129523 0,C,80 49,10D,7 29,104,29 23,111,13 19,10C,695 20,20,101,-29,-10 0,21,0,0,-2 16,10D,7 29,104,33 6,10,7092340 0,D,7 0,A,-3381824 0,B,15129522 0,C,80 71,111,14 18,10C,765 31,10D,7 29,104,35 2,20,95,-20,-13 0,21,0,0,0 28,111,14 25,10,7092360 0,D,6 0,A,-3381825 0,B,15129522 0,C,80 45,10C,886 30,10D,6 30,104,40 24,111,16 15,10C,957 19,20,98,-23,-15 0,21,0,0,0 16,10D,6 31,104,45 18,10,7092380 0,D,6 0,A,-3381825 0,B,15129522 0,C,81 44,111,18 19,10C,1007 27,10D,6 30,104,54 18,20,116,-18,-13 0,21,0,0,1 17,111,19 15,10,7092400 0,D,6 0,A,-3381825 0,B,15129521 0,C,81 64,10C,1136 28,10D,6 30,104,61 18,111,20 23,10C,1347 19,20,97,-10,-18 0,21,-1,0,1 19,10D,6 21,10,7092420 0,D,6 0,A,-3381825 0,B,15129521 0,C,81 57,104,60 18,111,19 19,10C,1492 28,10D,6 32,104,57 8,20,95,-3,-17 0,21,-1,0,-3 24,111,19 30,10C,1562 34,10D,6 34,104,55 14,111,18 20,10C,1625 29,10D,6 21,20,108,-11,-16 0,21,0,0,-3 19,104,51 25,111,18 22,10C,1652 29,10D,6 29,104,47 22,111,18 20,10C,1625 29,10D,6 22,20,95,-9,-18 0,21,0,0,2 18,104,45 15,111,18 22,10C,1585 29,10D,6 29,104,45 22,111,18 20,10C,1566 30,10D,6 22,20,102,-4,-12 0,21,-1,0,-1 14,10,7092500 0,D,9 0,A,-3381825 0,B,15129519 0,C,81 69,104,45 18,111,18 20,10C,1578 29,10D,8 29,104,47 6,10,7092520 0,D,10 0,A,-3381825 0,B,15129518 0,C,81 41,20,109,-4,-11 0,21,0,0,0 22,111,18 18,10C,1597 28,10D,8 33,104,49 17,111,19 20,10C,1609 29,10D,8 31,104,49 2,20,107,-5,-9 0,21,0,0,0 30,111,19 19,10C,1625 32,10D,8 32,104,50 15,111,18 20,10C,1648 22,10,7092560 0,D,11 0,A,-3381826 0,B,15129517 0,C,81 39,10D,8 30,20,103,-6,-7 0,21,0,0,0 18,104,50 18,111,19 20,10C,1664 29,10D,8 29,104,49 6,10,7092580 0,D,12 0,A,-3381826 0,B,15129516 0,C,81 48,111,19 24,10C,1667 19,20,101,-12,-11 0,21,0,0,0 19,10D,11 29,104,50 21,111,19 20,10C,1675 29,10D,11 22,10,7092600 0,D,13 0,A,-3381826 0,B,15129515 0,C,81 43,104,50 18,20,111,-6,-5 0,21,-1,0,0 19,111,19 19,10C,1687 31,10D,11 31,104,50 10,10,7092620 0,D,14 0,A,-3381826 0,B,15129515 0,C,81 39,111,19 18,10C,1687 32,10D,11 21,20,109,-7,-7 0,21,-1,0,0 18,104,50 18,111,19 15,10C,1683 31,10D,11 23,10,7092640 0,D,14 0,A,-3381826 0,B,15129514 0,C,81 38,104,50 15,111,19 18,10C,1648 25,20,100,-10,-14 0,21,-1,0,0 18,10D,13 32,104,51 20,111,19 21,10C,1613 19,10,7092660 0,D,15 0,A,-3381827 0,B,15129513 0,C,81 39,10D,13 43,104,52 8,20,104,-5,-12 0,21,-1,1,0 17,111,19 18,10C,1582 30,10D,13 27,10,7092680 0,D,15 0,A,-3381827 0,B,15129512 0,C,81 39,104,53 14,111,19 19,10C,1558 33,10D,13 22,20,102,-12,-20 0,21,-2,0,0 17,104,54 13,111,19 23,10C,1535 30,10D,13 30,104,55 17,111,19 20,10C,1507 33,10D,13 20,20,101,-14,-16 0,21,-2,0,0 18,104,56 14,111,19 23,10C,1484 22,10,7092720 0,D,17 0,A,-3381827 0,B,15129510 0,C,81 46,10D,15 30,104,58 20,111,19 19,10C,1441 19,20,107,-6,-11 0,21,-3,0,-1 18,10D,15 30,104,60 6,10,7092740 0,D,18 0,A,-3381827 0,B,15129509 0,C,81 69,111,19 19,10C,1375 44,10D,15 22,20,101,-13,-6 0,21,-3,1,0 18,104,61 16,111,19 15,10,7092760 0,D,18 0,A,-3381828 0,B,15129508 0,C,81 60,10C,1300 41,10D,15 34,104,64 17,20,101,-2,-10 0,21,-3,2,0 16,111,19 18,10C,1242 28,10D,15 31,104,65 23,111,19 15,10C,1214 33,10D,17 33,104,66 7,20,109,-6,-4 0,21,-3,0,1 16,111,19 18,10C,1214 21,10,7092800 0,D,19 0,A,-3381828 0,B,15129505 0,C,81 52,10D,17 31,104,67 18,111,19 24,10C,1210 24,20,111,-9,-11 0,21,-3,1,0 15,10D,17 35,104,67 19,111,20 2,10,7092820 0,D,19 0,A,-3381828 0,B,15129504 0,C,82 63,10C,1222 31,10D,17 32,104,67 3,20,104,-14,-13 0,21,-3,1,0 28,111,20 13,10,7092840 0,D,21 0,A,-3381828 0,B,15129503 0,C,82 55,10C,1234 28,10D,17 30,104,66 18,111,20 21,10C,1230 19,20,104,-5,-5 0,21,-4,0,0 17,10D,17 23,10,7092860 0,D,21 0,A,-3381828 0,B,15129501 0,C,82 55,104,66 26,111,20 22,10C,1238 27,10D,20 32,104,65 2,20,118,1,-4 0,21,-4,0,0 27,111,20 2,10,7092880 0,D,21 0,A,-3381829 0,B,15129500 0,C,82 81,10C,1250 27,10D,20 30,104,65 19,111,19 16,20,102,-8,-19 0,21,-3,0,0 18,10C,1265 21,10,7092900 0,D,22 0,A,-3381829 0,B,15129499 0,C,82 57,10D,20 45,104,64 16,111,19 22,10C,1277 22,20,101,-18,-20 0,21,-4,0,1 19,10D,20 22,10,7092920 0,D,23 0,A,-3381829 0,B,15129497 0,C,82 56,104,64 15,111,20 23,10C,1281 27,10D,23 32,104,64 9,20,103,-9,-6 0,21,-3,0,0 19,111,20 7,10,7092940 0,D,23 0,A,-3381829 0,B,15129496 0,C,82 69,10C,1281 29,10D,23 30,104,64 22,111,20 21,10C,1289 19,20,106,-6,-17 0,21,-3,0,0 20,10D,23 29,104,64 18,111,19 35,10C,1285 27,10D,23 29,104,64 19,111,20 21,10C,1285 19,20,97,-18,-29 0,21,-4,0,0 18,10,7092980 0,D,24 0,A,-3381829 0,B,15129493 0,C,82 66,10D,23 33,104,64 19,111,19 23,10C,1277 28,10D,23 21,20,112,1,-3 0,21,-3,1,0 14,10,7093000 0,D,24 0,A,-3381829 0,B,15129491 0,C,82 70,104,63 15,111,18 18,10C,1265 30,10D,24 30,104,60 2,10,7093020 0,D,25 0,A,-3381829 0,B,15129490 0,C,82 44,20,107,-9,3 0,21,-2,0,-1 18,111,18 18,10C,1226 29,10D,24 30,104,60 20,111,18 21,10C,1218 29,10D,24 31,104,60 4,20,105,-16,0 0,21,-2,0,1 30,111,19 14,10C,1218 33,10D,24 33,104,61 14,111,19 26,10C,1222 20,10,7093060 0,D,26 0,A,-3381829 0,B,15129487 0,C,82 42,10D,24 33,20,101,-13,0 0,21,-3,0,0 20,104,63 24,111,19 22,10C,1246 27,10D,25 31,104,63 17,10,7093080 0,D,26 0,A,-3381829 0,B,15129485 0,C,82 39,111,19 14,10C,1281 20,20,116,-5,-4 0,21,-4,0,2 17,10D,25 33,104,63 20,111,20 20,10C,1296 22,10,7093100 0,D,26 0,A,-3381829 0,B,15129484 0,C,82 37,10D,25 30,104,62 23,111,19 2,20,83,-25,-26 0,21,-4,0,-1 30,10C,1300 30,10D,25 33,104,62 3,10,7093120 0,D,27 0,A,-3381828 0,B,15129482 0,C,82 55,111,19 20,10C,1304 31,10D,25 26,20,116,0,-19 0,21,-4,0,-1 17,104,62 17,111,19 20,10C,1304 22,10,7093140 0,D,27 0,A,-3381828 0,B,15129480 0,C,82 46,10D,27 31,104,62 21,111,20 21,10C,1300 19,20,103,-13,-4 0,21,-5,2,1 16,10D,27 34,104,62 2,10,7093160 0,D,27 0,A,-3381828 0,B,15129479 0,C,82 66,111,19 22,10C,1292 29,10D,27 35,20,90,-26,-24 0,21,-4,1,0 16,104,63 18,111,19 12,10,7093180 0,D,28 0,A,-3381828 0,B,15129477 0,C,82 61,10C,1289 32,10D,27 31,104,64 18,111,19 14,20,98,-17,-16 0,21,-4,2,2 16,10C,1285 32,10D,27 21,10,7093200 0,D,28 0,A,-3381827 0,B,15129475 0,C,82 43,104,64 30,111,20 20,10C,1281 29,10D,28 21,20,99,-13,-11 0,21,-4,2,0 16,104,64 15,10,7093220 0,D,28 0,A,-3381827 0,B,15129474 0,C,82 64,111,20 15,10C,1281 29,10D,28 29,104,64 21,111,20 13,20,113,-6,-6 0,21,-3,1,0 18,10C,1281 21,10,7093240 0,D,29 0,A,-3381827 0,B,15129472 0,C,82 58,10D,28 30,104,64 22,111,20 19,10C,1285 30,10D,28 21,20,118,-5,0 0,21,-3,0,0 19,104,65 14,111,20 12,10,7093260 0,D,29 0,A,-3381826 0,B,15129470 0,C,83 63,10C,1277 29,10D,28 41,104,66 18,111,20 4,20,100,-13,2 0,21,-3,0,0 18,10,7093280 0,D,30 0,A,-3381826 0,B,15129468 0,C,83 75,10C,1269 28,10D,29 30,104,67 21,111,20 21,10C,1269 19,20,113,-6,-6 0,21,-4,-1,-1 20,10D,29 30,104,67 22,111,20 19,10C,1273 28,10D,29 30,104,67 21,111,20 22,10C,1277 19,20,94,-22,-23 0,21,-3,0,0 14,10,7093320 0,D,30 0,A,-3381825 0,B,15129465 0,C,83 69,10D,29 30,104,67 22,111,20 20,10C,1285 31,10D,29 22,20,126,9,-9 0,21,-4,-2,-6 13,10,7093340 0,D,31 0,A,-3381825 0,B,15129463 0,C,83 70,104,68 19,111,20 19,10C,1304 29,10D,31 30,104,67 23,20,88,-37,-17 0,21,-3,0,2 15,10,7093360 0,D,31 0,A,-3381824 0,B,15129461 0,C,83 68,111,20 16,10C,1324 19,10,900 0,D,31 0,A,45000 0,B,13333 0,C,27 49,10D,31 35,20,105,-3,-28 0,21,-3,-2,2 18,104,66 18,111,20 20,10C,1351 28,10D,31 30,104,65 22,111,20 19,10C,1355 26,10,7093400 0,D,32 0,A,-3381823 0,B,15129458 0,C,27 37,10D,31 22,20,118,-7,-24 0,21,-3,-2,-1 18,104,66 19,111,20 18,10C,1351 32,10D,31 35,104,65 15,10,7093420 0,D,32 0,A,-3381822 0,B,15129456 0,C,27 39,111,20 19,10C,1351 19,20,102,-9,-14 0,21,-3,1,0 22,10D,32 33,104,65 23,111,20 20,10C,1355 25,10,7093440 0,D,33 0,A,-3381822 0,B,15129454 0,C,27 39,10D,32 34,104,65 6,20,109,-16,-3 0,21,-1,0,1 18,111,20 19,10C,1351 27,10D,32 28,104,64 21,111,17 6,10,7093460 0,D,33 0,A,-3381821 0,B,15129452 0,C,27 52,10C,1335 28,10D,32 22,20,114,-6,-7 0,21,-1,0,0 17,104,53 15,111,15 21,10C,1277 30,10D,32 31,104,44 20,10,7093480 0,D,33 0,A,-3381820 0,B,15129450 0,C,83 39,111,14 14,10C,1292 20,20,83,-22,-1 0,21,-1,-1,0 17,10D,32 33,104,37 19,111,14 22,10C,1269 20,10,7093500 0,D,34 0,A,-3381820 0,B,15129448 0,C,83 51,10D,33 41,20,107,-14,-11 0,21,-1,-1,2 20,104,31 17,111,13 19,10C,1257 32,10D,33 21,10,7093520 0,D,34 0,A,-3381819 0,B,15129447 0,C,83 39,104,28 18,111,13 15,10C,1242 20,20,95,-26,-13 0,21,-2,-1,0 18,10D,33 31,104,25 16,111,13 22,10,7093540 0,D,34 0,A,-3381818 0,B,15129445 0,C,83 38,10C,1234 29,10D,33 34,104,23 14,20,91,-27,-6 0,21,-1,0,0 17,111,12 18,10C,1207 29,10D,33 35,104,21 20,111,12 2,10,7093560 0,D,34 0,A,-3381818 0,B,15129443 0,C,83 51,10C,1210 29,20,98,-26,-6 0,21,-1,-1,1 21,10D,34 32,104,18 19,111,12 15,10,7093580 0,D,34 0,A,-3381817 0,B,15129441 0,C,83 38,10C,1187 38,10D,34 29,104,16 11,20,100,-22,-9 0,21,-1,0,0 18,111,11 17,10C,1160 30,10D,34 35,104,15 15,10,7093600 0,D,34 0,A,-3381816 0,B,15129439 0,C,84 38,111,11 15,10C,1148 32,10D,34 22,20,95,-29,-14 0,21,-2,0,0 17,104,14 13,111,11 24,10C,1140 21,10,7093620 0,D,34 0,A,-3381815 0,B,15129437 0,C,84 47,10D,34 29,104,14 19,111,11 23,10C,1136 20,20,94,-32,-8 0,21,-1,-1,1 16,10D,33 34,104,14 7,10,7093640 0,D,33 0,A,-3381815 0,B,15129435 0,C,84 72,111,14 30,10C,1160 34,10D,33 21,20,103,-21,-10 0,21,-2,0,-3 16,104,22 16,10,7093660 0,D,33 0,A,-3381814 0,B,15129433 0,C,84 64,111,14 18,10C,1218 29,10D,33 30,104,30 20,111,16 10,20,107,-18,-9 0,21,0,0,0 17,10C,1234 21,10,7093680 0,D,33 0,A,-3381813 0,B,15129432 0,C,84 58,10D,33 40,104,38 21,111,17 20,10C,1285 23,20,102,-18,-11 0,21,-1,0,-1 16,10D,33 24,10,7093700 0,D,32 0,A,-3381813 0,B,15129430 0,C,84 55,104,41 17,111,17 20,10C,1281 29,10D,32 28,104,43 12,20,109,-17,0 0,21,0,0,1 21,111,17 7,10,7093720 0,D,32 0,A,-3381812 0,B,15129428 0,C,84 67,10C,1277 29,10D,32 29,104,45 21,111,17 20,10C,1250 20,20,97,-29,-7 0,21,0,0,0 18,10D,32 31,104,46 23,111,17 19,10C,1257 29,10D,32 29,104,46 22,111,17 20,10C,1261 20,20,97,-21,-9 0,21,0,0,0 18,10D,32 31,104,46 18,111,17 24,10C,1269 29,10D,32 28,104,46 20,111,17 22,10C,1277 21,20,109,-20,-4 0,21,0,0,0 14,10,7093780 0,D,33 0,A,-3381810 0,B,15129422 0,C,84 69,10D,32 40,104,46 20,111,17 21,10C,1285 27,10D,32 22,20,100,-26,-12 0,21,-1,0,0 18,10,7093800 0,D,33 0,A,-3381809 0,B,15129421 0,C,84 65,104,46 26,111,17 22,10C,1281 26,10D,32 31,104,46 14,20,98,-16,-24 0,21,-1,0,1 15,10,7093820 0,D,33 0,A,-3381809 0,B,15129419 0,C,84 68,111,17 20,10C,1285 26,10D,32 32,104,42 19,10,7093840 0,D,33 0,A,-3381808 0,B,15129417 0,C,84 38,111,15 7,20,96,-25,-24 0,21,-1,0,1 17,10C,1281 29,10D,32 29,104,37 22,111,14 19,10C,1269 31,10D,32 23,10,7093860 0,D,33 0,A,-3381808 0,B,15129415 0,C,84 39,104,34 6,20,102,-13,-11 0,21,0,1,0 17,111,14 19,10C,1261 32,10D,32 32,104,30 20,111,14 20,10,7093880 0,D,34 0,A,-3381807 0,B,15129413 0,C,84 39,10C,1265 25,20,98,-20,-10 0,21,-1,0,0 17,10D,32 30,104,28 30,111,13 20,10C,1250 31,10D,32 22,10,7093900 0,D,34 0,A,-3381806 0,B,15129411 0,C,84 39,104,25 14,20,89,-33,-20 0,21,-1,0,0 18,111,13 18,10C,1226 29,10D,32 27,104,23 23,111,12 18,10C,1214 20,10,7093920 0,D,34 0,A,-3381806 0,B,15129409 0,C,84 39,10D,32 21,20,98,-23,-6 0,21,-1,0,-2 18,104,21 18,111,12 20,10C,1222 29,10D,32 30,104,20 3,10,7093940 0,D,33 0,A,-3381805 0,B,15129407 0,C,84 51,111,12 27,10C,1203 21,20,97,-20,-12 0,21,-1,-1,-1 19,10D,32 30,104,17 20,111,12 22,10C,1195 21,10,7093960 0,D,33 0,A,-3381804 0,B,15129406 0,C,84 39,10D,32 34,104,16 18,111,11 2,20,94,-26,-11 0,21,0,0,0 30,10C,1191 27,10D,32 32,104,15 8,10,7093980 0,D,33 0,A,-3381804 0,B,15129404 0,C,84 39,111,11 19,10C,1199 27,10D,32 22,20,77,-42,-12 0,21,-1,0,-1 18,104,14 27,111,11 19,10C,1164 29,10D,32 22,10,7094000 0,D,33 0,A,-3381803 0,B,15129402 0,C,84 39,104,14 14,111,11 19,10C,1152 21,20,91,-30,-16 0,21,-1,0,0 21,10D,32 28,104,14 20,111,11 17,10,7094020 0,D,32 0,A,-3381802 0,B,15129400 0,C,84 39,10C,1152 32,10D,32 33,104,14 12,20,84,-31,-16 0,21,-1,0,0 17,111,11 17,10C,1152 30,10D,32 35,104,14 15,111,11 2,10,7094040 0,D,32 0,A,-3381802 0,B,15129398 0,C,84 52,10C,1179 28,10D,32 22,20,109,-31,-14 0,21,0,0,0 17,104,13 16,111,11 25,10C,1207 21,10,7094060 0,D,32 0,A,-3381801 0,B,15129397 0,C,84 43,10D,31 32,104,13 20,111,11 15,10C,1214 21,20,92,-20,-16 0,21,-1,0,1 16,10D,31 33,104,13 8,10,7094080 0,D,31 0,A,-3381800 0,B,15129395 0,C,84 51,111,11 27,10C,1218 35,10D,31 28,104,13 2,20,102,-23,-16 0,21,-1,0,0 37,111,11 20,10,7094100 0,D,31 0,A,-3381800 0,B,15129393 0,C,84 41,10C,1230 32,10D,31 30,104,13 18,111,11 23,10C,1234 19,20,90,-39,-18 0,21,-1,0,-2 17,10D,31 31,104,13 18,10,7094120 0,D,31 0,A,-3381799 0,B,15129391 0,C,84 44,111,11 18,10C,1230 32,10D,30 33,104,13 8,20,114,-19,-16 0,21,-1,0,0 17,111,11 15,10C,1222 20,10,7094140 0,D,30 0,A,-3381799 0,B,15129390 0,C,84 57,10D,30 29,104,13 18,111,11 23,10C,1222 24,20,95,-27,-5 0,21,-1,0,-1 16,10D,30 35,104,13 12,10,7094160 0,D,30 0,A,-3381798 0,B,15129388 0,C,84 46,111,11 15,10C,1222 32,10D,30 32,104,13 12,20,98,-25,-13 0,21,-1,0,2 16,111,11 16,10,7094180 0,D,29 0,A,-3381797 0,B,15129386 0,C,84 64,10C,1214 29,10D,30 29,104,13 19,111,11 28,20,97,-26,-12 0,21,-1,0,1 17,10C,1214 32,10D,29 24,10,7094200 0,D,29 0,A,-3381797 0,B,15129385 0,C,84 38,104,13 18,111,11 20,10C,1214 27,10D,29 25,20,114,-20,-11 0,21,-1,0,-1 16,104,13 13,10,7094220 0,D,28 0,A,-3381796 0,B,15129383 0,C,84 68,111,11 31,10C,1214 35,10D,29 27,104,13 13,20,113,-19,-14 0,21,-1,0,-1 17,111,11 11,10,7094240 0,D,28 0,A,-3381796 0,B,15129382 0,C,84 67,10C,1214 29,10D,29 30,104,13 18,111,11 23,10C,1210 20,20,105,-22,-13 0,21,-1,0,-1 18,10D,29 31,104,13 18,111,11 20,10C,1210 33,10D,29 32,104,13 23,111,11 20,10C,1207 20,20,101,-24,-16 0,21,-1,0,0 18,10D,27 30,104,13 24,111,11 15,10C,1199 33,10D,27 31,104,13 28,111,11 18,10,7094300 0,D,27 0,A,-3381794 0,B,15129377 0,C,84 38,10C,1199 20,20,101,-27,-16 0,21,-1,0,0 22,10D,27 30,104,13 18,111,11 23,10C,1187 30,10D,27 30,104,13 19,111,11 2,10,7094320 0,D,27 0,A,-3381794 0,B,15129376 0,C,84 44,20,106,-31,-18 0,21,-1,-1,0 17,10C,1183 33,10D,27 29,104,13 19,111,11 22,10C,1179 20,10,7094340 0,D,26 0,A,-3381793 0,B,15129374 0,C,84 38,10D,25 22,20,105,-30,-14 0,21,-1,0,0 18,104,13 14,111,11 23,10C,1171 31,10D,25 32,104,13 3,10,7094360 0,D,25 0,A,-3381792 0,B,15129373 0,C,84 52,111,11 22,10C,1164 20,20,107,-32,-17 0,21,-1,0,-1 18,10D,25 30,104,13 20,111,11 21,10C,1144 29,10D,25 47,104,14 20,111,12 17,20,85,-35,-16 0,21,-1,-1,0 18,10C,1050 27,10D,25 32,104,16 30,111,11 8,10,7094400 0,D,23 0,A,-3381792 0,B,15129370 0,C,84 39,10C,1070 28,10D,25 21,20,88,-57,-15 0,21,-1,2,0 19,104,16 14,111,12 19,10C,1011 30,10D,22 31,104,18 19,111,12 3,10,7094420 0,D,23 0,A,-3381791 0,B,15129369 0,C,84 55,10C,937 19,20,86,-36,-18 0,21,-1,0,0 19,10D,22 28,104,20 23,111,12 20,10C,910 21,10,7094440 0,D,21 0,A,-3381791 0,B,15129368 0,C,84 39,10D,22 29,104,21 19,111,11 2,20,97,-31,-19 0,21,0,0,2 30,10C,890 34,10D,22 30,104,20 2,10,7094460 0,D,20 0,A,-3381790 0,B,15129367 0,C,84 52,111,11 23,10C,871 27,10D,22 22,20,106,-24,-18 0,21,-1,0,0 17,104,20 18,111,11 18,10C,851 29,10D,22 31,104,21 21,111,12 21,10C,832 27,10D,19 22,20,100,-24,-10 0,21,-1,0,0 17,104,21 18,111,11 18,10C,816 42,10D,19 23,10,7094500 0,D,20 0,A,-3381790 0,B,15129365 0,C,84 38,104,21 19,111,11 18,10C,789 20,20,107,-19,-7 0,21,0,2,-7 17,10D,19 28,104,21 16,10,7094520 0,D,18 0,A,-3381789 0,B,15129364 0,C,84 48,111,11 19,10C,789 27,10D,19 45,104,22 4,20,87,-14,-4 0,21,0,0,-1 28,111,11 21,10C,792 20,10,7094540 0,D,16 0,A,-3381789 0,B,15129363 0,C,84 40,10D,19 31,104,22 21,111,11 21,10C,792 19,20,59,-18,-19 0,21,-1,-2,3 17,10D,17 33,104,22 2,10,7094560 0,D,16 0,A,-3381788 0,B,15129362 0,C,84 70,111,11 18,10C,792 32,10D,17 30,20,159,-34,-26 0,21,0,0,8 15,104,22 18,111,11 20,10C,785 20,10,7094580 0,D,17 0,A,-3381788 0,B,15129361 0,C,84 49,10D,17 29,104,22 22,111,11 20,10C,781 19,20,76,-34,-9 0,21,-1,0,-3 16,10D,17 27,10,7094600 0,D,16 0,A,-3381788 0,B,15129360 0,C,84 53,104,22 25,111,11 21,10C,800 28,10D,17 32,104,22 2,20,85,-24,-12 0,21,-1,0,-5 25,111,13 13,10,7094620 0,D,15 0,A,-3381788 0,B,15129359 0,C,84 58,10C,800 32,10D,15 33,104,27 15,111,14 27,10C,855 19,20,109,-26,-20 0,21,0,0,0 18,10D,15 31,104,31 18,111,14 24,10C,941 28,10D,15 29,104,34 22,111,15 20,10C,1058 20,20,94,-25,-11 0,21,-1,0,1 18,10D,15 32,104,36 17,111,16 24,10C,1214 29,10D,15 28,104,37 20,111,17 22,10C,1285 21,20,104,-21,-10 0,21,-1,0,0 14,10,7094680 0,D,14 0,A,-3381787 0,B,15129357 0,C,84 69,10D,15 45,104,47 18,111,20 21,10C,1378 28,10,7094700 0,D,14 0,A,-3381786 0,B,15129356 0,C,84 39,10D,14 22,20,101,-14,-14 0,21,-1,0,0 17,104,56 25,111,20 21,10C,1605 28,10D,14 31,104,58 18,10,7094720 0,D,14 0,A,-3381786 0,B,15129355 0,C,84 38,111,20 18,10C,1769 21,20,105,1,-8 0,21,0,0,-1 17,10D,14 34,104,56 17,111,20 24,10C,1820 28,10D,14 21,10,7094740 0,D,14 0,A,-3381786 0,B,15129354 0,C,84 39,104,55 14,111,20 7,20,116,4,-13 0,21,-1,0,-1 29,10C,1835 28,10D,14 32,104,54 18,111,20 14,10,7094760 0,D,15 0,A,-3381785 0,B,15129353 0,C,84 42,10C,1835 29,10D,15 22,20,105,0,-22 0,21,-1,0,-1 17,104,53 15,111,20 22,10C,1824 30,10D,15 30,104,53 20,111,20 3,10,7094780 0,D,15 0,A,-3381785 0,B,15129353 0,C,84 51,10C,1816 19,20,108,-2,-9 0,21,0,0,1 18,10D,15 33,104,54 22,111,20 18,10C,1804 21,10,7094800 0,D,17 0,A,-3381785 0,B,15129352 0,C,84 38,10D,15 30,104,55 24,20,112,3,-6 0,21,-1,0,-1 18,111,20 14,10C,1785 30,10D,15 29,104,56 3,10,7094820 0,D,17 0,A,-3381784 0,B,15129351 0,C,84 52,111,20 22,10C,1738 36,20,114,-7,-11 0,21,-1,0,-1 19,10D,15 32,104,56 24,111,20 18,10C,1710 21,10,7094840 0,D,18 0,A,-3381784 0,B,15129350 0,C,84 38,10D,17 29,104,57 20,111,20 2,20,97,-20,-14 0,21,-1,0,0 30,10C,1683 30,10D,17 30,104,58 2,10,7094860 0,D,19 0,A,-3381784 0,B,15129349 0,C,84 52,111,20 20,10C,1656 32,10D,17 22,20,102,-7,-11 0,21,-1,0,0 17,104,60 14,111,20 21,10C,1628 30,10D,17 30,104,60 21,111,20 20,10C,1597 29,10D,17 22,20,102,-14,-12 0,21,-1,0,1 16,104,60 17,111,20 20,10C,1570 22,10,7094900 0,D,20 0,A,-3381783 0,B,15129346 0,C,84 46,10D,17 30,104,60 30,111,20 19,10C,1523 20,20,112,4,-8 0,21,-1,0,-1 16,10D,19 31,104,62 2,10,7094920 0,D,21 0,A,-3381782 0,B,15129345 0,C,84 69,111,20 21,10C,1484 29,10D,19 28,104,62 4,20,111,-7,-5 0,21,-1,0,0 28,111,20 18,10C,1449 20,10,7094940 0,D,21 0,A,-3381782 0,B,15129344 0,C,84 43,10D,19 34,104,63 18,111,20 21,10C,1378 19,20,98,-14,0 0,21,-1,0,0 17,10D,19 29,104,65 2,10,7094960 0,D,22 0,A,-3381782 0,B,15129343 0,C,84 74,111,19 18,10C,1285 29,10D,19 32,104,65 2,20,100,-17,-15 0,21,0,1,-1 34,111,18 19,10,7094980 0,D,23 0,A,-3381781 0,B,15129341 0,C,84 45,10C,1238 28,10D,21 31,104,58 21,111,16 20,10C,1210 19,20,90,-10,-17 0,21,-1,0,0 16,10D,21 35,104,53 12,10,7095000 0,D,23 0,A,-3381781 0,B,15129340 0,C,84 47,111,16 14,10C,1195 41,10D,21 29,104,49 6,20,105,-11,-13 0,21,0,1,0 26,10,7095020 0,D,24 0,A,-3381780 0,B,15129339 0,C,84 57,111,16 18,10C,1187 29,10D,21 29,104,46 21,111,17 20,10C,1183 20,20,107,-1,6 0,21,0,1,-2 18,10D,21 31,104,51 18,111,18 24,10C,1199 29,10D,23 28,104,53 20,111,18 20,10C,1214 20,20,86,-18,-8 0,21,0,0,0 18,10D,23 34,104,55 18,111,18 21,10C,1203 29,10D,23 32,104,58 19,111,20 21,10C,1210 20,20,119,-13,-4 0,21,0,0,0 13,10,7095080 0,D,24 0,A,-3381779 0,B,15129335 0,C,84 70,10D,23 29,104,66 23,111,20 20,10C,1261 29,10D,23 22,20,92,-6,-3 0,21,0,0,0 13,10,7095100 0,D,25 0,A,-3381778 0,B,15129333 0,C,84 69,104,68 25,111,20 22,10C,1304 29,10D,23 35,104,67 8,20,114,-11,-18 0,21,0,0,0 14,10,7095120 0,D,25 0,A,-3381778 0,B,15129332 0,C,84 69,111,20 20,10C,1304 26,10D,25 32,104,67 32,111,20 9,20,111,-10,-18 0,21,0,0,0 14,10,7095140 0,D,25 0,A,-3381777 0,B,15129331 0,C,84 69,10C,1308 32,10D,25 28,104,66 20,111,20 13,10,7095160 0,D,26 0,A,-3381777 0,B,15129329 0,C,84 39,10C,1304 19,20,105,-12,-12 0,21,0,0,0 19,10D,25 30,104,66 21,111,20 20,10C,1292 29,10D,25 31,104,66 19,111,20 6,10,7095180 0,D,26 0,A,-3381776 0,B,15129328 0,C,84 41,20,110,-5,-8 0,21,0,0,-1 18,10C,1300 32,10D,26 32,104,66 23,111,20 18,10C,1304 21,10,7095200 0,D,27 0,A,-3381776 0,B,15129326 0,C,84 38,10D,26 21,20,115,2,-14 0,21,-1,-1,0 22,104,67 18,111,20 29,10C,1328 30,10D,26 30,104,66 20,111,20 5,10,7095220 0,D,27 0,A,-3381775 0,B,15129324 0,C,85 49,20,92,-22,-17 0,21,-2,-1,1 17,10C,1339 29,10D,26 32,104,66 18,111,20 23,10C,1328 20,10,7095240 0,D,28 0,A,-3381774 0,B,15129323 0,C,85 38,10D,26 27,20,87,-18,-17 0,21,-2,0,0 17,104,66 15,111,20 22,10C,1335 30,10D,26 34,104,66 7,10,7095260 0,D,28 0,A,-3381774 0,B,15129321 0,C,85 38,111,20 15,10C,1328 24,20,106,-5,-19 0,21,-1,0,0 18,10D,27 34,104,67 16,111,20 25,10C,1335 44,10D,27 31,104,67 22,111,20 13,20,107,-1,-10 0,21,-1,0,0 18,10C,1320 28,10D,27 32,104,68 20,111,20 14,10,7095300 0,D,29 0,A,-3381773 0,B,15129318 0,C,85 38,10C,1316 33,10D,27 20,20,96,-13,-9 0,21,-1,0,0 18,104,68 15,111,20 32,10C,1343 30,10D,27 23,10,7095320 0,D,30 0,A,-3381772 0,B,15129316 0,C,85 40,104,67 14,111,20 24,10C,1347 19,20,120,3,-24 0,21,0,0,2 19,10D,29 28,104,67 23,111,20 21,10C,1343 21,10,7095340 0,D,30 0,A,-3381772 0,B,15129315 0,C,85 38,10D,29 33,104,67 15,111,20 2,20,100,-14,-13 0,21,-1,1,3 35,10C,1335 29,10D,29 30,104,67 2,10,7095360 0,D,30 0,A,-3381771 0,B,15129313 0,C,85 52,111,20 28,10C,1316 24,20,86,-34,-21 0,21,-1,1,0 18,10D,29 29,104,68 21,111,20 23,10C,1300 20,10,7095380 0,D,31 0,A,-3381770 0,B,15129311 0,C,85 38,10D,29 34,104,68 14,111,20 3,20,103,0,-20 0,21,-1,0,-1 30,10C,1304 26,10D,29 33,104,68 8,10,7095400 0,D,31 0,A,-3381770 0,B,15129310 0,C,85 39,111,20 19,10C,1316 27,10D,31 22,20,98,-10,-2 0,21,-1,0,-1 17,104,67 15,111,20 30,10C,1324 29,10,7095420 0,D,32 0,A,-3381769 0,B,15129308 0,C,85 43,10D,31 45,104,62 21,111,18 2,20,110,-12,-24 0,21,-1,0,0 33,10C,1296 27,10D,31 30,104,57 2,10,7095440 0,D,32 0,A,-3381768 0,B,15129306 0,C,85 52,111,17 24,10C,1261 28,10D,31 22,20,121,3,-17 0,21,-1,1,-1 16,104,52 18,111,17 18,10C,1269 30,10D,31 30,104,50 21,111,17 20,10C,1257 29,10D,31 21,20,93,-23,-12 0,21,-1,0,0 17,104,48 17,111,16 20,10C,1261 22,10,7095480 0,D,33 0,A,-3381767 0,B,15129302 0,C,85 46,10D,32 34,104,46 19,111,17 19,10C,1285 20,20,103,-15,-11 0,21,-1,0,1 17,10D,32 29,104,45 11,10,7095500 0,D,33 0,A,-3381766 0,B,15129300 0,C,85 52,111,17 19,10C,1324 28,10D,32 30,104,44 14,20,107,-15,-10 0,21,-1,0,0 17,111,17 30,10C,1355 22,10,7095520 0,D,34 0,A,-3381766 0,B,15129299 0,C,85 41,10D,32 30,104,44 18,111,17 20,10C,1355 25,20,108,-16,-16 0,21,-1,0,0 15,10D,32 30,104,43 4,10,7095540 0,D,34 0,A,-3381765 0,B,15129297 0,C,85 69,111,17 17,10C,1339 33,10D,33 29,104,44 3,20,110,-15,-9 0,21,-1,1,-1 27,111,17 22,10C,1339 20,10,7095560 0,D,34 0,A,-3381764 0,B,15129295 0,C,85 39,10D,33 34,104,44 35,111,17 19,10C,1320 20,20,74,-27,-14 0,21,-1,1,0 16,10D,33 31,104,44 2,10,7095580 0,D,34 0,A,-3381764 0,B,15129293 0,C,85 70,111,17 20,10C,1296 32,10D,33 28,104,44 1,20,96,-21,-11 0,21,0,0,0 29,111,17 13,10,7095600 0,D,35 0,A,-3381763 0,B,15129291 0,C,85 55,10C,1289 28,10D,33 30,104,45 19,111,16 22,10C,1277 19,20,104,-24,-4 0,21,0,0,0 19,10D,34 31,10,7095620 0,D,35 0,A,-3381762 0,B,15129289 0,C,85 48,104,45 18,111,15 20,10C,1273 27,10D,34 32,104,40 5,20,117,-9,-8 0,21,-1,0,0 20,10,7095640 0,D,35 0,A,-3381761 0,B,15129287 0,C,85 63,111,14 20,10C,1246 31,10D,34 29,104,33 23,111,14 16,20,104,-15,-11 0,21,-1,1,0 18,10C,1246 20,10,7095660 0,D,36 0,A,-3381761 0,B,15129285 0,C,85 57,10D,34 31,104,29 22,111,13 20,10C,1230 30,10D,34 21,20,117,-7,-6 0,21,-1,0,-2 18,104,27 16,111,13 18,10C,1234 29,10D,35 30,104,25 22,111,13 20,10C,1218 29,10D,35 22,20,90,-23,-5 0,21,-1,0,-1 18,104,23 16,111,12 21,10C,1218 29,10D,35 29,104,21 22,111,12 19,10C,1214 31,10D,35 22,20,92,-29,-20 0,21,-1,0,-1 14,10,7095720 0,D,36 0,A,-3381759 0,B,15129279 0,C,85 69,104,20 41,111,13 18,10C,1207 30,10D,35 30,104,20 2,20,86,-33,-15 0,21,-1,0,-2 32,111,14 20,10C,1218 31,10D,35 34,104,23 19,111,14 23,10C,1207 29,10D,35 20,20,106,-31,-10 0,21,-2,0,0 14,10,7095760 0,D,36 0,A,-3381757 0,B,15129275 0,C,85 70,104,26 16,111,14 21,10C,1238 26,10D,35 30,104,27 3,10,7095780 0,D,36 0,A,-3381756 0,B,15129273 0,C,85 44,20,84,-33,-11 0,21,-2,1,1 17,111,14 18,10C,1222 29,10D,35 30,104,27 20,111,13 21,10C,1222 28,10D,35 31,104,26 6,20,126,-1,-3 0,21,-1,0,0 30,111,12 18,10C,1230 32,10D,35 30,104,21 18,111,12 22,10C,1218 20,10,7095820 0,D,36 0,A,-3381755 0,B,15129269 0,C,85 38,10D,35 22,20,99,-17,-14 0,21,-1,0,0 17,104,20 26,111,11 20,10C,1214 30,10D,34 30,104,16 3,10,7095840 0,D,36 0,A,-3381754 0,B,15129267 0,C,85 51,111,11 23,10C,1226 20,20,91,-25,-10 0,21,-2,1,-2 18,10D,34 29,104,14 22,111,11 20,10C,1234 30,10D,34 30,104,13 18,111,11 23,10C,1234 20,20,101,-31,-15 0,21,-3,0,-2 18,10D,34 29,104,13 22,111,11 23,10C,1238 20,10,7095880 0,D,36 0,A,-3381752 0,B,15129263 0,C,85 42,10D,34 45,104,12 10,20,90,-39,-9 0,21,-3,0,-3 17,111,11 17,10C,1226 30,10D,34 31,104,12 18,111,11 4,10,7095900 0,D,36 0,A,-3381752 0,B,15129261 0,C,84 54,10C,1203 28,10D,34 22,20,95,-28,4 0,21,-3,0,-1 17,104,12 17,111,11 20,10C,1187 22,10,7095920 0,D,35 0,A,-3381751 0,B,15129259 0,C,84 46,10D,34 30,104,13 32,111,11 20,10C,1171 19,20,101,-25,-10 0,21,-3,0,2 16,10D,34 27,10,7095940 0,D,35 0,A,-3381750 0,B,15129258 0,C,84 53,104,13 20,111,13 18,10C,1175 32,10D,34 29,104,17 5,20,88,-26,-10 0,21,-3,0,-1 31,111,13 13,10,7095960 0,D,35 0,A,-3381749 0,B,15129256 0,C,84 52,10C,1203 29,10D,34 29,104,20 19,111,13 23,10C,1238 20,20,108,-15,-29 0,21,-4,1,0 17,10D,34 23,10,7095980 0,D,34 0,A,-3381748 0,B,15129254 0,C,84 55,104,21 19,111,13 19,10C,1222 32,10D,34 34,104,22 7,20,74,-42,-36 0,21,-5,0,-1 18,111,13 7,10,7100000 0,D,34 0,A,-3381747 0,B,15129252 0,C,84 71,10C,1234 32,10D,34 33,104,23 19,111,13 23,10C,1242 20,20,115,-14,-25 0,21,-4,1,0 18,10D,34 30,104,24 18,111,13 24,10C,1238 38,10D,34 32,104,24 18,111,14 23,20,92,-27,-6 0,21,-4,1,0 20,10C,1238 32,10D,34 29,104,25 19,111,14 24,10C,1242 28,10D,34 31,104,25 15,10,7100060 0,D,34 0,A,-3381744 0,B,15129247 0,C,84 38,111,14 7,20,77,-40,-11 0,21,-4,1,3 18,10C,1253 31,10D,34 31,104,26 22,111,14 19,10C,1253 28,10D,34 22,10,7100080 0,D,34 0,A,-3381743 0,B,15129245 0,C,84 38,104,27 7,20,133,-9,-37 0,21,-4,1,1 18,111,14 14,10C,1257 32,10D,34 33,104,28 15,111,14 25,10C,1257 21,10,7100100 0,D,34 0,A,-3381742 0,B,15129244 0,C,84 38,10D,34 21,20,102,-30,-23 0,21,-4,0,1 18,104,29 22,111,14 20,10C,1269 29,10D,34 33,104,29 9,10,7100120 0,D,34 0,A,-3381741 0,B,15129242 0,C,84 39,111,15 15,10C,1273 20,20,78,-35,-13 0,21,-4,0,0 18,10D,34 43,104,30 13,111,14 23,10C,1273 29,10D,34 35,104,30 18,111,14 20,10C,1257 19,20,85,-38,-25 0,21,-5,1,0 19,10D,34 33,104,30 14,111,14 20,10C,1261 29,10D,34 31,104,30 21,111,14 21,10C,1257 19,20,108,-3,-30 0,21,-4,-1,-3 19,10D,34 31,104,30 20,111,14 21,10C,1261 21,10,7100180 0,D,34 0,A,-3381738 0,B,15129238 0,C,84 38,10D,34 29,104,30 22,111,14 2,20,98,-28,-32 0,21,-4,0,1 31,10C,1253 41,10D,34 35,104,30 20,111,14 2,10,7100200 0,D,34 0,A,-3381736 0,B,15129236 0,C,84 52,10C,1253 20,20,91,-20,-30 0,21,-5,2,0 17,10D,34 33,104,30 18,111,14 23,10C,1257 19,10,7100220 0,D,34 0,A,-3381735 0,B,15129235 0,C,84 39,10D,34 30,104,30 22,111,14 2,20,107,-28,-15 0,21,-4,2,-1 36,10C,1281 30,10D,34 31,104,30 21,111,14 2,10,7100240 0,D,34 0,A,-3381734 0,B,15129233 0,C,84 56,10C,1296 24,20,94,-40,-16 0,21,-4,2,0 17,10D,34 29,104,29 20,111,14 17,10,7100260 0,D,34 0,A,-3381732 0,B,15129232 0,C,84 42,10C,1304 32,10D,34 29,104,29 16,20,91,-34,-16 0,21,-5,0,0 17,111,14 18,10C,1308 29,10D,34 31,104,29 18,111,14 3,10,7100280 0,D,34 0,A,-3381731 0,B,15129231 0,C,84 55,10C,1308 28,10D,34 21,20,98,-25,-21 0,21,-5,1,3 17,104,29 18,111,14 19,10C,1312 22,10,7100300 0,D,34 0,A,-3381730 0,B,15129230 0,C,84 46,10D,34 34,104,28 18,111,14 21,10C,1285 19,20,95,-29,-12 0,21,-4,0,0 16,10D,34 31,10,7100320 0,D,34 0,A,-3381728 0,B,15129228 0,C,84 50,104,29 19,111,13 18,10C,1292 32,10D,34 35,20,110,-24,-11 0,21,-4,1,0 21,104,27 27,111,13 4,10,7100340 0,D,34 0,A,-3381727 0,B,15129227 0,C,84 66,10C,1246 32,10D,34 34,104,22 17,20,98,-26,-4 0,21,-4,0,0 17,111,12 17,10C,1246 22,10,7100360 0,D,34 0,A,-3381725 0,B,15129226 0,C,84 53,10D,34 34,104,20 15,111,12 19,10C,1230 23,20,104,-14,-25 0,21,-4,0,-1 16,10D,34 27,10,7100380 0,D,34 0,A,-3381724 0,B,15129225 0,C,84 53,104,21 16,111,15 21,10C,1226 29,10D,34 29,104,27 11,20,110,-23,-11 0,21,-4,0,3 16,111,15 18,10C,1250 21,10,7100400 0,D,34 0,A,-3381722 0,B,15129224 0,C,84 53,10D,34 33,104,30 20,111,15 19,10C,1250 20,20,87,-27,-26 0,21,-4,2,-1 16,10D,34 27,10,7100420 0,D,34 0,A,-3381721 0,B,15129223 0,C,84 53,104,30 19,111,13 19,10C,1234 31,10D,34 35,20,117,-17,-31 0,21,-5,1,-1 17,104,27 18,111,13 8,10,7100440 0,D,34 0,A,-3381719 0,B,15129222 0,C,84 66,10C,1230 31,10D,34 34,104,23 19,111,12 9,20,104,-22,-27 0,21,-5,1,-2 16,10C,1230 26,10,7100460 0,D,34 0,A,-3381717 0,B,15129221 0,C,84 53,10D,34 31,104,21 22,111,12 20,10C,1218 28,10D,34 20,20,112,-22,-26 0,21,-5,0,0 23,104,18 18,10,7100480 0,D,34 0,A,-3381716 0,B,15129220 0,C,84 54,111,12 16,10C,1222 28,10D,34 33,104,16 18,111,11 10,20,92,-36,-18 0,21,-3,3,0 17,10C,1222 22,10,7100500 0,D,34 0,A,-3381714 0,B,15129220 0,C,84 56,10D,34 31,104,14 21,111,11 21,10C,1203 25,10D,34 22,20,91,-19,-27 0,21,-4,2,0 18,104,14 16,111,11 5,10,7100520 0,D,34 0,A,-3381713 0,B,15129219 0,C,84 83,10C,1152 27,10D,34 40,104,14 16,20,96,-33,-22 0,21,-4,0,0 13,10,7100540 0,D,34 0,A,-3381711 0,B,15129218 0,C,84 69,111,12 20,10C,1164 28,10D,34 36,104,20 18,111,14 18,20,94,-27,-15 0,21,-5,1,2 14,10,7100560 0,D,34 0,A,-3381709 0,B,15129218 0,C,84 70,10C,1187 28,10D,34 30,104,25 21,111,14 21,10C,1242 19,20,86,-36,-16 0,21,-5,1,0 18,10D,34 31,104,26 19,111,14 23,10C,1238 28,10D,34 30,104,27 21,111,14 22,10C,1242 19,20,110,-13,-33 0,21,-5,1,-2 14,10,7100600 0,D,34 0,A,-3381706 0,B,15129216 0,C,84 70,10D,34 30,104,28 20,111,14 21,10C,1242 27,10D,34 22,20,105,-23,-21 0,21,-4,0,0 14,10,7100620 0,D,34 0,A,-3381704 0,B,15129216 0,C,84 69,104,28 15,111,14 31,10C,1250 41,10D,34 30,104,28 2,20,98,-22,-6 0,21,-4,0,-2 31,111,14 21,10C,1265 28,10D,34 33,104,28 19,111,14 19,10C,1281 32,10D,34 21,20,88,-26,-7 0,21,-4,0,0 14,10,7100660 0,D,34 0,A,-3381701 0,B,15129215 0,C,84 69,104,28 20,111,14 14,10C,1292 30,10D,34 29,104,28 3,10,7100680 0,D,34 0,A,-3381699 0,B,15129215 0,C,84 45,20,87,-26,-14 0,21,-3,0,0 17,111,14 18,10C,1285 29,10D,34 30,104,28 20,111,14 21,10C,1292 28,10D,34 31,104,28 6,20,114,-17,-16 0,21,-4,0,0 26,111,14 23,10C,1289 29,10D,34 29,104,29 21,111,15 19,10C,1285 21,10,7100720 0,D,34 0,A,-3381696 0,B,15129214 0,C,84 38,10D,34 22,20,93,-32,-15 0,21,-4,0,0 17,104,31 18,111,16 20,10C,1289 31,10D,34 38,104,32 4,10,7100740 0,D,34 0,A,-3381694 0,B,15129214 0,C,84 51,111,16 21,10C,1300 20,20,103,-14,-22 0,21,-5,2,0 18,10D,34 30,104,34 21,111,16 21,10C,1304 30,10D,34 30,104,35 18,111,16 23,10C,1300 20,20,87,-29,-17 0,21,-5,0,1 18,10D,34 29,104,37 21,111,16 22,10C,1304 21,10,7100780 0,D,34 0,A,-3381691 0,B,15129214 0,C,84 38,10D,34 34,104,40 18,111,17 2,20,93,-35,-24 0,21,-5,0,0 35,10C,1316 41,10D,34 33,104,41 22,111,17 3,10,7100800 0,D,34 0,A,-3381689 0,B,15129214 0,C,83 55,10C,1324 19,20,76,-43,-21 0,21,-5,1,0 19,10D,34 31,104,43 16,111,17 21,10,7100820 0,D,34 0,A,-3381687 0,B,15129214 0,C,83 39,10C,1320 32,10D,34 34,104,44 11,20,101,-20,-20 0,21,-4,0,0 17,111,17 18,10C,1281 30,10D,34 39,104,45 17,111,17 24,10C,1265 29,10D,34 26,20,115,-14,-16 0,21,-5,0,0 17,104,45 14,111,17 22,10C,1253 32,10D,34 21,10,7100860 0,D,35 0,A,-3381684 0,B,15129214 0,C,83 39,104,46 23,111,17 14,10C,1253 20,20,82,-25,-18 0,21,-5,0,0 18,10D,34 32,104,46 15,111,17 17,10,7100880 0,D,35 0,A,-3381682 0,B,15129214 0,C,83 40,10C,1250 29,10D,35 30,104,46 21,111,17 2,20,107,-20,-21 0,21,-5,0,0 33,10C,1246 30,10D,35 35,104,46 12,10,7100900 0,D,35 0,A,-3381680 0,B,15129214 0,C,83 38,111,17 18,10C,1242 32,10D,35 21,20,91,-25,-33 0,21,-4,0,0 18,104,46 13,111,17 22,10C,1242 20,10,7100920 0,D,36 0,A,-3381678 0,B,15129214 0,C,83 49,10D,35 30,104,46 18,111,17 24,10C,1246 19,20,114,-2,-21 0,21,-5,0,0 21,10D,35 42,104,46 20,10,7100940 0,D,36 0,A,-3381676 0,B,15129215 0,C,83 38,111,17 19,10C,1261 27,10D,35 30,104,46 3,20,93,-29,-11 0,21,-5,1,2 28,111,17 17,10,7100960 0,D,36 0,A,-3381674 0,B,15129215 0,C,83 51,10C,1273 32,10D,36 31,104,46 17,111,17 24,10C,1277 19,20,104,-22,-19 0,21,-4,0,0 18,10D,36 22,10,7100980 0,D,37 0,A,-3381673 0,B,15129216 0,C,83 55,104,46 20,111,17 14,10C,1285 29,10D,36 32,104,45 11,20,123,-4,-3 0,21,-4,0,0 17,111,17 8,10,7101000 0,D,37 0,A,-3381671 0,B,15129216 0,C,83 71,10C,1292 32,10D,36 31,104,45 20,111,17 21,10C,1253 19,20,109,-9,-21 0,21,-4,0,-2 18,10D,36 32,104,46 18,111,17 23,10C,1246 28,10D,37 30,104,46 18,111,17 23,10C,1246 21,20,90,-27,-11 0,21,-4,0,1 14,10,7101040 0,D,38 0,A,-3381667 0,B,15129217 0,C,83 69,10D,37 40,104,46 18,111,17 21,10C,1246 32,10D,37 21,20,108,-16,-8 0,21,-3,0,2 13,10,7101060 0,D,38 0,A,-3381665 0,B,15129218 0,C,83 70,104,46 15,111,17 26,10C,1246 27,10D,37 29,104,46 2,10,7101080 0,D,38 0,A,-3381663 0,B,15129219 0,C,83 45,20,103,-11,-11 0,21,-3,0,0 18,111,17 47,10C,1250 30,10D,37 31,104,46 17,111,17 12,10,7101100 0,D,38 0,A,-3381661 0,B,15129220 0,C,83 39,10C,1250 19,20,98,-17,-16 0,21,-3,0,0 18,10D,38 34,104,46 15,111,17 27,10C,1253 29,10D,38 34,104,46 12,10,7101120 0,D,38 0,A,-3381660 0,B,15129220 0,C,83 39,111,17 6,20,97,-26,-13 0,21,-2,0,0 18,10C,1250 28,10D,38 33,104,46 19,111,17 20,10C,1246 22,10,7101140 0,D,39 0,A,-3381658 0,B,15129221 0,C,83 38,10D,38 25,20,110,-10,-28 0,21,-3,0,0 19,104,46 24,111,17 23,10C,1246 29,10D,38 30,104,46 2,10,7101160 0,D,39 0,A,-3381656 0,B,15129222 0,C,83 56,111,17 17,20,90,-31,-18 0,21,-3,0,1 17,10C,1242 32,10D,39 29,104,46 21,111,17 19,10C,1242 20,10,7101180 0,D,40 0,A,-3381654 0,B,15129223 0,C,83 38,10D,39 27,20,96,-17,-2 0,21,-2,1,-1 17,104,46 18,111,17 20,10C,1242 30,10D,39 29,104,46 4,10,7101200 0,D,40 0,A,-3381652 0,B,15129224 0,C,83 55,111,17 18,10C,1242 19,20,114,-10,-21 0,21,-1,0,-3 19,10D,39 30,104,46 20,111,17 21,10C,1246 29,10D,39 31,104,46 21,111,16 20,10C,1250 19,20,112,-15,-15 0,21,-1,0,1 19,10D,39 33,104,44 32,111,15 15,10,7101240 0,D,40 0,A,-3381648 0,B,15129226 0,C,83 38,10C,1242 28,10D,40 30,104,38 5,20,116,-16,-8 0,21,-1,0,1 39,111,14 15,10C,1238 30,10D,40 31,104,34 17,10,7101260 0,D,40 0,A,-3381647 0,B,15129227 0,C,83 38,111,14 18,10C,1234 21,20,92,-24,-18 0,21,-1,0,-3 17,10D,40 33,104,31 19,111,13 17,10C,1234 20,10,7101280 0,D,41 0,A,-3381645 0,B,15129228 0,C,83 38,10D,40 31,104,28 19,111,13 6,20,122,-8,-8 0,21,-1,0,0 32,10C,1226 27,10D,40 34,104,26 2,10,7101300 0,D,41 0,A,-3381643 0,B,15129228 0,C,83 59,111,12 24,10C,1234 24,20,108,-3,-17 0,21,-1,0,0 18,10D,40 28,104,22 22,111,12 23,10C,1218 19,10,7101320 0,D,41 0,A,-3381641 0,B,15129229 0,C,83 39,10D,40 34,104,20 14,111,12 3,20,84,-42,-9 0,21,-1,0,1 30,10C,1199 29,10D,40 33,104,20 3,10,7101340 0,D,41 0,A,-3381639 0,B,15129230 0,C,83 52,111,12 22,10C,1222 29,10D,40 29,20,95,-36,-30 0,21,-1,0,0 18,104,17 17,111,12 21,10C,1230 21,10,7101360 0,D,41 0,A,-3381637 0,B,15129231 0,C,83 45,10D,40 34,104,15 20,111,11 19,10C,1222 19,20,92,-31,-7 0,21,-1,0,2 17,10D,40 81,104,14 17,111,11 23,10C,1218 28,10D,40 30,104,13 4,20,101,-32,-17 0,21,-1,-1,2 24,111,11 24,10C,1250 21,10,7101400 0,D,40 0,A,-3381633 0,B,15129233 0,C,83 40,10D,40 33,104,13 19,111,11 20,10C,1234 20,20,90,-30,-12 0,21,-1,0,0 16,10D,40 31,10,7101420 0,D,40 0,A,-3381631 0,B,15129234 0,C,83 50,104,13 19,111,11 18,10C,1234 32,10D,40 32,104,12 3,20,103,-28,-8 0,21,0,1,1 27,111,11 19,10,7101440 0,D,40 0,A,-3381630 0,B,15129235 0,C,83 51,10C,1226 33,10D,40 29,104,13 29,111,12 12,20,90,-39,-8 0,21,-1,0,0 21,10C,1226 28,10D,39 22,10,7101460 0,D,40 0,A,-3381628 0,B,15129236 0,C,83 39,104,14 18,111,12 20,10C,1242 31,10D,39 22,20,103,-18,-3 0,21,0,0,-2 16,104,15 18,111,12 12,10,7101480 0,D,40 0,A,-3381626 0,B,15129237 0,C,83 61,10C,1242 29,10D,39 30,104,16 22,111,12 13,20,91,-30,-7 0,21,0,-2,0 16,10C,1242 29,10D,39 21,10,7101500 0,D,40 0,A,-3381624 0,B,15129238 0,C,83 43,104,16 15,111,13 22,10C,1242 29,10D,39 28,20,111,-14,-7 0,21,-1,0,-2 17,104,20 17,111,13 8,10,7101520 0,D,40 0,A,-3381622 0,B,15129239 0,C,83 70,10C,1269 40,10D,39 35,104,21 14,111,13 2,20,80,-32,-7 0,21,0,0,0 32,10C,1253 21,10,7101540 0,D,39 0,A,-3381620 0,B,15129240 0,C,83 43,10D,39 34,104,22 20,111,13 19,10C,1246 33,20,101,-21,-2 0,21,-1,-2,0 16,10D,39 31,104,22 18,111,13 5,10,7101560 0,D,39 0,A,-3381618 0,B,15129241 0,C,83 64,10C,1242 29,10D,39 28,104,25 12,20,11,-73,-30 0,21,-1,1,1 16,111,14 18,10C,1257 21,10,7101580 0,D,39 0,A,-3381616 0,B,15129242 0,C,83 53,10D,39 30,104,28 18,111,14 24,10C,1250 22,20,102,-11,-13 0,21,-1,0,0 17,10D,40 30,104,30 20,111,15 2,10,7101600 0,D,39 0,A,-3381615 0,B,15129242 0,C,83 61,10C,1257 33,10D,40 32,104,30 9,20,110,-19,-6 0,21,-1,0,0 17,111,15 12,10,7101620 0,D,39 0,A,-3381613 0,B,15129243 0,C,83 66,10C,1242 33,10D,40 34,104,32 14,111,15 24,20,112,-5,-24 0,21,-2,0,0 17,10C,1250 22,10,7101640 0,D,39 0,A,-3381611 0,B,15129244 0,C,83 57,10D,40 31,104,32 20,111,14 21,10C,1250 32,20,105,-20,-18 0,21,-1,0,-2 16,10D,40 23,10,7101660 0,D,39 0,A,-3381609 0,B,15129245 0,C,83 56,104,29 16,111,13 22,10C,1242 28,10D,39 40,20,109,-10,-19 0,21,-2,0,-2 18,104,25 12,10,7101680 0,D,39 0,A,-3381607 0,B,15129246 0,C,83 67,111,13 19,10C,1242 28,10D,39 32,104,22 19,111,12 5,20,109,-15,-20 0,21,-1,0,-3 25,10C,1253 21,10,7101700 0,D,39 0,A,-3381605 0,B,15129247 0,C,83 50,10D,39 34,104,20 14,111,12 20,10C,1234 30,10D,39 21,20,98,-21,-17 0,21,-1,-1,-2 19,104,17 15,111,11 11,10,7101720 0,D,39 0,A,-3381604 0,B,15129248 0,C,83 64,10C,1234 31,10D,39 29,104,15 19,111,11 13,20,101,-21,-17 0,21,-1,-1,1 15,10,7101740 0,D,39 0,A,-3381602 0,B,15129249 0,C,83 68,10C,1234 28,10D,38 31,104,13 22,111,11 28,10C,1234 20,20,97,-27,-20 0,21,-1,-1,0 18,10D,38 34,104,13 18,111,11 21,10C,1230 32,10D,38 32,104,13 23,111,11 18,10C,1222 20,20,106,-32,-18 0,21,-1,-1,-1 13,10,7101780 0,D,39 0,A,-3381598 0,B,15129251 0,C,83 70,10D,38 30,104,12 21,111,11 20,10C,1218 32,10D,38 22,20,117,-9,-9 0,21,0,0,-1 13,10,7101800 0,D,39 0,A,-3381596 0,B,15129252 0,C,83 70,104,12 19,111,11 21,10C,1214 27,10D,38 27,10,7101820 0,D,38 0,A,-3381594 0,B,15129253 0,C,83 39,104,12 6,20,117,-20,-17 0,21,-1,-1,0 21,111,11 31,10C,1214 34,10D,38 32,104,13 15,111,11 21,10C,1218 21,10,7101840 0,D,38 0,A,-3381593 0,B,15129254 0,C,83 38,10D,38 21,20,115,-14,-14 0,21,-1,0,-2 19,104,12 18,111,11 20,10C,1218 29,10D,38 40,104,13 19,111,11 6,10,7101860 0,D,38 0,A,-3381591 0,B,15129254 0,C,83 51,10C,1218 19,20,108,-15,-14 0,21,0,0,-1 19,10D,38 29,104,13 21,111,11 22,10C,1222 21,10,7101880 0,D,38 0,A,-3381589 0,B,15129255 0,C,83 39,10D,37 34,104,13 18,111,11 2,20,80,-30,-20 0,21,0,0,0 30,10C,1226 30,10D,37 33,104,12 4,10,7101900 0,D,37 0,A,-3381587 0,B,15129256 0,C,83 51,111,11 22,10C,1226 29,10D,37 20,20,101,-25,-13 0,21,-1,0,-1 19,104,12 16,111,11 21,10C,1234 25,10,7101920 0,D,37 0,A,-3381586 0,B,15129257 0,C,83 42,10D,37 30,104,12 23,111,11 19,10C,1238 19,20,107,-25,-4 0,21,0,0,0 18,10D,37 32,104,13 12,10,7101940 0,D,36 0,A,-3381584 0,B,15129258 0,C,83 48,111,11 14,10C,1234 33,10D,36 33,104,13 11,20,100,-31,-10 0,21,0,0,1 17,111,11 16,10C,1234 42,10D,36 35,104,12 18,111,11 24,10C,1238 31,10D,36 22,20,73,-24,-16 0,21,-1,-2,0 21,104,12 30,111,11 9,10,7101980 0,D,36 0,A,-3381581 0,B,15129260 0,C,83 48,10C,1230 30,10D,36 30,104,12 18,111,11 14,20,125,-28,-11 0,21,0,0,1 16,10C,1242 27,10D,36 30,104,12 19,111,11 3,10,7102000 0,D,36 0,A,-3381579 0,B,15129261 0,C,83 54,10C,1242 29,10D,36 25,20,110,-5,-33 0,21,-1,-2,0 17,104,12 17,111,11 22,10C,1230 19,10,7102020 0,D,35 0,A,-3381577 0,B,15129261 0,C,83 47,10D,35 34,104,13 19,111,11 20,10C,1269 19,20,105,-23,-6 0,21,-1,0,-1 17,10D,35 31,104,12 17,111,11 6,10,7102040 0,D,35 0,A,-3381576 0,B,15129262 0,C,83 64,10C,1460 31,10D,35 29,104,11 5,20,93,-35,-15 0,21,-1,0,0 24,111,11 22,10,7102060 0,D,35 0,A,-3381574 0,B,15129263 0,C,83 50,10C,1531 29,10D,35 30,104,10 21,111,11 20,10C,1636 19,20,102,-26,-10 0,21,-1,0,0 18,10D,35 22,10,7102080 0,D,34 0,A,-3381572 0,B,15129264 0,C,83 55,104,10 20,111,11 14,10C,1765 32,10D,33 29,104,9 11,20,99,-27,-13 0,21,-1,0,0 17,111,11 8,10,7102100 0,D,33 0,A,-3381571 0,B,15129265 0,C,83 70,10C,1800 29,10D,33 29,104,8 22,111,11 20,10C,1789 36,20,113,-23,-11 0,21,-1,0,1 21,10D,33 34,104,8 17,111,11 20,10C,1769 29,10D,33 32,104,8 18,111,11 23,10C,1757 19,20,100,-29,-9 0,21,-1,0,-1 14,10,7102140 0,D,32 0,A,-3381568 0,B,15129266 0,C,83 69,10D,33 31,104,8 21,111,11 20,10C,1734 25,10,7102160 0,D,32 0,A,-3381566 0,B,15129267 0,C,83 38,10D,31 31,20,107,-21,-15 0,21,0,0,-2 19,104,8 18,111,11 19,10C,1726 28,10D,31 31,104,8 18,10,7102180 0,D,31 0,A,-3381565 0,B,15129268 0,C,83 38,111,11 19,10C,1695 20,20,105,-21,-1 0,21,0,0,1 17,10D,31 34,104,8 18,111,11 21,10C,1691 32,10D,31 21,10,7102200 0,D,31 0,A,-3381563 0,B,15129268 0,C,83 38,104,9 19,111,11 2,20,98,-34,-19 0,21,-1,0,0 30,10C,1667 28,10D,31 28,104,9 22,111,11 16,10,7102220 0,D,30 0,A,-3381562 0,B,15129269 0,C,83 38,10C,1664 32,10D,31 21,20,98,-28,0 0,21,-1,0,1 18,104,9 18,111,11 18,10C,1636 30,10D,29 34,104,9 19,111,11 2,10,7102240 0,D,30 0,A,-3381561 0,B,15129270 0,C,83 52,10C,1625 20,20,101,-37,-8 0,21,-1,0,-1 17,10D,29 33,104,9 19,111,11 23,10C,1597 20,10,7102260 0,D,29 0,A,-3381559 0,B,15129271 0,C,83 58,10D,29 42,20,97,-39,-19 0,21,-1,0,0 19,104,9 13,111,11 23,10C,1554 29,10D,29 21,10,7102280 0,D,29 0,A,-3381558 0,B,15129271 0,C,83 39,104,9 14,111,11 23,10C,1519 19,20,87,-37,-8 0,21,-1,-1,0 19,10D,29 27,104,10 24,111,11 13,10,7102300 0,D,28 0,A,-3381557 0,B,15129272 0,C,83 40,10C,1492 32,10D,27 34,104,10 11,20,104,-30,-5 0,21,-1,0,1 17,111,11 18,10C,1449 30,10D,27 30,104,10 23,111,11 2,10,7102320 0,D,28 0,A,-3381555 0,B,15129273 0,C,83 55,10C,1425 25,20,104,-32,-13 0,21,-1,0,0 17,10D,27 32,104,10 17,111,11 18,10,7102340 0,D,26 0,A,-3381554 0,B,15129273 0,C,83 39,10C,1398 31,10D,27 34,104,11 16,20,100,-20,-19 0,21,-1,0,0 17,111,11 16,10C,1363 30,10D,27 32,104,11 17,111,11 2,10,7102360 0,D,26 0,A,-3381553 0,B,15129274 0,C,83 55,10C,1320 34,20,97,-32,-4 0,21,0,0,0 18,10D,25 30,104,11 17,111,11 13,10,7102380 0,D,24 0,A,-3381552 0,B,15129274 0,C,83 44,10C,1292 29,10D,25 30,104,12 17,111,11 2,20,97,-40,-3 0,21,0,-1,-1 30,10C,1281 29,10D,25 31,104,12 19,111,11 2,10,7102400 0,D,24 0,A,-3381551 0,B,15129275 0,C,83 55,10C,1207 36,20,93,-36,-25 0,21,0,-1,-1 19,10D,25 35,104,13 19,111,12 2,10,7102420 0,D,23 0,A,-3381550 0,B,15129275 0,C,83 60,10C,1054 28,10D,25 29,104,17 12,20,96,-29,-12 0,21,-1,0,0 18,111,11 16,10C,1027 31,10D,22 23,10,7102440 0,D,22 0,A,-3381549 0,B,15129276 0,C,83 38,104,17 19,111,11 18,10C,1003 29,10D,22 20,20,103,-24,-15 0,21,0,0,0 18,104,17 17,111,11 22,10C,984 19,10,7102460 0,D,22 0,A,-3381547 0,B,15129276 0,C,83 46,10D,22 34,104,18 30,111,12 14,10C,941 20,20,105,-22,-6 0,21,0,-1,0 15,10D,22 35,104,20 21,111,11 2,10,7102480 0,D,22 0,A,-3381546 0,B,15129277 0,C,83 61,10C,929 27,10D,22 29,104,20 12,20,107,-43,-5 0,21,0,1,-1 17,111,11 18,10C,917 21,10,7102500 0,D,21 0,A,-3381545 0,B,15129277 0,C,83 52,10D,22 31,104,20 21,111,11 21,10C,917 22,20,77,-25,-2 0,21,0,0,-4 15,10D,20 31,104,20 20,111,11 3,10,7102520 0,D,21 0,A,-3381544 0,B,15129278 0,C,83 61,10C,886 32,10D,20 32,104,20 8,20,57,-43,-4 0,21,0,-1,0 16,111,11 16,10,7102540 0,D,20 0,A,-3381543 0,B,15129278 0,C,83 63,10C,871 28,10D,20 30,104,24 30,111,14 20,10C,843 18,20,112,-3,-19 0,21,0,1,8 18,10D,20 35,104,29 19,111,14 19,10C,914 32,10D,20 38,104,34 21,111,15 18,20,106,-32,-19 0,21,-1,-1,-1 15,10,7102580 0,D,21 0,A,-3381541 0,B,15129279 0,C,83 69,10C,1011 28,10D,20 30,104,36 18,111,16 23,10C,1363 19,20,95,-17,-23 0,21,-1,0,-5 19,10D,20 31,104,37 21,111,17 21,10C,1441 28,10D,20 30,104,40 18,111,18 23,10C,1527 19,20,117,-11,-3 0,21,-1,1,-1 20,10D,20 30,104,45 21,111,18 21,10C,1578 28,10D,20 29,104,46 19,111,18 25,10C,1625 19,20,97,-7,-3 0,21,-1,0,2 19,10,7102640 0,D,19 0,A,-3381539 0,B,15129280 0,C,83 65,10D,20 33,104,47 19,111,18 23,10C,1664 28,10D,20 21,20,98,-19,-3 0,21,-1,0,0 14,10,7102660 0,D,20 0,A,-3381538 0,B,15129281 0,C,83 69,104,47 17,111,18 29,10C,1667 30,10D,20 31,104,47 13,20,101,-12,-7 0,21,-1,1,0 14,10,7102680 0,D,20 0,A,-3381537 0,B,15129281 0,C,83 69,111,18 19,10C,1414 27,10D,20 32,104,52 17,111,18 3,10,7102700 0,D,21 0,A,-3381536 0,B,15129282 0,C,83 44,20,99,-14,-35 0,21,-2,0,0 18,10C,1304 28,10D,20 30,104,55 18,111,18 23,10C,1328 44,10D,20 33,104,57 6,20,103,-11,-17 0,21,-1,0,-1 30,111,19 14,10C,1292 33,10D,21 32,104,58 15,111,19 25,10C,1300 21,10,7102740 0,D,22 0,A,-3381534 0,B,15129283 0,C,83 38,10D,21 21,20,105,-9,-9 0,21,-1,0,0 18,104,58 18,111,18 20,10C,1292 29,10D,21 29,104,58 12,10,7102760 0,D,23 0,A,-3381533 0,B,15129283 0,C,83 39,111,19 14,10C,1316 21,20,112,-16,-10 0,21,-1,0,0 17,10D,21 34,104,60 24,111,19 21,10C,1339 29,10D,21 21,10,7102780 0,D,23 0,A,-3381531 0,B,15129284 0,C,83 39,104,60 15,111,19 2,20,113,-13,-3 0,21,-1,0,0 33,10C,1367 29,10D,23 31,104,60 21,111,19 10,10,7102800 0,D,24 0,A,-3381530 0,B,15129285 0,C,83 39,10C,1378 28,10D,23 22,20,109,-16,-13 0,21,-1,0,0 17,104,60 19,111,19 18,10C,1410 30,10D,23 26,10,7102820 0,D,25 0,A,-3381529 0,B,15129285 0,C,83 39,104,60 15,111,20 22,10C,1425 20,20,116,0,-25 0,21,-2,0,0 18,10D,23 29,104,60 21,111,20 21,10C,1453 29,10D,23 31,104,60 17,111,20 24,10C,1464 19,20,97,-18,-13 0,21,-1,0,0 19,10D,23 29,104,60 21,111,20 23,10C,1480 20,10,7102860 0,D,26 0,A,-3381527 0,B,15129286 0,C,83 42,10D,23 46,104,60 8,20,102,-9,-17 0,21,-1,0,-1 19,111,20 29,10C,1515 27,10D,25 24,10,7102880 0,D,26 0,A,-3381525 0,B,15129287 0,C,83 38,104,60 18,111,20 23,10C,1539 25,20,93,-21,-11 0,21,-1,0,2 17,10D,25 32,104,58 20,111,20 17,10,7102900 0,D,27 0,A,-3381524 0,B,15129288 0,C,83 39,10C,1558 28,10D,25 29,104,58 19,111,20 2,20,96,-16,-6 0,21,-1,0,0 30,10C,1578 29,10D,25 31,104,60 18,111,20 4,10,7102920 0,D,27 0,A,-3381523 0,B,15129288 0,C,83 54,10C,1605 28,10D,25 22,20,91,-23,-19 0,21,-1,0,-1 17,104,57 21,111,20 20,10C,1628 22,10,7102940 0,D,28 0,A,-3381522 0,B,15129289 0,C,83 42,10D,27 29,104,57 22,111,20 20,10C,1644 20,20,90,-17,-15 0,21,-1,0,0 17,10D,27 33,104,56 2,10,7102960 0,D,29 0,A,-3381520 0,B,15129290 0,C,83 66,111,20 21,10C,1667 32,10D,27 30,20,113,-8,-5 0,21,0,0,-2 16,104,55 27,111,20 8,10,7102980 0,D,30 0,A,-3381519 0,B,15129290 0,C,83 56,10C,1691 33,10D,27 34,104,55 14,111,20 12,20,98,-18,-25 0,21,-1,0,1 17,10C,1707 30,10D,27 23,10,7103000 0,D,30 0,A,-3381517 0,B,15129291 0,C,83 40,104,55 35,111,20 20,10C,1734 28,10D,29 21,20,98,-18,-12 0,21,0,0,2 17,104,53 18,111,20 2,10,7103020 0,D,31 0,A,-3381516 0,B,15129292 0,C,83 81,10C,1750 32,10D,29 34,104,53 14,111,20 2,20,104,-18,-17 0,21,0,0,0 28,10C,1773 21,10,7103040 0,D,31 0,A,-3381514 0,B,15129293 0,C,83 48,10D,29 30,104,52 19,111,20 24,10C,1792 31,10D,29 20,20,102,-19,-7 0,21,-1,0,0 19,104,52 19,111,20 7,10,7103060 0,D,31 0,A,-3381513 0,B,15129293 0,C,83 64,10C,1812 27,10D,29 30,104,51 23,111,20 18,20,117,4,-14 0,21,0,0,0 18,10C,1832 33,10D,31 34,104,50 18,111,20 24,10C,1847 28,10D,31 31,104,48 14,20,108,0,-19 0,21,0,-1,0 14,10,7103100 0,D,33 0,A,-3381510 0,B,15129295 0,C,83 69,111,17 19,10C,1843 29,10D,31 28,104,33 22,111,15 21,10C,1863 20,20,97,-28,-15 0,21,-1,0,0 14,10,7103120 0,D,33 0,A,-3381508 0,B,15129296 0,C,83 70,10D,31 30,104,26 17,111,15 24,10C,1859 28,10D,31 22,20,109,-14,-6 0,21,0,0,0 13,10,7103140 0,D,33 0,A,-3381507 0,B,15129296 0,C,83 70,104,24 14,111,14 19,10C,1847 30,10D,32 30,104,20 5,10,7103160 0,D,33 0,A,-3381505 0,B,15129297 0,C,83 44,20,103,-19,-14 0,21,-1,0,0 17,111,14 31,10C,1839 34,10D,32 30,104,17 21,111,13 26,10,7103180 0,D,33 0,A,-3381504 0,B,15129298 0,C,83 38,10C,1839 19,20,104,-17,0 0,21,0,0,0 18,10D,32 34,104,16 19,111,13 22,10C,1832 30,10D,32 34,104,14 19,111,12 2,10,7103200 0,D,33 0,A,-3381502 0,B,15129299 0,C,83 44,20,96,-19,-8 0,21,0,0,0 18,10C,1812 32,10D,32 32,104,13 20,111,12 17,10C,1808 19,10,7103220 0,D,33 0,A,-3381500 0,B,15129300 0,C,83 39,10D,32 27,20,103,-30,-17 0,21,0,0,0 17,104,11 19,111,12 18,10C,1800 37,10D,32 35,104,10 19,111,12 2,10,7103240 0,D,33 0,A,-3381499 0,B,15129300 0,C,83 52,10C,1785 19,20,104,-16,-13 0,21,-1,0,0 19,10D,32 32,104,10 19,111,11 20,10C,1769 22,10,7103260 0,D,32 0,A,-3381497 0,B,15129301 0,C,83 38,10D,32 29,104,9 23,111,11 2,20,97,-35,-16 0,21,-1,0,0 27,10C,1750 29,10D,32 30,104,9 4,10,7103280 0,D,32 0,A,-3381496 0,B,15129302 0,C,83 64,111,11 18,10C,1738 28,10D,31 21,20,112,-17,-10 0,21,-1,0,0 18,104,8 17,111,11 19,10C,1718 30,10D,31 31,104,8 20,111,11 21,10C,1707 28,10D,31 37,20,94,-26,-17 0,21,-1,0,0 20,104,8 13,111,11 18,10,7103320 0,D,31 0,A,-3381493 0,B,15129303 0,C,83 57,10C,1703 33,10D,31 33,104,8 19,111,11 8,20,97,-33,-15 0,21,-1,0,0 16,10C,1683 32,10D,31 22,10,7103340 0,D,31 0,A,-3381491 0,B,15129304 0,C,83 40,104,8 18,111,11 19,10C,1671 32,10D,31 22,20,100,-30,-18 0,21,-1,0,0 16,104,9 17,111,11 17,10,7103360 0,D,30 0,A,-3381490 0,B,15129305 0,C,83 57,10C,1656 29,10D,30 30,104,9 22,111,11 12,20,104,-32,-13 0,21,-1,0,0 17,10C,1640 28,10D,30 22,10,7103380 0,D,30 0,A,-3381489 0,B,15129305 0,C,83 43,104,9 25,111,11 21,10C,1625 32,10D,30 21,20,100,-28,-14 0,21,-1,-1,0 16,104,9 19,111,11 7,10,7103400 0,D,29 0,A,-3381487 0,B,15129306 0,C,83 66,10C,1609 28,10D,30 30,104,9 22,111,11 12,20,92,-33,-18 0,21,-1,0,0 16,10C,1589 30,10D,30 31,104,9 20,111,11 21,10C,1574 28,10D,29 30,104,10 22,111,11 2,20,100,-29,-14 0,21,-1,-1,0 28,10C,1566 22,10,7103440 0,D,29 0,A,-3381485 0,B,15129307 0,C,83 48,10D,29 34,104,10 14,111,11 20,10C,1550 30,10D,29 22,20,97,-24,-9 0,21,0,0,0 17,104,10 24,10,7103460 0,D,28 0,A,-3381483 0,B,15129308 0,C,83 54,111,11 18,10C,1527 29,10D,29 33,104,10 17,111,11 11,20,100,-31,-10 0,21,0,0,0 18,10C,1515 20,10,7103480 0,D,28 0,A,-3381482 0,B,15129309 0,C,83 58,10D,29 39,104,10 21,111,11 20,10C,1500 26,20,102,-26,-11 0,21,0,0,-1 19,10D,29 33,104,10 16,111,11 19,10C,1496 29,10D,27 34,104,10 17,111,11 20,10C,1480 19,20,107,-28,-7 0,21,0,0,0 19,10D,27 34,104,10 19,111,11 19,10C,1464 32,10D,27 33,104,10 22,111,11 21,10C,1453 19,20,93,-32,-13 0,21,-1,0,0 16,10,7103540 0,D,26 0,A,-3381478 0,B,15129311 0,C,83 67,10D,27 31,104,10 18,111,11 28,10C,1429 28,10D,27 21,20,95,-25,-8 0,21,-1,0,0 13,10,7103560 0,D,26 0,A,-3381477 0,B,15129311 0,C,83 70,104,11 16,111,11 21,10C,1406 30,10D,25 26,10,7103580 0,D,26 0,A,-3381476 0,B,15129312 0,C,83 39,104,11 6,20,95,-25,-20 0,21,-1,0,0 19,111,11 14,10C,1390 28,10D,25 43,104,11 17,111,11 21,10C,1375 29,10D,25 31,104,11 2,20,104,-24,-15 0,21,-1,0,0 30,111,11 19,10C,1359 29,10D,25 32,104,11 18,111,11 22,10C,1347 21,10,7103620 0,D,25 0,A,-3381473 0,B,15129313 0,C,83 42,10D,25 43,20,101,-21,-14 0,21,-1,0,0 20,104,12 18,111,11 18,10C,1332 30,10D,25 24,10,7103640 0,D,24 0,A,-3381472 0,B,15129313 0,C,83 40,104,11 17,111,11 20,10C,1316 20,20,92,-30,-11 0,21,-1,0,-1 18,10D,24 32,104,11 20,111,11 21,10C,1265 21,10,7103660 0,D,24 0,A,-3381471 0,B,15129314 0,C,83 37,10D,24 30,104,12 20,111,12 2,20,95,-28,-25 0,21,-1,0,0 30,10C,1175 30,10D,24 30,104,14 2,10,7103680 0,D,23 0,A,-3381470 0,B,15129315 0,C,83 56,111,11 20,10C,1125 31,10D,24 31,20,88,-34,-8 0,21,0,0,0 22,104,15 16,111,11 22,10C,1093 21,10,7103700 0,D,23 0,A,-3381469 0,B,15129315 0,C,83 41,10D,24 30,104,16 21,111,12 21,10C,1035 19,20,116,-59,-4 0,21,-1,0,0 16,10D,23 34,104,17 2,10,7103720 0,D,23 0,A,-3381468 0,B,15129316 0,C,83 66,111,12 21,10C,992 32,10D,23 29,104,18 2,20,106,-16,-19 0,21,-1,-1,-6 28,111,12 19,10,7103740 0,D,23 0,A,-3381467 0,B,15129316 0,C,83 50,10C,964 32,10D,23 34,104,20 14,111,11 23,20,86,-9,7 0,21,0,0,1 17,10C,937 32,10D,23 21,10,7103760 0,D,22 0,A,-3381466 0,B,15129317 0,C,83 44,104,20 28,111,11 21,10C,910 28,10D,23 20,20,143,-36,-37 0,21,0,-2,9 17,104,20 14,111,11 6,10,7103780 0,D,22 0,A,-3381464 0,B,15129317 0,C,83 85,10C,871 28,10D,21 42,104,23 9,20,118,-32,-20 0,21,-1,0,-1 16,111,14 19,10C,878 20,10,7103800 0,D,22 0,A,-3381463 0,B,15129318 0,C,83 54,10D,21 32,104,32 20,111,15 19,10C,972 23,20,97,-11,-12 0,21,-1,0,-7 16,10D,21 31,104,35 18,111,16 2,10,7103820 0,D,22 0,A,-3381462 0,B,15129318 0,C,83 66,10C,1261 29,10D,21 28,104,36 13,20,112,-14,-11 0,21,-1,-1,0 16,111,17 16,10,7103840 0,D,21 0,A,-3381461 0,B,15129319 0,C,83 63,10C,1410 28,10D,21 30,104,42 20,111,19 22,10C,1460 20,20,97,-21,-19 0,21,0,0,1 18,10D,21 31,104,49 17,111,20 25,10C,1515 27,10D,21 31,104,54 19,111,20 22,10C,1636 20,20,95,-23,-7 0,21,-1,0,0 18,10D,21 31,104,57 17,111,20 21,10C,1746 32,10D,21 38,104,56 20,111,20 20,10C,1804 20,20,101,-14,-18 0,21,-1,-1,0 14,10,7103900 0,D,21 0,A,-3381458 0,B,15129320 0,C,83 69,10D,21 33,104,56 19,111,20 19,10C,1730 32,10D,21 22,20,97,-1,-12 0,21,-1,0,0 13,10,7103920 0,D,22 0,A,-3381457 0,B,15129321 0,C,83 69,104,56 31,111,20 20,10C,1367 29,10D,22 31,104,65 10,20,78,-31,-20 0,21,-1,0,0 15,10,7103940 0,D,22 0,A,-3381456 0,B,15129321 0,C,83 68,111,20 16,10C,1398 30,10D,22 28,104,66 18,10,7103960 0,D,24 0,A,-3381455 0,B,15129322 0,C,83 38,111,20 7,20,78,-23,-5 0,21,-1,0,0 18,10C,1394 32,10D,22 29,104,66 23,111,20 16,10C,1433 31,10D,22 22,10,7103980 0,D,24 0,A,-3381454 0,B,15129322 0,C,83 38,104,65 8,20,112,-9,-8 0,21,-1,0,0 17,111,20 14,10C,1441 32,10D,22 39,104,64 18,111,20 21,10C,1476 19,10,7104000 0,D,25 0,A,-3381453 0,B,15129323 0,C,83 39,10D,24 22,20,115,-4,-14 0,21,0,0,-1 17,104,64 19,111,20 22,10C,1488 26,10D,24 29,104,64 3,10,7104020 0,D,26 0,A,-3381452 0,B,15129324 0,C,83 56,111,20 18,10C,1519 20,20,107,-10,-20 0,21,-1,0,-1 18,10D,24 33,104,63 17,111,20 21,10C,1542 32,10D,24 35,104,63 19,111,20 19,10C,1558 20,20,109,-7,-12 0,21,-1,0,-1 18,10D,24 32,104,61 15,111,20 26,10C,1582 20,10,7104060 0,D,27 0,A,-3381449 0,B,15129325 0,C,83 38,10D,24 34,104,61 18,111,20 2,20,85,-17,-13 0,21,-1,0,0 34,10C,1613 42,10D,27 26,10,7104080 0,D,28 0,A,-3381448 0,B,15129326 0,C,83 39,104,60 18,111,20 20,10C,1628 24,20,111,-3,-12 0,21,0,0,0 18,10D,27 41,104,60 19,111,20 10,10,7104100 0,D,29 0,A,-3381446 0,B,15129326 0,C,83 38,10C,1644 29,10D,27 29,104,60 18,111,20 2,20,109,-4,-20 0,21,-1,0,-1 30,10C,1675 29,10D,27 28,10,7104120 0,D,29 0,A,-3381445 0,B,15129327 0,C,83 38,104,60 15,111,20 19,10C,1683 32,10D,27 22,20,107,-3,-15 0,21,-1,0,0 17,104,60 14,111,20 21,10C,1707 30,10D,29 31,104,58 18,111,20 23,10C,1718 28,10D,29 21,20,103,-14,-26 0,21,-1,0,0 17,104,58 17,111,20 19,10C,1738 22,10,7104160 0,D,31 0,A,-3381442 0,B,15129328 0,C,83 48,10D,29 29,104,57 20,111,20 23,10C,1757 20,20,119,-7,-17 0,21,-1,0,0 16,10D,29 33,104,56 9,10,7104180 0,D,31 0,A,-3381441 0,B,15129329 0,C,83 51,111,20 19,10C,1785 31,10D,29 34,104,55 18,20,74,-31,-12 0,21,-1,0,0 16,111,20 16,10C,1800 23,10,7104200 0,D,32 0,A,-3381439 0,B,15129330 0,C,83 52,10D,29 31,104,55 22,111,20 16,10C,1832 27,20,129,2,-16 0,21,0,0,1 16,10D,31 47,104,54 21,111,20 21,10C,1847 29,10D,31 29,104,54 19,111,20 19,20,102,-14,-7 0,21,0,0,0 17,10C,1875 24,10,7104240 0,D,33 0,A,-3381436 0,B,15129332 0,C,83 54,10D,31 34,104,53 19,111,20 19,10C,1902 31,10D,31 20,20,113,-19,-10 0,21,-1,0,0 19,104,52 7,10,7104260 0,D,34 0,A,-3381434 0,B,15129332 0,C,83 71,111,20 19,10C,1925 28,10D,31 29,104,49 22,111,16 9,20,106,-17,-11 0,21,0,0,0 18,10C,1929 21,10,7104280 0,D,34 0,A,-3381433 0,B,15129333 0,C,83 56,10D,33 31,104,33 18,111,15 20,10C,1941 35,10D,33 21,20,108,-15,-19 0,21,0,0,0 23,104,27 18,111,15 20,10C,1941 28,10D,33 30,104,24 18,111,15 23,10C,1929 31,10D,33 21,20,99,-20,-5 0,21,0,-1,-1 14,10,7104320 0,D,35 0,A,-3381430 0,B,15129335 0,C,83 69,104,22 19,111,14 15,10C,1914 30,10D,33 31,104,20 10,10,7104340 0,D,35 0,A,-3381428 0,B,15129336 0,C,83 38,111,14 8,20,99,-16,-14 0,21,-1,0,-2 17,10C,1933 32,10D,34 29,104,16 19,111,13 28,10C,1910 27,10D,34 22,10,7104360 0,D,35 0,A,-3381426 0,B,15129336 0,C,83 39,104,16 6,20,90,-29,-8 0,21,0,0,0 17,111,13 19,10C,1906 28,10D,34 48,104,14 22,111,12 2,10,7104380 0,D,35 0,A,-3381425 0,B,15129337 0,C,83 52,10C,1890 20,20,106,-24,-12 0,21,0,0,-1 17,10D,34 34,104,12 18,111,12 26,10C,1890 30,10D,34 23,10,7104400 0,D,34 0,A,-3381423 0,B,15129338 0,C,83 38,104,11 14,111,12 2,20,103,-33,-3 0,21,0,0,1 31,10C,1871 28,10D,34 28,104,10 22,111,11 18,10C,1871 20,10,7104420 0,D,34 0,A,-3381421 0,B,15129339 0,C,83 39,10D,34 21,20,97,-22,-19 0,21,0,0,-1 18,104,9 18,111,11 20,10C,1839 29,10D,34 30,104,8 3,10,7104440 0,D,34 0,A,-3381420 0,B,15129340 0,C,83 51,111,11 24,10C,1835 19,20,103,-30,-11 0,21,-1,0,1 19,10D,34 28,104,8 23,111,11 19,10C,1816 30,10D,34 31,104,8 20,111,11 21,10C,1812 19,20,94,-27,-19 0,21,-1,-1,0 19,10D,34 28,104,8 23,111,11 21,10C,1804 21,10,7104480 0,D,33 0,A,-3381417 0,B,15129341 0,C,83 38,10D,34 33,104,8 15,111,11 2,20,95,-28,-15 0,21,-2,0,1 31,10C,1785 25,10D,33 40,10,7104500 0,D,33 0,A,-3381415 0,B,15129342 0,C,83 38,104,8 19,111,11 23,10C,1769 25,20,109,-19,-22 0,21,-1,0,-1 17,10D,33 30,104,8 20,111,11 22,10C,1753 21,10,7104520 0,D,32 0,A,-3381414 0,B,15129343 0,C,83 42,10D,33 46,104,8 8,20,110,-19,-20 0,21,-2,0,0 18,111,11 17,10C,1738 30,10D,33 31,104,8 18,111,11 4,10,7104540 0,D,32 0,A,-3381412 0,B,15129343 0,C,83 53,10C,1714 29,10D,33 22,20,97,-33,-10 0,21,-1,-1,0 17,104,8 16,111,11 22,10C,1710 21,10,7104560 0,D,31 0,A,-3381411 0,B,15129344 0,C,83 45,10D,31 31,104,8 23,111,11 19,10C,1687 20,20,116,-16,-17 0,21,-1,-1,0 16,10D,31 34,104,8 7,10,7104580 0,D,31 0,A,-3381409 0,B,15129345 0,C,83 52,111,11 14,10C,1671 29,10D,31 37,104,8 11,20,91,-32,-8 0,21,-1,-1,-1 17,111,11 26,10C,1656 22,10,7104600 0,D,30 0,A,-3381408 0,B,15129346 0,C,83 45,10D,31 34,104,9 14,111,11 19,10C,1640 25,20,115,-26,-9 0,21,0,-1,0 15,10D,31 30,104,9 5,10,7104620 0,D,30 0,A,-3381406 0,B,15129346 0,C,83 68,111,11 17,10C,1628 33,10D,29 33,104,9 2,20,97,-31,-16 0,21,-1,0,-2 27,111,11 19,10,7104640 0,D,29 0,A,-3381405 0,B,15129347 0,C,83 51,10C,1617 32,10D,29 29,104,9 18,111,11 23,10C,1593 20,20,111,-19,-11 0,21,-1,-1,1 17,10D,29 23,10,7104660 0,D,29 0,A,-3381404 0,B,15129348 0,C,83 56,104,9 26,111,11 22,10C,1566 28,10D,29 29,20,92,-23,-18 0,21,-1,0,0 16,104,9 11,10,7104680 0,D,29 0,A,-3381402 0,B,15129348 0,C,83 68,111,11 19,10C,1546 28,10D,29 30,104,10 21,111,11 20,20,103,-25,-13 0,21,-1,0,0 18,10C,1531 33,10D,27 34,104,10 14,111,11 19,10C,1515 32,10D,27 29,104,10 21,111,11 2,20,97,-25,-7 0,21,0,1,2 31,10C,1503 30,10D,27 29,104,10 22,111,11 20,10C,1484 28,10D,27 32,104,10 8,20,91,-32,-9 0,21,-1,2,-3 15,10,7104740 0,D,27 0,A,-3381398 0,B,15129350 0,C,83 72,111,11 15,10C,1464 29,10D,27 30,104,10 20,111,11 22,10C,1453 19,20,93,-34,-21 0,21,-1,0,2 15,10,7104760 0,D,27 0,A,-3381397 0,B,15129351 0,C,83 69,10D,27 30,104,11 21,111,11 21,10C,1437 28,10D,26 21,20,99,-30,-16 0,21,-1,0,-1 14,10,7104780 0,D,26 0,A,-3381396 0,B,15129351 0,C,83 69,104,11 15,111,11 23,10C,1417 26,10D,26 33,104,11 3,10,7104800 0,D,26 0,A,-3381395 0,B,15129352 0,C,83 54,20,99,-32,-13 0,21,-1,0,-1 17,111,11 14,10C,1402 33,10D,26 33,104,11 14,111,11 28,10C,1390 21,10,7104820 0,D,25 0,A,-3381394 0,B,15129353 0,C,83 43,10D,26 34,20,96,-32,-4 0,21,-1,1,0 20,104,11 14,111,11 23,10C,1375 26,10D,26 31,104,11 2,10,7104840 0,D,25 0,A,-3381392 0,B,15129353 0,C,83 55,111,11 21,10C,1359 19,20,93,-31,-9 0,21,-1,0,1 18,10D,25 33,104,11 19,111,11 20,10C,1347 22,10,7104860 0,D,24 0,A,-3381391 0,B,15129354 0,C,83 39,10D,25 33,104,12 16,20,100,-34,-10 0,21,0,0,0 17,111,11 19,10C,1332 26,10D,25 32,104,11 9,10,7104880 0,D,24 0,A,-3381390 0,B,15129354 0,C,83 39,111,11 19,10C,1320 27,10D,25 22,20,115,-17,-4 0,21,0,0,0 21,104,11 18,111,11 18,10C,1300 32,10D,25 30,10,7104900 0,D,24 0,A,-3381389 0,B,15129355 0,C,83 39,104,12 15,111,12 22,10C,1171 20,20,106,-26,-12 0,21,-1,0,1 17,10D,23 32,104,14 17,111,12 9,10,7104920 0,D,23 0,A,-3381388 0,B,15129356 0,C,83 60,10C,1097 29,10D,23 29,104,17 12,20,104,-28,-5 0,21,0,0,0 17,111,12 16,10C,1054 31,10D,23 23,10,7104940 0,D,23 0,A,-3381387 0,B,15129356 0,C,83 38,104,17 18,111,11 20,10C,1031 29,10D,23 20,20,107,-18,-18 0,21,0,0,1 18,104,16 17,111,11 22,10C,996 19,10,7104960 0,D,23 0,A,-3381386 0,B,15129357 0,C,83 46,10D,23 78,104,20 9,20,100,-19,-23 0,21,-1,0,0 16,111,11 17,10C,945 29,10D,23 31,104,20 16,111,11 20,10C,937 32,10D,22 30,104,20 11,20,148,7,-10 0,21,-1,1,-3 17,111,11 16,10C,925 29,10D,22 39,104,20 22,111,11 20,10C,914 32,10D,22 26,20,118,-19,-25 0,21,0,1,-8 16,104,20 18,111,11 12,10,7105020 0,D,22 0,A,-3381383 0,B,15129358 0,C,83 62,10C,906 28,10D,22 30,104,20 21,111,11 13,20,44,-48,-12 0,21,-1,1,2 16,10C,894 32,10D,22 21,10,7105040 0,D,22 0,A,-3381382 0,B,15129359 0,C,83 44,104,20 19,111,11 14,10C,886 32,10D,22 25,20,141,-33,10 0,21,-1,0,19 16,104,20 18,111,11 8,10,7105060 0,D,22 0,A,-3381381 0,B,15129359 0,C,83 66,10C,867 32,10D,21 33,104,20 19,111,11 9,20,98,-65,-24 0,21,-1,0,-2 16,10C,835 25,10,7105080 0,D,22 0,A,-3381379 0,B,15129360 0,C,83 54,10D,21 31,104,21 22,111,11 20,10C,847 30,10D,21 21,20,68,-17,-23 0,21,-1,0,-9 18,104,20 8,10,7105100 0,D,22 0,A,-3381378 0,B,15129360 0,C,83 69,111,11 29,10C,839 28,10D,21 32,104,23 16,20,114,-9,-4 0,21,0,0,0 17,111,14 7,10,7105120 0,D,21 0,A,-3381377 0,B,15129361 0,C,83 71,10C,855 44,10D,20 35,104,31 17,111,15 11,20,86,-24,-11 0,21,-1,0,2 18,10C,1027 20,10,7105140 0,D,21 0,A,-3381376 0,B,15129361 0,C,83 57,10D,20 30,104,35 22,111,16 19,10C,1234 30,10D,20 22,20,98,-30,-13 0,21,0,0,0 18,104,36 15,111,16 4,10,7105160 0,D,21 0,A,-3381375 0,B,15129362 0,C,83 80,10C,1433 32,10D,20 35,104,40 18,111,18 2,20,102,-13,-9 0,21,0,0,0 14,10,7105180 0,D,21 0,A,-3381374 0,B,15129362 0,C,83 80,10C,1546 28,10D,20 33,104,46 18,111,18 21,10C,1625 24,20,95,-19,-19 0,21,-1,0,-1 14,10,7105200 0,D,22 0,A,-3381373 0,B,15129363 0,C,83 69,10D,21 40,104,46 21,111,18 20,10C,1675 30,10D,21 21,20,87,-25,-20 0,21,-1,0,0 19,104,45 14,111,18 23,10C,1683 29,10D,21 28,104,45 23,111,18 20,10C,1683 22,10,7105240 0,D,22 0,A,-3381371 0,B,15129364 0,C,83 39,10D,21 21,20,104,-15,-11 0,21,-1,0,0 18,104,45 18,111,18 19,10C,1683 31,10D,21 32,104,46 9,10,7105260 0,D,23 0,A,-3381370 0,B,15129364 0,C,83 39,111,18 14,10C,1695 21,20,100,-18,-8 0,21,-1,0,-1 17,10D,23 34,104,45 31,111,18 17,10C,1699 29,10,7105280 0,D,24 0,A,-3381369 0,B,15129365 0,C,83 39,10D,23 34,104,45 6,20,93,-21,-14 0,21,-1,0,0 18,111,18 14,10C,1707 32,10D,23 28,104,46 21,111,18 12,10,7105300 0,D,24 0,A,-3381368 0,B,15129365 0,C,83 39,10C,1718 27,10D,23 22,20,89,-17,-18 0,21,-1,0,0 18,104,46 28,111,18 17,10C,1734 30,10D,23 23,10,7105320 0,D,25 0,A,-3381367 0,B,15129366 0,C,83 40,104,45 18,111,19 19,10C,1746 20,20,109,-10,-1 0,21,-1,0,0 18,10D,23 32,104,47 19,111,19 23,10C,1765 20,10,7105340 0,D,25 0,A,-3381366 0,B,15129367 0,C,83 41,10D,25 34,104,46 16,20,115,-5,-10 0,21,-2,0,-2 18,111,19 14,10C,1792 30,10D,25 30,104,46 2,10,7105360 0,D,26 0,A,-3381364 0,B,15129367 0,C,83 52,111,19 23,10C,1804 29,10D,25 22,20,105,-16,-8 0,21,-1,-2,3 17,104,45 16,111,19 20,10C,1808 30,10D,25 30,104,46 18,111,19 23,10C,1812 29,10D,25 20,20,91,-27,-14 0,21,-1,0,0 18,104,47 17,111,19 20,10C,1792 22,10,7105400 0,D,27 0,A,-3381362 0,B,15129369 0,C,83 46,10D,25 30,104,48 19,111,19 30,20,101,-13,-4 0,21,-1,-1,0 16,10C,1781 30,10D,27 31,104,49 36,111,19 20,10C,1765 28,10D,27 30,104,50 11,20,109,-4,-11 0,21,-1,0,0 16,111,19 21,10C,1750 28,10D,27 22,10,7105440 0,D,28 0,A,-3381359 0,B,15129370 0,C,83 39,104,50 14,111,19 28,10C,1726 32,10D,27 20,20,93,-24,-12 0,21,-1,-1,0 17,104,50 18,111,19 11,10,7105460 0,D,29 0,A,-3381358 0,B,15129371 0,C,83 63,10C,1710 31,10D,27 34,104,50 23,111,19 6,20,110,-11,-25 0,21,-1,0,1 16,10C,1695 26,10,7105480 0,D,29 0,A,-3381356 0,B,15129371 0,C,83 53,10D,29 31,104,47 21,111,16 21,10C,1675 26,10D,29 22,20,111,-27,-20 0,21,0,0,-1 21,104,40 9,10,7105500 0,D,30 0,A,-3381355 0,B,15129372 0,C,83 65,111,15 15,10C,1566 29,10D,29 42,104,31 18,111,14 3,20,42,-60,-28 0,21,-1,0,-4 26,10,7105520 0,D,31 0,A,-3381354 0,B,15129373 0,C,83 56,10C,1484 29,10D,29 30,104,28 23,111,14 19,10C,1414 19,20,94,-16,-18 0,21,-1,0,1 18,10D,29 22,10,7105540 0,D,31 0,A,-3381352 0,B,15129373 0,C,83 56,104,26 15,111,13 22,10C,1375 32,10D,30 32,104,24 3,20,111,-22,-14 0,21,-1,0,0 27,10,7105560 0,D,31 0,A,-3381351 0,B,15129374 0,C,83 56,111,13 18,10C,1355 44,10D,30 36,104,22 19,111,13 2,20,104,-16,-17 0,21,0,0,4 20,10,7105580 0,D,32 0,A,-3381349 0,B,15129375 0,C,83 63,10C,1378 28,10D,30 30,104,20 24,111,12 18,10C,1355 19,20,97,-29,-12 0,21,-1,0,1 18,10D,30 22,10,7105600 0,D,32 0,A,-3381348 0,B,15129376 0,C,83 56,104,18 15,111,12 18,10C,1375 33,10D,30 37,104,15 2,20,122,-15,-22 0,21,-1,0,0 20,10,7105620 0,D,32 0,A,-3381346 0,B,15129376 0,C,83 63,111,12 15,10C,1382 32,10D,30 34,104,13 18,111,11 17,10C,1371 19,20,100,-20,-21 0,21,-1,0,-1 19,10D,30 30,104,12 23,111,11 19,10C,1371 28,10D,30 34,104,11 17,111,11 22,10C,1363 19,20,99,-34,-11 0,21,-1,0,0 15,10,7105660 0,D,32 0,A,-3381343 0,B,15129378 0,C,83 68,10D,30 34,104,11 18,111,11 20,10C,1375 31,10D,30 21,20,99,-21,-26 0,21,-1,0,0 14,10,7105680 0,D,32 0,A,-3381342 0,B,15129378 0,C,83 69,104,11 15,111,11 22,10C,1378 26,10D,30 33,104,11 8,10,7105700 0,D,31 0,A,-3381340 0,B,15129379 0,C,83 39,111,11 7,20,99,-20,-13 0,21,-1,0,-1 18,10C,1363 32,10D,30 29,104,11 21,111,11 30,10C,1375 28,10D,30 31,104,11 11,20,85,-32,-18 0,21,-1,0,0 23,111,11 26,10C,1367 34,10D,30 32,104,11 19,111,11 19,10,7105740 0,D,31 0,A,-3381337 0,B,15129381 0,C,83 39,10C,1371 19,20,112,-30,-14 0,21,0,0,1 19,10D,30 33,104,11 15,111,11 22,10C,1371 30,10D,30 35,104,11 19,111,11 2,10,7105760 0,D,31 0,A,-3381336 0,B,15129381 0,C,82 44,20,111,-25,-10 0,21,0,0,0 18,10C,1367 31,10D,30 33,104,12 20,111,13 21,10C,1371 20,10,7105780 0,D,31 0,A,-3381334 0,B,15129382 0,C,82 39,10D,30 21,20,101,-22,-11 0,21,0,0,0 17,104,15 19,111,13 19,10C,1371 30,10D,30 30,104,18 11,10,7105800 0,D,31 0,A,-3381333 0,B,15129383 0,C,82 39,111,14 14,10C,1378 25,20,95,-25,-8 0,21,0,0,0 17,10D,30 34,104,20 18,111,14 29,10C,1371 29,10D,30 31,104,22 17,111,14 20,10C,1367 21,20,87,-30,-20 0,21,0,0,1 17,10D,30 33,104,24 18,111,14 25,10C,1375 21,10,7105840 0,D,30 0,A,-3381330 0,B,15129384 0,C,82 37,10D,30 34,104,25 17,20,114,-16,-5 0,21,-1,0,-2 17,111,14 18,10C,1378 26,10D,30 30,104,26 3,10,7105860 0,D,31 0,A,-3381329 0,B,15129385 0,C,82 55,111,14 20,10C,1375 28,10D,30 21,20,96,-27,-20 0,21,-1,-2,0 22,104,27 29,111,14 20,10C,1382 22,10,7105880 0,D,31 0,A,-3381327 0,B,15129386 0,C,82 38,10D,30 34,104,27 14,111,15 19,10C,1394 21,20,95,-30,-1 0,21,-1,0,0 16,10D,30 33,104,28 8,10,7105900 0,D,31 0,A,-3381326 0,B,15129386 0,C,82 51,111,15 19,10C,1390 29,10D,30 29,104,28 15,20,106,-14,-18 0,21,-1,0,-1 16,111,14 20,10C,1402 39,10D,30 24,10,7105920 0,D,31 0,A,-3381324 0,B,15129387 0,C,81 38,104,28 18,111,14 20,10C,1390 27,20,92,-35,-23 0,21,-1,0,0 17,10D,30 32,104,28 8,10,7105940 0,D,31 0,A,-3381323 0,B,15129388 0,C,81 53,111,14 18,10C,1398 29,10D,30 30,104,28 13,20,106,-8,-19 0,21,-2,1,0 16,111,14 18,10C,1386 28,10D,30 31,104,27 19,111,14 19,10C,1394 33,10D,30 33,104,25 7,20,96,-30,-9 0,21,-1,1,1 16,111,12 17,10C,1378 29,10D,31 31,104,21 21,111,12 20,10C,1378 29,10D,31 28,104,18 13,20,102,-20,-28 0,21,-2,0,-1 16,111,12 17,10C,1347 29,10D,31 31,104,16 21,111,11 21,10C,1417 28,10D,31 29,104,15 12,20,120,-15,-13 0,21,-1,0,1 17,111,11 16,10C,1359 43,10D,31 33,104,13 15,111,11 20,10C,1386 31,10D,31 26,20,96,-29,-7 0,21,0,0,1 21,104,12 27,111,11 20,10C,1363 20,10,7110040 0,D,31 0,A,-3381315 0,B,15129391 0,C,81 38,10D,31 31,104,11 21,111,11 20,10C,1375 19,20,94,-33,-18 0,21,-1,-1,-1 18,10D,31 22,10,7110060 0,D,31 0,A,-3381314 0,B,15129392 0,C,81 56,104,11 15,111,11 21,10C,1363 29,10D,31 31,104,11 9,20,107,-23,-16 0,21,-1,0,0 17,111,11 8,10,7110080 0,D,31 0,A,-3381312 0,B,15129393 0,C,81 71,10C,1351 28,10D,31 30,104,11 21,111,11 20,10C,1363 20,20,95,-28,-18 0,21,-1,0,0 18,10D,31 31,104,11 23,111,11 19,10C,1351 32,10D,31 29,104,11 22,111,11 20,10C,1355 20,20,121,-9,-18 0,21,-1,0,0 18,10D,30 40,104,11 23,111,11 19,10C,1355 29,10D,30 32,104,11 18,111,11 20,10,7110140 0,D,30 0,A,-3381308 0,B,15129395 0,C,81 37,10C,1449 20,20,83,-37,-35 0,21,-1,1,-1 18,10D,30 30,104,10 23,111,11 18,10C,1566 30,10D,30 30,104,10 19,111,11 5,10,7110160 0,D,30 0,A,-3381307 0,B,15129396 0,C,80 41,20,67,-58,5 0,21,0,0,-2 18,10C,1667 32,10D,30 30,104,9 20,111,11 23,10C,1632 20,10,7110180 0,D,30 0,A,-3381305 0,B,15129396 0,C,80 38,10D,30 37,20,113,-17,-21 0,21,-1,-1,0 20,104,9 15,111,11 22,10C,1660 30,10D,29 35,104,9 15,111,11 5,10,7110200 0,D,30 0,A,-3381304 0,B,15129397 0,C,80 48,10C,1636 21,20,116,-16,-15 0,21,0,0,0 17,10D,29 33,104,9 19,111,11 23,10C,1648 22,10,7110220 0,D,30 0,A,-3381302 0,B,15129398 0,C,80 38,10D,29 43,104,9 7,20,86,-35,-5 0,21,-1,1,-4 17,111,11 15,10C,1625 30,10D,29 29,104,9 5,10,7110240 0,D,29 0,A,-3381301 0,B,15129399 0,C,80 53,111,11 20,10C,1625 28,10D,29 22,20,109,-20,-5 0,21,-1,0,-2 17,104,9 17,111,11 19,10C,1613 37,10D,28 35,104,9 18,111,11 20,10C,1613 31,10D,28 22,20,107,-18,-9 0,21,0,0,-1 17,104,9 14,111,11 24,10C,1597 21,10,7110280 0,D,29 0,A,-3381298 0,B,15129400 0,C,80 46,10D,28 29,104,9 22,111,11 20,10C,1589 20,20,87,-42,-16 0,21,-1,0,0 16,10D,28 34,104,9 2,10,7110300 0,D,29 0,A,-3381297 0,B,15129401 0,C,80 66,111,11 21,10C,1570 29,10D,28 33,104,9 2,20,108,-23,-36 0,21,-1,-1,0 27,111,11 18,10C,1562 20,10,7110320 0,D,29 0,A,-3381296 0,B,15129401 0,C,80 44,10D,28 43,104,10 19,111,11 19,10C,1542 20,20,94,-39,-14 0,21,-1,0,1 20,10D,28 46,104,10 21,111,11 18,10C,1519 32,10D,28 34,104,10 21,111,11 9,20,105,-28,6 0,21,-1,0,-1 17,10C,1503 32,10D,28 31,104,10 19,111,11 19,10C,1484 33,10D,28 33,104,10 14,111,11 2,20,106,-32,-6 0,21,-1,0,1 29,10C,1476 20,10,7110380 0,D,27 0,A,-3381292 0,B,15129403 0,C,80 47,10D,28 34,104,10 19,111,11 20,10C,1453 30,10D,27 21,20,102,-35,-6 0,21,-1,0,1 19,104,11 7,10,7110400 0,D,27 0,A,-3381291 0,B,15129404 0,C,80 69,111,11 20,10C,1433 28,10D,27 32,104,11 20,111,11 9,20,92,-34,-18 0,21,-1,0,1 18,10,7110420 0,D,26 0,A,-3381289 0,B,15129404 0,C,80 65,10C,1410 40,10D,27 33,104,11 17,111,11 20,10C,1394 20,20,99,-35,-22 0,21,-1,0,1 18,10D,27 34,104,11 20,111,11 19,10C,1378 29,10D,27 32,104,11 18,111,11 21,10C,1363 20,20,88,-40,-23 0,21,-1,0,0 14,10,7110460 0,D,25 0,A,-3381287 0,B,15129406 0,C,80 70,10D,27 29,104,12 21,111,11 20,10C,1332 32,10D,25 22,20,86,-39,-15 0,21,-1,0,0 13,10,7110480 0,D,24 0,A,-3381286 0,B,15129406 0,C,80 70,104,11 19,111,11 19,10C,1312 29,10D,25 30,104,11 2,10,7110500 0,D,24 0,A,-3381285 0,B,15129407 0,C,80 45,20,98,-43,-20 0,21,-1,0,0 17,111,11 27,10C,1285 31,10D,25 28,104,12 22,111,11 18,10C,1230 21,10,7110520 0,D,23 0,A,-3381284 0,B,15129407 0,C,80 38,10D,25 21,20,85,-38,-18 0,21,-1,1,0 19,104,14 27,111,12 20,10C,1109 29,10D,23 30,104,16 3,10,7110540 0,D,23 0,A,-3381283 0,B,15129408 0,C,80 51,111,12 23,10C,1066 19,20,103,-23,-16 0,21,-1,-1,0 19,10D,23 30,104,17 20,111,11 21,10C,1046 29,10D,23 31,104,16 17,111,11 24,10C,1007 19,20,109,-20,-27 0,21,-1,0,3 19,10D,23 28,104,17 22,111,12 22,10C,972 20,10,7110580 0,D,22 0,A,-3381280 0,B,15129409 0,C,80 38,10D,23 31,104,20 17,111,12 3,20,118,-13,-3 0,21,-1,-1,0 30,10C,933 29,10D,23 29,104,20 12,10,7110600 0,D,22 0,A,-3381279 0,B,15129410 0,C,80 39,111,11 15,10C,925 31,10D,22 22,20,110,-43,-2 0,21,0,0,-3 17,104,20 15,111,11 21,10C,914 31,10D,22 22,10,7110620 0,D,22 0,A,-3381278 0,B,15129410 0,C,80 38,104,20 19,111,11 18,10C,910 29,20,74,-41,-16 0,21,-1,0,-3 17,10D,22 29,104,20 19,111,11 17,10,7110640 0,D,22 0,A,-3381277 0,B,15129411 0,C,80 43,10C,902 43,10D,22 31,104,20 3,20,111,-36,-6 0,21,-1,0,2 29,111,11 20,10C,882 28,10,7110660 0,D,21 0,A,-3381276 0,B,15129411 0,C,80 38,10D,22 34,104,20 19,111,12 24,10C,851 20,20,97,-36,0 0,21,-1,1,0 16,10D,22 32,104,20 17,10,7110680 0,D,20 0,A,-3381275 0,B,15129412 0,C,80 43,111,11 20,10C,824 30,10D,20 34,104,21 8,20,100,-33,-24 0,21,-1,0,-3 17,111,11 17,10C,808 27,10D,20 22,10,7110700 0,D,20 0,A,-3381275 0,B,15129412 0,C,80 39,104,21 18,111,11 19,10C,800 32,10D,20 21,20,103,-28,-9 0,21,-1,0,-2 21,104,22 17,111,11 17,10,7110720 0,D,18 0,A,-3381274 0,B,15129413 0,C,80 53,10C,789 31,10D,20 30,104,22 30,111,11 2,20,90,-31,0 0,21,-1,2,0 28,10C,796 27,10,7110740 0,D,17 0,A,-3381273 0,B,15129413 0,C,80 41,10D,20 31,104,22 22,111,11 21,10C,796 28,10D,17 20,20,111,-27,-15 0,21,-1,0,-3 16,104,22 20,111,11 6,10,7110760 0,D,17 0,A,-3381272 0,B,15129413 0,C,80 67,10C,800 31,10D,17 30,104,21 18,111,11 13,20,88,-33,-4 0,21,-2,0,-2 16,10C,804 29,10D,17 30,104,21 21,111,12 20,10C,804 28,10D,17 30,104,22 18,111,12 23,20,76,-9,-12 0,21,-2,0,1 20,10C,808 20,10,7110800 0,D,16 0,A,-3381271 0,B,15129414 0,C,80 55,10D,17 34,104,24 18,111,13 21,10C,847 28,10D,17 22,20,139,-10,-21 0,21,-1,1,6 18,104,26 19,111,13 18,10C,878 32,10D,15 34,104,28 14,111,14 32,10C,925 26,10D,15 22,20,90,-48,-2 0,21,-2,0,2 14,10,7110840 0,D,16 0,A,-3381269 0,B,15129415 0,C,80 69,104,30 18,111,15 20,10C,1082 30,10D,15 29,104,34 7,10,7110860 0,D,16 0,A,-3381268 0,B,15129415 0,C,80 39,20,92,-21,-20 0,21,-1,0,-5 19,111,15 14,10C,1304 32,10D,15 33,104,34 22,111,16 19,10C,1359 29,10D,15 31,104,34 2,20,109,-19,-6 0,21,-1,1,-4 27,111,15 22,10C,1390 29,10D,15 28,104,31 22,111,15 21,10C,1449 22,10,7110900 0,D,16 0,A,-3381267 0,B,15129416 0,C,80 39,10D,15 21,20,107,-18,-5 0,21,0,0,0 18,104,30 18,111,15 20,10C,1433 30,10D,15 28,104,29 18,10,7110920 0,D,16 0,A,-3381266 0,B,15129417 0,C,80 38,111,15 16,10C,1406 19,20,101,-19,-9 0,21,0,0,0 18,10D,15 33,104,29 19,111,14 27,10C,1406 29,10D,15 22,10,7110940 0,D,16 0,A,-3381265 0,B,15129417 0,C,80 38,104,28 15,111,14 22,20,104,-17,0 0,21,0,0,0 21,10C,1429 31,10D,15 31,104,25 18,111,13 3,10,7110960 0,D,16 0,A,-3381265 0,B,15129418 0,C,80 55,10C,1402 28,10D,16 21,20,101,-22,-6 0,21,0,0,0 18,104,22 15,111,12 21,10C,1335 30,10D,16 24,10,7110980 0,D,17 0,A,-3381264 0,B,15129418 0,C,80 40,104,20 17,111,12 21,10C,1273 19,20,110,-17,-6 0,21,0,0,0 18,10D,16 32,104,18 20,111,12 21,10C,1226 20,10,7111000 0,D,17 0,A,-3381263 0,B,15129418 0,C,80 39,10D,16 29,104,17 19,111,12 2,20,98,-25,0 0,21,0,0,0 29,10C,1187 31,10D,16 30,10,7111020 0,D,16 0,A,-3381262 0,B,15129419 0,C,80 43,104,17 14,111,11 24,10C,1148 31,10D,16 22,20,96,-30,-10 0,21,0,0,0 17,104,15 26,111,12 22,10C,1097 21,10,7111040 0,D,16 0,A,-3381261 0,B,15129419 0,C,80 38,10D,16 30,104,17 18,111,12 25,10C,1023 19,20,116,-28,-5 0,21,0,-1,2 16,10D,16 34,104,18 2,10,7111060 0,D,16 0,A,-3381261 0,B,15129420 0,C,80 66,111,11 21,10C,972 28,10D,16 30,104,20 3,20,80,-25,-7 0,21,1,3,0 27,111,12 22,10C,949 19,10,7111080 0,D,16 0,A,-3381260 0,B,15129420 0,C,80 40,10D,16 34,104,20 19,111,11 39,20,112,-32,3 0,21,0,0,0 18,10C,929 32,10D,16 21,10,7111100 0,D,16 0,A,-3381259 0,B,15129420 0,C,80 39,104,20 18,111,11 20,10C,890 28,10D,15 25,20,108,-25,-4 0,21,0,-3,0 16,104,20 14,111,11 21,10C,875 20,10,7111120 0,D,15 0,A,-3381258 0,B,15129421 0,C,80 51,10D,15 31,104,20 17,111,11 21,10C,863 19,20,93,-26,-15 0,21,1,0,-1 15,10D,15 41,104,20 15,10,7111140 0,D,15 0,A,-3381258 0,B,15129421 0,C,78 38,111,11 18,10C,832 28,10D,15 29,104,20 19,20,114,-25,-1 0,21,0,-2,0 16,111,11 19,10C,816 19,10,7111160 0,D,15 0,A,-3381257 0,B,15129421 0,C,78 53,10D,15 30,104,20 19,111,11 24,10C,796 23,20,87,-24,-5 0,21,0,0,0 15,10D,14 31,104,21 18,111,11 2,10,7111180 0,D,15 0,A,-3381256 0,B,15129422 0,C,78 64,10C,789 30,10D,14 29,104,21 12,20,104,-21,-8 0,21,0,-1,0 17,111,11 15,10C,792 19,10,7111200 0,D,14 0,A,-3381256 0,B,15129422 0,C,78 57,10D,14 31,104,21 17,111,11 23,10C,800 23,20,97,-28,-4 0,21,0,0,0 16,10D,14 24,10,7111220 0,D,14 0,A,-3381255 0,B,15129422 0,C,78 55,104,21 17,111,11 20,10C,796 28,10D,14 31,104,21 9,20,100,-34,-5 0,21,0,0,0 21,111,13 29,10,7111240 0,D,14 0,A,-3381254 0,B,15129422 0,C,78 46,10C,800 29,10D,13 29,104,30 22,111,14 19,10C,828 20,20,101,-32,-10 0,21,0,0,0 18,10D,13 34,104,33 18,111,14 21,10C,945 27,10D,13 34,104,34 19,111,15 19,10C,1113 20,20,107,-26,-1 0,21,1,0,0 18,10D,13 31,104,35 21,111,16 21,10C,1281 28,10D,13 29,104,36 23,111,16 19,10C,1351 20,20,95,-17,0 0,21,1,-1,-1 18,10D,13 31,104,40 21,111,18 21,10C,1421 28,10D,13 29,104,46 23,111,20 21,10C,1511 20,20,103,-22,-3 0,21,1,-3,-1 13,10,7111320 0,D,13 0,A,-3381252 0,B,15129423 0,C,78 69,10D,13 31,104,55 19,111,19 22,10C,1714 29,10D,13 31,20,95,-21,-21 0,21,2,0,-1 13,10,7111340 0,D,13 0,A,-3381251 0,B,15129423 0,C,78 69,104,54 16,111,18 21,10C,1781 30,10D,13 35,104,47 19,111,18 2,20,97,-14,7 0,21,4,-1,1 13,10,7111360 0,D,13 0,A,-3381250 0,B,15129423 0,C,77 80,10C,1460 30,10D,13 29,104,49 12,10,7111380 0,D,15 0,A,-3381250 0,B,15129424 0,C,77 39,111,18 7,20,87,-10,-11 0,21,2,-4,0 18,10C,1273 31,10D,15 34,104,50 19,111,18 23,10C,1359 27,10D,15 39,10,7111400 0,D,16 0,A,-3381249 0,B,15129424 0,C,77 40,104,49 7,20,112,-7,-4 0,21,3,-2,0 17,111,17 19,10C,1347 27,10D,15 32,104,49 22,111,18 2,10,7111420 0,D,18 0,A,-3381248 0,B,15129424 0,C,77 57,10C,1410 25,20,94,-9,-5 0,21,3,-2,1 17,10D,15 30,104,47 20,111,17 21,10C,1433 28,10,7111440 0,D,18 0,A,-3381247 0,B,15129424 0,C,77 39,10D,15 39,104,43 6,20,98,-8,4 0,21,2,1,-2 30,111,16 19,10C,1492 30,10D,17 34,104,38 7,10,7111460 0,D,19 0,A,-3381246 0,B,15129424 0,C,77 38,111,16 15,10C,1511 28,10D,17 21,20,107,-16,6 0,21,1,-1,-1 22,104,36 18,111,14 23,10C,1523 27,10D,17 22,10,7111480 0,D,20 0,A,-3381245 0,B,15129424 0,C,77 39,104,30 14,111,14 20,10C,1535 20,20,112,-27,-7 0,21,0,1,-1 18,10D,17 32,104,26 15,111,14 25,10C,1542 20,10,7111500 0,D,20 0,A,-3381244 0,B,15129424 0,C,77 39,10D,17 34,104,22 17,111,13 2,20,95,-36,-19 0,21,-2,0,0 31,10C,1566 25,10D,17 31,104,20 2,10,7111520 0,D,20 0,A,-3381243 0,B,15129424 0,C,77 55,111,13 20,10C,1574 29,10D,19 21,20,103,-25,-30 0,21,-5,0,0 17,104,20 17,111,16 19,10C,1542 42,10D,19 24,10,7111540 0,D,20 0,A,-3381242 0,B,15129424 0,C,77 38,104,25 28,111,17 16,20,101,-21,-39 0,21,-7,0,-1 17,10C,1585 30,10D,19 30,104,33 2,10,7111560 0,D,20 0,A,-3381241 0,B,15129424 0,C,77 55,111,17 19,10C,1707 29,10D,19 21,20,100,-26,-28 0,21,-8,1,0 18,104,35 16,111,17 21,10C,1757 29,10D,19 31,104,36 18,111,17 23,10C,1730 29,10D,19 20,20,99,-21,-20 0,21,-9,2,1 18,104,36 17,111,17 20,10C,1722 22,10,7111600 0,D,19 0,A,-3381239 0,B,15129424 0,C,77 46,10D,20 30,104,37 19,111,17 24,10C,1734 19,20,87,-23,-36 0,21,-10,3,2 21,10D,20 34,104,36 6,10,7111620 0,D,20 0,A,-3381238 0,B,15129425 0,C,77 49,111,17 18,10C,1757 32,10D,20 34,104,36 7,20,95,-28,-54 0,21,-11,3,0 16,111,18 17,10C,1769 29,10D,20 31,104,40 18,111,18 23,10C,1808 38,10D,20 29,104,42 2,20,102,-22,-41 0,21,-10,4,0 27,111,19 18,10C,1863 20,10,7111660 0,D,20 0,A,-3381236 0,B,15129426 0,C,77 44,10D,20 30,104,44 18,111,20 24,10C,1902 19,20,109,-9,-35 0,21,-11,1,1 17,10D,20 34,104,48 7,10,7111680 0,D,20 0,A,-3381235 0,B,15129426 0,C,77 52,111,20 14,10C,1984 44,10D,20 31,104,50 2,20,99,-4,-41 0,21,-11,2,2 29,111,20 18,10,7111700 0,D,21 0,A,-3381234 0,B,15129427 0,C,77 50,10C,2011 29,10D,20 30,104,49 22,111,20 20,10C,2042 19,20,111,-17,-33 0,21,-11,3,0 17,10D,20 23,10,7111720 0,D,21 0,A,-3381233 0,B,15129428 0,C,77 56,104,48 16,111,20 17,10C,2078 33,10D,20 28,104,47 12,20,80,-22,-25 0,21,-12,3,0 16,111,20 13,10,7111740 0,D,22 0,A,-3381232 0,B,15129429 0,C,77 66,10C,2097 29,10D,22 39,104,40 19,111,16 21,20,113,-11,-36 0,21,-12,2,0 16,10C,2066 22,10,7111760 0,D,23 0,A,-3381231 0,B,15129430 0,C,77 57,10D,22 30,104,27 18,111,15 21,10C,1933 29,10D,22 22,20,95,-22,-45 0,21,-12,0,2 18,104,24 16,111,14 10,10,7111780 0,D,23 0,A,-3381231 0,B,15129431 0,C,78 64,10C,1875 32,10D,22 29,104,21 21,111,14 11,20,73,-38,-12 0,21,-10,2,0 15,10,7111800 0,D,23 0,A,-3381230 0,B,15129432 0,C,78 67,10C,1824 33,10D,24 34,104,18 18,111,13 24,10C,1769 19,20,119,-12,-26 0,21,-8,2,0 19,10D,24 30,104,17 21,111,13 21,10C,1730 27,10D,24 30,104,16 19,111,12 24,10C,1691 19,20,96,-27,-7 0,21,-5,0,1 20,10,7111840 0,D,23 0,A,-3381229 0,B,15129434 0,C,78 63,10D,24 45,104,15 29,111,12 21,10C,1617 21,10,7111860 0,D,23 0,A,-3381228 0,B,15129436 0,C,78 39,10D,24 21,20,96,-18,-20 0,21,-2,3,0 18,104,13 14,111,12 24,10C,1542 27,10D,24 32,104,11 13,10,7111880 0,D,23 0,A,-3381227 0,B,15129437 0,C,78 38,111,11 20,10C,1449 19,20,101,-34,-18 0,21,-1,-1,0 18,10D,23 30,104,11 21,111,12 20,10C,1332 28,10D,23 23,10,7111900 0,D,22 0,A,-3381227 0,B,15129438 0,C,78 37,104,12 15,111,13 11,20,93,-34,-8 0,21,0,2,0 17,10C,1183 33,10D,23 29,104,16 22,111,15 19,10C,1179 20,10,7111920 0,D,22 0,A,-3381226 0,B,15129439 0,C,78 38,10D,23 22,20,111,-21,-9 0,21,0,0,0 17,104,24 19,111,15 18,10C,1281 31,10D,23 28,104,28 12,10,7111940 0,D,22 0,A,-3381226 0,B,15129441 0,C,78 39,111,15 18,10C,1429 19,20,102,-19,-10 0,21,0,0,0 18,10D,23 31,104,29 20,111,15 30,10C,1636 28,10D,22 31,104,28 19,111,15 23,10C,1703 20,20,97,-18,0 0,21,0,0,0 17,10D,22 34,104,25 17,111,14 22,10C,1710 21,10,7111980 0,D,21 0,A,-3381225 0,B,15129443 0,C,78 39,10D,22 49,104,22 9,20,104,-21,5 0,21,1,0,1 18,111,13 17,10C,1597 31,10D,22 30,104,20 2,10,7112000 0,D,21 0,A,-3381224 0,B,15129444 0,C,78 51,111,13 23,10C,1480 29,20,101,-23,5 0,21,0,0,0 18,10D,22 32,104,20 19,111,12 21,10C,1390 21,10,7112020 0,D,21 0,A,-3381223 0,B,15129445 0,C,78 38,10D,21 29,104,18 19,111,12 3,20,107,-22,-6 0,21,0,0,-1 30,10C,1281 29,10D,21 30,104,16 3,10,7112040 0,D,21 0,A,-3381223 0,B,15129446 0,C,78 51,111,12 20,10C,1214 32,10D,21 22,20,102,-16,-14 0,21,0,0,0 17,104,18 14,111,12 31,10C,1175 26,10,7112060 0,D,21 0,A,-3381222 0,B,15129447 0,C,78 39,10D,21 30,104,18 17,111,11 25,10C,1164 19,20,101,-24,-17 0,21,0,0,0 17,10D,21 33,104,16 8,10,7112080 0,D,21 0,A,-3381222 0,B,15129448 0,C,78 52,111,12 18,10C,1105 28,10D,21 30,104,17 14,20,137,-39,6 0,21,0,1,1 16,111,11 17,10C,1058 26,10,7112100 0,D,21 0,A,-3381221 0,B,15129449 0,C,78 50,10D,20 34,104,18 20,111,12 19,10C,1019 19,20,72,-20,-10 0,21,0,-1,-6 18,10D,20 29,104,18 5,10,7112120 0,D,20 0,A,-3381220 0,B,15129450 0,C,78 70,111,11 19,10C,968 56,10D,20 24,20,55,-35,-25 0,21,0,3,4 16,104,20 14,111,12 4,10,7112140 0,D,19 0,A,-3381220 0,B,15129451 0,C,78 87,10C,925 28,10D,20 30,104,20 21,111,11 2,20,125,-64,-25 0,21,-1,1,16 36,10,7112160 0,D,20 0,A,-3381219 0,B,15129452 0,C,78 49,10C,902 28,10D,19 30,104,20 21,111,11 20,10C,871 19,20,97,-68,1 0,21,-1,-1,-2 16,10D,19 34,104,20 17,10,7112180 0,D,20 0,A,-3381219 0,B,15129453 0,C,78 42,111,11 15,10C,867 31,10D,19 29,104,20 19,111,11 2,20,81,-18,-5 0,21,-1,0,-9 30,10C,855 19,10,7112200 0,D,19 0,A,-3381218 0,B,15129454 0,C,78 48,10D,19 34,104,20 18,111,13 21,10C,863 29,10D,19 21,20,127,-5,-18 0,21,0,0,-1 18,104,24 16,111,14 3,10,7112220 0,D,19 0,A,-3381218 0,B,15129455 0,C,78 81,10C,871 32,10D,18 30,104,34 18,111,15 2,20,99,-23,-3 0,21,-1,-1,3 15,10,7112240 0,D,18 0,A,-3381217 0,B,15129456 0,C,78 79,10C,1085 32,10D,18 32,104,37 15,111,16 27,20,93,-22,-7 0,21,-1,-1,0 14,10,7112260 0,D,18 0,A,-3381217 0,B,15129457 0,C,78 69,10C,1292 29,10D,18 33,104,42 17,111,19 21,10C,1433 19,20,110,-23,-7 0,21,0,0,0 19,10D,18 47,104,50 20,111,21 21,10C,1562 28,10D,18 32,104,67 20,111,24 13,20,103,-10,-8 0,21,0,-2,0 14,10,7112300 0,D,17 0,A,-3381215 0,B,15129458 0,C,78 69,10C,1699 28,10D,18 30,104,70 20,111,23 22,10C,1980 20,20,98,-18,-6 0,21,0,0,0 18,10D,18 34,104,65 15,111,22 20,10C,2035 32,10D,18 33,104,63 23,111,22 17,10C,1867 20,20,101,-4,-14 0,21,0,2,0 14,10,7112340 0,D,19 0,A,-3381214 0,B,15129460 0,C,78 69,10D,18 33,104,68 19,111,22 15,10C,1468 30,10D,18 31,20,106,-5,1 0,21,-1,-1,0 15,10,7112360 0,D,20 0,A,-3381214 0,B,15129461 0,C,78 67,104,75 16,111,22 21,10C,1312 30,10D,19 30,104,77 2,10,7112380 0,D,21 0,A,-3381213 0,B,15129462 0,C,78 45,20,116,-7,-10 0,21,0,0,1 17,111,22 19,10C,1308 27,10D,19 30,104,77 19,111,22 23,10C,1292 30,10D,19 33,104,77 8,20,93,-19,-8 0,21,0,0,0 17,111,23 14,10C,1328 32,10D,19 34,104,77 18,111,23 21,10C,1335 22,10,7112420 0,D,23 0,A,-3381212 0,B,15129464 0,C,78 39,10D,19 22,20,84,0,-14 0,21,0,0,-2 17,104,77 15,111,23 22,10C,1363 28,10D,19 31,104,76 18,10,7112440 0,D,24 0,A,-3381211 0,B,15129466 0,C,78 42,111,23 27,20,85,-29,-7 0,21,0,1,-2 20,10C,1378 32,10D,22 29,104,80 22,111,24 18,10C,1417 30,10,7112460 0,D,24 0,A,-3381210 0,B,15129467 0,C,78 38,10D,22 21,20,85,0,-28 0,21,0,0,-2 19,104,80 18,111,23 20,10C,1429 29,10D,22 30,104,80 3,10,7112480 0,D,25 0,A,-3381209 0,B,15129468 0,C,78 51,111,23 23,10C,1457 19,20,118,-15,0 0,21,0,1,2 19,10D,22 29,104,78 21,111,23 20,10C,1457 30,10D,22 31,104,77 17,111,23 25,10C,1496 19,20,100,4,-13 0,21,-1,0,-1 19,10D,22 28,104,76 22,111,23 21,10C,1519 22,10,7112520 0,D,26 0,A,-3381208 0,B,15129470 0,C,78 50,10D,25 30,104,75 12,20,97,-13,-16 0,21,-1,1,-3 17,111,23 19,10C,1542 30,10D,25 30,10,7112540 0,D,27 0,A,-3381207 0,B,15129472 0,C,78 38,104,76 16,111,23 21,10C,1562 29,10D,25 21,20,113,2,-18 0,21,0,-1,2 17,104,75 17,111,23 20,10C,1589 29,10D,25 40,104,75 18,111,23 23,10C,1613 29,10D,25 20,20,97,-26,-10 0,21,-1,0,-2 18,104,75 17,111,23 22,10C,1632 20,10,7112580 0,D,29 0,A,-3381205 0,B,15129474 0,C,78 45,10D,25 34,104,75 19,111,23 21,10C,1667 19,20,105,-4,2 0,21,0,0,0 57,10D,28 42,104,75 20,111,23 21,10C,1703 27,10D,28 34,104,74 2,20,105,-19,-10 0,21,-1,-1,0 28,111,23 17,10,7112620 0,D,30 0,A,-3381203 0,B,15129477 0,C,78 51,10C,1722 29,10D,28 30,104,73 21,111,23 20,10C,1753 19,20,119,6,-10 0,21,0,0,0 16,10D,28 24,10,7112640 0,D,31 0,A,-3381202 0,B,15129479 0,C,78 55,104,72 17,111,23 20,10C,1792 29,10D,28 28,104,71 12,20,104,-4,-22 0,21,0,0,1 16,111,23 12,10,7112660 0,D,32 0,A,-3381201 0,B,15129480 0,C,78 67,10C,1804 38,10D,31 30,104,70 21,111,23 18,20,96,-17,-4 0,21,-1,0,0 21,10C,1835 21,10,7112680 0,D,32 0,A,-3381200 0,B,15129482 0,C,78 53,10D,31 34,104,69 18,111,23 20,10C,1867 30,10D,31 21,20,104,-11,8 0,21,-1,0,-1 18,104,68 16,111,23 4,10,7112700 0,D,32 0,A,-3381199 0,B,15129483 0,C,78 83,10C,1898 32,10D,31 31,104,67 18,111,23 2,20,110,-1,-11 0,21,-1,0,1 15,10,7112720 0,D,34 0,A,-3381198 0,B,15129485 0,C,78 80,10C,1921 31,10D,33 33,104,66 19,111,23 17,10C,1941 19,20,112,-4,-11 0,21,-1,0,0 15,10,7112740 0,D,34 0,A,-3381196 0,B,15129486 0,C,78 69,10D,33 30,104,64 30,111,20 22,10C,1964 29,10D,33 22,20,107,1,-18 0,21,-1,-1,0 18,104,54 15,111,18 19,10C,1972 42,10D,33 28,104,41 22,111,16 21,10C,1988 22,10,7112780 0,D,36 0,A,-3381194 0,B,15129490 0,C,78 38,10D,33 21,20,103,-22,-15 0,21,-1,-1,3 18,104,29 19,111,15 23,10C,1980 26,10D,33 32,104,25 9,10,7112800 0,D,36 0,A,-3381193 0,B,15129491 0,C,78 39,111,15 15,10C,1996 19,20,94,-22,-4 0,21,-1,0,0 18,10D,34 33,104,21 19,111,14 16,10C,1996 31,10D,34 22,10,7112820 0,D,36 0,A,-3381192 0,B,15129493 0,C,78 38,104,20 19,111,14 7,20,89,-24,-15 0,21,-1,0,0 21,10C,1964 32,10D,34 29,104,18 21,111,14 20,10,7112840 0,D,36 0,A,-3381190 0,B,15129495 0,C,78 37,10C,1953 29,10D,34 22,20,76,-38,-14 0,21,-1,0,0 17,104,16 14,111,13 23,10C,1957 30,10D,34 26,10,7112860 0,D,36 0,A,-3381189 0,B,15129496 0,C,78 39,104,15 19,111,13 18,10C,1941 19,20,98,-22,-11 0,21,-2,-2,-1 19,10D,34 38,104,13 19,111,12 26,10C,1921 20,10,7112880 0,D,35 0,A,-3381188 0,B,15129498 0,C,78 38,10D,34 30,104,12 12,20,84,-26,-7 0,21,-1,-2,0 18,111,12 18,10C,1917 27,10D,34 32,104,11 24,10,7112900 0,D,35 0,A,-3381187 0,B,15129499 0,C,78 41,111,12 14,10C,1902 28,20,104,-14,7 0,21,-1,0,-3 18,10D,34 29,104,9 20,111,11 23,10C,1867 22,10,7112920 0,D,34 0,A,-3381186 0,B,15129501 0,C,78 38,10D,34 34,104,8 16,20,61,-64,-7 0,21,-1,1,1 17,111,11 14,10C,1859 31,10D,34 32,104,8 8,10,7112940 0,D,34 0,A,-3381185 0,B,15129502 0,C,78 39,111,11 18,10C,1808 29,10D,33 22,20,59,-62,0 0,21,-1,2,0 17,104,8 14,111,11 23,10C,1804 26,10D,33 24,10,7112960 0,D,33 0,A,-3381183 0,B,15129504 0,C,78 38,104,8 19,111,11 23,10C,1769 19,20,88,-31,-26 0,21,-2,0,-1 19,10D,33 41,104,8 19,111,11 9,10,7112980 0,D,33 0,A,-3381182 0,B,15129506 0,C,78 39,10C,1773 32,10D,33 30,104,8 11,20,92,-32,-17 0,21,-1,0,0 17,111,11 19,10C,1746 25,10D,33 31,104,8 2,10,7113000 0,D,32 0,A,-3381181 0,B,15129507 0,C,78 56,111,11 19,10C,1726 29,10D,31 21,20,77,-42,-16 0,21,-2,0,0 17,104,8 17,111,11 19,10C,1707 30,10D,31 31,104,8 20,111,11 21,10C,1695 27,10D,31 22,20,100,-29,-27 0,21,-2,0,-1 17,104,8 18,111,11 19,10C,1687 22,10,7113040 0,D,30 0,A,-3381179 0,B,15129510 0,C,78 51,10D,31 42,104,9 18,111,11 13,20,81,-45,-12 0,21,-2,0,0 16,10C,1656 30,10D,31 34,104,9 16,111,11 2,10,7113060 0,D,30 0,A,-3381178 0,B,15129511 0,C,79 55,10C,1628 32,10D,31 21,20,104,-25,-6 0,21,-1,1,0 18,104,9 25,111,11 18,10,7113080 0,D,29 0,A,-3381177 0,B,15129513 0,C,79 49,10C,1617 29,10D,29 29,104,9 22,111,11 12,20,96,-35,-7 0,21,-1,1,0 17,10C,1593 30,10D,29 23,10,7113100 0,D,29 0,A,-3381176 0,B,15129514 0,C,79 41,104,9 14,111,11 20,10C,1582 32,10D,29 26,20,86,-40,-23 0,21,-1,0,0 20,104,10 17,111,11 21,10C,1664 20,10,7113120 0,D,28 0,A,-3381176 0,B,15129516 0,C,79 44,10D,29 29,104,9 22,111,11 20,10C,1730 20,20,95,-26,-9 0,21,0,0,-1 16,10D,29 27,10,7113140 0,D,28 0,A,-3381175 0,B,15129517 0,C,79 53,104,9 20,111,11 18,10C,1800 32,10D,27 33,104,8 1,20,103,-34,-22 0,21,-1,0,0 28,111,11 15,10,7113160 0,D,27 0,A,-3381174 0,B,15129518 0,C,79 53,10C,1843 29,10D,27 29,104,8 19,111,11 22,10C,1906 20,20,81,-41,-18 0,21,-1,0,0 16,10D,27 33,10,7113180 0,D,26 0,A,-3381173 0,B,15129519 0,C,79 48,104,8 27,111,11 21,10C,1832 28,10D,27 27,20,97,-40,-6 0,21,0,0,0 17,104,8 15,111,11 3,10,7113200 0,D,25 0,A,-3381172 0,B,15129521 0,C,79 84,10C,1800 28,10D,27 33,104,8 18,111,11 2,20,99,-36,-7 0,21,-1,0,0 27,10,7113220 0,D,24 0,A,-3381171 0,B,15129522 0,C,79 56,10C,1742 29,10D,24 29,104,8 23,111,11 19,10C,1652 20,20,107,-33,-2 0,21,-1,0,0 17,10D,24 23,10,7113240 0,D,23 0,A,-3381171 0,B,15129523 0,C,79 55,104,9 15,111,12 22,10C,1445 29,10D,24 27,104,11 14,20,98,-26,-4 0,21,-1,1,-1 17,111,12 8,10,7113260 0,D,22 0,A,-3381170 0,B,15129524 0,C,79 70,10C,1378 28,10D,24 30,104,12 23,111,12 16,10C,1269 19,20,91,-32,-12 0,21,-1,0,0 19,10D,24 44,104,13 18,111,12 20,10C,1195 33,10D,21 32,104,16 19,111,12 16,20,93,-33,-11 0,21,-1,2,0 16,10,7113300 0,D,21 0,A,-3381169 0,B,15129526 0,C,79 68,10C,1160 32,10D,21 34,104,17 14,111,12 24,10C,1125 19,20,93,-32,-22 0,21,-1,1,0 18,10D,21 31,104,17 19,111,12 19,10C,1105 33,10D,21 33,104,17 14,111,12 23,10C,1093 21,20,98,-22,-12 0,21,-1,0,0 14,10,7113340 0,D,19 0,A,-3381167 0,B,15129528 0,C,79 69,10D,21 45,104,17 19,111,11 19,10C,1046 29,10,7113360 0,D,18 0,A,-3381167 0,B,15129529 0,C,79 38,10D,21 22,20,126,-5,-7 0,21,-1,1,-5 17,104,17 19,111,11 14,10C,1003 32,10D,19 29,104,17 19,111,12 7,10,7113380 0,D,18 0,A,-3381166 0,B,15129529 0,C,79 51,10C,964 29,20,75,-12,-6 0,21,-2,-2,0 17,10D,19 34,104,20 18,111,12 19,10C,929 32,10D,19 21,10,7113400 0,D,17 0,A,-3381166 0,B,15129530 0,C,79 38,104,20 16,111,11 5,20,99,-14,-14 0,21,-1,0,2 29,10C,917 28,10D,19 32,104,20 18,111,11 15,10,7113420 0,D,16 0,A,-3381165 0,B,15129531 0,C,79 42,10C,902 28,10D,19 22,20,64,-13,-29 0,21,0,0,13 17,104,20 19,111,11 21,10C,867 26,10D,16 30,104,20 22,111,13 2,10,7113440 0,D,16 0,A,-3381165 0,B,15129532 0,C,80 51,10C,828 20,20,127,-39,-12 0,21,-1,0,-4 18,10D,16 33,104,28 14,111,14 21,10C,843 21,10,7113460 0,D,16 0,A,-3381164 0,B,15129533 0,C,80 39,10D,16 30,104,33 21,111,14 3,20,87,-21,-11 0,21,-1,0,-5 26,10C,953 30,10D,16 28,104,35 14,10,7113480 0,D,15 0,A,-3381164 0,B,15129533 0,C,80 38,111,15 15,10C,1156 50,20,100,-11,-11 0,21,0,0,-9 19,10D,16 30,104,36 20,111,16 24,10C,1367 21,10,7113500 0,D,15 0,A,-3381163 0,B,15129534 0,C,80 38,10D,16 33,104,40 16,20,118,-15,0 0,21,-1,0,1 17,111,18 19,10C,1445 29,10D,15 30,104,47 2,10,7113520 0,D,14 0,A,-3381163 0,B,15129535 0,C,80 55,111,21 21,10C,1523 28,20,96,-15,-11 0,21,-1,0,0 18,10D,15 29,104,62 21,111,22 23,10C,1679 20,10,7113540 0,D,15 0,A,-3381162 0,B,15129536 0,C,80 38,10D,15 34,104,67 14,111,22 3,20,98,-12,-12 0,21,-1,0,0 30,10C,1863 26,10D,15 32,104,65 12,10,7113560 0,D,15 0,A,-3381162 0,B,15129536 0,C,80 38,111,22 19,10C,1875 28,10D,15 22,20,103,0,-18 0,21,-1,0,0 17,104,65 18,111,21 22,10C,1675 28,10D,16 22,10,7113580 0,D,16 0,A,-3381161 0,B,15129537 0,C,80 38,104,67 25,111,21 22,10C,1425 20,20,103,-17,-7 0,21,-1,1,0 17,10D,16 32,104,71 17,111,21 6,10,7113600 0,D,17 0,A,-3381161 0,B,15129538 0,C,80 63,10C,1464 32,10D,16 30,104,70 3,20,111,-4,-18 0,21,-1,0,0 27,111,21 21,10C,1523 25,10,7113620 0,D,18 0,A,-3381160 0,B,15129539 0,C,80 38,10D,16 31,104,70 18,111,21 32,10C,1539 22,20,106,-9,-12 0,21,-1,0,0 17,10D,16 32,104,70 9,10,7113640 0,D,19 0,A,-3381160 0,B,15129540 0,C,80 51,111,21 19,10C,1613 31,10D,18 34,104,71 8,20,97,0,-19 0,21,-1,0,-1 17,111,22 16,10C,1636 26,10,7113660 0,D,20 0,A,-3381159 0,B,15129541 0,C,80 51,10D,18 34,104,71 18,111,22 20,10C,1699 19,20,111,-9,-27 0,21,-1,1,-3 17,10D,18 33,104,70 8,10,7113680 0,D,21 0,A,-3381158 0,B,15129542 0,C,80 52,111,22 15,10C,1742 41,10D,18 30,104,69 4,20,87,-17,3 0,21,-1,-2,2 23,111,22 24,10C,1789 22,10,7113700 0,D,22 0,A,-3381158 0,B,15129543 0,C,80 43,10D,18 33,104,67 20,111,22 19,10C,1832 20,20,110,-10,-2 0,21,-1,1,0 17,10D,22 29,104,65 11,10,7113720 0,D,23 0,A,-3381157 0,B,15129544 0,C,80 52,111,22 19,10C,1875 27,10D,22 31,104,65 14,20,108,-8,-9 0,21,-1,0,0 17,111,22 20,10C,1914 30,10D,22 31,104,63 16,111,22 20,10C,1945 33,10D,22 33,104,63 2,20,106,-9,-1 0,21,-1,-1,-2 28,111,22 15,10C,1972 21,10,7113760 0,D,25 0,A,-3381155 0,B,15129546 0,C,80 47,10D,22 32,104,61 20,111,22 19,10C,2019 20,20,103,-6,-22 0,21,-1,-1,0 21,10D,22 46,104,60 18,111,22 2,10,7113780 0,D,25 0,A,-3381155 0,B,15129548 0,C,80 55,10C,2058 38,10D,25 21,20,98,-5,3 0,21,-1,0,1 17,104,60 17,111,22 22,10C,2070 20,10,7113800 0,D,26 0,A,-3381154 0,B,15129549 0,C,80 45,10D,25 34,104,60 19,111,22 20,10C,2050 19,20,118,-7,-17 0,21,0,0,1 17,10D,25 31,104,61 21,111,22 2,10,7113820 0,D,26 0,A,-3381153 0,B,15129550 0,C,80 59,10C,1980 33,10D,25 32,104,62 9,20,126,10,-9 0,21,0,0,0 17,111,22 18,10C,1925 20,10,7113840 0,D,28 0,A,-3381152 0,B,15129552 0,C,80 57,10D,25 29,104,64 19,111,22 23,10C,1835 20,20,86,-22,-6 0,21,0,-2,0 16,10D,28 35,104,65 15,10,7113860 0,D,28 0,A,-3381151 0,B,15129553 0,C,80 43,111,22 15,10C,1734 32,10D,28 32,104,67 12,20,104,-11,-5 0,21,0,-1,-1 16,111,22 19,10C,1699 20,10,7113880 0,D,29 0,A,-3381150 0,B,15129555 0,C,80 53,10D,28 30,104,68 33,111,21 17,10C,1714 19,20,94,-12,-17 0,21,0,0,0 17,10D,28 23,10,7113900 0,D,30 0,A,-3381149 0,B,15129556 0,C,80 56,104,67 16,111,21 22,10C,1730 31,10D,28 32,104,66 3,20,89,-33,-8 0,21,0,0,0 26,111,21 23,10,7113920 0,D,31 0,A,-3381148 0,B,15129557 0,C,80 47,10C,1757 29,10D,31 30,104,65 20,111,21 21,10C,1785 19,20,109,-6,-12 0,21,0,1,-3 19,10D,31 30,104,64 23,111,21 20,10C,1812 29,10D,31 30,104,64 20,111,21 21,10C,1824 19,20,93,0,-15 0,21,0,0,0 19,10D,31 30,104,64 19,111,21 23,10C,1839 29,10D,31 29,104,62 21,111,21 22,10C,1855 19,20,123,6,4 0,21,0,1,-1 14,10,7113980 0,D,33 0,A,-3381145 0,B,15129562 0,C,80 69,10D,31 30,104,61 30,111,21 23,10C,1902 25,10,7114000 0,D,33 0,A,-3381144 0,B,15129564 0,C,80 38,10D,33 26,20,89,-19,-20 0,21,-1,0,2 17,104,60 15,111,21 23,10C,1914 28,10D,33 32,104,60 16,111,21 3,10,7114020 0,D,34 0,A,-3381143 0,B,15129565 0,C,80 56,10C,1898 19,20,106,3,-3 0,21,-1,1,-1 17,10D,33 31,104,60 23,111,21 18,10C,1820 32,10D,33 21,10,7114040 0,D,34 0,A,-3381142 0,B,15129567 0,C,80 39,104,61 19,111,21 1,20,136,9,-12 0,21,-1,0,0 30,10C,1718 28,10D,33 29,104,62 21,111,20 19,10,7114060 0,D,35 0,A,-3381141 0,B,15129568 0,C,80 39,10C,1621 27,10D,33 22,20,70,-24,0 0,21,-1,0,0 17,104,60 15,111,18 22,10C,1562 42,10D,34 33,104,52 13,10,7114080 0,D,35 0,A,-3381139 0,B,15129570 0,C,80 38,111,15 18,10C,1539 21,20,146,14,-10 0,21,-1,0,0 17,10D,34 33,104,40 28,111,15 12,10,7114100 0,D,36 0,A,-3381138 0,B,15129572 0,C,80 39,10C,1578 28,10D,34 30,104,31 16,20,96,-23,-6 0,21,-1,0,-3 17,111,14 17,10C,1550 30,10D,34 31,104,28 19,111,18 2,10,7114120 0,D,36 0,A,-3381137 0,B,15129573 0,C,80 56,10C,1558 28,10D,34 22,20,113,-18,-19 0,21,-1,0,1 17,104,37 17,111,18 20,10C,1574 22,10,7114140 0,D,36 0,A,-3381136 0,B,15129575 0,C,80 46,10D,35 29,104,46 23,111,20 20,10C,1566 20,20,116,-10,-12 0,21,0,0,-2 16,10D,35 31,10,7114160 0,D,36 0,A,-3381135 0,B,15129577 0,C,80 50,104,53 14,111,19 23,10C,1566 29,10D,35 28,104,55 13,20,86,-30,-22 0,21,0,0,1 16,111,16 17,10C,1558 22,10,7114180 0,D,36 0,A,-3381133 0,B,15129578 0,C,80 52,10D,35 31,104,44 22,111,18 21,10C,1578 19,20,111,-17,2 0,21,0,0,-2 17,10D,35 36,10,7114200 0,D,37 0,A,-3381132 0,B,15129580 0,C,80 45,104,41 14,111,13 23,10C,1582 29,10D,36 29,104,29 7,20,100,-19,-1 0,21,0,0,0 32,111,13 27,10C,1562 35,10D,36 34,104,22 19,111,12 24,10C,1542 28,10D,36 20,20,97,-25,0 0,21,0,-1,0 16,104,20 16,10,7114240 0,D,37 0,A,-3381130 0,B,15129583 0,C,80 63,111,12 20,10C,1570 28,10D,36 29,104,16 23,111,12 9,20,110,-25,-9 0,21,1,0,-1 17,10C,1539 21,10,7114260 0,D,36 0,A,-3381128 0,B,15129585 0,C,80 57,10D,36 31,104,14 18,111,12 28,10C,1535 30,10D,36 21,20,94,-20,5 0,21,1,0,-1 19,104,13 19,111,12 2,10,7114280 0,D,36 0,A,-3381127 0,B,15129586 0,C,80 78,10C,1511 31,10D,35 31,104,11 24,20,102,-16,2 0,21,2,-1,2 17,10,7114300 0,D,35 0,A,-3381126 0,B,15129588 0,C,80 67,111,11 18,10C,1488 29,10D,35 32,104,10 18,111,11 19,20,106,-26,0 0,21,1,-1,-1 13,10,7114320 0,D,35 0,A,-3381124 0,B,15129589 0,C,80 70,10C,1476 28,10D,35 30,104,10 22,111,11 20,10C,1453 19,20,111,-19,0 0,21,1,-1,0 20,10D,35 29,104,11 22,111,11 20,10C,1449 29,10D,33 29,104,11 19,111,11 21,10C,1429 20,20,96,-36,-12 0,21,1,-1,-1 15,10,7114360 0,D,34 0,A,-3381122 0,B,15129592 0,C,80 68,10D,33 34,104,11 17,111,11 21,10C,1414 32,10D,33 21,20,108,-12,2 0,21,1,0,-1 18,10,7114380 0,D,33 0,A,-3381120 0,B,15129593 0,C,80 65,104,11 31,111,11 19,10C,1390 30,10D,33 37,20,97,-39,0 0,21,1,0,1 18,104,11 6,10,7114400 0,D,33 0,A,-3381119 0,B,15129594 0,C,80 71,111,11 18,10C,1375 28,10D,33 32,104,11 8,10,7114420 0,D,32 0,A,-3381118 0,B,15129596 0,C,80 39,111,11 6,20,103,-20,-11 0,21,1,-1,0 19,10C,1359 27,10D,31 31,104,11 18,111,11 23,10C,1359 27,10D,31 23,10,7114440 0,D,32 0,A,-3381117 0,B,15129597 0,C,80 38,104,11 7,20,108,-22,-18 0,21,2,-1,0 17,111,11 15,10C,1351 36,10D,31 28,104,11 23,111,11 18,10C,1351 21,10,7114460 0,D,31 0,A,-3381115 0,B,15129598 0,C,80 38,10D,31 21,20,83,-39,-13 0,21,1,0,0 18,104,11 18,111,11 19,10C,1351 30,10D,31 29,104,11 12,10,7114480 0,D,31 0,A,-3381114 0,B,15129599 0,C,80 39,111,11 14,10C,1351 21,20,96,-27,-1 0,21,2,0,1 17,10D,31 34,104,11 18,111,11 23,10C,1351 27,10D,29 31,10,7114500 0,D,30 0,A,-3381113 0,B,15129600 0,C,80 39,104,11 11,20,94,-34,4 0,21,1,0,0 17,111,11 18,10C,1343 29,10D,29 31,104,11 20,111,11 9,10,7114520 0,D,30 0,A,-3381111 0,B,15129601 0,C,80 43,10C,1347 37,20,91,-23,4 0,21,2,0,0 20,10D,29 29,104,11 21,111,11 20,10C,1339 29,10D,29 22,10,7114540 0,D,29 0,A,-3381110 0,B,15129602 0,C,80 37,104,11 19,111,11 3,20,124,-45,-34 0,21,1,-4,-1 30,10C,1339 31,10D,29 28,104,11 21,111,13 12,10,7114560 0,D,29 0,A,-3381109 0,B,15129602 0,C,80 39,10C,1363 28,10D,28 22,20,132,-22,-4 0,21,1,1,-4 17,104,14 19,111,12 18,10C,1332 30,10D,28 27,10,7114580 0,D,28 0,A,-3381108 0,B,15129603 0,C,80 38,104,14 15,111,11 22,10C,1363 20,20,76,-52,-8 0,21,1,0,-2 21,10D,28 30,104,13 22,111,12 21,10C,1328 21,10,7114600 0,D,28 0,A,-3381106 0,B,15129604 0,C,80 39,10D,28 39,104,15 12,20,107,-20,-21 0,21,0,-1,0 17,111,12 18,10C,1328 30,10D,28 34,104,15 2,10,7114620 0,D,27 0,A,-3381105 0,B,15129605 0,C,80 56,111,12 20,10C,1300 24,20,114,-8,-20 0,21,0,-1,0 18,10D,28 32,104,15 23,111,11 17,10C,1304 22,10,7114640 0,D,27 0,A,-3381104 0,B,15129605 0,C,80 38,10D,27 29,104,14 22,111,11 2,20,101,-21,2 0,21,0,0,0 30,10C,1320 26,10D,27 30,104,13 4,10,7114660 0,D,27 0,A,-3381102 0,B,15129606 0,C,80 51,111,11 27,10C,1316 35,10D,27 20,20,109,-20,-8 0,21,1,0,-1 18,104,12 17,111,11 20,10C,1316 22,10,7114680 0,D,26 0,A,-3381101 0,B,15129606 0,C,80 46,10D,27 30,104,11 19,111,11 24,10C,1308 19,20,109,-17,-1 0,21,0,0,0 17,10D,27 33,104,11 8,10,7114700 0,D,25 0,A,-3381100 0,B,15129607 0,C,80 52,111,11 24,10C,1300 28,10D,25 34,104,12 8,20,101,-29,0 0,21,0,0,0 16,111,11 21,10C,1308 21,10,7114720 0,D,25 0,A,-3381099 0,B,15129608 0,C,80 51,10D,25 30,104,11 22,111,11 20,10C,1296 20,20,89,-21,-13 0,21,0,-1,0 20,10D,25 31,104,11 23,111,11 2,10,7114740 0,D,25 0,A,-3381098 0,B,15129608 0,C,81 58,10C,1292 29,10D,25 32,104,12 9,20,97,-40,-14 0,21,0,0,0 16,111,11 17,10C,1289 22,10,7114760 0,D,24 0,A,-3381097 0,B,15129609 0,C,81 52,10D,25 34,104,11 19,111,11 21,10C,1289 19,20,108,-17,-28 0,21,0,-1,0 16,10D,23 34,104,12 20,111,11 2,10,7114780 0,D,24 0,A,-3381095 0,B,15129609 0,C,81 62,10C,1281 28,10D,23 33,104,12 8,20,100,-29,-3 0,21,-1,0,0 16,111,11 15,10C,1222 20,10,7114800 0,D,23 0,A,-3381094 0,B,15129610 0,C,81 57,10D,23 55,104,15 19,111,12 20,10C,1078 19,20,101,-23,-7 0,21,0,0,0 19,10D,23 21,10,7114820 0,D,23 0,A,-3381093 0,B,15129610 0,C,81 55,104,17 20,111,12 14,10C,1054 32,10D,23 35,104,17 7,20,101,-23,-4 0,21,0,0,0 18,111,11 7,10,7114840 0,D,23 0,A,-3381092 0,B,15129611 0,C,81 70,10C,1042 33,10D,22 33,104,16 14,111,11 21,10C,996 19,20,94,-29,-22 0,21,0,0,0 18,10D,22 34,104,17 19,111,11 19,10C,953 32,10D,22 33,104,18 17,111,12 22,10C,937 19,20,106,-20,-2 0,21,0,0,-1 14,10,7114880 0,D,22 0,A,-3381090 0,B,15129612 0,C,81 69,10D,22 30,104,20 21,111,11 21,10C,914 26,10D,22 22,20,92,-30,-12 0,21,0,-1,0 14,10,7114900 0,D,22 0,A,-3381089 0,B,15129612 0,C,81 70,104,20 27,111,11 19,10C,902 29,10D,21 28,10,7114920 0,D,22 0,A,-3381088 0,B,15129613 0,C,81 38,104,20 7,20,90,-26,-8 0,21,-1,0,0 18,111,11 14,10C,894 32,10D,21 32,104,20 18,111,11 20,10C,890 29,10D,21 31,104,20 9,20,94,-29,-12 0,21,0,0,0 17,111,11 19,10C,890 27,10D,21 30,104,20 20,111,11 22,10C,886 29,10D,21 31,104,20 5,20,100,-22,-12 0,21,-1,0,0 34,111,11 30,10C,878 30,10D,21 27,104,20 24,111,11 9,10,7114980 0,D,21 0,A,-3381085 0,B,15129614 0,C,81 39,10C,875 19,20,100,-27,-10 0,21,0,0,0 18,10D,20 34,104,20 14,111,11 23,10C,871 25,10D,20 28,10,7115000 0,D,21 0,A,-3381084 0,B,15129614 0,C,81 38,104,20 15,111,11 5,20,110,-19,-1 0,21,0,0,0 26,10C,867 32,10D,20 38,104,20 21,111,11 18,10C,859 21,10,7115020 0,D,21 0,A,-3381083 0,B,15129615 0,C,81 38,10D,20 21,20,102,-26,-13 0,21,0,0,0 18,104,20 18,111,11 20,10C,851 29,10D,20 32,104,20 9,10,7115040 0,D,21 0,A,-3381082 0,B,15129615 0,C,81 43,111,11 19,10C,851 19,20,140,-19,-26 0,21,0,0,3 18,10D,20 29,104,20 22,111,11 19,10C,855 26,10,7115060 0,D,20 0,A,-3381081 0,B,15129615 0,C,81 38,10D,20 29,104,20 19,20,52,3,-12 0,21,-1,-1,3 17,111,11 19,10C,859 26,10D,20 32,104,21 22,111,11 2,10,7115080 0,D,20 0,A,-3381080 0,B,15129616 0,C,81 56,10C,859 28,20,204,25,-19 0,21,0,-2,9 17,10D,20 30,104,20 20,111,13 21,10C,851 27,10D,20 23,10,7115100 0,D,19 0,A,-3381079 0,B,15129616 0,C,81 38,104,25 14,111,14 12,20,82,-32,-25 0,21,-1,0,-3 23,10C,851 42,10D,20 44,104,33 8,10,7115120 0,D,19 0,A,-3381078 0,B,15129617 0,C,81 39,111,15 18,10C,1003 28,10D,20 22,20,92,-24,-13 0,21,-1,0,-8 18,104,36 17,111,16 19,10C,1175 32,10D,20 21,10,7115140 0,D,18 0,A,-3381077 0,B,15129617 0,C,81 39,104,38 18,111,17 15,10C,1367 24,20,109,-17,-7 0,21,0,0,2 19,10D,20 32,104,40 15,111,18 21,10,7115160 0,D,18 0,A,-3381076 0,B,15129617 0,C,81 39,10C,1406 32,10D,20 34,104,47 11,20,92,-18,-7 0,21,-1,0,0 18,111,20 16,10C,1496 31,10D,20 30,104,57 19,111,21 6,10,7115180 0,D,18 0,A,-3381075 0,B,15129618 0,C,81 48,10C,1671 32,10D,20 21,20,112,-8,-16 0,21,-1,1,-1 18,104,64 13,111,21 29,10C,1835 20,10,7115200 0,D,19 0,A,-3381074 0,B,15129618 0,C,81 42,10D,20 30,104,62 18,111,21 29,10C,1921 19,20,102,-20,-13 0,21,0,0,1 17,10D,20 43,104,60 19,111,21 2,10,7115220 0,D,19 0,A,-3381074 0,B,15129619 0,C,81 52,10C,1945 32,10D,20 33,104,60 2,20,92,-16,-14 0,21,0,0,0 28,111,21 20,10C,1945 20,10,7115240 0,D,20 0,A,-3381073 0,B,15129619 0,C,81 42,10D,20 33,104,60 15,111,21 38,10C,1937 21,20,94,-13,-10 0,21,-1,-1,1 18,10D,20 22,10,7115260 0,D,21 0,A,-3381071 0,B,15129619 0,C,81 56,104,60 15,111,21 22,10C,1921 29,10D,21 28,104,60 12,20,104,-12,-9 0,21,-1,0,-1 16,111,21 13,10,7115280 0,D,22 0,A,-3381070 0,B,15129620 0,C,81 66,10C,1925 29,10D,21 30,104,60 21,111,21 20,10C,1937 20,20,99,-6,-19 0,21,-1,0,0 18,10D,21 31,104,60 19,111,21 23,10C,1949 29,10D,21 29,104,60 21,111,22 20,10C,1960 29,20,106,-3,-29 0,21,-1,0,3 19,10D,21 30,104,60 19,111,21 23,10C,1957 29,10D,21 29,104,60 21,111,21 18,10C,1929 20,20,131,8,-2 0,21,-1,1,0 14,10,7115340 0,D,24 0,A,-3381067 0,B,15129621 0,C,81 69,10D,23 34,104,61 17,111,22 25,10C,1898 27,10D,23 22,20,101,-9,2 0,21,-1,0,0 13,10,7115360 0,D,25 0,A,-3381066 0,B,15129621 0,C,81 70,104,62 16,111,22 18,10C,1878 29,10D,23 31,104,65 2,10,7115380 0,D,26 0,A,-3381064 0,B,15129622 0,C,81 44,20,92,-7,-9 0,21,-1,1,-1 18,111,22 18,10C,1875 29,10D,23 29,104,65 22,111,22 19,10C,1871 30,10D,23 31,104,65 4,20,104,-8,-4 0,21,-1,0,1 29,111,22 15,10C,1851 28,10D,26 45,104,66 22,111,22 20,10,7115420 0,D,27 0,A,-3381062 0,B,15129623 0,C,81 39,10C,1832 20,20,105,-16,-11 0,21,-2,-1,-1 18,10D,26 33,104,67 20,111,22 22,10C,1812 30,10D,26 34,104,67 16,10,7115440 0,D,27 0,A,-3381060 0,B,15129624 0,C,80 38,111,22 7,20,109,-15,-4 0,21,-1,0,-1 17,10C,1792 32,10D,26 32,104,68 15,111,22 22,10C,1769 20,10,7115460 0,D,29 0,A,-3381059 0,B,15129624 0,C,80 38,10D,26 27,20,137,3,-25 0,21,-1,0,0 17,104,68 19,111,22 18,10C,1769 30,10D,26 29,104,68 3,10,7115480 0,D,29 0,A,-3381057 0,B,15129625 0,C,80 52,111,22 22,10C,1730 20,20,106,1,-6 0,21,-1,-1,2 18,10D,29 33,104,69 17,111,22 21,10C,1734 22,10,7115500 0,D,30 0,A,-3381056 0,B,15129625 0,C,80 39,10D,29 30,104,69 18,111,22 2,20,107,-14,-29 0,21,-1,0,0 31,10C,1761 27,10D,29 31,104,68 18,10,7115520 0,D,31 0,A,-3381055 0,B,15129626 0,C,80 38,111,22 24,10C,1777 29,10D,29 21,20,105,-16,-27 0,21,-1,0,-1 18,104,68 17,111,22 20,10C,1742 28,10D,29 22,10,7115540 0,D,32 0,A,-3381053 0,B,15129627 0,C,80 38,104,68 18,111,22 20,10C,1675 19,20,112,-3,-13 0,21,-1,0,0 23,10D,31 43,104,71 21,111,22 2,10,7115560 0,D,33 0,A,-3381051 0,B,15129627 0,C,80 56,10C,1527 28,10D,31 30,20,97,-9,-21 0,21,-1,0,0 17,104,73 18,111,22 18,10C,1484 29,10D,31 21,10,7115580 0,D,33 0,A,-3381050 0,B,15129628 0,C,80 38,104,74 16,111,22 21,10C,1484 25,20,97,-25,-15 0,21,-1,0,1 17,10D,31 32,104,75 19,111,22 9,10,7115600 0,D,34 0,A,-3381048 0,B,15129629 0,C,80 45,10C,1492 32,10D,31 34,104,74 15,20,120,-1,-13 0,21,-1,0,-1 17,111,22 17,10C,1507 30,10D,31 23,10,7115620 0,D,34 0,A,-3381047 0,B,15129629 0,C,80 43,104,74 25,111,22 18,10C,1515 29,20,114,-18,-14 0,21,0,0,-1 18,10D,33 30,104,73 18,111,22 12,10,7115640 0,D,34 0,A,-3381045 0,B,15129630 0,C,80 44,10C,1542 29,10D,33 29,104,73 22,111,22 2,20,88,-20,-23 0,21,0,0,1 29,10C,1566 30,10D,33 23,10,7115660 0,D,35 0,A,-3381043 0,B,15129631 0,C,80 38,104,73 18,111,22 20,10C,1585 31,10D,33 22,20,101,-12,-7 0,21,-1,0,0 17,104,73 14,111,22 20,10C,1613 21,10,7115680 0,D,36 0,A,-3381042 0,B,15129632 0,C,80 50,10D,33 29,104,73 22,111,22 20,10C,1542 35,20,110,-6,-17 0,21,0,-1,0 20,10D,35 22,10,7115700 0,D,36 0,A,-3381040 0,B,15129632 0,C,80 54,104,73 19,111,18 19,10C,1500 29,10D,35 32,104,58 8,20,90,-22,-6 0,21,-2,0,-1 16,111,16 13,10,7115720 0,D,37 0,A,-3381038 0,B,15129633 0,C,80 66,10C,1476 38,10D,35 34,104,42 18,111,15 18,20,105,-19,-16 0,21,-1,0,0 18,10C,1453 20,10,7115740 0,D,38 0,A,-3381036 0,B,15129634 0,C,80 57,10D,35 30,104,33 22,111,14 20,10C,1433 29,10D,35 22,20,99,-39,-8 0,21,-1,1,2 18,104,30 16,111,14 3,10,7115760 0,D,38 0,A,-3381034 0,B,15129635 0,C,81 81,10C,1410 31,10D,37 28,104,26 22,111,14 2,20,109,-18,-10 0,21,0,0,-3 14,10,7115780 0,D,38 0,A,-3381032 0,B,15129635 0,C,81 79,10C,1406 28,10D,37 30,104,23 22,111,13 20,10C,1378 20,20,95,-23,-18 0,21,-1,0,0 14,10,7115800 0,D,38 0,A,-3381031 0,B,15129636 0,C,81 68,10D,37 30,104,20 23,111,12 18,10C,1382 31,10D,37 21,20,87,-30,-3 0,21,0,0,-2 15,10,7115820 0,D,38 0,A,-3381029 0,B,15129637 0,C,81 68,104,18 24,111,12 23,10C,1382 30,10D,37 30,104,15 2,10,7115840 0,D,38 0,A,-3381027 0,B,15129638 0,C,81 55,20,97,-33,0 0,21,-1,0,0 18,111,12 30,10C,1382 34,10D,37 29,104,13 19,111,11 6,10,7115860 0,D,37 0,A,-3381025 0,B,15129638 0,C,81 52,10C,1398 20,20,104,-26,-16 0,21,-1,0,0 17,10D,37 30,104,12 23,111,11 18,10C,1398 30,10D,37 23,10,7115880 0,D,37 0,A,-3381023 0,B,15129639 0,C,81 39,104,11 19,111,11 2,20,101,-28,-2 0,21,-1,-1,0 26,10C,1417 32,10D,37 36,104,11 17,111,11 22,10C,1417 19,10,7115900 0,D,36 0,A,-3381022 0,B,15129640 0,C,81 39,10D,37 22,20,97,-27,-4 0,21,-1,-1,1 17,104,10 19,111,11 18,10C,1425 34,10D,36 29,104,10 4,10,7115920 0,D,36 0,A,-3381020 0,B,15129641 0,C,81 51,111,11 22,10C,1429 20,20,97,-30,-3 0,21,-1,0,0 18,10D,36 42,104,10 19,111,11 21,10C,1449 21,10,7115940 0,D,35 0,A,-3381018 0,B,15129641 0,C,81 37,10D,36 30,104,10 16,20,98,-24,-12 0,21,-1,0,0 17,111,11 18,10C,1480 30,10D,36 30,104,10 3,10,7115960 0,D,35 0,A,-3381017 0,B,15129642 0,C,81 51,111,11 24,10C,1496 28,10D,36 22,20,106,-26,-10 0,21,0,0,1 17,104,10 13,111,11 22,10C,1480 30,10D,35 29,104,10 22,111,11 20,10C,1480 29,10D,35 20,20,99,-28,-14 0,21,-1,0,1 59,104,10 26,111,11 19,10C,1460 19,10,7120000 0,D,35 0,A,-3381013 0,B,15129643 0,C,81 39,10D,35 34,104,10 7,20,100,-36,-11 0,21,-1,0,0 17,111,11 17,10C,1437 27,10D,35 30,104,10 18,10,7120020 0,D,35 0,A,-3381012 0,B,15129644 0,C,81 38,111,11 18,10C,1429 33,10D,35 31,20,93,-29,-10 0,21,-1,0,0 16,104,10 17,111,11 11,10,7120040 0,D,33 0,A,-3381010 0,B,15129645 0,C,81 63,10C,1402 29,10D,33 29,104,10 22,111,11 16,20,101,-35,-18 0,21,-1,0,-1 17,10C,1386 25,10,7120060 0,D,32 0,A,-3381009 0,B,15129645 0,C,81 54,10D,33 33,104,11 20,111,11 19,10C,1363 31,10D,33 21,20,84,-36,-11 0,21,-1,0,0 18,104,11 7,10,7120080 0,D,31 0,A,-3381007 0,B,15129646 0,C,81 71,111,11 18,10C,1417 29,10D,33 29,104,10 21,111,11 10,20,99,-32,-20 0,21,-1,0,0 19,10C,1511 20,10,7120100 0,D,31 0,A,-3381006 0,B,15129647 0,C,81 57,10D,33 30,104,10 19,111,11 22,10C,1597 27,10D,31 20,20,100,-33,-9 0,21,-1,0,0 20,104,10 18,111,11 8,10,7120120 0,D,31 0,A,-3381004 0,B,15129647 0,C,81 63,10C,1574 32,10D,31 42,104,10 19,111,11 2,20,101,-29,-15 0,21,-1,0,1 17,10,7120140 0,D,29 0,A,-3381003 0,B,15129648 0,C,81 79,10C,1546 40,10D,31 34,104,10 21,111,11 9,20,86,-32,-7 0,21,-2,1,0 14,10,7120160 0,D,29 0,A,-3381001 0,B,15129648 0,C,81 70,10C,1519 28,10D,31 33,104,10 23,111,11 20,10C,1464 20,20,92,-40,-13 0,21,-1,0,0 18,10D,31 30,104,10 18,111,11 25,10C,1437 28,10D,28 29,104,11 20,111,11 20,10C,1402 20,20,101,-30,-17 0,21,-1,-1,0 14,10,7120200 0,D,27 0,A,-3380999 0,B,15129649 0,C,81 68,10D,28 34,104,11 19,111,11 23,10C,1343 28,10D,28 21,20,88,-38,-8 0,21,-1,0,0 18,10,7120220 0,D,25 0,A,-3380998 0,B,15129650 0,C,81 65,104,11 16,111,11 21,10C,1300 39,10D,28 35,104,11 6,20,116,-24,-12 0,21,0,0,1 18,111,11 19,10C,1269 32,10D,28 34,104,12 18,111,11 23,10C,1281 27,10D,24 23,10,7120260 0,D,23 0,A,-3380996 0,B,15129651 0,C,81 39,104,12 6,20,109,-25,-7 0,21,0,0,0 17,111,12 18,10C,1195 29,10D,24 29,104,14 19,111,12 26,10C,1050 20,10,7120280 0,D,22 0,A,-3380994 0,B,15129652 0,C,81 38,10D,24 22,20,104,-27,-2 0,21,0,0,0 17,104,17 19,111,11 18,10C,1046 31,10D,24 46,104,18 17,111,11 6,10,7120300 0,D,22 0,A,-3380994 0,B,15129652 0,C,80 49,20,136,-9,8 0,21,0,1,-6 17,10C,1027 32,10D,24 32,104,17 15,111,11 25,10C,1000 20,10,7120320 0,D,21 0,A,-3380993 0,B,15129653 0,C,80 39,10D,24 21,20,59,-11,-19 0,21,0,-2,0 18,104,17 18,111,11 20,10C,964 29,10D,21 40,104,20 19,111,11 5,10,7120340 0,D,21 0,A,-3380992 0,B,15129653 0,C,79 52,10C,933 19,20,204,-1,1 0,21,0,1,7 18,10D,21 33,104,20 18,111,11 22,10C,910 20,10,7120360 0,D,20 0,A,-3380991 0,B,15129653 0,C,79 39,10D,21 31,104,21 18,111,14 2,20,84,-29,-7 0,21,0,0,-1 30,10C,886 29,10D,21 29,104,30 12,10,7120380 0,D,20 0,A,-3380990 0,B,15129654 0,C,79 39,111,15 15,10C,976 31,10D,21 22,20,87,-32,-34 0,21,0,0,-7 17,104,34 19,111,16 17,10C,1121 27,10D,21 23,10,7120400 0,D,19 0,A,-3380989 0,B,15129654 0,C,79 39,104,35 19,111,16 14,10C,1335 25,20,121,-12,-19 0,21,0,0,2 18,10D,20 32,104,38 15,111,17 22,10C,1398 20,10,7120420 0,D,19 0,A,-3380988 0,B,15129654 0,C,79 38,10D,20 31,104,45 21,111,19 3,20,98,-21,-16 0,21,0,-1,0 26,10C,1468 39,10D,20 40,104,52 18,10,7120440 0,D,19 0,A,-3380987 0,B,15129655 0,C,79 38,111,20 15,10C,1632 25,20,104,-9,-4 0,21,0,0,-1 17,10D,20 32,104,58 20,111,20 21,10C,1746 20,10,7120460 0,D,19 0,A,-3380986 0,B,15129655 0,C,79 39,10D,20 29,104,56 23,111,20 2,20,100,-17,-10 0,21,0,0,0 26,10C,1804 30,10D,20 30,104,54 2,10,7120480 0,D,20 0,A,-3380985 0,B,15129655 0,C,79 52,111,20 24,10C,1828 28,10D,20 22,20,91,-21,-10 0,21,0,0,0 16,104,54 18,111,20 18,10C,1835 30,10D,20 29,104,54 22,111,20 20,10C,1843 29,10D,20 21,20,94,-18,-14 0,21,0,0,-2 21,104,54 16,111,20 24,10C,1847 22,10,7120520 0,D,21 0,A,-3380983 0,B,15129656 0,C,79 38,10D,20 34,104,54 20,111,20 19,10C,1851 20,20,113,-5,10 0,21,0,0,0 17,10D,20 33,104,55 16,10,7120540 0,D,22 0,A,-3380982 0,B,15129656 0,C,79 43,111,20 14,10C,1847 33,10D,21 33,104,55 11,20,91,-11,-8 0,21,0,0,0 17,111,20 17,10C,1835 29,10D,21 30,104,56 21,111,20 20,10C,1789 29,10D,21 33,104,57 7,20,106,-7,-8 0,21,0,0,0 16,111,20 17,10C,1750 29,10D,21 34,104,58 19,111,20 15,10C,1718 33,10D,21 33,104,60 21,20,96,-20,-7 0,21,0,1,0 19,111,21 15,10C,1695 20,10,7120600 0,D,24 0,A,-3380978 0,B,15129656 0,C,79 55,10D,21 29,104,64 22,111,21 20,10C,1687 20,20,114,-1,-2 0,21,1,-2,1 15,10D,23 32,10,7120620 0,D,25 0,A,-3380977 0,B,15129657 0,C,79 50,104,64 19,111,21 18,10C,1660 29,10D,23 31,104,65 10,20,79,-22,-16 0,21,0,0,-4 16,111,21 15,10,7120640 0,D,26 0,A,-3380975 0,B,15129657 0,C,79 64,10C,1636 38,10D,23 29,104,65 22,111,21 17,20,86,-12,-5 0,21,0,0,0 17,10C,1574 21,10,7120660 0,D,26 0,A,-3380974 0,B,15129657 0,C,79 58,10D,23 30,104,67 22,111,21 22,10C,1546 27,10D,23 20,20,116,5,-17 0,21,0,0,-2 20,104,68 14,111,21 12,10,7120680 0,D,26 0,A,-3380973 0,B,15129657 0,C,79 63,10C,1515 32,10D,26 28,104,69 22,111,21 10,20,111,2,-10 0,21,0,0,0 19,10C,1464 32,10D,26 34,104,71 19,111,21 15,10C,1406 32,10D,26 35,104,72 14,20,93,-23,-5 0,21,0,0,2 15,10,7120720 0,D,28 0,A,-3380970 0,B,15129657 0,C,79 68,111,21 15,10C,1363 33,10D,26 33,104,72 14,111,21 20,10C,1378 20,20,102,-12,-7 0,21,0,-1,-1 18,10D,26 34,104,72 20,111,21 29,10C,1375 43,10D,29 31,104,71 20,111,21 3,10,7120760 0,D,30 0,A,-3380967 0,B,15129657 0,C,79 44,20,106,-9,-18 0,21,-1,0,0 18,10C,1378 32,10D,29 29,104,71 21,111,21 20,10C,1382 29,10D,29 22,10,7120780 0,D,31 0,A,-3380965 0,B,15129658 0,C,79 37,104,71 8,20,95,-18,-15 0,21,-1,0,1 17,111,21 14,10C,1386 32,10D,29 29,104,71 27,111,21 19,10C,1398 20,10,7120800 0,D,31 0,A,-3380963 0,B,15129658 0,C,79 38,10D,29 22,20,107,-25,-16 0,21,0,0,3 17,104,70 19,111,21 18,10C,1406 31,10D,29 28,104,69 6,10,7120820 0,D,32 0,A,-3380962 0,B,15129658 0,C,79 55,111,21 14,10C,1421 21,20,102,-19,-11 0,21,-1,0,0 17,10D,31 34,104,70 13,111,21 21,10C,1437 24,10,7120840 0,D,33 0,A,-3380960 0,B,15129658 0,C,79 39,10D,31 34,104,69 18,111,21 2,20,96,-16,-13 0,21,0,0,0 40,10C,1460 27,10D,31 32,104,69 12,10,7120860 0,D,33 0,A,-3380959 0,B,15129658 0,C,79 39,111,21 18,10C,1468 28,10D,31 21,20,91,-16,-13 0,21,-1,1,0 18,104,69 18,111,21 19,10C,1492 31,10D,31 22,10,7120880 0,D,34 0,A,-3380957 0,B,15129658 0,C,79 39,104,69 18,111,21 20,10C,1500 19,20,110,-1,0 0,21,0,1,2 23,10D,31 43,104,69 20,111,21 3,10,7120900 0,D,34 0,A,-3380955 0,B,15129658 0,C,79 52,10C,1480 32,10D,33 30,20,105,-9,-8 0,21,-1,0,-1 17,104,69 18,111,21 18,10C,1484 32,10D,33 21,10,7120920 0,D,35 0,A,-3380953 0,B,15129658 0,C,79 39,104,69 19,111,21 22,10C,1453 20,20,93,-19,-5 0,21,0,0,0 17,10D,33 32,104,71 16,111,21 17,10,7120940 0,D,36 0,A,-3380951 0,B,15129659 0,C,79 40,10C,1429 28,10D,33 30,104,71 21,20,98,-15,-15 0,21,0,0,0 17,111,21 20,10C,1417 27,10D,33 31,104,71 17,10,7120960 0,D,36 0,A,-3380949 0,B,15129659 0,C,79 42,111,21 19,10C,1425 28,10D,35 21,20,103,-12,0 0,21,0,0,0 17,104,71 18,111,21 20,10C,1437 21,10,7120980 0,D,37 0,A,-3380948 0,B,15129659 0,C,79 46,10D,35 29,104,70 20,111,21 23,10C,1449 20,20,92,-17,-18 0,21,-1,-1,-1 16,10D,35 31,10,7121000 0,D,38 0,A,-3380946 0,B,15129659 0,C,79 50,104,70 18,111,18 19,10C,1449 29,10D,35 32,104,60 9,20,92,-21,2 0,21,-1,0,0 16,111,16 17,10C,1449 22,10,7121020 0,D,39 0,A,-3380944 0,B,15129659 0,C,79 52,10D,35 34,104,44 18,111,15 21,10C,1445 35,20,100,-24,-14 0,21,0,0,0 19,10D,37 23,10,7121040 0,D,39 0,A,-3380942 0,B,15129659 0,C,79 54,104,40 18,111,15 20,10C,1437 41,10D,37 27,20,113,-11,-12 0,21,-1,0,-1 18,104,33 8,10,7121060 0,D,39 0,A,-3380940 0,B,15129660 0,C,79 70,111,14 16,10C,1429 32,10D,37 32,104,29 15,111,14 13,20,96,-19,-26 0,21,-2,0,1 19,10C,1429 20,10,7121080 0,D,40 0,A,-3380938 0,B,15129660 0,C,79 56,10D,37 35,104,25 19,111,13 18,10C,1425 30,10D,37 21,20,85,-40,-14 0,21,-1,-1,-1 19,104,23 15,111,13 3,10,7121100 0,D,40 0,A,-3380936 0,B,15129660 0,C,79 85,10C,1421 28,10D,38 27,104,20 21,111,12 2,20,70,-52,-2 0,21,-1,0,2 13,10,7121120 0,D,40 0,A,-3380933 0,B,15129660 0,C,79 84,10C,1664 28,10D,38 30,104,16 20,111,12 18,10C,1683 20,20,81,-29,-17 0,21,-1,1,-2 14,10,7121140 0,D,40 0,A,-3380931 0,B,15129660 0,C,79 69,10D,38 34,104,12 23,111,11 23,10C,1683 25,10,7121160 0,D,40 0,A,-3380929 0,B,15129660 0,C,79 38,10D,38 22,20,106,-17,-19 0,21,-1,0,0 18,104,11 14,111,11 23,10C,1679 28,10D,38 27,104,10 21,111,11 12,10,7121180 0,D,39 0,A,-3380927 0,B,15129660 0,C,79 43,10C,1679 32,20,119,-21,-9 0,21,-1,0,1 19,10D,38 30,104,9 19,111,11 23,10C,1664 28,10D,38 22,10,7121200 0,D,39 0,A,-3380925 0,B,15129660 0,C,79 38,104,9 14,111,11 7,20,83,-33,-7 0,21,-1,0,0 30,10C,1652 28,10D,38 32,104,9 18,111,11 15,10,7121220 0,D,39 0,A,-3380923 0,B,15129661 0,C,79 38,10C,1644 29,10D,38 21,20,90,-32,-16 0,21,0,0,-1 18,104,9 14,111,11 24,10C,1632 25,10D,38 30,104,9 3,10,7121240 0,D,38 0,A,-3380921 0,B,15129661 0,C,79 55,111,11 20,10C,1628 19,20,99,-27,-22 0,21,-1,0,1 22,10D,38 34,104,9 23,111,11 21,10C,1621 20,10,7121260 0,D,38 0,A,-3380919 0,B,15129661 0,C,79 38,10D,38 31,104,9 14,20,83,-42,-11 0,21,0,0,0 17,111,11 19,10C,1609 30,10D,38 29,104,9 4,10,7121280 0,D,38 0,A,-3380917 0,B,15129661 0,C,79 51,111,11 22,10C,1605 29,10D,38 21,20,106,-25,-8 0,21,-1,0,0 18,104,9 17,111,11 20,10C,1597 28,10D,38 22,10,7121300 0,D,38 0,A,-3380915 0,B,15129661 0,C,79 39,104,10 14,111,11 19,10C,1589 25,20,93,-32,-4 0,21,0,0,-1 18,10D,38 28,104,10 25,111,11 8,10,7121320 0,D,37 0,A,-3380914 0,B,15129661 0,C,79 44,10C,1585 40,10D,37 36,104,10 6,20,110,-12,-14 0,21,-1,-1,0 17,111,11 14,10C,1578 30,10D,37 24,10,7121340 0,D,37 0,A,-3380912 0,B,15129661 0,C,79 39,104,10 18,111,11 20,10C,1570 28,10D,37 22,20,96,-27,-4 0,21,0,0,0 16,104,10 27,111,11 16,10C,1562 21,10,7121360 0,D,37 0,A,-3380910 0,B,15129661 0,C,79 42,10D,37 33,104,10 19,111,11 19,10C,1554 20,20,89,-31,-13 0,21,-1,0,0 16,10D,37 30,104,10 3,10,7121380 0,D,36 0,A,-3380908 0,B,15129662 0,C,79 73,111,11 14,10C,1539 29,10D,36 32,104,10 11,20,90,-33,-21 0,21,-1,0,0 16,111,11 17,10C,1531 22,10,7121400 0,D,36 0,A,-3380906 0,B,15129662 0,C,79 52,10D,36 31,104,10 18,111,11 21,10C,1511 23,20,106,-29,-12 0,21,-1,0,-1 17,10D,36 30,104,10 22,111,11 2,10,7121420 0,D,36 0,A,-3380904 0,B,15129662 0,C,81 63,10C,1488 29,10D,36 29,104,10 12,20,94,-40,-10 0,21,-1,0,0 16,111,11 19,10C,1472 20,10,7121440 0,D,35 0,A,-3380902 0,B,15129662 0,C,81 53,10D,36 30,104,10 19,111,11 20,10C,1445 23,20,110,-25,-19 0,21,-1,0,-1 16,10D,36 40,104,10 23,111,11 19,10C,1429 61,10D,34 34,104,10 9,20,76,-53,-16 0,21,-1,0,-1 16,111,11 14,10C,1398 22,10,7121480 0,D,33 0,A,-3380899 0,B,15129662 0,C,81 56,10D,34 33,104,10 18,111,11 24,10C,1371 19,20,111,-36,-6 0,21,-1,0,0 17,10D,34 33,104,11 17,10,7121500 0,D,33 0,A,-3380897 0,B,15129662 0,C,81 43,111,11 21,10C,1351 32,10D,34 29,104,11 11,20,105,-16,-6 0,21,0,0,-2 16,111,11 16,10,7121520 0,D,31 0,A,-3380896 0,B,15129662 0,C,81 63,10C,1343 29,10D,34 30,104,11 21,111,11 20,10C,1328 19,20,98,-39,3 0,21,-1,0,0 18,10D,31 22,10,7121540 0,D,30 0,A,-3380894 0,B,15129662 0,C,81 55,104,11 17,111,11 20,10C,1324 28,10D,31 32,104,11 17,20,108,-33,-9 0,21,0,0,0 18,111,11 20,10C,1312 19,10,7121560 0,D,30 0,A,-3380892 0,B,15129662 0,C,81 53,10D,31 33,104,11 18,111,11 19,10C,1296 20,20,93,-39,-3 0,21,0,0,0 18,10D,31 34,104,12 18,111,11 21,10C,1285 31,10D,31 33,104,12 16,111,11 22,10C,1277 20,20,107,-42,-5 0,21,0,0,0 19,10D,28 30,104,12 17,111,11 21,10C,1261 32,10D,28 29,104,12 20,111,11 19,10C,1253 19,20,104,-37,-6 0,21,0,-1,0 16,10,7121620 0,D,26 0,A,-3380888 0,B,15129663 0,C,81 68,10D,28 41,104,12 22,111,11 20,10C,1261 29,10D,28 22,20,91,-45,-7 0,21,0,0,0 18,104,12 15,111,11 23,10C,1250 29,10D,28 28,104,12 20,111,11 22,10C,1250 32,10,7121660 0,D,23 0,A,-3380886 0,B,15129663 0,C,81 38,10D,28 21,20,101,-36,-9 0,21,-1,0,-1 19,104,12 17,111,11 21,10C,1222 29,10D,23 33,104,12 8,10,7121680 0,D,21 0,A,-3380885 0,B,15129663 0,C,81 39,111,12 19,10C,1078 19,20,93,-31,-11 0,21,0,0,0 18,10D,23 30,104,17 19,111,12 22,10C,1066 28,10D,23 22,10,7121700 0,D,20 0,A,-3380884 0,B,15129663 0,C,81 42,104,17 15,111,12 4,20,98,-30,-15 0,21,0,0,0 29,10C,1031 28,10D,23 32,104,17 19,111,11 16,10,7121720 0,D,20 0,A,-3380883 0,B,15129663 0,C,81 38,10C,1000 31,10D,23 22,20,95,-32,-17 0,21,0,0,0 18,104,18 15,111,12 21,10C,949 30,10D,23 35,104,20 19,111,11 2,10,7121740 0,D,20 0,A,-3380882 0,B,15129663 0,C,81 51,10C,933 20,20,107,-30,-31 0,21,0,0,-11 17,10D,19 33,104,20 19,111,11 22,10C,929 29,10,7121760 0,D,19 0,A,-3380881 0,B,15129663 0,C,81 38,10D,19 33,104,20 13,20,68,-10,-12 0,21,0,0,0 22,111,12 32,10C,890 34,10D,19 21,10,7121780 0,D,18 0,A,-3380880 0,B,15129662 0,C,81 39,104,20 18,111,11 15,10C,894 19,20,101,-1,-4 0,21,0,0,6 18,10D,19 32,104,20 16,111,11 25,10C,875 20,10,7121800 0,D,18 0,A,-3380879 0,B,15129662 0,C,81 38,10D,19 34,104,20 18,111,11 2,20,134,-17,7 0,21,0,1,16 30,10C,855 29,10D,17 27,10,7121820 0,D,18 0,A,-3380878 0,B,15129663 0,C,81 39,104,20 18,111,11 24,10C,832 32,10D,17 20,20,100,-31,-7 0,21,-1,0,-7 18,104,21 17,111,11 20,10C,828 21,10,7121840 0,D,18 0,A,-3380877 0,B,15129662 0,C,81 47,10D,17 30,104,21 22,111,11 21,10C,828 19,20,83,-27,-11 0,21,-1,0,-7 17,10D,17 32,104,21 3,10,7121860 0,D,18 0,A,-3380876 0,B,15129662 0,C,81 78,111,11 20,10C,843 27,10D,17 26,20,104,-36,-14 0,21,-1,1,0 16,104,23 14,111,14 20,10C,855 20,10,7121880 0,D,17 0,A,-3380875 0,B,15129662 0,C,81 52,10D,17 34,104,30 14,111,14 28,10C,953 18,20,92,-27,-8 0,21,-1,-2,1 16,10D,17 35,104,33 16,10,7121900 0,D,17 0,A,-3380874 0,B,15129662 0,C,80 43,111,15 14,10C,1125 29,10D,17 32,104,35 16,20,96,-23,-18 0,21,0,0,0 20,111,16 28,10C,1308 32,10D,17 29,104,36 23,111,17 15,10C,1386 32,10D,17 21,20,103,-16,-18 0,21,0,0,0 17,104,40 14,111,18 4,10,7121940 0,D,18 0,A,-3380872 0,B,15129662 0,C,80 83,10C,1488 29,10D,17 29,104,48 21,111,19 3,20,103,-14,-10 0,21,0,0,0 29,10C,1605 20,10,7121960 0,D,18 0,A,-3380871 0,B,15129662 0,C,80 47,10D,18 43,104,49 19,111,19 19,10C,1707 23,20,100,-12,-17 0,21,-1,0,0 16,10D,18 31,104,49 18,10,7121980 0,D,18 0,A,-3380870 0,B,15129662 0,C,80 44,111,18 19,10C,1726 27,10D,18 33,104,48 15,20,116,-1,-11 0,21,-1,0,0 16,111,18 18,10C,1617 21,10,7122000 0,D,19 0,A,-3380869 0,B,15129662 0,C,80 52,10D,18 31,104,51 20,111,18 21,10C,1308 22,20,100,-14,-15 0,21,0,-1,0 17,10D,18 30,104,55 19,10,7122020 0,D,19 0,A,-3380868 0,B,15129662 0,C,80 44,111,18 18,10C,1316 28,10D,19 33,104,55 14,20,109,-10,-11 0,21,0,0,0 16,111,18 13,10,7122040 0,D,21 0,A,-3380867 0,B,15129662 0,C,80 66,10C,1304 29,10D,19 30,104,55 20,111,18 21,10C,1300 19,20,104,-8,-1 0,21,0,0,1 18,10D,19 31,104,55 23,111,18 29,10C,1300 44,10D,19 34,104,55 20,111,18 2,20,99,-14,-7 0,21,-1,1,-1 31,10C,1300 33,10D,19 30,104,55 18,111,17 24,10C,1308 28,10D,21 31,104,51 5,20,114,-3,0 0,21,0,1,-3 15,10,7122100 0,D,23 0,A,-3380864 0,B,15129662 0,C,80 78,111,17 10,10,7122100 0,D,23 0,A,3326666 0,B,40000 0,C,67 52,10C,1320 30,10D,21 21,20,105,-13,-19 0,21,-1,0,-1 19,104,47 19,111,17 7,10,7122120 0,D,23 0,A,-3380862 0,B,15129661 0,C,80 64,10C,1347 27,10D,21 29,104,44 23,111,16 13,20,94,-23,-5 0,21,-1,1,0 14,10,7122140 0,D,24 0,A,-3380861 0,B,15129661 0,C,80 69,10C,1382 29,10D,21 29,104,37 19,111,14 22,10C,1390 20,20,98,-23,-8 0,21,-1,0,0 18,10D,21 31,104,33 18,111,14 31,10C,1441 33,10D,24 33,104,29 14,111,14 21,10C,1425 20,20,105,-21,0 0,21,-1,0,0 14,10,7122180 0,D,26 0,A,-3380858 0,B,15129661 0,C,80 69,10D,24 34,104,25 17,111,13 20,10C,1449 32,10D,24 22,20,105,-18,-12 0,21,-1,-1,0 13,10,7122200 0,D,26 0,A,-3380857 0,B,15129661 0,C,80 70,104,22 19,111,12 19,10C,1445 29,10D,24 30,104,20 3,10,7122220 0,D,26 0,A,-3380856 0,B,15129661 0,C,80 44,20,117,-18,0 0,21,-1,0,0 23,111,12 26,10C,1472 30,10D,24 29,104,16 21,111,12 19,10,7122240 0,D,26 0,A,-3380854 0,B,15129661 0,C,80 38,10C,1453 21,20,108,-17,-10 0,21,-1,0,1 17,10D,26 30,104,14 18,111,12 23,10C,1449 30,10D,26 27,10,7122260 0,D,26 0,A,-3380853 0,B,15129661 0,C,80 38,104,13 20,111,12 1,20,100,-28,-10 0,21,-2,0,-1 26,10C,1453 42,10D,26 29,104,14 19,111,12 21,10C,1453 20,10,7122280 0,D,26 0,A,-3380852 0,B,15129661 0,C,80 38,10D,26 22,20,94,-23,-6 0,21,-1,0,-1 18,104,15 18,111,12 18,10C,1449 31,10D,26 37,104,15 7,10,7122300 0,D,26 0,A,-3380850 0,B,15129661 0,C,80 39,111,12 18,10C,1441 20,20,96,-31,4 0,21,0,0,0 17,10D,26 31,104,15 20,111,12 21,10C,1433 31,10D,26 22,10,7122320 0,D,26 0,A,-3380849 0,B,15129661 0,C,80 39,104,14 18,111,11 2,20,99,-30,-10 0,21,-1,0,0 27,10C,1433 32,10D,26 27,104,12 21,111,11 13,10,7122340 0,D,26 0,A,-3380848 0,B,15129660 0,C,80 39,10C,1449 29,10D,26 21,20,102,-27,-8 0,21,-1,0,0 18,104,11 14,111,11 23,10C,1441 30,10D,26 27,10,7122360 0,D,26 0,A,-3380846 0,B,15129660 0,C,80 39,104,10 44,111,11 18,20,115,-16,-6 0,21,0,-1,0 18,10C,1433 27,10D,26 29,104,11 20,111,12 3,10,7122380 0,D,26 0,A,-3380845 0,B,15129660 0,C,80 56,10C,1433 27,10D,25 22,20,100,-24,-13 0,21,0,0,0 17,104,13 16,111,12 20,10C,1437 31,10D,25 22,10,7122400 0,D,26 0,A,-3380844 0,B,15129660 0,C,80 40,104,14 19,111,12 18,10C,1414 20,20,113,-20,0 0,21,-1,0,0 18,10D,25 32,104,15 18,111,12 23,10C,1421 19,10,7122420 0,D,26 0,A,-3380842 0,B,15129660 0,C,80 39,10D,25 30,104,14 18,111,12 3,20,100,-21,-5 0,21,-1,0,-1 30,10C,1402 34,10D,25 31,104,14 21,111,11 2,10,7122440 0,D,26 0,A,-3380841 0,B,15129660 0,C,80 59,10C,1425 25,20,113,-20,-15 0,21,-2,-1,-1 17,10D,24 29,104,12 20,111,11 20,10C,1410 21,10,7122460 0,D,26 0,A,-3380840 0,B,15129660 0,C,80 37,10D,24 34,104,11 23,20,107,-20,-8 0,21,-1,0,2 17,111,11 21,10C,1414 26,10D,24 28,10,7122480 0,D,25 0,A,-3380838 0,B,15129660 0,C,80 38,104,11 15,111,11 23,10C,1410 28,10D,24 22,20,100,-28,-19 0,21,-1,-1,-1 17,104,10 17,111,11 19,10C,1386 30,10D,24 31,104,11 20,111,11 21,10C,1386 28,10D,24 37,20,92,-34,-14 0,21,-1,0,0 20,104,11 17,111,11 10,10,7122520 0,D,25 0,A,-3380836 0,B,15129660 0,C,80 61,10C,1382 28,10D,24 30,104,11 22,111,11 12,20,109,-25,-10 0,21,-1,0,0 16,10C,1371 32,10D,24 22,10,7122540 0,D,25 0,A,-3380835 0,B,15129660 0,C,80 40,104,11 19,111,11 18,10C,1359 29,10D,24 24,20,99,-30,-4 0,21,0,0,1 17,104,11 13,111,11 22,10C,1343 19,10,7122560 0,D,24 0,A,-3380833 0,B,15129659 0,C,80 51,10D,24 31,104,11 29,111,11 18,20,102,-23,-13 0,21,-1,1,0 16,10C,1335 32,10D,24 22,10,7122580 0,D,24 0,A,-3380832 0,B,15129659 0,C,80 51,104,11 14,111,11 24,10C,1320 27,10D,24 22,20,99,-32,-11 0,21,-1,0,0 16,104,11 19,111,11 2,10,7122600 0,D,24 0,A,-3380831 0,B,15129659 0,C,80 81,10C,1195 31,10D,24 33,104,14 20,111,12 2,20,100,-26,-6 0,21,-1,0,-1 28,10C,1113 22,10,7122620 0,D,23 0,A,-3380830 0,B,15129659 0,C,80 47,10D,24 34,104,17 18,111,12 20,10C,1062 29,10D,24 22,20,95,-29,-12 0,21,-1,0,-1 18,104,18 15,111,11 15,10,7122640 0,D,23 0,A,-3380829 0,B,15129659 0,C,80 60,10C,1058 32,10D,24 33,104,17 23,111,11 22,20,102,-24,-6 0,21,-1,0,0 21,10C,1015 28,10D,23 30,104,17 22,111,12 20,10C,984 40,10D,23 27,104,18 13,20,97,-27,-13 0,21,-1,0,0 13,10,7122680 0,D,23 0,A,-3380826 0,B,15129659 0,C,80 70,111,12 19,10C,960 28,10D,23 28,104,18 22,111,11 18,10C,957 20,20,100,-21,-18 0,21,-1,0,0 13,10,7122700 0,D,23 0,A,-3380825 0,B,15129659 0,C,80 70,10D,23 35,104,18 16,111,11 25,10C,941 28,10D,23 21,20,103,-16,-14 0,21,-1,0,0 18,104,18 19,111,11 15,10C,933 31,10D,22 29,104,18 22,111,11 20,10C,925 29,10D,22 22,20,101,-25,-11 0,21,-1,0,0 22,104,18 14,111,11 23,10C,925 28,10D,22 29,104,18 20,111,11 23,10C,917 21,10,7122760 0,D,23 0,A,-3380821 0,B,15129659 0,C,80 38,10D,22 21,20,96,-28,-2 0,21,0,0,0 19,104,20 14,111,11 19,10C,906 40,10D,22 33,104,18 3,10,7122780 0,D,23 0,A,-3380820 0,B,15129659 0,C,80 55,111,11 19,20,101,-25,-16 0,21,-1,0,0 18,10C,914 28,10D,22 29,104,20 21,111,11 22,10C,886 20,10,7122800 0,D,23 0,A,-3380819 0,B,15129659 0,C,80 39,10D,22 27,20,100,-25,-7 0,21,-1,0,0 17,104,20 15,111,11 22,10C,890 27,10D,22 31,104,20 25,10,7122820 0,D,23 0,A,-3380818 0,B,15129659 0,C,80 40,111,11 15,10C,871 19,20,103,-25,-10 0,21,0,0,0 18,10D,22 33,104,20 21,111,11 21,10C,871 28,10D,22 30,104,20 19,111,11 19,10C,875 19,20,98,-30,-9 0,21,0,0,0 18,10D,22 34,104,20 14,111,11 28,10C,875 21,10,7122860 0,D,23 0,A,-3380816 0,B,15129658 0,C,80 39,10D,22 34,104,20 14,111,11 2,20,98,-26,-1 0,21,0,0,0 30,10C,878 39,10D,22 31,104,20 2,10,7122880 0,D,23 0,A,-3380814 0,B,15129658 0,C,80 55,111,11 23,10C,886 20,20,102,-8,-13 0,21,0,0,-10 17,10D,22 37,104,20 19,111,11 20,10C,886 21,10,7122900 0,D,22 0,A,-3380813 0,B,15129658 0,C,80 37,10D,22 31,104,20 19,111,11 2,20,78,-4,-4 0,21,-1,-1,0 30,10C,898 30,10D,22 30,104,20 3,10,7122920 0,D,22 0,A,-3380812 0,B,15129658 0,C,80 51,111,11 20,10C,878 31,10D,22 22,20,135,-51,-9 0,21,0,2,9 17,104,20 13,111,11 23,10C,867 26,10,7122940 0,D,23 0,A,-3380811 0,B,15129658 0,C,80 43,10D,22 30,104,20 19,111,13 20,10C,855 20,20,91,-11,-14 0,21,-1,-1,-11 17,10D,22 32,104,25 17,111,14 3,10,7122960 0,D,22 0,A,-3380810 0,B,15129658 0,C,80 62,10C,851 40,10D,22 31,20,128,-19,-8 0,21,0,0,-1 17,104,31 25,111,14 22,10C,984 19,10,7122980 0,D,21 0,A,-3380809 0,B,15129658 0,C,80 39,10D,22 30,104,34 23,111,15 19,10C,1109 19,20,97,-25,-16 0,21,-1,-1,3 18,10D,22 33,104,36 2,10,7123000 0,D,22 0,A,-3380808 0,B,15129658 0,C,80 65,111,16 23,10C,1332 28,10D,22 29,104,40 2,20,97,-22,-9 0,21,-1,0,0 32,111,18 18,10C,1390 21,10,7123020 0,D,22 0,A,-3380806 0,B,15129658 0,C,80 39,10D,22 29,104,47 22,111,19 20,10C,1570 20,20,94,-20,-20 0,21,-1,-1,0 20,10D,22 28,10,7123040 0,D,22 0,A,-3380805 0,B,15129658 0,C,80 49,104,52 14,111,20 23,10C,1742 29,10D,22 28,104,54 12,20,107,-7,-10 0,21,-1,0,0 16,111,20 16,10C,1808 30,10D,22 35,104,52 18,111,20 20,10C,1835 32,10D,22 32,104,51 2,20,104,-16,-15 0,21,-1,1,0 38,111,20 9,10,7123080 0,D,23 0,A,-3380803 0,B,15129657 0,C,80 51,10C,1835 31,10D,23 31,104,52 19,111,20 22,10C,1644 19,20,106,-11,-5 0,21,-1,0,2 17,10D,23 23,10,7123100 0,D,24 0,A,-3380802 0,B,15129657 0,C,80 56,104,54 19,111,20 19,10C,1429 31,10D,23 37,20,98,-13,-10 0,21,0,0,0 20,104,60 8,10,7123120 0,D,25 0,A,-3380800 0,B,15129657 0,C,80 68,111,20 16,10C,1394 32,10D,23 32,104,62 19,111,20 9,20,112,-8,-10 0,21,0,0,0 18,10C,1359 20,10,7123140 0,D,25 0,A,-3380799 0,B,15129657 0,C,80 57,10D,23 31,104,62 22,111,20 19,10C,1339 30,10D,25 21,20,94,-15,-15 0,21,-1,0,0 19,104,63 16,111,20 2,10,7123160 0,D,25 0,A,-3380798 0,B,15129657 0,C,79 81,10C,1328 32,10D,25 27,104,63 23,20,95,-21,-19 0,21,-1,0,0 15,10,7123180 0,D,27 0,A,-3380796 0,B,15129657 0,C,79 68,111,20 23,10C,1320 33,10D,25 31,104,63 19,111,20 15,20,105,-13,-5 0,21,-1,0,0 13,10,7123200 0,D,28 0,A,-3380795 0,B,15129657 0,C,79 71,10C,1328 31,10D,25 30,104,61 18,111,16 24,10C,1343 19,20,105,-17,-13 0,21,-1,0,1 15,10,7123220 0,D,28 0,A,-3380794 0,B,15129657 0,C,79 68,10D,25 30,104,45 20,111,14 22,10C,1363 27,10D,27 21,20,100,-15,-8 0,21,-1,0,-1 16,10,7123240 0,D,29 0,A,-3380792 0,B,15129656 0,C,79 67,104,40 15,111,14 22,10C,1359 31,10D,27 28,104,31 12,10,7123260 0,D,30 0,A,-3380791 0,B,15129656 0,C,79 39,111,14 58,20,107,-11,-11 0,21,-1,0,0 20,10C,1367 31,10D,27 32,104,26 18,10,7123280 0,D,30 0,A,-3380789 0,B,15129656 0,C,79 39,111,13 19,10C,1359 27,10D,27 22,20,93,-31,-24 0,21,-1,0,0 18,104,23 15,111,12 21,10C,1335 31,10D,28 22,10,7123300 0,D,30 0,A,-3380788 0,B,15129656 0,C,79 40,104,21 19,111,12 18,10C,1363 20,20,91,-25,-11 0,21,-1,0,0 18,10D,28 32,104,18 18,111,12 23,10C,1335 19,10,7123320 0,D,30 0,A,-3380786 0,B,15129656 0,C,79 39,10D,28 30,104,16 21,111,11 2,20,92,-27,-14 0,21,-1,0,0 27,10C,1355 30,10D,28 33,104,14 2,10,7123340 0,D,30 0,A,-3380784 0,B,15129656 0,C,79 53,111,11 22,10C,1343 29,10D,28 21,20,90,-30,-19 0,21,-1,0,0 17,104,13 17,111,11 20,10C,1324 29,10D,28 31,104,12 22,111,11 19,10C,1332 28,10D,28 21,20,96,-27,-21 0,21,-1,0,0 18,104,12 17,111,11 19,10C,1324 42,10D,28 34,104,12 20,111,11 23,10C,1332 28,10D,28 21,20,104,-23,-11 0,21,-1,-1,0 17,104,11 17,111,11 15,10,7123400 0,D,29 0,A,-3380780 0,B,15129656 0,C,79 59,10C,1328 29,10D,28 29,104,11 23,111,11 11,20,100,-28,-14 0,21,-1,0,-1 16,10C,1335 45,10D,28 37,104,11 19,111,11 19,10C,1332 32,10D,28 30,104,11 2,20,93,-29,-5 0,21,-1,0,0 27,111,11 22,10C,1335 20,10,7123440 0,D,29 0,A,-3380777 0,B,15129655 0,C,79 40,10D,28 34,104,11 19,111,11 15,10C,1335 24,20,108,-25,-7 0,21,-1,0,0 16,10D,28 31,104,11 2,10,7123460 0,D,29 0,A,-3380775 0,B,15129655 0,C,79 72,111,11 20,10C,1339 31,10D,28 30,20,107,-28,-9 0,21,-1,0,0 16,104,11 17,111,11 19,10,7123480 0,D,28 0,A,-3380774 0,B,15129655 0,C,79 56,10C,1343 32,10D,28 30,104,11 23,111,11 8,20,105,-22,-15 0,21,-1,-1,0 20,10C,1343 28,10D,28 23,10,7123500 0,D,28 0,A,-3380773 0,B,15129655 0,C,79 38,104,11 19,111,11 19,10C,1339 32,10D,28 22,20,91,-26,-5 0,21,0,0,0 16,104,11 17,111,11 15,10,7123520 0,D,28 0,A,-3380771 0,B,15129655 0,C,79 59,10C,1332 29,10D,28 29,104,11 22,111,11 16,20,110,-25,-4 0,21,-1,0,0 17,10C,1335 32,10D,28 21,10,7123540 0,D,27 0,A,-3380770 0,B,15129655 0,C,79 40,104,11 18,111,11 20,10C,1335 32,10D,28 21,20,97,-36,-11 0,21,-1,-1,0 16,104,11 18,111,11 10,10,7123560 0,D,27 0,A,-3380768 0,B,15129655 0,C,79 64,10C,1324 40,10D,28 35,104,11 19,111,11 2,20,102,-41,-8 0,21,-1,-1,-1 29,10C,1328 30,10,7123580 0,D,27 0,A,-3380767 0,B,15129655 0,C,79 38,10D,27 31,104,11 18,111,11 21,10C,1328 30,10D,27 22,20,92,-39,-7 0,21,-1,1,-1 18,104,12 8,10,7123600 0,D,26 0,A,-3380766 0,B,15129655 0,C,79 69,111,11 20,10C,1324 28,10D,27 29,104,11 23,111,11 5,20,102,-30,-24 0,21,-1,-1,-1 23,10,7123620 0,D,26 0,A,-3380764 0,B,15129655 0,C,79 60,10C,1312 31,10D,27 34,104,11 20,111,11 22,10C,1308 20,20,99,-29,-14 0,21,0,0,1 18,10D,27 34,104,11 22,111,11 21,10C,1304 28,10D,25 29,104,11 20,111,11 22,10C,1328 20,20,87,-37,-15 0,21,-1,0,0 18,10D,25 31,104,11 21,111,11 21,10C,1375 28,10D,25 29,104,11 20,111,11 23,10C,1359 30,20,99,-32,-13 0,21,0,0,0 13,10,7123680 0,D,25 0,A,-3380760 0,B,15129654 0,C,79 70,10D,25 29,104,11 21,111,11 20,10C,1371 29,10D,25 22,20,100,-34,-10 0,21,0,0,0 13,10,7123700 0,D,25 0,A,-3380759 0,B,15129654 0,C,79 70,104,11 15,111,11 22,10C,1355 26,10D,25 31,104,11 2,10,7123720 0,D,24 0,A,-3380758 0,B,15129654 0,C,79 48,20,109,-27,-11 0,21,0,0,-1 18,111,11 31,10C,1347 34,10D,24 35,104,11 17,111,11 14,10,7123740 0,D,24 0,A,-3380756 0,B,15129654 0,C,79 38,10C,1335 20,20,96,-27,3 0,21,0,0,0 18,10D,24 30,104,11 18,111,11 24,10C,1304 30,10D,24 34,104,12 20,111,12 2,10,7123760 0,D,24 0,A,-3380755 0,B,15129654 0,C,79 44,20,109,-12,-5 0,21,0,0,0 17,10C,1175 33,10D,24 29,104,14 18,111,12 22,10C,1136 29,10,7123780 0,D,23 0,A,-3380754 0,B,15129654 0,C,79 38,10D,24 22,20,108,-20,-15 0,21,0,1,-2 18,104,16 18,111,12 19,10C,1089 30,10D,23 30,10,7123800 0,D,23 0,A,-3380753 0,B,15129654 0,C,79 39,104,16 15,111,11 22,10C,1066 20,20,99,-23,-11 0,21,0,0,0 18,10D,23 29,104,16 22,111,12 21,10C,1023 22,10,7123820 0,D,23 0,A,-3380752 0,B,15129654 0,C,79 39,10D,23 34,104,17 15,20,108,-22,0 0,21,0,0,1 18,111,12 18,10C,980 26,10D,23 34,104,18 7,10,7123840 0,D,23 0,A,-3380750 0,B,15129654 0,C,79 38,111,11 18,10C,953 28,10D,23 21,20,97,-39,-3 0,21,0,0,0 19,104,18 17,111,12 19,10C,925 29,10D,23 24,10,7123860 0,D,22 0,A,-3380749 0,B,15129654 0,C,79 44,104,20 30,111,11 21,10C,921 18,20,106,-27,-10 0,21,0,0,0 18,10D,21 32,104,20 20,111,11 3,10,7123880 0,D,22 0,A,-3380748 0,B,15129653 0,C,79 73,10C,902 28,10D,21 29,104,20 2,20,118,-38,-10 0,21,1,-5,-4 29,111,11 19,10C,890 29,10D,21 31,104,20 21,111,11 21,10C,890 27,10D,21 27,20,69,-9,-4 0,21,0,0,-3 16,104,20 17,111,11 23,10C,871 22,10,7123920 0,D,20 0,A,-3380746 0,B,15129653 0,C,79 44,10D,21 34,104,20 18,111,11 21,10C,863 19,20,14,-67,19 0,21,1,-2,7 16,10D,20 30,104,20 3,10,7123940 0,D,20 0,A,-3380745 0,B,15129653 0,C,79 73,111,11 18,10C,851 29,10D,20 29,104,21 2,20,103,-52,14 0,21,0,0,18 31,111,11 20,10C,843 19,10,7123960 0,D,21 0,A,-3380744 0,B,15129653 0,C,79 39,10D,20 31,104,21 18,111,11 24,10C,851 19,20,91,-24,-2 0,21,0,-1,-9 17,10D,20 26,10,7123980 0,D,20 0,A,-3380743 0,B,15129652 0,C,79 53,104,21 28,111,11 19,10C,851 32,10D,20 28,104,21 1,20,69,-27,-10 0,21,0,0,-9 29,111,11 13,10,7124000 0,D,20 0,A,-3380742 0,B,15129652 0,C,79 55,10C,863 27,10D,20 31,104,20 22,111,13 19,10C,875 19,20,100,-31,-7 0,21,0,0,3 23,10D,20 34,10,7124020 0,D,19 0,A,-3380741 0,B,15129652 0,C,79 40,104,25 18,111,14 19,10C,933 28,10D,20 32,104,31 8,20,88,-25,-1 0,21,0,0,1 16,111,15 13,10,7124040 0,D,20 0,A,-3380740 0,B,15129652 0,C,79 66,10C,1011 33,10D,20 34,104,34 16,111,16 21,10C,1289 19,20,97,-26,-3 0,21,0,0,0 19,10D,20 30,104,35 19,111,16 23,10C,1382 32,10D,20 30,104,38 21,111,18 22,10C,1429 19,20,104,-17,10 0,21,0,0,0 15,10,7124080 0,D,20 0,A,-3380738 0,B,15129651 0,C,79 68,10D,20 41,104,46 19,111,18 22,10C,1574 26,10,7124100 0,D,20 0,A,-3380737 0,B,15129651 0,C,79 42,10D,20 21,20,95,-16,-16 0,21,0,0,0 19,104,49 14,111,18 23,10C,1667 28,10D,20 28,104,48 20,111,18 3,10,7124120 0,D,20 0,A,-3380736 0,B,15129651 0,C,79 56,10C,1703 19,20,92,-17,-10 0,21,0,-1,-1 17,10D,20 31,104,47 22,111,18 19,10C,1703 31,10D,20 22,10,7124140 0,D,21 0,A,-3380735 0,B,15129650 0,C,79 39,104,47 19,111,18 2,20,102,-6,-11 0,21,0,0,-2 26,10C,1460 32,10D,21 32,104,51 19,111,18 15,10,7124160 0,D,21 0,A,-3380734 0,B,15129650 0,C,79 39,10C,1308 27,10D,21 35,20,106,-12,-9 0,21,0,0,-1 17,104,55 19,111,18 22,10C,1343 26,10D,21 24,10,7124180 0,D,22 0,A,-3380733 0,B,15129650 0,C,79 40,104,56 18,111,18 19,10C,1316 20,20,94,-17,-8 0,21,0,0,-1 18,10D,21 38,104,57 27,111,18 12,10,7124200 0,D,23 0,A,-3380732 0,B,15129649 0,C,79 38,10C,1363 29,10D,21 29,104,56 12,20,101,-18,-19 0,21,0,-1,1 17,111,18 15,10C,1363 30,10D,23 30,104,55 2,10,7124220 0,D,24 0,A,-3380731 0,B,15129649 0,C,79 52,111,18 24,10C,1398 28,10D,23 21,20,111,-14,-5 0,21,1,-1,1 17,104,54 18,111,18 18,10C,1417 36,10D,23 31,104,53 17,111,18 20,10C,1445 33,10D,23 21,20,114,-11,-15 0,21,0,-1,1 17,104,53 14,111,18 23,10C,1460 21,10,7124260 0,D,25 0,A,-3380728 0,B,15129648 0,C,79 47,10D,23 29,104,49 20,111,15 23,10C,1484 20,20,92,-15,-11 0,21,0,1,0 16,10D,23 30,104,40 3,10,7124280 0,D,26 0,A,-3380727 0,B,15129647 0,C,79 68,111,14 22,10C,1500 29,10D,25 28,104,32 4,20,107,-16,-7 0,21,0,-2,0 37,111,14 14,10,7124300 0,D,27 0,A,-3380726 0,B,15129647 0,C,79 46,10C,1527 32,10D,25 34,104,24 19,111,14 18,20,110,-10,-11 0,21,0,0,0 20,10C,1519 41,10D,25 25,10,7124320 0,D,27 0,A,-3380724 0,B,15129646 0,C,78 38,104,22 18,111,13 20,10C,1515 32,10D,25 20,20,91,-28,-12 0,21,0,-1,0 16,104,20 13,10,7124340 0,D,27 0,A,-3380723 0,B,15129645 0,C,78 66,111,12 20,10C,1535 28,10D,25 29,104,17 20,111,12 8,20,103,-24,-12 0,21,1,0,0 29,10C,1527 20,10,7124360 0,D,28 0,A,-3380722 0,B,15129645 0,C,78 47,10D,27 34,104,14 18,111,11 21,10C,1535 29,10D,27 21,20,108,-22,-10 0,21,0,0,-1 19,104,13 15,111,13 11,10,7124380 0,D,28 0,A,-3380720 0,B,15129644 0,C,77 63,10C,1523 32,10D,27 33,104,16 25,111,13 2,20,104,-16,-6 0,21,0,0,-1 19,10,7124400 0,D,28 0,A,-3380719 0,B,15129643 0,C,77 64,10C,1457 31,10D,27 34,104,18 19,111,14 23,10C,1371 20,20,101,-26,-16 0,21,0,-1,-1 18,10D,27 31,104,23 20,111,16 21,10C,1351 28,10D,27 29,104,28 19,111,16 23,10C,1378 19,20,100,-23,-12 0,21,0,-1,0 20,10D,27 30,104,31 21,111,16 21,10C,1335 28,10D,27 29,104,33 19,111,16 24,10C,1324 19,20,97,-22,-11 0,21,0,-1,0 15,10,7124460 0,D,28 0,A,-3380715 0,B,15129641 0,C,77 68,10D,27 46,104,37 19,111,16 19,10C,1332 29,10D,27 21,20,112,-9,-2 0,21,0,0,0 19,104,40 18,111,16 20,10C,1367 28,10D,27 29,104,40 23,111,16 30,10C,1359 21,10,7124500 0,D,29 0,A,-3380713 0,B,15129640 0,C,77 38,10D,27 21,20,85,-19,-17 0,21,0,0,-2 18,104,40 15,111,16 23,10C,1378 26,10D,27 32,104,40 9,10,7124520 0,D,29 0,A,-3380711 0,B,15129639 0,C,77 39,111,16 18,10C,1375 20,20,110,-14,-14 0,21,0,-2,0 18,10D,27 30,104,40 22,111,16 19,10C,1390 29,10D,27 21,10,7124540 0,D,29 0,A,-3380710 0,B,15129638 0,C,77 38,104,40 15,111,16 11,20,114,-18,-22 0,21,0,0,-1 17,10C,1394 29,10D,27 28,104,38 22,111,16 18,10C,1402 21,10,7124560 0,D,30 0,A,-3380709 0,B,15129637 0,C,77 38,10D,27 30,20,104,-21,-10 0,21,0,-1,-2 18,104,34 18,111,14 23,10C,1394 26,10D,29 30,104,30 3,10,7124580 0,D,30 0,A,-3380707 0,B,15129636 0,C,77 55,111,14 19,10C,1394 19,20,100,-24,-42 0,21,0,0,0 19,10D,29 33,104,26 17,111,14 20,10C,1386 42,10D,29 30,104,24 24,111,13 15,10C,1375 21,20,111,-14,-12 0,21,0,1,3 17,10D,29 32,104,22 15,111,12 22,10,7124620 0,D,31 0,A,-3380705 0,B,15129634 0,C,77 49,10C,1367 41,10D,29 27,20,124,-1,-2 0,21,0,1,2 19,104,20 16,111,12 21,10C,1332 25,10,7124640 0,D,31 0,A,-3380703 0,B,15129633 0,C,77 41,10D,30 34,104,17 19,111,12 24,10C,1375 19,20,90,-36,-1 0,21,0,0,2 18,10D,30 32,104,14 16,10,7124660 0,D,31 0,A,-3380702 0,B,15129632 0,C,77 44,111,12 18,10C,1359 28,10D,30 30,104,14 15,20,108,-16,-8 0,21,0,0,-2 17,111,11 16,10C,1375 29,10D,30 21,10,7124680 0,D,31 0,A,-3380701 0,B,15129631 0,C,77 39,104,13 14,111,11 20,10C,1343 33,10D,30 20,20,111,-30,-11 0,21,0,0,0 22,104,12 16,111,11 20,10,7124700 0,D,31 0,A,-3380700 0,B,15129630 0,C,77 51,10C,1371 28,10D,30 30,104,11 18,111,11 16,20,94,-30,-16 0,21,0,1,-1 16,10C,1335 31,10D,30 22,10,7124720 0,D,31 0,A,-3380698 0,B,15129629 0,C,77 40,104,11 19,111,13 18,10C,1343 29,10D,30 25,20,90,-23,1 0,21,-1,0,-2 17,104,15 13,111,13 26,10C,1355 19,10,7124740 0,D,30 0,A,-3380697 0,B,15129628 0,C,77 47,10D,30 34,104,18 19,111,13 15,10C,1359 19,20,106,-22,-18 0,21,0,1,0 17,10D,30 30,104,20 2,10,7124760 0,D,30 0,A,-3380696 0,B,15129627 0,C,77 73,111,13 31,10C,1320 34,10D,30 20,20,91,-27,-20 0,21,-1,0,2 17,104,20 19,111,12 2,10,7124780 0,D,30 0,A,-3380695 0,B,15129626 0,C,77 80,10C,1351 33,10D,30 32,104,16 15,111,11 2,20,107,-26,-14 0,21,-1,0,0 33,10C,1363 29,10,7124800 0,D,30 0,A,-3380693 0,B,15129625 0,C,77 38,10D,30 34,104,14 19,111,11 20,10C,1367 27,20,101,-29,-20 0,21,-2,-2,-2 16,10D,30 35,104,13 15,10,7124820 0,D,30 0,A,-3380692 0,B,15129624 0,C,76 43,111,11 14,10C,1371 32,10D,30 33,104,11 12,20,101,-21,-5 0,21,-1,1,-1 21,111,11 16,10,7124840 0,D,30 0,A,-3380691 0,B,15129623 0,C,76 60,10C,1367 27,10D,30 34,104,11 19,111,11 24,10C,1343 18,20,116,-18,-22 0,21,-2,-1,0 20,10D,30 30,104,11 21,111,11 21,10C,1363 28,10D,30 30,104,11 18,111,11 23,10C,1347 19,20,102,-29,-17 0,21,-1,0,-1 19,10D,30 30,104,11 22,111,11 20,10C,1355 29,10D,30 30,104,11 20,111,11 21,10C,1343 19,20,98,-26,-20 0,21,-1,0,0 19,10D,30 40,104,11 21,111,11 21,10C,1343 28,10D,30 29,104,11 19,111,11 21,10C,1335 19,20,102,-29,-17 0,21,-1,0,0 15,10,7124920 0,D,29 0,A,-3380686 0,B,15129619 0,C,76 69,10D,29 41,104,11 22,111,11 19,10C,1335 29,10D,29 21,20,100,-30,-22 0,21,-1,0,0 20,104,11 14,111,11 24,10C,1339 28,10D,29 29,104,11 20,111,11 22,10C,1339 23,10,7124960 0,D,28 0,A,-3380683 0,B,15129617 0,C,76 38,10D,29 22,20,102,-29,-14 0,21,0,1,2 17,104,11 19,111,11 18,10C,1335 31,10D,29 29,104,11 19,111,11 2,10,7124980 0,D,28 0,A,-3380682 0,B,15129616 0,C,76 56,10C,1343 20,20,101,-27,-5 0,21,-1,-1,0 17,10D,29 31,104,11 22,111,11 19,10C,1355 32,10D,27 21,10,7125000 0,D,28 0,A,-3380681 0,B,15129615 0,C,76 42,104,11 17,20,99,-31,-4 0,21,0,0,0 17,111,11 14,10C,1503 32,10D,27 29,104,10 20,111,11 5,10,7125020 0,D,27 0,A,-3380680 0,B,15129614 0,C,76 53,10C,1472 32,10D,27 22,20,94,-29,-3 0,21,0,-1,0 17,104,10 18,111,11 18,10C,1500 31,10D,27 22,10,7125040 0,D,27 0,A,-3380679 0,B,15129613 0,C,76 39,104,10 19,111,11 18,10C,1484 20,20,93,-22,-3 0,21,0,0,0 17,10D,27 33,104,10 15,111,11 26,10C,1472 19,10,7125060 0,D,27 0,A,-3380678 0,B,15129612 0,C,76 39,10D,26 30,104,10 22,111,11 23,20,102,-33,-4 0,21,0,0,0 19,10C,1457 27,10D,26 31,104,10 21,111,11 2,10,7125080 0,D,27 0,A,-3380676 0,B,15129611 0,C,75 56,10C,1453 31,10D,26 22,20,87,-36,-13 0,21,0,0,0 17,104,10 13,111,11 25,10C,1437 21,10,7125100 0,D,26 0,A,-3380675 0,B,15129610 0,C,75 46,10D,26 29,104,10 33,111,11 20,10C,1425 18,20,97,-32,0 0,21,0,0,0 16,10D,26 35,104,10 20,111,11 2,10,7125120 0,D,26 0,A,-3380674 0,B,15129610 0,C,75 61,10C,1402 33,10D,25 32,104,10 2,20,103,-26,-8 0,21,0,0,0 29,111,11 2,10,7125140 0,D,25 0,A,-3380673 0,B,15129609 0,C,75 78,10C,1386 28,10D,25 30,104,11 21,111,11 13,20,106,-20,-9 0,21,0,0,0 17,10C,1382 29,10D,25 31,104,11 22,111,11 19,10C,1367 29,10D,25 29,104,11 21,111,11 3,20,101,-32,-14 0,21,0,0,0 29,10C,1355 20,10,7125180 0,D,25 0,A,-3380671 0,B,15129607 0,C,75 47,10D,25 30,104,11 23,111,11 19,10C,1335 31,10D,25 20,20,96,-34,-7 0,21,0,0,0 19,104,11 7,10,7125200 0,D,24 0,A,-3380670 0,B,15129606 0,C,75 69,111,11 20,10C,1386 37,10D,24 32,104,11 19,111,11 2,20,99,-31,-5 0,21,0,-1,0 14,10,7125220 0,D,24 0,A,-3380669 0,B,15129605 0,C,75 79,10C,1449 40,10D,24 35,104,10 18,111,11 14,20,92,-35,-13 0,21,0,-1,0 14,10,7125240 0,D,23 0,A,-3380668 0,B,15129604 0,C,75 69,10C,1371 28,10D,24 30,104,11 22,111,11 19,10C,1312 19,20,97,-24,1 0,21,0,-1,0 19,10D,24 31,104,11 21,111,11 21,10C,1242 28,10D,24 29,104,12 22,111,12 20,10C,1179 19,20,100,-23,-11 0,21,0,-1,0 20,10D,23 30,104,14 21,111,11 20,10C,1164 29,10D,23 33,104,15 18,111,11 22,10C,1148 19,20,99,-27,-2 0,21,0,0,0 15,10,7125300 0,D,22 0,A,-3380665 0,B,15129602 0,C,75 72,10D,23 41,104,15 22,111,11 19,10C,1128 30,10D,23 20,20,103,-25,-15 0,21,0,-2,0 20,104,14 14,111,11 20,10C,1113 32,10D,23 33,104,14 19,111,11 24,10C,1093 21,10,7125340 0,D,22 0,A,-3380664 0,B,15129600 0,C,75 38,10D,23 21,20,99,-30,-12 0,21,-1,0,0 19,104,14 17,111,11 15,10C,1082 31,10D,21 29,104,14 16,10,7125360 0,D,22 0,A,-3380663 0,B,15129600 0,C,75 39,111,11 18,10C,1066 20,20,96,-34,-9 0,21,-1,0,-1 17,10D,21 31,104,15 18,111,11 23,10C,1046 28,10D,21 22,10,7125380 0,D,21 0,A,-3380662 0,B,15129599 0,C,75 43,104,15 18,20,191,-48,-39 0,21,-2,-1,-9 20,111,11 18,10C,1031 28,10D,21 32,104,16 20,111,11 10,10,7125400 0,D,21 0,A,-3380661 0,B,15129598 0,C,75 38,10C,1000 32,10D,21 22,20,87,-9,-11 0,21,-1,0,0 17,104,16 25,111,11 20,10C,972 31,10D,20 22,10,7125420 0,D,20 0,A,-3380660 0,B,15129597 0,C,75 38,104,17 19,111,11 15,10C,976 19,20,70,-13,-16 0,21,0,0,3 18,10D,20 33,104,17 14,111,11 25,10C,972 20,10,7125440 0,D,20 0,A,-3380660 0,B,15129596 0,C,75 38,10D,20 34,104,17 18,111,11 2,20,105,-35,1 0,21,0,0,14 31,10C,964 33,10D,20 30,104,17 3,10,7125460 0,D,21 0,A,-3380659 0,B,15129596 0,C,75 51,111,11 22,10C,964 28,10D,20 21,20,83,-34,-7 0,21,-1,0,-9 18,104,17 17,111,11 20,10C,968 28,10D,20 31,104,17 19,111,11 23,10C,976 28,10D,20 21,20,98,-27,-5 0,21,-1,0,-8 18,104,17 17,111,12 21,10C,960 20,10,7125500 0,D,19 0,A,-3380657 0,B,15129594 0,C,75 47,10D,20 30,104,24 22,111,15 21,10C,984 27,20,109,-31,-13 0,21,0,0,3 18,10D,20 34,104,31 19,111,16 3,10,7125520 0,D,19 0,A,-3380656 0,B,15129594 0,C,74 62,10C,1191 31,10D,20 37,20,83,-34,-18 0,21,0,0,0 20,104,35 18,111,17 2,10,7125540 0,D,20 0,A,-3380656 0,B,15129593 0,C,74 82,10C,1582 28,10D,20 29,104,38 22,111,19 2,20,100,-27,-6 0,21,0,0,0 29,10C,1695 21,10,7125560 0,D,19 0,A,-3380655 0,B,15129592 0,C,74 47,10D,20 30,104,47 23,111,20 19,10C,1792 30,10D,20 21,20,112,-9,-8 0,21,-1,0,0 19,104,50 7,10,7125580 0,D,19 0,A,-3380654 0,B,15129591 0,C,74 69,111,20 20,10C,1847 29,10D,20 28,104,51 20,111,20 8,20,113,-3,-7 0,21,-1,-1,0 22,10,7125600 0,D,20 0,A,-3380653 0,B,15129591 0,C,74 64,10C,1882 33,10D,20 29,104,51 31,111,20 20,10C,1902 19,20,102,-3,-14 0,21,0,0,0 19,10D,20 30,104,51 19,111,20 23,10C,1894 29,10D,21 28,104,50 22,111,20 21,10C,1878 20,20,106,-11,-17 0,21,-1,0,0 14,10,7125640 0,D,21 0,A,-3380652 0,B,15129589 0,C,74 70,10D,21 30,104,52 20,111,19 21,10C,1644 27,10D,21 22,20,146,-10,4 0,21,-1,-2,8 14,10,7125660 0,D,22 0,A,-3380651 0,B,15129588 0,C,74 69,104,49 15,111,19 23,10C,1375 29,10D,21 34,104,55 2,10,7125680 0,D,23 0,A,-3380650 0,B,15129587 0,C,74 44,20,95,-12,-13 0,21,-1,0,0 23,111,18 26,10C,1355 34,10D,21 30,104,55 21,111,18 19,10C,1355 20,10,7125700 0,D,24 0,A,-3380649 0,B,15129586 0,C,74 38,10D,23 22,20,92,-20,-22 0,21,0,0,-1 17,104,51 18,111,17 20,10C,1359 31,10D,23 38,104,47 3,10,7125720 0,D,24 0,A,-3380648 0,B,15129585 0,C,74 55,111,16 18,10C,1324 20,20,109,-18,5 0,21,-1,0,0 18,10D,23 33,104,43 18,111,16 21,10C,1328 30,10D,23 30,104,41 22,111,16 19,10C,1312 20,20,98,-22,-7 0,21,-1,0,0 17,10D,23 33,104,40 18,111,16 23,10C,1332 20,10,7125760 0,D,25 0,A,-3380646 0,B,15129583 0,C,74 42,10D,23 30,104,40 19,20,102,-19,-17 0,21,-1,0,0 18,111,16 17,10C,1316 30,10D,25 28,10,7125780 0,D,26 0,A,-3380645 0,B,15129583 0,C,74 37,104,40 16,111,16 21,10C,1316 29,10D,25 21,20,106,-14,-8 0,21,0,0,0 18,104,40 16,111,16 20,10C,1324 28,10D,25 31,104,38 23,111,14 19,10C,1328 28,10D,25 21,20,114,-9,-1 0,21,-1,-2,2 18,104,35 17,111,13 30,10C,1328 21,10,7125820 0,D,27 0,A,-3380643 0,B,15129581 0,C,74 38,10D,25 30,104,28 22,111,13 21,10C,1343 19,20,76,-32,-11 0,21,0,0,0 18,10D,25 32,104,24 24,10,7125840 0,D,27 0,A,-3380642 0,B,15129580 0,C,74 40,111,12 14,10C,1312 29,10D,26 34,104,22 10,20,94,-29,-14 0,21,0,0,0 15,111,12 18,10C,1343 28,10D,26 31,104,20 19,111,12 23,10C,1343 28,10D,26 31,104,17 10,20,77,-41,-29 0,21,-1,0,0 16,111,11 21,10C,1328 28,10D,26 35,104,15 19,111,11 23,10C,1328 28,10D,26 29,104,14 3,20,104,-23,-3 0,21,0,0,1 27,111,11 22,10C,1304 20,10,7125900 0,D,27 0,A,-3380639 0,B,15129576 0,C,74 40,10D,26 34,104,13 18,111,11 20,10C,1324 19,20,94,-30,-16 0,21,-1,2,1 17,10D,26 40,104,12 19,111,11 4,10,7125920 0,D,27 0,A,-3380638 0,B,15129575 0,C,73 51,10C,1316 32,10D,26 33,104,12 7,20,94,-27,-5 0,21,-1,0,-1 16,111,11 18,10C,1324 21,10,7125940 0,D,27 0,A,-3380636 0,B,15129574 0,C,73 52,10D,26 31,104,12 19,111,11 23,10C,1320 20,20,104,-25,-7 0,21,-1,0,0 16,10D,26 31,10,7125960 0,D,26 0,A,-3380635 0,B,15129573 0,C,73 50,104,11 18,111,11 20,10C,1308 28,10D,26 29,104,11 8,20,94,-32,-9 0,21,-2,0,0 28,111,11 18,10,7125980 0,D,26 0,A,-3380634 0,B,15129572 0,C,73 51,10C,1308 31,10D,26 30,104,11 35,111,11 9,20,100,-27,-22 0,21,-1,0,0 16,10C,1312 28,10D,26 23,10,7130000 0,D,26 0,A,-3380633 0,B,15129571 0,C,73 43,104,11 14,111,11 24,10C,1316 28,10D,26 25,20,92,-33,-26 0,21,-2,-1,1 16,104,11 23,111,11 12,10,7130020 0,D,26 0,A,-3380632 0,B,15129570 0,C,73 57,10C,1316 32,10D,26 30,104,11 18,111,12 14,20,91,-29,-18 0,21,-2,0,0 16,10C,1320 25,10,7130040 0,D,26 0,A,-3380631 0,B,15129569 0,C,73 54,10D,26 35,104,13 17,111,14 20,10C,1328 31,10D,26 22,20,99,-33,-11 0,21,-3,-1,0 17,104,17 7,10,7130060 0,D,26 0,A,-3380630 0,B,15129568 0,C,73 71,111,14 19,10C,1355 28,10D,26 30,104,23 18,111,14 13,20,114,-25,-16 0,21,-2,0,0 19,10C,1347 20,10,7130080 0,D,26 0,A,-3380629 0,B,15129568 0,C,73 58,10D,26 33,104,26 19,111,14 18,10C,1335 30,10D,26 22,20,95,-24,-17 0,21,-2,-1,0 18,104,27 15,111,14 23,10C,1332 29,10D,26 29,104,26 19,111,13 22,10C,1347 30,10D,26 31,20,103,-21,-22 0,21,-2,3,5 18,104,23 15,111,13 22,10C,1332 29,10D,26 29,104,23 19,111,13 22,10C,1273 29,10D,26 21,20,102,-26,-23 0,21,-2,0,1 14,10,7130140 0,D,26 0,A,-3380626 0,B,15129565 0,C,73 69,104,23 31,111,13 20,10C,1253 29,10D,26 31,104,24 6,20,97,-30,-12 0,21,-2,2,0 13,10,7130160 0,D,26 0,A,-3380625 0,B,15129564 0,C,72 79,111,13 23,10C,1242 29,10D,26 30,104,24 6,10,7130180 0,D,27 0,A,-3380624 0,B,15129563 0,C,72 40,20,98,-28,-9 0,21,-3,1,-1 18,111,13 15,10C,1218 32,10D,26 34,104,25 13,111,13 23,10C,1203 28,10D,27 23,10,7130200 0,D,27 0,A,-3380623 0,B,15129562 0,C,72 37,104,25 8,20,100,-22,-17 0,21,-3,0,-1 17,111,12 14,10C,1187 32,10D,27 33,104,22 19,111,12 21,10,7130220 0,D,28 0,A,-3380621 0,B,15129561 0,C,72 43,10C,1183 24,20,91,-33,-20 0,21,-4,0,1 18,10D,27 30,104,20 21,111,11 19,10C,1226 31,10D,27 23,10,7130240 0,D,28 0,A,-3380620 0,B,15129560 0,C,72 39,104,16 18,111,11 1,20,102,-26,-24 0,21,-5,0,0 31,10C,1210 32,10D,27 31,104,15 21,111,11 12,10,7130260 0,D,28 0,A,-3380619 0,B,15129559 0,C,72 39,10C,1226 28,10D,28 21,20,97,-21,-31 0,21,-5,0,-1 19,104,14 14,111,11 19,10C,1222 30,10D,28 31,104,13 2,10,7130280 0,D,27 0,A,-3380618 0,B,15129559 0,C,72 52,111,11 23,10C,1203 35,20,90,-32,-26 0,21,-5,1,0 20,10D,28 32,104,14 15,111,13 21,10C,1207 20,10,7130300 0,D,27 0,A,-3380617 0,B,15129558 0,C,72 39,10D,28 30,104,17 21,111,13 2,20,109,-10,-23 0,21,-5,2,-1 30,10C,1144 26,10D,28 30,104,20 3,10,7130320 0,D,27 0,A,-3380615 0,B,15129557 0,C,72 66,111,14 17,10C,1210 29,10D,28 21,20,98,-27,-23 0,21,-5,1,0 18,104,23 16,111,14 22,10C,1199 21,10,7130340 0,D,27 0,A,-3380614 0,B,15129557 0,C,72 46,10D,27 33,104,25 19,111,14 20,10C,1203 19,20,92,-26,-16 0,21,-5,0,0 17,10D,27 29,104,26 8,10,7130360 0,D,27 0,A,-3380613 0,B,15129556 0,C,72 68,111,14 19,10C,1167 31,10D,27 30,20,103,-24,-22 0,21,-5,0,-1 16,104,28 18,111,14 17,10,7130380 0,D,27 0,A,-3380611 0,B,15129556 0,C,72 58,10C,1179 31,10D,27 34,104,29 20,111,14 8,20,92,-23,-24 0,21,-5,1,1 16,10C,1179 32,10D,27 21,10,7130400 0,D,27 0,A,-3380610 0,B,15129555 0,C,72 40,104,29 19,111,14 18,10C,1183 32,10D,26 26,20,111,-16,-21 0,21,-5,0,0 16,104,29 17,111,14 15,10,7130420 0,D,27 0,A,-3380609 0,B,15129555 0,C,72 59,10C,1191 42,10D,26 34,104,29 59,20,89,-27,-20 0,21,-4,0,0 21,111,14 15,10C,1203 20,10,7130440 0,D,27 0,A,-3380607 0,B,15129554 0,C,71 53,10D,26 29,104,29 21,111,14 20,10C,1203 26,20,94,-27,-19 0,21,-4,0,0 17,10D,26 31,104,29 23,111,14 19,10C,1222 29,10D,26 33,104,29 17,111,14 23,10C,1238 19,20,91,-25,-10 0,21,-3,0,0 13,10,7130480 0,D,27 0,A,-3380605 0,B,15129554 0,C,71 70,10D,27 30,104,29 21,111,14 21,10C,1269 27,10D,27 22,20,114,-17,-11 0,21,-2,0,-1 14,10,7130500 0,D,27 0,A,-3380603 0,B,15129553 0,C,71 69,104,29 19,111,15 19,10C,1296 33,10D,27 31,104,31 19,111,15 2,20,106,-17,-16 0,21,-2,0,-2 13,10,7130520 0,D,27 0,A,-3380602 0,B,15129553 0,C,70 84,10C,1324 36,10D,27 28,104,32 7,10,7130540 0,D,27 0,A,-3380601 0,B,15129553 0,C,70 40,20,104,-20,-20 0,21,-2,0,0 18,111,15 18,10C,1324 29,10D,28 30,104,32 20,111,14 21,10C,1312 28,10D,28 22,10,7130560 0,D,28 0,A,-3380599 0,B,15129552 0,C,70 38,104,30 7,20,98,-15,-10 0,21,-1,0,-1 17,111,13 19,10C,1273 27,10D,28 30,104,27 20,111,13 20,10C,1257 20,10,7130580 0,D,28 0,A,-3380598 0,B,15129552 0,C,70 44,10D,28 32,20,108,-5,-3 0,21,-1,-1,0 20,104,24 18,111,12 16,10C,1265 29,10D,28 31,104,21 18,111,12 7,10,7130600 0,D,28 0,A,-3380596 0,B,15129552 0,C,70 51,10C,1242 19,20,109,-16,-10 0,21,0,0,1 19,10D,28 32,104,18 19,111,11 20,10C,1257 22,10,7130620 0,D,28 0,A,-3380595 0,B,15129551 0,C,70 38,10D,28 29,104,16 22,111,12 2,20,105,-19,-8 0,21,-1,-3,1 27,10C,1257 38,10D,28 31,104,15 2,10,7130640 0,D,28 0,A,-3380593 0,B,15129551 0,C,70 52,111,12 22,10C,1261 29,10D,28 21,20,104,-28,-22 0,21,-1,0,-3 18,104,15 20,111,12 24,10C,1234 28,10D,28 35,104,15 18,111,12 24,10C,1222 28,10D,28 21,20,108,-24,-11 0,21,0,0,-2 18,104,16 17,111,12 17,10C,1199 21,10,7130680 0,D,28 0,A,-3380591 0,B,15129550 0,C,70 49,10D,28 30,104,16 21,111,12 21,10C,1164 19,20,100,-28,-17 0,21,0,0,1 17,10D,27 33,104,16 2,10,7130700 0,D,27 0,A,-3380589 0,B,15129550 0,C,70 66,111,12 22,10C,1136 29,10D,27 29,104,16 2,20,100,-22,-1 0,21,0,0,0 28,111,12 17,10C,1136 20,10,7130720 0,D,27 0,A,-3380588 0,B,15129549 0,C,70 44,10D,27 30,104,17 20,111,12 31,10C,1152 30,20,105,-19,-9 0,21,0,0,0 17,10D,27 23,10,7130740 0,D,27 0,A,-3380587 0,B,15129549 0,C,70 56,104,17 19,111,14 14,10C,1160 29,10D,27 31,104,22 12,20,101,-21,1 0,21,1,0,-1 17,111,15 12,10,7130760 0,D,27 0,A,-3380585 0,B,15129549 0,C,70 67,10C,1210 32,10D,26 30,104,28 21,111,15 20,10C,1234 20,20,80,-36,-11 0,21,1,-2,0 18,10D,26 31,104,32 18,111,15 24,10C,1218 29,10D,26 29,104,33 21,111,15 20,10C,1203 20,20,115,-22,-16 0,21,2,0,0 18,10D,26 32,104,34 17,111,15 24,10C,1207 29,10D,26 28,104,36 20,111,15 20,10C,1218 20,20,89,-20,-21 0,21,2,0,-2 14,10,7130820 0,D,27 0,A,-3380581 0,B,15129547 0,C,70 69,10D,26 33,104,36 19,111,15 32,10C,1226 29,10D,26 22,20,111,-5,-9 0,21,2,-1,-1 18,104,36 19,111,15 14,10C,1226 33,10D,26 33,104,36 14,111,15 20,10C,1230 29,10D,26 21,20,96,-32,-16 0,21,2,0,0 19,104,35 18,111,15 20,10C,1238 28,10D,26 29,104,35 23,111,15 19,10C,1246 30,10D,26 21,20,114,-13,-1 0,21,2,0,0 19,104,34 14,111,14 20,10C,1257 32,10D,26 33,104,32 19,111,14 21,10C,1253 21,10,7130900 0,D,28 0,A,-3380576 0,B,15129545 0,C,70 42,10D,27 33,20,96,-19,4 0,21,1,-1,0 20,104,28 14,111,13 20,10C,1234 29,10D,27 27,10,7130920 0,D,28 0,A,-3380575 0,B,15129544 0,C,70 39,104,26 14,111,12 20,10C,1253 20,20,101,-26,7 0,21,1,0,0 17,10D,27 33,104,22 19,111,12 29,10C,1242 21,10,7130940 0,D,28 0,A,-3380573 0,B,15129543 0,C,70 39,10D,27 34,104,20 10,20,94,-26,-1 0,21,1,-1,0 18,111,12 18,10C,1210 27,10D,27 32,104,17 9,10,7130960 0,D,28 0,A,-3380572 0,B,15129542 0,C,70 39,111,11 14,10C,1246 33,10D,27 22,20,100,-24,-8 0,21,1,-1,0 21,104,15 14,111,11 22,10C,1230 28,10D,27 22,10,7130980 0,D,28 0,A,-3380571 0,B,15129542 0,C,70 38,104,14 16,111,11 21,10C,1222 19,20,99,-31,2 0,21,1,0,1 18,10D,27 33,104,13 18,111,11 20,10,7131000 0,D,28 0,A,-3380570 0,B,15129541 0,C,70 37,10C,1191 29,10D,27 30,104,13 18,20,107,-28,-6 0,21,0,0,0 18,111,11 13,10C,1195 30,10D,27 30,104,13 19,111,11 3,10,7131020 0,D,28 0,A,-3380568 0,B,15129540 0,C,70 54,10C,1199 29,10D,27 21,20,85,-35,-4 0,21,0,0,0 18,104,13 16,111,13 32,10C,1195 20,10,7131040 0,D,28 0,A,-3380567 0,B,15129539 0,C,70 42,10D,26 42,104,17 19,111,13 12,20,88,-31,-4 0,21,0,-1,0 16,10C,1207 34,10D,26 34,104,20 16,10,7131060 0,D,28 0,A,-3380566 0,B,15129538 0,C,71 38,111,13 16,10C,1199 27,10D,26 22,20,122,0,7 0,21,1,0,-4 17,104,22 17,111,13 24,10C,1191 21,10,7131080 0,D,27 0,A,-3380565 0,B,15129537 0,C,71 43,10D,26 32,104,24 20,111,13 15,10C,1195 21,20,90,-25,0 0,21,2,-2,-1 16,10D,26 32,104,25 12,10,7131100 0,D,27 0,A,-3380564 0,B,15129536 0,C,71 48,111,13 19,10C,1207 31,10D,26 31,104,25 11,20,131,-6,-5 0,21,3,0,0 20,111,13 21,10C,1183 29,10D,26 31,104,25 16,111,13 25,10C,1191 28,10D,26 29,104,26 2,20,98,-30,7 0,21,3,0,0 28,111,13 27,10,7131140 0,D,27 0,A,-3380561 0,B,15129534 0,C,71 42,10C,1191 33,10D,26 33,104,25 19,111,13 20,20,121,-12,9 0,21,3,0,0 16,10C,1195 32,10D,26 21,10,7131160 0,D,27 0,A,-3380560 0,B,15129533 0,C,71 40,104,25 15,111,13 22,10C,1207 29,10D,26 26,20,79,-28,10 0,21,3,-1,-1 15,104,25 14,111,13 21,10C,1210 19,10,7131180 0,D,27 0,A,-3380559 0,B,15129532 0,C,71 52,10D,26 34,104,25 35,111,13 12,20,114,-12,-8 0,21,4,-1,0 16,10C,1222 32,10D,26 22,10,7131200 0,D,27 0,A,-3380558 0,B,15129531 0,C,71 39,104,24 19,111,13 19,10C,1242 31,10D,26 22,20,86,-32,15 0,21,3,-1,1 16,104,24 18,111,13 16,10,7131220 0,D,27 0,A,-3380557 0,B,15129530 0,C,71 57,10C,1253 29,10D,26 30,104,26 22,111,14 13,20,111,-17,7 0,21,5,0,0 16,10C,1273 29,10D,26 30,10,7131240 0,D,27 0,A,-3380556 0,B,15129529 0,C,71 38,104,27 19,111,16 18,10C,1308 32,10D,26 21,20,102,-29,7 0,21,4,-3,-1 17,104,31 17,111,18 9,10,7131260 0,D,27 0,A,-3380556 0,B,15129527 0,C,71 65,10C,1304 29,10D,26 29,104,42 23,111,18 13,20,88,-19,14 0,21,5,-1,0 17,10C,1351 25,10,7131280 0,D,27 0,A,-3380555 0,B,15129526 0,C,71 54,10D,26 30,104,46 19,111,18 19,10C,1351 32,10D,26 20,20,114,-12,-2 0,21,3,-2,0 18,104,48 11,10,7131300 0,D,27 0,A,-3380554 0,B,15129525 0,C,71 66,111,18 20,10C,1304 29,10D,26 29,104,51 22,111,18 9,20,89,-32,17 0,21,4,-3,1 17,10C,1285 21,10,7131320 0,D,28 0,A,-3380553 0,B,15129523 0,C,71 57,10D,27 30,104,53 23,111,18 16,10C,1277 30,10D,27 37,20,113,-10,0 0,21,4,-1,0 21,104,54 28,111,18 15,10C,1277 28,10D,27 29,104,53 23,111,18 19,10C,1265 29,10D,27 21,20,94,-20,14 0,21,3,-1,-1 14,10,7131360 0,D,28 0,A,-3380552 0,B,15129520 0,C,71 69,104,53 16,111,18 21,10C,1261 30,10D,27 30,104,54 3,10,7131380 0,D,29 0,A,-3380551 0,B,15129519 0,C,71 44,20,113,-21,-15 0,21,4,1,-5 17,111,18 19,10C,1246 31,10D,27 30,104,53 19,111,17 23,10C,1238 30,10D,28 29,104,52 2,20,113,-11,-5 0,21,5,0,0 27,111,17 20,10C,1222 32,10D,28 33,104,52 23,111,17 18,10C,1214 20,10,7131420 0,D,30 0,A,-3380550 0,B,15129515 0,C,71 42,10D,28 22,20,120,-3,8 0,21,4,-2,1 17,104,51 19,111,17 22,10C,1218 26,10D,28 30,104,51 5,10,7131440 0,D,31 0,A,-3380550 0,B,15129514 0,C,71 52,111,17 31,10C,1226 19,20,94,-33,0 0,21,2,-1,0 18,10D,28 32,104,49 20,111,17 20,10C,1234 22,10,7131460 0,D,31 0,A,-3380549 0,B,15129512 0,C,71 38,10D,28 29,104,49 22,111,17 2,20,111,-11,1 0,21,1,-2,-2 31,10C,1250 29,10D,29 30,104,49 2,10,7131480 0,D,31 0,A,-3380549 0,B,15129510 0,C,71 52,111,17 24,10C,1265 29,10D,29 36,20,94,-17,-7 0,21,1,0,0 20,104,48 17,111,16 21,10C,1269 21,10,7131500 0,D,31 0,A,-3380548 0,B,15129508 0,C,71 43,10D,29 30,104,45 18,111,16 24,10C,1281 19,20,147,17,-27 0,21,0,0,1 17,10D,29 30,10,7131520 0,D,32 0,A,-3380548 0,B,15129506 0,C,71 51,104,44 18,111,15 20,10C,1285 28,10D,29 29,104,40 7,20,94,-17,5 0,21,0,0,-3 28,111,15 16,10C,1296 21,10,7131540 0,D,32 0,A,-3380548 0,B,15129504 0,C,71 44,10D,31 39,104,37 21,111,15 20,10C,1312 20,20,105,-20,-1 0,21,0,1,1 15,10D,31 31,104,35 24,111,14 2,10,7131560 0,D,32 0,A,-3380547 0,B,15129502 0,C,70 62,10C,1285 32,10D,31 29,104,32 5,20,106,-22,-18 0,21,-1,0,-1 23,111,13 18,10,7131580 0,D,32 0,A,-3380547 0,B,15129501 0,C,70 54,10C,1257 29,10D,31 29,104,28 23,111,13 18,10C,1210 20,20,111,-26,-4 0,21,0,0,0 16,10D,31 24,10,7131600 0,D,32 0,A,-3380546 0,B,15129499 0,C,70 55,104,25 15,111,12 19,10C,1214 32,10D,32 28,104,22 13,20,95,-29,-8 0,21,-1,0,2 19,111,12 7,10,7131620 0,D,33 0,A,-3380546 0,B,15129497 0,C,70 70,10C,1230 32,10D,32 30,104,20 19,111,11 22,10C,1242 33,20,109,-23,-4 0,21,-1,0,0 18,10D,32 34,104,16 29,111,11 14,10C,1234 32,10D,32 32,104,15 15,111,13 17,10,7131660 0,D,33 0,A,-3380545 0,B,15129493 0,C,70 39,10C,1230 20,20,113,-19,-6 0,21,-1,0,0 17,10D,32 34,104,18 18,111,14 24,10C,1261 25,10D,32 31,104,21 20,111,14 3,10,7131680 0,D,33 0,A,-3380545 0,B,15129491 0,C,70 43,20,118,-18,-6 0,21,0,0,0 18,10C,1218 28,10D,32 29,104,25 21,111,14 21,10C,1226 22,10,7131700 0,D,32 0,A,-3380544 0,B,15129489 0,C,70 38,10D,32 25,20,120,-7,-25 0,21,-1,-1,1 19,104,27 18,111,14 22,10C,1210 30,10D,32 29,104,29 5,10,7131720 0,D,32 0,A,-3380544 0,B,15129487 0,C,70 50,111,14 22,10C,1210 19,20,108,-23,-34 0,21,-1,0,0 19,10D,32 30,104,31 20,111,14 21,10C,1210 28,10D,32 31,104,31 18,111,14 34,10C,1210 20,20,96,-17,-10 0,21,-1,0,1 17,10D,32 30,104,32 21,111,14 19,10C,1210 20,10,7131760 0,D,33 0,A,-3380543 0,B,15129483 0,C,70 38,10D,32 34,104,32 18,111,14 3,20,115,-25,-9 0,21,-1,0,0 30,10C,1218 26,10D,32 30,104,32 2,10,7131780 0,D,33 0,A,-3380543 0,B,15129481 0,C,70 53,111,14 21,10C,1230 45,20,91,-21,-24 0,21,-1,0,2 20,10D,32 31,104,32 20,111,14 14,10,7131800 0,D,33 0,A,-3380543 0,B,15129479 0,C,70 39,10C,1246 32,10D,32 34,104,29 11,20,98,-29,-20 0,21,-2,0,0 17,111,14 18,10C,1257 29,10D,32 24,10,7131820 0,D,33 0,A,-3380542 0,B,15129477 0,C,70 38,104,28 18,111,13 20,10C,1265 28,10D,32 21,20,80,-35,-14 0,21,-2,3,3 17,104,26 18,111,13 22,10C,1273 22,10,7131840 0,D,34 0,A,-3380542 0,B,15129475 0,C,70 44,10D,32 34,104,24 28,111,13 17,20,96,-24,-18 0,21,-2,0,1 16,10C,1296 26,10D,32 30,104,23 20,111,12 6,10,7131860 0,D,34 0,A,-3380541 0,B,15129474 0,C,69 51,10C,1312 29,10D,32 25,20,95,-25,-12 0,21,-2,1,2 17,104,20 17,111,12 21,10C,1269 21,10,7131880 0,D,34 0,A,-3380541 0,B,15129472 0,C,69 46,10D,32 34,104,17 18,111,11 20,10C,1218 19,20,108,-14,-14 0,21,-2,1,1 17,10D,32 29,104,15 11,10,7131900 0,D,34 0,A,-3380540 0,B,15129470 0,C,69 53,111,11 18,10C,1261 29,10D,32 30,104,15 13,20,93,-20,-5 0,21,-2,0,1 16,111,12 14,10C,1257 29,10,7131920 0,D,34 0,A,-3380540 0,B,15129468 0,C,69 51,10D,32 30,104,18 41,111,13 19,20,95,-30,-13 0,21,-3,0,2 16,10C,1242 31,10D,32 22,10,7131940 0,D,34 0,A,-3380539 0,B,15129466 0,C,69 39,104,20 19,111,13 18,10C,1250 41,10D,32 22,20,115,-12,-5 0,21,-2,0,0 16,104,22 17,111,12 13,10,7131960 0,D,34 0,A,-3380539 0,B,15129464 0,C,69 61,10C,1250 29,10D,33 30,104,20 21,111,12 16,20,120,-1,0 0,21,-1,0,0 17,10C,1218 24,10,7131980 0,D,34 0,A,-3380538 0,B,15129462 0,C,69 55,10D,33 33,104,16 15,111,11 19,10C,1253 32,10D,33 20,20,85,-34,-6 0,21,-1,1,-2 17,104,15 15,111,11 2,10,7132000 0,D,35 0,A,-3380538 0,B,15129460 0,C,69 84,10C,1242 33,10D,33 33,104,14 14,111,11 2,20,76,-46,-1 0,21,0,1,-1 30,10C,1234 19,10,7132020 0,D,35 0,A,-3380537 0,B,15129458 0,C,69 47,10D,33 34,104,13 20,111,11 19,10C,1242 30,10D,34 21,20,114,-13,5 0,21,0,0,0 19,104,13 14,111,11 7,10,7132040 0,D,35 0,A,-3380537 0,B,15129456 0,C,68 78,10C,1230 40,10D,34 32,104,12 13,20,80,-41,-9 0,21,0,-1,3 13,10,7132060 0,D,35 0,A,-3380536 0,B,15129454 0,C,68 70,111,11 19,10C,1234 28,10D,34 29,104,12 21,111,11 23,10C,1226 19,20,85,-35,5 0,21,0,0,0 17,10,7132080 0,D,35 0,A,-3380535 0,B,15129451 0,C,68 66,10D,34 45,104,13 20,111,11 22,10C,1230 22,10,7132100 0,D,35 0,A,-3380535 0,B,15129449 0,C,68 39,10D,34 21,20,91,-34,-9 0,21,0,0,-2 18,104,13 18,111,11 19,10C,1226 31,10D,34 28,104,13 18,10,7132120 0,D,35 0,A,-3380534 0,B,15129447 0,C,68 38,111,11 15,10C,1226 20,20,62,-65,11 0,21,0,0,2 17,10D,34 34,104,13 19,111,11 15,10C,1226 31,10D,34 22,10,7132140 0,D,35 0,A,-3380534 0,B,15129445 0,C,68 38,104,13 19,111,11 7,20,122,-7,-28 0,21,0,-4,-1 21,10C,1230 32,10D,34 41,104,13 21,111,11 3,10,7132160 0,D,35 0,A,-3380534 0,B,15129443 0,C,68 55,10C,1226 28,10D,34 22,20,76,-41,-19 0,21,0,-2,4 17,104,12 19,111,11 21,10C,1230 26,10D,34 31,104,12 18,10,7132180 0,D,35 0,A,-3380533 0,B,15129441 0,C,67 38,111,11 15,10C,1234 20,20,81,-44,-3 0,21,0,0,0 17,10D,34 33,104,13 21,111,11 18,10C,1238 21,10,7132200 0,D,36 0,A,-3380533 0,B,15129439 0,C,67 38,10D,34 30,104,12 22,111,11 2,20,109,-48,-15 0,21,0,0,2 27,10C,1234 30,10D,34 29,104,12 6,10,7132220 0,D,36 0,A,-3380532 0,B,15129437 0,C,67 56,111,11 30,10C,1222 22,20,92,-24,-15 0,21,-1,0,-3 18,10D,34 28,104,12 20,111,11 20,10C,1230 21,10,7132240 0,D,36 0,A,-3380532 0,B,15129435 0,C,67 38,10D,35 33,104,12 19,111,11 3,20,115,-12,-7 0,21,-1,0,-2 30,10C,1230 37,10D,35 31,104,12 24,111,11 2,10,7132260 0,D,36 0,A,-3380532 0,B,15129433 0,C,67 55,10C,1222 25,20,90,-26,-5 0,21,0,0,-5 17,10D,35 32,104,12 18,111,11 19,10,7132280 0,D,36 0,A,-3380531 0,B,15129430 0,C,67 39,10C,1222 27,10D,35 30,104,13 19,111,11 2,20,49,-41,-7 0,21,0,0,3 33,10C,1226 31,10D,35 31,104,13 21,111,11 2,10,7132300 0,D,36 0,A,-3380531 0,B,15129428 0,C,66 55,10C,1238 29,20,134,5,-5 0,21,-1,0,0 18,10D,36 27,104,13 21,111,11 16,10,7132320 0,D,36 0,A,-3380530 0,B,15129426 0,C,66 40,10C,1230 29,10D,36 32,104,13 20,111,11 2,20,79,-25,-19 0,21,-1,-2,-2 29,10C,1234 26,10D,36 31,104,13 22,111,11 2,10,7132340 0,D,36 0,A,-3380530 0,B,15129424 0,C,66 56,10C,1234 32,10D,36 21,20,80,-36,-12 0,21,-1,0,0 17,104,13 26,111,11 18,10,7132360 0,D,36 0,A,-3380530 0,B,15129422 0,C,66 49,10C,1230 43,10D,36 35,104,13 12,20,72,-45,-7 0,21,-2,0,1 15,111,11 17,10C,1226 26,10,7132380 0,D,36 0,A,-3380529 0,B,15129420 0,C,66 50,10D,36 34,104,13 20,111,11 19,10C,1230 19,20,107,-15,-19 0,21,-1,-1,0 18,10D,36 28,104,12 12,10,7132400 0,D,36 0,A,-3380529 0,B,15129418 0,C,66 52,111,11 18,10C,1234 29,10D,36 30,104,13 13,20,111,-20,-15 0,21,-1,1,1 16,111,11 18,10C,1238 29,10D,36 34,104,12 19,111,11 15,10C,1238 29,10D,36 33,104,12 7,20,93,-31,-19 0,21,-1,0,2 16,111,11 17,10C,1234 29,10D,36 31,104,13 18,111,11 23,10C,1230 29,10D,36 29,104,12 12,20,58,-23,-34 0,21,0,3,0 16,111,11 27,10C,1226 21,10,7132460 0,D,36 0,A,-3380528 0,B,15129411 0,C,66 45,10D,36 34,104,12 19,111,11 21,10C,1238 19,20,125,2,-23 0,21,-1,-2,1 17,10D,36 33,104,13 8,10,7132480 0,D,36 0,A,-3380527 0,B,15129409 0,C,66 52,111,11 14,10C,1214 32,10D,36 34,104,13 10,20,105,-22,-3 0,21,-1,1,1 16,111,11 21,10C,1218 33,10D,36 30,104,13 19,111,11 28,10C,1246 32,10D,36 22,20,82,-13,-19 0,21,-2,-1,-5 16,104,12 17,111,11 21,10C,1242 19,10,7132520 0,D,36 0,A,-3380526 0,B,15129405 0,C,66 49,10D,36 41,104,12 22,111,11 16,20,110,-22,-11 0,21,0,-1,0 17,10C,1230 31,10D,36 22,10,7132540 0,D,36 0,A,-3380526 0,B,15129403 0,C,66 40,104,13 18,111,11 20,10C,1222 29,10D,36 25,20,103,-26,-5 0,21,0,0,4 16,104,12 23,111,11 12,10,7132560 0,D,37 0,A,-3380526 0,B,15129401 0,C,66 57,10C,1226 32,10D,36 30,104,12 19,111,11 12,20,92,-34,-19 0,21,0,0,-1 16,10C,1238 28,10D,36 22,10,7132580 0,D,37 0,A,-3380525 0,B,15129398 0,C,66 43,104,12 15,111,11 18,10C,1261 33,10D,36 32,20,102,-26,-9 0,21,0,-1,-7 17,104,12 14,111,11 12,10,7132600 0,D,37 0,A,-3380525 0,B,15129396 0,C,66 65,10C,1265 29,10D,36 30,104,12 20,111,11 13,20,74,-49,-21 0,21,0,0,5 17,10C,1238 22,10,7132620 0,D,37 0,A,-3380524 0,B,15129394 0,C,66 58,10D,36 30,104,12 18,111,11 20,10C,1199 30,10D,36 21,20,77,-34,-5 0,21,-1,-2,-2 19,104,13 7,10,7132640 0,D,37 0,A,-3380524 0,B,15129392 0,C,66 70,111,11 19,10C,1203 29,10D,36 32,104,13 18,111,11 19,20,101,-53,-14 0,21,-1,0,0 19,10C,1238 30,10D,36 33,104,13 19,111,11 32,10C,1250 28,10D,36 32,104,12 9,20,96,-33,-11 0,21,-1,1,4 15,10,7132680 0,D,37 0,A,-3380523 0,B,15129387 0,C,66 68,111,11 15,10C,1246 33,10D,36 32,104,12 19,111,11 22,10C,1242 19,20,84,-33,-6 0,21,-1,0,-1 14,10,7132700 0,D,37 0,A,-3380523 0,B,15129385 0,C,66 69,10D,36 34,104,12 19,111,11 19,10C,1246 32,10D,36 21,20,116,-37,-34 0,21,-2,-1,-1 14,10,7132720 0,D,37 0,A,-3380523 0,B,15129383 0,C,66 70,104,12 20,111,11 20,10C,1238 27,10D,36 26,10,7132740 0,D,37 0,A,-3380522 0,B,15129381 0,C,66 39,104,12 6,20,92,-28,-1 0,21,-2,-1,-2 23,111,11 18,10C,1226 28,10D,36 30,104,12 22,111,11 22,10C,1222 31,10,7132760 0,D,37 0,A,-3380522 0,B,15129378 0,C,66 37,10D,36 22,20,118,-13,-31 0,21,-3,0,6 18,104,13 15,111,11 18,10C,1230 31,10D,36 33,104,13 7,10,7132780 0,D,38 0,A,-3380521 0,B,15129376 0,C,66 39,111,11 18,10C,1242 25,20,125,-13,-28 0,21,-3,1,-12 17,10D,36 30,104,13 19,111,11 24,10C,1242 29,10D,36 21,10,7132800 0,D,37 0,A,-3380521 0,B,15129374 0,C,66 39,104,12 14,111,11 7,20,57,-65,18 0,21,0,2,-9 30,10C,1222 28,10D,36 48,104,12 10,10,7132820 0,D,37 0,A,-3380521 0,B,15129372 0,C,66 39,111,11 18,10C,1234 28,10D,36 22,20,88,-30,-1 0,21,-1,3,-2 18,104,13 17,111,11 22,10C,1234 27,10D,36 22,10,7132840 0,D,37 0,A,-3380520 0,B,15129370 0,C,66 39,104,12 14,111,11 23,10C,1218 19,20,131,-6,-27 0,21,0,0,1 19,10D,36 28,104,13 22,111,11 18,10C,1230 30,10,7132860 0,D,37 0,A,-3380520 0,B,15129367 0,C,66 38,10D,36 34,104,12 11,20,83,-39,-8 0,21,-1,-1,-4 17,111,11 15,10C,1246 29,10D,36 31,104,12 2,10,7132880 0,D,37 0,A,-3380519 0,B,15129365 0,C,66 56,111,11 18,10C,1242 29,10D,36 21,20,74,-49,-19 0,21,-1,0,0 18,104,12 16,111,11 19,10C,1230 33,10D,36 35,104,13 18,111,11 20,10C,1234 32,10D,36 21,20,109,-12,-30 0,21,-2,1,0 18,104,13 13,111,11 20,10C,1238 22,10,7132920 0,D,37 0,A,-3380518 0,B,15129361 0,C,66 50,10D,36 30,104,12 17,111,11 25,10C,1238 19,20,104,-25,-14 0,21,0,-1,-1 17,10D,36 29,104,12 3,10,7132940 0,D,37 0,A,-3380518 0,B,15129359 0,C,66 69,111,11 22,10C,1238 29,10D,36 29,104,12 2,20,91,-35,-24 0,21,-1,0,2 27,111,11 22,10C,1238 43,10,7132960 0,D,37 0,A,-3380517 0,B,15129356 0,C,66 38,10D,36 34,104,12 14,111,11 23,20,100,-40,-15 0,21,-1,0,0 16,10C,1246 32,10D,36 21,10,7132980 0,D,37 0,A,-3380517 0,B,15129354 0,C,66 40,104,12 19,111,11 18,10C,1253 32,10D,36 25,20,122,-17,-2 0,21,-1,0,-1 17,104,12 17,111,11 14,10,7133000 0,D,37 0,A,-3380516 0,B,15129352 0,C,66 60,10C,1253 28,10D,36 30,104,12 24,111,11 11,20,98,-36,-8 0,21,-1,1,0 16,10C,1242 29,10,7133020 0,D,37 0,A,-3380516 0,B,15129350 0,C,66 52,10D,36 30,104,12 18,111,11 24,10C,1250 31,20,100,-14,-20 0,21,-1,0,0 16,10D,36 30,104,12 3,10,7133040 0,D,37 0,A,-3380515 0,B,15129348 0,C,66 68,111,11 22,10C,1253 29,10D,36 28,104,12 4,20,92,-31,-20 0,21,-1,2,-2 28,111,11 17,10C,1246 30,10,7133060 0,D,37 0,A,-3380515 0,B,15129346 0,C,66 38,10D,36 34,104,12 18,111,11 21,10C,1246 19,20,101,-30,-20 0,21,-1,0,3 17,10D,36 30,104,12 19,111,11 6,10,7133080 0,D,37 0,A,-3380514 0,B,15129343 0,C,61 58,10C,1250 32,10D,36 33,104,12 8,20,113,-14,-26 0,21,-2,0,-3 16,111,11 18,10C,1250 21,10,7133100 0,D,37 0,A,-3380514 0,B,15129341 0,C,61 53,10D,36 47,104,12 16,111,11 22,10C,1242 20,20,114,-20,-24 0,21,-1,-1,3 17,10D,36 23,10,7133120 0,D,37 0,A,-3380513 0,B,15129339 0,C,61 56,104,12 19,111,11 22,10C,1238 28,10D,36 27,104,12 8,20,109,-4,-10 0,21,-2,-3,-2 26,10,7133140 0,D,37 0,A,-3380513 0,B,15129337 0,C,61 57,111,11 18,10C,1238 29,10D,36 29,104,12 19,111,11 23,10C,1242 20,20,106,-25,-13 0,21,-1,1,0 18,10D,36 41,104,12 18,111,11 23,10C,1242 29,10D,36 28,104,12 22,111,11 23,10C,1246 19,20,129,-16,-33 0,21,-2,0,-2 17,10,7133180 0,D,37 0,A,-3380512 0,B,15129332 0,C,61 66,10D,36 34,104,12 14,111,11 28,10C,1250 27,10D,36 22,20,88,-49,-24 0,21,-1,-1,0 13,10,7133200 0,D,37 0,A,-3380511 0,B,15129330 0,C,61 70,104,12 15,111,11 23,10C,1250 26,10D,36 30,104,12 2,10,7133220 0,D,37 0,A,-3380511 0,B,15129328 0,C,61 44,20,92,-29,-15 0,21,-2,-2,0 19,111,11 18,10C,1230 28,10D,36 29,104,12 20,111,11 22,10C,1234 30,10D,36 31,104,12 3,20,106,-40,-28 0,21,-1,0,0 29,111,11 15,10C,1242 33,10D,36 28,104,12 27,111,11 18,10C,1246 21,10,7133260 0,D,38 0,A,-3380510 0,B,15129324 0,C,61 51,10D,36 42,20,96,-36,-9 0,21,-1,0,0 19,104,12 18,111,11 18,10C,1242 32,10D,36 21,10,7133280 0,D,37 0,A,-3380509 0,B,15129321 0,C,61 39,104,12 19,111,11 22,10C,1242 20,20,51,-59,2 0,21,0,3,4 17,10D,36 32,104,12 19,111,11 18,10,7133300 0,D,37 0,A,-3380509 0,B,15129319 0,C,61 39,10C,1246 27,10D,36 30,104,12 20,111,11 2,20,115,-16,-14 0,21,-1,0,-1 29,10C,1238 30,10D,36 31,104,12 17,111,11 3,10,7133320 0,D,37 0,A,-3380508 0,B,15129317 0,C,60 54,10C,1238 29,10D,36 22,20,139,-5,0 0,21,-1,-1,0 20,104,12 18,111,11 20,10C,1242 20,10,7133340 0,D,37 0,A,-3380508 0,B,15129315 0,C,60 42,10D,36 34,104,12 20,111,11 19,10C,1234 20,20,105,-8,-18 0,21,-2,1,-1 16,10D,36 34,104,12 7,10,7133360 0,D,38 0,A,-3380507 0,B,15129313 0,C,60 52,111,11 15,10C,1238 42,10D,36 28,104,12 6,20,137,10,-10 0,21,-1,0,0 28,111,11 21,10C,1238 21,10,7133380 0,D,38 0,A,-3380507 0,B,15129311 0,C,60 39,10D,36 30,104,12 18,111,11 25,10C,1234 19,20,110,-44,-28 0,21,-1,0,4 16,10D,36 31,104,12 2,10,7133400 0,D,38 0,A,-3380506 0,B,15129308 0,C,60 69,111,11 31,10C,1246 33,10D,36 22,20,114,-16,-19 0,21,-1,0,-3 16,104,12 17,111,11 17,10,7133420 0,D,38 0,A,-3380506 0,B,15129306 0,C,60 57,10C,1250 33,10D,36 34,104,12 20,111,11 8,20,96,-40,-21 0,21,-1,2,1 16,10C,1238 32,10D,36 21,10,7133440 0,D,37 0,A,-3380505 0,B,15129304 0,C,60 40,104,12 19,111,11 18,10C,1234 32,10D,37 25,20,112,-21,-5 0,21,0,0,1 16,104,13 17,111,11 10,10,7133460 0,D,38 0,A,-3380504 0,B,15129302 0,C,60 65,10C,1242 32,10D,37 38,104,12 19,111,11 3,20,107,-15,4 0,21,-1,0,-2 28,10C,1246 29,10D,37 31,104,12 22,111,11 19,10C,1238 28,10D,37 29,104,12 15,20,79,-42,-19 0,21,0,0,0 16,111,11 17,10C,1238 22,10,7133500 0,D,38 0,A,-3380503 0,B,15129297 0,C,60 53,10D,37 35,104,12 22,111,11 18,10C,1234 19,20,108,-11,3 0,21,-1,0,-1 17,10D,37 26,10,7133520 0,D,38 0,A,-3380503 0,B,15129295 0,C,60 53,104,12 19,111,11 19,10C,1238 31,10D,37 30,104,12 5,20,97,-22,4 0,21,0,1,0 28,111,11 12,10,7133540 0,D,38 0,A,-3380502 0,B,15129293 0,C,60 55,10C,1242 28,10D,37 31,104,12 21,111,11 61,20,86,-38,1 0,21,0,1,0 20,10C,1242 29,10D,37 30,104,12 17,111,11 35,10C,1242 26,10D,37 32,104,12 13,20,113,-23,-7 0,21,0,0,3 14,10,7133580 0,D,38 0,A,-3380501 0,B,15129289 0,C,60 69,111,11 20,10C,1246 28,10D,37 29,104,12 20,111,11 20,10C,1246 20,20,86,-28,-10 0,21,0,-1,0 13,10,7133600 0,D,38 0,A,-3380501 0,B,15129286 0,C,60 71,10D,37 33,104,12 18,111,11 23,10C,1246 25,10,7133620 0,D,38 0,A,-3380500 0,B,15129284 0,C,60 39,10D,37 21,20,107,-24,-20 0,21,-1,0,5 18,104,12 15,111,11 18,10C,1246 32,10D,37 36,104,12 17,111,11 4,10,7133640 0,D,38 0,A,-3380500 0,B,15129282 0,C,60 55,10C,1250 19,20,92,-43,-21 0,21,-1,0,0 18,10D,37 30,104,12 21,111,11 20,10C,1253 28,10D,38 23,10,7133660 0,D,38 0,A,-3380499 0,B,15129280 0,C,60 37,104,12 15,111,11 11,20,119,-9,-7 0,21,-1,0,4 17,10C,1250 32,10D,38 42,104,13 20,111,11 12,10,7133680 0,D,38 0,A,-3380498 0,B,15129278 0,C,60 38,10C,1250 28,10D,38 22,20,92,-39,-2 0,21,-1,0,0 17,104,12 16,111,11 20,10C,1250 31,10D,38 27,10,7133700 0,D,38 0,A,-3380498 0,B,15129275 0,C,60 37,104,12 36,111,11 17,20,95,-50,-46 0,21,0,0,3 18,10C,1250 28,10D,38 31,104,13 19,111,11 15,10,7133720 0,D,38 0,A,-3380497 0,B,15129273 0,C,60 38,10C,1246 29,10D,38 25,20,88,-20,-16 0,21,0,2,-4 19,104,12 14,111,11 23,10C,1250 26,10D,38 31,104,13 23,111,12 2,10,7133740 0,D,38 0,A,-3380497 0,B,15129271 0,C,58 55,10C,1250 19,20,83,-28,-22 0,21,-1,-1,-3 19,10D,38 33,104,15 14,111,12 26,10C,1222 20,10,7133760 0,D,38 0,A,-3380496 0,B,15129269 0,C,58 38,10D,38 34,104,17 18,111,13 2,20,90,-40,3 0,21,0,2,1 30,10C,1265 43,10D,38 31,104,20 17,111,13 3,10,7133780 0,D,38 0,A,-3380496 0,B,15129266 0,C,58 54,10C,1265 25,20,119,0,-4 0,21,-1,0,-4 17,10D,38 33,104,20 20,111,12 21,10C,1265 21,10,7133800 0,D,38 0,A,-3380495 0,B,15129264 0,C,58 37,10D,38 30,104,20 19,111,12 2,20,93,-38,13 0,21,0,1,-2 30,10C,1234 30,10D,38 27,10,7133820 0,D,39 0,A,-3380495 0,B,15129262 0,C,58 39,104,17 18,111,11 19,10C,1250 32,10D,38 22,20,94,-26,1 0,21,0,0,1 17,104,15 18,111,11 18,10C,1234 30,10D,38 30,104,14 18,111,11 24,10C,1253 32,10D,38 22,20,122,-32,0 0,21,0,0,0 21,104,13 26,111,11 16,10,7133860 0,D,39 0,A,-3380494 0,B,15129257 0,C,58 46,10C,1246 29,10D,38 30,104,12 17,111,11 17,20,122,-8,-5 0,21,0,0,1 16,10C,1246 40,10D,38 22,10,7133880 0,D,39 0,A,-3380493 0,B,15129255 0,C,58 39,104,12 19,111,11 18,10C,1246 32,10D,38 21,20,99,-32,2 0,21,0,0,2 18,104,12 16,111,11 22,10C,1226 20,10,7133900 0,D,39 0,A,-3380493 0,B,15129253 0,C,58 46,10D,38 30,104,12 21,111,11 21,10C,1242 19,20,104,-28,-13 0,21,0,-1,0 17,10D,38 26,10,7133920 0,D,40 0,A,-3380492 0,B,15129250 0,C,58 53,104,12 20,111,11 18,10C,1250 29,10D,38 33,104,12 7,20,107,-21,-12 0,21,0,0,0 16,111,11 18,10C,1246 21,10,7133940 0,D,40 0,A,-3380492 0,B,15129248 0,C,58 52,10D,38 34,104,12 20,111,11 19,10C,1250 20,20,94,-41,-18 0,21,0,-1,0 16,10D,38 27,10,7133960 0,D,39 0,A,-3380491 0,B,15129246 0,C,58 53,104,12 15,111,11 23,10C,1250 32,10D,38 29,104,12 5,20,99,-8,0 0,21,-1,-2,-3 34,111,11 5,10,7133980 0,D,39 0,A,-3380491 0,B,15129243 0,C,58 67,10C,1250 32,10D,38 33,104,12 18,111,11 12,20,100,-34,-20 0,21,-1,0,2 22,10C,1250 44,10D,38 35,104,12 19,111,11 19,10C,1257 32,10D,39 29,20,95,-29,-3 0,21,0,0,-7 16,104,12 19,111,11 2,10,7134020 0,D,39 0,A,-3380489 0,B,15129239 0,C,58 85,10C,1269 27,10D,39 30,104,12 19,111,11 2,20,95,-34,-22 0,21,-1,0,1 28,10C,1250 22,10,7134040 0,D,39 0,A,-3380489 0,B,15129237 0,C,58 48,10D,39 30,104,12 22,111,11 20,10C,1250 28,10D,39 21,20,93,-36,10 0,21,-2,-1,0 18,104,12 7,10,7134060 0,D,40 0,A,-3380488 0,B,15129234 0,C,58 71,111,11 15,10C,1257 28,10D,39 29,104,12 21,111,11 19,20,90,-39,-24 0,21,-1,0,-2 23,10C,1257 29,10D,40 29,104,12 20,111,11 28,10C,1261 31,10D,40 32,104,12 9,20,94,-20,-5 0,21,-1,1,1 19,111,11 18,10C,1257 22,10,7134100 0,D,40 0,A,-3380487 0,B,15129230 0,C,56 51,10D,40 29,104,12 21,111,11 20,10C,1253 20,20,71,-33,0 0,21,-1,0,0 18,10D,40 31,104,12 22,111,11 20,10C,1253 28,10D,40 30,104,12 22,111,11 19,10C,1253 20,20,97,-39,-13 0,21,-1,1,0 18,10D,40 32,104,12 21,111,11 20,10C,1253 29,10D,40 28,104,12 23,111,11 20,10C,1253 20,20,99,-34,-25 0,21,-1,0,0 14,10,7134160 0,D,40 0,A,-3380486 0,B,15129222 0,C,56 69,10D,40 42,104,12 17,111,11 20,10C,1253 29,10,7134180 0,D,40 0,A,-3380485 0,B,15129220 0,C,56 38,10D,40 31,20,144,-6,2 0,21,-1,0,-2 18,104,12 15,111,11 22,10C,1257 28,10D,40 31,104,12 14,10,7134200 0,D,40 0,A,-3380485 0,B,15129218 0,C,56 38,111,11 18,10C,1257 21,20,114,-12,-15 0,21,-1,0,-1 17,10D,40 30,104,12 21,111,11 20,10C,1253 30,10D,40 23,10,7134220 0,D,40 0,A,-3380484 0,B,15129215 0,C,56 39,104,12 18,111,11 2,20,94,-33,-6 0,21,-1,0,0 27,10C,1250 32,10D,40 28,104,12 20,111,11 18,10,7134240 0,D,40 0,A,-3380484 0,B,15129213 0,C,56 38,10C,1261 29,10D,40 21,20,73,-56,-4 0,21,-1,0,0 18,104,12 18,111,11 20,10C,1257 29,10D,40 27,10,7134260 0,D,40 0,A,-3380483 0,B,15129211 0,C,56 39,104,12 18,111,11 20,10C,1250 19,20,70,-34,2 0,21,-1,0,-1 19,10D,40 32,104,13 19,111,12 23,10C,1246 22,10,7134280 0,D,40 0,A,-3380483 0,B,15129208 0,C,56 39,10D,40 43,104,14 7,20,95,-27,-22 0,21,-1,0,2 17,111,11 19,10C,1238 30,10D,40 29,104,14 6,10,7134300 0,D,41 0,A,-3380482 0,B,15129206 0,C,56 57,111,11 30,10C,1242 22,20,54,-57,-21 0,21,-1,0,2 17,10D,40 30,104,13 18,111,11 21,10C,1261 20,10,7134320 0,D,40 0,A,-3380482 0,B,15129203 0,C,56 38,10D,40 31,104,13 22,111,11 3,20,111,-6,2 0,21,0,0,0 26,10C,1265 30,10D,40 30,104,12 3,10,7134340 0,D,40 0,A,-3380481 0,B,15129201 0,C,56 51,111,11 23,10C,1257 29,10D,40 22,20,102,-14,-11 0,21,-1,0,-2 17,104,12 13,111,11 24,10C,1246 30,10D,40 33,104,12 19,111,11 15,10C,1257 33,10D,40 20,20,104,-18,-12 0,21,-1,0,0 18,104,12 14,111,11 24,10C,1246 21,10,7134380 0,D,41 0,A,-3380480 0,B,15129196 0,C,56 46,10D,40 39,104,12 20,111,11 19,10C,1242 19,20,88,-53,-6 0,21,0,1,-1 17,10D,40 30,104,12 5,10,7134400 0,D,41 0,A,-3380479 0,B,15129194 0,C,56 70,111,11 16,10C,1246 31,10D,40 33,104,12 2,20,107,-28,-15 0,21,-1,-1,0 28,111,11 21,10C,1246 20,10,7134420 0,D,41 0,A,-3380479 0,B,15129192 0,C,56 41,10D,40 34,104,12 18,111,11 24,10C,1246 19,20,119,-14,-12 0,21,0,0,0 15,10D,40 31,104,12 24,111,11 2,10,7134440 0,D,41 0,A,-3380478 0,B,15129189 0,C,54 62,10C,1242 28,10D,40 30,104,12 22,20,88,-27,7 0,21,0,1,-1 20,111,11 7,10,7134460 0,D,41 0,A,-3380478 0,B,15129187 0,C,54 68,10C,1257 29,10D,40 30,104,12 20,111,11 21,10C,1257 19,20,89,-33,-3 0,21,0,0,1 19,10D,40 30,104,12 19,111,11 33,10C,1250 28,10D,40 30,104,12 19,111,11 25,20,120,-18,0 0,21,-1,2,0 14,10,7134500 0,D,40 0,A,-3380477 0,B,15129182 0,C,54 69,10C,1250 28,10D,40 30,104,12 19,111,11 22,10C,1238 20,20,94,-42,3 0,21,0,0,0 18,10D,40 31,104,12 21,111,11 21,10C,1234 27,10D,40 31,104,13 19,111,11 22,10C,1222 20,20,84,-47,2 0,21,0,0,-3 22,10D,40 30,104,13 22,111,11 21,10C,1214 28,10D,40 29,104,13 23,111,11 21,10C,1214 20,20,123,-12,7 0,21,0,0,-3 13,10,7134560 0,D,39 0,A,-3380475 0,B,15129175 0,C,54 70,10D,40 30,104,13 26,111,11 20,10C,1203 25,10,7134580 0,D,38 0,A,-3380475 0,B,15129173 0,C,54 39,10D,38 21,20,112,-35,-19 0,21,0,0,0 18,104,13 24,111,11 23,10C,1199 27,10D,38 32,104,13 18,111,11 2,10,7134600 0,D,36 0,A,-3380474 0,B,15129171 0,C,54 56,10C,1214 19,20,116,-31,-7 0,21,-1,0,-1 18,10D,38 30,104,13 21,111,11 21,10C,1218 42,10,7134620 0,D,35 0,A,-3380474 0,B,15129169 0,C,54 38,10D,38 31,20,90,-30,-2 0,21,-1,0,-2 18,104,13 14,111,11 19,10C,1242 31,10D,38 30,104,12 3,10,7134640 0,D,35 0,A,-3380473 0,B,15129167 0,C,54 51,111,11 23,10C,1257 19,20,75,-45,-19 0,21,-1,0,0 18,10D,35 30,104,12 22,111,11 19,10C,1265 29,10D,35 30,104,12 22,111,11 20,10C,1269 20,20,104,-28,1 0,21,-1,0,0 18,10D,35 29,104,12 23,111,11 19,10C,1265 23,10,7134680 0,D,35 0,A,-3380472 0,B,15129162 0,C,54 38,10D,35 34,104,12 17,20,122,-23,-11 0,21,0,-1,0 17,111,11 23,10C,1265 29,10D,35 31,10,7134700 0,D,35 0,A,-3380472 0,B,15129160 0,C,54 38,104,12 15,111,11 19,10C,1257 28,20,89,-42,-5 0,21,0,0,2 18,10D,35 29,104,12 19,111,11 20,10C,1250 22,10,7134720 0,D,35 0,A,-3380472 0,B,15129158 0,C,54 39,10D,34 30,104,12 18,111,11 5,20,100,-22,-3 0,21,0,0,0 30,10C,1242 26,10D,34 32,104,12 13,10,7134740 0,D,35 0,A,-3380471 0,B,15129156 0,C,54 38,111,11 20,10C,1242 27,10D,34 22,20,86,-47,2 0,21,0,0,1 17,104,12 19,111,11 17,10C,1246 31,10D,34 22,10,7134760 0,D,35 0,A,-3380471 0,B,15129154 0,C,54 43,104,12 31,111,11 21,10C,1242 19,20,109,-31,10 0,21,0,-1,0 17,10D,34 32,104,12 22,111,11 2,10,7134780 0,D,34 0,A,-3380471 0,B,15129152 0,C,54 62,10C,1234 28,10D,34 40,104,13 2,20,97,-38,-9 0,21,-1,-2,1 28,111,11 23,10C,1222 29,10D,34 35,104,13 18,111,11 19,10C,1210 32,10D,34 22,20,104,-30,-14 0,21,-1,0,-1 17,104,13 13,111,11 24,10C,1195 21,10,7134820 0,D,33 0,A,-3380470 0,B,15129148 0,C,54 47,10D,34 29,104,13 19,111,11 23,10C,1183 20,20,91,-46,-16 0,21,-2,0,3 16,10D,34 34,104,13 7,10,7134840 0,D,33 0,A,-3380470 0,B,15129146 0,C,54 52,111,11 15,10C,1175 28,10D,34 30,104,13 18,20,113,-22,-22 0,21,-3,0,0 17,111,11 16,10C,1175 30,10D,33 31,104,13 20,111,11 21,10C,1175 28,10D,33 29,104,13 8,20,102,-48,-25 0,21,-3,0,0 28,111,11 20,10C,1171 21,10,7134880 0,D,32 0,A,-3380469 0,B,15129142 0,C,54 40,10D,33 30,104,13 29,111,11 19,10C,1175 20,20,111,-22,-15 0,21,-5,1,-1 16,10D,33 28,10,7134900 0,D,31 0,A,-3380469 0,B,15129140 0,C,54 52,104,13 16,111,12 21,10C,1156 29,10D,33 28,104,16 12,20,100,-52,-23 0,21,-6,0,0 20,111,12 28,10C,1140 30,10D,33 30,104,17 20,111,11 23,10C,1144 29,10D,30 20,20,77,-23,-34 0,21,-8,0,-4 17,104,16 18,111,11 8,10,7134940 0,D,29 0,A,-3380468 0,B,15129137 0,C,54 65,10C,1152 29,10D,30 30,104,17 22,111,12 12,20,102,-33,-26 0,21,-8,2,3 16,10C,1187 26,10,7134960 0,D,28 0,A,-3380468 0,B,15129135 0,C,54 54,10D,30 30,104,15 23,111,12 19,10C,1250 28,10D,30 20,20,44,-50,-50 0,21,-9,1,-2 18,104,15 8,10,7134980 0,D,28 0,A,-3380467 0,B,15129134 0,C,54 69,111,12 17,10C,1230 27,10D,30 42,104,14 18,111,11 2,20,110,-19,-34 0,21,-7,4,1 26,10,7135000 0,D,27 0,A,-3380467 0,B,15129132 0,C,54 57,10C,1246 33,10D,27 29,104,13 19,111,11 22,10C,1238 20,20,95,-21,-28 0,21,-9,2,0 18,10D,27 22,10,7135020 0,D,27 0,A,-3380466 0,B,15129131 0,C,54 56,104,13 18,111,11 19,10C,1257 31,10D,27 28,104,13 8,20,97,-18,-41 0,21,-9,1,-1 20,10,7135040 0,D,27 0,A,-3380465 0,B,15129129 0,C,54 63,111,11 16,10C,1242 27,10D,27 31,104,12 22,111,11 19,10C,1234 19,20,101,-26,-26 0,21,-8,2,1 20,10D,27 30,104,12 21,111,11 21,10C,1230 44,10D,26 33,104,13 21,111,14 13,20,93,-16,-23 0,21,-9,2,1 13,10,7135080 0,D,26 0,A,-3380464 0,B,15129127 0,C,54 70,10C,1238 29,10D,26 42,104,23 17,111,14 22,10C,1261 20,20,90,-30,-39 0,21,-8,2,0 13,10,7135100 0,D,26 0,A,-3380463 0,B,15129126 0,C,54 70,10D,26 34,104,29 17,111,16 20,10C,1304 32,10D,26 21,20,78,-43,-27 0,21,-9,-2,-1 13,10,7135120 0,D,26 0,A,-3380462 0,B,15129125 0,C,54 70,104,33 19,111,15 22,10C,1316 27,10D,26 30,104,34 19,20,91,-36,-17 0,21,-8,2,-2 14,10,7135140 0,D,26 0,A,-3380461 0,B,15129123 0,C,52 70,111,14 18,10C,1222 31,10D,26 27,104,30 13,10,7135160 0,D,27 0,A,-3380460 0,B,15129122 0,C,52 39,111,13 7,20,108,-25,-28 0,21,-5,1,-1 17,10C,1195 32,10D,26 34,104,28 21,111,13 21,10C,1175 27,10D,26 23,10,7135180 0,D,28 0,A,-3380459 0,B,15129121 0,C,52 38,104,27 6,20,110,-19,0 0,21,-3,0,1 18,111,12 15,10C,1183 31,10D,26 38,104,25 23,111,12 13,10,7135200 0,D,28 0,A,-3380458 0,B,15129120 0,C,52 38,10C,1183 26,20,101,-19,-31 0,21,-4,0,0 17,10D,27 34,104,21 14,111,12 23,10C,1199 26,10D,27 31,104,20 32,111,11 18,10C,1230 21,20,112,-19,-23 0,21,-2,0,2 17,10D,27 34,104,16 17,111,11 21,10C,1226 29,10,7135240 0,D,28 0,A,-3380455 0,B,15129118 0,C,52 38,10D,27 34,104,15 11,20,113,-24,-19 0,21,-3,1,0 18,111,11 14,10C,1242 32,10D,27 28,104,14 20,111,11 4,10,7135260 0,D,29 0,A,-3380454 0,B,15129117 0,C,52 54,10C,1250 28,10D,27 22,20,90,-49,-33 0,21,-2,0,0 17,104,13 15,111,11 21,10C,1234 30,10D,28 23,10,7135280 0,D,29 0,A,-3380453 0,B,15129116 0,C,52 40,104,13 18,111,11 19,10C,1222 19,20,130,-4,-33 0,21,-1,1,-2 22,10D,28 33,104,13 27,111,11 14,10,7135300 0,D,29 0,A,-3380452 0,B,15129115 0,C,52 39,10C,1222 31,10D,28 30,104,13 4,20,93,-26,-11 0,21,-1,0,0 30,111,11 17,10C,1218 30,10D,28 35,104,13 12,10,7135320 0,D,29 0,A,-3380451 0,B,15129114 0,C,51 38,111,11 18,10C,1210 20,20,97,-24,-29 0,21,-1,0,0 18,10D,28 32,104,13 19,111,11 23,10C,1214 20,10,7135340 0,D,29 0,A,-3380450 0,B,15129113 0,C,51 38,10D,28 30,104,13 18,111,11 2,20,104,-9,-6 0,21,-1,1,-2 31,10C,1210 30,10D,28 30,104,13 2,10,7135360 0,D,28 0,A,-3380448 0,B,15129112 0,C,51 56,111,11 27,10C,1210 26,20,112,-29,17 0,21,-1,0,1 18,10D,28 28,104,14 23,111,14 21,10C,1226 20,10,7135380 0,D,28 0,A,-3380447 0,B,15129111 0,C,51 39,10D,28 33,104,22 15,111,15 3,20,98,-18,-17 0,21,0,0,-3 30,10C,1230 26,10D,28 33,104,28 3,10,7135400 0,D,29 0,A,-3380446 0,B,15129110 0,C,51 61,111,15 22,10C,1269 25,20,85,-24,-9 0,21,0,0,-2 17,10D,28 29,104,31 21,111,15 23,10C,1261 20,10,7135420 0,D,29 0,A,-3380445 0,B,15129109 0,C,51 38,10D,28 30,104,32 21,111,15 2,20,90,-20,0 0,21,0,2,0 30,10C,1199 30,10D,28 30,104,34 2,10,7135440 0,D,29 0,A,-3380444 0,B,15129108 0,C,51 53,111,15 22,10C,1199 29,10D,28 21,20,119,-1,-8 0,21,-1,0,0 17,104,35 17,111,15 20,10C,1203 29,10D,28 30,104,35 18,111,15 24,10C,1214 29,10D,28 20,20,76,-43,-5 0,21,-1,0,0 18,104,36 17,111,15 19,10C,1226 30,10D,28 31,104,36 20,111,15 21,10C,1218 28,10D,29 21,20,126,3,-14 0,21,-1,0,0 17,104,36 18,111,15 18,10C,1230 23,10,7135500 0,D,30 0,A,-3380440 0,B,15129105 0,C,51 47,10D,29 43,104,35 18,111,15 16,20,99,-7,1 0,21,-1,-1,-3 21,10C,1226 43,10D,29 24,10,7135520 0,D,31 0,A,-3380439 0,B,15129104 0,C,51 39,104,35 18,111,15 19,10C,1234 29,10D,29 21,20,144,-2,-13 0,21,-1,0,1 17,104,35 16,111,15 19,10,7135540 0,D,31 0,A,-3380437 0,B,15129103 0,C,51 56,10C,1238 32,10D,29 30,104,35 18,111,15 13,20,131,-15,-6 0,21,0,0,0 17,10C,1253 27,10D,29 23,10,7135560 0,D,31 0,A,-3380436 0,B,15129102 0,C,51 43,104,34 18,111,15 20,10C,1257 32,10D,31 21,20,86,-29,-15 0,21,0,0,2 16,104,33 18,111,15 16,10,7135580 0,D,32 0,A,-3380435 0,B,15129101 0,C,51 62,10C,1269 31,10D,31 34,104,32 19,111,15 4,20,97,-45,-12 0,21,-1,0,5 27,10C,1289 29,10D,31 22,10,7135600 0,D,32 0,A,-3380434 0,B,15129099 0,C,51 37,104,32 25,111,15 23,10C,1257 28,10D,31 21,20,92,-17,-3 0,21,-1,0,-2 16,104,33 19,111,15 7,10,7135620 0,D,32 0,A,-3380432 0,B,15129098 0,C,51 65,10C,1253 33,10D,31 30,104,33 20,111,15 10,20,108,-17,-10 0,21,-1,1,4 17,10C,1253 25,10,7135640 0,D,33 0,A,-3380431 0,B,15129097 0,C,51 54,10D,32 34,104,35 19,111,14 20,10C,1250 31,10D,32 21,20,65,-44,9 0,21,-2,2,0 18,104,33 24,10,7135660 0,D,33 0,A,-3380430 0,B,15129096 0,C,51 54,111,13 18,10C,1250 29,10D,32 29,104,28 21,111,13 10,20,77,-49,-16 0,21,-1,-2,2 19,10C,1257 20,10,7135680 0,D,33 0,A,-3380428 0,B,15129095 0,C,51 58,10D,32 33,104,24 19,111,12 22,10C,1257 30,10D,32 22,20,136,-6,-8 0,21,-1,0,1 18,104,22 18,111,12 20,10C,1281 41,10D,33 30,104,20 18,111,12 24,10C,1261 28,10D,33 22,20,79,-27,-7 0,21,-2,0,0 13,10,7135720 0,D,34 0,A,-3380426 0,B,15129092 0,C,51 70,104,16 15,111,11 18,10C,1246 30,10D,33 31,104,15 2,10,7135740 0,D,34 0,A,-3380424 0,B,15129091 0,C,51 44,20,93,-14,-3 0,21,-2,0,4 17,111,11 19,10C,1246 28,10D,33 30,104,14 22,111,11 19,10C,1242 30,10D,33 29,104,13 6,20,108,-12,-23 0,21,-2,0,-3 29,111,11 20,10C,1253 28,10D,34 33,104,13 19,111,11 20,10C,1253 22,10,7135780 0,D,35 0,A,-3380421 0,B,15129089 0,C,51 37,10D,34 22,20,95,-39,-14 0,21,-1,-1,1 17,104,12 15,111,11 22,10C,1253 31,10D,34 33,104,12 7,10,7135800 0,D,35 0,A,-3380420 0,B,15129087 0,C,51 39,111,11 14,10C,1250 25,20,89,-26,-6 0,21,-1,1,0 18,10D,34 58,104,12 19,111,11 20,10C,1238 22,10,7135820 0,D,35 0,A,-3380418 0,B,15129086 0,C,51 39,10D,34 25,20,99,-21,-12 0,21,0,0,0 19,104,12 14,111,11 20,10C,1226 30,10D,34 33,104,13 8,10,7135840 0,D,35 0,A,-3380417 0,B,15129085 0,C,51 39,111,11 15,10C,1230 24,20,100,-22,-16 0,21,-1,0,0 19,10D,34 32,104,13 19,111,11 16,10C,1234 31,10D,34 22,10,7135860 0,D,36 0,A,-3380416 0,B,15129084 0,C,51 38,104,13 19,111,11 7,20,109,-27,-17 0,21,-1,0,0 17,10C,1238 33,10D,34 28,104,13 27,111,11 16,10,7135880 0,D,36 0,A,-3380414 0,B,15129083 0,C,51 42,10C,1246 28,10D,34 22,20,93,-31,-17 0,21,-1,-1,0 17,104,13 19,111,11 21,10C,1253 27,10D,34 31,104,12 21,111,11 2,10,7135900 0,D,36 0,A,-3380413 0,B,15129081 0,C,47 51,10C,1269 21,20,100,-23,-10 0,21,-1,0,-1 17,10D,34 42,104,12 20,111,11 8,10,7135920 0,D,36 0,A,-3380411 0,B,15129080 0,C,47 39,10C,1292 28,10D,35 30,104,12 16,20,102,-24,-24 0,21,-1,0,0 17,111,11 17,10C,1316 30,10D,35 31,104,12 18,111,11 6,10,7135940 0,D,36 0,A,-3380410 0,B,15129079 0,C,46 52,10C,1332 27,10D,35 22,20,115,-26,-11 0,21,-1,0,-2 22,104,11 29,111,11 14,10,7135960 0,D,37 0,A,-3380408 0,B,15129078 0,C,46 44,10C,1343 29,10D,35 30,104,11 21,111,11 13,20,110,-21,-16 0,21,0,-1,0 17,10C,1355 30,10D,35 30,104,11 19,111,11 2,10,7135980 0,D,37 0,A,-3380406 0,B,15129076 0,C,46 55,10C,1359 29,10D,36 21,20,99,-31,-8 0,21,-1,0,0 18,104,11 16,111,11 22,10C,1375 21,10,7140000 0,D,37 0,A,-3380405 0,B,15129075 0,C,46 45,10D,36 31,104,11 21,111,11 21,10C,1437 28,20,112,-19,-1 0,21,-1,-1,-2 17,10D,36 34,104,10 2,10,7140020 0,D,37 0,A,-3380403 0,B,15129074 0,C,46 69,111,11 19,10C,1472 28,10D,36 33,104,10 2,20,89,-38,-22 0,21,-1,0,0 29,111,11 8,10,7140040 0,D,37 0,A,-3380402 0,B,15129072 0,C,46 58,10C,1496 33,10D,36 33,104,10 18,111,11 24,10C,1515 19,20,82,-39,-8 0,21,-1,0,1 19,10D,37 30,104,10 21,111,11 21,10C,1519 28,10D,37 30,104,10 21,111,11 20,10C,1539 19,20,97,-26,-10 0,21,-1,1,0 19,10D,37 31,104,10 21,111,11 20,10C,1539 29,10D,37 29,104,10 19,111,11 24,10C,1550 20,20,90,-25,0 0,21,-1,0,0 19,10D,37 29,104,10 18,111,11 20,10C,1550 44,10D,37 43,104,10 21,111,11 8,20,105,-19,-7 0,21,0,1,0 13,10,7140120 0,D,39 0,A,-3380396 0,B,15129067 0,C,46 70,10C,1566 32,10D,38 29,104,10 22,111,11 18,10C,1578 20,20,82,-36,-15 0,21,0,1,1 14,10,7140140 0,D,39 0,A,-3380394 0,B,15129065 0,C,46 69,10D,38 34,104,10 21,111,11 21,10C,1585 27,10D,38 22,20,93,-33,-13 0,21,-1,0,0 13,10,7140160 0,D,39 0,A,-3380393 0,B,15129064 0,C,46 70,104,10 15,111,11 18,10C,1589 31,10D,38 29,104,10 5,10,7140180 0,D,39 0,A,-3380391 0,B,15129063 0,C,46 41,20,102,-44,-10 0,21,0,0,1 22,111,11 19,10C,1589 27,10D,38 34,104,10 19,111,11 19,10C,1601 29,10D,38 31,104,10 2,20,106,-25,-7 0,21,-1,0,-1 30,111,11 20,10C,1601 28,10D,38 29,104,9 32,111,11 21,10C,1609 21,10,7140220 0,D,39 0,A,-3380388 0,B,15129060 0,C,46 38,10D,38 21,20,105,-27,-10 0,21,0,0,0 18,104,9 14,111,11 19,10C,1617 31,10D,38 29,104,9 7,10,7140240 0,D,39 0,A,-3380386 0,B,15129059 0,C,46 48,111,11 24,10C,1617 19,20,109,-29,-7 0,21,0,0,0 19,10D,38 29,104,9 22,111,11 19,10C,1640 26,10,7140260 0,D,40 0,A,-3380385 0,B,15129057 0,C,46 43,10D,38 42,104,9 4,20,91,-34,-6 0,21,-1,-1,0 30,111,11 19,10C,1652 30,10D,39 26,10,7140280 0,D,40 0,A,-3380383 0,B,15129056 0,C,46 39,104,9 15,111,11 22,10C,1652 20,20,93,-26,-10 0,21,-2,0,0 18,10D,39 29,104,9 21,111,11 21,10C,1664 29,10D,39 31,104,9 18,111,11 23,10C,1664 20,20,109,-23,-16 0,21,-1,0,1 18,10D,39 29,104,9 30,111,11 19,10,7140320 0,D,40 0,A,-3380380 0,B,15129053 0,C,46 38,10C,1667 28,10D,39 30,104,9 11,20,111,-35,-15 0,21,-1,0,0 18,111,11 18,10C,1671 30,10D,40 35,104,9 18,111,11 2,10,7140340 0,D,40 0,A,-3380378 0,B,15129052 0,C,42 55,10C,1671 25,20,97,-38,-10 0,21,-1,-1,-1 18,10D,40 29,104,9 23,111,11 18,10,7140360 0,D,41 0,A,-3380376 0,B,15129050 0,C,42 38,10C,1667 33,10D,40 29,104,9 15,20,87,-29,-13 0,21,-1,-1,1 17,111,11 18,10C,1667 29,10D,40 31,104,9 19,111,11 4,10,7140380 0,D,41 0,A,-3380375 0,B,15129049 0,C,42 54,10C,1667 28,10D,40 22,20,99,-34,-18 0,21,-1,0,1 17,104,9 17,111,11 19,10C,1667 23,10,7140400 0,D,41 0,A,-3380373 0,B,15129047 0,C,42 47,10D,40 30,104,9 21,111,11 21,10C,1671 35,20,92,-26,-13 0,21,-1,0,1 19,10D,40 40,104,9 17,111,11 21,10C,1671 32,10D,40 33,104,9 19,111,11 19,20,124,-23,-13 0,21,0,0,1 16,10C,1664 29,10D,40 32,104,9 21,111,11 21,10C,1671 29,10D,40 28,104,9 20,111,11 4,20,147,4,-27 0,21,0,-1,-5 28,10C,1671 21,10,7140460 0,D,42 0,A,-3380368 0,B,15129043 0,C,42 47,10D,40 30,104,9 21,111,11 21,10C,1660 29,10D,40 22,20,108,-22,-17 0,21,0,-1,0 18,104,9 7,10,7140480 0,D,42 0,A,-3380366 0,B,15129042 0,C,42 70,111,11 20,10C,1652 28,10D,41 29,104,9 19,111,11 13,20,81,-39,-12 0,21,0,0,-2 22,10C,1656 33,10D,41 34,104,9 18,111,11 21,10C,1652 31,10D,41 28,104,9 13,20,96,-38,-10 0,21,-1,-1,0 16,10,7140520 0,D,42 0,A,-3380363 0,B,15129039 0,C,42 67,111,11 26,10C,1652 28,10D,41 32,104,9 19,111,11 13,20,94,-34,0 0,21,0,0,3 14,10,7140540 0,D,42 0,A,-3380361 0,B,15129037 0,C,42 69,10C,1660 29,10D,42 29,104,9 21,111,11 20,10C,1664 20,20,98,-33,-1 0,21,0,0,0 18,10D,42 31,104,9 18,111,11 24,10C,1664 29,10D,42 29,104,9 22,111,11 19,10C,1667 20,20,103,-24,-17 0,21,-1,0,-3 19,10D,42 84,104,9 20,111,11 23,10C,1664 30,10D,42 26,20,99,-38,-20 0,21,-1,0,2 14,10,7140600 0,D,43 0,A,-3380356 0,B,15129033 0,C,42 69,104,9 20,111,11 14,10C,1667 31,10D,42 36,104,9 18,111,11 2,20,96,-28,-2 0,21,-1,0,0 14,10,7140620 0,D,43 0,A,-3380354 0,B,15129031 0,C,42 79,10C,1671 38,10D,42 33,104,9 21,111,11 12,10,7140640 0,D,43 0,A,-3380352 0,B,15129030 0,C,42 39,10C,1671 19,20,92,-33,-18 0,21,-1,0,0 18,10D,42 34,104,9 16,111,11 26,10C,1667 30,10D,42 32,104,9 18,10,7140660 0,D,43 0,A,-3380350 0,B,15129028 0,C,39 42,111,11 7,20,110,-19,-14 0,21,-1,0,0 18,10C,1675 32,10D,42 33,104,9 20,111,11 15,10,7140680 0,D,43 0,A,-3380349 0,B,15129027 0,C,39 38,10C,1679 29,10D,42 22,20,107,-28,-14 0,21,-1,0,0 18,104,9 18,111,11 23,10C,1683 29,10D,43 36,104,9 20,111,11 2,10,7140700 0,D,43 0,A,-3380347 0,B,15129025 0,C,38 55,20,80,-40,-17 0,21,-1,0,0 17,10C,1683 29,10D,43 37,104,9 17,111,11 14,10,7140720 0,D,44 0,A,-3380345 0,B,15129024 0,C,38 39,10C,1687 27,10D,43 24,20,105,-17,-16 0,21,-1,0,0 17,104,9 24,111,11 21,10C,1691 30,10D,43 48,104,9 23,111,11 19,10C,1699 19,20,119,-20,-2 0,21,-1,0,-1 19,10D,43 31,104,9 20,111,11 21,10C,1695 28,10D,44 33,104,9 17,111,11 20,10C,1707 20,20,101,-28,-10 0,21,-1,0,0 18,10D,44 34,104,9 18,111,11 22,10C,1707 21,10,7140780 0,D,44 0,A,-3380339 0,B,15129019 0,C,38 38,10D,44 35,104,9 14,111,11 2,20,97,-32,-17 0,21,-1,0,0 31,10C,1703 26,10D,44 30,104,8 12,10,7140800 0,D,45 0,A,-3380338 0,B,15129017 0,C,38 39,111,11 15,10C,1707 31,10D,44 24,20,99,-24,-21 0,21,0,-2,0 17,104,8 18,111,11 22,10C,1703 28,10D,44 28,10,7140820 0,D,45 0,A,-3380336 0,B,15129016 0,C,38 38,104,8 14,111,11 19,10C,1703 21,20,116,-17,-5 0,21,-1,0,0 17,10D,44 42,104,8 19,10,7140840 0,D,45 0,A,-3380334 0,B,15129014 0,C,38 38,111,11 15,10C,1703 28,10D,44 30,104,8 13,20,106,-24,-5 0,21,0,-1,0 17,111,11 16,10C,1707 31,10D,44 25,10,7140860 0,D,45 0,A,-3380332 0,B,15129013 0,C,38 37,104,8 15,111,11 23,10C,1699 29,10D,44 23,20,98,-31,-9 0,21,0,0,0 17,104,8 13,111,11 21,10C,1703 21,10,7140880 0,D,46 0,A,-3380330 0,B,15129011 0,C,38 50,10D,44 61,104,8 16,111,11 2,20,85,-41,-12 0,21,-1,1,0 32,10C,1703 28,10D,44 23,10,7140900 0,D,46 0,A,-3380328 0,B,15129009 0,C,38 38,104,9 19,111,11 15,10C,1710 32,10D,45 22,20,111,-22,-12 0,21,-1,0,0 17,104,9 14,111,11 20,10C,1714 21,10,7140920 0,D,46 0,A,-3380326 0,B,15129008 0,C,38 49,10D,45 36,104,9 14,111,11 27,10C,1714 29,20,93,-41,-8 0,21,-1,0,0 16,10D,45 24,10,7140940 0,D,46 0,A,-3380324 0,B,15129006 0,C,38 55,104,9 19,111,11 19,10C,1714 31,10D,45 33,104,8 3,20,101,-28,-18 0,21,-1,0,-1 27,10,7140960 0,D,46 0,A,-3380323 0,B,15129005 0,C,38 56,111,11 16,10C,1722 31,10D,45 35,104,8 19,111,11 16,20,102,-31,-13 0,21,-1,0,1 16,10C,1718 22,10,7140980 0,D,47 0,A,-3380321 0,B,15129003 0,C,38 57,10D,46 33,104,8 21,111,11 21,10C,1714 30,10D,46 22,20,127,-10,-11 0,21,0,0,3 19,104,8 18,111,11 3,10,7141000 0,D,47 0,A,-3380319 0,B,15129001 0,C,35 81,10C,1714 32,10D,46 32,104,8 17,20,74,-28,49 0,21,0,0,-3 14,10,7141020 0,D,47 0,A,-3380317 0,B,15129000 0,C,35 70,111,11 15,10C,1714 32,10D,46 34,104,8 26,111,11 10,20,90,-35,-13 0,21,-1,0,0 18,10,7141040 0,D,47 0,A,-3380315 0,B,15128998 0,C,35 66,10C,1789 38,10D,46 37,104,8 19,111,12 21,10C,1988 20,20,104,-27,-11 0,21,-1,0,-1 13,10,7141060 0,D,47 0,A,-3380313 0,B,15128996 0,C,35 70,10D,46 35,104,9 14,111,12 23,10C,2035 26,10,7141080 0,D,48 0,A,-3380311 0,B,15128995 0,C,35 38,10D,46 23,20,121,-17,-8 0,21,-2,-1,-1 18,104,8 18,111,12 20,10C,2058 31,10D,46 33,104,8 22,111,12 2,10,7141100 0,D,48 0,A,-3380309 0,B,15128993 0,C,35 52,10C,2082 19,20,99,-30,4 0,21,0,0,2 18,10D,46 32,104,8 21,111,12 20,10C,2082 31,10D,46 24,10,7141120 0,D,48 0,A,-3380307 0,B,15128991 0,C,35 38,104,8 18,111,12 2,20,74,-45,-10 0,21,-1,0,1 27,10C,2085 27,10D,46 33,104,8 31,111,12 2,10,7141140 0,D,48 0,A,-3380305 0,B,15128990 0,C,35 55,10C,2074 25,20,101,-29,-20 0,21,-1,0,-2 18,10D,46 35,104,8 18,111,12 19,10C,2074 32,10D,46 23,10,7141160 0,D,48 0,A,-3380303 0,B,15128988 0,C,35 38,104,8 19,111,12 2,20,119,-26,-16 0,21,-1,0,0 26,10C,2070 32,10D,46 33,104,8 15,111,12 13,10,7141180 0,D,48 0,A,-3380301 0,B,15128987 0,C,35 43,10C,2058 40,10D,46 25,20,102,-37,-10 0,21,-1,0,-1 18,104,8 18,111,12 18,10C,2042 31,10D,46 25,10,7141200 0,D,47 0,A,-3380299 0,B,15128985 0,C,35 37,104,8 19,111,12 18,10C,2023 20,20,97,-37,-2 0,21,-1,0,-2 18,10D,46 33,104,8 19,111,12 19,10,7141220 0,D,47 0,A,-3380297 0,B,15128983 0,C,35 38,10C,2023 28,10D,46 35,104,8 11,20,95,-33,-15 0,21,-1,0,-1 18,111,12 17,10C,2011 30,10D,46 45,104,8 18,111,12 20,10C,1996 32,10D,46 22,20,119,-8,-11 0,21,-1,0,0 19,104,9 16,111,12 16,10C,1984 29,10,7141260 0,D,47 0,A,-3380293 0,B,15128980 0,C,35 43,10D,46 35,104,9 18,111,12 20,10C,1968 19,20,105,-31,-1 0,21,0,1,3 18,10D,46 32,104,8 17,111,12 2,10,7141280 0,D,47 0,A,-3380291 0,B,15128978 0,C,35 62,10C,1960 32,10D,46 35,104,8 2,20,95,-32,-11 0,21,-1,0,-2 26,111,12 21,10C,1949 30,10D,46 36,104,8 17,111,12 15,10C,1937 33,10D,46 23,20,73,-52,-8 0,21,-1,0,1 17,104,9 16,111,11 19,10C,1929 30,10D,46 31,104,8 22,111,11 23,10C,1917 32,10D,45 23,20,91,-36,1 0,21,-1,0,0 17,104,8 13,111,12 24,10,7141340 0,D,46 0,A,-3380286 0,B,15128973 0,C,35 53,10C,1914 40,10D,45 34,104,8 21,111,12 2,20,119,-21,-14 0,21,-1,0,0 28,10C,1894 30,10D,45 22,10,7141360 0,D,45 0,A,-3380284 0,B,15128971 0,C,35 39,104,8 19,111,12 22,10C,1890 32,10D,45 22,20,92,-47,-4 0,21,0,0,2 16,104,8 19,111,11 2,10,7141380 0,D,45 0,A,-3380282 0,B,15128970 0,C,35 81,10C,1871 32,10D,45 34,104,8 18,111,11 2,20,92,-44,-13 0,21,-1,0,0 30,10C,1863 20,10,7141400 0,D,45 0,A,-3380280 0,B,15128968 0,C,35 47,10D,43 32,104,8 19,111,11 23,10C,1871 27,10D,43 21,20,128,-12,-7 0,21,-1,0,-2 23,104,8 15,111,11 11,10,7141420 0,D,45 0,A,-3380278 0,B,15128967 0,C,30 60,10C,1875 32,10D,43 33,104,8 19,111,11 19,20,113,-20,-9 0,21,-1,-1,0 16,10,7141440 0,D,44 0,A,-3380277 0,B,15128965 0,C,30 67,10C,1878 29,10D,43 31,104,8 20,111,11 21,10C,1882 19,20,103,-44,2 0,21,-1,0,0 18,10D,43 32,104,8 19,111,11 19,10C,1878 33,10D,43 34,104,8 17,111,11 22,10C,1882 20,20,107,-62,5 0,21,0,-1,-1 13,10,7141480 0,D,44 0,A,-3380273 0,B,15128962 0,C,30 70,10D,43 31,104,8 20,111,11 21,10C,1886 28,10D,43 23,20,160,-22,-2 0,21,0,3,1 17,10,7141500 0,D,44 0,A,-3380271 0,B,15128961 0,C,30 66,104,8 31,111,11 19,10C,1875 30,10D,43 31,104,8 10,20,107,-35,-1 0,21,-1,0,-5 14,10,7141520 0,D,44 0,A,-3380269 0,B,15128959 0,C,29 69,111,11 15,10C,1878 32,10D,43 32,104,8 19,10,7141540 0,D,44 0,A,-3380268 0,B,15128958 0,C,29 39,111,11 6,20,83,-46,-3 0,21,-1,1,0 18,10C,1855 32,10D,44 35,104,8 17,111,11 21,10C,1847 25,10,7141560 0,D,43 0,A,-3380266 0,B,15128956 0,C,29 38,10D,44 24,20,97,-31,-48 0,21,-1,-2,4 17,104,8 15,111,11 22,10C,1835 35,10D,44 33,104,8 18,10,7141580 0,D,43 0,A,-3380264 0,B,15128955 0,C,29 38,111,11 15,10C,1898 20,20,98,-22,5 0,21,-1,0,2 17,10D,44 32,104,8 23,111,12 18,10C,2097 31,10D,44 24,10,7141600 0,D,43 0,A,-3380262 0,B,15128953 0,C,29 38,104,7 15,111,12 2,20,115,-30,-20 0,21,-1,0,0 30,10C,2230 28,10D,43 30,104,7 21,111,12 23,10C,2335 19,10,7141620 0,D,43 0,A,-3380260 0,B,15128952 0,C,29 39,10D,43 23,20,118,-38,-36 0,21,0,0,5 17,104,7 18,111,12 24,10C,2308 26,10D,43 30,104,6 5,10,7141640 0,D,43 0,A,-3380259 0,B,15128950 0,C,29 66,111,12 18,20,136,-3,2 0,21,-1,0,0 20,10C,2343 32,10D,43 33,104,6 21,111,12 12,10,7141660 0,D,43 0,A,-3380257 0,B,15128949 0,C,29 39,10C,2355 28,10D,43 22,20,80,-37,-6 0,21,-1,-1,0 19,104,6 17,111,12 20,10C,2363 29,10D,43 36,104,6 19,111,12 3,10,7141680 0,D,43 0,A,-3380255 0,B,15128947 0,C,29 52,10C,2375 19,20,92,-39,-20 0,21,-1,0,-3 18,10D,42 33,104,6 19,111,12 22,10C,2386 20,10,7141700 0,D,43 0,A,-3380253 0,B,15128946 0,C,29 39,10D,42 35,104,6 14,111,12 2,20,115,-26,-8 0,21,-1,0,0 30,10C,2378 33,10D,42 29,10,7141720 0,D,43 0,A,-3380252 0,B,15128945 0,C,29 38,104,6 19,111,12 18,10C,2390 33,10D,42 22,20,107,-20,-13 0,21,0,0,-2 18,104,6 16,111,12 20,10C,2390 23,10,7141740 0,D,43 0,A,-3380250 0,B,15128943 0,C,29 46,10D,42 44,104,6 19,111,12 16,20,98,-28,-18 0,21,-1,0,0 16,10C,2394 26,10D,42 32,104,6 18,111,12 5,10,7141760 0,D,43 0,A,-3380248 0,B,15128942 0,C,27 52,10C,2410 29,10D,42 23,20,123,-12,-10 0,21,-1,-1,0 17,104,6 13,111,12 24,10C,2414 21,10,7141780 0,D,43 0,A,-3380246 0,B,15128940 0,C,27 52,10D,42 47,104,6 16,111,12 12,20,107,-23,-20 0,21,-1,0,-1 17,10C,2425 29,10D,42 32,104,6 20,10,7141800 0,D,43 0,A,-3380244 0,B,15128939 0,C,26 38,111,12 18,10C,2425 33,10D,42 22,20,115,-23,-25 0,21,-2,0,0 18,104,6 16,111,12 22,10C,2433 19,10,7141820 0,D,44 0,A,-3380243 0,B,15128937 0,C,26 47,10D,43 35,104,6 18,111,12 21,10C,2433 19,20,101,-30,-8 0,21,-1,0,-1 16,10D,43 35,104,6 17,10,7141840 0,D,44 0,A,-3380241 0,B,15128936 0,C,26 41,111,12 28,10C,2449 28,10D,43 34,104,6 2,20,86,-45,-2 0,21,-1,0,0 29,111,12 11,10,7141860 0,D,44 0,A,-3380239 0,B,15128934 0,C,26 55,10C,2453 29,10D,43 35,104,6 14,111,12 28,10C,2449 19,20,85,-37,-11 0,21,-1,0,4 19,10D,43 30,104,6 19,111,12 23,10C,2445 29,10D,43 34,104,6 14,111,12 28,10C,2460 19,20,106,-24,-14 0,21,-1,0,0 19,10D,44 34,104,6 15,111,12 24,10C,2464 32,10D,44 34,104,6 19,111,12 23,10C,2472 19,20,104,-31,-14 0,21,-1,-1,0 14,10,7141920 0,D,44 0,A,-3380234 0,B,15128929 0,C,26 69,10D,44 32,104,6 18,111,12 23,10C,2468 29,10D,44 23,20,108,-11,-5 0,21,-1,0,-1 19,104,6 17,111,12 36,10C,2480 39,10D,44 28,104,6 24,111,12 9,10,7141960 0,D,44 0,A,-3380230 0,B,15128926 0,C,26 39,10C,2488 20,20,108,-21,-15 0,21,-1,0,0 18,10D,44 31,104,6 21,111,12 20,10C,2488 29,10D,44 36,104,6 20,111,12 2,10,7141980 0,D,44 0,A,-3380228 0,B,15128925 0,C,24 44,20,83,-34,-11 0,21,-1,0,-1 18,10C,2488 32,10D,44 33,104,6 22,111,12 19,10C,2492 20,10,7142000 0,D,45 0,A,-3380226 0,B,15128923 0,C,24 38,10D,44 23,20,102,-35,-23 0,21,-1,0,1 18,104,6 14,111,12 23,10C,2500 26,10D,44 34,104,6 8,10,7142020 0,D,45 0,A,-3380224 0,B,15128922 0,C,24 42,111,12 20,10C,2492 19,20,138,-1,-25 0,21,0,-4,2 18,10D,44 32,104,6 20,111,12 20,10C,2496 26,10,7142040 0,D,45 0,A,-3380222 0,B,15128920 0,C,24 38,10D,44 36,104,6 10,20,81,-35,-12 0,21,-1,0,-3 18,111,12 24,10C,2503 31,10D,44 29,104,6 13,10,7142060 0,D,45 0,A,-3380221 0,B,15128919 0,C,24 39,111,12 14,10C,2519 29,10D,44 22,20,98,-20,-7 0,21,0,0,-3 18,104,6 18,111,12 18,10C,2519 31,10D,44 25,10,7142080 0,D,45 0,A,-3380219 0,B,15128917 0,C,24 38,104,6 18,111,12 20,10C,2523 32,20,110,-18,-4 0,21,-1,0,0 18,10D,44 32,104,6 21,111,12 4,10,7142100 0,D,45 0,A,-3380217 0,B,15128916 0,C,24 60,10C,2535 32,10D,44 35,104,6 2,20,109,-16,-11 0,21,0,0,0 25,111,12 22,10C,2535 26,10,7142120 0,D,45 0,A,-3380215 0,B,15128914 0,C,24 38,10D,44 31,104,6 18,111,12 20,10C,2539 21,20,86,-40,-10 0,21,-1,0,2 17,10D,44 33,104,6 21,111,12 3,10,7142140 0,D,46 0,A,-3380213 0,B,15128913 0,C,24 56,10C,2542 33,10D,44 34,104,6 17,20,82,-47,-18 0,21,-1,0,0 16,111,12 18,10C,2554 24,10,7142160 0,D,45 0,A,-3380211 0,B,15128911 0,C,24 51,10D,44 31,104,6 23,111,12 19,10C,2554 20,20,104,-28,-11 0,21,0,-1,2 17,10D,45 30,104,6 11,10,7142180 0,D,46 0,A,-3380209 0,B,15128909 0,C,24 51,111,12 15,10C,2558 28,10D,45 32,104,6 18,111,12 2,20,70,-48,-17 0,21,-1,-1,-2 31,10C,2566 30,10D,45 35,104,6 18,111,12 19,10C,2566 32,10D,45 35,104,6 1,20,50,-56,-8 0,21,-1,0,0 29,111,12 20,10C,2558 21,10,7142220 0,D,46 0,A,-3380206 0,B,15128906 0,C,24 41,10D,45 34,104,6 19,111,12 20,10C,2554 20,20,90,-42,-6 0,21,-1,0,0 16,10D,45 32,104,6 2,10,7142240 0,D,46 0,A,-3380204 0,B,15128905 0,C,24 68,111,12 26,10C,2546 55,10D,46 47,20,101,-32,-17 0,21,-1,-1,0 20,104,6 28,111,12 29,10C,2535 46,10D,46 50,104,6 29,111,12 22,20,85,-37,-19 0,21,-1,0,0 15,10,7142280 0,D,46 0,A,-3380200 0,B,15128902 0,C,24 68,10C,2527 41,10D,46 44,104,6 22,10,7142300 0,D,45 0,A,-3380198 0,B,15128900 0,C,24 42,111,12 20,20,100,-37,-14 0,21,-1,1,-1 19,10C,2500 41,10D,46 47,104,6 35,111,12 31,10C,2488 35,20,109,-39,-4 0,21,-1,0,-1 19,10D,45 55,104,6 29,111,12 31,10C,2480 43,10D,45 42,20,114,-23,-7 0,21,-1,0,-1 20,104,6 30,111,12 38,10C,2457 36,10,7142360 0,D,44 0,A,-3380192 0,B,15128896 0,C,24 41,10D,45 40,20,93,-49,-12 0,21,0,0,-1 19,104,6 31,111,12 27,10C,2437 37,10,7142380 0,D,44 0,A,-3380190 0,B,15128894 0,C,24 40,10D,45 44,104,6 22,20,105,-26,-10 0,21,-1,0,-2 19,111,12 30,10C,2425 43,10D,44 40,10,7142400 0,D,44 0,A,-3380188 0,B,15128893 0,C,17 40,104,6 31,111,12 21,20,75,-31,-11 0,21,-1,-2,-1 19,10C,2414 52,10D,44 49,104,6 29,111,12 30,10C,2414 35,20,125,-19,-11 0,21,0,-2,0 22,10D,44 38,10,7142440 0,D,43 0,A,-3380185 0,B,15128890 0,C,17 40,104,6 28,111,12 34,10C,2410 38,20,82,-47,-11 0,21,-1,0,0 18,10D,43 47,10,7142460 0,D,43 0,A,-3380183 0,B,15128888 0,C,17 40,104,6 28,111,12 34,10C,2382 33,20,86,-44,-8 0,21,0,-1,-1 19,10D,43 45,10,7142480 0,D,43 0,A,-3380181 0,B,15128887 0,C,17 40,104,6 32,111,12 33,10C,2367 34,20,126,-29,14 0,21,0,0,-6 19,10D,43 36,10,7142500 0,D,43 0,A,-3380179 0,B,15128885 0,C,17 41,104,6 32,111,12 33,10C,2335 42,20,93,-43,-28 0,21,0,0,1 19,10D,43 36,10,7142520 0,D,42 0,A,-3380178 0,B,15128884 0,C,17 45,104,6 28,111,12 30,10C,2316 44,10D,42 37,20,94,-39,-15 0,21,-1,0,-1 21,104,7 28,111,12 29,10C,2304 47,10D,42 48,104,7 29,20,109,-32,-18 0,21,0,0,1 22,111,12 30,10C,2285 43,10D,42 45,104,7 32,111,12 28,20,86,-48,-15 0,21,-1,0,-2 20,10C,2269 41,10D,42 49,104,7 29,111,12 32,10C,2253 35,20,78,-50,-15 0,21,-1,0,0 20,10D,41 44,104,7 30,111,12 45,10C,2238 43,10,7142620 0,D,41 0,A,-3380169 0,B,15128877 0,C,17 41,10D,41 35,20,74,-70,-1 0,21,-1,0,-1 20,104,7 31,111,12 37,10C,2226 43,10D,41 47,104,7 26,20,77,-46,-15 0,21,-1,0,0 20,111,12 28,10C,2210 45,10D,41 50,104,7 39,111,12 21,20,98,-31,-13 0,21,-1,0,0 20,10C,2195 49,10D,39 45,104,7 21,10,7142680 0,D,40 0,A,-3380164 0,B,15128873 0,C,17 41,111,12 24,20,93,-44,3 0,21,-1,0,0 20,10C,2191 43,10D,39 45,104,7 23,10,7142700 0,D,40 0,A,-3380163 0,B,15128871 0,C,17 41,111,12 28,20,129,-16,-25 0,21,-1,0,0 20,10C,2191 44,10D,39 44,104,7 23,10,7142720 0,D,39 0,A,-3380161 0,B,15128870 0,C,17 41,111,12 27,10C,2191 34,20,84,-42,-12 0,21,-1,0,0 24,10D,39 46,104,7 23,10,7142740 0,D,39 0,A,-3380159 0,B,15128869 0,C,17 41,111,12 32,10C,2179 34,20,109,-35,10 0,21,0,0,0 20,10D,38 45,104,7 31,111,12 30,10C,2175 52,10D,38 38,20,98,-29,-13 0,21,-1,0,-1 19,104,7 30,111,12 40,10C,2171 43,10D,38 45,104,7 27,20,91,-49,-15 0,21,0,0,1 18,111,12 26,10C,2160 44,10D,38 45,104,7 29,111,12 34,10C,2152 34,20,101,-34,0 0,21,-1,0,0 20,10D,38 44,104,8 29,111,12 30,10C,2140 47,10D,38 37,20,97,-37,-2 0,21,-1,-1,0 18,104,8 22,10,7142840 0,D,38 0,A,-3380151 0,B,15128862 0,C,17 55,111,12 33,10C,2128 42,10D,38 45,20,92,-25,-2 0,21,0,0,-1 20,104,7 32,111,12 30,10C,2109 55,10D,38 49,104,7 21,20,106,-38,-9 0,21,0,-1,0 21,111,12 28,10C,2109 43,10D,38 46,104,8 32,111,12 28,10C,2097 35,20,79,-49,-13 0,21,-1,0,-2 17,10,7142900 0,D,38 0,A,-3380147 0,B,15128858 0,C,17 66,10D,38 47,104,7 32,111,12 23,10,7142920 0,D,38 0,A,-3380145 0,B,15128856 0,C,17 41,10C,2082 31,20,111,-38,3 0,21,0,0,-1 21,10D,38 43,104,8 30,111,12 35,10C,2074 44,10D,38 37,20,105,-36,-15 0,21,0,-1,-1 21,104,7 30,111,12 32,10C,2050 47,10D,37 46,104,8 42,20,72,-45,-1 0,21,0,0,0 21,111,12 29,10C,2015 44,10D,37 46,104,9 29,111,12 30,10C,2007 35,20,88,-44,-10 0,21,-1,-1,0 19,10D,37 48,104,8 34,111,12 30,10C,1984 55,10D,37 37,20,106,-31,-4 0,21,-3,-3,-2 19,104,8 22,10,7143020 0,D,36 0,A,-3380138 0,B,15128849 0,C,17 54,111,12 33,10C,1953 43,10D,35 36,20,99,-30,-17 0,21,-2,0,-1 20,104,8 20,10,7143040 0,D,35 0,A,-3380136 0,B,15128848 0,C,17 56,111,12 31,10C,1937 43,10D,35 37,20,60,-45,-22 0,21,-2,1,1 20,104,8 20,10,7143060 0,D,35 0,A,-3380135 0,B,15128847 0,C,17 55,111,12 37,10C,1941 46,10D,35 37,20,84,-38,-14 0,21,-3,0,0 21,104,8 27,111,12 31,10C,1929 42,10D,35 46,104,8 31,111,11 22,20,82,-53,-21 0,21,-2,3,1 16,10,7143100 0,D,34 0,A,-3380132 0,B,15128844 0,C,17 68,10C,1917 43,10D,34 44,104,8 31,111,12 21,20,85,-43,-11 0,21,-2,2,-3 21,10C,1937 45,10D,34 48,104,8 42,111,12 22,10,7143140 0,D,34 0,A,-3380129 0,B,15128842 0,C,17 42,10C,1906 32,20,136,-20,-5 0,21,-2,1,6 21,10D,34 46,104,8 27,111,11 31,10C,1921 48,10D,34 37,20,94,-25,13 0,21,-2,-1,-5 25,104,8 35,111,12 32,10C,1929 36,10,7143180 0,D,35 0,A,-3380126 0,B,15128840 0,C,17 41,10D,34 35,20,82,-33,-20 0,21,-1,0,0 20,104,8 27,111,12 32,10C,1910 43,10D,34 46,104,8 29,111,11 22,20,107,-27,0 0,21,-1,0,-2 19,10C,1914 42,10D,34 47,104,8 30,111,12 30,10C,1906 34,20,89,-41,-2 0,21,-1,-1,0 20,10D,34 50,104,8 22,10,7143240 0,D,34 0,A,-3380122 0,B,15128836 0,C,17 41,111,11 27,10C,1902 43,20,83,-50,-18 0,21,0,0,1 19,10D,34 42,104,8 23,10,7143260 0,D,34 0,A,-3380121 0,B,15128835 0,C,17 45,111,12 29,10C,1898 42,20,102,-32,-14 0,21,0,0,0 20,10D,34 53,104,8 20,10,7143280 0,D,34 0,A,-3380119 0,B,15128834 0,C,17 41,111,12 28,10C,1894 40,20,104,-25,-8 0,21,0,0,0 18,10D,34 46,104,8 23,10,7143300 0,D,34 0,A,-3380118 0,B,15128833 0,C,17 40,111,12 27,10C,1886 48,10D,34 36,20,90,-35,-12 0,21,0,0,0 20,104,8 20,10,7143320 0,D,34 0,A,-3380116 0,B,15128832 0,C,17 56,111,11 31,10C,1886 43,10D,34 50,20,101,-22,-6 0,21,-1,0,0 20,104,8 33,111,11 33,10C,1875 47,10D,34 48,104,8 20,20,121,-32,-13 0,21,-1,-1,0 26,111,11 40,10C,1871 43,10D,34 45,104,8 32,111,11 29,20,116,-17,-15 0,21,-1,-1,-4 22,10C,1871 44,10D,33 50,104,8 33,111,11 32,10C,1855 33,20,104,-28,-12 0,21,-1,0,0 21,10D,33 44,104,8 30,111,11 32,10C,1835 45,10D,33 38,20,108,-26,-4 0,21,-1,0,0 17,10,7143420 0,D,33 0,A,-3380109 0,B,15128826 0,C,17 66,104,8 27,111,11 32,10C,1816 43,10D,33 37,20,97,-31,-23 0,21,0,0,-1 21,104,8 28,111,11 29,10C,1808 45,10D,32 46,104,8 24,10,7143460 0,D,33 0,A,-3380107 0,B,15128824 0,C,4 39,111,11 19,20,120,-16,-34 0,21,0,0,0 24,10C,1785 43,10D,32 50,104,8 33,10,7143480 0,D,33 0,A,-3380105 0,B,15128822 0,C,4 39,111,11 19,20,114,-21,-6 0,21,0,1,-1 20,10C,1757 43,10D,32 56,104,8 30,111,11 29,10C,1738 34,20,97,-22,-12 0,21,-1,0,0 21,10D,32 45,104,8 23,10,7143520 0,D,31 0,A,-3380103 0,B,15128820 0,C,4 40,111,11 28,10C,1714 42,10D,31 38,20,105,-23,-9 0,21,0,0,0 19,104,8 28,111,11 31,10C,1707 47,10D,31 49,104,9 27,111,11 22,20,93,-38,-11 0,21,-1,-1,1 20,10C,1687 45,10D,31 50,104,9 29,111,11 33,10C,1664 34,20,100,-28,-4 0,21,-1,-1,0 24,10D,31 44,104,9 39,111,11 34,10C,1660 41,10D,30 37,20,149,-8,10 0,21,0,1,-3 20,104,9 28,111,11 34,10C,1640 43,10D,30 56,104,9 21,20,106,-24,-9 0,21,-1,-1,0 16,10,7143620 0,D,29 0,A,-3380096 0,B,15128815 0,C,4 66,111,11 31,10C,1617 45,10D,30 43,20,204,31,-67 0,21,-2,-3,-12 21,104,9 32,111,11 29,10C,1621 42,10D,30 49,104,9 22,10,7143660 0,D,28 0,A,-3380094 0,B,15128813 0,C,4 40,111,11 19,20,105,-39,3 0,21,0,0,1 20,10C,1558 41,10D,29 47,104,9 35,111,11 30,10C,1531 75,20,90,-36,-4 0,21,-1,-1,2 20,10D,29 59,104,9 23,10,7143700 0,D,28 0,A,-3380092 0,B,15128811 0,C,4 39,111,11 39,10C,1519 35,20,166,-32,-17 0,21,-1,-4,16 20,10D,29 42,104,9 23,10,7143720 0,D,27 0,A,-3380091 0,B,15128810 0,C,4 39,111,11 31,10C,1515 43,10D,27 37,20,110,-31,-10 0,21,-1,0,-4 19,104,9 29,111,11 31,10C,1503 46,10D,27 49,104,12 29,111,15 20,20,87,-35,-10 0,21,0,0,-1 22,10C,1488 45,10D,27 49,104,21 29,111,15 29,10C,1488 34,20,104,-17,-10 0,21,0,0,0 20,10D,27 48,104,32 33,111,18 30,10C,1496 45,10D,27 46,20,113,0,-2 0,21,-1,0,-2 21,104,42 32,111,18 34,10C,1460 42,10D,26 44,104,46 24,10,7143820 0,D,26 0,A,-3380085 0,B,15128806 0,C,4 40,111,18 18,20,109,-13,-7 0,21,-1,0,0 21,10C,1390 44,10D,26 51,104,50 34,111,18 23,10,7143840 0,D,26 0,A,-3380084 0,B,15128805 0,C,4 39,10C,1390 42,20,101,-34,-12 0,21,0,0,2 19,10D,26 47,104,52 22,10,7143860 0,D,26 0,A,-3380083 0,B,15128804 0,C,4 41,111,18 31,10C,1371 43,10D,26 37,20,127,-8,-22 0,21,-1,0,-2 19,104,52 22,10,7143880 0,D,27 0,A,-3380082 0,B,15128803 0,C,4 53,111,18 32,10C,1351 43,10D,26 36,20,103,-8,-11 0,21,0,1,-1 24,104,53 30,10,7143900 0,D,27 0,A,-3380081 0,B,15128802 0,C,4 42,111,18 27,10C,1343 46,10D,26 37,20,112,-15,0 0,21,-1,0,1 21,104,53 19,10,7143920 0,D,28 0,A,-3380079 0,B,15128801 0,C,4 54,111,18 28,10C,1343 46,10D,26 37,20,112,-16,-21 0,21,0,0,1 21,104,52 32,111,17 30,10C,1363 46,10D,27 49,104,49 25,20,104,-13,2 0,21,0,-2,-1 17,10,7143960 0,D,29 0,A,-3380077 0,B,15128799 0,C,4 65,111,17 28,10C,1371 42,10D,27 49,104,48 20,20,104,-19,-14 0,21,0,0,-1 22,111,16 30,10C,1367 47,10D,27 49,104,40 65,20,109,-24,2 0,21,-1,-1,2 20,111,14 41,10C,1351 43,10D,29 56,104,28 30,111,13 22,20,100,-34,-20 0,21,-1,0,1 20,10C,1359 41,10D,29 45,104,24 32,111,13 31,10C,1359 34,20,75,-25,0 0,21,-1,0,1 15,10,7144040 0,D,30 0,A,-3380072 0,B,15128795 0,C,4 67,10D,29 43,104,18 28,111,12 44,10,7144060 0,D,30 0,A,-3380071 0,B,15128794 0,C,4 39,10C,1292 32,20,145,8,-38 0,21,-1,0,3 20,10D,29 47,104,18 29,111,13 22,10,7144080 0,D,30 0,A,-3380070 0,B,15128793 0,C,4 40,10C,1285 44,10D,29 37,20,78,-41,-11 0,21,-1,0,0 19,104,21 32,111,13 22,10,7144100 0,D,30 0,A,-3380068 0,B,15128792 0,C,4 39,10C,1304 50,10D,29 41,20,104,-13,-7 0,21,-1,0,0 19,104,21 31,111,13 22,10,7144120 0,D,29 0,A,-3380067 0,B,15128791 0,C,4 39,10C,1292 41,10D,29 45,104,20 21,20,104,-32,-11 0,21,-1,0,1 19,111,12 32,10C,1300 44,10D,29 45,104,17 29,111,11 33,10C,1328 34,20,55,-58,-4 0,21,-2,-1,0 20,10D,28 45,104,13 29,111,11 30,10C,1359 46,10D,28 37,20,91,-39,-18 0,21,-1,0,1 20,104,12 32,111,11 30,10C,1367 43,10D,28 48,104,11 27,20,98,-26,-10 0,21,-1,1,-3 15,10,7144200 0,D,28 0,A,-3380062 0,B,15128787 0,C,4 66,111,11 42,10C,1335 42,10D,28 37,20,65,-46,5 0,21,-1,0,1 21,104,11 27,111,11 40,10C,1320 46,10D,27 43,104,11 28,20,79,-45,-2 0,21,-1,2,4 21,111,11 27,10C,1339 46,10D,27 49,104,11 31,111,11 28,20,84,-25,-6 0,21,-1,-1,-2 20,10C,1339 41,10D,27 45,104,11 30,111,11 32,10C,1335 34,20,78,-33,-3 0,21,-1,0,-2 20,10D,27 44,104,11 30,111,11 29,10C,1312 44,10D,26 37,20,93,-39,-4 0,21,0,2,3 22,104,11 26,111,11 31,10C,1316 54,10D,26 47,104,11 21,20,106,-17,-6 0,21,-2,0,0 20,10,7144320 0,D,26 0,A,-3380056 0,B,15128781 0,C,4 62,111,11 32,10C,1308 44,10D,26 43,20,101,-29,-11 0,21,-1,1,0 20,104,12 27,111,11 31,10C,1300 46,10D,26 48,104,11 22,10,7144360 0,D,25 0,A,-3380053 0,B,15128779 0,C,4 39,111,11 20,20,97,-33,-12 0,21,-2,-1,0 19,10C,1308 44,10D,25 44,104,11 31,111,11 31,10C,1304 34,20,99,-27,-19 0,21,-1,0,0 20,10D,25 50,104,11 32,111,11 39,10C,1285 37,10,7144400 0,D,25 0,A,-3380051 0,B,15128778 0,C,4 39,10D,25 35,20,108,-29,-10 0,21,-1,0,0 20,104,12 49,111,11 21,10,7144420 0,D,23 0,A,-3380051 0,B,15128777 0,C,4 43,10C,1285 46,10D,25 36,20,86,-33,-12 0,21,-1,0,0 20,104,12 28,111,12 21,10,7144440 0,D,23 0,A,-3380050 0,B,15128776 0,C,4 40,10C,1160 44,10D,23 45,104,16 22,20,105,-21,-5 0,21,-1,0,0 18,111,11 20,10,7144460 0,D,22 0,A,-3380049 0,B,15128775 0,C,4 56,10C,1082 45,10D,23 48,104,17 21,20,99,-24,-1 0,21,0,-1,-9 21,111,13 19,10,7144480 0,D,23 0,A,-3380048 0,B,15128774 0,C,4 55,10C,1042 40,10D,23 49,104,24 21,20,90,-26,-18 0,21,0,1,-1 21,111,13 27,10C,1082 47,10D,22 50,104,24 32,111,14 31,20,131,-19,-8 0,21,0,0,3 21,10C,1175 41,10D,22 50,104,26 29,111,14 32,10C,1265 34,20,79,-22,-9 0,21,0,0,0 20,10D,22 44,104,25 30,111,13 30,10C,1304 46,10D,22 37,20,110,-15,-19 0,21,-1,0,0 20,104,24 32,111,14 30,10C,1304 46,10D,22 47,104,23 32,20,102,-27,-8 0,21,-1,0,0 20,111,14 31,10C,1277 43,10D,22 45,104,24 32,111,14 30,20,93,-26,-34 0,21,-1,0,-1 21,10C,1281 40,10D,22 46,104,24 30,111,14 30,10C,1285 44,20,107,-22,-15 0,21,-1,0,0 21,10D,22 47,104,24 34,111,14 28,10C,1281 46,10D,22 37,20,101,-21,1 0,21,-1,0,0 21,10,7144640 0,D,22 0,A,-3380040 0,B,15128769 0,C,4 61,104,25 32,111,14 31,10C,1285 44,10D,22 37,20,104,-25,-4 0,21,-1,-1,0 20,104,25 28,111,14 28,10C,1277 45,10D,22 47,104,25 29,111,12 22,20,90,-26,-21 0,21,-1,0,0 19,10C,1261 44,10D,22 44,104,20 30,111,12 31,10C,1195 34,20,102,-27,-10 0,21,-1,0,1 20,10D,22 47,104,20 28,111,12 29,10C,1160 44,10,7144720 0,D,22 0,A,-3380036 0,B,15128767 0,C,4 40,10D,22 35,20,97,-27,-21 0,21,-1,0,0 20,104,17 26,111,12 33,10C,1082 43,10,7144740 0,D,21 0,A,-3380035 0,B,15128766 0,C,4 43,10D,22 36,20,99,-31,-12 0,21,0,0,0 19,104,20 33,111,11 28,10,7144760 0,D,20 0,A,-3380034 0,B,15128765 0,C,4 39,10C,980 41,10D,22 56,20,94,-37,-16 0,21,-1,-1,0 20,104,20 29,111,11 31,10C,929 43,10D,22 46,104,20 30,111,11 20,20,103,-30,-9 0,21,0,0,0 20,10C,886 39,10D,20 52,104,20 29,111,12 30,10C,824 34,20,92,-38,-12 0,21,0,0,0 18,10D,20 49,104,22 39,111,11 30,10C,828 45,10D,20 37,20,103,-29,-12 0,21,-1,0,0 20,104,22 20,10,7144840 0,D,17 0,A,-3380031 0,B,15128763 0,C,4 54,111,11 32,10C,824 46,10D,20 37,20,101,-29,-14 0,21,0,0,0 20,104,22 29,111,11 30,10C,820 46,10D,17 49,104,22 29,20,90,-35,-9 0,21,0,0,0 16,10,7144880 0,D,16 0,A,-3380030 0,B,15128762 0,C,4 65,111,11 32,10C,812 42,10D,17 45,104,22 22,20,101,-33,-18 0,21,-1,0,0 15,10,7144900 0,D,15 0,A,-3380029 0,B,15128761 0,C,4 67,111,11 31,10C,800 45,10D,17 46,104,21 21,20,94,-30,-13 0,21,0,0,0 20,111,11 41,10C,800 41,10D,15 56,104,22 21,10,7144940 0,D,13 0,A,-3380028 0,B,15128760 0,C,4 39,111,11 20,20,96,-37,-6 0,21,-1,-1,-1 19,10C,785 45,10D,15 43,104,22 24,10,7144960 0,D,13 0,A,-3380028 0,B,15128760 0,C,4 40,111,11 27,10C,792 34,20,108,-33,-15 0,21,-1,0,0 21,10D,15 45,104,22 30,111,11 30,10C,796 46,10D,15 38,20,97,-36,-13 0,21,0,0,0 19,104,22 26,111,11 34,10C,812 34,10,7145000 0,D,11 0,A,-3380027 0,B,15128759 0,C,4 40,10D,12 43,104,22 21,20,104,-34,-13 0,21,0,0,0 20,111,12 29,10C,804 36,10,7145020 0,D,10 0,A,-3380026 0,B,15128758 0,C,4 39,10D,12 57,104,24 21,20,96,-43,-8 0,21,-1,0,0 19,111,12 31,10C,792 35,10,7145040 0,D,8 0,A,-3380026 0,B,15128758 0,C,4 43,10D,12 44,104,26 30,111,12 20,20,92,-39,-13 0,21,0,0,0 18,10C,808 41,10D,12 47,104,26 29,111,12 30,10C,816 38,20,108,-27,-16 0,21,0,0,0 18,10D,8 44,104,27 30,111,12 42,10C,804 42,10D,8 37,20,102,-28,-14 0,21,0,0,0 19,104,27 20,10,7145100 0,D,6 0,A,-3380025 0,B,15128757 0,C,4 55,111,12 31,10C,789 42,10D,8 37,20,99,-27,-13 0,21,0,0,-1 20,104,27 20,10,7145120 0,D,5 0,A,-3380025 0,B,15128757 0,C,4 54,111,12 40,10C,757 54,10D,8 37,20,102,-28,-13 0,21,0,0,-1 20,104,28 28,111,12 34,10C,742 46,10D,5 55,104,28 22,20,101,-32,-13 0,21,-1,0,0 16,10,7145160 0,D,4 0,A,-3380024 0,B,15128757 0,C,4 66,111,11 27,10C,714 45,10D,5 45,104,28 22,20,97,-33,-11 0,21,0,0,0 20,111,11 28,10C,683 46,10D,5 48,104,27 30,111,11 21,10,7145200 0,D,2 0,A,-3380024 0,B,15128756 0,C,4 39,10C,671 32,20,100,-29,-14 0,21,-1,0,0 21,10D,5 43,104,27 27,111,11 24,10,7145220 0,D,1 0,A,-3380024 0,B,15128756 0,C,4 40,10C,660 44,10D,2 46,20,98,-23,-11 0,21,-1,0,0 19,104,27 30,111,11 22,10,7145240 0,D,1 0,A,-3380024 0,B,15128756 0,C,4 43,10C,660 46,10D,2 40,20,105,-16,-13 0,21,-1,0,0 19,104,27 30,111,11 22,10,7145260 0,D,1 0,A,-3380024 0,B,15128756 0,C,4 39,10C,660 41,10D,2 45,104,27 21,20,100,-17,-14 0,21,-1,0,0 18,111,11 25,10,7145280 0,D,1 0,A,-3380024 0,B,15128756 0,C,4 53,10C,660 40,10D,0 48,104,27 21,20,100,-20,-15 0,21,-1,0,0 19,111,11 24,10,7145300 0,D,1 0,A,-3380024 0,B,15128756 0,C,4 53,10C,648 50,10D,0 44,104,27 21,20,102,-17,-13 0,21,0,0,0 20,111,11 20,10,7145320 0,D,1 0,A,-3380024 0,B,15128756 0,C,4 55,10C,652 45,10D,0 58,104,27 20,20,99,-20,-12 0,21,0,0,0 22,111,11 28,10C,644 46,10D,0 45,104,27 28,111,11 33,10C,640 34,20,100,-20,-11 0,21,0,0,0 16,10,7145360 0,D,1 0,A,-3380024 0,B,15128755 0,C,4 66,10D,0 42,104,27 32,111,11 34,10C,648 34,20,99,-23,-14 0,21,0,0,0 17,10,7145380 0,D,1 0,A,-3380024 0,B,15128755 0,C,7 65,10D,0 42,104,27 27,10,7145400 0,D,1 0,A,-3380024 0,B,15128755 0,C,7 40,111,11 18,20,101,-25,-13 0,21,-1,0,0 21,10C,652 40,10D,0 45,104,27 29,111,11 22,10,7145420 0,D,1 0,A,-3380024 0,B,15128755 0,C,7 39,10C,652 36,20,101,-25,-12 0,21,0,0,0 20,10D,0 42,104,27 43,111,11 21,10,7145440 0,D,1 0,A,-3380023 0,B,15128755 0,C,7 39,10C,648 37,20,101,-18,-12 0,21,0,0,0 20,10D,0 46,104,27 39,111,12 21,10,7145460 0,D,0 0,A,-3380023 0,B,15128755 0,C,7 39,10C,656 37,20,99,-18,-10 0,21,-1,0,0 19,10D,0 43,104,29 33,111,15 22,10,7145480 0,D,0 0,A,-3380023 0,B,15128755 0,C,7 40,10C,667 44,10D,0 37,20,105,-17,-14 0,21,0,0,0 19,104,42 26,111,15 30,10C,730 46,10D,0 50,104,50 29,111,17 34,20,111,-3,-15 0,21,-1,0,-1 18,10C,1007 34,10,7145520 0,D,1 0,A,-3380023 0,B,15128755 0,C,7 43,10D,0 46,104,51 30,111,17 32,10C,1269 43,20,108,2,-9 0,21,0,0,0 20,10D,0 43,104,48 31,111,17 33,10C,1398 44,10D,0 45,20,109,9,-12 0,21,0,0,0 17,10,7145560 0,D,2 0,A,-3380023 0,B,15128755 0,C,7 65,104,45 31,111,17 31,10C,1417 44,10D,2 37,20,107,-9,-10 0,21,0,0,0 17,10,7145580 0,D,2 0,A,-3380023 0,B,15128754 0,C,7 65,104,43 27,111,17 32,10C,1363 36,10,7145600 0,D,4 0,A,-3380023 0,B,15128754 0,C,7 39,10D,2 35,20,102,-5,-16 0,21,1,0,0 19,104,43 27,111,17 32,10C,1355 48,10D,2 46,104,43 30,111,17 21,20,104,-9,-10 0,21,1,0,0 20,10C,1390 39,10D,5 48,10,7145640 0,D,7 0,A,-3380022 0,B,15128754 0,C,7 39,104,43 27,111,17 30,10C,1453 34,20,113,0,-20 0,21,1,0,-1 18,10D,5 44,104,41 34,111,17 30,10C,1476 47,10D,5 36,20,108,-8,-13 0,21,0,0,0 20,104,35 20,10,7145680 0,D,8 0,A,-3380022 0,B,15128753 0,C,7 54,111,14 37,10C,1382 46,10D,5 37,20,107,-13,-9 0,21,0,0,0 20,104,28 29,111,14 30,10C,1203 43,10D,7 45,104,28 31,111,14 22,20,100,-22,-15 0,21,0,0,0 17,10,7145720 0,D,9 0,A,-3380021 0,B,15128752 0,C,7 65,10C,1148 41,10D,7 43,104,29 30,111,16 31,20,103,-20,-16 0,21,0,-1,0 21,10C,1132 45,10D,7 44,104,41 32,111,19 34,10C,1281 34,20,103,-16,-14 0,21,0,0,0 22,10D,7 43,104,51 29,111,19 32,10C,1492 43,10D,9 37,20,104,-13,-7 0,21,0,0,0 21,104,51 28,111,19 30,10C,1640 44,10D,9 46,104,50 31,111,18 29,20,100,-9,-22 0,21,0,0,0 20,10C,1722 44,10D,9 47,104,48 23,10,7145820 0,D,10 0,A,-3380019 0,B,15128750 0,C,7 39,111,18 28,20,123,10,-1 0,21,0,0,0 19,10C,1722 45,10D,9 44,104,46 23,10,7145840 0,D,11 0,A,-3380019 0,B,15128749 0,C,7 43,111,18 29,20,104,-11,-4 0,21,1,0,0 19,10C,1699 40,10D,11 44,104,47 24,10,7145860 0,D,12 0,A,-3380019 0,B,15128749 0,C,7 40,111,18 27,10C,1687 35,20,104,-16,-14 0,21,1,0,0 20,10D,11 46,104,46 46,111,18 34,10C,1675 46,10D,11 38,20,103,-13,-16 0,21,0,-1,-1 19,104,46 30,111,18 23,10,7145900 0,D,14 0,A,-3380018 0,B,15128747 0,C,7 40,10C,1679 44,10D,11 46,20,94,-13,-16 0,21,0,0,0 19,104,47 29,111,18 23,10,7145920 0,D,15 0,A,-3380017 0,B,15128746 0,C,7 40,10C,1683 44,10D,13 45,20,107,-15,-14 0,21,-2,1,0 23,104,43 31,111,14 22,10,7145940 0,D,16 0,A,-3380017 0,B,15128746 0,C,7 39,10C,1636 58,10D,13 37,20,102,-19,-19 0,21,-3,0,0 20,104,28 28,111,14 22,10,7145960 0,D,16 0,A,-3380016 0,B,15128745 0,C,7 38,10C,1410 45,10D,13 49,104,26 21,20,129,-4,-37 0,21,-6,0,-1 20,111,14 20,10,7145980 0,D,16 0,A,-3380016 0,B,15128744 0,C,7 54,10C,1214 41,10D,15 48,104,29 22,20,117,-10,-20 0,21,-8,0,-3 20,111,13 20,10,7150000 0,D,16 0,A,-3380015 0,B,15128743 0,C,7 54,10C,1250 41,10D,15 49,104,24 22,20,91,-31,-30 0,21,-10,1,3 24,111,12 20,10,7150020 0,D,16 0,A,-3380015 0,B,15128743 0,C,7 51,10C,1191 41,10D,15 45,104,24 22,20,108,-21,-21 0,21,-11,2,0 20,111,14 29,10C,1113 46,10D,15 55,104,29 38,111,15 21,20,106,-16,-16 0,21,-10,1,0 21,10C,1207 45,10D,16 50,104,30 30,111,15 31,10C,1300 34,20,101,-18,-28 0,21,-10,3,0 21,10D,16 44,104,30 30,111,15 29,10C,1308 45,10D,16 37,20,100,-18,-14 0,21,-8,2,1 22,104,30 30,111,15 30,10C,1308 47,10D,16 47,104,31 27,20,102,-14,-14 0,21,-8,0,0 20,111,15 32,10C,1328 43,10D,16 49,104,28 32,111,13 24,10,7150140 0,D,16 0,A,-3380010 0,B,15128740 0,C,7 40,10C,1312 31,20,115,-12,-14 0,21,-7,1,0 21,10D,16 52,104,22 42,111,12 21,10,7150160 0,D,16 0,A,-3380009 0,B,15128740 0,C,7 40,10C,1253 32,20,101,-24,-20 0,21,-7,0,0 21,10D,16 43,104,20 31,111,12 31,10C,1203 43,10D,16 38,20,101,-21,-13 0,21,-5,1,0 21,104,17 26,111,11 32,10C,1160 43,10D,16 40,10,7150200 0,D,16 0,A,-3380008 0,B,15128739 0,C,7 39,104,16 18,20,106,-18,-8 0,21,-2,1,0 21,111,15 29,10C,1066 43,10D,16 51,104,26 29,111,15 31,20,104,-20,-9 0,21,-2,-1,0 19,10C,1066 39,10D,16 60,104,31 29,111,16 33,10C,1277 35,20,104,-23,0 0,21,-1,0,-1 19,10D,16 54,104,34 30,111,16 30,10C,1367 47,10D,16 37,20,100,-20,-1 0,21,0,0,-1 20,104,36 27,111,16 22,10,7150280 0,D,16 0,A,-3380005 0,B,15128738 0,C,7 40,10C,1414 32,10,715200 0,D,16 12,10D,16 43,104,36 21,20,99,-19,-2 0,21,0,-1,0 19,111,16 21,10,7150300 0,D,16 11,10C,1464 34,10,7150300 0,D,16 0,A,-3380004 0,B,15128738 0,C,7 48,10D,16 46,104,35 22,20,107,-16,-4 0,21,1,0,0 18,111,16 30,10,7150320 0,D,16 0,A,-3380003 0,B,15128737 0,C,7 47,10C,1484 45,10D,16 48,104,35 22,20,109,-14,0 0,21,2,-2,0 20,111,16 28,10C,1484 43,10D,17 46,104,35 29,111,16 31,10C,1492 44,20,114,-30,4 0,21,3,-1,1 18,10,7150360 0,D,17 0,A,-3380001 0,B,15128737 0,C,7 64,10D,17 43,104,35 32,111,17 24,10,7150380 0,D,17 0,A,-3380000 0,B,15128736 0,C,7 40,10C,1496 31,20,89,-35,0 0,21,3,0,-2 21,10D,17 43,104,37 32,111,17 33,10C,1519 44,10D,17 48,20,105,-18,-1 0,21,3,-1,-1 19,104,40 27,111,17 31,10C,1558 44,10D,18 46,104,38 30,111,17 26,20,90,-41,-18 0,21,3,-2,5 19,10C,1566 39,10D,18 46,104,38 30,111,17 30,10C,1550 40,20,111,-10,4 0,21,1,0,2 18,10D,18 42,104,37 40,111,17 30,10C,1511 46,10D,18 38,20,108,-13,-2 0,21,0,-1,0 19,104,40 26,111,17 30,10C,1453 47,10D,19 51,104,40 29,20,95,-8,-21 0,21,0,0,0 20,111,17 29,10C,1390 36,10,7150500 0,D,20 0,A,-3379995 0,B,15128732 0,C,7 39,10D,19 44,104,43 30,111,17 20,20,131,7,3 0,21,0,2,4 19,10C,1324 42,10D,19 49,104,45 30,111,18 30,10C,1289 34,20,95,-21,-4 0,21,-1,0,-2 19,10D,19 36,10,7150540 0,D,21 0,A,-3379994 0,B,15128731 0,C,7 43,104,50 29,111,18 30,10C,1300 45,10D,21 37,20,119,-4,-16 0,21,0,-1,1 20,104,50 37,111,17 30,10C,1265 46,10D,21 48,104,51 22,20,120,5,9 0,21,0,1,0 16,10,7150580 0,D,22 0,A,-3379992 0,B,15128729 0,C,7 65,111,17 27,10C,1218 55,10D,21 37,20,93,-21,6 0,21,0,1,0 21,104,51 27,111,17 30,10C,1222 46,10D,21 48,104,51 31,111,17 21,20,81,-20,-19 0,21,-2,0,-2 21,10C,1218 45,10D,22 48,104,46 29,111,14 34,10C,1199 34,20,103,-32,-11 0,21,-1,1,2 21,10D,22 47,104,36 30,111,13 31,10C,1187 49,10D,22 36,20,100,-27,-6 0,21,-1,0,0 20,104,31 37,111,13 33,10C,1203 46,10D,22 37,10,7150680 0,D,24 0,A,-3379987 0,B,15128725 0,C,7 39,104,25 28,20,103,-24,-7 0,21,0,0,1 21,111,12 29,10C,1191 42,10D,23 39,10,7150700 0,D,24 0,A,-3379986 0,B,15128725 0,C,7 39,104,22 28,111,15 21,20,106,-23,-8 0,21,0,0,-1 20,10C,1132 46,10D,23 46,104,28 34,111,15 33,10C,1250 34,20,93,-27,-1 0,21,0,0,0 20,10D,23 47,104,30 21,10,7150740 0,D,24 0,A,-3379984 0,B,15128723 0,C,7 40,111,15 28,10C,1320 44,20,101,-28,-17 0,21,0,0,0 23,10D,23 44,10,7150760 0,D,24 0,A,-3379983 0,B,15128722 0,C,7 39,104,30 28,111,15 31,10C,1312 43,20,93,-16,-12 0,21,-1,0,1 19,10D,23 44,104,30 22,10,7150780 0,D,24 0,A,-3379982 0,B,15128721 0,C,7 39,111,15 27,10C,1324 47,10D,23 37,20,106,-18,-5 0,21,0,-1,0 19,104,30 21,10,7150800 0,D,24 0,A,-3379981 0,B,15128721 0,C,7 54,111,15 29,10C,1339 42,10D,23 37,20,113,-7,-16 0,21,-1,0,-1 20,104,30 20,10,7150820 0,D,24 0,A,-3379980 0,B,15128720 0,C,7 54,111,15 32,10C,1355 42,10D,23 37,20,101,-19,-10 0,21,-1,0,0 21,104,29 32,10,7150840 0,D,24 0,A,-3379979 0,B,15128719 0,C,7 43,111,15 28,10C,1363 46,10D,23 37,20,98,-24,-17 0,21,-1,0,0 20,104,30 29,111,15 34,10C,1367 46,10D,23 57,104,29 21,20,104,-21,-12 0,21,-1,0,0 21,111,15 29,10C,1375 47,10D,23 49,104,29 28,111,15 29,20,94,-24,-9 0,21,-1,0,0 17,10,7150900 0,D,23 0,A,-3379976 0,B,15128717 0,C,7 65,10C,1378 41,10D,24 48,104,29 30,111,15 21,20,100,-20,-14 0,21,-1,0,0 17,10,7150920 0,D,23 0,A,-3379975 0,B,15128716 0,C,7 65,10C,1382 41,10D,24 48,104,28 23,10,7150940 0,D,22 0,A,-3379974 0,B,15128715 0,C,7 43,111,15 19,20,100,-15,-4 0,21,-2,0,0 20,10C,1390 44,10D,24 49,104,27 23,10,7150960 0,D,21 0,A,-3379973 0,B,15128715 0,C,7 39,111,13 30,20,112,-10,-4 0,21,-1,1,0 21,10C,1363 40,10D,24 58,104,22 22,10,7150980 0,D,22 0,A,-3379972 0,B,15128714 0,C,7 39,111,12 24,20,88,-19,-4 0,21,-1,0,-2 21,10C,1304 43,10D,24 45,104,20 22,10,7151000 0,D,23 0,A,-3379970 0,B,15128713 0,C,7 39,111,12 28,10C,1273 34,20,118,-15,-3 0,21,0,1,2 20,10D,24 45,104,17 31,111,12 30,10C,1214 43,10D,24 37,20,86,-30,-10 0,21,0,0,-2 24,104,18 30,111,13 30,10C,1164 44,10D,24 45,104,21 27,20,93,-28,-5 0,21,0,0,-3 19,111,14 33,10C,1210 43,10D,24 50,104,23 34,111,14 21,20,92,-30,-15 0,21,0,-1,2 19,10C,1265 48,10D,24 76,10,7151080 0,D,24 0,A,-3379966 0,B,15128710 0,C,7 40,104,27 18,20,92,-24,-3 0,21,0,0,0 21,111,14 29,10C,1328 44,10D,24 46,104,28 33,111,15 30,10C,1324 35,20,104,-16,-8 0,21,0,0,0 19,10D,24 49,104,29 32,111,15 40,10C,1339 46,10D,24 37,20,99,-23,-11 0,21,0,0,1 21,104,30 31,111,16 30,10C,1359 43,10D,24 45,104,32 30,111,16 21,20,93,-24,-5 0,21,0,0,0 21,10C,1390 44,10D,24 46,104,32 30,111,16 40,10C,1417 34,20,104,-20,-12 0,21,0,-1,0 21,10D,24 44,104,32 38,111,16 33,10C,1425 46,10D,24 37,20,98,-18,-12 0,21,-1,-1,0 16,10,7151200 0,D,23 0,A,-3379960 0,B,15128706 0,C,7 65,104,32 28,111,16 32,10C,1433 43,10D,24 37,20,104,-17,-13 0,21,-1,0,-1 20,104,33 28,111,16 33,10C,1445 45,10D,24 50,104,33 26,20,97,-21,-9 0,21,-1,0,-2 20,111,16 28,10C,1449 46,10D,24 42,10,7151260 0,D,23 0,A,-3379957 0,B,15128703 0,C,7 40,104,33 28,20,109,-14,-9 0,21,-1,0,2 20,111,16 27,10C,1449 46,10D,24 56,104,33 30,111,16 21,20,98,-22,-11 0,21,0,0,0 20,10C,1445 40,10D,24 48,104,32 31,111,16 21,10,7151300 0,D,24 0,A,-3379955 0,B,15128701 0,C,7 40,10C,1410 31,20,99,-23,-8 0,21,-1,0,0 21,10D,24 46,104,31 46,111,13 21,10,7151320 0,D,24 0,A,-3379954 0,B,15128700 0,C,7 39,10C,1210 33,20,96,-31,0 0,21,0,-1,1 20,10D,24 47,104,27 32,111,13 22,10,7151340 0,D,23 0,A,-3379953 0,B,15128700 0,C,7 40,10C,1257 40,20,91,-30,-24 0,21,-1,-1,0 20,10D,24 43,104,23 38,111,12 22,10,7151360 0,D,21 0,A,-3379953 0,B,15128699 0,C,7 39,10C,1222 41,10D,24 36,20,111,-15,-8 0,21,-1,1,1 20,104,20 40,111,12 22,10,7151380 0,D,22 0,A,-3379952 0,B,15128698 0,C,7 39,10C,1226 44,10D,24 38,20,110,-22,-6 0,21,-1,0,-2 20,104,15 25,111,11 31,10C,1191 44,10D,24 45,104,14 30,111,11 21,20,102,-25,-4 0,21,-1,0,0 19,10C,1175 41,10D,24 51,104,14 30,111,11 29,10C,1066 34,20,96,-35,-12 0,21,-1,0,0 20,10D,24 48,104,14 33,111,12 30,10C,898 46,10D,24 45,20,101,-7,-13 0,21,0,0,-1 21,104,22 27,111,14 35,10C,832 46,10D,24 48,104,29 40,20,114,-14,-9 0,21,-1,-1,-2 21,111,15 32,10C,1066 43,10D,24 45,104,33 31,111,16 31,20,93,-29,-15 0,21,-1,0,0 15,10,7151500 0,D,23 0,A,-3379945 0,B,15128693 0,C,7 66,10C,1242 41,10D,24 45,104,40 30,111,18 21,20,95,-26,-15 0,21,-1,0,0 16,10,7151520 0,D,23 0,A,-3379945 0,B,15128692 0,C,7 66,10C,1398 44,10D,24 48,104,45 30,20,96,-18,-8 0,21,-1,0,0 16,10,7151540 0,D,23 0,A,-3379944 0,B,15128691 0,C,7 66,111,18 28,10C,1632 44,10D,24 47,104,43 21,20,104,-12,-13 0,21,-1,0,0 20,111,18 36,10C,1656 42,10D,24 44,104,42 32,10,7151580 0,D,23 0,A,-3379942 0,B,15128689 0,C,7 39,111,18 20,20,95,-23,-12 0,21,-1,0,0 19,10C,1648 41,10D,24 43,104,42 31,111,18 31,10C,1648 38,20,105,-14,-13 0,21,-1,-1,0 21,10D,24 46,104,42 29,111,17 30,10C,1644 48,10D,24 36,20,97,-14,-12 0,21,-1,0,0 21,104,38 31,111,17 31,10C,1609 43,10D,24 40,10,7151640 0,D,23 0,A,-3379939 0,B,15128686 0,C,7 39,104,38 20,20,98,-17,-14 0,21,-1,0,0 19,111,17 26,10C,1570 44,10,7151660 0,D,25 0,A,-3379938 0,B,15128685 0,C,7 39,10D,24 48,104,37 26,20,84,-35,-7 0,21,-1,1,-2 20,111,17 30,10C,1558 43,10D,24 71,104,37 30,111,17 21,20,83,-13,-14 0,21,0,1,0 20,10C,1539 44,10D,25 38,10,7151700 0,D,26 0,A,-3379936 0,B,15128683 0,C,7 39,104,36 27,111,16 30,10C,1460 34,20,86,-41,-8 0,21,0,0,0 18,10D,25 45,104,38 33,111,17 30,10C,1359 47,10D,25 37,20,97,-21,-25 0,21,0,0,-2 19,104,43 21,10,7151740 0,D,27 0,A,-3379933 0,B,15128681 0,C,7 54,111,17 27,10C,1339 47,10D,25 37,20,107,-21,-6 0,21,-1,0,-1 20,104,43 19,10,7151760 0,D,27 0,A,-3379932 0,B,15128680 0,C,7 55,111,17 32,10C,1281 46,10D,26 36,20,88,-25,-11 0,21,-1,0,0 21,104,44 32,111,17 39,10C,1238 47,10D,26 48,104,46 21,20,124,-17,-10 0,21,-1,0,1 21,111,17 27,10C,1214 48,10D,26 48,104,47 28,111,17 29,20,106,-21,-19 0,21,-1,0,0 16,10,7151820 0,D,27 0,A,-3379929 0,B,15128678 0,C,7 66,10C,1222 42,10D,27 48,104,49 30,111,17 21,20,105,-9,-16 0,21,-1,0,1 16,10,7151840 0,D,28 0,A,-3379927 0,B,15128677 0,C,7 66,10C,1222 52,10D,27 56,104,49 21,20,108,-22,-11 0,21,-1,1,1 21,111,17 27,10C,1214 46,10D,27 50,104,49 75,20,86,-13,-1 0,21,-1,0,-1 21,111,17 40,10C,1226 43,10D,27 54,104,48 22,10,7151900 0,D,28 0,A,-3379924 0,B,15128674 0,C,7 38,111,16 20,20,119,-10,-17 0,21,0,0,3 19,10C,1218 40,10D,28 47,104,46 35,111,16 24,10,7151920 0,D,28 0,A,-3379922 0,B,15128673 0,C,7 39,10C,1210 31,20,80,-23,-17 0,21,-2,0,-2 21,10D,28 45,104,44 24,10,7151940 0,D,29 0,A,-3379921 0,B,15128672 0,C,7 39,111,15 32,10C,1250 39,20,168,-2,-1 0,21,-1,0,4 20,10D,28 45,104,37 30,111,15 31,10C,1261 42,10D,29 38,20,101,-17,-3 0,21,-1,0,-2 19,104,34 34,111,14 31,10C,1312 43,10D,29 46,104,31 31,20,111,-17,-10 0,21,-1,0,-1 19,111,14 33,10C,1296 43,10D,29 50,104,29 30,111,14 25,20,124,-13,20 0,21,-1,-1,-2 20,10C,1285 39,10D,29 46,104,29 30,111,14 29,10C,1265 40,20,105,-21,0 0,21,-1,0,0 19,10D,29 47,104,29 21,10,7152040 0,D,30 0,A,-3379915 0,B,15128667 0,C,7 40,111,14 27,10C,1230 47,20,110,-7,-17 0,21,-1,0,-1 19,10D,30 44,104,27 22,10,7152060 0,D,30 0,A,-3379913 0,B,15128666 0,C,7 39,111,12 31,10C,1195 43,10D,30 36,20,104,-19,-9 0,21,-1,-1,0 20,104,21 24,10,7152080 0,D,30 0,A,-3379912 0,B,15128665 0,C,7 52,111,12 30,10C,1195 43,10D,30 46,20,112,-18,-10 0,21,-1,0,1 21,104,16 29,111,11 29,10C,1222 46,10D,29 48,104,14 29,111,11 22,20,97,-23,-21 0,21,-1,0,0 20,10C,1246 44,10D,29 46,104,13 30,111,11 31,10C,1238 34,20,105,-18,-9 0,21,-1,-1,2 21,10D,29 44,104,12 30,111,11 29,10C,1171 44,10D,29 38,20,97,-25,-16 0,21,-1,1,0 21,104,13 27,111,11 30,10C,1136 46,10D,29 51,104,13 24,10,7152180 0,D,29 0,A,-3379906 0,B,15128660 0,C,7 39,111,11 18,20,97,-35,2 0,21,-1,0,-3 25,10C,1136 41,10D,28 57,104,13 23,10,7152200 0,D,29 0,A,-3379905 0,B,15128659 0,C,7 39,111,11 19,20,106,-26,-1 0,21,-1,0,0 20,10C,1214 53,10D,28 45,104,13 22,10,7152220 0,D,28 0,A,-3379904 0,B,15128658 0,C,7 39,111,11 28,20,106,-26,-12 0,21,-1,0,1 19,10C,1207 40,10D,28 55,104,13 21,10,7152240 0,D,27 0,A,-3379902 0,B,15128657 0,C,7 40,111,11 27,20,100,-35,3 0,21,0,-1,0 20,10C,1207 43,10D,27 45,104,12 23,10,7152260 0,D,27 0,A,-3379901 0,B,15128656 0,C,7 39,111,11 27,10C,1207 35,20,100,-27,-16 0,21,-1,1,-1 24,10D,27 45,104,12 23,10,7152280 0,D,27 0,A,-3379900 0,B,15128655 0,C,7 40,111,11 28,10C,1191 43,20,86,-31,-11 0,21,-1,0,1 19,10D,27 52,104,13 22,10,7152300 0,D,26 0,A,-3379899 0,B,15128654 0,C,7 39,111,11 32,10C,1183 39,20,128,-6,28 0,21,-1,4,1 19,10D,27 46,104,13 23,10,7152320 0,D,25 0,A,-3379898 0,B,15128653 0,C,7 39,111,11 27,10C,1187 46,10D,25 37,20,91,-46,-32 0,21,-1,-1,0 19,104,13 28,111,11 31,10C,1195 43,10D,25 45,104,13 32,111,11 21,20,97,-35,-8 0,21,-1,0,0 21,10C,1199 41,10D,25 46,104,13 30,111,11 36,10C,1183 34,20,95,-35,-20 0,21,-1,0,0 21,10D,25 45,104,13 29,111,12 30,10C,1082 45,10D,23 46,20,103,-26,15 0,21,-1,2,-1 21,104,16 27,111,12 46,10C,1035 42,10D,23 49,104,17 21,20,104,-30,-4 0,21,-1,0,-1 16,10,7152420 0,D,22 0,A,-3379893 0,B,15128650 0,C,7 66,111,12 31,10C,972 45,10D,23 43,20,125,-15,-6 0,21,0,0,0 20,104,18 31,111,11 30,10C,933 46,10D,23 47,104,18 23,10,7152460 0,D,21 0,A,-3379891 0,B,15128649 0,C,7 40,111,11 20,20,99,-30,-16 0,21,0,0,2 19,10C,910 44,10D,22 44,104,18 31,111,11 30,10C,886 39,20,113,-25,-25 0,21,0,0,3 19,10D,22 47,104,20 32,111,11 39,10C,871 44,10D,22 37,20,111,-20,4 0,21,0,1,0 19,104,20 28,111,11 32,10C,855 42,10D,22 47,104,20 29,111,11 22,20,84,-25,-1 0,21,0,0,0 19,10C,855 39,10D,21 46,104,20 31,111,11 34,10C,839 34,20,105,-12,-26 0,21,-1,0,-1 19,10D,21 46,104,20 31,111,12 40,10C,820 46,10D,21 38,20,89,-30,-17 0,21,-1,0,0 19,104,21 34,111,11 24,10,7152580 0,D,21 0,A,-3379885 0,B,15128645 0,C,7 40,10C,812 44,10D,21 42,20,107,-26,-14 0,21,-1,0,0 18,104,22 39,111,11 32,10,7152600 0,D,20 0,A,-3379884 0,B,15128645 0,C,7 43,10C,804 41,10D,20 36,20,106,-23,0 0,21,0,0,-1 20,104,22 27,111,11 22,10,7152620 0,D,19 0,A,-3379884 0,B,15128644 0,C,7 39,10C,800 40,10D,20 49,104,22 21,20,101,-26,-12 0,21,0,0,0 18,111,11 33,10C,808 43,10D,20 38,10,7152640 0,D,19 0,A,-3379883 0,B,15128643 0,C,11 40,104,22 26,111,11 21,20,98,-32,-9 0,21,-1,0,1 20,10C,800 45,10D,20 49,104,22 30,111,11 32,10C,808 34,20,96,-33,-12 0,21,0,0,0 20,10D,18 45,104,22 30,111,11 30,10C,816 45,10D,18 36,20,103,-29,-8 0,21,-1,0,0 25,104,21 37,111,11 34,10C,808 42,10D,18 47,104,21 21,20,94,-41,-11 0,21,-1,0,0 21,111,11 19,10,7152720 0,D,15 0,A,-3379881 0,B,15128641 0,C,11 56,10C,800 39,10D,18 48,104,22 21,20,104,-30,-8 0,21,-1,0,-1 17,10,7152740 0,D,14 0,A,-3379880 0,B,15128640 0,C,11 66,111,11 32,10C,785 45,10D,15 42,20,98,-35,-7 0,21,0,0,0 20,104,22 40,111,11 30,10C,773 45,10D,15 44,104,22 22,20,90,-35,-8 0,21,-1,0,0 17,10,7152780 0,D,12 0,A,-3379879 0,B,15128639 0,C,11 65,111,11 28,10C,777 45,10D,15 46,20,100,-33,-8 0,21,-1,0,0 33,104,22 36,111,11 30,10C,753 45,10D,13 46,10,7152820 0,D,12 0,A,-3379878 0,B,15128638 0,C,11 41,104,22 19,20,101,-32,-7 0,21,-1,0,0 21,111,11 26,10C,753 46,10D,13 43,10,7152840 0,D,11 0,A,-3379877 0,B,15128638 0,C,11 40,104,23 25,20,97,-34,-8 0,21,-1,0,0 19,111,11 28,10C,761 46,10D,13 46,10,7152860 0,D,10 0,A,-3379877 0,B,15128637 0,C,11 41,104,23 24,20,95,-38,-16 0,21,-1,0,0 20,111,12 28,10C,742 45,10D,13 43,10,7152880 0,D,10 0,A,-3379876 0,B,15128637 0,C,11 40,104,26 24,20,100,-29,-11 0,21,-1,0,0 24,111,12 29,10C,753 45,10D,10 50,104,28 30,111,12 31,20,100,-31,-7 0,21,-1,0,0 20,10C,789 44,10D,10 47,104,27 23,10,7152920 0,D,9 0,A,-3379875 0,B,15128636 0,C,11 41,111,12 28,10C,820 34,20,103,-23,-12 0,21,-1,0,0 19,10D,10 45,104,27 49,111,12 34,10C,843 42,10D,10 38,20,97,-24,-8 0,21,-1,0,0 20,104,27 29,111,12 23,10,7152960 0,D,8 0,A,-3379875 0,B,15128635 0,C,11 41,10C,851 40,10D,7 45,104,26 21,20,99,-26,-13 0,21,-1,0,0 19,111,12 24,10,7152980 0,D,7 0,A,-3379874 0,B,15128635 0,C,11 53,10C,847 44,10D,7 58,104,25 21,20,97,-36,-10 0,21,-1,0,0 21,111,12 19,10,7153000 0,D,7 0,A,-3379874 0,B,15128635 0,C,11 56,10C,839 49,10D,7 48,104,24 21,20,94,-38,-9 0,21,-1,0,0 22,111,12 27,10C,800 47,10D,6 49,104,25 31,111,11 27,20,102,-27,-11 0,21,-1,0,0 15,10,7153040 0,D,6 0,A,-3379873 0,B,15128634 0,C,11 68,10C,757 44,10D,6 44,104,24 30,111,11 21,20,95,-33,-12 0,21,-1,0,0 17,10,7153060 0,D,5 0,A,-3379873 0,B,15128634 0,C,11 67,10C,679 39,10D,6 47,104,25 31,111,11 22,20,96,-36,-18 0,21,-1,0,0 20,10C,636 41,10D,6 45,104,26 36,111,11 30,10C,621 33,20,100,-32,-11 0,21,-1,0,0 22,10D,4 43,104,27 42,111,11 32,10C,601 43,10D,4 36,20,96,-32,-11 0,21,-1,0,0 20,104,27 28,111,11 29,10C,601 44,10D,4 63,104,28 21,20,101,-28,-11 0,21,-1,0,0 21,111,11 26,10C,605 46,10D,4 42,10,7153160 0,D,2 0,A,-3379872 0,B,15128633 0,C,11 41,104,28 24,20,101,-29,-10 0,21,-1,0,0 20,111,11 28,10C,621 45,10D,1 46,104,28 35,111,11 26,20,99,-30,-9 0,21,-1,0,0 20,10C,636 43,10D,1 47,104,28 31,111,11 31,10C,652 33,20,102,-18,-12 0,21,-1,0,0 21,10D,1 46,104,27 45,111,11 24,10,7153220 0,D,0 0,A,-3379872 0,B,15128633 0,C,11 40,10C,660 31,20,100,-23,-9 0,21,-1,0,0 20,10D,1 43,104,27 31,111,11 31,10C,640 43,10D,0 37,20,101,-20,-10 0,21,-1,0,0 21,104,28 27,111,11 31,10C,640 47,10D,0 46,104,28 31,111,11 21,20,103,-21,-10 0,21,-1,0,0 20,10C,648 42,10D,0 50,104,27 38,111,11 30,10C,648 33,20,103,-21,-13 0,21,-1,0,0 21,10D,0 51,104,27 23,10,7153300 0,D,0 0,A,-3379872 0,B,15128633 0,C,11 40,111,11 28,10C,640 38,20,102,-22,-11 0,21,-1,0,0 19,10D,0 53,104,27 21,10,7153320 0,D,0 0,A,-3379872 0,B,15128633 0,C,11 45,111,11 32,10C,640 34,20,102,-21,-11 0,21,-1,0,0 19,10D,0 46,104,27 23,10,7153340 0,D,0 0,A,-3379872 0,B,15128633 0,C,11 41,111,11 27,10C,632 47,10D,0 35,20,101,-21,-10 0,21,-1,0,0 20,104,27 20,10,7153360 0,D,0 0,A,-3379872 0,B,15128633 0,C,11 56,111,11 27,10C,632 55,10D,0 35,20,101,-21,-11 0,21,-1,0,0 22,104,27 28,111,11 29,10C,640 46,10D,0 49,104,26 28,20,100,-21,-9 0,21,-1,0,0 22,111,11 31,10C,632 42,10D,0 46,104,26 32,111,11 31,20,100,-21,-11 0,21,-1,0,0 20,10C,628 50,10D,0 49,104,26 29,111,11 32,10C,632 34,20,102,-21,-12 0,21,-1,0,0 20,10D,0 43,104,26 30,111,11 30,10C,632 45,10D,0 37,20,100,-21,-10 0,21,-1,0,0 20,104,26 28,111,11 34,10C,625 42,10D,0 43,104,26 23,10,7153480 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,111,11 20,20,100,-22,-12 0,21,-1,0,0 20,10C,621 52,10D,0 43,104,26 28,10,7153500 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,111,11 18,20,101,-20,-13 0,21,-1,0,0 21,10C,613 40,10D,0 45,104,26 32,10,7153520 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,111,11 24,20,102,-21,-11 0,21,-1,0,0 24,10C,609 45,10D,0 46,104,26 30,111,11 31,10C,613 34,20,102,-20,-9 0,21,-1,0,0 20,10D,0 47,104,26 28,111,11 30,10,7153560 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,10C,613 37,20,101,-21,-11 0,21,-1,0,0 20,10D,0 42,104,26 32,111,11 31,10C,609 33,10,7153580 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,10D,0 35,20,101,-20,-10 0,21,0,0,0 20,104,26 29,111,11 29,10C,609 36,10,7153600 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 40,10D,0 43,104,26 21,20,101,-21,-9 0,21,-1,0,0 20,111,11 33,10C,613 57,10D,0 57,104,25 34,111,11 22,20,101,-21,-11 0,21,-1,0,0 18,10C,609 41,10D,0 50,104,26 34,111,11 30,10C,613 43,20,101,-21,-9 0,21,-1,0,0 19,10D,0 36,10,7153660 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,104,25 32,111,11 32,10C,617 41,20,100,-21,-12 0,21,-1,0,0 20,10D,0 36,10,7153680 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 42,104,25 27,111,11 30,10C,613 44,10D,0 37,20,101,-22,-8 0,21,-1,0,0 21,104,25 27,111,11 31,10C,605 46,10D,0 43,104,25 26,10,7153720 0,D,0 0,A,-3379872 0,B,15128632 0,C,11 41,111,11 29,20,101,-20,-11 0,21,-1,0,0 25,10C,601 40,10D,0 43,104,25 30,111,11 43,10C,605 34,20,102,-20,-10 0,21,-1,0,0 20,10D,0 43,104,25 31,111,11 31,10C,609 43,10D,0 37,20,101,-20,-11 0,21,-1,0,0 20,104,25 27,111,11 32,10C,601 46,10D,0 39,10,7153780 0,D,0 0,A,-3379872 0,B,15128633 0,C,14 41,104,25 19,20,101,-21,-10 0,21,-1,0,0 20,111,11 29,10C,601 39,10,7153800 0,D,0 0,A,-3379871 0,B,15128633 0,C,14 41,10D,0 43,104,25 30,20,103,-20,-12 0,21,-1,0,0 20,111,11 29,10C,601 43,10D,0 47,104,25 39,111,11 22,20,101,-21,-11 0,21,-1,0,0 23,10C,597 45,10D,0 50,104,25 34,111,11 46,10C,601 34,20,101,-20,-9 0,21,-1,0,0 19,10D,0 36,10,7153860 0,D,0 0,A,-3379871 0,B,15128633 0,C,14 41,104,25 28,111,11 31,10C,605 45,10D,0 36,20,102,-21,-9 0,21,-1,0,0 21,104,25 28,111,11 29,10C,605 46,10D,0 50,104,25 27,20,100,-21,-9 0,21,-1,0,0 21,111,11 33,10C,601 42,10D,0 45,104,25 32,111,11 28,10C,605 34,20,101,-21,-10 0,21,0,0,0 21,10D,0 47,104,25 39,111,11 29,10C,605 42,10D,0 37,20,100,-21,-11 0,21,-1,0,0 15,10,7153940 0,D,0 0,A,-3379871 0,B,15128633 0,C,14 68,104,25 27,111,11 31,10C,605 44,10D,0 45,20,102,-21,-10 0,21,-1,0,0 18,10,7153960 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 65,104,25 27,111,11 27,10,7153980 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 41,10C,601 32,20,102,-20,-12 0,21,-1,0,0 20,10D,0 47,104,25 27,111,11 33,10C,597 35,10,7154000 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 41,10D,0 35,20,103,-20,-12 0,21,-1,0,0 19,104,25 30,111,11 40,10,7154020 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 41,10C,593 45,10D,0 46,20,101,-21,-8 0,21,-1,0,0 19,104,25 26,111,11 21,10,7154040 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 43,10C,601 44,10D,0 50,104,25 20,20,101,-21,-10 0,21,-1,0,0 19,111,11 28,10,7154060 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 50,10C,609 41,10D,0 45,104,25 21,20,102,-21,-10 0,21,-1,0,0 19,111,11 21,10,7154080 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 56,10C,597 44,10D,0 48,104,25 22,20,101,-21,-11 0,21,-1,0,0 18,111,11 22,10,7154100 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 55,10C,589 45,10D,0 48,104,25 22,20,102,-20,-12 0,21,-1,0,0 20,111,11 20,10,7154120 0,D,0 0,A,-3379871 0,B,15128633 0,C,15 55,10C,585 42,10D,0 56,104,25 22,20,101,-21,-15 0,21,-1,0,0 21,111,12 39,10C,585 43,10D,0 44,104,28 32,111,14 21,20,101,-19,-7 0,21,-1,0,0 21,10C,593 40,10D,0 46,104,36 30,111,13 31,10C,625 34,20,99,-20,-8 0,21,-1,0,0 21,10D,0 44,104,42 30,111,14 30,10C,777 34,10,4300 0,D,0 0,A,70000 0,B,366666 0,C,39 35,10D,0 35,20,106,-11,-10 0,21,-1,0,0 17,10,7154200 0,D,0 0,A,-3379871 0,B,15128633 0,C,39 66,104,41 27,111,14 32,10C,968 36,10,7154220 0,D,0 0,A,-3379871 0,B,15128633 0,C,39 45,10D,0 35,20,101,-14,-11 0,21,-1,0,0 20,104,40 68,111,15 39,10C,1062 48,10D,0 37,20,104,-10,-5 0,21,-1,0,0 19,104,40 32,111,16 30,10C,1085 45,10D,0 46,104,42 29,111,16 22,20,106,-7,-7 0,21,0,0,0 19,10C,1113 42,10D,0 46,104,43 24,10,7154280 0,D,0 0,A,-3379871 0,B,15128633 0,C,16 41,111,16 31,10C,1175 34,20,104,-11,-5 0,21,-1,0,0 20,10D,0 44,104,43 31,111,16 29,10C,1210 46,10D,1 37,20,106,-12,-12 0,21,-1,0,0 20,104,43 25,10,7154320 0,D,3 0,A,-3379870 0,B,15128633 0,C,16 53,111,17 31,10C,1234 43,10D,1 49,20,105,-13,-9 0,21,-1,0,0 21,104,46 37,111,17 34,10C,1269 46,10D,1 48,104,47 21,20,100,-11,-11 0,21,-1,0,0 21,111,17 28,10C,1320 46,10D,4 50,104,47 28,111,18 29,20,105,-9,-9 0,21,-1,0,0 17,10,7154380 0,D,6 0,A,-3379870 0,B,15128632 0,C,16 66,10C,1378 45,10D,4 48,104,46 31,20,104,-14,-13 0,21,-1,0,0 20,111,18 29,10C,1480 46,10D,4 49,104,44 29,111,18 30,20,102,-7,-10 0,21,-1,0,0 16,10,7154420 0,D,7 0,A,-3379869 0,B,15128632 0,C,16 67,10C,1503 44,10D,4 48,104,50 26,20,102,-7,-12 0,21,0,0,0 17,10,7154440 0,D,8 0,A,-3379869 0,B,15128631 0,C,16 67,111,19 42,10C,1656 45,10D,7 37,20,100,-11,-8 0,21,-1,0,-1 21,104,52 31,111,19 30,10C,1699 46,10D,7 47,104,51 27,20,105,-8,-11 0,21,-1,0,0 21,111,19 28,10C,1691 46,10D,7 48,104,51 32,111,19 28,20,86,-16,-9 0,21,0,0,0 20,10C,1699 40,10D,7 46,104,51 29,111,19 32,10C,1695 34,20,110,-5,-20 0,21,-1,0,-2 21,10D,10 44,104,51 41,111,19 30,10C,1699 45,10D,10 38,20,104,-4,-4 0,21,0,0,0 15,10,7154540 0,D,13 0,A,-3379866 0,B,15128629 0,C,16 67,104,50 38,111,19 31,10C,1710 44,10D,10 42,20,101,-16,-13 0,21,0,0,0 20,104,49 27,111,18 33,10C,1710 42,10D,10 38,10,7154580 0,D,15 0,A,-3379865 0,B,15128628 0,C,16 41,104,44 19,20,106,-6,-9 0,21,0,0,0 20,111,17 30,10C,1644 44,10D,14 60,104,38 30,111,17 21,20,108,-8,-4 0,21,-1,0,0 19,10C,1546 43,10D,14 44,10,7154620 0,D,16 0,A,-3379864 0,B,15128627 0,C,16 40,104,38 28,111,17 26,20,106,-12,-17 0,21,-1,0,0 20,10C,1445 43,10D,14 43,10,7154640 0,D,17 0,A,-3379863 0,B,15128626 0,C,16 41,104,41 31,111,17 27,20,96,-18,-17 0,21,-1,0,0 19,10C,1367 52,10D,17 51,104,42 30,111,15 30,10C,1351 35,20,100,-20,-5 0,21,-1,0,1 19,10D,17 45,104,34 31,111,14 31,10C,1390 46,10D,17 46,20,99,-18,-6 0,21,-1,0,0 19,104,29 29,111,14 35,10C,1304 35,10,7154700 0,D,17 0,A,-3379861 0,B,15128624 0,C,15 41,10D,17 44,20,103,-24,-13 0,21,-1,0,0 19,104,28 29,111,14 30,10C,1226 44,10D,18 46,104,31 30,111,16 21,20,106,-20,-12 0,21,-1,0,0 18,10C,1238 42,10D,18 39,10,7154740 0,D,17 0,A,-3379859 0,B,15128623 0,C,14 41,104,34 31,111,15 30,20,97,-25,-11 0,21,-1,0,0 19,10C,1332 45,10D,18 53,10,7154760 0,D,17 0,A,-3379859 0,B,15128622 0,C,14 40,104,34 31,111,17 20,20,101,-15,-10 0,21,-1,0,0 20,10C,1347 33,10,7154780 0,D,18 0,A,-3379858 0,B,15128622 0,C,14 44,10D,18 48,104,41 29,111,17 28,20,104,-17,-17 0,21,-1,-1,0 19,10C,1464 34,10,7154800 0,D,18 0,A,-3379857 0,B,15128621 0,C,14 44,10D,18 47,104,41 33,111,17 25,20,105,-10,-7 0,21,-1,-1,-1 19,10C,1566 34,10,7154820 0,D,18 0,A,-3379856 0,B,15128620 0,C,14 43,10D,18 44,104,40 30,111,17 30,10C,1566 35,20,101,-16,-11 0,21,-1,0,0 21,10D,18 44,104,36 33,111,15 33,10C,1539 55,10D,18 37,20,98,-19,-9 0,21,-1,0,0 17,10,7154860 0,D,19 0,A,-3379855 0,B,15128619 0,C,14 66,104,30 27,111,14 32,10C,1347 44,10D,18 37,20,101,-22,-17 0,21,-1,0,0 20,104,27 28,111,14 29,10C,1285 45,10D,18 47,104,25 29,111,13 22,20,101,-22,-14 0,21,-1,0,0 20,10C,1269 44,10D,18 53,104,23 23,10,7154920 0,D,19 0,A,-3379852 0,B,15128617 0,C,14 40,111,12 25,20,102,-21,-12 0,21,-1,0,0 19,10C,1226 44,10D,18 44,104,20 24,10,7154940 0,D,19 0,A,-3379852 0,B,15128616 0,C,14 41,111,12 31,10C,1167 39,20,107,-19,-7 0,21,-1,0,0 20,10D,18 55,104,20 23,10,7154960 0,D,19 0,A,-3379851 0,B,15128615 0,C,14 39,111,12 32,10C,1125 46,20,98,-25,-10 0,21,0,0,0 20,10D,18 44,10,7154980 0,D,19 0,A,-3379850 0,B,15128615 0,C,14 41,104,17 30,111,12 30,10C,1003 35,20,100,-26,-12 0,21,-1,0,0 19,10D,18 48,104,20 21,10,7155000 0,D,18 0,A,-3379849 0,B,15128614 0,C,14 41,111,12 32,10C,953 42,20,100,-23,-6 0,21,-1,0,0 18,10D,18 43,104,20 22,10,7155020 0,D,18 0,A,-3379849 0,B,15128613 0,C,14 41,111,11 27,10C,914 46,10D,18 41,20,107,-26,-13 0,21,0,0,0 21,104,20 19,10,7155040 0,D,18 0,A,-3379848 0,B,15128612 0,C,14 57,111,11 26,10C,847 51,10D,18 46,20,105,-29,-3 0,21,0,0,0 21,104,20 29,111,11 29,10C,839 46,10D,18 49,104,20 29,111,11 22,20,100,-22,-8 0,21,1,0,0 15,10,7155080 0,D,17 0,A,-3379846 0,B,15128611 0,C,14 68,10C,835 40,10D,17 47,104,21 23,10,7155100 0,D,17 0,A,-3379846 0,B,15128610 0,C,14 41,111,11 20,20,104,-29,0 0,21,2,0,0 19,10C,800 40,10D,17 48,104,21 31,111,11 31,10C,781 33,20,99,-26,-3 0,21,3,0,0 20,10D,17 47,104,21 36,111,11 31,10C,789 51,10D,16 38,20,103,-23,2 0,21,5,-1,-1 19,104,22 28,111,11 30,10C,781 57,10D,16 50,104,22 20,20,101,-27,10 0,21,5,-1,0 21,111,11 31,10C,765 41,10D,16 39,10,7155180 0,D,16 0,A,-3379843 0,B,15128608 0,C,14 39,104,22 28,111,11 22,20,103,-25,2 0,21,5,-1,0 19,10C,757 45,10D,16 47,104,22 30,111,11 33,10C,765 35,20,101,-28,3 0,21,7,-2,0 19,10D,16 46,104,22 23,10,7155220 0,D,15 0,A,-3379842 0,B,15128606 0,C,14 40,111,12 31,10C,765 42,20,103,-24,7 0,21,7,-1,0 19,10D,15 43,104,28 22,10,7155240 0,D,15 0,A,-3379842 0,B,15128605 0,C,14 44,111,12 29,10C,789 46,10D,15 37,20,101,-25,-3 0,21,8,-2,0 18,104,28 31,10,7155260 0,D,15 0,A,-3379842 0,B,15128604 0,C,14 47,111,12 32,10C,863 45,10D,15 37,20,97,-32,8 0,21,9,-2,0 20,104,25 20,10,7155280 0,D,14 0,A,-3379841 0,B,15128603 0,C,14 56,111,12 31,10C,882 46,10D,13 37,20,98,-29,2 0,21,9,-2,0 20,104,24 32,111,11 30,10C,902 55,10D,13 44,104,22 21,20,106,-22,1 0,21,7,-3,-1 21,111,11 29,10C,894 43,10D,13 45,104,21 31,111,11 34,20,99,-25,-3 0,21,7,-2,0 21,10C,847 46,10D,13 49,104,21 30,111,11 31,10C,820 34,20,105,-28,6 0,21,8,-1,0 21,10D,12 53,104,22 30,111,13 32,10C,781 44,10D,12 37,20,102,-28,6 0,21,7,-1,0 22,104,26 30,111,12 30,10C,777 54,10D,12 47,104,30 20,20,104,-28,-1 0,21,8,-3,0 16,10,7155400 0,D,12 0,A,-3379841 0,B,15128598 0,C,14 68,111,12 31,10C,890 44,10D,12 43,20,94,-29,0 0,21,8,-2,-1 19,104,28 29,111,11 30,10C,953 45,10D,11 49,104,23 21,10,7155440 0,D,11 0,A,-3379841 0,B,15128597 0,C,14 41,111,13 19,20,100,-29,-1 0,21,7,-2,-1 20,10C,945 44,10D,11 48,104,29 24,10,7155460 0,D,10 0,A,-3379841 0,B,15128596 0,C,14 41,111,14 28,20,103,-25,-7 0,21,6,-2,0 20,10C,976 44,10D,11 44,104,32 23,10,7155480 0,D,10 0,A,-3379841 0,B,15128595 0,C,14 40,111,14 29,20,98,-28,-3 0,21,6,-1,0 20,10C,1144 44,10D,11 44,104,33 22,10,7155500 0,D,10 0,A,-3379841 0,B,15128595 0,C,14 42,111,15 29,20,104,-21,0 0,21,5,-1,0 19,10C,1234 44,10D,10 47,104,34 24,10,7155520 0,D,9 0,A,-3379842 0,B,15128594 0,C,14 40,111,15 28,10C,1332 33,20,103,-15,-3 0,21,5,-1,-1 21,10D,10 45,104,33 31,111,15 34,10C,1343 47,10D,10 37,20,101,-17,-8 0,21,4,-1,-1 20,104,35 33,111,16 29,10C,1375 44,10D,10 55,104,35 21,20,101,-13,-14 0,21,3,-1,-1 20,111,16 29,10C,1445 44,10D,10 45,104,34 30,111,16 30,10C,1460 34,20,103,-11,-8 0,21,2,-1,-1 19,10D,10 48,104,34 30,111,16 30,10C,1437 46,10D,10 36,20,106,-12,-8 0,21,2,0,0 21,104,34 19,10,7155620 0,D,11 0,A,-3379843 0,B,15128591 0,C,14 56,111,16 31,10C,1429 47,10D,10 35,20,102,-16,-12 0,21,1,-1,0 22,104,34 32,111,16 29,10C,1429 43,10D,11 45,104,34 31,111,16 22,20,98,-19,-24 0,21,0,-1,-1 24,10C,1421 86,10D,11 58,104,35 30,111,16 30,20,99,-19,-14 0,21,0,0,0 20,10C,1414 41,10D,11 49,104,35 44,111,16 30,10C,1308 35,20,100,-16,-22 0,21,0,0,0 21,10D,11 47,104,37 32,111,16 32,10C,1210 36,10,7155720 0,D,13 0,A,-3379844 0,B,15128588 0,C,14 41,10D,13 35,20,101,-13,-14 0,21,0,0,0 20,104,40 27,111,16 32,10C,1199 52,10D,13 45,104,41 27,20,104,-14,-13 0,21,0,0,0 19,111,14 31,10C,1191 45,10D,13 38,10,7155760 0,D,14 0,A,-3379845 0,B,15128586 0,C,14 41,104,36 27,20,105,-17,-12 0,21,0,0,0 24,111,14 40,10C,1175 43,10D,14 46,104,30 30,111,13 21,20,101,-18,-16 0,21,0,0,0 20,10C,1179 43,10D,14 46,104,26 23,10,7155800 0,D,14 0,A,-3379846 0,B,15128585 0,C,9 39,111,12 32,10C,1128 34,20,102,-26,-12 0,21,0,-1,0 19,10D,14 48,104,25 35,111,13 30,10C,1117 42,10D,14 37,20,99,-22,-15 0,21,0,0,0 19,104,26 29,10,7155840 0,D,13 0,A,-3379846 0,B,15128583 0,C,9 48,111,13 31,10C,1152 43,10D,14 36,20,98,-24,-8 0,21,-1,0,0 20,104,28 38,111,14 23,10,7155860 0,D,13 0,A,-3379846 0,B,15128582 0,C,9 39,10C,1167 44,10D,14 42,20,100,-22,-12 0,21,0,0,0 19,104,28 38,111,14 29,10C,1214 47,10D,14 48,104,27 22,20,99,-21,-16 0,21,0,0,0 18,111,14 22,10,7155900 0,D,13 0,A,-3379847 0,B,15128581 0,C,9 54,10C,1222 45,10D,14 52,104,27 21,20,100,-22,-19 0,21,-1,0,0 21,111,14 32,10C,1230 46,10D,14 49,104,27 33,111,14 21,20,100,-22,-20 0,21,0,0,0 20,10C,1242 45,10D,14 49,104,28 31,111,15 28,10C,1261 34,20,99,-22,-6 0,21,0,0,0 21,10D,14 44,104,29 34,111,15 33,10C,1312 45,10D,14 37,20,100,-19,-16 0,21,0,0,0 21,104,31 37,111,15 30,10C,1347 50,10D,14 43,104,30 21,20,98,-19,-20 0,21,0,0,0 22,111,15 31,10C,1371 43,10D,14 45,104,30 27,111,15 34,10C,1378 34,20,108,-16,-8 0,21,0,0,0 15,10,7160020 0,D,15 0,A,-3379849 0,B,15128576 0,C,9 67,10D,14 47,104,30 30,111,14 21,10,7160040 0,D,14 0,A,-3379849 0,B,15128575 0,C,9 40,10C,1394 32,20,103,-20,-8 0,21,-1,0,0 19,10D,14 56,104,27 42,111,14 31,10C,1371 43,10D,15 37,20,97,-23,-9 0,21,-1,0,0 20,104,28 29,111,14 30,10C,1355 43,10,7160080 0,D,14 0,A,-3379850 0,B,15128574 0,C,9 40,10D,15 44,20,105,-19,-9 0,21,-1,0,0 23,104,26 29,111,13 31,10C,1328 44,10D,15 45,104,22 31,111,12 20,20,98,-24,-20 0,21,-1,0,0 20,10C,1253 37,10,7160120 0,D,15 0,A,-3379850 0,B,15128572 0,C,9 39,10D,15 49,104,21 29,111,12 26,20,100,-22,-13 0,21,-1,0,0 18,10C,1171 42,10D,16 50,104,23 34,111,14 30,10C,1148 34,20,103,-16,-23 0,21,-1,0,0 19,10D,16 45,104,25 30,111,14 34,10C,1191 46,10D,16 37,20,96,-25,-10 0,21,-1,0,0 20,104,26 21,10,7160180 0,D,14 0,A,-3379851 0,B,15128569 0,C,9 53,111,14 32,10C,1250 55,10D,16 37,20,97,-21,-21 0,21,-1,0,0 24,104,26 33,111,14 38,10C,1257 46,10D,16 54,104,27 22,20,104,-20,-12 0,21,-1,0,0 20,111,14 28,10C,1257 46,10D,16 49,104,27 32,111,14 27,20,107,-18,-12 0,21,-1,0,0 21,10C,1261 40,10D,16 54,104,26 33,111,14 37,10C,1261 34,20,108,-14,-10 0,21,-1,0,0 16,10,7160260 0,D,12 0,A,-3379852 0,B,15128566 0,C,9 66,10D,16 47,104,25 31,111,12 23,10,7160280 0,D,12 0,A,-3379852 0,B,15128566 0,C,9 40,10C,1253 32,20,109,-20,-10 0,21,-1,0,0 20,10D,16 52,104,21 28,111,12 31,10C,1195 47,10D,16 38,20,99,-20,-4 0,21,-1,0,0 19,104,20 36,111,11 31,10C,1152 44,10D,16 46,104,17 25,20,101,-24,-14 0,21,-1,0,0 21,111,12 31,10C,1101 41,10D,16 39,10,7160340 0,D,14 0,A,-3379853 0,B,15128563 0,C,9 39,104,17 28,111,12 22,20,97,-25,-11 0,21,-1,0,0 19,10C,1023 42,10D,16 47,104,20 30,111,12 30,10C,972 34,20,99,-25,-9 0,21,-1,0,0 20,10D,16 45,104,20 31,111,11 30,10C,945 43,10D,16 37,20,99,-25,-12 0,21,-1,0,0 20,104,18 39,111,11 30,10C,906 56,10D,16 50,104,20 21,20,99,-24,-17 0,21,-1,0,0 20,111,11 29,10C,863 36,10,7160420 0,D,14 0,A,-3379855 0,B,15128560 0,C,9 59,10D,16 44,104,20 21,20,101,-23,-12 0,21,-1,0,0 19,111,11 31,10C,839 34,10,7160440 0,D,14 0,A,-3379855 0,B,15128559 0,C,9 40,10D,16 43,104,21 30,111,11 21,20,96,-27,-16 0,21,-1,0,0 19,10C,804 41,10D,16 45,104,21 30,111,11 30,10C,796 37,20,102,-26,-16 0,21,-1,0,0 19,10D,16 37,10,7160480 0,D,13 0,A,-3379856 0,B,15128558 0,C,9 40,104,22 28,111,11 30,10C,785 44,10D,16 47,20,96,-27,-14 0,21,-1,0,0 20,104,22 28,111,11 30,10C,785 46,10D,16 48,104,22 22,10,7160520 0,D,15 0,A,-3379857 0,B,15128556 0,C,9 43,111,11 20,20,100,-28,-13 0,21,-1,0,0 20,10C,792 40,10D,16 47,104,22 24,10,7160540 0,D,15 0,A,-3379857 0,B,15128555 0,C,9 40,111,11 31,10C,781 34,20,98,-23,-10 0,21,-1,0,0 20,10D,16 45,104,22 31,111,11 34,10C,781 56,10D,15 38,20,104,-25,-5 0,21,0,0,0 19,104,23 33,111,11 23,10,7160580 0,D,14 0,A,-3379858 0,B,15128554 0,C,9 40,10C,789 40,10D,15 46,20,96,-27,-9 0,21,-1,0,0 19,104,22 29,111,11 40,10C,789 46,10D,15 50,104,22 21,20,101,-25,-9 0,21,-1,0,0 20,111,11 30,10C,781 35,10,7160620 0,D,14 0,A,-3379859 0,B,15128552 0,C,9 43,10D,15 44,104,22 30,111,11 20,20,97,-27,-18 0,21,-1,0,0 19,10C,785 41,10D,14 46,104,22 29,111,11 30,10C,777 38,20,99,-29,-9 0,21,-1,0,0 18,10D,14 44,104,22 31,111,11 30,10C,773 46,10D,14 37,20,101,-24,-12 0,21,0,0,0 19,104,23 21,10,7160680 0,D,13 0,A,-3379860 0,B,15128550 0,C,9 54,111,11 27,10C,781 46,10D,14 37,20,96,-28,-16 0,21,-1,0,0 20,104,23 29,10,7160700 0,D,12 0,A,-3379860 0,B,15128550 0,C,9 47,111,11 28,10C,773 41,10D,13 37,20,104,-22,-10 0,21,-1,0,0 22,104,23 18,10,7160720 0,D,12 0,A,-3379861 0,B,15128549 0,C,9 55,111,11 32,10C,777 41,10D,13 37,20,101,-26,-11 0,21,-1,0,0 22,104,22 19,10,7160740 0,D,12 0,A,-3379861 0,B,15128548 0,C,9 54,111,11 32,10C,765 42,10D,13 37,20,98,-25,-12 0,21,0,0,0 20,104,23 29,111,11 45,10C,769 43,10D,12 57,104,23 21,20,100,-26,-12 0,21,0,0,0 21,111,11 27,10C,757 46,10D,12 49,104,23 28,111,11 28,10,7160800 0,D,11 0,A,-3379862 0,B,15128546 0,C,9 39,10C,765 49,20,98,-25,-13 0,21,-1,0,0 20,10D,12 46,104,23 29,111,11 24,10,7160820 0,D,11 0,A,-3379863 0,B,15128546 0,C,9 44,10C,773 41,20,99,-27,-15 0,21,0,0,0 19,10D,12 47,104,23 32,111,11 23,10,7160840 0,D,10 0,A,-3379863 0,B,15128545 0,C,9 40,10C,753 40,10D,11 38,20,98,-26,-12 0,21,-1,0,0 20,104,23 28,111,11 32,10,7160860 0,D,11 0,A,-3379863 0,B,15128545 0,C,9 40,10C,761 44,10D,11 37,20,96,-28,-11 0,21,-1,0,0 19,104,23 30,111,11 34,10C,765 36,10,7160880 0,D,11 0,A,-3379863 0,B,15128544 0,C,8 40,10D,11 43,20,101,-28,-13 0,21,-1,0,0 18,104,23 30,111,11 30,10C,750 48,10D,11 59,104,24 20,20,102,-23,-11 0,21,-1,0,0 24,111,11 32,10C,757 35,10,7160920 0,D,9 0,A,-3379864 0,B,15128543 0,C,8 38,10D,10 44,104,23 30,111,11 31,20,100,-26,-13 0,21,-1,0,0 20,10C,761 32,10,7160940 0,D,9 0,A,-3379864 0,B,15128542 0,C,8 43,10D,10 44,104,23 29,111,11 32,10C,765 33,20,98,-30,-17 0,21,0,0,0 22,10D,10 43,104,23 30,111,11 33,10C,765 44,10D,10 37,20,99,-27,-14 0,21,-1,0,0 22,104,23 30,111,11 30,10C,765 46,10D,9 48,104,23 23,10,7161000 0,D,9 0,A,-3379866 0,B,15128541 0,C,8 39,111,11 19,20,101,-26,-14 0,21,-1,0,0 20,10C,757 49,10D,9 49,104,23 23,10,7161020 0,D,9 0,A,-3379866 0,B,15128541 0,C,8 38,111,11 24,20,100,-25,-12 0,21,-1,0,0 20,10C,761 40,10D,9 48,104,23 30,111,12 34,10C,757 34,20,105,-23,-12 0,21,-1,0,0 20,10D,9 46,104,29 35,111,13 35,10C,773 36,10,7161060 0,D,9 0,A,-3379867 0,B,15128540 0,C,7 39,10D,8 35,20,98,-27,-13 0,21,-1,0,0 19,104,32 30,111,13 30,10C,890 43,10D,8 47,104,30 29,111,13 22,20,103,-23,-15 0,21,-1,0,0 18,10C,1000 41,10D,8 50,104,29 34,111,13 30,10C,1035 43,20,102,-21,-16 0,21,-1,0,0 20,10D,8 45,10,7161120 0,D,7 0,A,-3379867 0,B,15128538 0,C,7 43,104,28 44,111,13 29,10C,1050 34,20,98,-25,-16 0,21,-1,0,0 21,10D,8 47,104,28 34,111,13 30,10C,1093 46,10D,8 36,20,99,-21,-17 0,21,-1,0,0 21,104,26 32,111,12 30,10C,1066 47,10D,8 47,104,24 27,20,100,-21,-11 0,21,-2,0,0 15,10,7161180 0,D,7 0,A,-3379868 0,B,15128537 0,C,7 67,111,12 35,10C,984 45,10D,8 42,20,102,-26,-15 0,21,-2,0,0 16,10,7161200 0,D,7 0,A,-3379869 0,B,15128536 0,C,7 66,104,22 32,111,12 30,10C,925 51,10D,8 37,20,95,-25,-15 0,21,-2,0,0 15,10,7161220 0,D,7 0,A,-3379869 0,B,15128536 0,C,7 67,104,21 32,111,12 34,10C,859 43,10D,8 37,20,103,-24,-15 0,21,-2,0,0 21,104,22 26,111,12 34,10C,820 44,10D,8 39,10,7161260 0,D,7 0,A,-3379869 0,B,15128535 0,C,7 39,104,22 19,20,97,-26,-11 0,21,-2,0,0 20,111,11 31,10C,800 44,10D,7 46,104,22 29,111,11 31,10C,781 34,20,100,-25,-17 0,21,-2,0,0 19,10D,7 45,104,22 33,10,7161300 0,D,7 0,A,-3379870 0,B,15128534 0,C,7 39,111,12 32,10C,750 34,20,96,-34,-22 0,21,-3,0,0 19,10D,7 45,104,29 32,10,7161320 0,D,7 0,A,-3379870 0,B,15128534 0,C,7 43,111,13 29,10C,773 33,20,98,-31,-15 0,21,-4,0,0 20,10D,7 42,104,33 22,10,7161340 0,D,6 0,A,-3379870 0,B,15128534 0,C,7 39,111,12 28,10C,871 46,10D,6 37,20,103,-25,-18 0,21,-4,0,0 19,104,32 28,111,12 31,10C,871 46,10D,6 49,104,31 28,111,12 21,20,95,-29,-14 0,21,-4,0,0 22,10C,855 40,10D,6 49,104,31 29,111,12 33,10C,863 34,20,95,-29,-12 0,21,-4,1,0 20,10D,6 44,104,28 30,111,12 30,10C,847 45,10D,5 37,20,93,-31,-14 0,21,-4,0,0 20,104,28 38,111,12 30,10C,812 46,10D,5 47,104,27 21,20,106,-21,-15 0,21,-4,0,0 25,111,12 33,10C,769 42,10D,5 45,104,27 32,111,11 26,20,100,-26,-11 0,21,-4,0,0 16,10,7161460 0,D,4 0,A,-3379871 0,B,15128532 0,C,7 66,10C,742 48,10D,5 47,104,28 27,20,98,-31,-15 0,21,-3,0,0 16,10,7161480 0,D,3 0,A,-3379871 0,B,15128532 0,C,7 66,111,14 32,10C,687 42,10D,3 49,20,100,-28,-9 0,21,-3,0,0 20,104,31 28,111,11 30,10C,730 46,10D,3 48,104,29 26,10,7161520 0,D,2 0,A,-3379872 0,B,15128531 0,C,7 39,111,11 29,20,100,-32,-9 0,21,-2,0,0 21,10C,703 39,10D,3 45,104,27 29,111,11 31,10C,675 35,20,99,-31,-6 0,21,-2,0,0 23,10D,1 47,104,27 31,111,11 28,10,7161560 0,D,1 0,A,-3379872 0,B,15128531 0,C,7 39,10C,660 37,20,98,-34,-8 0,21,-1,0,0 19,10D,1 46,104,27 72,111,11 35,10C,667 33,20,103,-20,-10 0,21,-1,0,0 20,10D,1 46,104,27 29,111,11 26,10,7161600 0,D,0 0,A,-3379872 0,B,15128531 0,C,7 40,10C,664 40,20,96,-24,-11 0,21,-1,0,0 21,10D,1 42,104,27 31,111,11 31,10C,652 43,10D,0 46,20,101,-19,-11 0,21,-1,0,0 21,104,27 29,111,11 29,10C,648 47,10D,0 38,10,7161640 0,D,0 0,A,-3379872 0,B,15128530 0,C,8 39,104,27 19,20,101,-20,-12 0,21,-1,0,0 24,111,11 30,10C,636 43,10D,0 56,104,27 30,111,11 21,20,102,-21,-12 0,21,-1,0,0 20,10C,636 45,10D,0 50,104,27 33,111,11 30,10C,644 34,20,101,-21,-12 0,21,-1,0,0 19,10D,0 47,104,27 22,10,7161700 0,D,0 0,A,-3379872 0,B,15128530 0,C,8 39,111,11 28,10C,652 46,10D,0 37,20,99,-21,-10 0,21,-1,0,0 18,104,28 21,10,7161720 0,D,0 0,A,-3379872 0,B,15128530 0,C,8 54,111,11 42,10C,652 42,10D,0 36,20,100,-22,-11 0,21,0,0,0 21,104,27 19,10,7161740 0,D,0 0,A,-3379872 0,B,15128530 0,C,8 55,111,11 31,10C,648 47,10D,0 35,20,101,-20,-12 0,21,-1,0,0 21,104,27 29,111,11 33,10C,648 42,10D,0 53,104,27 25,20,102,-21,-11 0,21,-1,0,0 17,10,7161780 0,D,0 0,A,-3379873 0,B,15128530 0,C,8 65,111,11 32,10C,632 45,10D,0 44,20,102,-17,-13 0,21,-1,0,0 16,10,7161800 0,D,0 0,A,-3379873 0,B,15128530 0,C,8 66,104,27 28,111,12 29,10C,636 44,10D,0 37,20,101,-19,-10 0,21,-1,0,0 21,104,29 27,111,12 43,10C,660 54,10D,0 43,10,7161840 0,D,0 0,A,-3379873 0,B,15128530 0,C,8 38,104,30 20,20,103,-17,-12 0,21,-1,0,0 20,111,12 27,10C,742 46,10D,0 46,10,7161860 0,D,0 0,A,-3379873 0,B,15128530 0,C,8 40,104,34 24,20,102,-17,-15 0,21,-1,0,0 20,111,14 31,10C,808 58,10D,0 46,104,42 30,111,14 22,20,94,-21,-13 0,21,-1,0,0 19,10C,953 44,10D,0 43,104,40 31,111,14 29,10C,1058 35,20,102,-12,-10 0,21,-2,0,0 20,10D,0 47,104,38 27,111,14 33,10C,1125 36,10,7161920 0,D,1 0,A,-3379873 0,B,15128530 0,C,8 39,10D,0 44,20,101,-13,-13 0,21,-2,0,0 20,104,36 29,111,14 31,10C,1125 34,10,7161940 0,D,2 0,A,-3379873 0,B,15128530 0,C,8 40,10D,0 46,104,34 21,20,100,-14,-13 0,21,-3,0,0 24,111,13 30,10C,1066 36,10,7161960 0,D,2 0,A,-3379873 0,B,15128529 0,C,8 39,10D,0 56,104,32 21,20,106,-10,-15 0,21,-3,0,0 19,111,13 30,10C,992 36,10,7161980 0,D,3 0,A,-3379873 0,B,15128529 0,C,8 39,10D,1 43,104,32 30,111,13 20,20,101,-16,-13 0,21,-3,0,0 19,10C,937 40,10D,1 47,104,31 29,111,12 30,10C,921 37,20,105,-12,-14 0,21,-3,0,0 18,10D,1 44,104,29 24,10,7162020 0,D,3 0,A,-3379873 0,B,15128529 0,C,9 39,111,12 37,10C,867 43,20,106,-14,-14 0,21,-4,0,0 20,10D,1 43,104,29 30,111,12 30,10C,851 46,10D,3 41,20,105,-16,-18 0,21,-4,0,0 20,104,28 19,10,7162060 0,D,5 0,A,-3379873 0,B,15128528 0,C,9 55,111,12 27,10C,832 46,10D,3 36,20,104,-19,-15 0,21,-4,0,0 22,104,29 27,111,12 30,10C,832 46,10D,3 48,104,28 29,20,98,-23,-9 0,21,-5,1,0 21,111,12 31,10C,824 42,10D,3 46,104,28 32,111,12 29,10C,820 34,20,105,-19,-17 0,21,-5,0,0 17,10,7162120 0,D,5 0,A,-3379874 0,B,15128527 0,C,9 64,10D,4 54,104,28 31,111,14 31,10C,816 34,20,101,-19,-14 0,21,-5,1,0 20,10D,4 43,104,34 30,111,13 32,10C,867 47,10D,4 37,20,108,-12,-10 0,21,-5,0,0 20,10,7162160 0,D,5 0,A,-3379874 0,B,15128526 0,C,10 63,104,33 27,111,13 42,10C,910 44,10D,5 37,20,105,-17,-14 0,21,-5,1,0 20,104,33 27,111,13 32,10C,921 42,10D,5 47,104,32 30,111,13 21,20,103,-22,-13 0,21,-6,1,0 20,10C,933 42,10D,5 46,104,32 30,111,12 46,10C,937 34,20,100,-20,-17 0,21,-6,1,0 19,10D,5 53,10,7162240 0,D,6 0,A,-3379873 0,B,15128525 0,C,10 40,104,29 28,111,12 31,10C,917 33,20,102,-23,-14 0,21,-6,0,0 20,10D,6 46,104,28 21,10,7162260 0,D,6 0,A,-3379873 0,B,15128525 0,C,10 41,111,12 32,10C,890 43,20,100,-21,-8 0,21,-6,0,0 19,10D,6 42,104,28 22,10,7162280 0,D,6 0,A,-3379873 0,B,15128524 0,C,10 40,111,12 32,10C,890 42,10D,6 37,20,100,-19,-15 0,21,-6,1,0 18,104,28 29,111,12 30,10C,898 46,10D,6 46,104,29 27,111,12 22,20,100,-24,-15 0,21,-6,0,0 20,10C,898 41,10D,6 49,104,29 30,111,12 29,10C,910 51,20,103,-16,-16 0,21,-6,0,0 20,10D,6 43,104,30 30,111,13 34,10C,917 43,10D,6 37,20,100,-23,-13 0,21,-6,1,0 21,104,29 31,111,13 30,10C,921 46,10D,6 43,104,30 23,10,7162380 0,D,6 0,A,-3379873 0,B,15128523 0,C,10 45,111,13 30,20,99,-23,-13 0,21,-6,1,0 19,10C,937 43,10D,6 45,104,29 23,10,7162400 0,D,6 0,A,-3379873 0,B,15128522 0,C,10 40,111,13 28,10C,949 33,20,100,-19,-13 0,21,-6,1,0 20,10D,6 45,104,29 31,111,13 29,10C,953 46,10D,6 37,20,98,-22,-9 0,21,-5,1,0 21,104,29 28,111,13 40,10C,949 43,10D,6 45,104,29 27,20,101,-19,-12 0,21,-5,1,0 19,111,12 29,10C,953 47,10D,6 38,10,7162460 0,D,6 0,A,-3379872 0,B,15128521 0,C,10 41,104,26 28,20,102,-22,-11 0,21,-5,1,0 19,111,12 29,10C,917 43,10D,6 46,104,26 30,111,12 35,10C,902 32,20,97,-25,-12 0,21,-6,1,0 20,10D,6 44,104,25 34,111,12 42,10C,882 42,10D,6 35,20,101,-25,-14 0,21,-5,0,0 22,104,25 18,10,7162520 0,D,6 0,A,-3379872 0,B,15128520 0,C,10 57,111,12 31,10C,863 41,10D,6 37,20,97,-31,-8 0,21,-5,1,0 21,104,25 38,111,12 29,10C,871 46,10D,6 44,104,25 22,20,98,-34,-6 0,21,-5,1,0 20,111,12 28,10C,867 46,10D,6 49,104,26 44,111,12 22,20,99,-31,-8 0,21,-4,1,0 20,10C,824 32,10,7162580 0,D,6 0,A,-3379871 0,B,15128520 0,C,10 46,10D,6 46,104,25 29,111,12 28,20,99,-32,-5 0,21,-4,0,0 21,10,7162600 0,D,5 0,A,-3379871 0,B,15128519 0,C,10 61,10C,781 42,10D,5 49,104,25 28,20,98,-34,-6 0,21,-3,0,0 18,10,7162620 0,D,4 0,A,-3379871 0,B,15128519 0,C,10 65,111,11 28,10C,710 46,10D,5 44,104,25 21,20,96,-34,-6 0,21,-2,0,0 17,10,7162640 0,D,4 0,A,-3379870 0,B,15128519 0,C,10 66,111,11 42,10C,664 43,10D,5 37,20,97,-32,-8 0,21,-2,0,0 22,104,26 27,111,11 30,10C,652 45,10D,5 45,104,26 31,111,11 21,20,99,-28,-8 0,21,-2,0,0 21,10C,640 41,10D,3 47,104,27 28,111,11 30,10,7162700 0,D,2 0,A,-3379870 0,B,15128519 0,C,10 44,10C,628 33,20,101,-28,-9 0,21,-1,0,0 20,10D,3 45,104,27 28,111,11 42,10C,628 36,10,7162720 0,D,2 0,A,-3379870 0,B,15128519 0,C,12 41,10D,3 34,20,99,-26,-9 0,21,-2,0,0 19,104,27 29,111,11 31,10C,644 43,10D,3 44,104,27 36,20,100,-24,-8 0,21,-2,0,0 18,111,11 39,10C,656 36,10,7162760 0,D,1 0,A,-3379870 0,B,15128519 0,C,12 40,10D,1 42,104,27 26,20,102,-22,-9 0,21,-1,0,0 19,111,11 29,10C,660 47,10D,1 44,104,27 30,111,11 30,10C,660 33,20,100,-23,-9 0,21,-1,0,0 19,10D,1 42,104,27 30,111,11 35,10C,660 46,10D,1 35,20,101,-19,-8 0,21,-1,0,0 18,104,27 22,10,7162820 0,D,0 0,A,-3379870 0,B,15128519 0,C,12 55,111,11 29,10C,660 46,10D,0 34,20,101,-19,-10 0,21,-1,0,0 20,104,27 20,10,7162840 0,D,0 0,A,-3379870 0,B,15128519 0,C,12 56,111,11 31,10C,644 42,10D,0 35,20,101,-20,-9 0,21,-2,0,0 21,104,27 28,10,7162860 0,D,0 0,A,-3379870 0,B,15128519 0,C,12 47,111,12 40,10C,648 46,10D,0 35,20,102,-19,-9 0,21,-1,0,0 21,104,29 28,111,12 30,10C,675 46,10D,0 43,104,30 29,111,12 21,20,102,-18,-8 0,21,-2,0,0 17,10,7162900 0,D,1 0,A,-3379870 0,B,15128519 0,C,12 66,10C,710 41,10D,0 45,104,31 31,111,12 22,20,100,-18,-6 0,21,-2,0,0 20,10C,742 44,10D,0 43,104,31 32,111,12 30,10C,773 34,20,100,-18,-11 0,21,-2,0,0 16,10,7162940 0,D,1 0,A,-3379870 0,B,15128518 0,C,12 67,10D,0 58,104,31 30,111,12 30,20,106,-15,-7 0,21,-3,0,0 22,10C,781 43,10D,1 44,104,30 27,111,12 28,10,7162980 0,D,2 0,A,-3379870 0,B,15128518 0,C,12 40,10C,785 32,20,106,-16,-12 0,21,-3,0,0 20,10D,1 42,104,30 32,111,12 28,10C,781 35,10,7163000 0,D,2 0,A,-3379870 0,B,15128518 0,C,12 44,10D,1 35,20,97,-26,-8 0,21,-3,0,0 20,104,30 29,111,12 32,10C,761 43,10D,1 48,104,30 30,20,98,-28,-8 0,21,-2,0,0 19,111,12 31,10C,757 42,10D,2 36,10,7163040 0,D,2 0,A,-3379870 0,B,15128518 0,C,12 41,104,30 31,111,11 21,20,102,-24,-5 0,21,-2,0,0 19,10C,757 44,10D,2 36,10,7163060 0,D,2 0,A,-3379869 0,B,15128518 0,C,12 40,104,28 37,111,11 27,20,103,-23,-11 0,21,-2,0,0 18,10C,738 43,10D,2 36,10,7163080 0,D,2 0,A,-3379869 0,B,15128518 0,C,12 41,104,26 31,111,11 29,10C,714 34,20,98,-27,-8 0,21,-2,0,0 23,10D,2 44,104,26 41,111,11 34,10C,699 45,10D,2 45,20,105,-18,-11 0,21,-2,0,0 20,104,26 28,111,11 34,10C,675 42,10D,2 47,104,26 29,111,12 21,20,103,-18,-11 0,21,-2,0,0 16,10,7163140 0,D,1 0,A,-3379869 0,B,15128518 0,C,12 68,10C,667 40,10D,2 46,104,29 22,10,7163160 0,D,1 0,A,-3379869 0,B,15128518 0,C,12 41,111,12 20,20,100,-19,-9 0,21,-2,0,0 19,10C,687 49,10D,2 46,104,43 24,10,7163180 0,D,2 0,A,-3379869 0,B,15128518 0,C,12 41,111,16 24,20,95,-22,-9 0,21,-3,0,0 20,10C,867 40,10D,2 45,104,50 31,111,14 35,10C,1035 34,20,101,-12,-14 0,21,-3,0,0 20,10D,2 42,104,42 40,111,14 30,10C,1105 44,10D,2 35,20,98,-21,-17 0,21,-3,0,0 21,104,37 30,111,14 31,10C,1089 44,10D,2 37,10,7163240 0,D,2 0,A,-3379869 0,B,15128517 0,C,12 41,104,33 19,20,99,-27,-13 0,21,-3,0,0 20,111,13 29,10C,1027 44,10D,2 44,104,31 29,111,13 30,10C,972 43,20,98,-28,-8 0,21,-3,0,0 20,10D,2 43,104,29 22,10,7163280 0,D,2 0,A,-3379869 0,B,15128517 0,C,13 41,111,12 31,10C,906 46,10D,2 35,20,102,-22,-13 0,21,-2,0,0 20,104,26 29,111,12 30,10C,816 58,10D,2 46,104,29 21,20,95,-23,-8 0,21,-2,0,0 21,111,15 32,10C,738 42,10D,2 44,104,51 31,111,19 29,10C,804 35,20,98,-19,-9 0,21,-3,0,-1 15,10,7163340 0,D,3 0,A,-3379868 0,B,15128517 0,C,13 68,10D,2 41,104,64 32,111,17 23,10,7163360 0,D,2 0,A,-3379868 0,B,15128517 0,C,13 41,10C,1386 32,20,108,1,-14 0,21,-4,0,0 20,10D,2 41,104,43 41,111,15 30,10C,1511 48,10D,3 35,20,102,-4,-14 0,21,-5,0,0 20,104,34 27,111,14 32,10C,1332 43,10D,3 38,10,7163400 0,D,2 0,A,-3379868 0,B,15128517 0,C,13 40,104,30 19,20,101,-12,-13 0,21,-5,0,0 42,111,14 136,10C,1089 34,20,103,-18,-17 0,21,-6,0,0 20,10D,3 41,104,29 23,10,7163440 0,D,3 0,A,-3379868 0,B,15128517 0,C,13 40,111,13 28,10C,1031 43,10D,3 34,20,101,-19,-12 0,21,-6,1,0 20,104,30 29,111,17 33,10C,960 47,10D,5 48,104,45 24,20,103,-18,-10 0,21,-6,0,0 19,111,17 37,10C,1101 55,10,7163480 0,D,3 0,A,-3379867 0,B,15128516 0,C,14 40,10D,5 45,104,48 21,20,110,-19,-24 0,21,-6,4,0 21,111,17 19,10,7163500 0,D,4 0,A,-3379867 0,B,15128516 0,C,14 55,10C,1328 45,10D,5 43,104,46 22,20,124,-12,-9 0,21,-6,3,-1 25,111,17 113,10C,1488 45,10D,7 36,20,113,-5,-19 0,21,-6,0,-2 21,104,42 27,111,18 33,10C,1531 43,10D,7 46,104,47 30,111,18 21,20,97,-14,-16 0,21,-8,-1,0 16,10,7163560 0,D,6 0,A,-3379866 0,B,15128516 0,C,14 67,10C,1593 44,10D,7 54,10,7163580 0,D,6 0,A,-3379866 0,B,15128516 0,C,14 40,104,41 28,20,98,-2,-22 0,21,-8,0,0 21,111,16 26,10C,1570 46,10D,9 45,104,34 30,111,16 30,10C,1480 35,20,106,-13,-20 0,21,-7,5,2 19,10D,9 41,104,33 33,111,16 22,10,7163620 0,D,8 0,A,-3379865 0,B,15128517 0,C,14 40,10C,1382 44,10D,9 36,20,97,-30,-15 0,21,-7,1,3 20,104,40 29,111,19 30,10C,1402 37,10,7163640 0,D,8 0,A,-3379865 0,B,15128517 0,C,13 40,10D,9 45,104,54 21,20,100,-15,-18 0,21,-8,-1,2 19,111,20 28,10C,1683 48,10D,9 44,104,54 29,111,19 29,10C,1789 34,20,113,5,-12 0,21,-6,0,0 20,10D,11 43,104,49 39,111,18 45,10C,1769 44,10D,11 36,20,96,-11,-22 0,21,-4,1,0 22,104,45 26,111,18 30,10C,1671 46,10D,11 46,104,47 24,10,7163720 0,D,10 0,A,-3379863 0,B,15128517 0,C,13 41,111,18 19,20,105,-12,-10 0,21,-3,0,-1 19,10C,1582 44,10D,11 47,104,48 30,111,18 31,10C,1535 34,20,99,-15,-5 0,21,-3,0,0 19,10D,14 46,104,48 28,111,18 31,10,7163760 0,D,11 0,A,-3379861 0,B,15128517 0,C,13 40,10C,1476 36,20,103,-12,-9 0,21,-3,0,0 21,10D,14 42,104,49 32,111,18 29,10C,1402 34,10,7163780 0,D,13 0,A,-3379861 0,B,15128517 0,C,13 41,10D,14 43,20,106,-8,-14 0,21,-1,0,0 20,104,51 25,111,18 34,10C,1308 35,10,7163800 0,D,15 0,A,-3379860 0,B,15128517 0,C,13 40,10D,14 42,104,54 21,20,107,-18,-11 0,21,-1,0,-2 20,111,18 29,10C,1250 47,10D,17 49,104,56 33,111,18 26,20,97,3,-8 0,21,-1,0,1 18,10C,1234 44,10D,17 36,10,7163840 0,D,16 0,A,-3379858 0,B,15128517 0,C,13 41,104,56 31,111,17 40,20,166,-18,-37 0,21,-1,-5,0 19,10C,1203 41,10D,17 45,104,58 30,111,20 30,10C,1238 39,20,84,-16,-26 0,21,-2,-1,-4 18,10D,17 43,104,65 31,111,18 30,10C,1296 55,10D,20 35,20,107,3,-8 0,21,-2,0,-4 19,104,56 29,111,15 30,10C,1242 47,10D,20 52,104,45 24,20,109,-22,-10 0,21,-1,0,4 19,111,15 21,10,7163920 0,D,20 0,A,-3379854 0,B,15128518 0,C,13 56,10C,1218 42,10D,20 43,104,36 21,20,91,-20,-17 0,21,-1,0,-1 24,111,14 20,10,7163940 0,D,20 0,A,-3379853 0,B,15128518 0,C,13 52,10C,1242 44,10D,22 44,104,31 21,20,98,-23,-7 0,21,-2,1,-1 19,111,13 21,10,7163960 0,D,21 0,A,-3379852 0,B,15128518 0,C,13 56,10C,1234 44,10D,22 43,104,27 22,20,118,-12,-13 0,21,-1,-1,0 20,111,13 20,10,7163980 0,D,23 0,A,-3379851 0,B,15128519 0,C,13 55,10C,1203 45,10D,22 52,104,23 22,20,105,-19,-15 0,21,-1,0,0 20,111,12 33,10C,1214 42,10D,22 45,104,20 32,111,12 29,20,100,-21,-8 0,21,-1,0,0 16,10,7164020 0,D,24 0,A,-3379848 0,B,15128519 0,C,13 67,10C,1132 41,10D,22 43,104,20 33,111,11 22,20,101,-25,-13 0,21,-1,0,0 16,10,7164040 0,D,24 0,A,-3379847 0,B,15128519 0,C,13 67,10C,1082 44,10D,22 47,104,17 33,20,96,-27,-10 0,21,0,0,0 16,10,7164060 0,D,24 0,A,-3379846 0,B,15128520 0,C,13 66,111,12 28,10C,945 44,10D,22 45,104,20 22,20,103,-23,-14 0,21,-1,0,0 19,111,11 32,10C,964 42,10D,22 55,104,18 23,10,7164100 0,D,22 0,A,-3379843 0,B,15128520 0,C,13 40,111,12 19,20,91,-30,-11 0,21,-1,0,0 20,10C,906 44,10D,22 42,104,20 30,111,14 31,10C,886 37,20,99,-25,-12 0,21,-1,0,0 19,10D,22 45,104,26 29,111,14 30,10C,933 47,10D,22 36,20,106,-17,-5 0,21,0,0,0 19,104,29 28,111,14 31,10C,1101 44,10D,21 45,104,28 29,111,14 21,20,98,-25,-7 0,21,-1,0,0 20,10C,1242 39,10D,21 45,104,25 31,111,14 30,10C,1296 39,20,93,-26,-11 0,21,-1,0,0 19,10D,21 41,104,24 40,111,13 30,10C,1308 47,10D,21 36,20,106,-16,-13 0,21,-1,0,0 19,104,22 39,111,12 31,10C,1261 55,10D,21 48,104,20 21,20,101,-22,-6 0,21,-1,0,0 19,111,12 30,10C,1203 47,10D,20 48,104,16 30,111,11 29,20,101,-22,-13 0,21,0,0,-1 22,10C,1171 45,10D,20 54,104,15 30,111,11 30,10C,1125 33,20,98,-28,-9 0,21,-1,0,0 19,10D,20 43,104,15 29,111,12 30,10C,1054 46,10D,20 36,20,107,-20,-12 0,21,-1,0,0 19,104,17 40,111,11 24,10,7164300 0,D,22 0,A,-3379833 0,B,15128523 0,C,15 40,10C,1011 41,10D,20 36,20,102,-26,-12 0,21,-1,0,0 19,104,17 28,111,12 31,10C,964 46,10D,20 44,104,18 31,111,11 22,20,88,-33,-12 0,21,0,0,0 20,10C,945 32,10,7164340 0,D,20 0,A,-3379831 0,B,15128523 0,C,15 45,10D,20 46,104,17 29,111,11 28,20,99,-26,-9 0,21,-1,0,0 24,10C,925 41,10D,20 48,104,17 34,111,11 32,10C,910 33,20,103,-18,-14 0,21,-1,0,0 21,10D,19 43,104,18 30,111,11 33,10C,886 42,10D,19 48,20,98,-25,-7 0,21,-1,0,-1 20,104,20 37,111,11 29,10C,886 46,10D,19 46,104,20 26,20,99,-27,-6 0,21,-1,0,0 21,111,14 28,10C,871 46,10D,19 47,104,26 32,111,14 26,20,104,-23,-10 0,21,-1,-1,-1 21,10C,933 40,10D,18 48,104,32 32,111,15 32,10C,1156 34,20,101,-19,-12 0,21,-1,0,0 20,10D,18 47,104,33 33,111,15 29,10C,1281 45,10D,18 36,20,95,-21,-8 0,21,-1,-1,0 17,10,7164480 0,D,18 0,A,-3379824 0,B,15128524 0,C,15 66,104,32 28,111,15 30,10C,1355 44,10D,18 36,20,101,-18,-11 0,21,0,0,0 21,104,31 36,111,15 33,10C,1351 44,10D,18 46,104,31 21,20,104,-16,-13 0,21,0,0,0 20,111,15 28,10C,1363 46,10D,18 42,104,30 31,111,15 29,10C,1378 35,20,105,-18,-7 0,21,-1,0,0 20,10D,18 51,104,31 32,111,17 33,10C,1402 57,10D,18 36,20,90,-22,-8 0,21,0,0,1 19,104,38 27,111,17 31,10C,1496 43,10D,18 45,104,37 38,20,107,-17,-9 0,21,0,0,-1 20,111,14 31,10C,1558 42,10D,18 35,10,7164600 0,D,19 0,A,-3379819 0,B,15128525 0,C,15 45,104,28 28,20,99,-29,-12 0,21,0,0,0 21,111,13 29,10C,1406 43,10D,18 36,10,7164620 0,D,19 0,A,-3379818 0,B,15128526 0,C,15 40,104,23 28,111,12 21,20,85,-35,-19 0,21,0,0,-1 20,10C,1281 39,10D,18 45,104,22 29,111,12 33,10C,1257 35,20,104,-20,-16 0,21,0,0,0 19,10D,18 44,104,21 23,10,7164660 0,D,19 0,A,-3379816 0,B,15128526 0,C,15 41,111,14 31,10C,1195 43,20,97,-23,-6 0,21,0,0,0 18,10D,18 45,104,26 23,10,7164680 0,D,19 0,A,-3379815 0,B,15128526 0,C,15 40,111,15 30,10C,1273 47,10D,18 35,20,102,-18,-15 0,21,-1,0,0 23,104,32 21,10,7164700 0,D,19 0,A,-3379814 0,B,15128526 0,C,15 51,111,17 29,10C,1367 55,10D,18 35,20,108,-16,-8 0,21,-1,0,0 22,104,38 18,10,7164720 0,D,19 0,A,-3379813 0,B,15128527 0,C,15 56,111,17 28,10C,1457 45,10D,18 36,20,100,-11,-8 0,21,-1,0,0 20,104,38 29,111,17 30,10C,1523 86,10D,18 35,20,95,-4,-16 0,21,-1,-1,0 21,104,37 28,111,17 30,10C,1558 46,10D,18 44,104,37 27,111,17 22,20,94,-26,-12 0,21,-1,0,0 20,10C,1546 41,10D,18 44,104,36 30,111,17 31,10C,1546 35,20,116,-9,-13 0,21,-1,0,0 24,10D,19 46,104,36 30,111,17 41,10C,1546 41,10D,19 36,20,112,-6,-17 0,21,-1,0,-2 17,10,7164820 0,D,20 0,A,-3379808 0,B,15128527 0,C,15 67,104,37 27,111,18 32,10C,1562 39,10,7164840 0,D,21 0,A,-3379807 0,B,15128528 0,C,15 41,10D,19 34,20,104,-17,-5 0,21,-2,0,0 19,104,41 28,111,18 33,10C,1597 41,10D,19 37,10,7164860 0,D,21 0,A,-3379806 0,B,15128528 0,C,15 40,104,42 20,20,101,-10,-1 0,21,-1,0,0 19,111,18 31,10C,1625 44,10D,21 38,10,7164880 0,D,21 0,A,-3379805 0,B,15128528 0,C,15 41,104,42 26,111,18 22,20,114,-5,-9 0,21,-1,0,0 17,10C,1632 43,10D,21 45,104,42 33,111,18 30,10C,1621 44,20,111,-8,-9 0,21,-2,-1,0 19,10D,21 52,104,44 21,10,7164920 0,D,22 0,A,-3379803 0,B,15128528 0,C,15 41,111,18 28,10C,1570 42,20,98,-24,-19 0,21,-1,0,1 19,10D,21 46,104,47 30,10,7164940 0,D,22 0,A,-3379802 0,B,15128529 0,C,15 41,111,18 26,10C,1535 39,20,98,-19,-16 0,21,-1,0,1 19,10D,22 42,104,49 21,10,7164960 0,D,23 0,A,-3379800 0,B,15128529 0,C,15 41,111,18 31,10C,1503 43,10D,22 35,20,102,-12,-20 0,21,-2,0,0 19,104,51 32,111,18 28,10,7164980 0,D,23 0,A,-3379799 0,B,15128529 0,C,16 40,10C,1464 41,10D,22 43,20,109,-10,-12 0,21,-1,1,0 18,104,53 28,111,18 30,10C,1406 46,10D,23 45,104,55 28,111,19 31,20,101,-6,-12 0,21,-1,0,0 20,10C,1308 41,10D,23 44,104,58 30,111,18 33,10C,1253 34,20,115,-13,-4 0,21,-1,0,0 20,10D,23 43,104,60 30,111,18 29,10C,1230 46,10D,23 35,20,94,-13,-16 0,21,-1,0,-2 21,104,60 27,111,19 33,10C,1230 43,10D,23 46,104,60 31,111,18 22,20,86,-26,-10 0,21,-1,0,0 14,10,7165080 0,D,25 0,A,-3379793 0,B,15128530 0,C,16 69,10C,1226 44,10D,25 46,104,60 22,10,7165100 0,D,26 0,A,-3379791 0,B,15128530 0,C,16 41,111,18 31,20,96,-20,-21 0,21,-1,0,-1 19,10C,1230 44,10D,25 47,104,60 31,10,7165120 0,D,27 0,A,-3379790 0,B,15128530 0,C,16 41,111,17 19,20,108,-6,-8 0,21,-1,0,0 20,10C,1234 43,10D,25 43,104,47 23,10,7165140 0,D,27 0,A,-3379789 0,B,15128530 0,C,16 41,111,14 30,10C,1203 34,20,96,-23,-16 0,21,0,0,0 21,10D,27 43,104,35 30,111,13 31,10C,1210 42,10D,27 36,20,92,-26,-4 0,21,0,0,0 19,104,30 30,111,13 30,10,7165180 0,D,28 0,A,-3379786 0,B,15128531 0,C,16 45,10C,1218 41,10D,27 35,20,100,-18,-8 0,21,0,0,0 20,104,24 29,111,15 30,10C,1179 34,10,7165200 0,D,28 0,A,-3379784 0,B,15128531 0,C,16 41,10D,27 46,104,29 22,20,102,-26,-16 0,21,-1,0,0 18,111,16 31,10C,1250 36,10,7165220 0,D,28 0,A,-3379783 0,B,15128531 0,C,16 40,10D,28 51,104,36 25,20,99,-7,-13 0,21,-1,0,0 19,111,16 31,10C,1222 34,10,7165240 0,D,28 0,A,-3379782 0,B,15128532 0,C,16 40,10D,28 43,104,40 29,111,16 21,20,111,-14,-11 0,21,0,0,0 19,10C,1222 41,10D,28 38,10,7165260 0,D,28 0,A,-3379780 0,B,15128532 0,C,15 44,104,40 27,111,16 31,20,80,-29,-5 0,21,-1,0,0 19,10C,1222 42,10D,28 44,104,40 38,111,16 40,10C,1238 34,20,106,-24,-9 0,21,0,0,0 21,10D,28 34,10,7165300 0,D,28 0,A,-3379777 0,B,15128532 0,C,15 43,104,37 27,111,14 33,10C,1230 44,10D,28 36,20,93,-30,-3 0,21,-1,0,0 20,104,31 28,111,13 33,10C,1253 51,10D,28 47,104,25 22,20,109,-20,-8 0,21,-1,0,0 16,10,7165340 0,D,28 0,A,-3379774 0,B,15128533 0,C,15 66,111,12 31,10C,1242 45,10D,28 45,104,20 22,20,92,-19,-10 0,21,0,0,0 19,111,12 35,10C,1242 43,10D,28 45,104,17 31,111,11 31,10C,1222 33,20,102,-23,-11 0,21,-1,0,0 20,10D,28 46,104,14 28,111,11 29,10,7165400 0,D,28 0,A,-3379770 0,B,15128534 0,C,15 41,10C,1242 37,20,96,-29,-18 0,21,-1,-2,-4 20,10D,28 42,104,18 31,111,14 30,10C,1078 35,10,7165420 0,D,28 0,A,-3379769 0,B,15128534 0,C,15 40,10D,28 34,20,91,-25,-18 0,21,-2,-2,2 20,104,25 35,111,15 34,10C,1214 33,10,7165440 0,D,28 0,A,-3379767 0,B,15128535 0,C,15 41,10D,28 38,20,112,-13,-31 0,21,0,0,2 21,104,29 29,111,14 32,10C,1230 36,10,7165460 0,D,28 0,A,-3379766 0,B,15128535 0,C,15 44,10D,28 38,20,122,-9,-15 0,21,-1,0,0 20,104,27 38,111,13 31,10,7165480 0,D,28 0,A,-3379765 0,B,15128535 0,C,15 40,10C,1187 41,10D,28 36,20,95,-23,-18 0,21,-1,0,0 19,104,28 30,111,14 30,10C,1191 34,10,7165500 0,D,28 0,A,-3379763 0,B,15128536 0,C,15 40,10D,28 46,104,27 22,20,93,-31,-16 0,21,0,2,0 19,111,14 30,10C,1199 36,10,7165520 0,D,28 0,A,-3379762 0,B,15128536 0,C,15 40,10D,28 42,104,27 30,111,13 29,20,92,-32,-14 0,21,-1,-1,0 19,10C,1207 41,10D,28 45,104,24 41,111,13 28,10C,1234 34,20,104,-27,-23 0,21,-1,1,1 20,10D,28 35,10,7165560 0,D,28 0,A,-3379759 0,B,15128537 0,C,15 42,104,23 31,111,13 30,10C,1265 45,10D,28 36,20,100,-24,-14 0,21,-2,0,1 20,104,22 28,111,13 30,10C,1281 46,10D,28 46,104,22 30,20,95,-25,-15 0,21,-1,0,0 21,111,13 28,10C,1281 43,10D,28 47,104,22 27,111,13 31,10C,1277 35,20,103,-24,-12 0,21,-1,0,0 20,10D,28 46,104,22 47,111,13 42,10C,1281 35,10,7165640 0,D,28 0,A,-3379753 0,B,15128539 0,C,15 41,10D,28 34,20,98,-24,-16 0,21,-1,0,0 19,104,21 31,111,13 37,10C,1289 43,10,7165660 0,D,28 0,A,-3379752 0,B,15128539 0,C,15 41,10D,28 34,20,105,-14,-7 0,21,-1,0,0 19,104,21 30,111,13 34,10C,1292 35,10,7165680 0,D,28 0,A,-3379750 0,B,15128539 0,C,15 40,10D,28 42,104,21 21,20,93,-26,-8 0,21,-1,0,0 19,111,13 30,10C,1292 36,10,7165700 0,D,28 0,A,-3379749 0,B,15128540 0,C,15 41,10D,28 42,104,20 30,111,13 20,20,110,-23,-17 0,21,-1,0,1 19,10C,1289 42,10D,28 37,10,7165720 0,D,28 0,A,-3379748 0,B,15128540 0,C,12 41,104,21 31,111,13 32,10C,1273 34,20,104,-19,-12 0,21,0,0,0 24,10D,28 57,104,22 32,111,13 30,10C,1238 44,10D,28 36,20,97,-23,-11 0,21,0,0,0 21,104,22 31,111,13 34,10C,1222 45,10D,28 44,104,20 23,10,7165780 0,D,28 0,A,-3379743 0,B,15128541 0,C,12 39,111,12 20,20,96,-24,-11 0,21,0,1,0 19,10C,1226 44,10D,28 46,104,17 31,111,11 34,10C,1281 35,20,104,-22,-20 0,21,-1,0,0 19,10D,28 45,104,14 29,111,11 27,10,7165820 0,D,27 0,A,-3379741 0,B,15128542 0,C,12 41,10C,1250 40,20,99,-31,-23 0,21,-1,0,0 20,10D,28 57,104,13 33,111,11 23,10,7165840 0,D,27 0,A,-3379739 0,B,15128542 0,C,12 44,10C,1253 42,20,99,-22,-25 0,21,-2,0,1 19,10D,28 45,104,12 30,111,11 21,10,7165860 0,D,27 0,A,-3379738 0,B,15128543 0,C,12 41,10C,1230 44,10D,27 36,20,96,-31,-14 0,21,-2,0,-2 20,104,13 25,111,11 24,10,7165880 0,D,27 0,A,-3379737 0,B,15128543 0,C,12 41,10C,1136 41,10D,27 48,104,13 20,20,80,-33,-9 0,21,-2,1,0 19,111,11 28,10C,1117 48,10D,27 48,104,14 29,111,11 29,20,103,-13,-18 0,21,-2,-2,0 18,10C,1171 46,10D,27 36,10,7165920 0,D,27 0,A,-3379734 0,B,15128544 0,C,12 41,104,13 31,111,11 29,10C,1183 39,20,93,-30,-24 0,21,0,0,1 20,10D,26 42,104,13 39,111,11 30,10C,1187 44,10D,26 36,20,93,-27,-8 0,21,-1,0,0 20,104,13 32,111,11 34,10C,1187 46,10D,26 51,104,13 21,20,102,-32,-16 0,21,-1,0,0 17,10,7165980 0,D,25 0,A,-3379730 0,B,15128544 0,C,12 66,111,11 28,10C,1175 45,10D,25 46,20,97,-41,-15 0,21,-1,0,0 21,104,13 27,111,11 30,10C,1152 46,10D,25 46,104,13 30,111,12 21,20,107,-28,-16 0,21,-1,0,0 21,10C,1066 41,10D,25 44,104,16 32,111,11 38,10C,1031 34,20,95,-42,-10 0,21,-1,1,0 22,10D,25 55,104,17 29,111,12 36,10C,957 35,10,7170060 0,D,22 0,A,-3379725 0,B,15128545 0,C,12 40,10D,25 34,20,95,-37,-8 0,21,0,0,0 20,104,20 30,111,11 32,10C,914 43,10D,22 44,104,20 34,111,11 21,20,105,-34,-8 0,21,-1,0,0 20,10C,875 42,10D,22 45,104,20 30,111,11 29,10C,851 34,20,92,-33,-8 0,21,0,0,0 19,10D,22 44,104,20 34,111,11 31,10C,835 42,10D,22 36,20,73,-54,5 0,21,0,0,1 19,104,20 30,111,11 31,10C,808 47,10D,18 44,104,22 31,20,101,-41,-12 0,21,0,0,1 19,111,11 29,10C,781 43,10D,18 48,104,23 34,111,11 29,10C,769 45,20,96,-44,-7 0,21,-1,0,-1 25,10D,18 44,104,23 33,111,11 34,10C,789 45,10D,18 35,20,103,-30,-14 0,21,-1,0,-2 21,104,23 29,111,11 29,10C,789 46,10D,14 44,104,23 28,111,11 22,20,93,-48,-12 0,21,-1,0,-1 17,10,7170220 0,D,13 0,A,-3379718 0,B,15128547 0,C,12 66,10C,804 44,10D,14 42,104,22 30,111,11 22,20,93,-48,-15 0,21,-1,0,0 20,10C,808 44,10D,14 44,104,22 40,111,12 31,10C,804 34,20,94,-41,-12 0,21,-1,0,0 20,10D,14 46,104,23 33,111,12 32,10C,796 43,10D,10 36,20,102,-40,-12 0,21,-1,0,0 17,10,7170280 0,D,13 0,A,-3379716 0,B,15128547 0,C,12 66,104,25 27,111,12 30,10C,792 35,10,7170300 0,D,8 0,A,-3379716 0,B,15128547 0,C,12 40,10D,10 43,20,96,-47,-7 0,21,-1,0,0 19,104,26 30,111,12 32,10C,761 35,10,7170320 0,D,6 0,A,-3379716 0,B,15128547 0,C,12 40,10D,10 46,104,29 22,20,95,-42,-10 0,21,-1,0,0 19,111,12 29,10C,722 53,10D,10 44,104,30 34,111,12 22,20,99,-39,-11 0,21,-1,0,0 19,10C,671 46,10,7170360 0,D,3 0,A,-3379715 0,B,15128548 0,C,12 40,10D,5 46,104,31 30,111,12 21,20,99,-41,-10 0,21,-1,0,0 20,10C,675 43,10D,5 37,10,7170380 0,D,1 0,A,-3379715 0,B,15128548 0,C,12 44,104,31 28,111,12 30,20,98,-31,-11 0,21,-1,0,0 18,10C,695 43,10D,5 36,10,7170400 0,D,0 0,A,-3379715 0,B,15128547 0,C,12 40,104,30 40,111,11 26,20,97,-19,-9 0,21,-1,0,0 18,10C,710 40,10D,5 36,10,7170420 0,D,0 0,A,-3379715 0,B,15128548 0,C,12 41,104,29 28,111,11 32,10C,695 34,20,101,-22,-7 0,21,-1,0,0 19,10D,1 35,10,7170440 0,D,0 0,A,-3379715 0,B,15128548 0,C,12 43,104,29 27,111,11 30,10C,660 45,10D,1 44,20,104,-22,-10 0,21,-1,0,0 20,104,28 32,111,11 30,10C,648 46,10D,1 41,104,28 32,20,102,-21,-11 0,21,-1,0,0 20,111,11 32,10C,644 42,10D,1 44,104,28 31,111,11 30,10C,632 34,20,102,-21,-10 0,21,-1,0,0 21,10D,0 46,104,28 29,111,11 31,10C,632 43,10D,0 36,20,100,-22,-11 0,21,-1,0,0 20,104,28 28,111,11 42,10C,621 43,10D,0 45,104,29 22,20,99,-24,-12 0,21,-1,0,0 19,111,11 32,10C,617 45,10D,0 42,104,28 43,111,11 21,20,103,-21,-12 0,21,-1,0,0 20,10C,640 45,10D,0 46,104,29 34,111,11 21,10,7170580 0,D,0 0,A,-3379715 0,B,15128548 0,C,12 40,10C,640 32,20,101,-22,-12 0,21,-1,0,0 20,10D,0 46,104,28 31,111,11 24,10,7170600 0,D,0 0,A,-3379715 0,B,15128548 0,C,12 41,10C,644 40,20,99,-23,-11 0,21,-1,0,0 20,10D,0 41,104,27 32,111,11 31,10C,640 43,10D,0 34,20,100,-21,-12 0,21,-1,0,0 21,104,27 31,111,11 30,10C,648 43,10D,0 57,104,28 21,20,102,-22,-11 0,21,-1,0,0 20,111,11 30,10C,648 41,10D,0 37,10,7170660 0,D,0 0,A,-3379714 0,B,15128548 0,C,12 41,104,28 33,20,100,-23,-10 0,21,-1,0,0 19,111,11 31,10C,636 45,10D,0 37,10,7170680 0,D,0 0,A,-3379714 0,B,15128548 0,C,12 40,104,28 28,111,11 30,20,101,-22,-11 0,21,-1,0,0 24,10C,628 43,10D,0 36,10,7170700 0,D,0 0,A,-3379714 0,B,15128548 0,C,12 41,104,28 30,111,11 27,20,100,-23,-12 0,21,-1,0,0 18,10C,632 42,10D,0 38,10,7170720 0,D,0 0,A,-3379714 0,B,15128548 0,C,12 40,104,27 32,111,11 30,20,100,-24,-9 0,21,-1,0,0 18,10C,644 39,10D,0 38,10,7170740 0,D,0 0,A,-3379714 0,B,15128548 0,C,12 40,104,27 28,111,11 29,10C,632 34,20,100,-22,-12 0,21,-1,0,0 19,10D,0 42,104,27 24,10,7170760 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,111,11 37,10C,636 38,20,100,-24,-11 0,21,-1,0,0 18,10D,0 60,104,27 33,111,11 30,10C,636 45,10D,0 35,20,101,-23,-11 0,21,-1,0,0 19,104,26 21,10,7170800 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 56,111,11 28,10C,621 45,10D,0 36,20,99,-24,-12 0,21,-1,0,0 20,104,27 28,111,11 34,10C,617 43,10D,0 43,104,27 31,111,11 22,20,101,-22,-10 0,21,-1,0,0 20,10C,621 44,10D,0 44,104,26 30,111,11 31,10C,628 34,20,100,-22,-11 0,21,-1,0,0 21,10D,0 42,104,26 34,111,11 38,10C,632 44,10D,0 36,20,100,-22,-14 0,21,-1,0,0 21,104,26 43,111,11 30,10C,621 45,10D,0 45,104,26 21,20,101,-22,-11 0,21,0,0,0 25,111,11 32,10C,609 42,10D,0 46,104,26 31,111,11 20,10,7170920 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,10C,617 32,20,101,-22,-13 0,21,-1,0,0 20,10D,0 45,104,26 28,111,11 24,10,7170940 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 40,10C,625 43,10D,0 36,20,100,-24,-12 0,21,-1,0,0 20,104,25 29,111,11 31,10C,609 43,10D,0 44,104,25 30,111,11 31,20,100,-23,-10 0,21,-1,0,0 18,10C,605 41,10D,0 44,104,26 43,111,11 30,10C,613 33,20,101,-21,-10 0,21,-1,0,0 19,10D,0 35,10,7171000 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 45,104,26 28,111,11 29,10C,617 44,10D,0 36,20,100,-23,-10 0,21,-1,0,0 22,104,25 26,111,11 34,10C,609 43,10D,0 45,104,26 31,20,102,-22,-10 0,21,-1,0,0 21,111,11 28,10C,605 46,10D,0 44,104,26 28,111,11 26,10,7171060 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,10C,609 32,20,105,-16,-13 0,21,-1,0,0 21,10D,0 41,104,26 40,111,11 24,10,7171080 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,10C,617 37,20,101,-21,-12 0,21,-1,0,0 19,10D,0 42,104,25 32,111,11 30,10C,605 35,10,7171100 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 44,10D,0 33,20,103,-18,-13 0,21,-1,0,0 21,104,26 25,111,11 33,10C,597 35,10,7171120 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,10D,0 42,104,28 20,20,100,-20,-11 0,21,-1,0,0 21,111,12 29,10C,628 52,10D,0 44,104,29 30,111,15 25,20,100,-19,-10 0,21,-1,0,0 19,10C,675 42,10D,0 37,10,7171160 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,104,40 31,111,13 30,20,101,-18,-11 0,21,-1,0,0 19,10C,773 48,10D,0 37,10,7171180 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 41,104,40 27,111,13 31,20,104,-14,-11 0,21,-1,0,0 18,10C,902 48,10D,0 36,10,7171200 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 40,104,35 28,111,15 29,10C,949 34,20,106,-10,-13 0,21,-1,0,0 18,10D,0 43,104,41 30,111,15 34,10C,1011 43,10D,0 47,20,102,-14,-10 0,21,0,0,0 21,104,42 19,10,7171240 0,D,0 0,A,-3379714 0,B,15128548 0,C,16 55,111,15 32,10C,1109 46,10D,0 35,20,104,-7,-5 0,21,0,0,0 21,104,43 28,111,17 30,10C,1171 43,10D,1 47,104,45 31,20,105,-3,-15 0,21,-1,0,-1 20,111,16 32,10C,1253 46,10D,1 45,104,45 29,111,17 31,10C,1304 34,20,104,-12,-15 0,21,-1,0,-1 18,10,7171300 0,D,3 0,A,-3379713 0,B,15128548 0,C,16 66,10D,1 42,104,42 31,111,14 26,10,7171320 0,D,5 0,A,-3379713 0,B,15128548 0,C,16 41,10C,1316 33,20,106,-10,-15 0,21,-1,0,0 20,10D,1 54,104,31 32,111,14 33,10C,1199 45,10D,4 35,20,98,-34,-9 0,21,-1,0,0 20,104,30 31,111,14 27,10C,1105 48,10D,4 37,10,7171360 0,D,5 0,A,-3379712 0,B,15128548 0,C,18 41,104,30 19,20,97,-54,-8 0,21,0,0,0 20,111,13 26,10C,964 52,10D,4 44,104,31 34,111,12 26,20,88,-65,-10 0,21,-1,0,-1 20,10C,894 39,10D,4 54,104,29 30,111,11 33,10C,859 34,20,96,-39,-9 0,21,-1,0,0 24,10D,3 45,104,25 21,10,7171420 0,D,1 0,A,-3379711 0,B,15128549 0,C,18 41,111,12 28,10C,777 43,10D,3 35,20,98,-19,-14 0,21,-1,0,0 19,104,27 21,10,7171440 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 55,111,12 32,10C,726 45,10D,3 35,20,104,-19,-9 0,21,-1,0,0 20,104,26 20,10,7171460 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 56,111,11 28,10C,707 46,10D,3 34,20,101,-23,-11 0,21,-1,0,0 21,104,25 29,10,7171480 0,D,0 0,A,-3379711 0,B,15128549 0,C,18 48,111,11 27,10C,683 45,10D,0 36,20,99,-22,-11 0,21,-1,0,0 25,104,26 28,111,11 30,10C,687 46,10D,0 43,104,26 29,20,101,-20,-12 0,21,-1,0,0 17,10,7171520 0,D,0 0,A,-3379711 0,B,15128549 0,C,18 67,111,11 40,10C,679 42,10D,0 35,20,102,-22,-13 0,21,-1,0,0 21,104,26 31,111,11 34,10C,671 46,10D,0 43,104,26 25,20,102,-19,-10 0,21,-1,0,0 17,10,7171560 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 67,111,11 27,10C,667 46,10D,0 42,104,26 22,20,101,-21,-12 0,21,-1,0,0 17,10,7171580 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 65,111,11 42,10C,667 44,10D,0 36,20,100,-22,-12 0,21,-1,0,0 25,104,26 32,111,11 33,10C,652 54,10D,0 38,10,7171620 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 41,104,27 18,20,102,-19,-10 0,21,-1,0,0 20,111,11 28,10C,656 46,10D,0 43,104,27 23,10,7171640 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 40,111,11 19,20,101,-22,-10 0,21,-1,0,0 20,10C,671 39,10D,0 47,104,27 30,111,11 34,10C,667 34,20,100,-21,-10 0,21,-1,0,0 20,10D,0 45,104,27 32,111,11 34,10C,648 43,10D,0 45,20,101,-21,-12 0,21,-1,0,0 19,104,27 36,111,11 33,10C,656 35,10,7171700 0,D,0 0,A,-3379711 0,B,15128548 0,C,18 45,10D,0 34,20,101,-21,-12 0,21,-1,0,0 19,104,27 30,111,11 32,10C,648 43,10D,0 44,104,26 29,111,11 22,20,101,-21,-11 0,21,-1,0,0 20,10C,648 38,10D,0 45,104,26 30,111,11 33,10C,636 35,20,102,-20,-11 0,21,-1,0,0 19,10D,0 43,104,26 31,111,11 23,10,7171760 0,D,0 0,A,-3379711 0,B,15128548 0,C,21 40,10C,632 46,20,100,-22,-13 0,21,-1,0,0 20,10D,0 40,104,26 30,111,11 24,10,7171780 0,D,0 0,A,-3379711 0,B,15128548 0,C,21 40,10C,640 40,10D,0 36,20,101,-21,-12 0,21,-1,0,0 19,104,26 38,111,11 31,10C,636 42,10D,0 48,104,26 22,20,102,-20,-12 0,21,-1,0,0 19,111,11 24,10,7171820 0,D,0 0,A,-3379711 0,B,15128548 0,C,21 54,10C,621 44,10D,0 44,104,26 20,20,101,-20,-11 0,21,0,0,0 19,111,11 32,10C,613 43,10D,0 48,104,26 33,111,11 25,20,102,-21,-11 0,21,-1,0,0 18,10C,621 41,10D,0 44,104,26 30,111,11 34,10C,621 34,20,101,-20,-10 0,21,-1,0,0 18,10D,0 47,104,25 23,10,7171880 0,D,0 0,A,-3379711 0,B,15128548 0,C,22 40,111,11 31,10C,613 42,20,101,-20,-12 0,21,-1,0,0 19,10D,0 55,104,26 34,111,11 42,10C,609 42,10D,0 35,20,101,-20,-14 0,21,-1,0,0 24,104,26 33,111,11 34,10C,609 46,10D,0 43,104,25 21,20,102,-20,-12 0,21,-1,0,0 18,10,7171940 0,D,0 0,A,-3379711 0,B,15128548 0,C,22 65,111,11 32,10C,621 42,10D,0 46,104,25 22,20,101,-21,-13 0,21,-1,0,0 17,10,7171960 0,D,0 0,A,-3379711 0,B,15128548 0,C,22 66,111,11 70,10C,601 36,10,7171980 0,D,0 0,A,-3379711 0,B,15128548 0,C,22 41,10D,0 34,20,101,-21,-12 0,21,-1,0,0 20,104,25 31,111,11 33,10C,609 45,10D,0 45,10,7172000 0,D,0 0,A,-3379711 0,B,15128548 0,C,22 41,104,25 19,20,102,-22,-10 0,21,0,0,0 24,111,11 31,10C,617 43,10,7172020 0,D,0 0,A,-3379711 0,B,15128549 0,C,22 41,10D,0 42,104,27 20,20,100,-19,-13 0,21,-1,0,0 20,111,18 30,10C,621 43,10D,0 44,10,7172040 0,D,0 0,A,-3379710 0,B,15128549 0,C,22 41,104,58 24,20,96,-20,-8 0,21,-1,0,0 19,111,17 27,10C,957 46,10D,0 36,10,7172060 0,D,0 0,A,-3379710 0,B,15128549 0,C,22 41,104,55 27,111,14 22,20,110,-4,-7 0,21,-1,0,0 19,10C,1363 39,10D,0 37,10,7172080 0,D,0 0,A,-3379710 0,B,15128549 0,C,22 41,104,36 28,111,14 29,10C,1375 34,20,103,-8,-12 0,21,-1,0,0 19,10D,0 47,104,30 39,111,14 33,10C,1199 42,10D,0 36,20,102,-12,-15 0,21,-1,0,0 21,104,30 19,10,7172120 0,D,2 0,A,-3379710 0,B,15128549 0,C,22 55,111,16 32,10C,1023 42,10D,1 35,20,103,-16,-10 0,21,-1,0,0 20,104,48 20,10,7172140 0,D,3 0,A,-3379710 0,B,15128549 0,C,22 56,111,19 41,10C,1128 42,10D,1 35,20,108,-7,-8 0,21,-1,0,0 22,104,60 27,111,19 34,10C,1437 43,10D,1 47,104,56 29,20,111,6,-12 0,21,-1,0,-1 16,10,7172180 0,D,4 0,A,-3379710 0,B,15128549 0,C,22 67,111,19 31,10C,1621 43,10D,3 48,104,52 21,20,99,6,-9 0,21,-1,0,0 20,10,7172200 0,D,5 0,A,-3379709 0,B,15128549 0,C,22 63,111,18 41,10C,1582 45,10D,3 35,20,95,0,-6 0,21,-1,0,-1 17,10,7172220 0,D,6 0,A,-3379709 0,B,15128549 0,C,22 66,104,41 32,111,16 31,10C,1457 43,10D,3 36,20,105,-12,-9 0,21,-1,0,0 21,104,40 27,111,16 30,10C,1410 45,10D,6 45,104,40 30,111,16 21,20,93,-15,-23 0,21,-1,-1,0 21,10C,1406 44,10D,6 43,104,40 26,10,7172280 0,D,9 0,A,-3379708 0,B,15128549 0,C,22 41,111,16 28,10C,1421 34,20,100,-15,-16 0,21,-1,0,1 20,10D,6 41,104,38 33,111,16 23,10,7172300 0,D,10 0,A,-3379707 0,B,15128549 0,C,22 44,10C,1437 41,10D,6 44,20,100,-16,-13 0,21,-1,0,1 20,104,38 33,10,7172320 0,D,10 0,A,-3379707 0,B,15128549 0,C,22 44,111,16 27,10C,1457 48,10D,9 34,20,96,-15,-2 0,21,0,0,-2 20,104,37 27,111,16 22,10,7172340 0,D,10 0,A,-3379706 0,B,15128549 0,C,22 41,10C,1472 45,10D,9 43,104,36 34,20,113,0,-9 0,21,0,0,3 20,111,16 32,10C,1464 43,10D,9 48,104,37 32,111,16 29,20,93,-30,-5 0,21,0,-1,0 17,10,7172380 0,D,12 0,A,-3379705 0,B,15128550 0,C,22 66,10C,1457 40,10D,9 45,104,38 32,20,97,-19,-5 0,21,2,-1,1 17,10,7172400 0,D,13 0,A,-3379704 0,B,15128550 0,C,22 66,111,16 29,10C,1484 50,10D,11 45,20,93,-19,3 0,21,5,0,-1 21,104,32 27,111,14 34,10C,1406 43,10D,11 43,104,28 34,111,14 21,20,100,-17,4 0,21,5,-1,-4 16,10,7172440 0,D,14 0,A,-3379703 0,B,15128550 0,C,22 67,10C,1343 43,10D,11 44,104,26 23,10,7172460 0,D,15 0,A,-3379702 0,B,15128550 0,C,22 40,111,16 19,20,102,-26,2 0,21,7,-3,0 20,10C,1289 44,10D,13 46,104,29 31,111,14 33,10C,1316 35,20,103,-22,9 0,21,7,-2,-1 20,10D,13 46,104,24 36,111,12 33,10C,1238 37,10,7172500 0,D,15 0,A,-3379700 0,B,15128550 0,C,28 40,10D,13 34,20,105,-27,13 0,21,10,-2,-1 19,104,24 30,111,12 36,10,7172520 0,D,14 0,A,-3379700 0,B,15128550 0,C,28 42,10C,1175 40,10D,13 36,20,100,-26,1 0,21,10,-4,-1 19,104,21 40,111,12 23,10,7172540 0,D,14 0,A,-3379699 0,B,15128550 0,C,28 41,10C,1140 44,10D,14 35,20,101,-31,10 0,21,11,-2,-2 20,104,20 30,111,12 33,10C,1093 37,10,7172560 0,D,14 0,A,-3379698 0,B,15128549 0,C,27 40,10D,14 43,104,20 21,20,102,-26,6 0,21,11,-2,-1 18,111,12 37,10C,1039 43,10D,14 45,104,20 30,111,11 27,20,92,-31,2 0,21,10,-2,0 19,10C,1011 45,10D,14 38,10,7172600 0,D,14 0,A,-3379697 0,B,15128548 0,C,27 41,104,18 30,111,12 29,20,105,-27,0 0,21,10,-2,0 19,10C,949 54,10D,13 44,104,20 30,111,11 29,10C,910 34,20,104,-25,1 0,21,8,-1,0 18,10D,13 36,10,7172640 0,D,13 0,A,-3379696 0,B,15128547 0,C,27 42,104,20 32,111,11 33,10C,867 41,20,106,-30,1 0,21,8,0,0 19,10D,13 35,10,7172660 0,D,13 0,A,-3379696 0,B,15128547 0,C,27 43,104,20 27,111,11 29,10C,847 45,10D,13 36,20,105,-33,7 0,21,7,-1,0 25,104,20 27,111,11 34,10C,820 42,10D,12 46,104,21 28,20,101,-19,-5 0,21,5,-2,-2 19,111,11 28,10C,804 47,10D,12 52,104,21 31,111,11 31,20,99,-27,-12 0,21,5,0,0 20,10C,796 44,10D,12 61,104,21 28,111,11 33,10C,796 34,20,96,-26,3 0,21,4,0,0 15,10,7172740 0,D,11 0,A,-3379694 0,B,15128544 0,C,27 68,10D,12 46,104,22 29,111,11 22,10,7172760 0,D,11 0,A,-3379694 0,B,15128544 0,C,27 41,10C,804 40,20,100,-27,-9 0,21,2,-2,0 20,10D,11 42,104,22 31,111,11 24,10,7172780 0,D,10 0,A,-3379694 0,B,15128543 0,C,27 45,10C,808 41,10D,11 36,20,106,-29,-9 0,21,3,0,0 19,104,22 29,111,11 31,10C,808 43,10D,11 45,104,22 32,111,11 22,20,94,-30,-1 0,21,2,0,0 18,10C,804 44,10D,11 56,104,22 29,111,11 30,10C,789 33,20,100,-26,-12 0,21,2,0,0 19,10D,9 43,104,22 30,111,11 30,10C,785 46,10D,9 35,20,114,-16,0 0,21,2,0,0 18,104,22 33,111,11 22,10,7172860 0,D,10 0,A,-3379693 0,B,15128541 0,C,29 41,10C,777 44,10D,9 43,20,88,-31,-10 0,21,2,0,-1 19,104,22 27,111,11 31,10C,781 46,10D,9 53,104,22 25,20,97,-30,-4 0,21,2,0,0 19,111,11 25,10,7172900 0,D,8 0,A,-3379692 0,B,15128540 0,C,29 52,10C,761 40,10D,8 43,104,22 22,20,98,-25,-3 0,21,1,-1,0 18,111,11 22,10,7172920 0,D,7 0,A,-3379692 0,B,15128540 0,C,29 55,10C,753 50,10D,8 44,104,23 21,20,100,-23,-9 0,21,0,0,0 20,111,12 20,10,7172940 0,D,7 0,A,-3379692 0,B,15128539 0,C,29 55,10C,753 44,10D,8 44,104,26 20,20,105,-25,-7 0,21,1,0,0 21,111,12 19,10,7172960 0,D,7 0,A,-3379692 0,B,15128538 0,C,29 56,10C,777 41,10D,7 43,104,27 21,20,99,-22,-4 0,21,0,-1,0 21,111,12 19,10,7172980 0,D,6 0,A,-3379692 0,B,15128538 0,C,29 55,10C,796 45,10D,7 43,104,27 22,20,97,-27,-7 0,21,0,0,0 20,111,12 28,10C,832 47,10D,7 44,104,27 29,111,12 32,10C,828 33,20,108,-22,-3 0,21,0,0,0 21,10D,7 45,104,27 39,111,12 33,10C,816 42,10D,5 35,20,97,-26,-10 0,21,0,0,0 16,10,7173040 0,D,6 0,A,-3379692 0,B,15128536 0,C,29 67,104,27 28,111,12 32,10C,792 43,10D,5 35,20,105,-23,-6 0,21,0,0,0 20,104,26 31,111,12 29,10C,781 45,10D,5 45,104,26 28,111,12 22,20,102,-29,-6 0,21,0,0,0 20,10C,773 64,10D,5 44,104,26 30,111,11 30,10C,750 47,20,102,-29,-9 0,21,0,0,0 20,10D,4 43,104,26 30,111,11 31,10C,710 46,10D,4 36,20,98,-32,-5 0,21,0,0,0 20,104,26 37,111,11 31,10C,679 43,10D,4 48,104,26 21,20,102,-31,-8 0,21,-1,0,0 20,111,11 29,10C,667 43,10D,4 45,104,26 30,111,11 33,10C,640 33,20,103,-29,-7 0,21,-1,0,0 20,10D,3 36,10,7173180 0,D,2 0,A,-3379692 0,B,15128534 0,C,29 43,104,27 30,111,11 30,10C,621 42,20,99,-32,-6 0,21,-1,0,0 18,10D,3 46,104,27 35,111,11 30,10C,613 46,10D,3 35,20,100,-30,-7 0,21,0,0,0 18,104,28 29,111,11 31,10C,640 46,10D,3 48,104,28 28,20,99,-29,-6 0,21,-1,0,0 18,111,11 42,10C,664 51,10D,1 48,104,27 32,111,11 22,20,98,-20,-7 0,21,-1,0,0 19,10C,667 33,10,7173260 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 44,10D,1 42,104,27 29,111,11 31,10C,656 34,20,101,-19,-7 0,21,-1,0,0 21,10D,1 46,104,27 29,111,11 30,10C,660 47,10D,1 36,20,103,-22,-7 0,21,0,0,0 20,104,27 28,111,11 30,10C,660 45,10D,1 46,104,27 23,10,7173320 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 40,111,11 20,20,100,-23,-6 0,21,-1,0,0 19,10C,652 40,10D,0 46,104,27 23,10,7173340 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 45,111,11 29,20,102,-20,-7 0,21,-1,0,0 20,10C,640 43,10D,0 46,104,28 23,10,7173360 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 41,111,11 28,20,101,-22,-6 0,21,-1,0,0 20,10C,648 44,10D,0 42,104,27 26,10,7173380 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 41,111,11 28,10C,656 34,20,100,-21,-5 0,21,-1,0,0 19,10D,0 41,104,27 34,111,11 21,10,7173400 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 40,10C,644 41,10D,0 35,20,101,-20,-5 0,21,-1,0,0 20,104,27 29,111,11 24,10,7173420 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 45,10C,625 41,10D,0 43,20,100,-21,-7 0,21,-1,0,0 18,104,27 30,111,11 36,10,7173440 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 40,10C,636 58,10D,0 35,20,102,-20,-6 0,21,-1,0,0 19,104,26 28,10,7173460 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 49,111,11 41,10C,628 42,10D,0 35,20,101,-22,-8 0,21,-1,0,0 18,104,26 22,10,7173480 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 55,111,11 33,10C,617 42,10D,0 35,20,101,-21,-8 0,21,-1,0,0 18,104,26 22,10,7173500 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 55,111,11 37,10C,617 45,10D,0 35,20,102,-20,-6 0,21,-1,0,0 17,10,7173520 0,D,0 0,A,-3379692 0,B,15128534 0,C,29 66,104,27 32,111,11 22,10,7173520 0,D,0 0,A,3379692 0,B,31666 0,C,14 36,10C,625 32,20,101,-20,-6 0,21,-1,0,0 20,10D,0 43,104,26 30,111,11 42,10C,617 45,10D,0 35,20,101,-21,-7 0,21,-1,0,0 20,104,26 28,111,11 29,10C,613 47,10D,0 46,104,26 26,10,7173580 0,D,0 0,A,-3379692 0,B,15128534 0,C,14 41,111,11 20,20,101,-21,-7 0,21,-1,0,0 19,10C,621 41,10D,0 46,104,26 30,111,11 21,10,7173600 0,D,0 0,A,-3379692 0,B,15128534 0,C,14 45,10C,617 32,20,103,-20,-6 0,21,-1,0,0 21,10D,0 41,104,26 31,111,11 33,10,7173620 0,D,0 0,A,-3379692 0,B,15128534 0,C,14 40,10C,605 37,20,102,-21,-6 0,21,-1,0,0 19,10D,0 45,104,26 29,111,11 23,10,7173640 0,D,0 0,A,-3379692 0,B,15128534 0,C,14 40,10C,609 44,10D,0 45,20,104,-19,-7 0,21,-1,0,0 19,104,26 30,111,12 22,10,7173660 0,D,0 0,A,-3379692 0,B,15128534 0,C,14 40,10C,601 41,10D,0 47,104,31 21,20,98,-21,-9 0,21,-1,0,0 18,111,11 32,10C,597 43,10D,0 44,104,32 30,111,12 31,10C,679 34,20,100,-22,-9 0,21,-1,0,0 25,10D,0 46,104,30 30,111,11 29,10C,742 45,10D,0 35,20,100,-21,-9 0,21,-1,0,0 21,104,27 27,111,11 34,10C,714 42,10D,0 46,104,25 31,111,11 20,20,101,-22,-6 0,21,-1,0,0 22,10C,660 43,10D,0 44,104,25 41,111,11 31,10C,632 32,20,101,-20,-6 0,21,-1,0,0 22,10D,0 45,104,25 33,111,11 31,10C,625 43,10D,0 36,20,100,-22,-7 0,21,-1,0,0 21,104,26 31,111,11 33,10C,617 57,10D,0 45,104,26 32,20,103,-21,-6 0,21,-1,0,0 21,111,11 31,10C,621 45,10D,0 45,104,26 29,111,11 30,10C,621 34,20,101,-20,-8 0,21,0,0,0 20,10D,0 45,104,26 32,10,7173840 0,D,0 0,A,-3379693 0,B,15128534 0,C,14 40,111,11 28,10C,617 35,20,103,-20,-6 0,21,-1,0,0 19,10D,0 41,104,25 39,111,11 21,10,7173860 0,D,0 0,A,-3379693 0,B,15128534 0,C,14 41,10C,617 40,10D,0 35,20,101,-20,-8 0,21,-1,0,0 20,104,26 29,111,11 24,10,7173880 0,D,0 0,A,-3379693 0,B,15128534 0,C,14 40,10C,621 40,10D,0 47,104,26 21,20,99,-19,-7 0,21,-1,0,0 19,111,11 24,10,7173900 0,D,0 0,A,-3379693 0,B,15128534 0,C,14 53,10C,617 40,10D,0 48,104,26 20,20,101,-22,-9 0,21,-1,0,0 18,111,11 97,10C,617 42,10D,0 44,20,101,-21,-7 0,21,-1,0,0 18,104,26 29,111,11 31,10C,613 46,10D,0 44,104,26 27,111,11 22,20,101,-20,-6 0,21,-1,0,0 17,10,7173960 0,D,0 0,A,-3379693 0,B,15128534 0,C,14 66,10C,617 51,10D,0 47,104,25 31,20,100,-22,-8 0,21,-1,0,0 21,111,11 28,10C,617 42,10D,0 48,104,25 28,111,11 32,10C,613 34,20,102,-21,-6 0,21,-1,0,0 17,10,7174000 0,D,0 0,A,-3379693 0,B,15128534 0,C,14 66,10D,0 41,104,25 32,111,11 35,10C,605 34,20,101,-22,-7 0,21,-1,0,0 17,10,7174020 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 70,10D,0 41,104,25 30,111,11 31,10C,605 34,20,101,-19,-5 0,21,-1,0,0 20,10D,0 42,104,25 28,111,11 33,10C,609 34,10,7174060 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 41,10D,0 43,20,101,-21,-7 0,21,-1,0,0 20,104,25 30,111,11 29,10C,609 34,10,7174080 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 41,10D,0 46,104,25 22,20,102,-21,-8 0,21,-1,0,0 19,111,11 29,10C,609 44,10D,0 47,104,25 34,111,11 29,10C,613 34,20,101,-20,-8 0,21,-1,0,0 19,10D,0 35,10,7174120 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 42,104,25 32,111,11 34,10C,613 41,20,100,-21,-6 0,21,-1,0,0 20,10D,0 34,10,7174140 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 43,104,25 31,111,11 31,10C,609 42,20,102,-20,-6 0,21,-1,0,0 19,10D,0 34,10,7174160 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 44,104,25 40,111,11 30,10C,609 33,20,101,-22,-7 0,21,-1,0,0 21,10D,0 45,10,7174180 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 41,104,25 32,111,11 32,10C,609 33,20,101,-21,-7 0,21,-1,0,0 21,10D,0 33,10,7174200 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 43,104,25 32,111,11 33,10C,613 41,20,103,-21,-5 0,21,-1,0,0 24,10D,0 43,104,25 30,111,11 34,10C,605 41,10D,0 44,20,100,-21,-8 0,21,0,0,0 20,104,25 28,111,11 30,10C,609 46,10D,0 43,104,25 30,111,11 20,20,101,-21,-6 0,21,-1,0,0 16,10,7174260 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 68,10C,605 50,10D,0 47,104,25 22,20,102,-20,-9 0,21,-1,0,0 15,10,7174280 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 68,111,11 31,10C,605 44,10D,0 45,104,25 21,20,100,-21,-9 0,21,-1,0,0 20,111,11 28,10C,605 46,10D,0 42,104,25 24,10,7174320 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 41,111,11 23,20,102,-20,-8 0,21,-1,0,0 20,10C,601 44,10D,0 46,104,25 23,10,7174340 0,D,0 0,A,-3379693 0,B,15128534 0,C,11 41,111,11 28,20,103,-20,-6 0,21,-1,0,0 20,10C,601 40,10D,0 56,104,25 30,111,11 24,10,7174360 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 39,10C,597 32,20,101,-22,-6 0,21,-1,0,0 20,10D,0 49,104,25 31,111,11 31,10C,601 42,10D,0 36,20,103,-21,-7 0,21,-1,0,0 20,104,25 29,111,10 32,10C,597 35,10,7174400 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 39,10D,0 46,104,25 22,20,99,-22,-8 0,21,-1,0,0 19,111,11 30,10C,593 41,10,7174420 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 39,10D,0 45,104,25 26,20,100,-20,-7 0,21,-1,0,0 19,111,11 30,10C,601 35,10,7174440 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 39,10D,0 46,104,25 33,111,11 21,20,101,-20,-8 0,21,-1,0,0 18,10C,601 41,10D,0 45,104,25 30,111,11 30,10C,601 36,20,98,-20,-9 0,21,-1,0,0 19,10D,0 56,104,25 34,111,11 30,10C,601 45,10D,0 36,20,101,-19,-6 0,21,0,0,0 20,104,26 29,111,12 29,10C,621 52,10D,0 43,104,28 28,20,102,-18,-7 0,21,-1,0,0 18,10,7174520 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 64,111,12 32,10C,687 42,10D,0 46,104,29 21,20,104,-17,-6 0,21,-1,0,0 18,10,7174540 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 64,111,12 27,10C,707 54,10D,0 41,20,99,-19,-9 0,21,0,0,0 21,104,29 27,111,12 34,10C,714 42,10D,0 46,104,29 23,10,7174580 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 41,111,12 27,20,102,-18,-7 0,21,0,0,0 21,10C,703 43,10D,0 46,104,29 34,111,16 23,10,7174600 0,D,0 0,A,-3379693 0,B,15128534 0,C,9 39,10C,714 32,20,99,-19,-6 0,21,0,0,0 19,10D,0 44,104,44 31,111,15 31,10C,824 50,10D,0 36,20,109,-6,-7 0,21,-1,0,0 23,104,43 30,111,14 27,10,7174640 0,D,1 0,A,-3379693 0,B,15128534 0,C,9 39,10C,1019 45,10D,0 36,20,103,-12,-5 0,21,0,0,0 19,104,37 29,111,14 30,10C,1074 35,10,7174660 0,D,1 0,A,-3379693 0,B,15128533 0,C,9 39,10D,1 42,104,37 21,20,101,-16,-14 0,21,-1,0,0 20,111,15 29,10C,1066 44,10D,1 44,104,40 43,111,16 20,20,103,-11,-4 0,21,-1,0,0 21,10C,1078 43,10D,1 37,10,7174700 0,D,3 0,A,-3379693 0,B,15128533 0,C,9 39,104,44 27,111,17 30,10C,1152 42,20,106,-7,-8 0,21,0,0,0 19,10D,1 36,10,7174720 0,D,4 0,A,-3379693 0,B,15128533 0,C,9 43,104,50 32,111,18 34,10C,1312 37,20,98,-13,-13 0,21,-1,0,0 19,10D,3 35,10,7174740 0,D,4 0,A,-3379693 0,B,15128533 0,C,9 42,104,52 28,111,18 29,10C,1429 45,10D,3 36,20,105,-8,-11 0,21,-1,0,0 21,104,50 27,111,18 30,10C,1507 47,10D,3 42,104,47 31,111,18 21,20,110,-7,-3 0,21,-1,0,0 16,10,7174780 0,D,6 0,A,-3379693 0,B,15128532 0,C,9 66,10C,1539 53,10D,3 45,104,47 21,20,105,-5,-8 0,21,-1,0,0 15,10,7174800 0,D,7 0,A,-3379692 0,B,15128531 0,C,9 67,111,18 32,10C,1585 44,10D,6 42,20,109,-7,-5 0,21,-1,-1,1 17,104,45 32,111,16 34,10C,1597 46,10D,6 44,104,36 21,10,7174840 0,D,9 0,A,-3379692 0,B,15128530 0,C,9 40,111,14 19,20,88,-16,-5 0,21,0,0,0 20,10C,1484 44,10D,6 46,104,29 23,10,7174860 0,D,10 0,A,-3379692 0,B,15128530 0,C,9 39,111,14 27,10C,1300 43,20,95,-19,-8 0,21,-1,0,0 21,10D,9 40,104,27 23,10,7174880 0,D,11 0,A,-3379692 0,B,15128529 0,C,9 40,111,14 28,10C,1226 46,10D,9 44,20,103,-21,-12 0,21,0,0,0 19,104,26 29,111,13 31,10C,1199 46,10D,9 45,104,24 28,111,13 33,20,99,-26,-5 0,21,0,0,0 25,10C,1152 45,10D,9 44,104,24 29,111,13 31,10C,1097 35,20,104,-24,-6 0,21,0,0,-1 21,10D,10 42,104,23 29,111,12 30,10C,1093 45,10D,10 36,20,99,-23,-7 0,21,0,0,0 20,104,21 32,111,12 34,10C,1062 46,10D,10 50,104,22 22,20,100,-29,-5 0,21,0,0,0 16,10,7174980 0,D,10 0,A,-3379691 0,B,15128526 0,C,9 66,111,12 30,10C,1019 55,10D,10 37,20,99,-27,-6 0,21,0,0,0 20,104,22 28,111,12 29,10C,1011 55,10D,10 47,104,23 21,20,97,-37,-12 0,21,-1,0,0 17,10,7175020 0,D,10 0,A,-3379691 0,B,15128525 0,C,9 65,111,13 31,10C,1000 49,10D,10 42,20,99,-32,-7 0,21,-1,0,0 19,104,25 28,111,13 30,10C,1011 46,10D,10 47,104,26 23,10,7175060 0,D,8 0,A,-3379691 0,B,15128524 0,C,9 38,111,12 20,20,95,-36,-9 0,21,-1,0,0 19,10C,1007 41,10D,10 46,104,24 31,111,12 41,10C,957 34,20,99,-32,-8 0,21,-1,0,0 19,10D,8 45,104,23 41,111,12 30,10C,902 44,10D,8 36,20,96,-31,-13 0,21,0,1,0 19,104,24 31,111,12 35,10C,847 43,10D,8 44,104,25 30,20,105,-33,1 0,21,-1,0,-1 20,111,12 31,10C,796 45,10D,8 36,10,7175140 0,D,6 0,A,-3379690 0,B,15128522 0,C,9 40,104,26 31,20,91,-37,-13 0,21,-1,0,0 20,111,12 31,10C,757 42,10D,5 35,10,7175160 0,D,5 0,A,-3379690 0,B,15128522 0,C,9 39,104,27 32,111,11 22,20,103,-30,-8 0,21,-1,0,0 20,10C,726 41,10D,5 45,104,26 30,111,11 29,10C,710 39,20,101,-31,-7 0,21,-1,0,0 20,10D,5 54,104,26 22,10,7175200 0,D,3 0,A,-3379690 0,B,15128521 0,C,9 40,111,11 27,10C,683 42,20,99,-27,-9 0,21,-1,0,0 20,10D,5 42,104,26 21,10,7175220 0,D,3 0,A,-3379690 0,B,15128521 0,C,9 40,111,11 31,10C,664 43,10D,3 35,20,104,-20,-9 0,21,-1,0,0 18,104,26 29,111,11 34,10C,652 42,10D,3 45,104,27 31,111,11 22,20,102,-20,-5 0,21,-1,0,0 20,10C,648 45,10D,3 44,104,27 74,111,11 22,20,100,-22,-5 0,21,-1,0,0 20,10C,652 45,10D,3 44,104,29 30,111,12 32,10C,660 43,20,100,-20,-7 0,21,-1,0,0 20,10D,2 46,104,30 33,111,12 30,10C,691 44,10D,2 35,20,98,-21,-8 0,21,-1,0,0 21,104,33 32,111,12 32,10C,738 47,10D,2 46,104,34 22,10,7175340 0,D,3 0,A,-3379689 0,B,15128520 0,C,9 40,111,12 19,20,102,-17,-5 0,21,-1,0,0 20,10C,789 40,10D,2 45,104,32 31,111,13 30,10C,804 34,20,99,-22,-3 0,21,-1,0,0 25,10D,3 42,104,33 31,111,13 38,10C,820 43,10D,3 36,20,105,-26,-8 0,21,-1,0,0 20,104,34 31,111,13 31,10C,843 52,10D,3 49,104,34 21,20,100,-31,-8 0,21,0,0,1 19,111,12 28,10C,855 43,10D,3 45,104,30 40,111,12 26,20,93,-32,-4 0,21,0,0,0 20,10C,839 39,10D,3 48,104,29 22,10,7175440 0,D,2 0,A,-3379689 0,B,15128519 0,C,9 39,111,12 27,10C,812 34,20,100,-30,-9 0,21,-1,0,0 20,10D,3 40,104,28 26,10,7175460 0,D,2 0,A,-3379689 0,B,15128519 0,C,9 40,111,12 32,10C,785 42,10D,3 36,20,103,-29,-7 0,21,-1,0,0 19,104,28 31,111,12 26,10,7175480 0,D,1 0,A,-3379689 0,B,15128519 0,C,9 39,10C,761 40,10D,3 44,104,28 22,20,96,-34,-5 0,21,-1,0,0 19,111,12 30,10,7175500 0,D,1 0,A,-3379689 0,B,15128519 0,C,9 46,10C,761 44,10D,1 43,104,28 22,20,98,-30,-7 0,21,-1,0,0 20,111,11 29,10C,734 46,10D,1 44,104,27 29,111,11 31,10C,722 42,20,98,-22,-7 0,21,-1,0,0 18,10,7175540 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 64,10D,1 45,104,26 32,111,11 24,10,7175560 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 39,10C,691 32,20,98,-21,-8 0,21,-1,0,0 20,10D,1 45,104,26 31,111,12 35,10C,664 43,10D,0 36,20,102,-21,-7 0,21,-1,0,0 20,104,29 27,111,12 32,10C,648 46,10D,0 54,104,32 22,20,99,-24,-8 0,21,-1,0,0 19,111,12 28,10C,714 44,10D,0 57,104,31 30,111,12 26,20,99,-23,-8 0,21,-1,0,0 19,10C,742 43,10D,0 41,10,7175640 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 40,104,31 32,111,12 25,20,101,-18,-8 0,21,-1,0,0 21,10C,718 43,10D,0 41,10,7175660 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 39,104,31 27,111,12 30,10C,703 35,20,104,-18,-6 0,21,-1,0,0 19,10D,0 45,104,31 22,10,7175680 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 43,111,12 36,10C,703 39,20,102,-18,-8 0,21,-1,0,0 18,10D,0 44,104,31 23,10,7175700 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 39,111,12 39,10C,710 39,20,101,-18,-6 0,21,0,0,0 19,10D,0 41,104,31 22,10,7175720 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 39,111,12 32,10C,707 42,10D,0 35,20,104,-18,-4 0,21,-1,0,0 18,104,31 22,10,7175740 0,D,0 0,A,-3379689 0,B,15128519 0,C,9 54,111,12 32,10C,710 43,10D,0 35,20,104,-16,-5 0,21,0,0,0 18,104,34 37,111,13 33,10C,777 43,10D,0 43,104,35 28,20,104,-15,-5 0,21,0,0,0 24,111,12 20,10,7175780 0,D,1 0,A,-3379688 0,B,15128519 0,C,9 52,10C,828 44,10D,1 53,104,33 20,20,106,-13,-7 0,21,0,0,0 22,111,12 18,10,7175800 0,D,1 0,A,-3379688 0,B,15128519 0,C,9 54,10C,847 51,10D,1 46,104,33 21,20,106,-14,-8 0,21,0,0,0 21,111,13 28,10C,839 42,10D,1 48,104,34 32,111,14 29,20,98,-17,-3 0,21,0,0,0 16,10,7175840 0,D,2 0,A,-3379688 0,B,15128519 0,C,9 66,10C,835 41,10D,1 43,104,48 33,111,15 21,20,105,-12,-8 0,21,0,-1,0 16,10,7175860 0,D,2 0,A,-3379688 0,B,15128519 0,C,9 66,10C,960 44,10D,2 45,104,41 31,111,16 21,20,107,-7,-7 0,21,1,0,0 21,10C,1117 44,10D,2 44,104,42 31,111,16 40,10C,1144 33,20,101,-15,-4 0,21,1,0,0 21,10D,2 46,104,42 38,111,16 31,10C,1175 45,10D,2 34,20,100,-11,-2 0,21,1,0,-1 21,104,42 31,111,16 32,10C,1222 45,10D,3 37,10,7175940 0,D,5 0,A,-3379688 0,B,15128518 0,C,9 39,104,42 20,20,89,-28,-5 0,21,1,-1,0 19,111,14 32,10C,1257 44,10D,3 45,104,40 30,111,15 32,10C,1265 35,20,91,-16,-6 0,21,3,0,0 20,10D,3 44,104,35 22,10,7175980 0,D,7 0,A,-3379688 0,B,15128517 0,C,9 43,111,14 28,10C,1261 47,20,105,-15,-5 0,21,3,0,0 19,10D,3 43,104,33 24,10,7180000 0,D,8 0,A,-3379688 0,B,15128516 0,C,9 39,111,16 28,10C,1199 46,10D,6 44,20,98,-18,0 0,21,2,-1,-1 19,104,37 32,111,16 35,10C,1257 42,10D,6 48,104,37 24,20,106,-13,-10 0,21,2,-2,0 19,111,16 21,10,7180040 0,D,8 0,A,-3379688 0,B,15128516 0,C,9 55,10C,1328 40,10D,6 45,104,36 20,20,100,-13,-5 0,21,1,0,0 19,111,16 21,10,7180060 0,D,9 0,A,-3379688 0,B,15128515 0,C,9 54,10C,1382 41,10D,6 43,104,34 22,20,101,-17,-6 0,21,0,-1,0 19,111,16 25,10,7180080 0,D,9 0,A,-3379689 0,B,15128514 0,C,9 51,10C,1390 44,10D,8 44,104,34 20,20,104,-13,-15 0,21,0,0,0 21,111,16 19,10,7180100 0,D,10 0,A,-3379689 0,B,15128514 0,C,9 55,10C,1382 41,10D,8 43,104,38 30,20,104,-12,-16 0,21,-2,0,0 21,111,18 19,10,7180120 0,D,10 0,A,-3379689 0,B,15128513 0,C,9 55,10C,1421 40,10D,8 47,104,44 21,20,100,-11,-20 0,21,-3,0,-1 21,111,18 28,10C,1585 43,10D,10 57,104,45 27,111,19 25,20,108,-3,-12 0,21,-4,0,0 17,10,7180160 0,D,11 0,A,-3379689 0,B,15128512 0,C,9 65,10C,1644 55,10D,10 44,104,49 21,20,109,2,-14 0,21,-5,0,0 20,111,19 33,10C,1718 42,10D,10 45,104,49 27,111,19 32,10C,1726 35,20,101,-14,-18 0,21,-5,1,0 21,10D,10 46,104,52 29,111,20 30,10C,1691 45,10D,13 45,20,106,-8,-16 0,21,-5,1,1 16,10,7180220 0,D,13 0,A,-3379689 0,B,15128510 0,C,9 66,104,56 27,111,21 31,10C,1703 44,10D,13 36,20,113,7,-9 0,21,-5,1,-2 20,104,61 31,111,21 38,10C,1738 45,10D,13 37,10,7180260 0,D,15 0,A,-3379689 0,B,15128508 0,C,9 39,104,60 20,20,102,-4,-15 0,21,-5,1,-2 19,111,21 31,10C,1726 45,10D,13 49,104,61 30,111,21 29,10C,1695 35,20,103,-4,-5 0,21,-4,0,2 20,10D,16 40,104,63 30,111,21 31,10C,1687 46,10D,16 36,20,93,-16,-21 0,21,-4,0,-1 19,104,63 30,111,21 34,10C,1656 53,10D,16 44,104,65 22,20,101,-26,-15 0,21,-4,0,1 19,111,21 33,10C,1601 44,10D,16 48,104,65 30,111,21 33,20,94,-7,-16 0,21,-3,0,1 19,10C,1546 38,10,7180360 0,D,20 0,A,-3379688 0,B,15128502 0,C,9 39,10D,19 47,104,66 30,111,21 28,20,114,-5,-5 0,21,-2,0,0 19,10C,1492 41,10D,19 45,104,67 30,111,21 33,10C,1484 35,20,100,-11,-8 0,21,-1,0,0 23,10D,19 44,104,67 33,111,21 34,10C,1507 46,10D,19 36,20,92,-13,-9 0,21,-1,-1,0 19,104,67 28,111,21 31,10C,1523 55,10D,22 48,104,67 21,20,151,33,0 0,21,-1,0,0 18,111,21 33,10C,1550 43,10D,22 44,104,66 30,111,21 33,10C,1562 33,20,112,-1,7 0,21,-1,0,-1 21,10D,22 46,104,66 34,111,21 29,10C,1593 44,10D,22 36,20,118,0,-17 0,21,-1,-1,-1 22,104,65 27,111,21 33,10C,1601 43,10D,22 46,104,65 31,20,134,16,-10 0,21,-1,-2,4 20,111,21 37,10C,1621 52,10D,26 44,104,65 32,111,21 21,20,125,4,-8 0,21,0,0,0 16,10,7180520 0,D,28 0,A,-3379686 0,B,15128490 0,C,9 66,10C,1632 55,10D,26 43,104,64 22,20,101,-14,-11 0,21,-1,0,-3 16,10,7180540 0,D,29 0,A,-3379685 0,B,15128489 0,C,9 65,111,21 28,10C,1687 45,10D,26 45,104,63 22,20,47,-44,-14 0,21,0,0,1 20,111,21 28,10C,1695 46,10D,29 43,104,63 31,111,21 35,20,136,18,-14 0,21,-1,0,1 20,10C,1703 41,10D,29 44,104,63 31,111,21 30,10C,1722 35,20,122,2,-15 0,21,-1,-1,-4 21,10D,29 42,104,63 29,111,21 32,10C,1726 43,10D,29 36,20,93,-19,-6 0,21,0,0,0 20,104,63 32,111,21 38,10C,1738 44,10D,31 46,104,61 26,20,105,0,6 0,21,0,0,-1 19,111,21 31,10C,1757 43,10D,31 47,104,62 22,10,7180660 0,D,34 0,A,-3379683 0,B,15128477 0,C,9 39,111,21 19,20,122,6,-2 0,21,-1,-1,0 20,10C,1761 43,10D,31 46,104,61 24,10,7180680 0,D,34 0,A,-3379683 0,B,15128475 0,C,9 40,111,21 28,20,105,-16,-11 0,21,-1,0,0 19,10C,1761 44,10D,31 42,104,61 43,111,21 30,10C,1769 35,20,127,2,-10 0,21,-1,0,-3 19,10D,34 45,104,60 29,111,21 34,10C,1773 44,10D,34 35,20,100,-13,-19 0,21,-1,0,-1 20,104,61 37,111,21 31,10C,1777 47,10D,34 48,104,60 21,20,102,-21,-23 0,21,-1,1,-1 24,111,21 32,10C,1777 45,10D,34 36,10,7180760 0,D,35 0,A,-3379681 0,B,15128467 0,C,9 39,104,60 24,20,97,-22,-15 0,21,-2,1,0 20,111,21 27,10C,1773 45,10D,37 45,104,60 30,111,21 33,10C,1742 34,20,101,-14,6 0,21,0,0,0 20,10D,37 44,104,60 22,10,7180800 0,D,36 0,A,-3379680 0,B,15128463 0,C,9 40,111,21 28,10C,1753 46,10D,37 36,20,21,-63,-18 0,21,-1,1,0 19,104,58 29,111,18 30,10C,1726 43,10D,37 48,104,44 34,20,103,-22,-25 0,21,0,-1,-2 19,111,15 21,10,7180840 0,D,39 0,A,-3379680 0,B,15128458 0,C,9 54,10C,1605 42,10D,38 44,104,30 31,20,128,5,-24 0,21,0,1,-5 20,111,14 20,10,7180860 0,D,39 0,A,-3379679 0,B,15128456 0,C,9 54,10C,1554 44,10D,38 44,104,26 20,20,101,-20,-3 0,21,0,0,5 21,111,15 28,10,7180880 0,D,39 0,A,-3379679 0,B,15128454 0,C,9 48,10C,1468 44,10D,38 44,104,30 20,20,87,-33,-5 0,21,-1,0,-1 21,111,15 19,10,7180900 0,D,38 0,A,-3379679 0,B,15128451 0,C,9 54,10C,1363 41,10D,38 44,104,34 22,20,94,-43,-1 0,21,0,0,4 20,111,16 40,10C,1304 43,10D,38 48,104,37 37,111,16 22,20,101,-12,4 0,21,0,1,1 24,10C,1281 52,10D,38 44,104,41 29,111,17 32,10C,1273 34,20,105,-20,-7 0,21,0,-1,0 20,10D,38 42,104,45 30,111,17 34,10C,1281 44,10D,38 36,20,99,-36,-9 0,21,-1,-1,-2 20,104,48 28,111,18 30,10C,1289 46,10D,39 43,104,49 29,111,18 22,20,101,-16,-28 0,21,-1,0,0 21,10C,1281 44,10D,39 44,104,49 32,111,17 34,10C,1277 34,20,111,-6,-18 0,21,-1,0,-1 21,10D,39 46,104,50 33,111,18 41,10C,1265 36,10,7181040 0,D,39 0,A,-3379676 0,B,15128435 0,C,9 39,10D,39 46,20,78,-35,-12 0,21,-1,-1,-2 20,104,51 26,111,18 32,10C,1261 52,10D,40 48,104,52 26,20,107,-16,-15 0,21,-1,0,0 20,111,18 29,10C,1265 40,10,7181080 0,D,40 0,A,-3379675 0,B,15128430 0,C,9 39,10D,40 47,104,52 25,20,105,-26,-11 0,21,-1,-1,0 21,111,18 28,10C,1265 43,10D,40 36,10,7181100 0,D,40 0,A,-3379675 0,B,15128427 0,C,9 40,104,52 32,111,18 20,20,101,-24,-27 0,21,-2,-1,1 21,10C,1257 43,10D,40 37,10,7181120 0,D,41 0,A,-3379675 0,B,15128425 0,C,9 39,104,52 27,111,18 30,10C,1250 34,20,88,-31,-28 0,21,-1,0,0 18,10D,40 54,104,52 29,111,18 33,10C,1253 43,10D,40 35,20,93,-24,-19 0,21,-1,1,0 24,104,52 21,10,7181160 0,D,41 0,A,-3379674 0,B,15128420 0,C,9 51,111,18 31,10C,1253 42,10D,40 36,20,110,-13,-7 0,21,0,0,0 20,104,53 20,10,7181180 0,D,41 0,A,-3379674 0,B,15128418 0,C,9 54,111,18 32,10C,1250 42,10D,40 34,20,97,-25,-25 0,21,-1,0,0 21,104,53 19,10,7181200 0,D,41 0,A,-3379673 0,B,15128415 0,C,9 56,111,18 26,10C,1253 43,10D,40 45,20,94,-27,-6 0,21,-1,0,0 21,104,55 32,111,18 33,10C,1253 46,10D,40 44,104,55 26,20,111,-19,-24 0,21,-2,0,2 16,10,7181240 0,D,41 0,A,-3379673 0,B,15128410 0,C,9 66,111,16 38,10C,1246 45,10D,40 36,20,98,-20,-14 0,21,-1,-1,0 21,104,41 37,111,18 42,10C,1246 43,10D,41 45,104,51 22,20,110,-15,-19 0,21,-1,0,-1 21,111,19 28,10C,1250 43,10D,41 47,104,58 28,111,19 30,10C,1257 35,20,92,-17,-13 0,21,0,1,0 15,10,7181300 0,D,42 0,A,-3379672 0,B,15128403 0,C,9 67,10D,41 45,104,61 33,111,19 22,10,7181320 0,D,42 0,A,-3379671 0,B,15128400 0,C,9 39,10C,1261 32,20,126,-1,-16 0,21,-1,1,-3 21,10D,41 42,104,61 31,111,19 34,10C,1269 37,10,7181340 0,D,42 0,A,-3379671 0,B,15128398 0,C,10 44,10D,42 43,20,108,-15,-26 0,21,-1,1,0 20,104,61 30,111,19 23,10,7181360 0,D,42 0,A,-3379670 0,B,15128395 0,C,10 41,10C,1273 40,10D,42 45,104,61 20,20,104,-18,-10 0,21,-1,1,0 20,111,19 24,10,7181380 0,D,42 0,A,-3379670 0,B,15128393 0,C,10 52,10C,1281 44,10D,42 44,104,61 22,20,102,-31,-13 0,21,-2,0,0 19,111,19 21,10,7181400 0,D,42 0,A,-3379670 0,B,15128390 0,C,10 55,10C,1269 45,10D,42 44,104,62 22,20,129,-6,-22 0,21,-1,0,-5 20,111,19 20,10,7181420 0,D,42 0,A,-3379669 0,B,15128387 0,C,10 56,10C,1285 56,10D,42 46,104,62 22,20,91,-31,-6 0,21,0,0,-1 21,111,19 27,10C,1277 43,10D,42 48,104,64 38,111,20 27,20,92,-22,-16 0,21,-1,-1,-1 15,10,7181460 0,D,42 0,A,-3379669 0,B,15128382 0,C,10 68,10C,1277 40,10D,42 47,104,65 30,20,113,-6,-20 0,21,-1,-1,0 16,10,7181480 0,D,42 0,A,-3379668 0,B,15128380 0,C,10 67,111,20 31,10C,1289 43,10D,42 44,20,120,-5,-14 0,21,-1,0,2 15,10,7181500 0,D,42 0,A,-3379668 0,B,15128377 0,C,10 68,104,65 29,111,20 32,10C,1289 41,10D,42 36,20,110,-15,-7 0,21,-1,-1,-1 18,10,7181520 0,D,42 0,A,-3379667 0,B,15128375 0,C,10 65,104,70 29,111,22 31,10C,1328 44,10D,42 35,20,125,0,-11 0,21,0,0,-1 21,104,75 28,111,23 29,10C,1347 45,10D,41 55,104,78 23,10,7181560 0,D,42 0,A,-3379667 0,B,15128370 0,C,12 40,111,23 20,20,116,-14,-10 0,21,-1,0,-1 20,10C,1375 43,10D,41 45,104,77 31,111,23 34,10C,1402 33,20,97,-14,-6 0,21,0,0,-2 21,10D,41 44,104,77 27,10,7181600 0,D,41 0,A,-3379666 0,B,15128365 0,C,12 41,111,24 27,10C,1417 44,20,94,-31,-9 0,21,-1,0,1 20,10D,41 41,104,78 30,111,24 21,10,7181620 0,D,41 0,A,-3379665 0,B,15128362 0,C,12 45,10C,1449 45,10D,40 35,20,91,-19,-16 0,21,-1,0,-4 20,104,78 31,111,24 31,10,7181640 0,D,40 0,A,-3379665 0,B,15128360 0,C,12 40,10C,1464 41,10D,40 41,20,110,-7,-6 0,21,-1,0,2 18,104,81 37,111,26 31,10C,1484 43,10D,40 56,104,85 20,20,101,-8,-26 0,21,-1,0,0 19,111,27 33,10C,1519 44,10D,40 44,104,86 29,111,27 32,10C,1519 34,20,129,13,-6 0,21,-1,1,0 21,10D,40 43,104,87 30,111,27 30,10C,1535 46,10D,40 36,20,103,0,-2 0,21,-1,0,0 20,104,87 28,111,27 29,10C,1550 47,10D,40 44,104,87 32,111,27 26,20,99,-20,-18 0,21,-1,-1,-1 16,10,7181740 0,D,39 0,A,-3379663 0,B,15128348 0,C,12 68,10C,1558 43,10D,40 44,104,87 31,20,82,-13,-12 0,21,-1,-1,-4 16,10,7181760 0,D,39 0,A,-3379662 0,B,15128346 0,C,12 68,111,27 30,10C,1589 44,10D,39 42,20,116,3,-14 0,21,-1,-1,-1 20,104,88 32,111,28 33,10C,1582 45,10D,39 45,104,89 22,10,7181800 0,D,39 0,A,-3379661 0,B,15128342 0,C,12 41,111,29 31,20,96,-10,1 0,21,-1,1,1 20,10C,1593 40,10D,39 44,104,91 22,10,7181820 0,D,39 0,A,-3379661 0,B,15128339 0,C,12 41,111,29 27,10C,1605 49,20,118,2,-16 0,21,-1,-1,-1 20,10D,39 42,104,90 21,10,7181840 0,D,38 0,A,-3379661 0,B,15128337 0,C,12 41,111,29 28,10C,1605 46,10D,38 36,20,79,-32,-22 0,21,0,0,-6 19,104,90 21,10,7181860 0,D,39 0,A,-3379660 0,B,15128335 0,C,12 55,111,29 38,10C,1617 46,10D,38 35,20,88,-7,-17 0,21,0,0,1 21,104,91 28,111,29 34,10C,1613 47,10D,38 43,104,90 29,111,29 21,20,123,4,-5 0,21,0,0,0 21,10C,1625 44,10D,38 45,104,92 28,111,29 32,10C,1636 34,20,108,5,-12 0,21,0,0,-3 21,10D,38 46,104,91 33,111,29 30,10C,1625 45,10D,38 40,20,95,-24,-36 0,21,-1,0,1 17,10,7181940 0,D,38 0,A,-3379659 0,B,15128326 0,C,12 66,104,91 31,111,29 31,10C,1621 44,10D,38 36,20,103,-14,-4 0,21,-1,0,0 21,104,91 41,111,29 39,10C,1617 46,10D,38 35,10,7181980 0,D,38 0,A,-3379658 0,B,15128321 0,C,12 41,104,91 19,20,145,20,0 0,21,-1,-1,4 20,111,29 39,10C,1625 46,10D,38 37,10,7182000 0,D,38 0,A,-3379658 0,B,15128319 0,C,12 40,104,91 20,20,125,1,-9 0,21,-1,-2,-4 19,111,29 31,10C,1621 45,10D,38 38,10,7182020 0,D,38 0,A,-3379657 0,B,15128317 0,C,12 41,104,91 27,20,100,-31,-19 0,21,0,-1,1 21,111,29 29,10C,1628 46,10D,38 37,10,7182040 0,D,37 0,A,-3379657 0,B,15128314 0,C,12 41,104,91 27,20,96,-26,-13 0,21,-2,0,0 21,111,29 26,10C,1628 51,10D,38 37,10,7182060 0,D,37 0,A,-3379657 0,B,15128312 0,C,12 40,104,92 29,20,91,-28,-4 0,21,-1,0,1 20,111,29 30,10C,1625 46,10D,38 37,10,7182080 0,D,37 0,A,-3379656 0,B,15128310 0,C,12 40,104,91 28,20,115,20,-9 0,21,-1,0,-6 20,111,30 30,10C,1632 42,10D,38 37,10,7182100 0,D,37 0,A,-3379656 0,B,15128308 0,C,12 40,104,92 28,111,30 26,20,135,8,-16 0,21,-1,0,0 19,10C,1632 39,10D,38 45,104,93 30,111,30 34,10C,1636 33,20,90,-25,-6 0,21,-1,0,-3 21,10D,38 44,104,93 22,10,7182140 0,D,37 0,A,-3379655 0,B,15128303 0,C,12 42,111,30 31,10C,1640 43,10D,38 36,20,120,3,-11 0,21,-1,1,-3 18,104,93 33,111,30 30,10C,1636 43,10D,38 57,104,93 33,20,130,37,-2 0,21,-1,1,-4 21,111,30 19,10,7182180 0,D,37 0,A,-3379654 0,B,15128299 0,C,12 56,10C,1636 44,10D,38 44,104,94 21,20,99,-13,-15 0,21,-1,0,-2 21,111,30 32,10C,1640 42,10D,38 45,104,95 29,111,30 32,10C,1652 38,20,132,4,-23 0,21,-1,0,-6 21,10D,38 46,104,95 30,111,32 28,10C,1652 46,10D,38 36,20,112,-8,-11 0,21,0,0,4 17,10,7182240 0,D,38 0,A,-3379653 0,B,15128292 0,C,12 67,104,95 30,111,31 32,10C,1679 44,10D,38 36,20,115,9,-10 0,21,0,0,-3 17,10,7182260 0,D,38 0,A,-3379653 0,B,15128290 0,C,20 66,104,95 40,111,31 34,10C,1683 44,10D,38 36,20,96,-36,-16 0,21,0,0,0 20,104,96 30,111,31 32,10C,1683 44,10D,38 38,10,7182300 0,D,38 0,A,-3379652 0,B,15128285 0,C,20 40,104,96 19,20,127,26,-6 0,21,-1,-1,0 20,111,31 25,10C,1695 49,10D,38 49,104,95 29,111,32 30,10C,1695 34,20,127,11,-13 0,21,-1,0,-2 19,10D,38 47,104,95 50,111,31 29,10C,1691 46,10D,38 35,20,113,6,-9 0,21,-1,0,-1 21,104,96 19,10,7182360 0,D,38 0,A,-3379651 0,B,15128279 0,C,20 56,111,31 27,10C,1691 46,10D,38 45,20,103,-2,-10 0,21,-1,1,-1 21,104,95 28,111,31 30,10C,1691 46,10D,38 44,104,96 32,111,31 21,20,109,-3,-16 0,21,-1,0,2 18,10,7182400 0,D,39 0,A,-3379650 0,B,15128274 0,C,20 65,10C,1687 44,10D,38 46,104,96 28,20,132,26,-14 0,21,-1,0,0 16,10,7182420 0,D,39 0,A,-3379650 0,B,15128272 0,C,20 67,111,31 29,10C,1679 45,10D,38 45,104,95 21,20,95,-18,-29 0,21,-1,0,-2 18,10,7182440 0,D,39 0,A,-3379650 0,B,15128269 0,C,21 66,111,31 39,10C,1679 39,10,7182460 0,D,40 0,A,-3379649 0,B,15128267 0,C,21 41,10D,38 34,20,90,-20,-1 0,21,0,-1,3 20,104,97 31,111,31 29,10C,1687 52,10D,39 49,104,97 22,20,109,6,-9 0,21,-1,1,-3 19,111,31 28,10C,1695 45,10D,39 45,104,96 31,111,32 29,10C,1691 35,20,124,20,-13 0,21,-1,0,0 20,10D,39 45,104,95 26,10,7182520 0,D,40 0,A,-3379648 0,B,15128260 0,C,21 44,111,31 33,10C,1691 34,20,90,-30,-10 0,21,-1,0,0 20,10D,39 43,104,95 31,111,31 35,10C,1695 42,10D,40 77,20,90,-31,-21 0,21,-1,0,-4 19,104,95 29,111,31 34,10C,1691 43,10D,40 44,104,95 32,111,31 30,20,107,-24,-36 0,21,-1,0,0 22,10C,1695 41,10D,40 45,104,95 29,111,31 32,10C,1687 34,20,160,45,-1 0,21,-1,0,0 21,10D,40 46,104,95 34,111,31 34,10C,1691 45,10D,41 36,20,125,12,-14 0,21,-2,0,-1 20,104,95 32,111,31 33,10C,1691 47,10D,41 49,104,95 22,20,75,-53,-23 0,21,-1,0,3 17,10,7182640 0,D,42 0,A,-3379646 0,B,15128245 0,C,21 66,111,31 28,10C,1687 45,10D,41 45,104,95 22,20,106,9,-13 0,21,-1,0,-3 20,111,31 32,10C,1695 46,10D,41 43,104,95 40,111,31 22,20,98,-24,-22 0,21,-1,0,1 20,10C,1695 45,10D,42 44,104,95 40,111,31 31,10C,1691 34,20,85,-30,-15 0,21,-1,0,3 21,10D,42 55,104,96 32,111,31 32,10C,1691 37,10,7182720 0,D,42 0,A,-3379644 0,B,15128235 0,C,21 40,10D,42 34,20,123,-5,-16 0,21,0,-1,4 20,104,96 31,111,31 35,10C,1703 43,10D,42 45,104,95 29,111,31 22,20,79,-49,-19 0,21,-1,0,0 19,10C,1703 46,10D,42 38,10,7182760 0,D,42 0,A,-3379643 0,B,15128230 0,C,21 44,104,95 32,111,31 22,20,109,2,-22 0,21,-1,-1,0 19,10C,1707 42,10D,42 47,10,7182780 0,D,43 0,A,-3379642 0,B,15128227 0,C,21 41,104,95 28,111,31 25,20,101,-11,-18 0,21,-1,0,-2 20,10C,1707 42,10D,42 38,10,7182800 0,D,43 0,A,-3379642 0,B,15128225 0,C,21 41,104,94 26,111,31 34,10C,1707 34,20,105,9,14 0,21,0,0,1 19,10D,42 46,104,95 39,111,31 30,10C,1703 46,10D,42 35,20,154,50,-12 0,21,-1,0,-3 20,104,95 20,10,7182840 0,D,43 0,A,-3379641 0,B,15128220 0,C,21 56,111,31 32,10C,1703 46,10D,42 35,20,90,-1,16 0,21,-1,0,2 21,104,95 28,111,31 30,10C,1695 47,10D,42 44,104,95 31,111,31 30,20,150,33,-13 0,21,-1,0,-2 18,10,7182880 0,D,43 0,A,-3379640 0,B,15128214 0,C,21 66,10C,1695 40,10D,42 46,104,95 31,20,116,-1,-17 0,21,-1,0,-4 20,111,31 32,10C,1699 54,10D,43 47,104,95 31,10,7182920 0,D,44 0,A,-3379639 0,B,15128209 0,C,21 41,111,31 19,20,114,5,-6 0,21,-1,0,-3 20,10C,1703 44,10D,43 43,104,95 31,111,31 21,10,7182940 0,D,44 0,A,-3379639 0,B,15128207 0,C,21 40,10C,1707 33,20,95,-25,-16 0,21,0,0,0 24,10D,43 42,104,94 31,111,31 24,10,7182960 0,D,44 0,A,-3379638 0,B,15128204 0,C,21 41,10C,1703 41,20,93,-13,-11 0,21,0,-1,1 20,10D,44 41,104,94 33,111,31 32,10,7182980 0,D,44 0,A,-3379638 0,B,15128201 0,C,21 41,10C,1699 37,20,102,-10,-16 0,21,-1,0,-1 19,10D,44 45,104,95 30,111,31 22,10,7183000 0,D,44 0,A,-3379638 0,B,15128199 0,C,21 40,10C,1703 41,10D,44 36,20,89,-24,-21 0,21,-1,0,3 19,104,95 30,111,31 30,10C,1710 44,10D,44 48,104,95 30,20,123,17,-15 0,21,-1,0,-4 18,111,31 30,10C,1707 47,10D,44 57,104,94 30,111,31 21,20,123,1,-7 0,21,0,1,4 20,10C,1703 41,10D,44 36,10,7183060 0,D,44 0,A,-3379636 0,B,15128191 0,C,21 41,104,95 27,111,31 30,10C,1695 43,20,126,6,-19 0,21,-2,1,-2 21,10D,44 44,10,7183080 0,D,45 0,A,-3379636 0,B,15128188 0,C,21 39,104,94 28,111,31 30,10C,1707 41,20,102,-15,-9 0,21,-1,0,3 20,10D,44 34,10,7183100 0,D,45 0,A,-3379635 0,B,15128186 0,C,21 43,104,94 28,111,31 29,10C,1710 44,10D,44 36,20,116,5,-16 0,21,-2,0,-1 21,104,95 27,111,31 34,10C,1703 42,10D,44 46,104,95 31,111,31 21,20,115,-6,-28 0,21,-1,-1,4 19,10C,1707 45,10D,44 47,104,95 32,111,31 31,10C,1707 33,20,76,-43,-18 0,21,-1,0,2 22,10D,44 42,104,95 30,111,31 30,10C,1703 44,10D,44 45,20,78,-36,-1 0,21,-1,1,2 21,104,95 32,111,31 28,10C,1699 45,10D,44 45,104,95 30,20,135,20,-8 0,21,-1,0,-2 19,111,31 32,10C,1707 45,10D,44 44,104,95 23,10,7183220 0,D,45 0,A,-3379632 0,B,15128170 0,C,21 40,111,31 19,20,135,4,-27 0,21,-1,0,2 20,10C,1707 44,10D,44 43,104,95 29,111,31 31,10C,1703 35,20,94,-8,-9 0,21,-1,0,-3 19,10D,44 42,104,95 28,111,31 47,10C,1710 44,10D,45 36,20,70,-44,-6 0,21,-1,0,0 19,104,94 31,111,31 32,10C,1703 43,10D,45 47,10,7183280 0,D,45 0,A,-3379630 0,B,15128162 0,C,30 41,104,95 18,20,104,-7,8 0,21,-1,-1,-2 20,111,31 30,10C,1707 43,10D,45 46,104,95 29,111,31 30,10C,1695 34,20,120,18,0 0,21,-1,-1,-4 19,10D,45 43,104,95 34,111,31 30,10C,1703 43,10D,46 36,20,81,-33,-6 0,21,0,0,1 19,104,95 25,10,7183340 0,D,46 0,A,-3379628 0,B,15128153 0,C,30 52,111,31 32,10C,1703 43,10D,46 36,20,113,1,-17 0,21,0,0,-5 18,104,94 33,111,31 34,10C,1707 47,10D,46 48,104,95 29,20,115,0,-17 0,21,0,1,1 20,111,31 20,10,7183380 0,D,47 0,A,-3379627 0,B,15128148 0,C,30 56,10C,1710 53,10D,46 44,104,95 20,20,103,-16,-14 0,21,0,1,-1 21,111,31 33,10C,1722 43,10D,46 44,104,94 28,111,31 31,20,93,-19,-16 0,21,0,0,3 22,10C,1726 45,10D,46 44,104,95 29,111,31 32,10C,1726 35,20,77,-26,-16 0,21,-1,-1,1 20,10D,46 43,104,95 30,111,31 30,10C,1726 46,10D,46 35,20,104,-12,-16 0,21,-1,0,2 21,104,95 28,111,31 30,10C,1722 46,10D,47 44,104,94 29,111,31 22,20,114,2,-18 0,21,-1,1,0 19,10,7183480 0,D,48 0,A,-3379624 0,B,15128134 0,C,30 64,10C,1722 51,10D,47 43,104,94 23,10,7183500 0,D,48 0,A,-3379624 0,B,15128131 0,C,30 40,111,31 19,20,103,-4,-12 0,21,-1,0,0 20,10C,1734 44,10D,47 47,104,94 30,111,31 34,10C,1734 35,20,144,25,12 0,21,-1,0,1 19,10D,47 45,104,95 28,111,31 35,10C,1726 43,10D,48 37,20,116,-2,5 0,21,0,0,2 19,104,95 28,111,32 31,10C,1722 44,10D,48 57,104,95 21,20,61,-53,-11 0,21,-1,0,0 20,111,31 28,10C,1734 44,10D,48 45,104,95 29,111,31 30,10C,1730 35,20,79,-31,-17 0,21,0,-2,1 23,10D,48 52,104,94 33,10,7183600 0,D,50 0,A,-3379621 0,B,15128117 0,C,30 41,111,31 31,10C,1734 35,20,113,9,1 0,21,0,0,-2 19,10D,49 42,104,95 22,10,7183620 0,D,51 0,A,-3379620 0,B,15128114 0,C,30 40,111,31 27,10C,1734 43,10D,49 36,20,109,-25,-22 0,21,0,0,-2 19,104,95 21,10,7183640 0,D,51 0,A,-3379620 0,B,15128111 0,C,30 55,111,30 32,10C,1734 43,10D,49 35,20,99,-28,-7 0,21,0,0,-1 21,104,73 19,10,7183660 0,D,51 0,A,-3379619 0,B,15128108 0,C,30 56,111,20 31,10C,1652 43,10D,50 35,20,125,4,-18 0,21,-1,0,-1 24,104,54 21,10,7183680 0,D,51 0,A,-3379619 0,B,15128105 0,C,30 52,111,16 28,10C,1515 46,10D,50 44,20,108,-17,-15 0,21,0,1,-1 21,104,40 28,111,15 30,10C,1441 47,10D,50 44,104,33 30,20,95,-22,-8 0,21,0,0,-3 20,111,14 32,10C,1406 43,10D,50 44,104,28 33,111,14 31,20,87,-27,-13 0,21,-1,1,0 18,10,7183740 0,D,51 0,A,-3379617 0,B,15128095 0,C,30 65,10C,1375 45,10D,50 47,104,24 26,20,105,-18,-19 0,21,0,0,1 16,10,7183760 0,D,51 0,A,-3379616 0,B,15128092 0,C,30 67,111,13 28,10C,1335 46,10D,50 43,104,21 30,20,114,-15,-3 0,21,-1,0,2 21,10,7183780 0,D,50 0,A,-3379616 0,B,15128089 0,C,30 62,111,12 33,10C,1300 44,10D,50 45,20,102,-38,-14 0,21,-1,0,-1 21,104,18 27,111,11 34,10C,1281 42,10D,49 47,104,15 23,10,7183820 0,D,50 0,A,-3379615 0,B,15128083 0,C,30 40,111,14 19,20,97,-26,-20 0,21,-1,0,0 20,10C,1289 40,10D,49 47,104,24 22,10,7183840 0,D,50 0,A,-3379614 0,B,15128080 0,C,30 41,111,17 31,10C,1308 35,20,95,-29,-10 0,21,-1,0,0 19,10D,49 48,104,40 23,10,7183860 0,D,49 0,A,-3379614 0,B,15128078 0,C,30 40,111,20 32,10C,1281 38,20,104,-15,-18 0,21,-1,0,0 18,10D,49 41,104,61 29,111,20 31,10C,1300 46,10D,48 37,20,107,-18,-11 0,21,-1,1,0 20,104,67 28,111,20 28,10,7183900 0,D,49 0,A,-3379613 0,B,15128072 0,C,30 40,10C,1324 54,10D,48 36,20,106,-20,-12 0,21,-1,0,0 19,104,67 26,111,21 31,10C,1332 47,10D,48 44,104,69 30,111,22 21,20,93,-27,-15 0,21,-2,0,0 19,10C,1351 40,10D,48 50,104,74 29,111,22 30,10C,1394 34,20,83,-24,-4 0,21,-1,0,0 19,10D,48 51,104,74 30,111,23 30,10C,1414 46,10D,48 48,20,106,-17,-7 0,21,-1,0,-1 20,104,74 28,111,23 34,10C,1437 43,10D,48 47,104,75 28,111,23 21,20,99,-25,-3 0,21,0,-1,0 21,10C,1445 45,10D,48 54,104,77 29,111,24 31,10C,1457 35,20,112,-5,-10 0,21,0,0,0 21,10D,48 46,104,78 33,111,24 29,10C,1472 44,10D,48 36,20,100,-20,-8 0,21,-1,1,0 22,104,80 27,111,24 33,10C,1492 43,10D,48 46,104,78 23,10,7184060 0,D,49 0,A,-3379609 0,B,15128049 0,C,30 42,111,24 27,20,95,-15,-4 0,21,0,-1,0 20,10C,1507 44,10D,48 42,104,80 31,111,24 30,10C,1519 34,20,105,-9,-2 0,21,0,0,-3 21,10D,48 45,104,80 31,111,24 30,10C,1519 44,10D,48 36,20,117,2,0 0,21,0,0,0 17,104,80 37,111,24 32,10C,1527 43,10D,48 54,104,80 22,20,109,-9,-9 0,21,0,-1,0 20,111,24 31,10C,1527 44,10D,48 45,104,80 34,111,25 29,10C,1527 34,20,86,-26,-6 0,21,-1,-1,-2 20,10D,48 46,104,81 22,10,7184160 0,D,49 0,A,-3379606 0,B,15128034 0,C,30 42,111,25 31,10C,1535 39,20,102,-29,-13 0,21,-1,-1,3 19,10D,48 46,104,81 23,10,7184180 0,D,49 0,A,-3379606 0,B,15128031 0,C,30 42,111,25 31,10C,1535 39,20,115,-9,-6 0,21,-2,0,1 19,10D,48 47,104,81 22,10,7184200 0,D,49 0,A,-3379605 0,B,15128028 0,C,30 44,111,25 28,10C,1542 42,20,97,-30,-15 0,21,-1,0,1 20,10D,48 49,10,7184220 0,D,49 0,A,-3379605 0,B,15128025 0,C,30 41,104,81 28,111,25 32,10C,1558 35,20,119,2,-16 0,21,-2,-1,0 20,10D,48 43,104,81 21,10,7184240 0,D,49 0,A,-3379604 0,B,15128022 0,C,30 41,111,25 28,10C,1558 46,10D,48 37,20,96,4,-30 0,21,-2,0,0 18,104,80 22,10,7184260 0,D,49 0,A,-3379604 0,B,15128020 0,C,30 55,111,25 28,10C,1550 43,10D,48 36,20,96,-7,-16 0,21,-2,2,0 21,104,81 19,10,7184280 0,D,49 0,A,-3379603 0,B,15128017 0,C,30 56,111,25 36,10C,1558 42,10D,48 36,20,109,-26,-38 0,21,-2,0,-1 21,104,81 19,10,7184300 0,D,49 0,A,-3379603 0,B,15128014 0,C,30 57,111,25 27,10C,1558 46,10D,48 45,20,85,-10,-21 0,21,-2,0,-1 22,104,81 28,111,24 29,10C,1550 56,10D,48 56,104,81 21,20,102,-29,-20 0,21,-1,0,-1 17,10,7184340 0,D,49 0,A,-3379602 0,B,15128008 0,C,30 66,111,25 28,10C,1566 45,10D,48 46,104,81 22,20,83,-33,1 0,21,-1,1,0 20,111,25 28,10C,1562 46,10D,48 48,104,81 31,111,25 30,10C,1562 34,20,99,-23,-7 0,21,0,0,0 20,10D,48 44,104,81 31,111,25 37,10C,1562 35,10,7184400 0,D,49 0,A,-3379600 0,B,15127999 0,C,30 41,10D,48 35,20,108,-20,-6 0,21,-1,-2,0 20,104,81 26,111,24 52,10C,1554 44,10D,48 45,104,80 22,20,105,-7,1 0,21,0,0,-2 19,111,21 30,10C,1546 43,10D,48 46,104,68 30,111,18 29,10C,1511 34,20,111,-4,-9 0,21,0,0,0 20,10D,48 48,104,50 23,10,7184460 0,D,49 0,A,-3379598 0,B,15127991 0,C,40 40,111,15 32,10C,1453 38,20,102,-16,-4 0,21,0,0,0 18,10D,48 48,104,35 35,111,14 30,10C,1410 55,10D,48 37,20,64,-75,62 0,21,-1,3,3 20,104,29 20,10,7184500 0,D,48 0,A,-3379597 0,B,15127985 0,C,40 55,111,14 27,10C,1371 43,10D,48 37,20,81,-55,-12 0,21,-1,0,-3 20,104,25 29,10,7184520 0,D,48 0,A,-3379596 0,B,15127982 0,C,40 48,111,13 27,10C,1335 46,10D,47 37,20,111,-13,-6 0,21,0,0,-1 21,104,21 28,111,12 34,10C,1320 46,10D,47 49,104,18 24,20,98,-33,-9 0,21,0,-1,-1 21,111,12 29,10C,1281 46,10D,47 50,104,18 29,111,14 27,20,82,-35,-7 0,21,-1,0,1 18,10,7184580 0,D,46 0,A,-3379595 0,B,15127974 0,C,40 66,10C,1308 44,10D,45 49,104,26 25,20,112,-21,-6 0,21,-1,-1,-1 17,10,7184600 0,D,45 0,A,-3379595 0,B,15127971 0,C,40 67,111,15 29,10C,1281 42,10D,45 47,104,32 21,20,106,-19,-21 0,21,-1,-1,-2 18,10,7184620 0,D,44 0,A,-3379594 0,B,15127969 0,C,40 66,111,16 38,10C,1292 45,10D,45 37,20,100,-22,-27 0,21,-1,0,-2 20,104,50 28,111,19 30,10C,1304 47,10D,45 47,104,60 24,10,7184660 0,D,42 0,A,-3379593 0,B,15127964 0,C,40 41,111,21 19,20,94,-18,-28 0,21,-2,0,0 20,10C,1328 40,10D,43 48,104,68 34,111,21 31,10C,1351 35,20,93,-22,-10 0,21,-2,0,0 19,10D,43 44,104,69 31,111,21 47,10C,1378 36,10,7184700 0,D,42 0,A,-3379592 0,B,15127959 0,C,43 45,10D,43 36,20,97,-19,-15 0,21,-1,0,0 19,104,68 33,111,21 24,10,7184720 0,D,41 0,A,-3379592 0,B,15127956 0,C,43 41,10C,1406 49,10D,43 46,20,102,-3,-8 0,21,-1,0,0 19,104,69 28,111,21 21,10,7184740 0,D,40 0,A,-3379591 0,B,15127954 0,C,43 41,10C,1425 44,10D,41 50,104,69 20,20,105,-10,0 0,21,-1,1,0 22,111,21 19,10,7184760 0,D,40 0,A,-3379591 0,B,15127952 0,C,43 55,10C,1453 44,10D,41 49,104,69 22,20,101,-12,-13 0,21,-1,0,0 20,111,21 29,10C,1468 55,10D,41 50,104,67 30,111,21 26,20,96,-22,-21 0,21,-1,0,1 21,10C,1480 41,10D,40 46,104,69 30,111,22 32,10C,1488 34,20,87,-23,-8 0,21,-1,-2,-3 21,10D,40 43,104,70 30,111,22 30,10C,1484 55,10D,40 37,20,126,3,-5 0,21,0,0,-3 20,104,70 28,111,22 30,10C,1488 46,10D,40 47,104,71 23,10,7184860 0,D,39 0,A,-3379589 0,B,15127940 0,C,43 42,111,22 29,20,82,-33,0 0,21,0,0,-1 19,10C,1472 44,10D,39 49,104,71 22,10,7184880 0,D,39 0,A,-3379588 0,B,15127938 0,C,43 41,111,22 27,10C,1472 35,20,129,8,-3 0,21,0,0,-1 19,10D,39 45,104,71 31,111,22 30,10C,1472 52,10D,39 37,20,93,-27,0 0,21,0,-1,0 19,104,71 26,111,22 30,10C,1468 44,10D,39 46,104,72 30,111,22 30,20,93,-28,4 0,21,0,0,2 19,10C,1460 41,10D,39 47,104,71 33,111,22 30,10C,1460 35,20,101,-17,0 0,21,0,-1,0 19,10D,38 47,104,73 34,111,22 30,10C,1460 47,10D,38 37,20,129,13,-7 0,21,0,0,0 19,104,74 21,10,7184980 0,D,38 0,A,-3379587 0,B,15127926 0,C,43 55,111,23 31,10C,1449 46,10D,38 37,20,116,-6,5 0,21,1,0,0 19,104,74 20,10,7185000 0,D,38 0,A,-3379587 0,B,15127924 0,C,43 56,111,23 27,10C,1453 43,10D,38 37,20,84,-19,-8 0,21,1,0,0 25,104,77 29,111,23 29,10C,1445 47,10D,38 48,104,77 31,20,112,7,-3 0,21,1,-1,-1 21,111,24 28,10C,1441 47,10D,38 50,104,78 44,111,24 21,20,123,0,-6 0,21,1,0,0 21,10C,1449 44,10D,38 50,104,78 28,111,24 32,10C,1449 35,20,96,-19,-5 0,21,1,0,-1 21,10D,38 44,104,80 29,111,24 41,10C,1453 43,10D,37 37,20,115,-7,-2 0,21,2,-1,0 16,10,7185100 0,D,37 0,A,-3379586 0,B,15127912 0,C,43 67,104,80 31,111,25 31,10C,1460 53,10D,37 37,20,103,0,5 0,21,1,0,-1 20,104,81 28,111,25 32,10C,1468 41,10D,37 49,10,7185140 0,D,37 0,A,-3379586 0,B,15127908 0,C,43 45,104,80 19,20,86,-21,6 0,21,2,0,1 20,111,25 30,10C,1488 42,10D,36 38,10,7185160 0,D,37 0,A,-3379586 0,B,15127906 0,C,43 41,104,81 28,111,25 20,20,102,-20,-6 0,21,2,-1,0 21,10C,1492 46,10D,36 39,10,7185180 0,D,37 0,A,-3379586 0,B,15127903 0,C,43 40,104,81 27,111,25 27,20,92,-26,6 0,21,1,-1,1 19,10C,1492 38,10D,36 47,104,81 30,111,25 30,10C,1496 39,20,101,-11,0 0,21,0,0,0 19,10D,36 45,104,81 41,111,25 33,10C,1503 43,10D,36 38,20,84,-22,-4 0,21,0,0,0 19,104,81 34,111,25 32,10,7185240 0,D,37 0,A,-3379587 0,B,15127896 0,C,43 41,10C,1519 40,10D,36 38,20,92,-22,0 0,21,0,0,2 19,104,81 30,111,25 22,10,7185260 0,D,37 0,A,-3379587 0,B,15127894 0,C,43 41,10C,1519 41,10D,36 49,104,81 21,20,95,-15,-10 0,21,0,-1,0 19,111,25 32,10C,1523 44,10D,36 49,104,81 30,111,25 27,20,85,-24,-13 0,21,0,0,0 19,10C,1523 45,10D,37 50,104,81 30,111,25 30,10C,1531 33,20,110,-5,-10 0,21,0,0,0 19,10D,37 37,10,7185320 0,D,38 0,A,-3379588 0,B,15127887 0,C,43 41,104,81 27,111,25 34,10C,1542 41,10D,37 42,20,104,-7,-16 0,21,0,0,0 20,104,81 40,111,25 34,10C,1531 46,10D,37 42,10,7185360 0,D,38 0,A,-3379589 0,B,15127882 0,C,43 41,104,81 20,20,103,-15,-18 0,21,-1,0,0 20,111,20 31,10C,1519 46,10D,38 43,10,7185380 0,D,39 0,A,-3379589 0,B,15127880 0,C,43 40,104,63 24,20,98,-8,1 0,21,0,0,-2 20,111,16 32,10C,1476 45,10D,38 50,104,44 31,111,15 26,20,119,-5,-13 0,21,0,0,0 20,10C,1414 41,10D,38 60,104,36 24,10,7185420 0,D,39 0,A,-3379590 0,B,15127875 0,C,43 41,111,14 19,20,100,-19,-2 0,21,0,0,0 20,10C,1328 44,10D,38 52,104,30 23,10,7185440 0,D,38 0,A,-3379590 0,B,15127873 0,C,43 40,111,14 29,20,106,-13,-5 0,21,0,0,0 19,10C,1269 44,10D,38 44,104,27 24,10,7185460 0,D,38 0,A,-3379591 0,B,15127871 0,C,43 40,111,13 28,10C,1234 43,20,103,-18,-17 0,21,0,0,0 19,10D,38 49,104,24 32,10,7185480 0,D,38 0,A,-3379591 0,B,15127868 0,C,43 40,111,12 32,10C,1207 33,20,96,-32,-14 0,21,-1,0,-1 21,10D,38 46,104,21 22,10,7185500 0,D,37 0,A,-3379591 0,B,15127866 0,C,43 40,111,12 32,10C,1195 39,20,91,-26,-15 0,21,-1,0,0 20,10D,37 45,104,18 27,10,7185520 0,D,37 0,A,-3379592 0,B,15127864 0,C,43 40,111,11 28,10C,1171 43,20,100,-26,-2 0,21,-1,0,0 19,10D,37 45,104,15 24,10,7185540 0,D,36 0,A,-3379592 0,B,15127862 0,C,43 40,111,11 41,10C,1191 34,20,107,-19,-14 0,21,-2,0,0 19,10D,37 46,104,14 23,10,7185560 0,D,35 0,A,-3379592 0,B,15127860 0,C,43 41,111,11 30,10C,1195 43,20,101,-26,-14 0,21,-2,0,0 20,10D,37 42,104,14 22,10,7185580 0,D,35 0,A,-3379593 0,B,15127857 0,C,43 41,111,11 27,10C,1195 43,10D,35 47,20,94,-36,-8 0,21,-1,0,0 19,104,13 33,111,11 27,10,7185600 0,D,35 0,A,-3379593 0,B,15127855 0,C,52 40,10C,1203 41,10D,35 41,20,103,-29,-8 0,21,-1,0,1 20,104,13 20,10,7185620 0,D,33 0,A,-3379593 0,B,15127853 0,C,52 55,111,11 31,10C,1214 43,10D,35 37,20,96,-34,-14 0,21,-1,0,0 20,104,13 19,10,7185640 0,D,32 0,A,-3379594 0,B,15127851 0,C,52 56,111,11 37,10C,1218 46,10D,32 37,20,86,-43,-18 0,21,-1,0,0 20,104,13 29,111,11 34,10C,1210 46,10D,32 48,104,13 26,20,92,-34,1 0,21,-1,0,0 16,10,7185680 0,D,30 0,A,-3379594 0,B,15127848 0,C,52 67,111,11 32,10C,1199 50,10D,32 37,20,96,-40,-8 0,21,-1,-1,0 21,104,13 30,111,11 31,10C,1207 46,10D,32 48,104,13 27,20,91,-44,-11 0,21,-1,0,0 20,111,11 28,10C,1199 46,10D,27 49,104,14 32,111,11 27,20,102,-34,-2 0,21,-1,0,0 20,10C,1195 41,10D,27 45,104,13 39,111,11 32,10C,1195 34,20,99,-39,-11 0,21,-1,0,0 21,10D,27 43,104,13 30,111,11 32,10C,1195 46,10D,27 37,20,104,-30,-7 0,21,-1,0,0 17,10,7185780 0,D,22 0,A,-3379595 0,B,15127840 0,C,52 66,104,14 27,111,12 32,10C,1007 59,10D,21 38,20,97,-38,-4 0,21,-1,0,0 19,104,20 28,111,11 30,10C,988 49,10D,21 38,10,7185820 0,D,19 0,A,-3379595 0,B,15127838 0,C,52 41,104,20 18,20,92,-43,-15 0,21,-1,0,0 21,111,11 39,10C,929 45,10D,21 38,10,7185840 0,D,17 0,A,-3379596 0,B,15127837 0,C,52 41,104,21 19,20,100,-38,-12 0,21,-1,0,0 19,111,11 31,10C,902 54,10D,21 39,10,7185860 0,D,16 0,A,-3379596 0,B,15127836 0,C,52 40,104,20 20,20,93,-33,-15 0,21,-1,0,0 19,111,11 28,10C,882 44,10D,16 87,104,20 26,20,94,-42,-10 0,21,-1,0,0 20,111,11 27,10C,859 44,10D,16 47,104,20 29,111,11 30,10C,855 34,20,95,-41,-10 0,21,-1,0,-1 24,10D,16 47,104,20 21,10,7185920 0,D,11 0,A,-3379596 0,B,15127833 0,C,52 41,111,12 28,10C,824 42,20,104,-27,-12 0,21,-1,0,0 19,10D,16 42,104,23 23,10,7185940 0,D,10 0,A,-3379596 0,B,15127833 0,C,52 41,111,12 27,10C,804 46,10D,11 37,20,102,-30,-9 0,21,-1,0,0 19,104,26 38,111,12 29,10C,789 56,10D,11 46,104,27 20,20,103,-31,-11 0,21,0,0,0 20,111,12 20,10,7185980 0,D,7 0,A,-3379596 0,B,15127832 0,C,52 55,10C,792 44,10D,11 50,104,28 20,20,99,-26,-14 0,21,-1,0,0 21,111,12 19,10,7190000 0,D,6 0,A,-3379596 0,B,15127831 0,C,52 56,10C,757 44,10D,6 48,104,29 22,20,98,-28,-11 0,21,-1,0,0 20,111,12 29,10C,710 46,10D,6 45,104,31 29,111,12 34,10C,699 33,20,100,-24,-14 0,21,-1,0,0 16,10,7190040 0,D,4 0,A,-3379597 0,B,15127831 0,C,52 67,10D,6 46,104,31 28,111,12 40,10C,687 34,20,98,-25,-11 0,21,-1,0,0 20,10D,6 47,104,31 29,111,12 31,10C,687 44,10D,3 37,20,99,-27,-10 0,21,-1,0,0 19,104,31 32,111,11 32,10C,691 45,10D,3 38,10,7190100 0,D,1 0,A,-3379597 0,B,15127830 0,C,52 41,104,30 19,20,99,-27,-12 0,21,-1,0,0 19,111,11 35,10C,703 44,10D,3 51,104,29 29,111,11 22,20,104,-21,-14 0,21,-1,0,0 19,10C,703 43,10D,3 45,104,28 22,10,7190140 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,111,11 27,10C,699 34,20,98,-14,-12 0,21,-1,0,0 21,10D,1 44,104,27 32,10,7190160 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,111,11 43,10C,675 34,20,104,-12,-13 0,21,-1,0,0 20,10D,1 40,10,7190180 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,104,28 31,111,11 38,10C,656 34,20,102,-18,-13 0,21,-1,0,0 19,10D,1 44,10,7190200 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 45,104,28 28,111,11 30,10C,644 34,20,101,-15,-12 0,21,-1,0,0 19,10D,1 44,10,7190220 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,104,28 28,111,11 29,10C,648 42,20,102,-16,-11 0,21,-1,0,0 19,10D,0 40,10,7190240 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,104,29 27,111,11 30,10C,648 45,10D,0 37,20,102,-15,-12 0,21,-1,0,0 20,104,29 38,111,11 30,10C,640 50,10D,0 45,104,29 21,20,104,-14,-11 0,21,-1,0,0 20,111,11 29,10C,648 46,10D,0 49,104,29 29,111,11 27,20,102,-15,-10 0,21,-1,0,0 22,10C,652 41,10D,0 45,104,29 30,111,11 37,10C,652 32,20,102,-15,-14 0,21,-1,0,0 22,10D,0 47,104,29 34,111,11 39,10C,648 44,10D,0 37,20,101,-14,-12 0,21,-1,0,0 20,104,29 28,111,11 33,10C,644 41,10D,0 48,104,29 23,10,7190360 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,111,11 29,20,104,-15,-10 0,21,-1,0,0 19,10C,648 40,10D,0 47,104,28 31,111,11 34,10C,644 34,20,101,-15,-11 0,21,0,0,0 20,10D,0 46,104,28 28,111,11 30,10C,632 48,10D,0 36,20,102,-15,-12 0,21,-1,0,0 20,104,28 28,111,11 30,10C,636 43,10D,0 46,104,27 30,111,11 22,20,101,-17,-11 0,21,0,0,0 23,10C,644 46,10D,0 49,104,27 34,111,11 30,10C,636 34,20,101,-15,-11 0,21,-1,0,0 19,10D,0 42,104,27 23,10,7190460 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 41,111,11 35,10C,632 43,20,100,-16,-12 0,21,-1,0,0 19,10D,0 46,104,27 22,10,7190480 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 40,111,11 32,10C,625 42,10D,0 36,20,101,-14,-13 0,21,-1,0,0 18,104,27 29,111,11 35,10C,621 42,10D,0 45,104,27 34,20,102,-14,-13 0,21,-1,0,0 18,111,11 30,10,7190520 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 48,10C,632 40,10D,0 45,104,26 25,20,103,-14,-11 0,21,-1,0,0 20,111,11 20,10,7190540 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 56,10C,632 40,10D,0 45,104,26 21,20,103,-15,-13 0,21,-1,0,0 21,111,11 19,10,7190560 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 55,10C,617 54,10D,0 44,104,26 21,20,102,-15,-13 0,21,-1,0,0 21,111,11 28,10C,621 46,10D,0 50,104,26 30,111,11 26,20,103,-14,-12 0,21,-1,0,0 16,10,7190600 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 67,10C,621 41,10D,0 48,104,26 29,111,11 21,20,102,-13,-12 0,21,-1,0,0 17,10,7190620 0,D,0 0,A,-3379597 0,B,15127830 0,C,52 67,10C,625 40,10D,0 47,104,26 30,111,11 30,20,102,-15,-11 0,21,-1,0,0 17,10,7190640 0,D,0 0,A,-3379597 0,B,15127830 0,C,54 67,10C,605 42,10D,0 50,104,26 25,20,102,-15,-12 0,21,-1,0,0 21,111,11 27,10C,621 55,10D,0 44,104,26 22,10,7190680 0,D,0 0,A,-3379597 0,B,15127830 0,C,54 41,111,11 19,20,103,-13,-12 0,21,-1,0,0 20,10C,621 40,10D,0 43,104,26 40,111,11 24,10,7190700 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 39,10C,617 32,20,102,-15,-14 0,21,-1,0,0 21,10D,0 44,104,26 30,111,11 31,10C,613 50,10D,0 37,20,103,-14,-11 0,21,-1,0,0 20,104,26 25,111,11 31,10,7190740 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 41,10C,609 40,10D,0 45,104,26 21,20,104,-15,-11 0,21,-1,0,0 19,111,11 32,10C,613 33,10,7190760 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 41,10D,0 43,104,26 35,20,102,-14,-12 0,21,-1,0,0 19,111,11 27,10C,613 35,10,7190780 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 40,10D,0 43,104,25 33,111,11 21,20,101,-15,-11 0,21,-1,0,0 19,10C,613 45,10D,0 49,104,25 29,111,11 29,10C,609 34,20,101,-15,-12 0,21,-1,0,0 20,10D,0 40,10,7190820 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 40,104,25 28,111,11 30,10C,609 43,10D,0 38,20,101,-14,-12 0,21,-1,0,0 20,104,26 28,111,11 30,10C,605 45,10D,0 47,104,25 30,20,101,-16,-13 0,21,-1,0,0 21,111,11 28,10C,609 46,10D,0 48,104,25 44,10,7190880 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 41,111,10 19,20,101,-17,-12 0,21,-1,0,0 21,10C,613 40,10D,0 59,104,25 31,111,10 30,10C,613 34,20,101,-15,-13 0,21,-1,0,0 21,10D,0 46,104,25 27,111,11 30,10C,613 35,10,7190920 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 44,10D,0 36,20,103,-14,-12 0,21,-1,0,0 19,104,25 26,111,11 33,10C,601 34,10,7190940 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 41,10D,0 43,104,25 21,20,102,-15,-11 0,21,-1,0,0 20,111,11 29,10C,605 43,10D,0 46,104,25 30,111,10 33,10C,605 33,20,102,-14,-11 0,21,-1,0,0 19,10D,0 57,104,25 33,111,10 30,10C,609 45,10D,0 37,20,102,-14,-10 0,21,-1,0,0 20,104,25 29,111,10 29,10C,609 46,10D,0 49,104,25 29,20,101,-16,-12 0,21,-1,0,0 21,111,10 32,10C,605 43,10D,0 45,104,25 31,111,11 29,20,100,-17,-14 0,21,-1,0,0 16,10,7191040 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 67,10C,601 42,10D,0 53,104,25 22,20,101,-16,-13 0,21,-1,0,0 20,111,10 29,10C,605 46,10D,0 49,104,25 32,111,11 24,20,101,-15,-12 0,21,-1,0,0 18,10,7191080 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 65,10C,605 52,10D,0 48,104,25 20,20,102,-14,-14 0,21,-1,0,0 22,111,10 31,10C,597 43,10D,0 45,104,25 28,111,11 33,10C,605 34,20,101,-15,-11 0,21,-1,0,0 16,10,7191120 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 67,10D,0 46,104,25 31,111,10 24,10,7191140 0,D,0 0,A,-3379597 0,B,15127830 0,C,55 44,10C,601 33,20,102,-16,-13 0,21,-1,0,0 19,10D,0 43,104,25 31,111,10 31,10C,609 43,10D,0 37,20,103,-15,-11 0,21,-1,0,0 20,104,25 30,111,10 28,10C,605 48,10D,0 37,10,7191180 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 41,104,25 28,20,101,-16,-14 0,21,-1,0,0 19,111,10 30,10C,617 43,10D,0 39,10,7191200 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 40,104,25 32,111,10 20,20,105,-14,-11 0,21,-1,0,0 20,10C,601 32,10,7191220 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 46,10D,0 47,104,25 39,111,10 20,20,102,-14,-10 0,21,-1,0,0 23,10C,609 42,10D,0 46,104,25 29,111,10 30,10C,605 45,20,100,-16,-13 0,21,-1,0,0 20,10D,0 44,104,25 29,111,10 30,10C,601 46,10D,0 36,20,102,-15,-13 0,21,-1,0,0 19,104,25 21,10,7191280 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 56,111,10 27,10C,609 46,10D,0 45,20,102,-15,-12 0,21,-1,0,0 21,104,25 28,111,10 30,10C,609 46,10D,0 48,104,25 29,20,103,-16,-12 0,21,-1,0,0 17,10,7191320 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 66,111,10 31,10C,605 42,10D,0 44,20,105,-15,-4 0,21,-1,0,0 17,10,7191340 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 66,104,26 29,111,17 30,10C,628 44,10D,0 37,20,106,-13,-12 0,21,-1,0,0 21,104,50 27,111,17 29,10C,863 46,10D,0 43,104,56 31,111,17 22,20,111,-7,-10 0,21,0,0,0 20,10C,1187 44,10D,0 45,104,50 29,111,17 39,10,7191400 0,D,0 0,A,-3379597 0,B,15127830 0,C,56 41,10C,1468 32,20,103,-2,-6 0,21,-1,0,0 20,10D,0 54,104,42 32,111,16 34,10C,1531 53,10D,0 37,20,104,-2,-13 0,21,-1,0,0 19,104,40 31,111,16 28,10C,1429 47,10D,0 49,104,40 27,20,107,-4,-11 0,21,-1,0,0 19,111,16 30,10C,1328 43,10D,0 37,10,7191460 0,D,2 0,A,-3379597 0,B,15127829 0,C,56 45,104,42 27,111,16 22,20,104,-9,-20 0,21,-1,0,0 19,10C,1285 39,10D,0 39,10,7191480 0,D,3 0,A,-3379597 0,B,15127829 0,C,56 40,104,44 28,111,17 29,10C,1300 34,20,101,-5,-17 0,21,-1,0,0 20,10D,2 53,104,47 33,111,17 29,10C,1343 46,10D,2 37,20,110,-2,-11 0,21,-1,0,0 20,104,47 20,10,7191520 0,D,4 0,A,-3379597 0,B,15127829 0,C,56 56,111,17 27,10C,1390 45,10D,2 37,20,100,-11,-12 0,21,-1,0,0 21,104,47 32,111,18 30,10C,1437 46,10D,2 48,104,51 25,20,103,-10,-16 0,21,-1,0,0 21,10,7191560 0,D,6 0,A,-3379597 0,B,15127828 0,C,56 63,111,18 33,10C,1558 42,10D,5 45,20,106,4,-14 0,21,-1,0,0 20,104,51 33,111,18 33,10C,1601 46,10D,5 48,104,50 21,20,103,-7,-8 0,21,-1,0,0 21,111,19 41,10C,1628 43,10D,5 45,104,52 28,111,20 33,20,109,4,-15 0,21,-1,0,-1 21,10C,1671 44,10D,5 49,104,53 30,111,20 30,10C,1726 35,20,114,13,-9 0,21,-1,0,0 21,10D,8 43,104,53 29,111,20 33,10C,1746 44,10D,8 37,20,114,2,-7 0,21,-2,0,0 21,104,53 31,111,20 30,10C,1757 45,10D,8 44,104,53 23,10,7191680 0,D,11 0,A,-3379597 0,B,15127824 0,C,56 45,111,20 19,20,108,0,-12 0,21,-1,0,-2 20,10C,1773 44,10D,8 46,104,53 23,10,7191700 0,D,12 0,A,-3379597 0,B,15127824 0,C,56 42,111,20 28,20,110,6,-14 0,21,-1,0,-2 20,10C,1789 40,10D,11 44,104,54 23,10,7191720 0,D,12 0,A,-3379597 0,B,15127823 0,C,56 42,111,20 31,10C,1804 34,20,110,6,-18 0,21,-1,0,-2 20,10D,11 45,104,53 31,111,20 30,10C,1816 46,10D,11 37,20,113,5,-11 0,21,-1,0,1 20,104,54 26,111,20 30,10C,1824 34,10,7191760 0,D,14 0,A,-3379598 0,B,15127821 0,C,56 41,10D,11 44,104,54 24,20,112,6,-8 0,21,-1,0,-1 20,111,21 37,10C,1835 43,10,7191780 0,D,14 0,A,-3379598 0,B,15127820 0,C,56 41,10D,13 47,104,55 21,20,115,1,-17 0,21,-1,0,1 19,111,21 31,10C,1863 35,10,7191800 0,D,15 0,A,-3379598 0,B,15127819 0,C,56 40,10D,13 53,104,58 22,20,93,-7,-1 0,21,-1,0,0 18,111,21 29,10,7191820 0,D,16 0,A,-3379598 0,B,15127818 0,C,56 49,10C,1890 41,10D,13 46,104,57 21,20,107,-2,-17 0,21,-1,0,0 19,111,21 31,10C,1839 35,10,7191840 0,D,16 0,A,-3379598 0,B,15127817 0,C,56 41,10D,15 44,104,58 28,111,21 22,20,88,-26,-19 0,21,-1,0,2 24,10C,1789 33,10,7191860 0,D,17 0,A,-3379598 0,B,15127816 0,C,56 40,10D,15 47,104,60 34,111,21 25,20,94,-16,-18 0,21,-1,0,2 20,10C,1742 33,10,7191880 0,D,18 0,A,-3379598 0,B,15127815 0,C,56 43,10D,15 44,104,61 30,111,21 30,10C,1683 35,20,122,8,-7 0,21,-1,0,-2 21,10D,15 44,104,62 39,111,21 32,10C,1648 45,10D,18 37,20,102,0,-15 0,21,-2,1,-1 18,10,7191920 0,D,19 0,A,-3379598 0,B,15127813 0,C,56 65,104,62 40,111,21 36,10C,1574 36,10,7191940 0,D,20 0,A,-3379598 0,B,15127812 0,C,56 40,10D,18 40,20,99,-5,-12 0,21,-1,0,1 19,104,65 27,111,21 32,10C,1515 35,10,7191960 0,D,20 0,A,-3379598 0,B,15127810 0,C,56 41,10D,18 47,104,67 22,20,101,-11,-7 0,21,-2,0,0 19,111,21 30,10C,1437 43,10D,21 46,104,67 46,111,20 22,20,104,0,-7 0,21,-1,0,0 19,10C,1332 43,10D,21 38,10,7192000 0,D,22 0,A,-3379599 0,B,15127808 0,C,56 41,104,67 31,111,18 31,20,107,-9,0 0,21,-1,0,2 19,10C,1242 41,10,7192020 0,D,22 0,A,-3379599 0,B,15127806 0,C,56 41,10D,21 47,104,55 31,111,15 25,20,78,-36,-13 0,21,-1,0,4 19,10C,1191 41,10D,21 54,104,44 30,111,14 29,10C,1195 35,20,120,-2,-16 0,21,-1,0,0 20,10D,22 48,104,38 22,10,7192060 0,D,22 0,A,-3379599 0,B,15127804 0,C,57 41,111,14 31,10C,1203 39,20,105,-19,-30 0,21,-3,0,-1 18,10D,22 45,104,31 23,10,7192080 0,D,22 0,A,-3379599 0,B,15127802 0,C,57 41,111,13 28,10C,1203 46,10D,22 36,20,92,-20,-19 0,21,-1,0,0 21,104,27 33,111,12 32,10C,1183 48,10D,22 53,104,23 21,20,115,0,-23 0,21,-2,2,0 21,111,12 27,10C,1167 48,10D,22 48,104,20 28,111,11 27,10,7192140 0,D,23 0,A,-3379599 0,B,15127798 0,C,57 45,10C,1144 33,20,93,-21,-24 0,21,-2,0,0 19,10D,22 47,104,20 41,111,12 31,10C,960 43,10D,22 38,20,102,-22,-27 0,21,-2,0,0 19,104,22 28,111,11 40,10C,1023 43,10D,22 46,104,21 27,20,91,-31,-11 0,21,-2,0,-4 19,111,12 31,10C,1027 45,10D,22 39,10,7192200 0,D,22 0,A,-3379599 0,B,15127794 0,C,57 40,104,20 27,20,96,-18,-13 0,21,-2,0,0 21,111,12 27,10C,1000 52,10,7192220 0,D,21 0,A,-3379599 0,B,15127793 0,C,57 41,10D,22 48,104,20 20,20,95,-25,-11 0,21,-2,0,0 21,111,12 29,10C,968 42,10D,22 38,10,7192240 0,D,21 0,A,-3379599 0,B,15127791 0,C,57 45,104,20 25,20,105,-20,-12 0,21,-1,0,0 19,111,11 31,10C,933 42,10D,22 38,10,7192260 0,D,21 0,A,-3379599 0,B,15127790 0,C,57 41,104,20 28,111,11 20,20,96,-24,-8 0,21,-1,2,0 21,10C,894 42,10D,21 47,10,7192280 0,D,20 0,A,-3379599 0,B,15127789 0,C,57 41,104,20 27,111,11 22,20,97,-30,3 0,21,0,1,-1 19,10C,863 38,10D,21 47,104,20 30,111,11 30,10C,847 38,20,114,-4,0 0,21,-1,0,0 19,10D,21 50,10,7192320 0,D,20 0,A,-3379599 0,B,15127787 0,C,57 40,104,20 29,111,11 33,10C,835 33,20,96,-25,-3 0,21,-1,1,0 24,10D,21 45,10,7192340 0,D,19 0,A,-3379599 0,B,15127785 0,C,57 40,104,20 28,111,11 29,10C,835 35,20,102,-24,-1 0,21,-1,0,0 19,10D,19 57,104,21 30,111,11 29,10C,828 46,10D,19 38,20,112,-16,-6 0,21,-1,0,0 20,104,21 27,111,11 22,10,7192380 0,D,18 0,A,-3379599 0,B,15127783 0,C,57 41,10C,824 44,10D,19 48,104,21 21,20,109,-31,-4 0,21,-2,-1,-1 20,111,11 20,10,7192400 0,D,18 0,A,-3379599 0,B,15127782 0,C,57 56,10C,832 44,10D,17 49,104,20 30,20,91,-21,-9 0,21,-1,0,-1 21,111,11 28,10C,839 46,10D,17 50,104,20 45,111,11 21,20,92,-41,-12 0,21,-1,0,0 18,10,7192440 0,D,17 0,A,-3379599 0,B,15127780 0,C,57 65,10C,839 40,10D,17 48,104,20 31,111,11 21,20,111,-17,-10 0,21,-1,0,0 21,10C,835 43,10D,17 46,104,21 28,111,11 34,10C,832 34,20,96,-25,-12 0,21,-1,0,0 15,10,7192480 0,D,17 0,A,-3379599 0,B,15127778 0,C,57 67,10D,16 48,104,21 27,111,11 24,10,7192500 0,D,16 0,A,-3379599 0,B,15127777 0,C,57 41,10C,820 31,20,93,-31,-9 0,21,-1,0,0 21,10D,16 43,104,21 32,111,11 40,10C,820 46,10D,16 47,20,95,-33,0 0,21,0,0,0 19,104,22 30,111,11 34,10C,808 34,10,7192540 0,D,15 0,A,-3379599 0,B,15127775 0,C,57 41,10D,16 44,104,22 20,20,102,-28,-3 0,21,-1,-1,1 21,111,11 28,10C,812 37,10,7192560 0,D,14 0,A,-3379599 0,B,15127774 0,C,57 40,10D,15 47,104,22 30,20,102,-27,-3 0,21,-1,0,-1 19,111,11 30,10C,808 47,10D,15 49,104,22 30,111,11 27,20,93,-33,-22 0,21,-1,-1,0 18,10C,816 39,10D,15 39,10,7192600 0,D,13 0,A,-3379599 0,B,15127772 0,C,57 40,104,22 31,111,11 30,10C,812 34,20,98,-33,-1 0,21,-1,0,0 19,10D,13 46,10,7192620 0,D,13 0,A,-3379599 0,B,15127772 0,C,57 45,104,22 31,111,11 30,10C,824 42,20,103,-30,-4 0,21,-2,0,0 20,10D,13 44,104,22 34,111,11 30,10C,835 45,10D,13 37,20,108,-25,-10 0,21,-1,0,-1 20,104,22 29,111,11 34,10C,832 46,10D,13 48,104,21 26,20,92,-34,-1 0,21,-1,0,0 16,10,7192680 0,D,10 0,A,-3379598 0,B,15127770 0,C,57 68,111,12 31,10C,835 45,10D,10 42,20,99,-29,-14 0,21,-1,0,0 17,10,7192700 0,D,9 0,A,-3379598 0,B,15127769 0,C,57 67,104,23 27,111,12 34,10C,851 44,10D,10 37,20,102,-24,-8 0,21,-1,0,0 20,104,25 41,111,12 30,10C,886 54,10D,10 50,104,25 22,20,105,-33,-9 0,21,0,0,0 20,111,12 31,10C,886 43,10D,10 43,104,25 31,111,12 30,10C,890 34,20,93,-23,-12 0,21,-1,0,0 20,10D,7 47,104,25 31,111,12 30,10,7192780 0,D,7 0,A,-3379598 0,B,15127767 0,C,57 41,10C,875 32,20,102,-26,-10 0,21,-1,0,-1 20,10D,7 46,104,25 35,111,12 35,10C,855 43,10D,7 37,20,95,-31,-14 0,21,-1,0,0 20,104,25 31,111,12 35,10C,843 43,10D,7 45,104,25 31,20,93,-33,-13 0,21,0,0,0 19,111,11 31,10C,792 44,10D,5 39,10,7192840 0,D,5 0,A,-3379598 0,B,15127766 0,C,57 41,104,26 27,20,102,-23,-11 0,21,-1,0,0 24,111,11 31,10C,738 42,10D,5 38,10,7192860 0,D,5 0,A,-3379598 0,B,15127766 0,C,57 40,104,26 27,111,11 22,20,99,-28,-9 0,21,-1,0,0 19,10C,714 38,10D,5 46,104,26 30,111,11 31,10C,703 43,20,103,-18,-16 0,21,0,0,-1 19,10D,5 41,104,26 31,111,11 30,10C,687 46,10D,4 37,20,105,-19,-6 0,21,-1,0,0 20,104,26 25,111,11 28,10,7192920 0,D,3 0,A,-3379598 0,B,15127765 0,C,57 41,10C,671 44,10D,4 46,20,101,-23,-10 0,21,-1,0,0 20,104,27 28,111,11 35,10C,660 43,10D,4 57,104,27 22,20,98,-27,-12 0,21,-1,0,0 23,111,11 31,10C,660 35,10,7192960 0,D,3 0,A,-3379598 0,B,15127765 0,C,57 41,10D,4 47,104,27 26,20,98,-25,-8 0,21,-1,0,0 18,111,11 30,10C,648 44,10,7192980 0,D,3 0,A,-3379598 0,B,15127764 0,C,57 41,10D,3 47,104,28 20,20,101,-26,-11 0,21,-1,0,0 20,111,11 30,10C,640 35,10,7193000 0,D,2 0,A,-3379598 0,B,15127764 0,C,57 41,10D,3 43,104,28 30,111,11 21,20,98,-28,-10 0,21,-1,0,0 18,10C,648 41,10D,3 39,10,7193020 0,D,2 0,A,-3379598 0,B,15127764 0,C,58 41,104,28 41,111,11 20,20,100,-27,-11 0,21,-1,0,0 19,10C,656 45,10D,1 49,104,28 30,111,11 29,10C,667 34,20,100,-26,-10 0,21,-1,0,0 19,10D,1 36,10,7193060 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 42,104,28 31,111,11 34,10C,691 41,20,102,-24,-11 0,21,-1,0,0 18,10D,1 37,10,7193080 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 41,104,27 28,111,11 45,10C,664 34,20,102,-14,-11 0,21,-1,0,0 19,10D,1 36,10,7193100 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 41,104,27 27,111,11 34,10C,667 44,10D,0 37,20,102,-20,-13 0,21,-1,0,0 21,104,27 27,111,11 30,10C,660 46,10D,0 52,104,27 24,10,7193140 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 44,111,11 19,20,100,-20,-9 0,21,-1,0,0 21,10C,656 43,10D,0 43,104,27 23,10,7193160 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 41,111,11 28,10C,652 34,20,101,-19,-13 0,21,-1,0,0 20,10D,0 45,104,28 23,10,7193180 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 41,111,11 32,10C,656 43,20,104,-18,-12 0,21,-1,0,0 19,10D,0 41,104,27 30,111,11 21,10,7193200 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 41,10C,648 44,10D,0 37,20,103,-18,-10 0,21,-1,0,0 19,104,27 31,111,11 23,10,7193220 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 44,10C,652 41,10D,0 45,104,27 29,20,103,-12,-11 0,21,-1,0,0 21,111,11 19,10,7193240 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 56,10C,644 41,10D,0 48,104,28 21,20,103,-15,-7 0,21,-1,0,0 21,111,16 56,10,7193260 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 41,10C,667 40,10D,0 43,20,106,-11,-11 0,21,-1,0,0 17,10,7193280 0,D,0 0,A,-3379598 0,B,15127764 0,C,58 66,104,49 29,111,16 33,10C,1019 41,10D,0 37,20,102,-7,-13 0,21,-1,0,-1 21,104,51 27,111,16 34,10C,1308 43,10D,0 47,104,45 31,20,102,-6,-15 0,21,-1,0,0 25,111,16 27,10C,1410 43,10D,1 45,104,41 41,111,17 22,20,108,0,-6 0,21,-1,0,0 16,10,7193340 0,D,1 0,A,-3379598 0,B,15127764 0,C,58 67,10C,1402 60,10D,1 45,104,43 22,20,105,-6,-12 0,21,-1,0,0 15,10,7193360 0,D,2 0,A,-3379597 0,B,15127763 0,C,58 68,111,18 31,10C,1347 44,10D,1 43,20,102,-8,-10 0,21,-1,0,0 20,104,49 27,111,19 30,10C,1425 46,10D,1 48,104,54 23,10,7193400 0,D,4 0,A,-3379597 0,B,15127763 0,C,58 40,111,19 19,20,106,7,-17 0,21,-1,0,0 20,10C,1539 44,10D,3 43,104,54 31,111,19 30,10C,1589 39,20,104,0,-8 0,21,0,0,0 21,10D,3 46,104,52 41,111,19 22,10,7193440 0,D,7 0,A,-3379597 0,B,15127762 0,C,58 41,10C,1625 32,20,107,4,-9 0,21,0,0,0 19,10D,3 43,104,56 32,111,20 34,10C,1699 44,10D,6 37,20,94,-10,-7 0,21,0,0,2 20,104,56 39,111,20 32,10C,1761 36,10,7193480 0,D,9 0,A,-3379597 0,B,15127761 0,C,58 41,10D,6 35,20,91,-15,-9 0,21,0,0,0 20,104,54 31,111,20 30,10C,1785 44,10D,6 46,104,54 29,111,20 22,20,106,0,-10 0,21,0,0,1 19,10C,1777 42,10D,6 47,104,54 30,111,20 30,10C,1789 33,20,95,-20,-8 0,21,0,-1,3 24,10D,6 42,104,54 33,10,7193540 0,D,12 0,A,-3379597 0,B,15127759 0,C,58 40,111,20 27,10C,1800 35,20,107,-6,-11 0,21,-1,0,0 20,10D,10 45,104,54 23,10,7193560 0,D,14 0,A,-3379597 0,B,15127758 0,C,58 41,111,20 32,10C,1808 39,20,96,-14,-16 0,21,0,0,2 19,10D,10 45,104,54 24,10,7193580 0,D,14 0,A,-3379597 0,B,15127757 0,C,58 42,111,20 31,10C,1832 39,20,107,0,-2 0,21,0,0,1 19,10D,10 45,104,54 24,10,7193600 0,D,16 0,A,-3379597 0,B,15127756 0,C,58 41,111,20 31,10C,1835 43,20,106,-12,-4 0,21,0,1,-2 20,10D,14 63,104,53 35,111,20 30,10C,1835 42,10D,14 36,20,95,-15,-13 0,21,-1,0,0 19,104,54 42,111,20 40,10C,1835 46,10D,14 48,104,54 21,20,103,-16,-4 0,21,-1,0,0 18,111,20 33,10C,1816 36,10,7193660 0,D,16 0,A,-3379597 0,B,15127753 0,C,59 41,10D,14 42,104,55 31,111,20 21,20,68,-35,-10 0,21,-1,1,-2 20,10C,1757 42,10D,17 44,104,56 30,111,20 33,10C,1710 42,20,121,8,-11 0,21,0,0,0 21,10D,17 46,104,58 33,111,20 30,10C,1671 45,10D,17 36,20,119,-12,-16 0,21,0,-1,5 20,104,60 28,111,20 42,10C,1636 46,10D,17 43,104,60 22,10,7193740 0,D,21 0,A,-3379597 0,B,15127748 0,C,59 45,111,20 28,20,100,-17,-7 0,21,0,0,0 21,10C,1582 40,10D,20 46,104,61 23,10,7193760 0,D,22 0,A,-3379597 0,B,15127746 0,C,59 40,111,20 32,10C,1535 34,20,102,-5,-4 0,21,-1,-2,-1 19,10D,20 44,104,61 31,111,20 31,10C,1480 42,10D,20 36,20,93,-11,-15 0,21,-1,0,0 20,104,63 29,111,20 33,10C,1410 35,10,7193800 0,D,23 0,A,-3379597 0,B,15127744 0,C,59 41,10D,20 42,104,65 22,20,121,1,-5 0,21,0,0,-1 19,111,20 30,10C,1304 36,10,7193820 0,D,23 0,A,-3379597 0,B,15127742 0,C,59 44,10D,23 55,104,67 21,20,111,-8,-4 0,21,0,0,2 19,111,20 28,10,7193840 0,D,24 0,A,-3379597 0,B,15127741 0,C,59 50,10C,1250 41,10D,23 56,104,65 22,20,85,-27,-12 0,21,-1,0,3 18,111,19 28,10C,1250 48,10D,23 48,104,65 30,111,19 30,10C,1242 35,20,105,-12,-10 0,21,-2,0,0 21,10D,23 42,104,62 33,111,18 33,10C,1230 45,10D,25 36,20,96,-22,-23 0,21,-1,0,0 20,104,58 28,111,16 34,10C,1210 42,10D,25 44,104,51 31,111,16 20,20,82,-32,6 0,21,0,0,0 21,10C,1199 45,10D,25 48,104,46 32,111,16 34,10C,1203 34,20,133,0,6 0,21,0,2,2 25,10D,25 48,104,43 41,111,16 34,10C,1214 34,10,7193960 0,D,27 0,A,-3379597 0,B,15127731 0,C,59 40,10D,26 35,20,96,-24,4 0,21,-1,0,1 21,104,42 26,111,16 31,10C,1277 48,10D,26 59,104,40 21,20,75,-30,3 0,21,-1,0,1 19,111,16 27,10C,1324 43,10,7194000 0,D,27 0,A,-3379597 0,B,15127728 0,C,59 41,10D,26 47,104,40 27,20,98,-14,-5 0,21,-1,0,0 19,111,16 30,10C,1312 43,10D,26 46,104,40 30,111,16 29,10C,1296 43,20,101,-15,-7 0,21,-1,-1,1 20,10D,27 44,104,44 23,10,7194040 0,D,27 0,A,-3379597 0,B,15127724 0,C,59 40,111,18 36,10C,1289 39,20,92,-19,-17 0,21,0,0,0 19,10D,27 53,104,51 34,111,18 29,10C,1261 46,10D,27 37,20,86,-28,-19 0,21,-1,-1,0 19,104,53 21,10,7194080 0,D,28 0,A,-3379597 0,B,15127721 0,C,59 56,111,18 32,10C,1226 42,10D,27 37,20,95,-21,-1 0,21,-1,1,-1 21,104,54 27,10,7194100 0,D,28 0,A,-3379596 0,B,15127719 0,C,59 49,111,18 28,10C,1246 45,10D,28 37,20,96,-27,-16 0,21,-1,0,1 20,104,54 33,111,18 30,10C,1238 46,10D,28 48,104,55 26,20,96,-12,3 0,21,-2,1,-1 17,10,7194140 0,D,29 0,A,-3379596 0,B,15127716 0,C,59 66,111,18 32,10C,1238 42,10D,28 45,20,53,-45,-2 0,21,-2,-1,-4 17,10,7194160 0,D,29 0,A,-3379596 0,B,15127714 0,C,59 66,104,55 39,111,18 29,10C,1242 44,10D,29 38,20,91,-35,-13 0,21,-2,-2,1 20,104,56 28,111,18 34,10C,1230 57,10D,29 47,10,7194200 0,D,29 0,A,-3379596 0,B,15127710 0,C,59 41,104,56 20,20,115,-2,0 0,21,-1,1,1 19,111,17 28,10C,1214 45,10D,29 50,104,51 35,111,16 25,20,17,-57,-48 0,21,-1,-3,2 21,10C,1218 44,10D,29 47,104,46 24,10,7194240 0,D,30 0,A,-3379596 0,B,15127707 0,C,59 41,111,16 23,20,100,-30,-6 0,21,-1,0,5 25,10C,1214 44,10D,30 44,104,45 23,10,7194260 0,D,30 0,A,-3379596 0,B,15127705 0,C,59 41,111,16 24,20,111,-16,-2 0,21,0,0,-1 20,10C,1289 53,10D,30 45,104,43 22,10,7194280 0,D,30 0,A,-3379596 0,B,15127703 0,C,59 40,111,16 20,20,82,-25,-5 0,21,-1,0,0 19,10C,1347 44,10D,30 51,104,43 24,10,7194300 0,D,31 0,A,-3379596 0,B,15127701 0,C,59 40,111,16 23,20,113,-8,-40 0,21,-1,-2,0 21,10C,1335 40,10D,30 44,104,43 30,111,16 30,10C,1316 35,20,101,-19,5 0,21,-1,0,0 19,10D,30 47,104,42 28,111,16 31,10,7194340 0,D,31 0,A,-3379595 0,B,15127698 0,C,59 44,10C,1296 33,20,93,-24,-9 0,21,-1,-1,1 20,10D,30 43,104,44 32,111,16 30,10C,1265 43,10,7194360 0,D,31 0,A,-3379595 0,B,15127696 0,C,59 41,10D,30 34,20,204,25,-40 0,21,0,-6,1 20,104,44 39,111,14 30,10C,1257 48,10D,31 49,104,38 21,20,116,0,0 0,21,0,0,0 20,111,14 38,10C,1214 36,10,7194400 0,D,32 0,A,-3379595 0,B,15127692 0,C,59 40,10D,31 44,104,33 22,20,122,-11,-1 0,21,0,0,0 19,111,14 29,10C,1238 44,10D,31 39,10,7194420 0,D,32 0,A,-3379595 0,B,15127690 0,C,59 41,104,28 28,20,114,-24,-5 0,21,-2,0,0 19,111,13 29,10C,1246 44,10D,31 45,104,24 29,111,12 30,10C,1238 35,20,59,-62,7 0,21,-2,0,-3 18,10D,31 49,104,21 29,111,12 31,10C,1257 42,10D,31 37,20,132,-7,-9 0,21,-2,1,-1 19,104,18 41,111,12 30,10C,1269 43,10D,31 57,104,16 22,20,77,-33,0 0,21,-1,-2,1 18,111,11 22,10,7194500 0,D,32 0,A,-3379594 0,B,15127682 0,C,59 55,10C,1191 41,10D,31 46,104,16 21,20,89,-25,-18 0,21,-2,0,-3 20,111,12 19,10,7194520 0,D,32 0,A,-3379594 0,B,15127680 0,C,59 57,10C,1128 44,10D,30 49,104,15 20,20,107,-2,12 0,21,-2,-1,1 25,111,11 30,10C,1238 46,10D,30 49,104,14 29,111,11 32,20,119,-12,1 0,21,-1,0,0 22,10C,1222 40,10D,30 46,104,13 30,111,11 31,10C,1191 34,20,128,-7,13 0,21,0,-1,3 21,10D,30 56,104,13 34,111,11 29,10C,1191 44,10D,30 37,20,98,-31,-18 0,21,0,-1,-2 22,104,13 27,111,11 30,10C,1179 45,10D,30 45,104,13 23,10,7194620 0,D,31 0,A,-3379593 0,B,15127671 0,C,59 40,111,11 19,20,40,-70,-18 0,21,0,0,2 21,10C,1136 44,10D,30 47,104,14 23,10,7194640 0,D,31 0,A,-3379593 0,B,15127669 0,C,59 41,111,14 24,20,98,-30,5 0,21,-2,-2,1 24,10C,1117 45,10D,30 48,104,22 22,10,7194660 0,D,31 0,A,-3379593 0,B,15127667 0,C,59 40,111,14 25,20,154,14,22 0,21,-1,0,-2 19,10C,1250 44,10D,30 44,104,28 31,111,16 31,10C,1277 43,20,106,-25,-7 0,21,-2,0,1 19,10D,30 47,104,36 32,111,17 24,10,7194700 0,D,30 0,A,-3379593 0,B,15127664 0,C,59 40,10C,1304 41,20,174,23,-35 0,21,-2,-1,6 20,10D,30 43,104,49 28,111,19 44,10C,1335 43,10D,30 36,20,102,-24,30 0,21,-2,1,0 21,104,58 27,111,19 41,10C,1285 34,10,7194740 0,D,30 0,A,-3379593 0,B,15127660 0,C,59 44,10D,30 36,20,102,-18,-4 0,21,-1,-1,7 21,104,60 29,111,16 32,10C,1242 36,10,7194760 0,D,31 0,A,-3379592 0,B,15127658 0,C,59 40,10D,30 44,20,105,-43,17 0,21,-1,2,5 19,104,45 30,111,14 29,10C,1250 36,10,7194780 0,D,31 0,A,-3379592 0,B,15127656 0,C,59 40,10D,30 49,20,119,-7,1 0,21,-1,0,0 20,104,35 29,111,14 34,10C,1273 33,10,7194800 0,D,32 0,A,-3379592 0,B,15127654 0,C,59 41,10D,30 43,104,29 22,20,127,-21,-7 0,21,-2,0,5 19,111,13 30,10C,1265 36,10,7194820 0,D,31 0,A,-3379592 0,B,15127653 0,C,59 45,10D,31 47,104,28 26,20,102,-16,-1 0,21,-2,0,-1 18,111,15 34,10C,1250 36,10,7194840 0,D,32 0,A,-3379591 0,B,15127651 0,C,59 40,10D,31 47,104,32 26,20,105,-14,-8 0,21,-2,1,-4 19,111,15 29,10C,1234 36,10,7194860 0,D,31 0,A,-3379591 0,B,15127649 0,C,59 40,10D,31 44,104,33 29,111,15 21,20,120,-19,-28 0,21,-2,-1,4 19,10C,1203 50,10D,32 45,104,37 39,111,16 33,10C,1214 34,20,87,-54,-26 0,21,-2,-4,4 20,10D,32 36,10,7194900 0,D,32 0,A,-3379591 0,B,15127645 0,C,59 41,104,41 28,111,16 28,10C,1253 45,10D,32 37,20,105,-25,-40 0,21,-3,-1,2 33,104,43 43,111,16 34,10C,1273 45,10D,32 47,20,91,-16,-7 0,21,-2,3,1 20,104,43 28,111,16 30,10C,1289 43,10D,32 47,104,43 35,111,16 21,20,71,-43,-14 0,21,-2,0,0 21,10C,1289 41,10D,32 45,104,43 31,111,17 31,10C,1281 34,20,81,-11,-39 0,21,-2,0,-5 21,10D,32 43,104,46 39,111,17 32,10C,1281 43,10D,32 38,20,10,-56,-39 0,21,-1,6,0 20,104,46 28,111,17 30,10C,1261 45,10D,32 47,104,47 30,20,127,6,22 0,21,-1,2,-4 19,111,17 28,10C,1253 46,10D,33 44,104,50 23,10,7195040 0,D,34 0,A,-3379588 0,B,15127631 0,C,59 44,111,16 20,20,118,-2,4 0,21,-2,0,-2 20,10C,1257 44,10D,33 47,104,49 24,10,7195060 0,D,34 0,A,-3379588 0,B,15127629 0,C,59 42,111,17 24,20,104,-19,-17 0,21,-2,0,4 20,10C,1246 44,10D,33 47,104,51 33,10,7195080 0,D,35 0,A,-3379587 0,B,15127627 0,C,59 41,111,17 28,20,115,-8,-37 0,21,-2,-1,-2 19,10C,1246 49,10D,34 43,10,7195100 0,D,35 0,A,-3379587 0,B,15127625 0,C,59 41,104,51 28,111,17 21,20,117,-11,-15 0,21,-2,0,-1 20,10C,1246 44,10D,34 46,10,7195120 0,D,35 0,A,-3379587 0,B,15127623 0,C,59 41,104,51 32,111,16 21,20,119,1,-6 0,21,-2,0,2 20,10C,1250 44,10D,34 42,10,7195140 0,D,36 0,A,-3379586 0,B,15127621 0,C,59 40,104,48 28,111,16 27,20,103,-32,-9 0,21,-3,2,-6 19,10C,1234 44,10D,34 50,104,44 31,111,15 33,10C,1257 35,20,99,-32,-4 0,21,-1,0,-1 19,10D,35 46,104,38 27,10,7195180 0,D,36 0,A,-3379585 0,B,15127617 0,C,59 41,111,13 28,10C,1312 43,10D,35 46,20,102,-15,-14 0,21,-1,0,1 19,104,27 33,111,12 34,10C,1261 43,10D,35 46,104,23 28,111,12 21,20,76,-44,-7 0,21,-1,0,1 21,10C,1207 44,10D,35 51,104,20 29,111,11 37,10C,1207 34,20,119,-6,-26 0,21,-1,-1,0 20,10D,36 44,104,16 30,111,13 41,10C,1214 45,10D,36 37,20,-64,-146,-27 0,21,0,1,-2 22,104,22 31,111,15 34,10C,1242 45,10D,36 58,104,29 22,20,174,26,13 0,21,0,2,5 21,111,16 31,10C,1234 43,10D,36 53,104,36 31,111,16 22,20,89,-30,-12 0,21,-1,0,-2 20,10C,1230 44,10D,36 49,104,40 28,111,16 35,10C,1242 35,20,100,-18,-4 0,21,0,0,0 20,10D,36 47,104,43 30,111,16 31,10C,1250 44,10D,36 38,20,75,-6,-4 0,21,0,-1,-3 16,10,7195340 0,D,36 0,A,-3379581 0,B,15127600 0,C,56 66,104,44 35,111,16 30,10C,1265 35,10,7195360 0,D,38 0,A,-3379580 0,B,15127597 0,C,56 41,10D,36 35,20,89,-22,14 0,21,0,1,-1 19,104,43 30,111,16 29,10C,1265 36,10,7195380 0,D,38 0,A,-3379580 0,B,15127595 0,C,56 40,10D,37 44,104,44 22,20,89,-40,-12 0,21,-1,0,0 19,111,16 39,10C,1265 36,10,7195400 0,D,38 0,A,-3379579 0,B,15127593 0,C,56 41,10D,37 43,104,44 27,20,85,-30,0 0,21,0,0,2 18,111,16 29,10C,1261 48,10D,37 49,104,44 34,111,16 29,20,81,-40,-1 0,21,-1,0,0 20,10C,1257 41,10D,37 60,104,42 30,111,16 30,10C,1253 39,20,132,14,-24 0,21,0,-1,-2 18,10D,38 48,104,42 30,111,16 30,10C,1250 43,10D,38 36,20,105,-12,4 0,21,0,-2,1 21,104,42 19,10,7195480 0,D,39 0,A,-3379577 0,B,15127584 0,C,56 56,111,16 31,10C,1242 42,10D,38 37,20,106,-10,1 0,21,-1,0,1 21,104,38 28,10,7195500 0,D,39 0,A,-3379577 0,B,15127582 0,C,56 48,111,15 32,10C,1250 45,10D,39 37,20,102,-37,9 0,21,0,-2,4 22,104,33 31,111,13 34,10C,1238 46,10D,39 49,104,27 21,20,116,-8,5 0,21,0,1,-1 21,111,12 28,10C,1222 47,10D,39 49,104,23 29,111,12 29,20,126,-17,31 0,21,0,-1,2 20,10,7195560 0,D,40 0,A,-3379575 0,B,15127575 0,C,56 63,10C,1222 45,10D,39 48,104,17 26,20,83,-23,-19 0,21,-2,0,-1 17,10,7195580 0,D,40 0,A,-3379574 0,B,15127572 0,C,56 66,111,12 32,10C,1226 42,10D,39 45,104,17 31,20,134,-12,0 0,21,-1,1,1 16,10,7195600 0,D,40 0,A,-3379574 0,B,15127570 0,C,56 67,111,12 27,10C,1230 45,10D,39 39,10,7195620 0,D,39 0,A,-3379573 0,B,15127568 0,C,56 41,104,23 19,20,81,-45,0 0,21,-1,0,3 20,111,15 31,10C,1257 45,10D,39 46,104,30 39,111,15 21,20,70,-28,-55 0,21,-1,-6,-10 20,10C,1246 60,10D,38 51,104,32 33,111,15 30,10C,1246 35,20,110,-30,1 0,21,-1,1,-2 19,10D,38 45,104,32 31,111,15 31,10C,1257 43,10D,38 37,20,91,-35,-25 0,21,-1,-2,1 20,104,33 29,111,14 30,10C,1253 44,10,7195700 0,D,39 0,A,-3379571 0,B,15127559 0,C,56 41,10D,38 40,20,77,-19,-12 0,21,-1,0,0 19,104,32 29,111,14 30,10C,1253 35,10,7195720 0,D,39 0,A,-3379571 0,B,15127556 0,C,56 40,10D,38 44,104,28 22,20,112,-23,-24 0,21,-1,0,0 19,111,13 31,10C,1250 35,10,7195740 0,D,40 0,A,-3379570 0,B,15127554 0,C,56 41,10D,38 43,104,24 33,20,86,-34,-3 0,21,0,-1,0 19,111,12 31,10C,1253 34,10,7195760 0,D,40 0,A,-3379570 0,B,15127552 0,C,56 41,10D,38 47,104,20 30,111,11 21,20,204,74,-47 0,21,0,3,-5 19,10C,1230 34,10,7195780 0,D,39 0,A,-3379569 0,B,15127550 0,C,56 44,10D,38 47,104,16 41,111,11 21,20,86,-22,4 0,21,0,0,1 20,10C,1242 34,10,7195800 0,D,40 0,A,-3379568 0,B,15127547 0,C,56 43,10D,38 57,104,14 29,111,11 21,20,120,19,9 0,21,0,-1,-6 21,10C,1218 42,10,7195820 0,D,39 0,A,-3379568 0,B,15127545 0,C,56 40,10D,38 47,104,13 32,111,11 21,20,105,-5,-13 0,21,-1,0,-3 19,10C,1230 33,10,7195840 0,D,39 0,A,-3379567 0,B,15127543 0,C,56 45,10D,38 48,104,13 29,111,11 28,20,70,-51,-12 0,21,-1,0,-1 21,10C,1226 41,10D,38 46,104,13 30,111,11 33,10C,1214 34,20,98,-39,-19 0,21,-1,0,3 20,10D,38 36,10,7195880 0,D,39 0,A,-3379566 0,B,15127538 0,C,56 41,104,13 32,111,11 29,10C,1222 44,10D,38 38,20,85,-71,-24 0,21,-1,5,-2 17,10,7195900 0,D,38 0,A,-3379566 0,B,15127536 0,C,56 66,104,13 41,111,11 28,10C,1222 47,10D,38 38,20,100,-33,-18 0,21,-1,0,0 19,104,13 32,111,11 34,10C,1226 46,10D,38 38,10,7195940 0,D,38 0,A,-3379565 0,B,15127532 0,C,56 40,104,12 19,20,111,-38,0 0,21,0,1,2 19,111,11 28,10C,1230 44,10D,38 46,104,13 31,111,11 30,10C,1226 33,20,121,6,-35 0,21,-1,1,0 20,10D,38 46,104,13 23,10,7195980 0,D,37 0,A,-3379564 0,B,15127527 0,C,56 42,111,11 30,10C,1226 39,20,90,-23,-16 0,21,-1,1,0 20,10D,38 46,104,14 22,10,7200000 0,D,37 0,A,-3379563 0,B,15127525 0,C,56 42,111,12 31,10C,1222 39,20,92,-28,-15 0,21,-1,0,0 19,10D,37 56,104,18 22,10,7200020 0,D,37 0,A,-3379563 0,B,15127523 0,C,56 44,111,13 44,10C,1242 35,20,102,-24,-9 0,21,-1,0,0 19,10D,37 44,104,20 42,111,13 30,10C,1265 47,10D,37 37,20,74,-24,-15 0,21,0,0,0 19,104,21 28,111,13 35,10C,1261 43,10D,37 45,104,21 32,111,13 21,20,56,-51,-7 0,21,0,0,-2 21,10C,1253 41,10D,36 46,104,21 30,111,13 28,10C,1246 34,20,132,-4,-13 0,21,0,0,3 22,10D,36 47,104,21 33,111,13 30,10C,1234 46,10D,36 46,20,116,-19,-8 0,21,0,-1,0 21,104,22 27,111,13 30,10C,1226 46,10D,36 48,104,21 28,20,99,-32,-17 0,21,-1,0,0 19,111,13 41,10C,1226 47,10D,36 46,104,22 31,111,13 22,20,85,-44,-39 0,21,0,0,2 16,10,7200160 0,D,36 0,A,-3379559 0,B,15127508 0,C,56 67,10C,1230 44,10D,36 44,104,21 31,111,12 30,20,119,-4,-15 0,21,-1,3,2 21,10C,1218 44,10D,36 49,104,21 32,111,12 23,10,7200200 0,D,36 0,A,-3379558 0,B,15127504 0,C,56 41,10C,1218 33,20,87,-25,-14 0,21,-1,-3,-1 19,10D,36 47,104,21 28,111,12 44,10C,1214 36,10,7200220 0,D,36 0,A,-3379557 0,B,15127502 0,C,55 40,10D,36 35,20,107,-27,-3 0,21,-1,0,0 20,104,21 26,111,13 31,10C,1230 43,10D,36 46,104,24 29,111,14 26,20,128,9,-17 0,21,-1,-1,-5 18,10C,1242 41,10D,36 40,10,7200260 0,D,36 0,A,-3379556 0,B,15127498 0,C,55 41,104,28 31,111,15 29,20,81,-24,-4 0,21,-1,0,-1 18,10C,1226 42,10D,36 46,104,32 34,111,15 30,10C,1242 33,20,74,-47,-27 0,21,0,0,2 20,10D,36 48,104,32 30,111,15 29,10C,1250 43,10D,36 37,20,114,-22,-17 0,21,-1,1,0 20,104,33 29,10,7200320 0,D,36 0,A,-3379555 0,B,15127491 0,C,55 48,111,15 27,10C,1253 46,10D,36 37,20,100,-23,-10 0,21,0,0,0 20,104,33 20,10,7200340 0,D,36 0,A,-3379554 0,B,15127489 0,C,55 59,111,15 29,10C,1253 45,10D,36 37,20,107,-23,-7 0,21,0,-1,-1 20,104,31 33,111,13 30,10C,1253 42,10D,36 45,104,26 34,20,106,-10,-12 0,21,-1,0,-1 21,111,12 32,10C,1242 46,10D,36 50,104,21 28,111,12 25,20,75,-43,-19 0,21,-1,0,0 17,10,7200400 0,D,37 0,A,-3379552 0,B,15127483 0,C,55 66,10C,1238 41,10D,36 58,104,17 20,20,98,-34,-12 0,21,-1,1,4 22,111,11 37,10C,1246 43,10D,36 45,104,14 31,111,11 22,20,87,-49,13 0,21,-1,1,4 20,10C,1238 41,10D,36 46,104,14 30,111,11 32,10C,1246 35,20,106,-9,-5 0,21,-1,2,-1 20,10D,36 48,104,13 30,111,11 33,10C,1238 41,10D,36 38,20,106,-36,2 0,21,-2,0,-1 20,104,13 68,111,11 29,10C,1234 45,10D,36 43,20,-31,-129,6 0,21,-3,0,5 22,104,13 31,111,11 29,10C,1226 46,10D,36 45,104,13 23,10,7200520 0,D,36 0,A,-3379549 0,B,15127470 0,C,55 41,111,11 29,20,60,-50,-7 0,21,-2,-2,-5 19,10C,1234 44,10D,36 48,104,13 32,10,7200540 0,D,36 0,A,-3379549 0,B,15127468 0,C,55 41,111,11 18,20,62,-45,1 0,21,-1,0,-2 21,10C,1230 44,10D,36 44,104,13 23,10,7200560 0,D,36 0,A,-3379548 0,B,15127466 0,C,55 41,111,11 28,20,106,1,-9 0,21,-1,0,2 20,10C,1230 44,10D,36 45,104,15 22,10,7200580 0,D,36 0,A,-3379547 0,B,15127464 0,C,55 40,111,12 28,10C,1222 34,20,111,-15,-39 0,21,-2,0,-3 20,10D,36 45,104,15 31,111,12 30,10C,1253 43,10D,36 37,20,51,-1,-29 0,21,-2,2,-7 20,104,15 29,111,12 30,10C,1269 34,10,7200620 0,D,36 0,A,-3379546 0,B,15127460 0,C,55 41,10D,36 49,20,122,-37,-13 0,21,-2,2,4 20,104,15 29,111,11 27,10,7200640 0,D,37 0,A,-3379545 0,B,15127458 0,C,55 41,10C,1257 44,10D,36 42,20,114,-29,-16 0,21,-3,-1,0 19,104,13 29,111,11 26,10,7200660 0,D,36 0,A,-3379544 0,B,15127456 0,C,55 41,10C,1250 41,10D,36 45,104,13 21,20,103,-46,-24 0,21,-2,1,6 20,111,11 30,10C,1238 35,10,7200680 0,D,37 0,A,-3379544 0,B,15127454 0,C,55 40,10D,36 44,104,13 30,111,11 20,20,109,-7,-9 0,21,-2,1,0 19,10C,1250 41,10D,36 46,104,13 29,111,11 30,10C,1250 38,20,96,-20,-48 0,21,-2,2,0 18,10D,36 37,10,7200720 0,D,37 0,A,-3379543 0,B,15127450 0,C,55 41,104,13 32,111,11 39,10C,1246 34,20,85,-20,-19 0,21,-3,1,-3 19,10D,36 49,10,7200740 0,D,37 0,A,-3379542 0,B,15127448 0,C,55 44,104,13 28,111,11 33,10C,1246 34,20,79,-31,-19 0,21,-4,0,-1 20,10D,36 36,10,7200760 0,D,37 0,A,-3379541 0,B,15127446 0,C,55 41,104,13 28,111,11 29,10C,1242 45,10D,36 37,20,95,-24,-5 0,21,-4,2,-1 21,104,13 27,111,11 30,10C,1238 46,10D,37 52,104,13 24,10,7200800 0,D,38 0,A,-3379540 0,B,15127441 0,C,55 41,111,11 19,20,114,-18,-38 0,21,-3,0,1 20,10C,1230 41,10D,37 45,104,13 30,111,11 30,10C,1234 35,20,117,-23,-9 0,21,-4,1,-2 19,10D,37 47,104,13 41,111,11 39,10C,1234 36,10,7200840 0,D,38 0,A,-3379538 0,B,15127437 0,C,52 45,10D,37 35,20,126,-24,-43 0,21,-4,2,-1 20,104,13 29,111,11 31,10C,1242 43,10D,38 46,104,13 30,111,11 21,20,62,-46,-5 0,21,-4,1,-1 19,10C,1250 41,10D,38 50,104,13 34,111,11 29,10C,1246 34,20,110,-26,-6 0,21,-3,2,0 20,10D,38 57,104,13 30,111,11 29,10C,1250 46,10D,38 37,20,100,-50,-2 0,21,-3,0,4 21,104,13 19,10,7200920 0,D,38 0,A,-3379534 0,B,15127429 0,C,52 55,111,11 31,10C,1246 46,10D,38 46,20,97,-42,-16 0,21,-3,0,5 21,104,13 28,111,11 30,10C,1246 43,10D,38 45,104,13 33,111,11 26,20,99,-24,1 0,21,-2,-1,2 15,10,7200960 0,D,39 0,A,-3379532 0,B,15127425 0,C,52 68,10C,1242 44,10D,38 48,104,13 22,10,7200980 0,D,39 0,A,-3379531 0,B,15127424 0,C,52 40,111,11 20,20,103,-16,7 0,21,-2,0,-4 19,10C,1246 41,10D,38 43,104,13 31,111,11 31,10C,1253 38,20,112,-18,-5 0,21,-1,-1,2 21,10D,38 46,104,13 29,111,11 29,10C,1253 47,10D,38 38,20,65,0,-21 0,21,0,6,0 20,104,13 27,111,11 31,10C,1246 53,10D,38 45,104,13 27,20,103,-49,-9 0,21,0,-3,3 20,111,11 30,10C,1246 41,10D,38 39,10,7201060 0,D,40 0,A,-3379526 0,B,15127416 0,C,52 45,104,13 25,20,71,-58,-5 0,21,0,-1,-1 19,111,11 31,10C,1242 44,10D,39 40,10,7201080 0,D,40 0,A,-3379525 0,B,15127414 0,C,52 40,104,13 27,111,11 22,20,157,20,-18 0,21,1,0,-5 19,10C,1246 55,10D,39 40,10,7201100 0,D,40 0,A,-3379524 0,B,15127412 0,C,52 40,104,13 31,111,11 21,20,81,-26,-14 0,21,0,1,-5 20,10C,1250 42,10D,39 46,104,13 30,111,11 30,10C,1253 35,20,127,-16,18 0,21,0,-1,-3 19,10D,39 45,104,13 33,10,7201140 0,D,40 0,A,-3379522 0,B,15127408 0,C,52 40,111,11 27,10C,1250 39,20,125,-18,6 0,21,1,-1,-5 24,10D,40 43,104,12 22,10,7201160 0,D,40 0,A,-3379521 0,B,15127406 0,C,52 40,111,11 28,10C,1250 47,20,52,-39,-17 0,21,0,-4,-1 19,10D,40 43,104,13 30,10,7201180 0,D,41 0,A,-3379520 0,B,15127403 0,C,52 41,111,11 31,10C,1238 39,20,92,-11,0 0,21,2,-3,-2 18,10D,40 44,10,7201200 0,D,41 0,A,-3379519 0,B,15127401 0,C,52 41,104,13 32,111,11 30,10C,1265 39,20,76,-45,14 0,21,1,1,-7 18,10D,40 43,104,13 22,10,7201220 0,D,41 0,A,-3379518 0,B,15127399 0,C,52 41,111,11 31,10C,1261 46,10D,40 36,20,75,-26,-29 0,21,1,-3,-5 26,104,13 37,111,11 29,10C,1242 47,10D,40 49,104,13 21,20,95,25,18 0,21,0,-8,-1 21,111,11 28,10C,1250 56,10D,40 49,104,13 28,111,11 21,20,109,-31,11 0,21,2,-2,2 20,10C,1250 46,10D,40 50,104,13 29,111,11 32,10C,1250 34,20,110,-14,-8 0,21,1,0,1 20,10D,40 43,104,13 30,111,11 30,10C,1257 46,10D,40 37,20,86,-16,-7 0,21,0,-1,-5 20,104,13 28,111,11 29,10C,1253 47,10D,40 48,104,13 30,111,11 30,20,158,27,35 0,21,1,-3,5 22,10C,1253 44,10D,40 45,104,13 27,111,11 35,10C,1253 34,20,132,-34,-15 0,21,1,-2,4 25,10D,41 44,104,12 29,111,11 31,10C,1261 44,10D,41 37,20,38,-52,26 0,21,0,2,0 17,10,7201380 0,D,41 0,A,-3379512 0,B,15127381 0,C,48 66,104,12 31,111,11 29,10C,1253 35,10,7201400 0,D,42 0,A,-3379511 0,B,15127378 0,C,48 40,10D,41 36,20,144,-3,3 0,21,1,5,6 19,104,13 30,111,11 29,10C,1257 35,10,7201420 0,D,42 0,A,-3379511 0,B,15127376 0,C,48 41,10D,42 43,104,13 22,20,90,-66,-9 0,21,0,-1,0 19,111,11 30,10C,1257 43,10D,42 55,104,13 34,111,11 33,20,80,-42,5 0,21,0,-1,2 19,10C,1257 38,10,7201460 0,D,43 0,A,-3379510 0,B,15127371 0,C,48 44,10D,42 48,104,13 30,111,11 22,20,114,-17,10 0,21,1,0,0 19,10C,1253 38,10,7201480 0,D,43 0,A,-3379509 0,B,15127368 0,C,48 40,10D,42 48,104,13 30,111,11 25,20,130,-24,10 0,21,2,0,2 19,10C,1265 37,10,7201500 0,D,43 0,A,-3379509 0,B,15127366 0,C,48 41,10D,42 48,104,13 33,111,11 26,20,153,19,-16 0,21,0,0,-4 19,10C,1261 41,10D,42 46,104,12 33,111,11 42,10C,1257 34,20,134,0,0 0,21,0,0,2 19,10D,42 44,104,13 43,111,11 38,10C,1257 46,10D,42 36,20,66,-35,0 0,21,0,-1,1 21,104,12 29,111,11 33,10C,1257 43,10D,42 45,104,12 33,111,11 21,20,72,-27,3 0,21,0,-1,-1 16,10,7201580 0,D,43 0,A,-3379507 0,B,15127355 0,C,48 68,10C,1265 43,10D,42 44,104,12 30,111,11 22,20,114,7,14 0,21,-1,0,0 20,10C,1402 44,10D,42 50,104,11 30,111,11 41,10C,1421 34,20,48,-73,-14 0,21,-1,3,3 20,10D,42 44,104,11 32,111,11 28,10C,1464 47,10D,42 46,20,136,-3,-19 0,21,-2,-1,-4 21,104,10 27,111,11 29,10C,1769 46,10D,42 38,10,7201660 0,D,43 0,A,-3379505 0,B,15127345 0,C,48 40,104,9 19,20,94,-32,-36 0,21,-3,0,2 20,111,11 27,10C,1855 50,10D,42 39,10,7201680 0,D,42 0,A,-3379505 0,B,15127342 0,C,48 39,104,9 28,20,146,-2,-15 0,21,-4,0,-1 21,111,11 29,10C,1843 45,10D,42 39,10,7201700 0,D,43 0,A,-3379505 0,B,15127340 0,C,48 40,104,9 28,111,11 21,20,78,-70,5 0,21,-2,1,1 20,10C,1835 42,10D,42 50,104,9 34,111,11 29,10C,1832 34,20,80,-50,9 0,21,-2,0,-2 20,10D,42 46,104,9 22,10,7201740 0,D,43 0,A,-3379504 0,B,15127335 0,C,48 41,111,11 36,10C,1824 35,20,105,-10,-27 0,21,-2,0,0 19,10D,42 46,104,8 23,10,7201760 0,D,42 0,A,-3379503 0,B,15127332 0,C,48 44,111,11 32,10C,1804 39,20,84,-17,-3 0,21,-3,0,5 18,10D,42 47,104,9 22,10,7201780 0,D,42 0,A,-3379503 0,B,15127330 0,C,48 41,111,11 30,10C,1808 43,10D,42 37,20,104,0,-10 0,21,-2,-2,-3 19,104,9 21,10,7201800 0,D,42 0,A,-3379502 0,B,15127327 0,C,48 55,111,11 29,10C,1812 46,10D,42 37,20,97,-20,2 0,21,-2,1,0 20,104,9 31,10,7201820 0,D,42 0,A,-3379502 0,B,15127325 0,C,48 45,111,11 32,10C,1800 46,10D,42 36,20,134,-9,-27 0,21,-2,-1,0 22,104,9 31,111,11 30,10C,1804 55,10D,42 48,104,9 22,20,170,-19,-18 0,21,-2,2,-4 24,111,11 32,10C,1800 43,10D,42 49,104,9 40,111,11 22,20,89,-11,-8 0,21,-1,2,-2 20,10C,1796 44,10D,42 51,104,9 28,111,11 32,10C,1796 34,20,101,-21,-9 0,21,-2,0,0 20,10D,42 44,104,9 30,111,11 33,10C,1792 41,10D,41 37,20,114,-45,-20 0,21,-2,0,1 20,104,9 40,111,11 30,10C,1789 45,10D,41 50,104,9 20,20,84,-45,-12 0,21,-2,0,0 16,10,7201940 0,D,41 0,A,-3379498 0,B,15127310 0,C,48 68,111,11 41,10C,1777 44,10D,41 38,20,116,-24,-15 0,21,-2,-2,0 17,10,7201960 0,D,41 0,A,-3379497 0,B,15127308 0,C,48 66,104,8 28,111,11 36,10C,1773 43,10D,41 36,20,87,-14,4 0,21,-1,0,-2 22,104,9 37,111,11 33,10C,1757 44,10D,40 39,10,7202000 0,D,41 0,A,-3379496 0,B,15127303 0,C,48 41,104,9 18,20,107,-42,-23 0,21,-1,-1,1 20,111,11 31,10C,1753 44,10D,40 47,104,9 30,111,11 30,10C,1757 33,20,76,-42,-28 0,21,-2,0,0 20,10D,40 46,104,9 23,10,7202040 0,D,41 0,A,-3379495 0,B,15127299 0,C,48 41,111,11 31,10C,1738 39,20,94,-32,-20 0,21,-1,0,0 20,10D,40 56,104,9 21,10,7202060 0,D,41 0,A,-3379494 0,B,15127296 0,C,48 40,111,11 28,10C,1722 35,20,92,-31,-18 0,21,-1,-1,4 23,10D,40 46,104,9 23,10,7202080 0,D,41 0,A,-3379493 0,B,15127294 0,C,48 40,111,11 28,10C,1722 43,20,88,-33,-12 0,21,-1,0,2 19,10D,40 42,104,9 30,111,11 30,10C,1699 47,10D,40 37,20,101,-34,1 0,21,0,0,3 20,104,9 25,111,11 34,10C,1695 44,10D,40 49,104,9 30,111,11 21,20,88,-38,-8 0,21,-1,0,0 18,10C,1687 42,10D,39 50,104,9 34,111,11 29,10C,1675 35,20,105,-15,32 0,21,1,0,0 18,10D,39 54,104,9 33,111,11 30,10C,1656 46,10D,39 49,20,108,-26,0 0,21,1,-1,1 20,104,10 29,111,11 34,10C,1644 42,10D,39 48,104,10 30,20,85,-45,2 0,21,0,0,1 16,10,7202200 0,D,39 0,A,-3379489 0,B,15127280 0,C,48 67,111,11 31,10C,1632 42,10D,38 46,104,10 22,20,86,-50,-32 0,21,0,-1,0 15,10,7202220 0,D,38 0,A,-3379489 0,B,15127278 0,C,48 68,111,11 40,10C,1621 44,10D,38 38,20,72,-64,0 0,21,3,-4,2 17,10,7202240 0,D,38 0,A,-3379488 0,B,15127276 0,C,48 66,104,10 30,111,11 35,10C,1601 44,10D,38 47,20,85,-54,-7 0,21,2,0,2 17,10,7202260 0,D,38 0,A,-3379488 0,B,15127274 0,C,43 65,104,10 31,111,11 31,10C,1558 44,10D,37 37,20,85,-39,22 0,21,2,0,2 23,104,10 28,111,11 32,10C,1558 43,10D,37 39,10,7202300 0,D,38 0,A,-3379487 0,B,15127269 0,C,43 40,104,10 20,20,120,-18,12 0,21,3,1,2 19,111,11 30,10C,1558 43,10D,37 55,104,10 30,111,11 27,20,129,-14,7 0,21,2,-1,2 19,10C,1542 42,10D,37 47,104,10 30,111,11 30,10C,1511 33,20,121,21,16 0,21,3,-1,-4 21,10D,35 56,104,10 22,10,7202360 0,D,35 0,A,-3379486 0,B,15127263 0,C,43 41,111,11 35,10C,1429 35,20,70,-33,12 0,21,1,-3,-1 20,10D,35 47,104,10 21,10,7202380 0,D,35 0,A,-3379486 0,B,15127261 0,C,43 41,111,11 32,10C,1406 39,20,91,-31,23 0,21,1,-1,-1 18,10D,35 42,104,16 24,10,7202400 0,D,34 0,A,-3379486 0,B,15127259 0,C,43 41,111,15 32,10C,1406 43,10D,33 37,20,120,-42,-5 0,21,2,1,1 18,104,25 33,111,17 35,10C,1433 42,10D,33 46,104,35 27,20,98,-12,13 0,21,2,0,0 19,111,17 21,10,7202440 0,D,34 0,A,-3379486 0,B,15127254 0,C,43 55,10C,1371 42,10D,33 46,104,40 21,20,73,-31,4 0,21,2,0,-1 18,111,17 21,10,7202460 0,D,34 0,A,-3379486 0,B,15127252 0,C,43 56,10C,1378 55,10D,33 48,104,42 21,20,109,-26,-9 0,21,2,-1,0 21,111,17 32,10C,1410 48,10D,32 49,104,41 27,111,17 26,20,124,-4,7 0,21,1,2,-4 16,10,7202500 0,D,34 0,A,-3379487 0,B,15127248 0,C,43 68,10C,1414 41,10D,32 45,104,43 29,111,17 21,20,100,-13,-6 0,21,1,-2,-1 16,10,7202520 0,D,34 0,A,-3379487 0,B,15127246 0,C,43 67,10C,1417 41,10D,32 47,104,44 24,10,7202540 0,D,33 0,A,-3379487 0,B,15127244 0,C,43 41,111,17 19,20,93,-34,1 0,21,1,-1,3 19,10C,1429 41,10D,33 44,104,45 31,111,17 22,10,7202560 0,D,34 0,A,-3379488 0,B,15127242 0,C,43 40,10C,1421 45,20,93,-18,-26 0,21,0,-1,0 23,10D,33 56,104,46 23,10,7202580 0,D,34 0,A,-3379488 0,B,15127240 0,C,43 41,111,18 31,10C,1425 35,20,87,-20,3 0,21,0,0,-1 19,10D,33 45,104,48 40,111,18 23,10,7202600 0,D,34 0,A,-3379488 0,B,15127238 0,C,43 41,10C,1414 36,20,92,-12,-4 0,21,-1,0,3 20,10D,33 45,104,52 31,111,19 34,10C,1417 43,10D,34 37,20,109,-18,-4 0,21,-1,1,0 20,104,56 29,111,19 31,10C,1425 44,10D,34 45,104,57 30,111,19 21,20,117,-9,-23 0,21,-1,-1,0 19,10C,1425 45,10D,34 51,104,58 33,111,19 31,10C,1421 33,20,109,1,-19 0,21,-1,-2,0 19,10D,34 58,104,57 30,111,19 30,10C,1417 46,10D,34 37,20,82,-30,-4 0,21,-1,-2,-1 20,104,58 32,111,19 30,10C,1425 55,10D,34 48,104,58 21,20,110,-11,-30 0,21,-1,0,-1 21,111,19 29,10C,1425 56,10D,34 49,104,58 32,111,19 20,20,38,-45,-15 0,21,-1,0,-2 22,10C,1425 41,10D,34 50,104,57 30,111,18 31,10C,1421 34,20,89,-21,-17 0,21,0,-2,0 21,10D,34 44,104,57 29,111,18 30,10C,1429 45,10D,35 37,20,91,-17,-1 0,21,0,-1,0 21,104,56 37,111,18 30,10C,1437 46,10D,35 44,104,55 23,10,7202800 0,D,37 0,A,-3379492 0,B,15127217 0,C,43 42,111,18 23,20,103,-16,-11 0,21,0,-1,0 20,10C,1437 41,10D,35 47,104,56 30,111,18 34,10C,1445 35,20,101,-15,8 0,21,-1,0,0 20,10D,35 43,104,56 31,111,18 31,10C,1437 43,10D,36 38,20,98,-13,1 0,21,-1,0,0 19,104,55 28,111,19 32,10C,1464 43,10D,36 47,104,55 30,111,18 21,20,81,-23,-13 0,21,0,0,5 20,10C,1468 43,10D,36 46,104,55 30,111,19 39,10C,1457 35,20,89,-26,8 0,21,0,0,0 19,10D,36 46,104,56 30,111,19 47,10C,1445 42,10D,37 38,20,97,-31,-6 0,21,-1,0,-3 20,104,56 29,111,18 32,10,7202920 0,D,38 0,A,-3379494 0,B,15127203 0,C,43 44,10C,1449 41,10D,37 38,20,102,-12,-23 0,21,0,-1,1 19,104,56 30,111,19 23,10,7202940 0,D,39 0,A,-3379495 0,B,15127201 0,C,43 41,10C,1445 40,10D,37 46,104,56 20,20,70,-48,-37 0,21,0,-8,5 19,111,19 32,10C,1457 43,10D,37 51,104,57 29,111,19 28,20,97,-7,-6 0,21,-2,0,2 18,10C,1460 42,10D,39 45,104,57 43,111,19 33,10C,1472 34,20,70,-38,-32 0,21,-2,0,0 20,10D,39 36,10,7203000 0,D,40 0,A,-3379496 0,B,15127194 0,C,43 41,104,56 28,111,19 34,10C,1468 41,20,85,-23,-37 0,21,-2,0,0 20,10D,39 35,10,7203020 0,D,41 0,A,-3379496 0,B,15127192 0,C,43 45,104,56 32,111,19 29,10C,1464 41,20,105,-4,2 0,21,-2,2,-2 21,10D,39 48,104,57 30,111,18 29,10C,1464 46,10D,41 37,20,46,-33,16 0,21,-3,0,-13 21,104,55 27,111,18 52,10C,1457 43,10D,41 44,104,51 20,20,37,-78,-51 0,21,-3,-1,2 22,111,18 30,10C,1468 43,10D,41 55,104,47 31,111,17 22,20,94,-31,-12 0,21,-3,1,2 20,10C,1460 41,10D,41 46,104,44 29,111,17 32,10C,1468 34,20,103,-9,-28 0,21,-3,0,1 21,10D,42 43,104,43 30,111,17 30,10C,1468 45,10D,42 36,20,70,-30,-11 0,21,-1,1,-2 22,104,43 32,111,17 29,10C,1472 46,10D,42 45,104,42 23,10,7203160 0,D,44 0,A,-3379499 0,B,15127174 0,C,43 41,111,17 19,20,121,-9,-22 0,21,-2,0,0 20,10C,1468 41,10D,42 48,104,41 30,111,17 35,10C,1464 34,20,183,15,12 0,21,-2,-3,8 20,10D,43 52,104,41 32,111,17 30,10C,1476 44,10D,43 37,20,112,-24,-3 0,21,-1,-2,3 20,104,41 27,111,17 32,10C,1480 43,10D,43 47,104,41 30,111,17 22,20,78,-37,-20 0,21,-1,0,0 19,10C,1476 42,10D,43 47,104,40 46,111,16 38,10C,1460 35,20,88,-18,-19 0,21,-2,1,1 19,10D,43 44,10,7203260 0,D,45 0,A,-3379500 0,B,15127160 0,C,43 44,104,40 29,111,16 30,10C,1476 34,20,102,-12,-7 0,21,-3,2,1 19,10D,44 44,10,7203280 0,D,46 0,A,-3379500 0,B,15127157 0,C,43 41,104,40 32,111,17 29,10C,1496 43,20,79,-39,-12 0,21,-3,5,-3 20,10D,44 48,104,40 31,111,16 33,10C,1488 43,10D,44 36,20,127,-7,-14 0,21,-1,0,0 20,104,37 25,10,7203320 0,D,46 0,A,-3379500 0,B,15127152 0,C,43 52,111,16 27,10C,1492 47,10D,45 37,20,75,-46,-21 0,21,-2,0,6 19,104,36 28,111,16 31,10C,1492 43,10D,45 45,104,36 32,111,16 21,20,96,-35,-20 0,21,-1,1,3 25,10C,1480 42,10D,45 46,104,36 30,111,16 31,10C,1472 34,20,118,10,-12 0,21,0,1,-3 22,10D,45 48,104,37 30,111,16 29,10C,1460 55,10D,45 37,20,67,-30,2 0,21,-1,-2,0 21,104,37 37,111,17 30,10C,1468 46,10D,46 44,104,40 29,20,115,-15,-24 0,21,-1,0,3 18,10,7203420 0,D,48 0,A,-3379501 0,B,15127138 0,C,43 65,111,17 28,10C,1492 45,10D,46 46,104,42 22,20,45,-51,-24 0,21,-1,-1,2 17,10,7203440 0,D,48 0,A,-3379501 0,B,15127135 0,C,41 67,111,16 29,10C,1480 40,10,7203460 0,D,48 0,A,-3379501 0,B,15127132 0,C,41 41,10D,46 39,20,102,-21,-2 0,21,-1,0,-1 20,104,32 28,111,14 32,10C,1484 43,10D,47 38,10,7203480 0,D,48 0,A,-3379502 0,B,15127129 0,C,41 41,104,27 18,20,118,-1,5 0,21,-1,0,-1 21,111,14 26,10C,1480 53,10D,47 37,10,7203500 0,D,49 0,A,-3379502 0,B,15127126 0,C,41 40,104,23 24,20,110,-12,-13 0,21,-2,0,-4 20,111,13 31,10C,1464 46,10D,47 38,10,7203520 0,D,49 0,A,-3379502 0,B,15127123 0,C,41 40,104,20 25,20,128,-12,-9 0,21,-1,-2,-2 19,111,12 28,10C,1480 44,10D,47 39,10,7203540 0,D,49 0,A,-3379502 0,B,15127120 0,C,41 41,104,17 31,111,14 22,20,51,-53,-33 0,21,0,-1,4 19,10C,1464 43,10D,48 46,104,22 34,111,16 30,10C,1500 35,20,121,-25,-22 0,21,-2,-4,3 19,10D,48 46,104,28 23,10,7203580 0,D,49 0,A,-3379502 0,B,15127114 0,C,41 40,111,16 27,10C,1496 43,10D,48 37,20,55,-49,-30 0,21,-2,0,-3 20,104,35 39,10,7203600 0,D,49 0,A,-3379503 0,B,15127111 0,C,41 39,111,17 32,10C,1500 46,10D,48 49,20,125,4,-9 0,21,-1,0,-1 21,104,44 29,111,18 29,10C,1511 46,10D,48 50,104,50 26,20,69,32,-14 0,21,-1,0,-1 16,10,7203640 0,D,49 0,A,-3379503 0,B,15127105 0,C,41 67,111,19 32,10C,1515 42,10D,48 46,104,55 20,20,33,-80,-3 0,21,0,0,0 16,10,7203660 0,D,49 0,A,-3379503 0,B,15127102 0,C,41 68,111,20 31,10C,1519 45,10D,48 43,20,26,-73,-42 0,21,-1,1,-3 20,104,60 27,111,20 30,10C,1511 46,10D,48 47,104,60 31,20,40,-71,-4 0,21,0,0,0 20,111,19 32,10C,1511 42,10D,48 46,104,54 32,111,15 22,10,7203720 0,D,50 0,A,-3379503 0,B,15127093 0,C,41 41,10C,1488 32,20,113,-22,-23 0,21,-1,0,2 21,10D,48 43,104,38 31,111,14 34,10C,1472 44,10D,48 37,20,107,-5,-19 0,21,0,-1,0 21,104,30 30,111,14 32,10C,1488 44,10D,49 45,104,25 30,111,13 21,20,109,-38,-19 0,21,0,-2,0 20,10C,1472 39,10D,49 56,104,22 30,111,13 29,10C,1484 35,20,86,15,21 0,21,0,-3,-1 20,10D,49 45,104,18 32,10,7203800 0,D,50 0,A,-3379504 0,B,15127081 0,C,41 40,111,12 28,10C,1453 39,20,92,-33,-34 0,21,-2,2,-2 19,10D,49 80,104,15 30,111,11 34,10C,1445 39,20,78,-34,-17 0,21,-1,-1,-3 19,10D,50 46,104,13 23,10,7203840 0,D,50 0,A,-3379504 0,B,15127075 0,C,41 40,111,11 31,10C,1433 43,10D,50 36,20,65,-56,-29 0,21,-1,1,1 20,104,11 20,10,7203860 0,D,50 0,A,-3379504 0,B,15127072 0,C,41 57,111,11 28,10C,1437 46,10D,50 37,20,80,-47,0 0,21,-1,2,7 21,104,10 19,10,7203880 0,D,50 0,A,-3379504 0,B,15127069 0,C,41 55,111,11 28,10C,1449 42,10D,49 37,20,60,-48,0 0,21,-2,-1,0 21,104,10 28,10,7203900 0,D,49 0,A,-3379504 0,B,15127066 0,C,41 48,111,11 28,10C,1453 46,10D,49 37,20,145,-2,-6 0,21,-1,0,-5 20,104,10 29,111,11 33,10C,1468 47,10D,49 48,104,12 27,20,133,0,9 0,21,-1,0,-4 15,10,7203940 0,D,49 0,A,-3379505 0,B,15127060 0,C,41 67,111,13 32,10C,1484 57,10D,49 45,20,81,-23,-15 0,21,-1,2,1 21,104,17 31,111,13 29,10C,1500 44,10D,48 47,104,16 30,111,12 22,20,106,-8,-31 0,21,-1,1,0 20,10C,1507 57,10D,48 45,104,13 28,111,11 34,10C,1503 44,20,99,-37,-19 0,21,-3,1,0 17,10,7204000 0,D,49 0,A,-3379505 0,B,15127051 0,C,39 66,10D,48 47,104,11 23,10,7204020 0,D,48 0,A,-3379505 0,B,15127048 0,C,39 40,111,11 19,20,90,-25,-17 0,21,-2,-1,1 20,10C,1500 41,10D,48 47,104,10 33,111,11 24,10,7204040 0,D,48 0,A,-3379505 0,B,15127046 0,C,39 41,10C,1484 32,20,69,-45,-14 0,21,-1,1,0 23,10D,47 46,104,10 31,111,11 34,10C,1476 43,10D,47 37,20,125,-19,-11 0,21,-1,0,-1 19,104,10 30,111,11 31,10C,1468 43,10D,47 46,104,10 29,111,11 21,20,102,-25,-19 0,21,-2,-1,-1 19,10C,1464 41,10D,47 38,10,7204100 0,D,47 0,A,-3379504 0,B,15127037 0,C,39 40,104,10 37,111,11 27,20,74,-25,-2 0,21,-1,0,0 17,10C,1460 41,10D,46 38,10,7204120 0,D,47 0,A,-3379504 0,B,15127034 0,C,39 41,104,10 31,111,11 29,10C,1460 34,20,108,-26,-18 0,21,-1,1,-2 19,10D,46 36,10,7204140 0,D,46 0,A,-3379504 0,B,15127031 0,C,39 41,104,10 36,111,11 34,10C,1460 43,20,97,-31,-9 0,21,-1,0,0 20,10D,46 49,104,10 33,111,11 30,10C,1464 45,10D,46 37,20,91,-25,-4 0,21,-2,0,-1 20,104,10 32,111,11 30,10C,1480 47,10D,45 48,104,10 27,20,99,-25,10 0,21,-2,0,0 19,111,11 29,10C,1488 50,10D,45 54,104,10 32,111,11 22,20,100,-33,1 0,21,-1,2,0 17,10,7204220 0,D,45 0,A,-3379504 0,B,15127020 0,C,39 65,10C,1476 45,10D,45 44,104,10 30,111,11 22,20,104,-30,0 0,21,0,2,0 20,10C,1457 44,10D,44 49,104,10 31,111,11 31,10C,1445 35,20,101,-19,-12 0,21,-1,0,-3 20,10D,44 48,104,10 29,111,11 32,10C,1449 43,10D,44 38,20,82,-53,21 0,21,-2,1,3 20,104,10 28,111,11 29,10C,1453 44,10D,44 56,104,10 26,20,99,-28,-1 0,21,0,0,0 20,111,11 32,10C,1457 54,10D,44 50,104,10 34,111,11 21,20,128,-15,-25 0,21,-1,0,-1 21,10C,1457 44,10D,43 47,104,10 31,111,11 47,10C,1468 34,20,99,-28,20 0,21,0,0,-1 20,10D,43 43,104,10 31,111,11 30,10C,1472 45,10D,43 36,20,84,-38,-15 0,21,-1,-2,0 21,104,10 26,111,11 32,10C,1472 47,10D,43 39,10,7204380 0,D,45 0,A,-3379504 0,B,15126999 0,C,39 41,104,10 19,20,86,-28,0 0,21,-1,0,-4 23,111,11 30,10C,1476 47,10D,41 40,10,7204400 0,D,45 0,A,-3379504 0,B,15126997 0,C,39 40,104,10 23,20,107,-33,-16 0,21,-1,0,-1 20,111,11 42,10C,1730 44,10D,41 49,104,9 34,111,11 21,20,89,-44,-17 0,21,0,1,3 20,10C,1730 39,10D,41 39,10,7204440 0,D,40 0,A,-3379504 0,B,15126992 0,C,39 40,104,9 27,111,11 30,10C,1703 34,20,103,-25,-9 0,21,0,0,-2 19,10D,41 48,104,9 34,111,11 30,10C,1679 46,10D,39 37,20,64,-75,-37 0,21,-2,-2,2 20,104,9 20,10,7204480 0,D,39 0,A,-3379504 0,B,15126987 0,C,39 55,111,11 32,10C,1644 46,10D,39 37,20,135,4,-16 0,21,-1,0,1 20,104,9 32,111,11 40,10C,1605 46,10D,39 48,104,9 31,20,121,-28,-6 0,21,-1,0,0 20,111,11 31,10C,1585 43,10D,39 45,104,10 29,111,11 29,10,7204540 0,D,37 0,A,-3379503 0,B,15126980 0,C,39 41,10C,1566 33,20,101,-31,-9 0,21,-1,0,1 20,10D,37 43,104,10 28,111,11 33,10C,1519 35,10,7204560 0,D,36 0,A,-3379503 0,B,15126978 0,C,39 41,10D,37 35,20,25,-102,-6 0,21,-1,-2,8 20,104,9 27,111,11 41,10C,1472 34,10,7204580 0,D,35 0,A,-3379503 0,B,15126976 0,C,39 41,10D,37 39,20,79,-57,-14 0,21,-1,0,-4 21,104,10 29,111,11 33,10C,1453 35,10,7204600 0,D,35 0,A,-3379503 0,B,15126974 0,C,39 41,10D,35 43,20,79,-45,-19 0,21,-2,3,0 21,104,10 25,111,11 32,10C,1402 45,10,7204620 0,D,34 0,A,-3379503 0,B,15126972 0,C,39 41,10D,35 40,20,120,-3,21 0,21,-1,0,0 19,104,10 30,111,11 30,10C,1363 33,10,7204640 0,D,33 0,A,-3379503 0,B,15126970 0,C,39 41,10D,35 49,20,94,-31,12 0,21,-1,0,-1 20,104,11 26,111,11 32,10C,1355 35,10,7204660 0,D,32 0,A,-3379503 0,B,15126968 0,C,39 41,10D,35 47,104,11 26,20,108,-18,10 0,21,-1,1,0 19,111,11 31,10C,1343 35,10,7204680 0,D,31 0,A,-3379503 0,B,15126966 0,C,39 40,10D,32 44,104,11 29,111,11 21,20,114,-17,4 0,21,-1,0,0 18,10C,1328 41,10D,32 46,104,11 47,111,11 35,10C,1316 34,20,81,-29,-1 0,21,0,-1,-1 21,10D,32 53,104,11 30,111,11 29,10C,1312 46,10D,32 37,20,60,-51,-28 0,21,-1,-1,-6 21,104,11 31,111,11 30,10C,1296 46,10D,28 48,104,12 27,20,83,-40,-27 0,21,0,-1,-2 20,111,11 28,10C,1296 46,10D,28 49,104,12 32,111,11 27,20,125,-4,-4 0,21,-2,0,-3 20,10C,1292 41,10D,28 50,104,12 29,111,11 32,10C,1265 34,20,114,-29,8 0,21,-1,2,-1 20,10D,28 44,104,12 30,111,11 33,10C,1261 44,10D,24 37,20,111,-34,-48 0,21,-1,0,0 21,104,12 37,111,11 30,10C,1253 46,10D,24 49,104,12 20,20,101,-28,-30 0,21,-1,0,0 16,10,7204840 0,D,23 0,A,-3379503 0,B,15126953 0,C,39 68,111,12 31,10C,1046 44,10D,24 43,20,106,-32,-15 0,21,-1,0,0 20,104,20 37,111,11 30,10C,1015 46,10D,24 42,10,7204880 0,D,21 0,A,-3379503 0,B,15126950 0,C,39 41,104,18 18,20,108,-19,-8 0,21,-1,0,0 21,111,11 32,10C,996 45,10D,21 45,104,18 26,10,7204900 0,D,20 0,A,-3379503 0,B,15126949 0,C,39 40,111,12 20,20,95,-22,-10 0,21,-2,0,0 19,10C,937 44,10D,21 45,104,20 22,10,7204920 0,D,20 0,A,-3379503 0,B,15126948 0,C,39 41,111,11 33,20,98,-27,-26 0,21,-1,0,0 19,10C,921 44,10D,21 45,104,20 22,10,7204940 0,D,19 0,A,-3379503 0,B,15126947 0,C,39 41,111,11 31,10C,902 34,20,104,-23,-3 0,21,-1,0,0 20,10D,21 50,104,20 29,10,7204960 0,D,18 0,A,-3379503 0,B,15126946 0,C,39 41,111,11 27,10C,890 35,20,101,-40,-5 0,21,-1,0,2 19,10D,19 46,104,20 22,10,7204980 0,D,18 0,A,-3379503 0,B,15126945 0,C,39 45,111,11 32,10C,863 42,20,108,-28,-11 0,21,-1,0,-1 19,10D,19 47,104,20 22,10,7205000 0,D,17 0,A,-3379503 0,B,15126944 0,C,39 40,111,11 31,10C,828 42,20,102,-30,-9 0,21,-1,0,1 19,10D,19 44,104,21 21,10,7205020 0,D,16 0,A,-3379503 0,B,15126943 0,C,39 40,111,11 41,10C,800 38,20,106,-26,-18 0,21,-1,-1,0 19,10D,16 44,10,7205040 0,D,15 0,A,-3379503 0,B,15126942 0,C,39 41,104,22 30,111,11 30,10C,804 39,20,92,-31,0 0,21,0,0,0 18,10D,16 40,10,7205060 0,D,14 0,A,-3379503 0,B,15126941 0,C,39 44,104,22 29,111,11 30,10C,808 42,20,84,-46,-10 0,21,-1,0,-1 18,10D,16 56,104,22 30,111,11 30,10C,828 46,10D,16 37,20,93,-31,-19 0,21,-1,0,0 18,104,22 29,111,11 31,10C,820 42,10D,13 45,104,22 32,111,11 21,20,113,-20,2 0,21,0,0,0 20,10C,835 32,10,7205120 0,D,11 0,A,-3379502 0,B,15126939 0,C,39 45,10D,13 56,104,21 32,111,11 22,20,93,-42,-3 0,21,-1,0,0 20,10C,835 41,10D,13 49,104,22 30,111,12 32,10C,824 34,20,98,-26,-14 0,21,-1,0,0 20,10D,13 45,104,24 30,111,12 29,10C,828 46,10D,10 36,20,92,-38,-7 0,21,-1,1,-1 25,104,25 28,111,12 29,10C,843 46,10D,10 48,104,26 27,20,109,-22,-8 0,21,-1,0,-1 15,10,7205200 0,D,8 0,A,-3379502 0,B,15126936 0,C,39 68,111,12 28,10C,835 42,10D,10 45,104,27 21,20,99,-29,-5 0,21,-1,0,0 16,10,7205220 0,D,7 0,A,-3379502 0,B,15126936 0,C,39 67,111,12 42,10C,820 44,10D,7 46,20,97,-36,-11 0,21,-1,0,0 18,10,7205240 0,D,6 0,A,-3379502 0,B,15126935 0,C,39 65,104,27 28,111,12 31,10C,781 43,10D,7 36,20,102,-26,-10 0,21,-1,0,0 17,10,7205260 0,D,5 0,A,-3379502 0,B,15126935 0,C,39 71,104,29 40,111,12 31,10C,726 34,10,7205280 0,D,4 0,A,-3379502 0,B,15126935 0,C,39 41,10D,7 35,20,92,-32,-9 0,21,-1,0,0 19,104,29 29,111,11 28,10,7205300 0,D,4 0,A,-3379502 0,B,15126935 0,C,39 39,10C,699 45,10D,4 41,20,99,-29,-9 0,21,-1,0,0 19,104,29 30,111,11 26,10,7205320 0,D,3 0,A,-3379502 0,B,15126934 0,C,39 41,10C,667 40,10D,4 46,20,100,-29,-8 0,21,-1,0,0 19,104,28 39,111,11 23,10,7205340 0,D,2 0,A,-3379502 0,B,15126934 0,C,39 41,10C,644 44,10D,4 37,20,102,-27,-11 0,21,-1,0,0 19,104,28 29,111,11 31,10C,632 60,10D,4 53,104,29 21,20,98,-31,-10 0,21,-1,0,0 19,111,11 31,10C,625 35,10,7205380 0,D,1 0,A,-3379502 0,B,15126934 0,C,39 40,10D,1 44,104,29 29,111,11 21,20,101,-28,-12 0,21,-1,0,0 18,10C,644 41,10D,1 46,104,29 29,111,11 33,10C,656 34,20,104,-19,-10 0,21,-1,0,0 18,10D,1 44,104,28 33,111,11 34,10C,660 46,10D,1 36,20,100,-20,-11 0,21,-1,0,0 19,104,28 30,10,7205440 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 48,111,11 31,10C,644 54,10D,0 36,20,102,-19,-10 0,21,-1,0,0 21,104,28 28,111,11 30,10C,648 45,10D,0 45,104,28 36,20,102,-20,-10 0,21,-1,0,0 20,111,11 31,10C,644 43,10D,0 45,104,28 28,111,11 33,10C,652 34,20,105,-12,-2 0,21,-1,-1,0 16,10,7205500 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 67,10D,0 46,104,28 29,111,11 23,10,7205520 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 40,10C,640 32,20,99,-19,-11 0,21,-1,0,0 21,10D,0 46,104,28 27,111,11 31,10C,652 53,10D,0 37,20,102,-19,-10 0,21,-1,0,0 20,104,28 30,111,11 32,10C,648 43,10D,0 45,104,27 30,111,11 21,20,102,-19,-12 0,21,-1,0,0 21,10C,644 38,10D,0 46,104,27 29,111,11 38,10C,640 34,20,101,-20,-9 0,21,-1,0,0 21,10D,0 44,104,27 23,10,7205600 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 41,111,11 41,10C,636 34,20,101,-19,-10 0,21,-1,0,0 19,10D,0 46,104,27 22,10,7205620 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 41,111,11 32,10C,640 43,20,102,-19,-10 0,21,-1,0,0 18,10D,0 41,104,27 24,10,7205640 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 40,111,11 41,10C,636 37,20,102,-19,-9 0,21,-1,0,0 19,10D,0 47,104,26 21,10,7205660 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 41,111,11 31,10C,625 43,20,100,-19,-10 0,21,-1,0,0 23,10D,0 40,10,7205680 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 41,104,26 27,111,11 31,10C,625 38,20,101,-21,-9 0,21,-1,0,0 18,10D,0 43,104,26 22,10,7205700 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 41,111,11 27,10C,632 46,10D,0 37,20,101,-19,-9 0,21,-1,0,0 19,104,26 29,10,7205720 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 49,111,11 31,10C,621 45,10D,0 37,20,103,-19,-9 0,21,-1,0,0 21,104,26 19,10,7205740 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 55,111,11 37,10C,625 46,10D,0 44,20,101,-20,-9 0,21,-1,0,0 26,104,26 28,111,11 33,10C,621 42,10D,0 48,104,26 26,20,101,-20,-12 0,21,-1,0,0 21,111,11 31,10C,625 46,10D,0 49,104,26 31,111,11 22,20,103,-19,-8 0,21,-1,0,0 20,10C,617 40,10D,0 46,104,26 29,111,11 41,10C,613 34,20,107,-17,-6 0,21,-1,0,0 20,10D,0 47,104,25 30,111,11 30,10C,605 44,10D,0 37,20,102,-19,-9 0,21,-1,0,0 17,10,7205840 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 66,104,26 41,111,11 31,10C,609 43,10D,0 37,20,102,-18,-10 0,21,-1,0,0 21,104,26 27,111,11 30,10C,617 43,10D,0 47,104,25 30,111,11 21,20,101,-19,-12 0,21,-1,0,0 24,10C,617 40,10D,0 43,104,25 23,10,7205900 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 42,111,11 28,20,101,-20,-9 0,21,-1,0,0 19,10C,609 43,10D,0 48,104,25 23,10,7205920 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 40,111,11 28,20,102,-20,-10 0,21,-1,0,0 20,10C,613 43,10D,0 47,104,25 24,10,7205940 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 40,111,11 27,10C,613 34,20,101,-20,-12 0,21,-1,0,0 21,10D,0 50,104,25 31,111,11 30,10C,605 46,10D,0 37,20,103,-20,-10 0,21,-1,0,0 20,104,25 36,111,11 22,10,7205980 0,D,0 0,A,-3379502 0,B,15126934 0,C,39 45,10C,609 44,10D,0 37,20,100,-21,-12 0,21,-1,0,0 19,104,25 30,111,11 34,10C,605 36,10,7210000 0,D,0 0,A,-3379502 0,B,15126934 0,C,41 41,10D,0 40,20,102,-17,-8 0,21,-1,0,0 18,104,26 29,111,22 26,10,7210020 0,D,0 0,A,-3379502 0,B,15126934 0,C,41 42,10C,632 40,10D,0 45,104,73 22,20,92,-21,-10 0,21,-1,0,0 18,111,19 29,10,7210040 0,D,0 0,A,-3379502 0,B,15126934 0,C,41 50,10C,1105 44,10D,0 49,104,57 30,20,91,-19,-28 0,21,0,3,1 20,111,18 20,10,7210060 0,D,0 0,A,-3379502 0,B,15126934 0,C,41 55,10C,1695 45,10D,0 54,104,43 21,20,115,13,-3 0,21,-1,0,0 21,111,17 28,10C,1589 46,10D,1 49,104,41 29,111,18 28,20,111,0,-16 0,21,-1,0,0 17,10,7210100 0,D,3 0,A,-3379502 0,B,15126933 0,C,41 67,10C,1480 41,10D,1 48,104,52 28,20,104,-5,-8 0,21,-1,0,0 21,111,20 32,10C,1472 43,10D,1 45,104,60 29,111,20 32,10C,1617 43,20,97,-10,-12 0,21,-1,0,0 17,10,7210140 0,D,5 0,A,-3379502 0,B,15126933 0,C,41 66,10D,1 43,104,60 39,111,20 22,10,7210160 0,D,7 0,A,-3379502 0,B,15126932 0,C,41 40,10C,1710 32,20,106,7,-8 0,21,-1,0,-1 24,10D,5 43,104,58 32,111,20 23,10,7210180 0,D,8 0,A,-3379502 0,B,15126932 0,C,41 40,10C,1765 41,10D,5 37,20,95,-2,-9 0,21,-1,0,-2 19,104,57 42,111,21 23,10,7210200 0,D,9 0,A,-3379502 0,B,15126931 0,C,41 41,10C,1804 41,10D,5 37,20,110,-8,-17 0,21,0,0,-1 19,104,60 30,111,21 31,10C,1847 43,10D,10 46,104,60 29,111,21 22,20,116,12,0 0,21,0,0,0 18,10C,1878 41,10D,10 50,104,60 34,111,21 30,10C,1910 34,20,99,-11,5 0,21,-1,1,-1 19,10D,10 53,104,58 34,111,21 30,10C,1921 46,10D,10 37,20,103,-3,-10 0,21,-1,0,-1 24,104,60 29,111,21 34,10C,1953 46,10D,10 49,104,58 21,20,90,-5,-13 0,21,-1,0,-2 21,111,21 28,10C,1972 43,10D,14 46,104,58 29,111,21 31,10C,1972 35,20,71,-39,13 0,21,-1,2,3 21,10D,14 43,104,58 30,111,21 33,10C,1988 44,10D,14 47,20,111,-1,-4 0,21,-1,1,-1 18,10,7210340 0,D,18 0,A,-3379501 0,B,15126925 0,C,41 65,104,58 28,111,22 32,10C,2011 43,10D,14 47,20,109,-5,-13 0,21,-1,0,-1 16,10,7210360 0,D,18 0,A,-3379501 0,B,15126924 0,C,41 67,104,60 26,111,22 27,10,7210380 0,D,19 0,A,-3379501 0,B,15126922 0,C,41 45,10C,2050 33,20,96,-7,-17 0,21,-1,0,-1 19,10D,18 44,104,58 31,111,22 28,10,7210400 0,D,20 0,A,-3379501 0,B,15126921 0,C,41 39,10C,2031 41,10D,18 38,20,121,-3,-12 0,21,-1,0,2 20,104,60 29,111,22 30,10C,1953 35,10,7210420 0,D,21 0,A,-3379501 0,B,15126920 0,C,41 41,10D,18 48,20,85,-16,-21 0,21,-1,1,-1 20,104,60 32,111,22 35,10C,1914 43,10D,21 46,104,61 27,20,118,1,-4 0,21,-1,0,0 19,111,22 29,10C,1878 44,10D,21 39,10,7210460 0,D,21 0,A,-3379501 0,B,15126917 0,C,41 41,104,62 33,20,85,-22,-25 0,21,-2,1,1 22,111,22 30,10C,1855 44,10D,21 45,104,64 31,111,22 29,20,78,-32,-8 0,21,-2,0,1 19,10C,1832 44,10D,21 38,10,7210500 0,D,25 0,A,-3379501 0,B,15126914 0,C,41 40,104,64 31,111,22 30,20,91,-2,-6 0,21,-1,-1,-3 18,10C,1808 40,10D,24 38,10,7210520 0,D,26 0,A,-3379501 0,B,15126912 0,C,41 41,104,66 31,111,22 35,20,115,-1,-21 0,21,-1,2,-2 18,10C,1773 41,10D,24 37,10,7210540 0,D,26 0,A,-3379501 0,B,15126910 0,C,41 41,104,68 28,111,22 29,10C,1730 34,20,109,-6,-23 0,21,-3,0,-2 20,10D,24 56,104,70 30,111,22 33,10C,1695 59,10D,24 37,20,122,13,-19 0,21,-2,0,-1 21,104,67 31,111,22 30,10C,1699 47,10D,27 47,104,67 26,20,115,-13,-13 0,21,-2,0,-2 17,10,7210600 0,D,29 0,A,-3379501 0,B,15126905 0,C,41 67,111,22 31,10C,1707 43,10D,27 42,20,109,-16,-14 0,21,-2,0,0 15,10,7210620 0,D,30 0,A,-3379501 0,B,15126903 0,C,41 68,104,66 32,111,22 29,10C,1718 46,10D,27 36,20,112,-10,-17 0,21,-1,0,-2 18,10,7210640 0,D,31 0,A,-3379500 0,B,15126902 0,C,41 65,104,66 31,111,22 29,10C,1742 47,10D,30 37,20,103,-13,-9 0,21,-2,0,2 21,104,65 31,111,21 46,10C,1765 43,10D,30 38,10,7210680 0,D,32 0,A,-3379500 0,B,15126898 0,C,41 40,104,63 19,20,109,-4,-18 0,21,-2,0,0 20,111,21 27,10C,1746 44,10D,30 47,104,62 30,111,21 30,10C,1738 34,20,110,-8,-5 0,21,-2,0,0 19,10D,30 46,104,60 23,10,7210720 0,D,33 0,A,-3379500 0,B,15126894 0,C,41 41,111,20 30,10C,1707 44,20,104,-39,-27 0,21,-2,1,2 20,10D,33 47,104,58 22,10,7210740 0,D,34 0,A,-3379499 0,B,15126892 0,C,41 41,111,20 27,10C,1671 43,20,114,-4,-9 0,21,-1,0,4 19,10D,33 42,104,58 23,10,7210760 0,D,35 0,A,-3379499 0,B,15126889 0,C,41 44,111,20 28,10C,1589 46,10D,33 46,20,99,-25,-15 0,21,-1,-1,2 20,104,60 29,111,20 30,10C,1539 55,10D,35 48,104,61 22,20,61,-21,-7 0,21,0,-1,-5 18,111,20 22,10,7210800 0,D,35 0,A,-3379498 0,B,15126885 0,C,41 55,10C,1480 45,10D,35 49,104,63 21,20,93,-17,-10 0,21,-1,0,0 21,111,20 28,10C,1417 47,10D,35 49,104,63 29,111,19 27,20,131,-7,-8 0,21,-1,0,2 18,10,7210840 0,D,36 0,A,-3379498 0,B,15126881 0,C,41 66,10C,1382 44,10D,35 50,104,53 25,20,62,-44,-20 0,21,-1,-1,-1 17,10,7210860 0,D,37 0,A,-3379498 0,B,15126879 0,C,41 66,111,17 33,10C,1328 42,10D,36 46,20,90,-17,-23 0,21,-1,0,0 20,104,47 29,111,15 34,10C,1292 43,10D,36 48,104,37 26,20,66,-16,8 0,21,-1,3,-4 16,10,7210900 0,D,37 0,A,-3379497 0,B,15126874 0,C,41 67,111,14 28,10C,1261 42,10D,36 49,104,28 22,20,129,-14,-4 0,21,-1,0,1 15,10,7210920 0,D,37 0,A,-3379497 0,B,15126872 0,C,41 68,111,13 27,10C,1234 46,10D,36 46,104,22 29,20,101,0,0 0,21,0,2,0 21,111,12 30,10C,1214 83,10D,36 51,104,27 21,20,114,-8,-26 0,21,-2,2,-2 21,111,16 26,10C,1222 50,10D,36 56,104,33 30,111,16 22,20,65,-37,-15 0,21,-2,1,-6 19,10C,1218 45,10D,36 49,104,37 29,111,16 22,10,7211000 0,D,36 0,A,-3379495 0,B,15126863 0,C,41 41,10C,1246 31,20,105,-23,-14 0,21,-2,0,0 21,10D,36 46,104,37 30,111,14 22,10,7211020 0,D,36 0,A,-3379495 0,B,15126861 0,C,41 40,10C,1234 41,10D,36 37,20,89,-34,-24 0,21,-1,0,-3 19,104,31 30,111,14 31,10C,1210 43,10D,36 46,104,33 30,111,16 20,20,127,4,3 0,21,-1,0,-1 20,10C,1226 41,10D,36 50,104,37 29,111,16 30,10C,1257 34,20,87,-26,-21 0,21,-1,-1,0 19,10D,35 62,104,37 30,111,16 29,10C,1292 46,10D,35 37,20,87,-36,-9 0,21,-1,0,0 21,104,38 19,10,7211100 0,D,35 0,A,-3379494 0,B,15126852 0,C,41 56,111,17 37,10C,1312 45,10D,35 37,20,88,-29,-3 0,21,-1,0,-1 22,104,44 31,111,17 34,10C,1332 46,10D,35 48,104,45 22,20,55,-53,0 0,21,-1,2,2 20,111,17 28,10C,1296 51,10D,34 49,104,48 31,111,18 22,20,106,-20,-12 0,21,-1,0,3 20,10C,1261 41,10D,34 46,104,52 30,111,18 32,10C,1261 33,20,106,-20,-6 0,21,-1,0,2 22,10D,34 52,104,57 30,111,19 34,10C,1273 44,10D,34 37,20,114,-18,6 0,21,-1,1,1 24,104,60 32,111,19 30,10C,1289 46,10D,34 49,104,61 21,20,76,-51,-11 0,21,0,0,0 16,10,7211220 0,D,34 0,A,-3379492 0,B,15126840 0,C,41 67,111,19 32,10C,1296 44,10D,34 43,20,119,13,-16 0,21,-1,0,0 20,104,61 31,111,19 30,10C,1292 46,10D,34 45,104,61 23,10,7211260 0,D,35 0,A,-3379491 0,B,15126836 0,C,41 39,111,19 20,20,131,5,3 0,21,0,0,-4 19,10C,1292 44,10D,34 48,104,61 23,10,7211280 0,D,34 0,A,-3379491 0,B,15126834 0,C,41 40,111,20 29,20,119,-8,-8 0,21,0,0,2 19,10C,1324 44,10D,34 48,104,62 23,10,7211300 0,D,35 0,A,-3379490 0,B,15126832 0,C,41 44,111,20 32,20,85,-23,-5 0,21,-1,0,0 20,10C,1328 43,10D,34 54,104,64 31,111,20 30,10C,1320 34,20,87,-21,-24 0,21,-1,0,-1 20,10D,34 46,104,65 30,111,20 21,10,7211340 0,D,35 0,A,-3379490 0,B,15126828 0,C,41 41,10C,1312 44,10D,34 38,20,110,1,-18 0,21,-1,0,1 20,104,65 25,111,20 24,10,7211360 0,D,34 0,A,-3379489 0,B,15126825 0,C,41 40,10C,1316 41,10D,34 45,104,65 21,20,84,-35,0 0,21,-1,-3,2 19,111,20 31,10C,1312 44,10D,34 55,104,65 29,111,20 22,20,120,13,7 0,21,0,0,-3 21,10C,1308 42,10D,34 47,104,65 29,111,20 30,10C,1300 34,20,78,-24,-36 0,21,-1,-1,-3 19,10D,34 48,104,65 30,111,20 30,10C,1304 46,10D,34 37,20,87,-36,6 0,21,0,0,4 18,104,65 21,10,7211440 0,D,35 0,A,-3379488 0,B,15126817 0,C,41 56,111,20 32,10C,1308 43,10D,34 36,20,87,-25,-1 0,21,-1,-1,0 21,104,65 37,111,20 34,10C,1332 42,10D,34 45,104,65 21,20,52,-31,1 0,21,-1,-1,0 21,111,20 19,10,7211480 0,D,35 0,A,-3379488 0,B,15126813 0,C,41 55,10C,1351 59,10D,34 45,104,65 20,20,125,-13,-5 0,21,-1,0,6 22,111,20 31,10C,1347 47,10D,34 45,104,65 31,111,20 27,20,54,-26,-20 0,21,-1,0,0 15,10,7211520 0,D,35 0,A,-3379487 0,B,15126809 0,C,41 68,10C,1339 45,10D,34 48,104,65 27,20,160,35,-21 0,21,-1,-2,-2 19,111,20 32,10C,1355 43,10D,34 49,104,65 32,111,20 27,20,139,27,-1 0,21,-1,-1,-7 20,10C,1355 41,10D,34 45,104,65 30,111,20 31,10C,1355 34,20,79,-5,-2 0,21,-1,1,-7 21,10D,34 44,104,65 29,111,20 42,10C,1355 44,10D,34 37,20,71,-27,-4 0,21,-1,2,1 21,104,65 27,111,20 30,10C,1367 46,10D,34 48,104,65 23,10,7211620 0,D,35 0,A,-3379485 0,B,15126798 0,C,41 44,111,20 20,20,80,-54,-29 0,21,-1,0,6 20,10C,1359 44,10D,34 44,104,64 22,10,7211640 0,D,36 0,A,-3379485 0,B,15126796 0,C,41 41,111,20 28,10C,1324 34,20,103,-19,1 0,21,0,-1,-7 19,10D,34 45,104,64 47,111,20 30,10C,1328 43,10D,34 37,20,86,-66,-37 0,21,0,-1,11 20,104,62 29,111,19 31,10C,1320 55,10D,34 49,104,60 31,20,119,1,-22 0,21,-1,0,0 20,111,18 30,10C,1277 35,10,7211700 0,D,36 0,A,-3379484 0,B,15126790 0,C,41 40,10D,34 44,104,60 29,111,18 21,20,75,-49,4 0,21,0,0,4 19,10C,1246 41,10D,35 50,104,60 29,111,18 30,10C,1246 34,20,70,-32,4 0,21,0,0,0 19,10D,35 37,10,7211740 0,D,36 0,A,-3379484 0,B,15126785 0,C,41 41,104,60 27,111,19 34,10C,1261 42,20,45,-54,-21 0,21,-1,-1,-5 18,10D,35 37,10,7211760 0,D,36 0,A,-3379483 0,B,15126783 0,C,41 41,104,61 32,111,19 33,10C,1285 41,20,69,-31,2 0,21,-1,0,0 19,10D,35 37,10,7211780 0,D,36 0,A,-3379483 0,B,15126781 0,C,41 41,104,61 31,111,19 30,10C,1277 43,20,50,-46,-10 0,21,0,0,-5 20,10D,36 36,10,7211800 0,D,36 0,A,-3379483 0,B,15126779 0,C,41 40,104,60 32,111,17 34,10C,1269 38,20,110,-23,-20 0,21,-1,0,4 19,10D,36 46,10,7211820 0,D,36 0,A,-3379482 0,B,15126777 0,C,41 40,104,50 28,111,14 41,10C,1218 34,20,156,9,-22 0,21,-1,3,2 21,10D,36 35,10,7211840 0,D,36 0,A,-3379482 0,B,15126775 0,C,41 41,104,40 32,111,14 29,10C,1214 44,10D,36 37,20,84,-30,-19 0,21,-1,-1,-2 21,104,33 27,111,13 34,10C,1207 42,10D,36 44,104,29 24,10,7211880 0,D,36 0,A,-3379481 0,B,15126770 0,C,41 41,111,13 19,20,110,-16,8 0,21,-1,3,1 20,10C,1207 44,10D,36 53,104,24 23,10,7211900 0,D,36 0,A,-3379481 0,B,15126768 0,C,41 46,111,12 19,20,129,18,-8 0,21,-1,0,0 19,10C,1195 44,10D,36 48,104,20 30,111,11 31,10C,1191 35,20,111,-23,-8 0,21,-1,0,2 19,10D,35 47,104,17 28,111,11 31,10C,1207 43,10D,35 38,20,99,-30,-3 0,21,0,-1,1 19,104,15 31,111,11 35,10C,1187 44,10D,35 39,10,7211960 0,D,36 0,A,-3379480 0,B,15126762 0,C,49 41,104,14 18,20,94,-41,-23 0,21,-2,-2,1 20,111,11 33,10C,1191 43,10D,35 47,104,13 33,111,11 27,20,107,-26,-17 0,21,-1,0,0 19,10C,1199 48,10D,33 46,104,13 30,111,11 30,10C,1203 34,20,128,-29,-35 0,21,-1,0,14 24,10D,33 53,10,7212020 0,D,33 0,A,-3379479 0,B,15126756 0,C,49 40,104,15 28,111,12 30,10C,1191 35,20,105,-17,-25 0,21,-1,-1,-1 19,10D,33 47,104,18 22,10,7212040 0,D,33 0,A,-3379479 0,B,15126754 0,C,49 41,111,13 26,10C,1226 47,10D,33 37,20,93,-25,-7 0,21,-1,0,0 20,104,20 20,10,7212060 0,D,32 0,A,-3379479 0,B,15126752 0,C,49 55,111,12 36,10C,1253 45,10D,31 37,20,116,-18,-14 0,21,-1,0,2 22,104,16 27,111,11 34,10C,1273 46,10D,31 49,104,14 30,20,102,-20,-15 0,21,-1,0,0 20,111,11 32,10C,1277 47,10D,31 46,104,13 28,111,12 30,20,123,-3,-19 0,21,0,0,0 15,10,7212120 0,D,31 0,A,-3379478 0,B,15126747 0,C,49 68,10C,1269 45,10D,30 47,104,23 27,20,83,-27,-21 0,21,-1,0,0 16,10,7212140 0,D,31 0,A,-3379477 0,B,15126745 0,C,49 67,111,15 32,10C,1277 42,10D,30 43,20,132,-10,3 0,21,-1,0,3 15,10,7212160 0,D,30 0,A,-3379477 0,B,15126743 0,C,49 68,104,31 32,111,15 29,10C,1296 45,10D,30 36,20,95,-16,6 0,21,-1,0,-3 18,10,7212180 0,D,30 0,A,-3379477 0,B,15126741 0,C,49 65,104,33 32,111,16 40,10C,1234 52,20,112,-7,-7 0,21,0,-2,0 25,10D,29 48,104,40 34,111,16 31,10C,1203 44,10D,29 36,20,100,-16,-12 0,21,-1,1,1 21,104,41 29,111,16 32,10C,1195 45,10D,29 46,104,43 30,111,17 22,20,110,-8,-17 0,21,-1,0,0 19,10C,1214 44,10D,29 44,104,47 31,111,17 31,10C,1218 33,20,93,-23,-17 0,21,-1,1,-2 20,10D,29 47,104,48 35,111,17 34,10C,1199 44,10D,28 36,20,95,-22,-11 0,21,-1,0,0 21,104,51 27,111,18 31,10C,1226 43,10D,28 57,104,50 25,20,88,-30,-28 0,21,-1,0,0 20,111,14 31,10C,1246 44,10D,28 39,10,7212320 0,D,30 0,A,-3379475 0,B,15126729 0,C,49 44,104,40 25,20,197,42,-5 0,21,0,-3,-5 20,111,14 27,10C,1238 45,10D,28 39,10,7212340 0,D,30 0,A,-3379475 0,B,15126727 0,C,49 40,104,33 32,111,14 20,20,91,-23,-9 0,21,-1,0,1 20,10C,1238 43,10D,29 39,10,7212360 0,D,30 0,A,-3379475 0,B,15126725 0,C,49 41,104,29 30,111,14 27,20,87,-24,-26 0,21,-2,0,1 18,10C,1246 39,10D,29 40,10,7212380 0,D,30 0,A,-3379474 0,B,15126723 0,C,49 40,104,29 31,111,15 30,10C,1242 46,20,121,9,1 0,21,-1,1,0 19,10D,29 44,104,32 39,111,16 34,10C,1277 42,10D,29 37,20,111,-19,10 0,21,-1,1,4 24,104,35 29,111,16 30,10C,1304 46,10D,29 49,104,37 24,20,103,-19,-22 0,21,-1,-1,1 21,111,16 33,10C,1328 42,10D,29 46,104,40 40,111,16 21,20,110,-17,-14 0,21,-1,0,0 21,10C,1312 42,10D,29 45,104,40 29,111,16 33,10C,1296 34,20,111,-18,-23 0,21,-1,0,0 20,10D,29 44,104,41 34,111,16 30,10C,1277 45,10D,28 37,20,75,-29,-29 0,21,-1,0,-1 21,104,38 27,111,15 43,10C,1250 43,10D,28 44,104,36 22,20,107,-24,-5 0,21,-2,3,-2 20,111,15 40,10C,1242 43,10D,28 45,104,34 31,111,15 30,20,76,-20,-27 0,21,-2,0,-4 22,10C,1238 48,10D,28 50,104,33 28,111,15 33,10C,1230 33,20,141,27,-20 0,21,-1,0,-1 18,10,7212560 0,D,30 0,A,-3379472 0,B,15126707 0,C,49 65,10D,29 48,104,33 27,111,14 31,10C,1226 34,20,178,10,9 0,21,0,2,9 20,10D,29 47,104,32 33,111,14 32,10C,1226 43,10D,29 38,20,116,-16,-12 0,21,0,0,1 16,10,7212600 0,D,30 0,A,-3379471 0,B,15126704 0,C,50 67,104,32 41,111,13 30,10C,1246 43,10D,29 38,20,78,-47,2 0,21,-1,0,3 20,104,27 26,111,13 32,10C,1226 43,10D,30 47,104,25 30,111,12 21,20,64,-45,-51 0,21,-1,1,0 20,10C,1195 42,10D,30 51,104,22 30,111,12 32,10C,1199 35,20,106,-9,0 0,21,-1,-1,2 20,10D,30 45,104,21 23,10,7212680 0,D,29 0,A,-3379470 0,B,15126697 0,C,50 40,111,13 32,10C,1199 42,10D,30 37,20,113,-13,3 0,21,0,0,0 19,104,23 25,10,7212700 0,D,29 0,A,-3379470 0,B,15126695 0,C,50 53,111,13 28,10C,1257 43,10D,29 36,20,149,-11,-37 0,21,-1,-5,-2 19,104,23 42,111,13 30,10C,1269 42,10D,29 46,104,24 24,20,40,-54,-37 0,21,-1,-6,0 19,111,14 44,10C,1277 43,10D,29 45,104,26 30,111,14 20,20,104,-16,-18 0,21,-2,-3,0 20,10C,1308 33,10,7212760 0,D,29 0,A,-3379469 0,B,15126690 0,C,50 44,10D,29 43,104,28 30,111,15 32,10C,1277 34,20,101,-14,-21 0,21,-1,-2,-2 21,10D,28 43,104,29 30,111,15 30,10C,1257 45,10D,28 37,20,94,-31,-25 0,21,-1,0,0 21,104,31 32,111,15 29,10C,1250 46,10D,28 54,104,34 29,20,91,-24,-5 0,21,-2,1,1 18,10,7212820 0,D,29 0,A,-3379468 0,B,15126684 0,C,50 66,111,15 27,10C,1246 45,10D,28 47,104,36 22,20,95,-24,8 0,21,-1,0,1 19,111,15 28,10C,1269 43,10D,28 47,104,36 35,111,15 30,10C,1289 43,20,115,-11,-7 0,21,-1,-1,1 21,10D,28 46,104,36 33,111,15 23,10,7212880 0,D,30 0,A,-3379468 0,B,15126679 0,C,50 41,10C,1308 37,20,89,-24,-27 0,21,0,0,0 21,10D,28 43,104,31 41,111,14 22,10,7212900 0,D,30 0,A,-3379467 0,B,15126677 0,C,50 41,10C,1285 32,20,49,-21,0 0,21,-1,3,-3 20,10D,29 43,104,26 32,111,13 31,10C,1281 52,10D,29 38,20,108,-27,-12 0,21,0,0,3 19,104,23 28,111,12 32,10C,1269 43,10D,29 46,104,20 30,111,12 21,20,101,-16,23 0,21,0,0,-4 19,10C,1242 43,10D,29 39,10,7212960 0,D,30 0,A,-3379466 0,B,15126672 0,C,50 41,104,17 31,111,11 27,20,136,16,-17 0,21,0,1,3 23,10C,1242 40,10D,29 38,10,7212980 0,D,30 0,A,-3379466 0,B,15126670 0,C,50 41,104,15 31,111,11 30,10C,1234 34,20,107,-10,-17 0,21,-1,0,-1 19,10D,30 48,104,14 30,111,11 30,10C,1218 42,10D,30 37,20,106,-28,-17 0,21,-1,-1,2 20,104,13 21,10,7213020 0,D,31 0,A,-3379466 0,B,15126667 0,C,50 55,111,11 41,10C,1191 43,10D,30 37,20,121,-5,-20 0,21,-1,-1,1 21,104,13 28,111,11 34,10C,1191 46,10D,30 49,104,13 26,20,102,-27,-12 0,21,0,-1,-1 16,10,7213060 0,D,31 0,A,-3379465 0,B,15126663 0,C,50 67,111,11 32,10C,1210 47,10D,30 42,20,89,-33,-1 0,21,-1,0,-1 15,10,7213080 0,D,31 0,A,-3379465 0,B,15126661 0,C,50 68,104,13 31,111,11 30,10C,1214 44,10D,30 38,20,127,-7,-22 0,21,-1,0,-3 17,10,7213100 0,D,31 0,A,-3379465 0,B,15126659 0,C,50 66,104,13 39,111,11 32,10C,1214 44,10D,30 37,20,114,-21,-24 0,21,0,1,2 20,104,13 37,111,11 33,10C,1210 42,10D,30 39,10,7213140 0,D,31 0,A,-3379464 0,B,15126656 0,C,50 39,104,13 20,20,134,-5,-19 0,21,-2,0,-2 19,111,11 28,10C,1214 44,10D,30 47,104,13 34,111,11 30,10C,1214 34,20,78,-43,-19 0,21,-1,1,0 24,10D,30 47,104,13 22,10,7213180 0,D,31 0,A,-3379464 0,B,15126652 0,C,50 41,111,11 26,10C,1214 40,20,138,12,-17 0,21,0,1,-3 20,10D,30 45,104,13 23,10,7213200 0,D,31 0,A,-3379463 0,B,15126650 0,C,50 41,111,11 32,10C,1210 42,20,121,-18,-25 0,21,0,0,-1 20,10D,30 42,104,13 23,10,7213220 0,D,31 0,A,-3379463 0,B,15126648 0,C,50 41,111,11 36,10C,1214 44,20,138,-11,-2 0,21,-1,0,3 19,10D,30 47,104,13 22,10,7213240 0,D,31 0,A,-3379463 0,B,15126646 0,C,50 41,111,11 27,10C,1222 46,10D,30 37,20,134,1,4 0,21,-1,0,0 25,104,13 20,10,7213260 0,D,31 0,A,-3379463 0,B,15126644 0,C,50 52,111,11 30,10C,1218 43,10D,30 46,20,70,-23,-4 0,21,-1,0,-2 21,104,13 29,111,11 33,10C,1210 43,10D,30 49,104,13 25,20,78,-43,4 0,21,0,0,-4 16,10,7213300 0,D,31 0,A,-3379462 0,B,15126641 0,C,50 67,111,11 28,10C,1218 46,10D,30 44,20,103,-25,5 0,21,0,0,0 17,10,7213320 0,D,31 0,A,-3379462 0,B,15126639 0,C,50 66,104,13 31,111,11 39,10C,1210 45,10D,30 37,20,86,-45,-11 0,21,-1,0,1 18,10,7213340 0,D,31 0,A,-3379462 0,B,15126637 0,C,50 65,104,13 36,111,11 31,10C,1210 44,10D,30 37,20,101,-16,-11 0,21,0,-1,-1 21,104,13 28,111,11 30,10C,1207 44,10D,30 50,104,13 29,111,11 22,20,165,31,-17 0,21,0,0,-7 20,10C,1199 44,10D,30 48,104,13 23,10,7213400 0,D,31 0,A,-3379461 0,B,15126631 0,C,50 40,111,11 28,10C,1195 35,20,94,-10,-20 0,21,-1,-2,-6 20,10D,30 45,104,13 30,111,11 31,10C,1222 43,10D,30 37,20,139,-3,-27 0,21,-1,-5,-1 20,104,13 38,111,11 30,10C,1195 44,10D,30 47,104,13 25,20,100,-31,-28 0,21,-2,0,1 20,111,11 28,10C,1191 48,10D,30 39,10,7213460 0,D,31 0,A,-3379460 0,B,15126626 0,C,48 44,104,13 25,20,95,-36,-10 0,21,-1,0,1 18,111,11 30,10C,1210 44,10D,30 57,104,13 30,111,11 22,20,107,-11,-10 0,21,-1,1,-2 19,10C,1214 39,10D,30 40,10,7213500 0,D,30 0,A,-3379460 0,B,15126622 0,C,48 40,104,13 32,111,12 29,10C,1250 34,20,99,-41,-20 0,21,-1,0,2 19,10D,30 48,104,16 33,111,12 30,10C,1222 46,10D,30 37,20,102,-13,-4 0,21,-1,0,-1 21,104,18 28,10,7213540 0,D,29 0,A,-3379459 0,B,15126619 0,C,48 48,111,12 31,10C,1203 43,10D,29 36,20,113,-40,-25 0,21,-1,0,3 21,104,20 33,111,13 33,10C,1203 43,10D,29 45,104,21 25,20,84,-38,-19 0,21,0,0,-2 21,111,13 40,10C,1218 43,10D,29 46,104,22 28,111,13 30,20,126,-8,-2 0,21,0,0,3 20,10C,1210 42,10D,29 45,104,23 30,111,13 28,10C,1203 35,20,87,-22,-13 0,21,-1,0,-1 21,10D,28 44,104,23 29,111,13 34,10C,1214 52,10D,28 37,20,103,-17,-19 0,21,-1,0,0 21,104,24 37,111,13 33,10C,1226 42,10D,28 44,104,23 27,20,80,-33,-13 0,21,0,0,0 22,111,13 30,10C,1230 43,10D,28 49,104,24 32,111,13 23,10,7213680 0,D,29 0,A,-3379457 0,B,15126607 0,C,48 41,10C,1234 37,20,111,-17,-1 0,21,-1,-1,1 19,10D,28 43,104,24 32,111,13 30,10C,1246 44,10D,28 37,20,204,37,-29 0,21,1,-4,0 20,104,24 27,111,14 31,10C,1269 44,10D,28 46,104,29 34,111,16 22,20,101,-22,1 0,21,-1,0,0 19,10C,1296 42,10D,28 47,104,34 30,111,16 39,10C,1308 34,20,104,-13,2 0,21,-1,1,0 20,10D,28 46,104,36 23,10,7213760 0,D,29 0,A,-3379456 0,B,15126600 0,C,48 40,111,16 27,10C,1296 46,10D,28 37,20,114,0,-8 0,21,-1,2,-4 20,104,40 27,111,16 31,10C,1277 43,10D,28 46,104,40 32,111,16 20,20,60,-49,0 0,21,-1,1,0 22,10C,1281 45,10D,28 46,104,40 30,111,16 32,10C,1281 47,20,106,-28,0 0,21,-1,0,1 20,10D,28 47,104,41 34,111,16 30,10C,1265 44,10D,29 37,20,88,-30,-16 0,21,-1,1,0 17,10,7213840 0,D,30 0,A,-3379455 0,B,15126592 0,C,48 66,104,41 41,111,16 29,10C,1257 47,10D,29 37,20,90,-32,-1 0,21,-1,0,-1 17,10,7213860 0,D,30 0,A,-3379455 0,B,15126591 0,C,48 66,104,41 28,111,15 29,10C,1257 35,10,7213880 0,D,31 0,A,-3379454 0,B,15126589 0,C,48 41,10D,29 35,20,130,0,-18 0,21,-1,0,-1 20,104,38 29,111,15 33,10C,1234 36,10,7213900 0,D,31 0,A,-3379454 0,B,15126587 0,C,48 44,10D,30 41,20,91,-17,-3 0,21,-1,1,-2 19,104,33 27,111,14 42,10C,1222 34,10,7213920 0,D,31 0,A,-3379454 0,B,15126585 0,C,48 40,10D,30 40,20,74,-30,8 0,21,-1,0,0 21,104,32 29,111,14 29,10C,1210 35,10,7213940 0,D,32 0,A,-3379454 0,B,15126583 0,C,48 41,10D,30 43,104,31 31,20,92,-17,-14 0,21,-1,0,-1 19,111,14 32,10C,1218 35,10,7213960 0,D,32 0,A,-3379453 0,B,15126581 0,C,48 40,10D,30 44,104,31 34,20,96,-12,6 0,21,0,1,0 18,111,14 31,10C,1234 35,10,7213980 0,D,32 0,A,-3379453 0,B,15126579 0,C,48 44,10D,31 48,104,31 25,20,92,-26,-14 0,21,-1,0,0 19,111,14 37,10C,1246 33,10,7214000 0,D,32 0,A,-3379453 0,B,15126577 0,C,48 41,10D,31 44,104,29 26,20,103,-19,-21 0,21,-1,0,6 18,111,14 32,10C,1269 35,10,7214020 0,D,32 0,A,-3379452 0,B,15126575 0,C,48 41,10D,31 43,104,29 30,111,14 21,20,73,-44,-19 0,21,-1,0,1 19,10C,1296 33,10,7214040 0,D,32 0,A,-3379452 0,B,15126573 0,C,48 44,10D,32 47,104,29 30,111,14 30,20,74,-39,-4 0,21,-1,0,0 19,10C,1312 34,10,7214060 0,D,32 0,A,-3379452 0,B,15126572 0,C,48 44,10D,32 44,104,30 30,111,16 32,10C,1312 33,20,124,-19,-11 0,21,-1,-1,0 22,10D,32 43,104,33 30,111,16 29,10C,1316 45,10D,32 37,20,102,-6,-9 0,21,-1,0,0 22,104,35 26,111,16 31,10C,1324 46,10D,32 47,104,36 24,10,7214120 0,D,33 0,A,-3379451 0,B,15126566 0,C,48 41,111,16 19,20,99,-28,0 0,21,-1,0,0 20,10C,1300 41,10D,32 48,104,37 34,111,16 30,10C,1277 35,20,81,-47,6 0,21,-1,1,5 20,10D,32 43,104,37 31,111,15 40,10C,1269 44,10D,32 37,20,98,-21,-14 0,21,-1,0,-1 20,104,36 27,111,16 32,10C,1257 43,10D,33 44,10,7214180 0,D,33 0,A,-3379450 0,B,15126560 0,C,47 41,104,37 18,20,60,-41,11 0,21,0,0,0 21,111,16 41,10C,1257 48,10D,33 49,104,37 34,111,16 21,20,141,0,16 0,21,-1,1,0 20,10C,1257 39,10D,33 39,10,7214220 0,D,34 0,A,-3379449 0,B,15126556 0,C,47 41,104,37 30,111,16 30,10C,1257 34,20,96,-12,3 0,21,0,0,-2 19,10D,33 48,104,37 34,111,16 30,10C,1257 46,10D,34 37,20,98,-28,-16 0,21,0,0,1 20,104,37 29,10,7214260 0,D,34 0,A,-3379449 0,B,15126552 0,C,47 47,111,16 41,10C,1261 45,10D,34 37,20,115,-27,0 0,21,0,-1,0 21,104,37 35,111,16 30,10C,1261 47,10D,34 47,104,37 22,20,88,-21,31 0,21,-1,-1,-1 20,111,16 32,10C,1257 43,10D,34 49,104,37 32,111,15 27,20,70,-56,-20 0,21,-1,-2,0 19,10C,1253 42,10D,34 45,104,35 30,111,16 31,10C,1238 34,20,119,-21,-11 0,21,0,0,0 22,10D,34 84,104,37 39,111,15 30,10C,1242 35,20,73,-41,-19 0,21,-1,0,0 21,10D,34 53,104,37 30,111,15 31,10C,1246 46,10D,34 38,20,121,4,6 0,21,-1,1,-2 16,10,7214380 0,D,35 0,A,-3379447 0,B,15126539 0,C,47 67,104,34 28,111,12 31,10C,1230 44,10D,35 37,20,95,-26,-5 0,21,-1,0,2 24,104,25 28,111,12 29,10C,1218 44,10D,35 48,104,21 29,111,11 22,20,102,-18,-31 0,21,-1,0,0 19,10C,1203 44,10D,35 44,104,18 24,10,7214440 0,D,36 0,A,-3379446 0,B,15126533 0,C,47 41,111,11 32,10C,1214 33,20,96,-9,-16 0,21,0,0,-5 20,10D,35 45,104,14 31,111,11 30,10C,1226 56,10D,36 37,20,83,-49,1 0,21,-1,2,0 20,104,14 26,111,11 30,10C,1242 44,10D,36 45,104,13 30,111,11 22,20,89,-24,-4 0,21,0,0,-2 18,10C,1187 41,10D,36 47,104,13 34,111,11 30,10C,1175 33,20,78,-38,0 0,21,-1,1,-2 20,10D,36 48,104,14 22,10,7214520 0,D,36 0,A,-3379444 0,B,15126524 0,C,46 44,111,15 33,10C,1171 34,20,106,-27,13 0,21,0,1,0 19,10D,35 45,104,28 41,111,18 30,10C,1285 43,10D,35 36,20,72,-37,-6 0,21,-2,0,0 19,104,46 21,10,7214560 0,D,35 0,A,-3379444 0,B,15126520 0,C,46 56,111,20 41,10C,1421 42,10D,35 37,20,112,6,-20 0,21,-1,0,-2 22,104,61 27,111,21 30,10C,1378 47,10D,35 48,104,69 29,111,20 30,20,-22,-37,-45 0,21,-2,0,-6 20,10C,1328 41,10D,35 46,104,66 29,111,19 31,10C,1332 34,20,131,-10,-24 0,21,-2,-2,0 18,10,7214620 0,D,36 0,A,-3379443 0,B,15126514 0,C,46 66,10D,35 47,104,63 35,111,19 34,10C,1359 35,20,109,-20,5 0,21,-1,-1,0 17,10,7214640 0,D,36 0,A,-3379443 0,B,15126511 0,C,46 66,10D,35 46,104,60 31,111,19 30,10C,1332 34,20,106,-10,-7 0,21,-1,1,0 21,10D,35 55,104,60 27,111,19 31,10C,1324 48,10D,36 37,20,111,-12,-20 0,21,0,-1,1 20,104,61 30,111,19 32,10C,1320 43,10D,36 55,104,60 22,20,97,0,6 0,21,0,-1,0 19,111,19 31,10C,1312 55,10D,36 37,10,7214720 0,D,38 0,A,-3379441 0,B,15126503 0,C,46 41,104,60 20,20,110,-20,-19 0,21,-1,0,-3 19,111,18 35,10C,1296 46,10D,36 38,10,7214740 0,D,38 0,A,-3379441 0,B,15126500 0,C,46 41,104,54 23,20,107,-6,-32 0,21,0,-1,0 21,111,17 27,10C,1285 46,10D,37 37,10,7214760 0,D,39 0,A,-3379440 0,B,15126498 0,C,46 40,104,48 32,111,15 30,20,135,10,-8 0,21,0,0,1 19,10C,1277 39,10D,37 40,10,7214780 0,D,39 0,A,-3379440 0,B,15126496 0,C,46 40,104,41 32,111,14 30,10C,1269 33,20,115,1,1 0,21,0,1,-6 19,10D,37 44,104,33 34,111,14 29,10C,1257 46,10D,37 37,20,73,-39,-18 0,21,0,-1,0 20,104,29 20,10,7214820 0,D,39 0,A,-3379439 0,B,15126491 0,C,46 55,111,13 32,10C,1242 46,10D,38 37,20,55,-89,11 0,21,-1,1,3 21,104,25 32,111,12 30,10C,1230 42,10D,38 45,104,22 32,111,12 21,20,119,-13,-14 0,21,0,0,-4 18,10,7214860 0,D,40 0,A,-3379439 0,B,15126486 0,C,46 65,10C,1218 45,10D,38 58,104,18 20,20,93,-41,-6 0,21,0,-1,5 17,10,7214880 0,D,39 0,A,-3379438 0,B,15126484 0,C,46 66,111,12 32,10C,1246 41,10D,38 47,104,21 21,20,104,-15,0 0,21,-2,2,0 17,10,7214900 0,D,39 0,A,-3379438 0,B,15126482 0,C,46 66,111,14 31,10C,1242 42,10D,38 50,20,56,-43,9 0,21,-1,1,5 20,10,7214920 0,D,39 0,A,-3379438 0,B,15126479 0,C,46 63,104,24 28,111,15 31,10C,1226 44,10D,38 36,20,114,-18,-15 0,21,-1,4,0 21,104,29 28,111,15 32,10C,1226 44,10D,38 51,104,34 29,20,102,-20,0 0,21,-3,-2,0 21,111,16 30,10C,1234 43,10D,38 56,104,37 23,10,7214980 0,D,39 0,A,-3379437 0,B,15126472 0,C,46 40,111,16 20,20,138,-15,-32 0,21,-1,0,0 19,10C,1242 40,10D,38 46,104,43 22,10,7215000 0,D,39 0,A,-3379436 0,B,15126470 0,C,46 40,111,17 27,10C,1261 35,20,91,-19,-23 0,21,-2,0,1 20,10D,38 47,104,44 21,10,7215020 0,D,40 0,A,-3379436 0,B,15126467 0,C,46 44,111,15 29,10C,1257 39,20,94,-15,-17 0,21,-1,0,0 18,10D,39 43,104,40 23,10,7215040 0,D,40 0,A,-3379436 0,B,15126465 0,C,46 40,111,15 27,10C,1269 43,10D,39 37,20,76,-37,9 0,21,-1,1,1 20,104,33 31,111,13 24,10,7215060 0,D,40 0,A,-3379435 0,B,15126463 0,C,45 40,10C,1265 41,10D,39 45,20,91,-21,-22 0,21,0,0,0 18,104,26 41,111,12 24,10,7215080 0,D,40 0,A,-3379435 0,B,15126460 0,C,45 40,10C,1261 50,10D,39 37,20,170,13,-16 0,21,0,-6,0 20,104,20 20,10,7215100 0,D,40 0,A,-3379435 0,B,15126458 0,C,45 55,111,12 29,10C,1222 46,10D,40 37,20,109,-27,3 0,21,-1,-2,2 19,104,17 20,10,7215120 0,D,40 0,A,-3379434 0,B,15126455 0,C,45 56,111,13 36,10C,1253 45,10D,40 37,20,97,-8,-16 0,21,0,0,1 20,104,22 29,111,14 30,10C,1253 43,10D,40 45,104,25 32,111,14 21,20,87,-26,-8 0,21,-1,1,3 16,10,7215160 0,D,40 0,A,-3379434 0,B,15126451 0,C,45 67,10C,1234 44,10D,40 44,104,29 31,20,105,-25,-10 0,21,-1,0,0 20,111,15 32,10C,1253 42,10D,40 45,104,35 32,111,16 30,10C,1246 34,20,117,-1,-21 0,21,-1,-1,-4 25,10D,40 44,104,40 29,111,18 32,10C,1257 43,10D,40 38,20,136,6,-26 0,21,-1,1,1 19,104,50 31,111,18 34,10C,1273 44,10D,40 39,10,7215240 0,D,41 0,A,-3379432 0,B,15126441 0,C,45 41,104,55 18,20,92,-27,-11 0,21,-1,0,1 21,111,18 27,10C,1277 44,10D,40 48,104,57 32,111,18 30,10C,1277 35,20,95,-27,0 0,21,0,0,1 19,10D,40 45,104,57 33,10,7215280 0,D,41 0,A,-3379431 0,B,15126436 0,C,45 40,111,18 28,10C,1277 47,20,106,-16,-22 0,21,-1,-1,1 19,10D,40 43,104,58 22,10,7215300 0,D,42 0,A,-3379431 0,B,15126433 0,C,45 45,111,18 32,10C,1273 39,20,104,-15,-7 0,21,0,0,-1 18,10D,41 56,104,57 35,111,18 30,10C,1273 42,10D,41 37,20,98,-26,6 0,21,-1,2,-1 19,104,58 25,10,7215340 0,D,42 0,A,-3379430 0,B,15126428 0,C,45 53,111,18 28,10C,1269 46,10D,41 37,20,146,8,-9 0,21,0,0,-3 18,104,58 29,111,18 30,10C,1265 43,10D,41 45,104,60 32,111,18 22,20,137,8,-8 0,21,0,0,0 20,10C,1265 50,10D,42 46,104,61 30,111,19 32,10C,1269 34,20,134,17,0 0,21,-1,-2,-4 20,10D,42 44,104,62 30,111,19 30,10C,1281 46,10D,42 36,20,29,-47,-21 0,21,-1,-2,0 21,104,64 32,111,20 29,10C,1289 47,10D,42 45,104,63 26,20,114,-7,-24 0,21,-2,-1,-3 21,111,20 36,10C,1300 48,10D,42 48,104,66 31,111,20 22,20,100,-41,-19 0,21,-1,0,-1 17,10,7215460 0,D,45 0,A,-3379428 0,B,15126413 0,C,45 66,10C,1320 44,10D,43 44,104,68 31,111,21 29,20,87,-25,12 0,21,-1,1,-3 22,10C,1339 44,10D,43 45,104,68 40,111,21 23,10,7215500 0,D,45 0,A,-3379427 0,B,15126407 0,C,45 41,10C,1351 32,20,110,0,1 0,21,-1,-1,0 21,10D,43 43,104,69 30,111,21 35,10C,1378 43,10D,45 38,20,105,-3,-1 0,21,0,0,-5 20,104,69 45,111,21 27,10C,1382 36,10,7215540 0,D,47 0,A,-3379426 0,B,15126402 0,C,45 41,10D,45 35,20,99,-20,0 0,21,0,0,2 19,104,69 31,111,21 28,10C,1402 48,10D,45 49,104,66 26,20,155,17,-18 0,21,0,0,0 20,111,18 30,10C,1402 41,10D,45 39,10,7215580 0,D,47 0,A,-3379425 0,B,15126396 0,C,45 41,104,52 32,20,150,35,-5 0,21,-1,2,-5 21,111,16 30,10C,1375 42,10D,47 38,10,7215600 0,D,47 0,A,-3379425 0,B,15126393 0,C,45 40,104,40 28,111,15 22,20,119,-6,-1 0,21,0,1,1 19,10C,1332 38,10D,47 47,104,34 30,111,14 29,10C,1324 39,20,119,-10,-18 0,21,0,0,-2 23,10D,47 47,104,30 22,10,7215640 0,D,48 0,A,-3379424 0,B,15126388 0,C,45 40,111,14 44,10C,1300 34,20,124,-19,-1 0,21,0,0,3 20,10D,47 53,104,27 34,111,13 29,10C,1273 42,10D,47 38,20,83,-50,8 0,21,-1,1,5 19,104,25 31,111,16 22,10,7215680 0,D,48 0,A,-3379423 0,B,15126382 0,C,45 41,10C,1253 40,10D,47 47,20,106,-22,0 0,21,-1,-4,0 19,104,37 31,111,18 22,10,7215700 0,D,47 0,A,-3379423 0,B,15126379 0,C,45 41,10C,1242 39,10D,47 46,104,50 21,20,115,-20,-58 0,21,-1,0,-3 18,111,19 22,10,7215720 0,D,48 0,A,-3379423 0,B,15126376 0,C,45 55,10C,1269 46,10D,47 48,104,60 22,20,92,-47,-19 0,21,-1,1,-5 20,111,19 20,10,7215740 0,D,48 0,A,-3379422 0,B,15126373 0,C,45 55,10C,1289 45,10D,47 48,104,60 22,20,83,16,6 0,21,0,-1,-3 20,111,19 29,10C,1289 43,10D,47 45,104,61 33,111,20 28,10C,1320 33,20,80,-48,3 0,21,-1,0,0 18,10,7215780 0,D,48 0,A,-3379422 0,B,15126368 0,C,45 66,10D,47 54,104,65 27,111,20 31,10C,1335 34,20,82,-39,11 0,21,0,2,0 20,10D,48 48,104,66 38,111,20 32,10C,1335 37,10,7215820 0,D,48 0,A,-3379421 0,B,15126362 0,C,45 44,10D,48 36,20,137,51,12 0,21,0,0,-7 19,104,67 27,111,20 32,10C,1347 43,10D,48 46,104,67 29,111,21 21,20,172,3,0 0,21,0,2,-3 20,10C,1359 38,10D,48 47,104,70 29,111,21 30,10C,1378 39,20,139,2,12 0,21,0,0,4 19,10D,48 51,104,70 23,10,7215880 0,D,48 0,A,-3379420 0,B,15126353 0,C,45 40,111,22 27,10C,1390 43,20,55,-40,-14 0,21,-2,1,-1 20,10D,48 52,104,71 21,10,7215900 0,D,48 0,A,-3379419 0,B,15126351 0,C,45 41,111,22 28,10C,1402 39,20,114,-10,11 0,21,-2,0,-3 18,10D,48 42,104,76 24,10,7215920 0,D,48 0,A,-3379419 0,B,15126348 0,C,45 45,111,23 28,10C,1437 43,10D,48 37,20,201,34,-2 0,21,-2,0,-9 19,104,81 32,111,26 23,10,7215940 0,D,48 0,A,-3379418 0,B,15126345 0,C,45 40,10C,1460 44,10D,48 45,104,83 21,20,100,-18,-30 0,21,-1,-1,5 21,111,25 28,10C,1500 47,10D,48 49,104,83 28,111,25 30,20,150,22,-12 0,21,-1,1,-5 16,10,7215980 0,D,49 0,A,-3379418 0,B,15126339 0,C,45 67,10C,1523 45,10D,48 48,104,87 30,20,146,5,-27 0,21,-1,0,0 21,111,27 31,10C,1562 43,10D,48 54,104,87 40,111,27 21,20,108,-6,-6 0,21,-1,0,-1 33,10C,1574 43,10D,48 49,104,87 30,111,27 33,10C,1601 35,20,132,4,-22 0,21,-1,-1,3 15,10,7220040 0,D,49 0,A,-3379416 0,B,15126330 0,C,45 67,10D,48 43,104,90 33,111,29 23,10,7220060 0,D,49 0,A,-3379416 0,B,15126327 0,C,45 40,10C,1628 32,20,86,-12,-35 0,21,-2,0,1 20,10D,48 43,104,91 32,111,29 35,10C,1644 35,10,7220080 0,D,49 0,A,-3379415 0,B,15126324 0,C,46 41,10D,48 35,20,20,-12,-66 0,21,0,0,-8 20,104,91 25,111,29 44,10C,1656 44,10D,49 49,104,92 22,20,114,15,26 0,21,-1,2,-6 19,111,30 30,10C,1675 43,10D,49 51,104,93 30,111,30 27,20,139,25,0 0,21,0,-1,3 19,10C,1679 43,10D,49 39,10,7220140 0,D,50 0,A,-3379414 0,B,15126315 0,C,46 40,104,93 32,111,30 29,10C,1687 34,20,78,-36,7 0,21,0,0,-1 19,10D,49 36,10,7220160 0,D,50 0,A,-3379413 0,B,15126312 0,C,46 41,104,94 32,111,30 33,10C,1695 42,20,84,-18,-8 0,21,0,1,-1 18,10D,50 47,10,7220180 0,D,50 0,A,-3379413 0,B,15126309 0,C,46 40,104,94 28,111,30 30,10C,1695 38,20,62,-19,-10 0,21,0,-1,5 18,10D,50 53,104,94 30,111,30 30,10C,1695 46,10D,50 37,20,73,-30,-2 0,21,0,-2,0 24,104,94 29,111,31 30,10C,1699 43,10D,50 45,104,94 31,111,31 22,20,152,12,11 0,21,0,0,7 20,10C,1718 44,10D,50 51,104,94 32,111,31 32,10C,1726 43,20,26,-73,-82 0,21,-2,-11,-7 21,10D,50 44,104,93 29,111,30 33,10C,1726 42,10D,50 38,20,129,4,-2 0,21,0,1,5 15,10,7220280 0,D,51 0,A,-3379411 0,B,15126294 0,C,46 68,104,92 31,111,30 30,10C,1734 44,10D,50 46,20,165,69,-6 0,21,-2,2,-3 21,104,93 28,111,30 32,10C,1722 42,10D,50 38,10,7220320 0,D,51 0,A,-3379410 0,B,15126288 0,C,46 41,104,93 20,20,46,-34,0 0,21,0,-1,0 23,111,30 31,10C,1738 44,10D,50 40,10,7220340 0,D,51 0,A,-3379409 0,B,15126285 0,C,46 40,104,92 24,20,79,-19,49 0,21,-1,4,-1 20,111,30 31,10C,1734 45,10D,50 48,10,7220360 0,D,51 0,A,-3379409 0,B,15126282 0,C,46 40,104,92 19,20,127,29,23 0,21,0,2,-6 20,111,30 34,10C,1722 41,10D,51 52,10,7220380 0,D,52 0,A,-3379408 0,B,15126279 0,C,46 40,104,93 19,20,51,-18,-5 0,21,-1,0,-9 20,111,29 31,10C,1714 46,10D,51 38,10,7220400 0,D,52 0,A,-3379408 0,B,15126276 0,C,46 40,104,89 29,20,85,-44,-15 0,21,-1,2,0 19,111,27 34,10C,1695 42,10D,51 37,10,7220420 0,D,52 0,A,-3379407 0,B,15126273 0,C,46 41,104,84 27,111,18 22,20,116,-31,-12 0,21,-1,1,-5 19,10C,1636 39,10D,51 39,10,7220440 0,D,52 0,A,-3379407 0,B,15126270 0,C,46 41,104,53 31,111,15 31,10C,1574 33,20,75,-55,-18 0,21,-1,-1,4 19,10D,52 45,104,36 30,111,15 33,10C,1511 43,10D,52 37,20,114,7,4 0,21,0,-1,1 19,104,31 21,10,7220480 0,D,52 0,A,-3379406 0,B,15126264 0,C,46 55,111,16 28,10C,1445 47,10D,52 37,20,44,-28,-13 0,21,-2,3,5 20,104,41 20,10,7220500 0,D,51 0,A,-3379405 0,B,15126260 0,C,46 55,111,20 32,10C,1429 54,10D,51 37,20,135,-40,-21 0,21,0,0,0 22,104,77 31,111,25 34,10C,1460 46,10D,51 48,104,85 22,20,105,-7,-12 0,21,0,-1,-4 21,111,27 29,10C,1500 55,10D,51 50,104,87 28,111,27 21,20,151,61,-23 0,21,-1,-1,-6 21,10C,1539 44,10D,51 50,104,88 29,111,27 32,10C,1570 34,20,89,-51,-5 0,21,-1,0,-5 21,10D,51 43,104,88 30,111,28 31,10C,1597 44,10D,50 37,20,112,-23,9 0,21,-2,1,-3 21,104,90 28,111,29 29,10C,1625 46,10D,50 54,104,90 23,10,7220620 0,D,50 0,A,-3379403 0,B,15126242 0,C,46 44,111,29 20,20,72,-32,-15 0,21,0,1,2 20,10C,1632 44,10D,50 51,104,90 23,10,7220640 0,D,51 0,A,-3379402 0,B,15126239 0,C,46 41,111,29 23,20,49,-51,-1 0,21,-2,0,0 20,10C,1648 52,10D,50 49,104,91 22,10,7220660 0,D,51 0,A,-3379402 0,B,15126236 0,C,46 41,111,29 19,20,128,-9,-6 0,21,-1,-1,1 20,10C,1675 44,10D,50 48,104,91 22,10,7220680 0,D,51 0,A,-3379401 0,B,15126233 0,C,46 41,111,29 28,10C,1671 34,20,124,34,67 0,21,1,0,8 20,10D,50 45,104,91 31,111,29 31,10C,1687 43,10D,50 37,20,102,-5,-8 0,21,-2,0,3 20,104,91 70,111,29 33,10C,1695 43,10D,51 37,20,35,-62,-36 0,21,0,-6,-3 21,104,91 29,111,29 27,10,7220740 0,D,51 0,A,-3379400 0,B,15126224 0,C,46 40,10C,1699 53,10D,51 37,20,148,-13,-14 0,21,-1,-1,4 21,104,91 25,111,29 31,10C,1695 47,10D,51 49,104,91 27,20,124,6,-5 0,21,0,-1,9 18,111,29 30,10C,1703 43,10D,51 46,104,91 30,111,29 29,10C,1687 34,20,122,-6,-36 0,21,-1,0,-2 20,10D,51 44,104,90 34,111,29 29,10C,1703 46,10D,51 37,20,36,-73,-43 0,21,-2,0,5 21,104,91 28,10,7220820 0,D,51 0,A,-3379398 0,B,15126212 0,C,46 48,111,29 35,10C,1687 46,10D,51 37,20,131,19,0 0,21,-1,0,5 21,104,91 32,111,29 33,10C,1683 47,10D,51 48,104,91 22,20,179,45,-10 0,21,0,-3,-4 20,111,29 29,10C,1675 43,10D,51 45,104,91 33,111,29 33,10C,1691 34,20,83,-24,-1 0,21,-1,2,-11 16,10,7220880 0,D,52 0,A,-3379396 0,B,15126202 0,C,46 66,10D,51 43,104,91 32,111,29 44,10C,1695 35,20,107,-41,-15 0,21,0,-1,-2 20,10D,51 44,104,91 31,111,29 29,10C,1679 36,10,7220920 0,D,52 0,A,-3379395 0,B,15126196 0,C,46 41,10D,51 44,20,84,-3,-28 0,21,0,-1,12 20,104,91 30,111,29 34,10C,1671 35,10,7220940 0,D,52 0,A,-3379395 0,B,15126193 0,C,46 41,10D,52 43,104,91 21,20,83,-1,-25 0,21,-1,0,-3 20,111,29 32,10C,1675 37,10,7220960 0,D,52 0,A,-3379395 0,B,15126190 0,C,46 40,10D,52 44,104,91 27,20,-8,-108,45 0,21,0,0,1 18,111,29 33,10C,1675 37,10,7220980 0,D,52 0,A,-3379394 0,B,15126187 0,C,46 41,10D,52 47,104,91 27,20,145,13,-37 0,21,-1,0,0 18,111,29 29,10C,1671 44,10D,52 46,104,91 29,111,29 30,10C,1671 34,20,119,-27,1 0,21,0,1,3 19,10D,52 37,10,7221020 0,D,52 0,A,-3379393 0,B,15126181 0,C,46 44,104,91 41,111,28 41,10C,1683 34,20,98,-9,17 0,21,0,0,-6 20,10D,52 46,104,89 29,111,27 30,10C,1691 46,10D,52 45,20,79,-31,0 0,21,-3,0,-6 21,104,86 27,111,26 30,10C,1664 47,10D,52 47,104,84 28,10,7221080 0,D,53 0,A,-3379392 0,B,15126171 0,C,46 41,111,26 18,20,34,-45,-21 0,21,-2,2,-2 21,10C,1625 44,10D,52 45,104,84 29,111,26 34,10,7221100 0,D,52 0,A,-3379391 0,B,15126168 0,C,46 41,10C,1605 32,20,55,-76,-57 0,21,-4,-1,2 20,10D,52 43,104,84 29,111,26 23,10,7221120 0,D,52 0,A,-3379391 0,B,15126165 0,C,46 44,10C,1605 42,20,129,6,0 0,21,-1,0,4 19,10D,52 51,104,85 31,111,26 31,10C,1589 47,10D,52 37,20,110,-14,-5 0,21,-1,0,-1 19,104,85 30,111,26 35,10C,1597 43,10D,52 49,104,85 26,20,111,-15,-7 0,21,0,0,2 20,111,26 29,10C,1605 44,10D,52 38,10,7221180 0,D,52 0,A,-3379389 0,B,15126155 0,C,57 41,104,85 28,20,100,-4,-9 0,21,-1,1,-2 20,111,26 28,10C,1613 44,10D,52 46,104,84 30,111,26 30,10C,1613 35,20,92,-31,-10 0,21,0,0,3 19,10D,52 48,104,85 33,111,26 31,10C,1605 42,10D,52 46,20,110,-14,-9 0,21,0,0,4 20,104,84 37,111,26 29,10C,1605 43,10D,52 45,104,84 30,20,104,-22,-17 0,21,-1,0,-2 22,111,26 32,10C,1621 43,10D,52 49,104,84 29,111,26 28,20,74,-37,-18 0,21,-1,0,-1 21,10C,1613 41,10D,52 46,104,83 29,111,26 33,10C,1617 34,20,87,0,-23 0,21,-1,0,-3 20,10D,52 44,104,83 34,111,26 30,10C,1613 46,10D,52 37,20,125,-14,1 0,21,-1,-2,3 20,104,82 28,111,26 30,10C,1625 46,10D,52 49,104,82 31,20,89,-28,-2 0,21,-1,0,1 20,111,25 28,10C,1601 46,10D,52 49,104,82 32,111,25 26,20,91,-20,-16 0,21,0,0,3 21,10C,1605 41,10D,52 46,104,82 29,111,25 35,10C,1605 35,20,110,-17,-20 0,21,-1,-1,1 21,10D,52 44,104,81 50,111,25 29,10C,1601 47,10D,52 37,20,112,-2,-7 0,21,-1,0,0 15,10,7221400 0,D,53 0,A,-3379384 0,B,15126121 0,C,57 68,104,81 27,111,25 31,10C,1574 44,10D,52 37,20,105,0,-7 0,21,-1,0,0 20,104,81 28,111,25 33,10C,1574 45,10D,52 48,10,7221440 0,D,54 0,A,-3379383 0,B,15126114 0,C,57 40,104,81 32,20,95,-21,-13 0,21,0,0,0 20,111,25 30,10C,1582 40,10,7221460 0,D,54 0,A,-3379383 0,B,15126111 0,C,57 40,10D,52 48,104,81 25,20,149,16,-7 0,21,0,-2,0 25,111,25 30,10C,1574 47,10D,52 46,104,81 29,111,25 27,20,92,-23,0 0,21,0,0,0 20,10C,1578 42,10D,52 50,104,81 34,111,25 29,10C,1578 34,20,95,-24,7 0,21,0,0,0 20,10D,53 46,104,81 23,10,7221520 0,D,54 0,A,-3379382 0,B,15126101 0,C,57 41,111,25 31,10C,1578 40,20,98,-19,17 0,21,1,0,0 19,10D,53 45,104,81 33,10,7221540 0,D,54 0,A,-3379381 0,B,15126098 0,C,57 40,111,24 28,10C,1562 38,20,95,-21,5 0,21,2,0,0 20,10D,53 46,104,77 23,10,7221560 0,D,54 0,A,-3379381 0,B,15126095 0,C,57 39,111,22 28,10C,1535 46,10D,54 37,20,104,0,14 0,21,2,0,-2 24,104,71 21,10,7221580 0,D,54 0,A,-3379381 0,B,15126092 0,C,57 51,111,22 32,10C,1496 43,10D,54 37,20,95,-26,10 0,21,3,0,1 18,104,71 22,10,7221600 0,D,55 0,A,-3379380 0,B,15126088 0,C,57 55,111,22 29,10C,1476 46,10D,54 75,20,119,-6,7 0,21,2,0,-1 20,104,71 28,111,22 30,10C,1460 47,10D,54 43,104,72 30,111,22 31,20,109,-15,0 0,21,1,0,0 21,10C,1457 44,10D,54 49,104,72 31,111,22 24,10,7221660 0,D,55 0,A,-3379380 0,B,15126078 0,C,57 40,10C,1437 33,20,90,-28,6 0,21,2,0,-3 19,10D,54 43,104,73 36,111,22 24,10,7221680 0,D,55 0,A,-3379380 0,B,15126075 0,C,57 42,10C,1433 36,20,54,-51,21 0,21,3,-1,2 20,10D,54 47,104,74 31,111,22 35,10C,1433 43,10D,54 37,20,112,-2,3 0,21,3,-2,-2 20,104,74 28,111,22 31,10C,1437 43,10D,54 39,10,7221720 0,D,55 0,A,-3379381 0,B,15126068 0,C,62 41,104,75 20,20,98,-20,26 0,21,4,-1,0 19,111,23 30,10C,1445 43,10D,54 59,104,75 39,111,23 22,20,100,-23,33 0,21,3,0,0 19,10C,1453 39,10D,54 39,10,7221760 0,D,55 0,A,-3379382 0,B,15126062 0,C,62 41,104,75 31,111,24 29,10C,1480 35,20,83,-21,37 0,21,3,0,0 32,10D,54 44,104,77 30,111,24 29,10C,1488 46,10D,54 37,20,110,-1,20 0,21,3,0,-4 21,104,80 19,10,7221800 0,D,55 0,A,-3379383 0,B,15126055 0,C,62 55,111,25 28,10C,1531 43,10D,54 49,20,131,-9,25 0,21,2,0,3 21,104,81 31,111,26 30,10C,1550 46,10D,54 48,104,85 27,20,125,3,0 0,21,1,-2,-3 15,10,7221840 0,D,55 0,A,-3379384 0,B,15126049 0,C,62 68,111,27 42,10C,1589 45,10D,55 38,20,113,0,-14 0,21,0,0,-1 20,104,85 31,111,27 30,10C,1613 43,10D,55 47,104,85 31,111,27 21,20,112,-1,-12 0,21,0,0,0 21,10C,1640 45,10D,55 45,104,88 31,111,27 28,10,7221900 0,D,56 0,A,-3379387 0,B,15126039 0,C,62 40,10C,1644 33,20,112,-15,4 0,21,-1,0,1 19,10D,55 44,104,87 31,111,27 29,10C,1664 35,10,7221920 0,D,56 0,A,-3379388 0,B,15126036 0,C,62 41,10D,56 35,20,94,-9,9 0,21,-2,0,-1 21,104,86 29,111,26 29,10C,1664 36,10,7221940 0,D,56 0,A,-3379389 0,B,15126032 0,C,62 41,10D,56 43,104,67 31,20,147,28,19 0,21,0,0,4 19,111,19 33,10C,1628 37,10,7221960 0,D,57 0,A,-3379390 0,B,15126029 0,C,62 40,10D,56 44,104,49 29,20,95,-2,62 0,21,0,0,-3 22,111,15 31,10C,1546 45,10,7221980 0,D,57 0,A,-3379391 0,B,15126026 0,C,62 41,10D,56 43,104,33 21,20,142,11,-31 0,21,-2,-1,1 20,111,14 29,10C,1453 37,10,7222000 0,D,57 0,A,-3379392 0,B,15126023 0,C,62 40,10D,56 47,104,27 27,20,65,-47,-26 0,21,-1,1,4 18,111,14 34,10C,1398 35,10,7222020 0,D,57 0,A,-3379393 0,B,15126019 0,C,62 41,10D,56 47,104,29 26,20,181,7,-9 0,21,-1,0,-5 18,111,15 30,10C,1367 35,10,7222040 0,D,57 0,A,-3379394 0,B,15126016 0,C,62 41,10D,56 43,104,32 36,20,39,-59,1 0,21,-1,1,0 18,111,16 31,10C,1343 35,10,7222060 0,D,56 0,A,-3379394 0,B,15126013 0,C,62 41,10D,56 44,104,40 29,111,18 21,20,112,-2,4 0,21,-1,-2,0 19,10C,1324 41,10D,56 49,104,47 30,111,18 29,10C,1312 34,20,68,-46,-5 0,21,-1,3,0 20,10D,56 46,10,7222100 0,D,56 0,A,-3379396 0,B,15126006 0,C,62 40,104,54 27,111,19 30,10C,1320 38,20,64,-65,-5 0,21,0,0,0 18,10D,56 44,104,61 34,111,20 30,10C,1335 46,10D,56 37,20,85,-33,-13 0,21,0,-1,0 20,104,64 20,10,7222140 0,D,56 0,A,-3379398 0,B,15126000 0,C,62 55,111,20 32,10C,1347 46,10D,55 50,20,88,-2,-4 0,21,-1,-3,1 21,104,64 27,111,20 30,10C,1355 51,10D,55 44,104,64 27,20,158,19,-56 0,21,-1,-1,0 16,10,7222180 0,D,56 0,A,-3379401 0,B,15125993 0,C,62 68,111,20 31,10C,1367 58,10D,55 37,20,119,-3,20 0,21,0,0,-3 21,104,61 27,111,16 29,10C,1363 48,10D,55 47,104,48 30,111,14 21,20,75,-50,-12 0,21,0,0,-1 21,10C,1347 44,10D,55 50,104,36 30,111,14 35,10C,1328 34,20,100,-30,-6 0,21,-4,0,-1 21,10D,55 43,104,30 33,111,13 35,10C,1312 53,10D,55 37,20,125,2,-1 0,21,-2,0,1 19,104,26 28,111,13 33,10C,1304 42,10D,55 43,10,7222280 0,D,56 0,A,-3379405 0,B,15125977 0,C,62 40,104,22 19,20,92,-26,-14 0,21,-1,0,2 20,111,12 30,10C,1285 45,10D,55 39,10,7222300 0,D,55 0,A,-3379406 0,B,15125974 0,C,62 41,104,18 27,111,12 22,20,82,-55,-9 0,21,-1,1,-3 20,10C,1261 38,10D,55 47,104,16 30,111,11 29,10C,1277 39,20,72,-54,-8 0,21,-1,-3,1 20,10D,55 45,104,14 31,111,11 39,10C,1261 48,10D,53 36,20,109,-32,-43 0,21,-1,0,-1 20,104,13 27,111,11 31,10,7222360 0,D,54 0,A,-3379409 0,B,15125965 0,C,62 41,10C,1265 44,10D,53 37,20,58,-67,-10 0,21,-1,0,-1 24,104,12 28,111,11 22,10,7222380 0,D,54 0,A,-3379410 0,B,15125962 0,C,62 40,10C,1277 44,10D,53 42,20,84,-23,47 0,21,-1,2,5 18,104,12 31,111,11 21,10,7222400 0,D,54 0,A,-3379411 0,B,15125958 0,C,62 41,10C,1285 40,10D,53 46,104,12 21,20,72,-57,-17 0,21,0,0,-7 18,111,11 32,10C,1289 44,10D,52 49,104,12 30,111,11 29,20,87,-69,-11 0,21,-2,0,1 18,10C,1285 41,10D,52 58,104,12 34,111,11 29,10C,1292 34,20,93,-40,-18 0,21,0,-2,1 20,10D,52 45,10,7222460 0,D,52 0,A,-3379414 0,B,15125949 0,C,62 40,104,12 32,111,11 30,10C,1304 33,20,132,-13,-10 0,21,-1,-1,-2 21,10D,52 36,10,7222480 0,D,51 0,A,-3379415 0,B,15125946 0,C,62 41,104,12 30,111,11 34,10C,1300 40,20,93,-19,7 0,21,0,2,0 21,10D,51 35,10,7222500 0,D,51 0,A,-3379416 0,B,15125943 0,C,62 41,104,12 28,111,11 30,10C,1296 44,10D,51 38,20,109,-44,-29 0,21,-1,1,5 20,104,12 28,111,11 29,10C,1292 43,10D,51 48,104,11 30,111,11 42,20,72,-39,1 0,21,-1,0,-7 21,10C,1289 41,10D,51 45,104,12 32,111,11 22,10,7222560 0,D,50 0,A,-3379418 0,B,15125935 0,C,62 41,10C,1281 41,20,131,-20,-8 0,21,0,-2,0 17,10D,49 47,104,12 33,111,11 23,10,7222580 0,D,49 0,A,-3379419 0,B,15125932 0,C,62 40,10C,1285 41,20,101,-56,-7 0,21,0,0,-2 19,10D,49 43,104,12 32,111,11 23,10,7222600 0,D,49 0,A,-3379420 0,B,15125929 0,C,62 41,10C,1281 45,10D,49 37,20,108,-9,-29 0,21,-1,0,-2 20,104,12 25,111,11 35,10C,1281 43,10D,49 50,104,12 29,111,11 22,20,90,-22,-7 0,21,0,0,0 18,10C,1277 41,10D,47 49,104,12 30,111,11 29,10C,1281 34,20,112,-16,-4 0,21,0,1,-2 20,10D,47 48,104,12 30,111,11 38,10C,1277 46,10D,47 41,20,77,-50,-5 0,21,-1,1,0 21,104,12 28,111,11 29,10C,1269 43,10D,47 49,104,12 30,20,115,-23,-6 0,21,-1,1,2 22,111,11 31,10C,1269 43,10D,45 45,104,12 33,111,11 29,10C,1273 34,20,184,55,13 0,21,-1,3,0 16,10,7222720 0,D,45 0,A,-3379425 0,B,15125913 0,C,62 67,10D,45 47,104,12 32,111,11 22,10,7222740 0,D,44 0,A,-3379426 0,B,15125910 0,C,62 42,10C,1269 32,20,38,-88,-20 0,21,-2,-2,3 19,10D,45 47,104,12 32,111,11 30,10C,1261 44,10D,45 37,20,76,-40,-4 0,21,-2,-2,-2 20,104,12 39,111,11 36,10C,1257 43,10D,43 38,10,7222780 0,D,42 0,A,-3379427 0,B,15125905 0,C,62 52,104,12 19,20,90,-41,-27 0,21,0,-3,3 20,111,11 33,10C,1253 37,10,7222800 0,D,42 0,A,-3379428 0,B,15125903 0,C,62 39,10D,43 48,104,12 25,20,100,-17,-4 0,21,-1,1,-4 19,111,11 29,10C,1265 37,10,7222820 0,D,42 0,A,-3379428 0,B,15125901 0,C,62 40,10D,43 43,104,12 30,111,11 21,20,96,-37,4 0,21,0,0,0 19,10C,1265 41,10D,43 50,104,12 30,111,11 29,10C,1265 34,20,105,-8,-6 0,21,-1,1,0 20,10D,41 48,104,12 33,111,11 30,10C,1261 46,10D,41 45,20,98,-36,-26 0,21,0,-1,0 22,104,12 32,111,11 29,10C,1246 47,10D,41 48,104,12 34,20,112,-2,-17 0,21,0,-1,3 21,111,11 31,10C,1242 43,10D,41 47,104,14 30,111,12 30,20,111,-17,-21 0,21,0,0,-4 20,10C,1246 46,10D,40 49,104,18 29,111,14 32,10C,1246 34,20,92,-24,16 0,21,0,0,3 20,10D,40 44,104,26 30,111,16 30,10C,1257 44,10D,40 37,20,120,-39,-35 0,21,-1,-2,4 21,104,33 28,111,15 30,10C,1250 46,10D,40 47,104,34 30,20,85,-24,-31 0,21,-2,0,1 21,111,15 32,10C,1246 42,10D,39 45,104,33 31,111,13 31,10C,1242 34,20,86,-30,-4 0,21,-2,1,-3 21,10D,39 43,104,27 34,111,12 32,10C,1250 47,10D,39 37,20,71,-55,-10 0,21,-1,1,0 16,10,7223020 0,D,42 0,A,-3379435 0,B,15125878 0,C,67 68,104,24 27,111,12 26,10,7223040 0,D,40 0,A,-3379436 0,B,15125875 0,C,67 41,10C,1250 32,20,106,-14,-10 0,21,0,-2,0 20,10D,39 57,104,18 27,111,11 31,10C,1238 47,10D,39 37,20,154,16,-22 0,21,-2,1,-1 21,104,15 29,111,11 32,10C,1265 44,10D,39 48,10,7223080 0,D,40 0,A,-3379437 0,B,15125871 0,C,67 40,104,14 20,20,114,-30,-12 0,21,-1,1,-1 19,111,11 30,10C,1261 43,10D,39 39,10,7223100 0,D,40 0,A,-3379438 0,B,15125868 0,C,67 45,104,12 27,20,96,-17,1 0,21,0,-1,1 19,111,11 29,10C,1253 43,10D,39 48,10,7223120 0,D,40 0,A,-3379439 0,B,15125866 0,C,67 39,104,13 25,20,81,-27,22 0,21,-1,0,3 18,111,11 30,10C,1238 43,10D,39 49,104,12 30,111,11 30,10C,1238 34,20,44,-66,11 0,21,-1,-2,-2 19,10D,39 37,10,7223160 0,D,40 0,A,-3379440 0,B,15125861 0,C,67 41,104,12 31,111,11 33,10C,1230 41,20,71,-62,16 0,21,-1,0,-8 19,10D,39 45,104,12 39,111,11 32,10C,1234 42,10D,39 37,20,98,-27,-28 0,21,-1,0,7 21,104,12 19,10,7223200 0,D,40 0,A,-3379441 0,B,15125857 0,C,67 57,111,11 27,10C,1218 46,10D,38 37,20,90,-32,-7 0,21,-1,0,1 21,104,12 28,111,11 33,10C,1230 46,10D,38 49,104,12 26,20,91,-28,-8 0,21,-1,0,0 16,10,7223240 0,D,39 0,A,-3379443 0,B,15125852 0,C,67 67,111,11 32,10C,1246 46,10D,38 49,20,108,-31,-5 0,21,-1,1,0 20,104,12 28,111,11 33,10C,1246 43,10D,38 44,104,12 30,111,11 21,20,118,-11,4 0,21,0,0,0 15,10,7223280 0,D,39 0,A,-3379444 0,B,15125848 0,C,67 69,10C,1250 50,10D,38 46,104,12 29,20,95,-28,-9 0,21,-1,0,0 15,10,7223300 0,D,39 0,A,-3379445 0,B,15125846 0,C,67 68,111,11 27,10C,1265 44,10D,38 47,104,12 21,20,111,-18,-3 0,21,0,0,0 21,111,11 27,10C,1261 46,10D,38 48,104,12 23,10,7223340 0,D,39 0,A,-3379446 0,B,15125841 0,C,67 40,111,11 19,20,100,-30,0 0,21,-1,0,0 20,10C,1265 44,10D,38 44,104,12 31,111,11 30,10C,1257 35,20,84,-39,-10 0,21,-1,0,0 20,10D,38 43,104,12 31,111,11 31,10C,1250 43,10D,38 38,20,96,-28,-5 0,21,-1,0,-1 20,104,12 39,111,11 36,10C,1246 43,10D,38 50,104,12 21,20,101,-19,-9 0,21,-1,0,0 20,111,11 31,10C,1238 53,10,7223420 0,D,38 0,A,-3379449 0,B,15125832 0,C,67 41,10D,38 44,104,21 21,20,98,-31,-12 0,21,-1,0,0 20,111,14 30,10C,1238 40,10,7223440 0,D,38 0,A,-3379449 0,B,15125830 0,C,67 41,10D,38 43,104,28 26,20,106,-21,-10 0,21,-1,0,0 21,111,15 30,10C,1214 43,10D,38 36,10,7223460 0,D,38 0,A,-3379450 0,B,15125828 0,C,67 41,104,31 28,111,15 22,20,102,-21,-8 0,21,-1,0,0 19,10C,1226 43,10D,38 39,10,7223480 0,D,38 0,A,-3379451 0,B,15125826 0,C,67 40,104,33 37,111,15 25,20,100,-18,-3 0,21,-1,0,0 19,10C,1234 50,10D,38 42,10,7223500 0,D,38 0,A,-3379451 0,B,15125824 0,C,67 40,104,33 28,111,15 21,20,101,-23,-7 0,21,-1,0,0 20,10C,1246 43,10D,38 38,10,7223520 0,D,39 0,A,-3379452 0,B,15125821 0,C,67 41,104,33 31,111,14 27,20,104,-27,-8 0,21,-1,0,1 18,10C,1246 40,10D,38 38,10,7223540 0,D,39 0,A,-3379453 0,B,15125819 0,C,67 41,104,31 31,111,14 29,10C,1250 35,20,103,-27,-5 0,21,-1,-1,-2 19,10D,38 48,104,30 29,111,14 30,10C,1253 46,10D,38 37,20,88,-25,0 0,21,0,0,4 21,104,30 19,10,7223580 0,D,39 0,A,-3379454 0,B,15125815 0,C,67 56,111,14 35,10C,1265 46,10D,38 37,20,93,-26,13 0,21,0,2,3 21,104,30 37,111,14 30,10C,1261 43,10D,38 45,104,29 25,20,62,-54,-1 0,21,0,0,0 17,10,7223620 0,D,40 0,A,-3379455 0,B,15125810 0,C,67 67,111,13 27,10C,1257 55,10D,39 37,20,92,-18,-6 0,21,-1,0,0 21,104,22 29,111,12 32,10C,1238 48,10D,39 48,104,20 25,20,79,-42,-3 0,21,-1,0,1 17,10,7223660 0,D,40 0,A,-3379457 0,B,15125805 0,C,67 66,111,11 33,10C,1257 42,10D,39 45,104,15 22,20,117,-13,-14 0,21,-1,0,-1 16,10,7223680 0,D,41 0,A,-3379457 0,B,15125803 0,C,67 67,111,11 31,10C,1222 45,10D,40 45,20,88,-29,-10 0,21,-1,0,0 22,104,13 40,111,11 34,10C,1230 46,10D,40 49,104,13 21,20,91,-31,-2 0,21,0,0,3 22,111,11 26,10C,1226 43,10D,40 46,104,13 29,111,11 23,10,7223740 0,D,40 0,A,-3379459 0,B,15125796 0,C,67 40,10C,1230 31,20,96,-30,-12 0,21,-1,0,-2 21,10D,40 46,104,13 29,111,11 23,10,7223760 0,D,40 0,A,-3379460 0,B,15125794 0,C,67 40,10C,1250 41,20,85,-35,-6 0,21,-1,0,0 20,10D,40 47,104,13 32,111,11 23,10,7223780 0,D,40 0,A,-3379461 0,B,15125792 0,C,67 40,10C,1250 41,10D,40 42,20,90,-36,-11 0,21,0,0,0 18,104,13 30,111,11 41,10C,1253 42,10D,40 55,104,12 22,20,114,-24,-8 0,21,0,0,-1 19,111,11 31,10C,1257 35,10,7223820 0,D,40 0,A,-3379462 0,B,15125787 0,C,67 41,10D,40 43,104,12 32,111,11 22,20,97,-30,-6 0,21,0,0,0 18,10C,1257 35,10,7223840 0,D,40 0,A,-3379463 0,B,15125785 0,C,67 43,10D,40 52,104,13 33,111,11 22,20,90,-28,-1 0,21,0,0,-2 18,10C,1257 35,10,7223860 0,D,40 0,A,-3379463 0,B,15125782 0,C,67 43,10D,40 48,104,13 33,111,11 24,20,97,-37,-8 0,21,0,0,0 20,10C,1261 33,10,7223880 0,D,40 0,A,-3379464 0,B,15125780 0,C,67 45,10D,40 44,104,13 28,111,11 32,10C,1253 34,20,66,-64,-22 0,21,0,2,-2 21,10D,40 43,104,13 39,111,11 33,10C,1257 45,10D,39 37,20,67,-60,-33 0,21,0,4,0 17,10,7223920 0,D,40 0,A,-3379466 0,B,15125776 0,C,67 67,104,13 28,111,11 31,10C,1250 43,10D,39 38,20,93,-14,-5 0,21,0,-3,2 21,104,13 31,111,11 30,10C,1238 44,10D,39 47,104,13 30,111,11 22,20,87,-43,-4 0,21,-1,1,0 19,10C,1238 44,10D,38 47,104,13 31,111,11 31,10C,1238 34,20,73,-47,37 0,21,0,0,5 20,10D,38 47,104,13 32,111,11 43,10C,1238 43,10D,38 37,20,107,-24,10 0,21,-1,0,4 20,104,13 39,111,11 29,10C,1238 36,10,7224020 0,D,39 0,A,-3379469 0,B,15125765 0,C,67 40,10D,38 40,20,46,-48,6 0,21,-3,2,0 20,104,13 31,111,11 27,10C,1234 47,10D,38 51,104,13 25,20,94,-32,3 0,21,-1,-2,0 21,111,11 26,10C,1230 46,10D,38 38,10,7224060 0,D,39 0,A,-3379471 0,B,15125760 0,C,67 40,104,13 32,111,14 21,20,104,-15,-10 0,21,-1,-1,1 20,10C,1250 48,10D,38 38,10,7224080 0,D,39 0,A,-3379472 0,B,15125758 0,C,67 41,104,22 27,111,14 26,20,101,-9,-21 0,21,-2,-2,-2 24,10C,1250 40,10D,38 37,10,7224100 0,D,39 0,A,-3379472 0,B,15125756 0,C,67 41,104,24 31,111,12 27,20,121,-5,-16 0,21,0,-3,0 19,10C,1230 49,10D,38 38,10,7224120 0,D,39 0,A,-3379473 0,B,15125754 0,C,67 41,104,21 31,111,12 27,20,88,-55,-15 0,21,0,0,0 18,10C,1234 40,10D,38 38,10,7224140 0,D,38 0,A,-3379474 0,B,15125752 0,C,67 41,104,18 30,111,11 31,10C,1234 34,20,156,15,7 0,21,-1,3,4 18,10D,38 49,104,14 38,111,11 30,10C,1242 46,10D,38 37,20,115,-24,-8 0,21,0,-3,3 21,104,14 32,111,11 30,10C,1242 59,10D,38 44,104,14 22,20,146,-7,19 0,21,-2,0,6 20,111,13 29,10C,1246 46,10D,38 50,104,18 28,111,13 31,20,110,-27,-1 0,21,-1,1,1 20,10C,1257 44,10D,38 46,104,22 34,111,14 32,10C,1257 34,20,108,-22,1 0,21,0,2,0 20,10D,38 44,104,28 30,111,16 30,10C,1265 45,10D,39 36,20,71,-44,19 0,21,-1,0,2 21,104,33 28,111,16 29,10C,1277 46,10D,39 49,104,37 30,111,16 21,20,101,-51,-33 0,21,-2,1,4 21,10C,1277 44,10D,39 49,104,37 32,111,16 30,10C,1269 35,20,119,-10,-31 0,21,-2,1,-1 20,10D,39 44,104,36 30,111,14 32,10C,1265 52,10D,39 36,20,97,-18,3 0,21,-2,-1,2 19,104,30 32,111,13 33,10C,1257 45,10D,40 39,10,7224340 0,D,41 0,A,-3379481 0,B,15125730 0,C,67 40,104,25 31,20,90,-32,-31 0,21,-2,0,-2 20,111,12 30,10C,1242 47,10D,40 37,10,7224360 0,D,41 0,A,-3379482 0,B,15125727 0,C,67 40,104,22 28,20,130,4,-7 0,21,-1,2,-3 21,111,12 26,10C,1257 46,10D,40 38,10,7224380 0,D,41 0,A,-3379483 0,B,15125725 0,C,67 41,104,18 28,20,100,-24,-10 0,21,-2,0,-4 19,111,12 31,10C,1238 42,10D,40 38,10,7224400 0,D,41 0,A,-3379483 0,B,15125722 0,C,67 41,104,18 31,111,13 22,20,94,-50,-7 0,21,-2,-1,5 19,10C,1269 42,10D,40 50,10,7224420 0,D,41 0,A,-3379484 0,B,15125720 0,C,67 39,104,22 28,111,13 22,20,113,-13,6 0,21,0,2,0 19,10C,1242 38,10D,40 47,104,22 34,111,12 30,10C,1250 42,20,180,-39,0 0,21,1,-1,4 19,10D,40 44,104,18 22,10,7224460 0,D,41 0,A,-3379486 0,B,15125715 0,C,67 41,111,11 27,10C,1242 46,10D,40 37,20,141,-18,-4 0,21,-1,1,-1 20,104,15 20,10,7224480 0,D,42 0,A,-3379486 0,B,15125713 0,C,67 55,111,11 32,10C,1253 46,10D,40 37,20,94,-48,-2 0,21,0,0,1 21,104,14 35,111,11 30,10C,1250 46,10D,40 58,104,13 22,20,92,-36,-15 0,21,-2,-3,0 20,111,11 42,10C,1230 47,10D,40 54,104,13 32,111,11 20,20,89,-29,-5 0,21,-1,1,0 17,10,7224540 0,D,41 0,A,-3379488 0,B,15125706 0,C,67 67,10C,1234 40,10D,40 44,104,13 31,111,11 21,20,137,14,20 0,21,-1,0,-1 21,10C,1238 44,10D,40 49,104,13 28,111,11 27,10,7224580 0,D,41 0,A,-3379490 0,B,15125701 0,C,67 40,10C,1246 33,20,94,-41,-6 0,21,0,0,-3 19,10D,40 47,104,13 29,111,11 33,10C,1250 35,10,7224600 0,D,41 0,A,-3379490 0,B,15125699 0,C,67 45,10D,40 36,20,110,-16,-4 0,21,0,-2,4 19,104,15 26,111,13 32,10C,1277 36,10,7224620 0,D,41 0,A,-3379491 0,B,15125696 0,C,67 40,10D,40 49,20,160,-12,-5 0,21,0,0,3 20,104,24 29,111,15 30,10C,1277 35,10,7224640 0,D,41 0,A,-3379492 0,B,15125694 0,C,67 41,10D,40 43,104,29 21,20,80,-26,3 0,21,-1,1,-5 20,111,16 30,10C,1269 35,10,7224660 0,D,41 0,A,-3379492 0,B,15125692 0,C,67 41,10D,40 43,104,33 30,111,15 22,20,124,4,-31 0,21,0,0,0 18,10C,1273 41,10D,40 50,104,34 30,111,15 30,10C,1269 34,20,122,-4,1 0,21,-1,2,-1 23,10D,40 49,104,34 29,111,14 30,10C,1277 42,10D,40 50,20,125,-19,3 0,21,-1,3,0 20,104,29 29,111,13 29,10C,1265 42,10D,40 59,104,26 24,20,94,-18,-5 0,21,-1,0,2 18,10,7224740 0,D,41 0,A,-3379495 0,B,15125682 0,C,67 65,111,13 32,10C,1253 43,10D,40 44,20,98,-36,-14 0,21,0,0,3 21,104,25 31,111,14 30,10C,1257 43,10D,40 45,104,27 33,111,14 20,20,100,-30,-3 0,21,0,1,-1 18,10,7224780 0,D,42 0,A,-3379497 0,B,15125677 0,C,67 66,10C,1261 44,10D,40 43,104,28 31,111,15 22,20,83,-46,-17 0,21,0,0,1 20,10C,1253 45,10D,40 53,104,30 32,111,15 30,10C,1253 35,20,133,21,-7 0,21,-1,2,-6 20,10D,41 44,104,33 42,111,16 41,10C,1265 35,10,7224840 0,D,42 0,A,-3379499 0,B,15125670 0,C,67 41,10D,41 35,20,124,-18,29 0,21,0,0,0 19,104,37 31,111,16 32,10C,1253 35,10,7224860 0,D,42 0,A,-3379500 0,B,15125668 0,C,67 41,10D,41 44,20,83,-32,-18 0,21,-1,0,1 20,104,42 30,111,18 35,10C,1265 45,10,7224880 0,D,42 0,A,-3379500 0,B,15125665 0,C,67 40,10D,41 73,20,65,-22,-30 0,21,-2,0,-7 20,104,51 30,111,18 23,10,7224900 0,D,42 0,A,-3379501 0,B,15125663 0,C,67 44,10C,1281 45,10D,42 42,20,98,-13,-26 0,21,-1,0,-2 18,104,53 28,111,18 21,10,7224920 0,D,43 0,A,-3379502 0,B,15125661 0,C,67 41,10C,1285 41,10D,42 45,104,53 31,20,116,-2,-1 0,21,-2,0,-2 20,111,18 20,10,7224940 0,D,43 0,A,-3379502 0,B,15125658 0,C,67 55,10C,1292 41,10D,42 48,104,52 22,20,77,-50,9 0,21,-1,0,0 20,111,18 29,10C,1289 46,10D,42 49,104,53 30,111,18 28,20,116,-13,-24 0,21,0,-1,-3 21,10C,1292 41,10D,42 46,104,52 30,111,18 29,10C,1281 33,20,68,-40,-16 0,21,0,0,-3 21,10D,42 36,10,7225000 0,D,44 0,A,-3379505 0,B,15125651 0,C,67 45,104,52 32,111,18 32,10C,1281 34,20,102,-21,-4 0,21,-1,1,1 21,10D,42 44,104,48 33,111,14 34,10C,1273 45,10D,43 46,20,124,14,20 0,21,0,1,-1 22,104,37 27,111,14 30,10C,1261 42,10D,43 48,104,31 31,111,13 22,20,84,-34,-6 0,21,-2,2,-3 20,10C,1250 40,10D,43 46,104,28 28,111,13 33,10C,1242 47,20,126,-12,6 0,21,0,-2,2 16,10,7225080 0,D,44 0,A,-3379507 0,B,15125640 0,C,67 67,10D,43 42,104,22 30,111,12 23,10,7225100 0,D,44 0,A,-3379508 0,B,15125638 0,C,67 40,10C,1226 32,20,112,-24,-37 0,21,-1,-3,0 24,10D,44 47,104,18 30,111,11 21,10,7225120 0,D,44 0,A,-3379509 0,B,15125635 0,C,67 41,10C,1238 37,20,115,17,-34 0,21,-2,-1,-6 20,10D,44 47,104,15 28,111,14 32,10,7225140 0,D,44 0,A,-3379510 0,B,15125633 0,C,67 41,10C,1226 32,20,144,-17,-18 0,21,0,0,1 20,10D,44 46,104,25 29,111,16 23,10,7225160 0,D,44 0,A,-3379510 0,B,15125630 0,C,67 42,10C,1277 39,10D,44 38,20,111,-23,-33 0,21,-1,-1,-3 20,104,32 29,111,16 30,10C,1277 44,10D,43 46,104,37 30,111,16 20,20,105,-20,8 0,21,-1,0,-1 20,10C,1277 45,10D,43 51,104,41 33,111,16 30,10C,1281 33,20,133,3,0 0,21,-1,0,1 20,10D,43 48,104,42 38,111,16 34,10C,1289 50,10D,43 37,20,124,-17,-2 0,21,-1,1,-4 21,104,43 37,111,16 43,10C,1289 43,10D,43 47,104,43 22,20,115,4,18 0,21,0,0,-1 20,111,17 31,10C,1296 47,10D,43 48,104,45 29,111,17 26,20,128,7,-11 0,21,0,1,0 16,10,7225280 0,D,44 0,A,-3379515 0,B,15125615 0,C,67 67,10C,1296 41,10D,43 44,104,47 31,111,16 21,20,109,-20,-22 0,21,-1,0,4 16,10,7225300 0,D,45 0,A,-3379516 0,B,15125613 0,C,67 68,10C,1285 39,10D,44 54,104,40 21,10,7225320 0,D,44 0,A,-3379517 0,B,15125610 0,C,67 41,111,14 19,20,77,-41,1 0,21,-1,1,1 20,10C,1269 40,10D,44 48,104,33 23,10,7225340 0,D,45 0,A,-3379517 0,B,15125607 0,C,67 41,111,14 28,20,127,-10,9 0,21,0,0,1 20,10C,1253 41,10D,44 47,104,28 23,10,7225360 0,D,44 0,A,-3379518 0,B,15125605 0,C,67 41,111,13 28,20,85,-26,-20 0,21,0,0,-5 19,10C,1242 41,10D,44 49,104,24 22,10,7225380 0,D,45 0,A,-3379519 0,B,15125602 0,C,67 40,111,12 32,10C,1238 34,20,84,-29,6 0,21,0,1,0 19,10D,44 45,104,20 31,111,12 35,10C,1230 43,10D,44 36,20,124,-7,-34 0,21,-1,-2,4 20,104,18 30,111,12 26,10,7225420 0,D,44 0,A,-3379520 0,B,15125597 0,C,67 41,10C,1246 41,10D,44 42,20,106,-17,-15 0,21,-1,0,1 20,104,16 28,111,14 31,10C,1246 34,10,7225440 0,D,44 0,A,-3379521 0,B,15125595 0,C,67 41,10D,44 45,10,7225440 0,D,44 0,A,50000 0,B,68333 0,C,13 35,104,23 19,20,107,-17,0 0,21,-2,0,0 20,111,16 32,10,7225460 0,D,44 0,A,-3379522 0,B,15125592 0,C,13 53,10C,1257 41,10D,44 45,104,38 20,20,139,0,2 0,21,-1,0,-2 22,111,18 27,10C,1257 47,10D,44 54,104,47 31,111,18 21,20,91,5,-54 0,21,0,0,2 21,10C,1269 41,10D,44 46,104,50 30,111,18 29,10C,1273 33,20,141,6,-49 0,21,-1,-1,-2 21,10D,44 48,104,51 34,111,18 30,10C,1281 45,10D,44 36,20,74,-52,-22 0,21,-1,-2,-2 22,104,51 31,111,18 29,10C,1292 56,10D,44 44,104,52 21,20,95,-9,-29 0,21,-1,-2,1 21,111,18 31,10C,1289 42,10D,44 50,104,52 31,111,18 27,20,90,-3,13 0,21,-1,1,-3 15,10,7225580 0,D,43 0,A,-3379526 0,B,15125577 0,C,13 68,10C,1292 45,10D,44 53,104,52 21,20,88,-36,52 0,21,1,0,0 17,10,7225600 0,D,43 0,A,-3379527 0,B,15125575 0,C,13 67,111,18 31,10C,1281 45,10D,44 46,20,103,-35,11 0,21,-1,2,-1 20,104,53 38,111,18 33,10C,1277 42,10D,44 45,104,53 22,10,7225640 0,D,44 0,A,-3379528 0,B,15125570 0,C,13 40,111,18 20,20,112,-13,-38 0,21,-2,0,1 20,10C,1273 49,10D,44 44,104,53 23,10,7225660 0,D,44 0,A,-3379529 0,B,15125567 0,C,13 42,111,18 23,20,101,-22,-26 0,21,-2,1,-7 20,10C,1265 41,10D,44 47,104,52 31,111,14 30,10C,1265 34,20,126,-12,-13 0,21,-1,3,-8 21,10D,44 43,104,41 30,111,14 28,10,7225700 0,D,44 0,A,-3379530 0,B,15125562 0,C,13 44,10C,1253 38,20,88,-41,-17 0,21,0,1,0 19,10D,44 46,104,33 29,111,13 30,10C,1242 47,10D,44 38,20,150,8,-16 0,21,-1,4,0 19,104,28 31,111,13 32,10C,1230 43,10D,44 47,104,25 29,111,12 21,20,92,-34,11 0,21,-1,0,1 20,10C,1230 52,10D,44 47,104,21 29,111,12 29,10C,1218 35,20,99,-21,-13 0,21,-1,-2,0 19,10D,44 46,104,18 23,10,7225780 0,D,44 0,A,-3379533 0,B,15125552 0,C,13 40,111,11 28,10C,1226 47,10D,44 37,20,156,-20,-47 0,21,-1,0,2 18,104,14 29,111,11 21,10,7225800 0,D,43 0,A,-3379534 0,B,15125550 0,C,13 45,10C,1226 41,10D,43 45,104,14 34,20,148,-11,-15 0,21,0,0,0 21,111,11 27,10C,1234 43,10D,43 45,104,13 32,111,11 30,10C,1238 34,20,134,18,-8 0,21,-2,0,-3 16,10,7225840 0,D,43 0,A,-3379535 0,B,15125545 0,C,13 67,10D,43 47,104,13 38,111,11 22,10,7225860 0,D,42 0,A,-3379536 0,B,15125542 0,C,13 41,10C,1230 32,20,57,-25,19 0,21,0,-1,-8 19,10D,43 47,104,18 32,111,14 22,10,7225880 0,D,41 0,A,-3379537 0,B,15125540 0,C,13 41,10C,1277 40,10D,41 38,20,97,-30,0 0,21,-1,1,-7 20,104,25 28,111,15 31,10C,1250 48,10D,41 46,104,30 29,111,15 21,20,104,-17,5 0,21,-1,1,0 19,10C,1246 41,10D,41 50,104,33 29,111,16 29,10C,1253 43,20,115,-8,-24 0,21,-1,0,-3 20,10D,41 37,10,7225940 0,D,41 0,A,-3379539 0,B,15125533 0,C,13 40,104,36 31,111,16 30,10C,1261 44,10D,40 47,20,78,-36,-13 0,21,-1,0,-1 21,104,37 27,111,16 30,10C,1261 46,10D,40 54,104,37 22,20,120,-25,22 0,21,-1,0,4 16,10,7225980 0,D,40 0,A,-3379540 0,B,15125528 0,C,13 67,111,16 32,10C,1257 53,10D,40 37,20,107,-1,-13 0,21,0,-1,0 17,10,7230000 0,D,40 0,A,-3379541 0,B,15125526 0,C,13 66,104,37 28,111,16 32,10C,1257 39,10,7230020 0,D,40 0,A,-3379542 0,B,15125524 0,C,13 41,10D,40 35,20,94,-24,-21 0,21,-1,0,-5 20,104,38 31,111,16 36,10C,1257 43,10D,40 51,104,38 21,20,98,-20,-10 0,21,-1,0,3 20,111,16 27,10C,1253 45,10D,40 55,104,38 30,111,16 26,20,120,-17,-31 0,21,-1,1,-3 20,10C,1250 44,10D,40 45,104,38 21,10,7230080 0,D,40 0,A,-3379544 0,B,15125517 0,C,13 41,111,16 27,10C,1250 35,20,120,-8,-25 0,21,-1,0,-1 19,10D,40 45,104,40 31,111,16 34,10C,1246 43,10D,40 37,20,90,-17,3 0,21,-1,0,0 23,104,40 30,111,16 26,10,7230120 0,D,40 0,A,-3379545 0,B,15125512 0,C,13 41,10C,1246 40,10D,40 42,20,94,-25,0 0,21,-1,0,-3 21,104,40 29,111,16 30,10C,1250 43,10D,40 46,104,40 30,111,16 22,20,66,-56,-33 0,21,-1,-1,0 18,10C,1242 41,10D,40 60,104,41 30,111,16 29,10C,1238 35,20,120,0,-5 0,21,-1,0,0 18,10D,39 56,104,41 30,111,16 30,10C,1242 46,10D,39 37,20,119,-3,-17 0,21,-1,0,0 20,104,41 20,10,7230200 0,D,39 0,A,-3379548 0,B,15125503 0,C,13 55,111,16 27,10C,1246 47,10D,39 36,20,102,-27,-5 0,21,-1,1,0 25,104,41 29,111,16 33,10C,1242 47,10D,39 48,104,41 21,20,117,-11,-15 0,21,-1,0,2 21,111,16 28,10C,1242 46,10D,38 50,104,41 28,111,16 28,20,77,-33,-23 0,21,-2,-3,0 21,10C,1238 42,10,7230260 0,D,39 0,A,-3379550 0,B,15125496 0,C,13 41,10D,38 43,104,41 29,111,16 25,20,120,2,-2 0,21,0,0,0 20,10C,1238 50,10D,38 45,104,41 30,111,16 32,10C,1238 34,20,97,-18,7 0,21,0,0,-3 20,10D,38 45,104,41 30,111,16 33,10C,1238 42,10D,38 36,20,125,-9,-25 0,21,-1,-1,-1 22,104,41 27,111,16 29,10C,1238 57,10D,38 43,104,40 27,20,97,-17,-12 0,21,0,0,-1 18,111,15 32,10C,1230 43,10D,38 45,104,38 31,111,15 31,10C,1230 52,20,69,-38,-37 0,21,-1,0,-1 21,10D,38 47,104,37 28,111,15 32,10C,1230 36,10,7230380 0,D,39 0,A,-3379554 0,B,15125483 0,C,13 41,10D,38 35,20,144,7,-17 0,21,-1,-2,2 19,104,37 31,111,15 32,10C,1230 43,10D,38 46,104,36 29,111,14 21,20,57,-92,-31 0,21,-1,0,7 19,10C,1222 39,10D,38 47,104,31 29,111,13 31,10C,1226 39,20,87,-6,9 0,21,-1,0,-2 19,10D,38 45,104,27 23,10,7230440 0,D,39 0,A,-3379556 0,B,15125476 0,C,13 42,111,12 31,10C,1218 42,20,98,-33,-11 0,21,-1,-1,2 20,10D,38 42,104,23 23,10,7230460 0,D,38 0,A,-3379556 0,B,15125474 0,C,13 41,111,12 37,10C,1218 39,20,89,-34,-23 0,21,-1,-2,-3 20,10D,38 46,104,20 21,10,7230480 0,D,38 0,A,-3379557 0,B,15125472 0,C,13 41,111,14 27,10C,1222 47,10D,38 37,20,91,-29,14 0,21,-1,0,3 18,104,24 22,10,7230500 0,D,38 0,A,-3379558 0,B,15125470 0,C,13 55,111,15 28,10C,1234 43,10D,38 36,20,112,-14,-23 0,21,-1,0,0 19,104,31 21,10,7230520 0,D,38 0,A,-3379558 0,B,15125467 0,C,13 56,111,16 28,10C,1226 74,10D,37 37,20,103,-17,1 0,21,-1,0,-3 21,104,40 27,111,16 30,10C,1234 47,10D,37 47,104,42 28,20,98,-24,-1 0,21,0,0,4 19,111,16 32,10C,1242 52,10D,37 45,104,38 32,111,14 21,20,106,0,-11 0,21,-1,2,0 21,10C,1242 41,10D,36 45,104,31 30,111,13 31,10C,1242 34,20,58,-53,-17 0,21,0,0,1 22,10D,36 43,104,25 29,111,12 30,10C,1238 45,10D,36 37,20,91,-34,-3 0,21,-1,-1,3 20,104,22 40,111,13 34,10C,1218 46,10D,36 50,104,23 22,20,99,-18,-29 0,21,-1,1,-2 20,111,13 28,10C,1242 43,10D,36 44,104,23 34,111,13 21,10,7230660 0,D,37 0,A,-3379563 0,B,15125452 0,C,13 45,10C,1222 42,20,124,3,-20 0,21,-1,0,0 20,10D,36 46,104,23 40,111,13 35,10C,1242 42,10D,36 38,20,116,-18,-5 0,21,0,1,-1 19,104,23 30,111,13 26,10,7230700 0,D,36 0,A,-3379564 0,B,15125448 0,C,13 41,10C,1214 41,10D,36 45,104,23 22,20,99,-28,-14 0,21,-1,0,-3 19,111,13 28,10,7230720 0,D,36 0,A,-3379564 0,B,15125446 0,C,13 50,10C,1210 40,10D,36 46,104,23 22,20,76,-31,-15 0,21,-1,0,0 18,111,13 36,10C,1207 44,10D,36 46,104,24 30,111,13 28,20,102,-26,-4 0,21,-1,-1,2 19,10C,1207 46,10D,36 46,104,24 39,111,12 33,10C,1210 33,20,119,-19,-7 0,21,-1,0,0 20,10D,36 37,10,7230780 0,D,35 0,A,-3379566 0,B,15125440 0,C,13 41,104,21 26,111,11 31,10C,1214 44,10D,36 38,20,100,-31,-18 0,21,0,0,2 20,104,17 28,111,11 30,10C,1187 46,10D,35 48,104,14 31,111,11 21,20,111,-11,-12 0,21,-1,0,0 21,10C,1218 44,10D,35 49,104,16 28,111,13 30,10C,1222 35,20,104,-19,-10 0,21,-1,0,2 21,10D,35 47,104,18 33,111,14 31,10C,1222 44,10D,35 37,20,96,-24,-14 0,21,-1,-3,1 21,104,25 36,111,17 45,10C,1250 39,10,7230880 0,D,33 0,A,-3379569 0,B,15125431 0,C,13 45,10D,34 46,20,102,-22,-5 0,21,0,0,2 20,104,43 31,111,18 30,10C,1328 44,10D,34 47,104,50 30,20,104,-11,-11 0,21,-1,0,3 20,111,18 30,10C,1281 46,10D,34 38,10,7230920 0,D,33 0,A,-3379571 0,B,15125427 0,C,13 41,104,55 28,111,18 22,20,93,-13,-10 0,21,-1,0,-4 19,10C,1289 39,10D,34 46,104,56 30,111,18 29,10C,1292 39,20,95,-22,-11 0,21,-1,0,2 21,10D,34 45,104,56 39,111,18 34,10C,1296 42,10D,34 47,20,60,-44,-28 0,21,-1,-1,0 19,104,56 31,111,18 22,10,7230980 0,D,33 0,A,-3379572 0,B,15125421 0,C,13 44,10C,1281 41,10D,34 45,104,53 22,20,101,-18,-25 0,21,-1,1,4 18,111,18 22,10,7231000 0,D,34 0,A,-3379573 0,B,15125419 0,C,13 55,10C,1273 45,10D,34 49,104,52 21,20,109,5,-23 0,21,-1,0,-5 21,111,18 20,10,7231020 0,D,34 0,A,-3379574 0,B,15125417 0,C,13 55,10C,1261 41,10D,34 54,104,52 22,20,97,-21,-12 0,21,0,2,-2 20,111,18 29,10C,1234 47,10D,34 49,104,52 28,111,17 30,20,109,-5,-3 0,21,-1,0,0 16,10,7231060 0,D,35 0,A,-3379575 0,B,15125413 0,C,13 66,10C,1226 46,10D,34 53,104,52 21,20,88,-19,12 0,21,0,2,-1 25,111,18 32,10C,1230 43,10D,34 45,104,52 27,111,18 31,20,75,-36,-5 0,21,0,-1,0 15,10,7231100 0,D,35 0,A,-3379576 0,B,15125409 0,C,13 68,10C,1234 45,10D,34 47,104,52 30,20,84,-23,6 0,21,-1,2,0 21,111,18 31,10C,1250 43,10D,34 45,104,53 32,111,19 31,10C,1277 33,20,136,-2,-7 0,21,0,1,5 21,10D,34 44,104,57 30,111,19 31,10C,1312 43,10D,35 38,20,71,-26,-26 0,21,-1,0,0 21,104,60 31,111,20 30,10C,1320 53,10D,35 47,104,64 22,20,109,-6,-4 0,21,-1,-1,0 19,111,20 28,10C,1363 46,10D,35 44,104,64 24,10,7231200 0,D,35 0,A,-3379580 0,B,15125399 0,C,13 45,111,20 19,20,88,-27,-9 0,21,0,0,3 21,10C,1339 44,10D,35 47,104,65 23,10,7231220 0,D,36 0,A,-3379580 0,B,15125397 0,C,13 40,111,20 28,10C,1320 35,20,115,-3,-22 0,21,-1,1,0 19,10D,36 45,104,63 47,111,19 33,10C,1304 47,10D,36 37,20,107,-6,-17 0,21,-1,0,0 20,104,60 30,111,18 23,10,7231260 0,D,36 0,A,-3379582 0,B,15125393 0,C,13 40,10C,1292 44,10D,36 46,20,96,-14,-12 0,21,-1,0,0 18,104,58 37,10,7231280 0,D,36 0,A,-3379582 0,B,15125391 0,C,13 41,111,18 32,10C,1300 51,10D,36 37,20,94,-23,-11 0,21,-2,0,-1 19,104,58 28,111,18 31,10C,1328 43,10D,36 54,104,57 25,20,90,-24,-21 0,21,-2,0,0 18,111,18 29,10C,1324 43,10D,36 46,104,57 30,111,18 31,10C,1304 35,20,93,-27,-11 0,21,-2,0,2 21,10D,36 43,104,58 30,111,18 30,10C,1261 46,10D,36 37,20,106,-8,-18 0,21,-1,0,-1 20,104,60 32,111,18 30,10C,1265 46,10D,37 47,104,60 31,20,92,-18,-4 0,21,-1,0,-1 21,111,18 31,10C,1257 52,10D,37 45,104,60 32,111,18 22,20,107,-20,-16 0,21,-1,0,0 20,10C,1250 45,10D,37 46,104,60 33,111,18 35,10C,1257 39,20,92,-28,-16 0,21,-1,0,-2 17,10,7231420 0,D,38 0,A,-3379587 0,B,15125376 0,C,13 66,10D,37 47,104,60 27,111,18 31,10C,1246 35,20,98,-17,-12 0,21,-1,0,0 20,10D,38 47,104,60 33,111,18 32,10C,1242 43,10D,38 38,20,106,-15,-12 0,21,-2,0,0 19,104,60 28,111,18 30,10C,1238 44,10D,38 67,104,60 22,20,73,-24,-13 0,21,-1,0,5 20,111,18 28,10C,1234 45,10D,38 50,104,58 35,111,18 22,20,99,-22,-18 0,21,-1,1,0 19,10C,1234 44,10D,38 48,104,56 31,111,18 31,10C,1242 33,20,84,-21,-16 0,21,-2,-1,-1 21,10D,38 46,104,55 35,111,18 36,10C,1234 43,10D,38 37,20,96,-18,-9 0,21,-1,0,0 20,104,55 27,111,17 31,10C,1238 44,10D,38 39,10,7231560 0,D,38 0,A,-3379592 0,B,15125361 0,C,66 40,104,48 20,20,80,-35,-18 0,21,-1,0,0 19,111,14 27,10C,1242 39,10,7231580 0,D,40 0,A,-3379592 0,B,15125358 0,C,66 41,10D,38 65,104,36 22,20,115,-9,-18 0,21,-1,0,1 19,111,14 29,10C,1230 44,10D,38 39,10,7231600 0,D,40 0,A,-3379593 0,B,15125356 0,C,66 41,104,30 30,111,13 22,20,101,-26,-18 0,21,-1,0,0 18,10C,1226 42,10D,38 50,104,25 34,111,12 30,10C,1214 34,20,117,-3,-16 0,21,-1,0,-1 22,10D,38 54,104,22 29,111,12 30,10C,1199 46,10D,39 37,20,98,-26,-12 0,21,-1,0,1 20,104,20 20,10,7231660 0,D,39 0,A,-3379595 0,B,15125349 0,C,66 56,111,11 31,10C,1191 46,10D,39 37,20,113,-11,-20 0,21,-1,0,-1 21,104,15 32,111,11 39,10C,1207 46,10D,39 48,104,14 22,20,92,-32,-8 0,21,-1,0,0 20,111,11 28,10C,1218 47,10D,39 49,104,13 32,111,11 26,20,103,-27,-11 0,21,-1,1,1 16,10,7231720 0,D,39 0,A,-3379597 0,B,15125342 0,C,66 67,10C,1210 45,10D,39 48,104,13 27,20,89,-33,-7 0,21,0,0,3 20,111,11 46,10C,1218 42,10D,39 46,104,13 27,111,11 22,20,146,1,-13 0,21,-1,0,-1 20,10C,1222 44,10D,39 46,104,17 30,111,14 31,10C,1234 35,20,114,-12,-4 0,21,0,0,1 20,10D,39 44,104,23 39,111,16 33,10C,1261 44,10D,38 38,20,83,-37,1 0,21,-1,0,2 16,10,7231800 0,D,38 0,A,-3379599 0,B,15125334 0,C,66 67,104,31 26,111,16 32,10C,1257 44,10D,38 37,20,108,-12,1 0,21,0,1,-3 21,104,37 27,111,15 31,10C,1261 44,10D,38 51,104,34 23,10,7231840 0,D,38 0,A,-3379601 0,B,15125329 0,C,66 40,111,14 19,20,119,3,-11 0,21,0,0,-5 20,10C,1269 56,10D,37 46,104,28 30,111,13 29,10C,1250 35,20,99,-26,-3 0,21,0,0,3 20,10D,37 45,104,25 23,10,7231880 0,D,37 0,A,-3379602 0,B,15125325 0,C,66 41,111,12 32,10C,1250 43,20,108,-16,-1 0,21,0,0,-4 19,10D,37 46,104,21 23,10,7231900 0,D,37 0,A,-3379603 0,B,15125323 0,C,66 41,111,12 27,10C,1242 47,10D,37 37,20,96,-35,5 0,21,1,0,3 18,104,17 29,111,11 30,10C,1226 43,10D,36 45,104,15 29,111,11 22,20,114,-13,7 0,21,1,-1,-2 20,10C,1238 45,10,7231940 0,D,37 0,A,-3379604 0,B,15125319 0,C,66 40,10D,36 44,104,14 29,111,11 43,20,134,-20,8 0,21,2,0,-1 20,10C,1238 44,10D,36 49,104,14 30,111,14 32,10C,1226 34,20,87,-45,10 0,21,3,0,-2 20,10D,36 85,104,22 38,111,14 32,10C,1242 34,20,106,8,8 0,21,3,-1,-1 20,10D,36 44,104,26 30,111,14 33,10C,1222 45,10D,36 37,20,108,-24,11 0,21,3,-2,-1 17,10,7232020 0,D,35 0,A,-3379607 0,B,15125311 0,C,66 66,104,27 27,111,14 32,10C,1234 44,10D,36 37,20,85,-29,22 0,21,4,-2,-2 17,10,7232040 0,D,35 0,A,-3379608 0,B,15125309 0,C,66 66,104,28 30,111,13 30,10C,1222 35,10,7232060 0,D,35 0,A,-3379609 0,B,15125307 0,C,66 44,10D,36 36,20,120,5,13 0,21,4,-1,-1 19,104,23 30,111,12 30,10C,1218 34,10,7232080 0,D,35 0,A,-3379610 0,B,15125306 0,C,66 41,10D,35 43,104,20 22,20,139,-14,30 0,21,6,-1,-4 19,111,12 43,10C,1203 36,10,7232100 0,D,34 0,A,-3379611 0,B,15125304 0,C,66 40,10D,35 47,104,15 31,20,93,-37,14 0,21,6,0,-2 19,111,12 32,10C,1222 35,10,7232120 0,D,34 0,A,-3379613 0,B,15125303 0,C,66 40,10D,35 48,104,23 26,20,105,-11,15 0,21,6,-1,0 18,111,16 31,10C,1250 35,10,7232140 0,D,33 0,A,-3379614 0,B,15125301 0,C,66 44,10D,34 44,104,41 29,111,18 21,20,108,-26,19 0,21,6,0,0 19,10C,1296 34,10,7232160 0,D,33 0,A,-3379615 0,B,15125300 0,C,66 44,10D,34 43,104,54 30,111,19 32,10C,1296 33,20,113,-22,5 0,21,6,-2,0 21,10D,34 44,104,60 30,111,19 32,10C,1273 45,10D,34 46,20,96,-24,15 0,21,6,-2,0 21,104,63 32,111,20 29,10C,1285 46,10D,34 50,104,66 21,10,7232220 0,D,33 0,A,-3379619 0,B,15125296 0,C,66 41,111,21 18,20,105,-18,24 0,21,6,-1,0 21,10C,1304 43,10D,34 44,104,73 24,10,7232240 0,D,33 0,A,-3379621 0,B,15125295 0,C,66 51,111,22 19,20,115,-8,23 0,21,6,0,0 22,10C,1332 40,10D,34 43,104,75 30,111,23 31,10C,1363 35,20,113,-4,20 0,21,6,-2,-1 19,10D,34 47,104,75 28,111,24 27,10,7232280 0,D,35 0,A,-3379624 0,B,15125294 0,C,66 41,10C,1390 41,20,98,-21,6 0,21,5,-1,-2 19,10D,35 43,104,82 29,111,27 43,10C,1421 37,10,7232300 0,D,35 0,A,-3379626 0,B,15125293 0,C,66 40,10D,35 35,20,116,-2,17 0,21,3,0,0 20,104,86 33,111,27 45,10C,1484 43,10D,35 50,104,87 21,20,98,-26,-12 0,21,1,-1,-3 20,111,28 30,10C,1523 35,10,7232340 0,D,37 0,A,-3379630 0,B,15125292 0,C,66 52,10D,35 48,104,88 21,20,120,5,-3 0,21,0,-2,0 19,111,28 31,10C,1574 35,10,7232360 0,D,37 0,A,-3379632 0,B,15125291 0,C,66 40,10D,37 47,104,86 30,111,26 21,20,104,2,-11 0,21,0,-2,0 19,10C,1601 34,10,7232380 0,D,37 0,A,-3379633 0,B,15125291 0,C,66 44,10D,37 47,104,86 30,111,27 28,20,112,-1,4 0,21,-1,0,0 19,10C,1597 43,10,7232400 0,D,38 0,A,-3379635 0,B,15125290 0,C,66 41,10D,37 43,104,88 29,111,29 25,20,91,-24,-16 0,21,-1,0,0 18,10C,1609 34,10,7232420 0,D,38 0,A,-3379637 0,B,15125290 0,C,66 45,10D,38 44,104,92 29,111,30 32,10C,1621 34,20,100,-9,-18 0,21,-2,0,-1 21,10D,38 43,104,92 31,111,30 32,10C,1640 41,10D,38 37,20,96,-29,-18 0,21,-1,0,-1 22,104,93 27,111,30 33,10C,1656 43,10D,38 54,104,93 22,20,99,-20,-22 0,21,-1,0,-4 16,10,7232480 0,D,40 0,A,-3379643 0,B,15125288 0,C,66 67,111,30 32,10C,1683 45,10D,39 42,20,99,-12,-15 0,21,-1,0,1 21,104,93 40,111,30 30,10C,1687 46,10D,39 45,104,93 21,20,124,7,-17 0,21,-1,0,-4 17,10,7232520 0,D,41 0,A,-3379647 0,B,15125286 0,C,66 66,111,30 32,10C,1675 49,10D,39 37,20,75,-40,-24 0,21,-2,0,0 21,104,93 31,111,30 30,10C,1671 46,10D,39 48,104,93 23,10,7232560 0,D,42 0,A,-3379651 0,B,15125285 0,C,66 40,111,30 19,20,98,-13,0 0,21,-1,-1,2 20,10C,1671 44,10D,41 44,104,93 30,111,30 31,10C,1687 34,20,125,18,1 0,21,-1,2,-6 20,10D,41 43,104,94 32,111,30 27,10,7232600 0,D,43 0,A,-3379655 0,B,15125284 0,C,66 41,10C,1691 41,20,97,-21,-15 0,21,-1,0,0 20,10D,41 46,104,95 29,111,31 31,10C,1675 47,10D,41 37,20,74,-39,-20 0,21,-1,0,0 20,104,96 35,111,32 32,10C,1691 44,10D,43 50,104,97 20,20,121,10,-8 0,21,0,-1,3 21,111,32 31,10C,1703 44,10D,43 39,10,7232660 0,D,45 0,A,-3379662 0,B,15125281 0,C,66 40,104,96 28,20,80,-38,-21 0,21,-1,0,-2 20,111,32 34,10C,1718 42,10D,43 38,10,7232680 0,D,45 0,A,-3379664 0,B,15125281 0,C,66 41,104,95 31,20,123,14,-9 0,21,-1,0,-4 20,111,32 30,10C,1734 52,10,7232700 0,D,46 0,A,-3379666 0,B,15125280 0,C,66 40,10D,43 54,104,95 21,20,101,-7,-20 0,21,-1,0,2 19,111,30 30,10C,1750 43,10D,45 47,104,89 33,111,24 30,10C,1703 35,20,85,-25,-22 0,21,-1,0,-1 22,10D,45 49,104,74 30,111,21 30,10C,1652 46,10D,45 37,20,84,-23,-11 0,21,-1,0,-3 19,104,68 21,10,7232760 0,D,47 0,A,-3379673 0,B,15125278 0,C,66 55,111,21 33,10C,1578 42,10D,45 36,20,104,-6,-9 0,21,-1,0,0 21,104,62 19,10,7232780 0,D,48 0,A,-3379676 0,B,15125277 0,C,66 56,111,20 31,10C,1503 42,10D,46 37,20,103,-11,-19 0,21,-1,0,0 21,104,60 19,10,7232800 0,D,47 0,A,-3379678 0,B,15125276 0,C,66 57,111,20 35,10C,1449 46,10D,46 37,20,131,-3,-7 0,21,-1,0,0 21,104,70 28,111,23 30,10C,1417 43,10D,46 45,104,80 33,111,25 26,20,87,-23,-13 0,21,-1,1,1 16,10,7232840 0,D,48 0,A,-3379683 0,B,15125275 0,C,66 67,10C,1433 49,10D,47 46,104,81 21,10,7232860 0,D,48 0,A,-3379685 0,B,15125274 0,C,66 41,111,24 19,20,111,-1,-7 0,21,-1,0,0 20,10C,1468 44,10D,47 47,104,80 24,10,7232880 0,D,48 0,A,-3379687 0,B,15125274 0,C,66 40,111,21 27,10C,1500 34,20,118,0,-11 0,21,-1,0,0 21,10D,47 45,104,66 30,111,20 30,10C,1488 47,10D,47 46,20,99,-10,-12 0,21,-1,-1,1 20,104,62 25,111,20 31,10C,1457 47,10D,48 50,104,66 30,111,21 21,20,118,-8,-7 0,21,-1,0,0 22,10C,1433 42,10D,48 49,104,70 30,111,21 30,10C,1417 33,20,83,-31,-10 0,21,-1,0,2 19,10D,48 48,104,70 30,111,20 29,10C,1410 46,10D,48 37,20,64,-30,-20 0,21,-1,0,2 20,104,66 20,10,7232980 0,D,48 0,A,-3379699 0,B,15125270 0,C,66 57,111,20 30,10C,1394 46,10D,48 37,20,114,2,-18 0,21,0,-2,0 21,104,61 27,111,19 34,10C,1375 46,10D,48 63,104,60 21,20,88,-23,-17 0,21,-1,0,0 21,111,19 28,10C,1355 46,10D,48 50,104,60 28,111,19 30,20,103,-16,-9 0,21,-2,2,0 15,10,7233040 0,D,49 0,A,-3379706 0,B,15125268 0,C,66 81,10C,1347 41,10D,48 61,104,60 21,20,78,-33,21 0,21,-1,-2,1 15,10,7233060 0,D,49 0,A,-3379709 0,B,15125267 0,C,66 68,111,18 32,10C,1324 41,10D,48 46,104,53 21,20,148,14,3 0,21,-1,0,2 18,10,7233080 0,D,49 0,A,-3379711 0,B,15125267 0,C,70 65,111,18 31,10C,1308 46,10D,48 38,10,7233100 0,D,49 0,A,-3379714 0,B,15125266 0,C,70 40,104,51 19,20,107,-13,16 0,21,0,1,1 20,111,18 37,10C,1289 46,10D,48 38,10,7233120 0,D,49 0,A,-3379716 0,B,15125265 0,C,70 40,104,52 19,20,63,-27,-7 0,21,-1,-3,-4 21,111,17 29,10C,1273 46,10D,48 37,10,7233140 0,D,49 0,A,-3379718 0,B,15125265 0,C,70 40,104,50 28,111,17 21,20,143,35,-22 0,21,-1,-1,-2 20,10C,1253 46,10D,48 50,104,56 33,111,21 34,10C,1273 33,20,137,-6,-1 0,21,-1,2,0 20,10D,48 44,104,66 21,10,7233180 0,D,49 0,A,-3379723 0,B,15125263 0,C,70 40,111,19 28,10C,1312 47,10D,48 36,20,78,-44,14 0,21,-1,1,-2 19,104,50 28,111,14 31,10C,1316 43,10D,48 45,104,40 35,20,75,-47,-15 0,21,-2,-1,2 18,111,14 31,10,7233220 0,D,49 0,A,-3379728 0,B,15125262 0,C,70 47,10C,1312 45,10D,48 48,104,29 21,20,104,-20,-41 0,21,-1,-3,1 25,111,13 33,10C,1308 42,10D,48 50,104,24 32,111,12 20,20,76,-49,-30 0,21,-1,-2,6 21,10C,1296 42,10D,48 46,104,22 28,111,12 30,10C,1285 34,20,121,-6,-25 0,21,0,-1,0 20,10D,48 49,104,20 32,111,12 30,10C,1257 46,10D,48 37,20,117,-4,-1 0,21,0,-1,0 20,104,18 28,111,12 30,10C,1265 46,10D,48 48,104,16 31,20,129,6,5 0,21,-2,-4,-1 20,111,12 31,10C,1257 43,10D,48 46,104,14 28,111,11 29,10,7233340 0,D,49 0,A,-3379742 0,B,15125258 0,C,70 41,10C,1265 33,20,99,-4,-8 0,21,-1,-3,0 19,10D,48 45,104,13 35,111,11 30,10C,1265 35,10,7233360 0,D,50 0,A,-3379745 0,B,15125257 0,C,70 40,10D,48 36,20,23,-83,-43 0,21,-1,-5,9 19,104,13 30,111,11 33,10C,1253 34,10,7233380 0,D,50 0,A,-3379747 0,B,15125256 0,C,70 41,10D,48 43,104,12 22,20,115,-31,-10 0,21,-1,1,6 19,111,11 33,10C,1250 37,10,7233400 0,D,49 0,A,-3379750 0,B,15125255 0,C,70 40,10D,48 60,104,12 22,20,109,-12,-14 0,21,0,-2,-4 19,111,11 31,10C,1253 56,10,7233420 0,D,48 0,A,-3379752 0,B,15125255 0,C,70 41,10D,47 46,104,12 22,20,127,-13,6 0,21,-1,2,1 18,111,11 36,10C,1261 37,10,7233440 0,D,48 0,A,-3379754 0,B,15125254 0,C,70 40,10D,47 47,104,12 25,20,81,-34,-36 0,21,-1,0,2 18,111,11 22,10,7233460 0,D,47 0,A,-3379757 0,B,15125253 0,C,70 55,10C,1261 42,10D,47 48,104,12 21,20,81,-42,-25 0,21,-1,1,2 20,111,11 20,10,7233480 0,D,47 0,A,-3379759 0,B,15125253 0,C,70 56,10C,1261 44,10D,46 49,104,12 20,20,87,-19,-22 0,21,-1,0,0 21,111,11 28,10C,1281 47,10D,46 50,104,12 27,111,11 29,20,99,-29,-11 0,21,0,0,3 17,10,7233520 0,D,47 0,A,-3379764 0,B,15125251 0,C,70 66,10C,1285 60,10D,46 44,104,12 21,20,99,-27,3 0,21,0,1,0 20,111,11 29,10C,1285 47,10D,46 49,104,12 28,111,11 30,20,84,-37,-5 0,21,0,1,0 15,10,7233560 0,D,47 0,A,-3379768 0,B,15125250 0,C,70 68,10C,1281 44,10D,46 48,104,12 26,20,93,-34,-4 0,21,-1,1,0 16,10,7233580 0,D,46 0,A,-3379770 0,B,15125249 0,C,70 67,111,14 32,10C,1292 45,10D,46 43,20,90,-16,-24 0,21,-1,0,1 16,10,7233600 0,D,46 0,A,-3379773 0,B,15125248 0,C,70 67,104,23 40,111,15 33,10C,1253 46,10D,46 37,20,82,-43,-9 0,21,-1,0,3 15,10,7233620 0,D,46 0,A,-3379775 0,B,15125248 0,C,70 68,104,32 39,111,17 31,10C,1261 36,10,7233640 0,D,46 0,A,-3379777 0,B,15125247 0,C,70 40,10D,45 36,20,105,3,-35 0,21,-1,1,-3 19,104,42 27,111,17 32,10C,1265 43,10D,45 46,104,40 30,111,14 21,20,92,-15,3 0,21,-2,0,-2 20,10C,1265 37,10D,45 48,104,32 29,111,13 30,10C,1269 39,20,100,-17,-51 0,21,-3,1,1 19,10D,45 45,104,26 24,10,7233700 0,D,46 0,A,-3379784 0,B,15125245 0,C,70 41,111,12 32,10C,1273 39,20,68,-41,-12 0,21,-2,1,0 19,10D,45 45,104,21 24,10,7233720 0,D,47 0,A,-3379786 0,B,15125244 0,C,70 45,111,12 31,10C,1273 39,20,90,-17,-3 0,21,-2,1,-3 20,10D,45 49,10,7233740 0,D,47 0,A,-3379789 0,B,15125243 0,C,70 41,104,17 28,111,11 29,10C,1285 35,20,54,-67,-27 0,21,-3,0,2 19,10D,45 48,104,14 21,10,7233760 0,D,48 0,A,-3379791 0,B,15125243 0,C,70 40,111,11 32,10C,1273 43,20,120,-25,-32 0,21,-4,-2,-2 18,10D,46 40,10,7233780 0,D,49 0,A,-3379793 0,B,15125242 0,C,70 41,104,13 28,111,11 29,10C,1304 48,20,116,-41,-46 0,21,-4,0,6 18,10D,46 44,104,12 31,111,11 29,10C,1304 47,10D,46 36,20,99,-24,-11 0,21,-4,0,2 24,104,17 28,111,14 33,10,7233820 0,D,46 0,A,-3379797 0,B,15125239 0,C,70 41,10C,1316 49,10D,46 37,20,87,-30,-15 0,21,-4,0,0 20,104,22 41,111,13 23,10,7233840 0,D,46 0,A,-3379799 0,B,15125238 0,C,68 40,10C,1281 41,10D,47 37,20,90,-37,-22 0,21,-4,1,-1 20,104,22 27,111,12 31,10C,1277 43,10D,47 46,104,20 29,111,12 21,20,108,-25,-36 0,21,-4,0,0 20,10C,1261 33,10,7233880 0,D,46 0,A,-3379804 0,B,15125236 0,C,68 43,10D,47 44,104,18 30,111,16 32,10C,1281 34,20,95,-28,-8 0,21,-4,2,-1 20,10D,47 48,104,28 34,111,17 33,10C,1339 45,10D,48 38,20,96,-24,3 0,21,-3,1,-1 16,10,7233920 0,D,47 0,A,-3379808 0,B,15125233 0,C,68 67,104,33 27,111,15 32,10C,1347 43,10D,48 47,20,112,-26,3 0,21,-2,3,0 21,104,32 27,111,14 30,10C,1328 44,10D,48 40,10,7233960 0,D,49 0,A,-3379812 0,B,15125230 0,C,68 40,104,31 19,20,44,-60,11 0,21,-2,2,0 20,111,14 32,10C,1277 44,10D,49 56,104,32 30,111,15 21,20,77,-49,-12 0,21,-2,0,0 20,10C,1253 44,10D,49 46,104,32 21,10,7234000 0,D,50 0,A,-3379817 0,B,15125227 0,C,68 40,111,13 28,10C,1246 35,20,90,-24,-12 0,21,-1,0,0 23,10D,49 46,104,25 23,10,7234020 0,D,50 0,A,-3379819 0,B,15125225 0,C,68 41,111,12 26,10C,1246 43,10D,49 37,20,96,-19,-13 0,21,-1,0,0 20,104,22 24,10,7234040 0,D,51 0,A,-3379821 0,B,15125223 0,C,68 54,111,12 36,10C,1257 46,10D,50 37,20,72,-42,-4 0,21,-1,0,1 21,104,18 19,10,7234060 0,D,51 0,A,-3379823 0,B,15125222 0,C,68 57,111,11 30,10C,1289 46,10D,50 37,20,96,-37,-16 0,21,-2,0,1 22,104,14 32,111,11 29,10C,1300 43,10D,50 45,104,13 29,20,94,-29,-16 0,21,-2,0,0 20,111,11 28,10C,1320 43,10D,50 44,104,12 33,111,11 28,10C,1332 34,20,106,-19,-11 0,21,-2,0,1 21,10D,51 48,104,11 33,111,11 29,10C,1339 45,10D,51 47,20,90,-36,-11 0,21,-3,0,1 16,10,7234140 0,D,53 0,A,-3379832 0,B,15125215 0,C,68 66,104,11 41,111,11 29,10C,1363 36,10,7234160 0,D,53 0,A,-3379835 0,B,15125213 0,C,68 41,10D,51 35,20,80,-48,-12 0,21,-2,0,0 20,104,11 30,111,11 32,10C,1375 37,10,7234180 0,D,54 0,A,-3379837 0,B,15125211 0,C,68 39,10D,51 44,104,11 33,20,95,-43,-18 0,21,-3,0,0 21,111,11 29,10C,1386 36,10,7234200 0,D,53 0,A,-3379839 0,B,15125209 0,C,68 44,10D,52 44,104,11 26,20,74,-47,-28 0,21,-3,1,0 18,111,11 30,10C,1398 45,10,7234220 0,D,53 0,A,-3379841 0,B,15125207 0,C,68 40,10D,52 44,104,10 26,20,99,-30,-10 0,21,-2,0,3 18,111,11 30,10C,1406 37,10,7234240 0,D,53 0,A,-3379843 0,B,15125205 0,C,68 40,10D,52 44,104,10 32,111,11 31,20,109,-36,-12 0,21,-2,0,0 21,10C,1437 31,10,7234260 0,D,53 0,A,-3379846 0,B,15125203 0,C,68 44,10D,52 48,104,10 29,111,11 28,20,111,-26,-24 0,21,-2,0,-1 20,10C,1464 33,10,7234280 0,D,52 0,A,-3379848 0,B,15125201 0,C,68 45,10D,52 44,104,10 29,111,11 29,20,105,-20,-24 0,21,-3,0,0 18,10C,1496 34,10,7234300 0,D,53 0,A,-3379850 0,B,15125199 0,C,68 44,10D,52 44,104,9 33,111,11 27,10C,1519 35,20,106,-20,-18 0,21,-3,0,0 21,10D,52 47,104,9 33,111,11 30,10C,1535 44,10D,52 38,20,95,-35,-23 0,21,-3,0,2 21,104,9 27,111,11 30,10C,1542 55,10D,52 55,104,9 22,20,111,-24,-24 0,21,-3,0,1 20,111,11 28,10C,1546 46,10D,52 49,104,9 27,10,7234380 0,D,54 0,A,-3379858 0,B,15125191 0,C,68 41,111,11 18,20,96,-25,-19 0,21,-4,1,-3 25,10C,1558 45,10D,52 47,104,9 30,111,11 22,10,7234400 0,D,54 0,A,-3379860 0,B,15125189 0,C,68 40,10C,1582 33,20,78,-45,-21 0,21,-3,0,0 19,10D,53 48,104,9 28,111,11 23,10,7234420 0,D,54 0,A,-3379862 0,B,15125186 0,C,68 41,10C,1597 44,10D,53 37,20,83,-51,-9 0,21,-3,0,1 19,104,9 33,111,11 35,10C,1617 37,10,7234440 0,D,54 0,A,-3379864 0,B,15125184 0,C,59 39,10D,53 40,20,106,-20,-16 0,21,-3,1,0 19,104,9 40,111,11 22,10,7234460 0,D,55 0,A,-3379866 0,B,15125181 0,C,59 40,10C,1632 41,10D,53 42,20,101,-39,-9 0,21,-3,0,5 22,104,9 31,111,11 22,10,7234480 0,D,54 0,A,-3379868 0,B,15125179 0,C,59 41,10C,1648 44,10D,53 42,20,102,-34,-15 0,21,-3,1,1 18,104,9 26,111,11 31,10C,1675 45,10,7234500 0,D,54 0,A,-3379870 0,B,15125177 0,C,58 41,10D,53 40,20,99,-52,-4 0,21,-3,1,4 18,104,9 26,111,11 23,10,7234520 0,D,53 0,A,-3379871 0,B,15125174 0,C,58 42,10C,1687 41,10D,53 49,104,9 21,20,59,-55,-2 0,21,-3,1,1 18,111,11 33,10C,1679 36,10,7234540 0,D,53 0,A,-3379873 0,B,15125172 0,C,58 41,10D,51 46,104,9 29,20,69,-63,-18 0,21,-2,2,0 18,111,11 45,10C,1691 43,10D,51 61,104,9 32,111,11 22,20,102,-37,-21 0,21,-3,-1,4 21,10C,1679 45,10D,51 49,104,9 30,111,11 32,10C,1671 34,20,69,-57,-23 0,21,-3,0,0 21,10D,51 43,104,9 30,111,11 42,10C,1656 44,10D,50 38,20,75,-53,-27 0,21,-2,1,0 20,104,9 32,111,11 30,10C,1648 42,10D,50 49,104,9 22,10,7234640 0,D,50 0,A,-3379881 0,B,15125160 0,C,58 40,111,11 20,20,85,-46,-17 0,21,-3,0,0 19,10C,1632 41,10D,50 43,104,9 31,111,11 40,10C,1625 35,20,94,-42,-18 0,21,-3,0,1 19,10D,50 47,104,9 28,111,11 35,10C,1617 43,10D,49 42,20,110,-32,-14 0,21,-3,2,0 20,104,9 27,111,11 31,10C,1609 43,10D,49 40,10,7234700 0,D,50 0,A,-3379885 0,B,15125153 0,C,56 40,104,9 20,20,81,-44,-37 0,21,-3,0,-2 20,111,11 42,10C,1613 43,10D,49 40,10,7234720 0,D,50 0,A,-3379887 0,B,15125150 0,C,56 40,104,9 20,20,102,-38,-29 0,21,-3,2,-6 19,111,11 33,10C,1617 44,10D,49 50,104,9 30,111,11 25,20,100,-52,-21 0,21,-3,0,0 20,10C,1605 43,10D,47 46,104,9 39,111,11 30,10C,1582 34,20,97,-36,-17 0,21,-3,-1,-1 20,10D,47 47,104,9 21,10,7234780 0,D,46 0,A,-3379891 0,B,15125143 0,C,56 44,111,11 29,10C,1562 39,20,73,-72,-34 0,21,-3,0,-1 18,10D,47 43,104,9 23,10,7234800 0,D,44 0,A,-3379892 0,B,15125141 0,C,56 40,111,11 28,10C,1546 46,10D,47 36,20,118,-27,-9 0,21,-3,0,0 20,104,9 28,111,11 30,10C,1546 43,10D,43 46,104,9 28,111,11 22,20,109,-42,-23 0,21,-2,-1,0 20,10C,1539 41,10,7234840 0,D,42 0,A,-3379894 0,B,15125137 0,C,56 41,10D,43 43,104,9 29,111,11 28,20,96,-43,-15 0,21,-3,-1,-2 21,10C,1546 42,10D,43 54,104,9 30,111,11 31,10C,1550 34,20,128,-26,10 0,21,-2,1,1 22,10D,43 47,104,9 30,111,11 33,10C,1554 41,10D,39 38,20,90,-45,-6 0,21,-1,-1,0 21,104,9 27,111,11 34,10C,1542 57,10D,39 50,104,9 21,20,112,-29,-14 0,21,-1,2,-2 16,10,7234920 0,D,39 0,A,-3379898 0,B,15125128 0,C,56 67,111,11 32,10C,1515 44,10D,39 43,20,95,-41,-7 0,21,-1,1,1 19,104,9 28,111,11 31,10C,1496 42,10D,39 47,104,10 23,10,7234960 0,D,38 0,A,-3379899 0,B,15125124 0,C,56 42,111,11 28,20,96,-37,-15 0,21,-2,0,0 20,10C,1484 40,10D,37 47,104,10 32,10,7234980 0,D,37 0,A,-3379900 0,B,15125122 0,C,56 41,111,11 24,20,89,-42,-7 0,21,-1,0,0 17,10C,1484 44,10D,37 47,104,10 24,10,7235000 0,D,37 0,A,-3379901 0,B,15125120 0,C,56 42,111,11 27,10C,1480 34,20,112,-23,1 0,21,-1,0,-3 21,10D,37 45,104,10 31,111,11 30,10C,1484 42,10D,37 38,20,101,-32,-18 0,21,-2,0,-2 20,104,10 29,111,11 27,10,7235040 0,D,37 0,A,-3379903 0,B,15125116 0,C,56 41,10C,1488 44,10D,36 42,20,95,-31,-10 0,21,-2,0,0 19,104,10 26,111,11 27,10,7235060 0,D,37 0,A,-3379903 0,B,15125114 0,C,56 41,10C,1480 45,10D,36 46,20,94,-39,-5 0,21,-2,0,0 19,104,10 40,111,11 27,10,7235080 0,D,37 0,A,-3379904 0,B,15125112 0,C,56 41,10C,1480 41,10D,36 36,20,118,-17,-17 0,21,-1,0,0 20,104,10 30,111,11 33,10C,1484 44,10D,36 46,104,10 30,111,11 21,20,102,-25,-5 0,21,-2,0,0 18,10C,1476 42,10D,37 46,104,10 34,111,11 34,10C,1468 34,20,112,-23,0 0,21,-2,0,0 18,10D,37 48,104,10 30,111,11 29,10C,1468 44,10D,37 36,20,96,-26,-3 0,21,-1,0,0 20,104,10 20,10,7235160 0,D,38 0,A,-3379907 0,B,15125104 0,C,56 56,111,11 28,10C,1468 55,10D,37 36,20,79,-42,-16 0,21,-1,0,0 22,104,10 28,111,11 29,10C,1476 61,10D,38 44,104,10 21,20,100,-24,-2 0,21,0,0,0 21,111,11 28,10C,1488 46,10D,38 50,104,10 28,111,11 29,20,110,-16,-6 0,21,-1,0,-1 16,10,7235220 0,D,39 0,A,-3379910 0,B,15125098 0,C,56 67,10C,1492 45,10D,38 49,104,10 26,20,116,-17,-18 0,21,0,1,0 16,10,7235240 0,D,40 0,A,-3379911 0,B,15125096 0,C,56 68,111,11 30,10C,1500 42,10D,39 43,10,7235260 0,D,40 0,A,-3379912 0,B,15125093 0,C,56 41,104,10 19,20,101,-10,-16 0,21,-1,1,-4 20,111,11 32,10C,1503 51,10D,39 46,104,10 31,111,11 34,20,109,-21,-9 0,21,-1,0,0 23,10C,1519 41,10D,39 47,104,10 31,111,11 34,10C,1539 35,20,78,-44,-10 0,21,-1,0,0 19,10D,39 43,104,9 32,111,11 31,10C,1558 43,10D,40 38,20,91,-36,-6 0,21,-1,0,0 19,104,9 28,111,11 30,10C,1582 44,10D,40 46,104,9 30,111,11 22,20,97,-24,-7 0,21,-1,0,-1 20,10C,1601 42,10D,40 46,104,9 32,10,7235360 0,D,40 0,A,-3379916 0,B,15125082 0,C,49 41,111,11 23,20,101,-23,-6 0,21,0,0,0 20,10C,1625 48,10D,40 46,104,9 30,111,11 30,10C,1648 34,20,93,-35,-7 0,21,-1,0,-2 20,10D,41 45,104,9 31,111,11 30,10C,1664 46,10D,41 38,20,101,-29,-16 0,21,-1,0,2 23,104,9 26,111,11 31,10C,1671 43,10D,41 81,20,91,-28,-7 0,21,-1,0,5 17,104,9 30,111,11 31,10C,1683 43,10D,41 46,104,9 30,111,11 21,20,110,-21,-35 0,21,-1,1,1 19,10C,1695 41,10D,42 47,104,9 29,111,11 33,10C,1703 35,20,123,7,-22 0,21,-1,0,-3 18,10D,42 55,104,9 29,111,11 33,10C,1699 43,10D,42 37,20,103,-15,5 0,21,-1,0,2 19,104,9 21,10,7235500 0,D,43 0,A,-3379922 0,B,15125066 0,C,49 55,111,11 28,10C,1699 46,10D,42 37,20,47,-62,-14 0,21,-1,-2,-2 20,104,9 20,10,7235520 0,D,43 0,A,-3379923 0,B,15125063 0,C,49 55,111,11 32,10C,1699 54,10D,42 37,20,93,-38,4 0,21,-2,0,1 21,104,9 28,111,11 30,10C,1710 47,10D,42 48,104,9 26,20,119,-21,-9 0,21,-1,0,1 16,10,7235560 0,D,43 0,A,-3379925 0,B,15125059 0,C,49 67,111,11 31,10C,1722 42,10D,42 45,20,82,-32,0 0,21,-1,0,-3 17,10,7235580 0,D,44 0,A,-3379926 0,B,15125056 0,C,49 67,104,9 38,111,12 30,10C,1714 44,10D,42 38,20,92,-29,-10 0,21,-1,0,1 16,10,7235600 0,D,44 0,A,-3379927 0,B,15125054 0,C,49 67,104,11 30,111,12 32,10C,1714 44,10D,43 37,20,118,-9,-16 0,21,-1,-1,-2 22,10,7235620 0,D,44 0,A,-3379927 0,B,15125051 0,C,46 61,104,14 28,111,14 32,10C,1683 35,10,7235640 0,D,45 0,A,-3379928 0,B,15125049 0,C,46 41,10D,43 35,20,106,-24,-13 0,21,-1,0,1 21,104,18 42,111,14 29,10C,1664 35,10,7235660 0,D,45 0,A,-3379929 0,B,15125046 0,C,46 40,10D,43 36,20,80,-42,-9 0,21,-1,0,1 19,104,20 30,111,13 32,10C,1667 37,10,7235680 0,D,45 0,A,-3379930 0,B,15125044 0,C,46 39,10D,44 45,20,104,-18,-7 0,21,-1,0,-2 19,104,18 39,111,14 29,10C,1691 35,10,7235700 0,D,46 0,A,-3379931 0,B,15125041 0,C,46 44,10D,44 36,20,101,-20,-6 0,21,0,0,0 20,104,18 30,111,14 32,10C,1718 36,10,7235720 0,D,46 0,A,-3379932 0,B,15125039 0,C,46 40,10D,44 44,20,97,-28,-10 0,21,0,0,0 19,104,18 27,111,14 33,10C,1738 35,10,7235740 0,D,47 0,A,-3379933 0,B,15125036 0,C,46 41,10D,45 43,104,18 21,20,81,-38,-5 0,21,0,0,0 20,111,14 28,10C,1742 44,10D,45 55,104,20 32,111,14 22,20,80,-46,2 0,21,0,0,-1 19,10C,1773 44,10D,45 38,10,7235780 0,D,48 0,A,-3379935 0,B,15125031 0,C,46 40,104,21 32,111,15 30,10C,1785 43,20,85,-34,-14 0,21,-1,0,-1 24,10D,45 36,10,7235800 0,D,48 0,A,-3379936 0,B,15125028 0,C,46 40,104,22 32,111,13 32,10C,1789 45,20,113,-28,-2 0,21,-1,-2,2 20,10D,47 48,104,16 34,111,12 30,10C,1835 45,10D,47 37,20,98,-20,-5 0,21,-2,0,-2 21,104,12 27,111,12 29,10C,1824 43,10D,47 48,104,10 31,10,7235860 0,D,49 0,A,-3379939 0,B,15125020 0,C,46 40,111,11 20,20,120,-12,-11 0,21,-1,0,1 20,10C,1816 44,10D,47 48,104,9 27,10,7235880 0,D,50 0,A,-3379940 0,B,15125017 0,C,46 41,111,11 23,20,95,-43,-9 0,21,-1,0,0 21,10C,1796 44,10D,49 49,104,8 39,111,11 32,10,7235900 0,D,50 0,A,-3379941 0,B,15125014 0,C,43 41,10C,1769 31,20,96,-29,-6 0,21,-1,0,-1 20,10D,49 46,104,8 22,10,7235920 0,D,50 0,A,-3379942 0,B,15125012 0,C,43 42,111,11 27,10C,1753 43,20,90,-27,0 0,21,-1,0,0 20,10D,49 42,104,9 30,111,11 30,10C,1750 43,10D,49 38,20,102,-13,-20 0,21,-1,-2,-2 19,104,9 29,111,11 31,10C,1750 43,10D,50 46,104,9 29,111,11 22,20,117,-8,-7 0,21,-1,0,1 18,10C,1753 38,10,7235980 0,D,51 0,A,-3379945 0,B,15125003 0,C,43 41,10D,50 47,104,9 30,111,11 26,20,89,-37,-10 0,21,0,0,-2 22,10C,1761 38,10,7240000 0,D,51 0,A,-3379946 0,B,15125000 0,C,43 41,10D,50 52,104,8 30,111,11 21,20,128,-9,0 0,21,-1,2,0 19,10C,1773 38,10,7240020 0,D,51 0,A,-3379947 0,B,15124998 0,C,43 41,10D,50 56,104,8 29,111,11 21,20,111,-6,-9 0,21,-1,0,-2 20,10C,1785 41,10D,50 47,104,8 33,111,11 29,10C,1789 34,20,106,-24,-8 0,21,-1,0,-1 19,10D,50 49,104,8 29,111,11 30,10C,1796 43,10D,50 37,20,92,-38,-30 0,21,0,-1,0 18,104,8 32,111,11 31,10C,1804 43,10D,50 46,104,8 27,111,11 21,20,124,-11,-24 0,21,-1,-1,2 26,10C,1812 41,10D,51 59,104,9 29,111,11 31,10C,1816 34,20,91,-41,-7 0,21,0,0,0 21,10D,51 45,104,9 29,111,11 30,10C,1816 50,10D,51 37,20,88,-26,-17 0,21,-1,-1,0 21,104,8 27,111,11 30,10C,1820 46,10D,51 48,104,8 23,10,7240160 0,D,53 0,A,-3379955 0,B,15124977 0,C,43 42,111,11 28,20,92,-34,-4 0,21,-1,0,-1 20,10C,1828 44,10D,52 43,104,8 31,111,11 30,10C,1828 34,20,98,-39,-12 0,21,0,0,-1 21,10D,52 46,104,8 27,111,11 31,10,7240200 0,D,53 0,A,-3379957 0,B,15124972 0,C,43 41,10C,1824 37,20,110,-20,-17 0,21,-1,1,-1 23,10D,52 54,104,8 31,111,11 23,10,7240220 0,D,53 0,A,-3379958 0,B,15124969 0,C,43 41,10C,1804 32,20,87,-33,-19 0,21,-1,0,-2 19,10D,52 43,104,8 32,111,11 39,10C,1785 47,10D,52 37,20,106,-17,-6 0,21,-1,0,0 19,104,8 27,111,11 31,10C,1777 44,10D,52 50,104,8 29,111,11 22,20,20,-86,5 0,21,0,0,-9 19,10C,1777 38,10D,52 40,10,7240280 0,D,53 0,A,-3379961 0,B,15124960 0,C,43 40,104,8 32,111,11 30,10C,1761 33,20,69,-47,-30 0,21,-2,-1,2 19,10D,52 48,104,8 30,111,11 29,10C,1742 47,10D,52 45,20,67,-58,-32 0,21,-1,1,3 25,104,9 30,111,11 28,10C,1726 43,10D,52 45,104,9 32,111,11 22,20,82,-37,12 0,21,-1,-2,5 17,10,7240340 0,D,53 0,A,-3379965 0,B,15124951 0,C,43 66,10C,1710 40,10D,52 44,104,9 30,111,11 22,20,120,-18,-18 0,21,-1,1,0 15,10,7240360 0,D,53 0,A,-3379966 0,B,15124948 0,C,43 68,10C,1695 55,10D,52 47,104,9 21,20,76,-32,-7 0,21,-1,1,0 20,111,11 28,10C,1660 43,10D,52 45,104,9 32,111,11 22,10,7240400 0,D,53 0,A,-3379968 0,B,15124942 0,C,43 41,10C,1644 32,20,86,-23,-18 0,21,-1,0,-2 19,10D,52 43,104,9 43,111,11 26,10,7240420 0,D,53 0,A,-3379969 0,B,15124939 0,C,43 41,10C,1625 32,20,90,-25,-15 0,21,-2,-1,0 20,10D,52 46,104,9 29,111,11 22,10,7240440 0,D,53 0,A,-3379970 0,B,15124936 0,C,43 40,10C,1593 41,10D,52 37,20,106,-14,-29 0,21,-2,-1,0 21,104,9 28,111,11 31,10C,1574 43,10D,52 46,104,9 30,111,11 20,20,96,-25,-8 0,21,-1,-1,0 20,10C,1542 41,10D,52 50,104,9 30,111,11 29,10C,1523 34,20,88,-33,-3 0,21,-1,1,0 19,10D,52 41,10,7240500 0,D,53 0,A,-3379973 0,B,15124927 0,C,43 41,104,9 28,111,11 42,10C,1496 34,20,92,-29,-20 0,21,-1,0,0 22,10D,52 55,104,9 39,111,11 29,10C,1460 46,10D,52 37,20,105,-16,-12 0,21,-1,0,-1 21,104,10 31,111,11 30,10C,1433 46,10D,52 49,104,10 25,20,102,-28,-19 0,21,-2,0,-2 20,111,11 32,10C,1414 43,10D,52 49,104,10 29,111,11 30,20,95,-24,-24 0,21,-2,0,0 20,10C,1394 42,10D,52 49,104,11 30,111,11 32,10C,1371 33,20,106,-29,-19 0,21,-1,1,2 22,10D,52 44,104,11 30,111,11 29,10C,1363 45,10D,52 37,20,110,-14,-20 0,21,-1,0,0 22,104,11 36,111,11 29,10C,1347 47,10D,52 48,104,11 21,20,115,-21,-11 0,21,-1,0,3 21,111,11 35,10C,1335 43,10D,52 45,104,11 31,111,11 28,20,118,-16,-17 0,21,-1,0,-1 19,10C,1328 42,10D,52 45,104,11 30,111,11 31,10C,1316 35,20,80,-43,-21 0,21,-1,0,3 20,10D,52 43,104,12 31,111,11 33,10C,1312 40,10D,52 37,20,145,5,-40 0,21,-2,0,-1 22,104,12 28,111,11 41,10C,1312 42,10D,52 48,104,12 21,20,87,-18,4 0,21,-1,1,0 16,10,7240720 0,D,53 0,A,-3379983 0,B,15124894 0,C,43 67,111,11 42,10C,1308 44,10D,52 37,20,70,-34,-16 0,21,-2,0,-1 21,104,12 31,111,11 30,10C,1312 46,10D,52 48,104,12 23,10,7240760 0,D,53 0,A,-3379985 0,B,15124888 0,C,43 44,111,11 19,20,53,-54,-20 0,21,0,1,-6 21,10C,1312 43,10D,52 44,104,11 23,10,7240780 0,D,53 0,A,-3379986 0,B,15124885 0,C,43 41,111,11 28,10C,1312 35,20,78,-38,8 0,21,-1,-1,1 19,10D,52 45,104,11 30,111,11 21,10,7240800 0,D,53 0,A,-3379987 0,B,15124882 0,C,43 41,10C,1312 45,10D,52 37,20,134,-1,26 0,21,0,1,0 20,104,12 27,111,11 22,10,7240820 0,D,53 0,A,-3379988 0,B,15124879 0,C,43 40,10C,1312 41,10D,52 51,20,131,-1,-25 0,21,0,3,1 18,104,12 27,111,11 22,10,7240840 0,D,53 0,A,-3379989 0,B,15124876 0,C,43 44,10C,1308 46,10D,52 45,20,136,-6,-17 0,21,0,5,1 18,104,12 31,111,11 21,10,7240860 0,D,53 0,A,-3379990 0,B,15124873 0,C,43 41,10C,1312 41,10D,52 51,20,75,-49,-20 0,21,-1,-1,-1 19,104,12 37,111,11 33,10C,1335 43,10D,52 46,104,11 25,20,78,-52,-29 0,21,-2,0,0 18,111,11 25,10,7240900 0,D,53 0,A,-3379992 0,B,15124867 0,C,43 52,10C,1351 41,10D,52 49,104,11 21,20,106,-13,-43 0,21,-3,-6,2 18,111,11 37,10C,1378 36,10,7240920 0,D,53 0,A,-3379993 0,B,15124864 0,C,35 41,10D,52 47,104,11 30,20,159,14,2 0,21,-3,3,-1 23,111,11 21,10,7240940 0,D,54 0,A,-3379993 0,B,15124861 0,C,35 52,10C,1410 44,10D,53 45,104,10 22,20,117,-33,4 0,21,-2,2,5 20,111,11 20,10,7240960 0,D,54 0,A,-3379994 0,B,15124858 0,C,35 55,10C,1433 45,10D,53 48,104,10 21,20,110,-21,36 0,21,-1,-1,-1 21,111,11 28,10C,1449 43,10D,53 46,104,10 32,111,11 27,10C,1476 35,20,118,0,41 0,21,-1,-5,1 17,10,7241000 0,D,55 0,A,-3379996 0,B,15124852 0,C,35 66,10D,53 43,104,10 32,111,11 30,10C,1507 34,20,119,-31,5 0,21,-1,1,1 21,10D,54 44,104,10 28,111,11 51,10C,1523 45,10,7241040 0,D,55 0,A,-3379998 0,B,15124846 0,C,35 41,10D,54 34,20,51,-81,-3 0,21,-1,3,5 20,104,9 30,111,11 32,10C,1546 36,10,7241060 0,D,55 0,A,-3379999 0,B,15124843 0,C,35 41,10D,54 43,20,99,-28,-23 0,21,-1,-3,1 21,104,9 25,111,11 33,10C,1566 36,10,7241080 0,D,55 0,A,-3380000 0,B,15124840 0,C,35 41,10D,54 47,104,9 34,20,88,-53,-61 0,21,-1,-4,6 19,111,11 31,10C,1582 35,10,7241100 0,D,56 0,A,-3380001 0,B,15124836 0,C,35 41,10D,54 44,104,9 28,111,11 22,20,86,-44,-30 0,21,0,-3,1 19,10C,1597 38,10,7241120 0,D,56 0,A,-3380002 0,B,15124833 0,C,35 40,10D,54 48,104,9 29,111,11 29,20,107,-9,-35 0,21,-1,2,0 19,10C,1613 43,10,7241140 0,D,56 0,A,-3380003 0,B,15124830 0,C,35 40,10D,54 44,104,9 29,111,11 28,20,124,-2,-17 0,21,-1,0,-7 21,10C,1632 33,10,7241160 0,D,56 0,A,-3380004 0,B,15124827 0,C,35 43,10D,55 47,104,9 29,111,11 28,20,49,-65,-17 0,21,-2,1,0 22,10C,1648 31,10,7241180 0,D,56 0,A,-3380005 0,B,15124824 0,C,35 44,10D,55 44,104,9 30,111,11 31,10C,1667 35,20,100,-35,-3 0,21,0,2,-1 20,10D,55 48,104,9 30,111,11 33,10C,1683 45,10D,55 38,20,108,-20,0 0,21,-1,-1,1 16,10,7241220 0,D,56 0,A,-3380006 0,B,15124817 0,C,35 67,104,9 27,111,11 31,10C,1703 44,10D,56 46,20,102,-29,-30 0,21,-1,0,1 22,104,9 27,111,11 30,10C,1726 54,10D,56 39,10,7241260 0,D,57 0,A,-3380008 0,B,15124811 0,C,35 40,104,9 19,20,118,-10,-17 0,21,-1,0,2 21,111,11 27,10C,1750 44,10D,56 47,104,9 38,111,11 26,20,61,-45,-9 0,21,-1,0,-1 20,10C,1765 49,10D,56 46,104,8 31,111,11 29,10C,1781 34,20,78,-52,-27 0,21,0,-2,-1 21,10D,57 46,104,8 35,111,11 21,10,7241320 0,D,58 0,A,-3380011 0,B,15124801 0,C,35 40,10C,1804 38,20,126,-19,11 0,21,0,-2,0 19,10D,57 46,104,8 30,111,11 23,10,7241340 0,D,59 0,A,-3380012 0,B,15124798 0,C,35 40,10C,1820 42,20,71,-38,-9 0,21,-1,2,-3 19,10D,57 46,104,8 30,111,11 21,10,7241360 0,D,59 0,A,-3380013 0,B,15124794 0,C,35 41,10C,1835 41,10D,58 37,20,88,-26,-9 0,21,-1,0,3 19,104,8 30,111,11 24,10,7241380 0,D,59 0,A,-3380014 0,B,15124791 0,C,35 41,10C,1847 45,10D,58 42,20,110,-24,4 0,21,-1,0,-3 18,104,8 29,111,11 31,10C,1878 48,10D,58 46,104,8 29,111,11 22,20,103,-16,-15 0,21,-1,-1,0 18,10C,1886 41,10D,58 51,104,9 29,111,11 30,10C,1894 34,20,111,-20,-9 0,21,-1,-1,0 19,10D,58 48,104,8 34,111,12 42,10C,1917 43,10D,58 49,20,97,-30,-12 0,21,-1,-1,0 21,104,8 30,111,12 34,10C,1933 47,10D,58 47,104,8 22,20,96,-27,-13 0,21,0,0,1 20,111,12 32,10C,1933 43,10D,58 48,104,8 32,111,12 28,20,115,-18,-15 0,21,-1,0,0 19,10C,1945 41,10D,58 46,104,8 30,111,12 31,10C,1964 34,20,89,-33,-20 0,21,-1,0,0 21,10D,59 44,104,8 30,111,12 29,10C,1968 44,10D,59 36,20,106,-26,-10 0,21,0,1,0 21,104,8 31,111,12 34,10C,1980 54,10D,59 47,104,8 21,20,71,-39,0 0,21,-1,0,-3 15,10,7241560 0,D,61 0,A,-3380024 0,B,15124760 0,C,35 68,111,12 31,10C,1984 45,10D,59 43,20,62,-51,-14 0,21,0,0,-4 19,104,8 32,111,12 30,10C,1980 46,10D,60 48,104,8 22,10,7241600 0,D,61 0,A,-3380026 0,B,15124753 0,C,35 40,111,12 29,20,98,-25,-12 0,21,0,-1,-4 21,10C,1960 43,10D,60 46,104,8 21,10,7241620 0,D,61 0,A,-3380027 0,B,15124750 0,C,35 41,111,12 27,10C,1929 35,20,102,-31,-14 0,21,0,-1,2 23,10D,60 56,104,8 22,10,7241640 0,D,61 0,A,-3380028 0,B,15124747 0,C,35 41,111,12 28,10C,1902 33,20,95,-36,0 0,21,0,0,-2 20,10D,60 56,104,9 30,10,7241660 0,D,60 0,A,-3380029 0,B,15124743 0,C,35 41,111,12 30,10C,1878 35,20,93,-42,-19 0,21,0,-1,4 20,10D,60 43,104,9 22,10,7241680 0,D,60 0,A,-3380030 0,B,15124740 0,C,35 40,111,11 28,10C,1867 46,10D,60 37,20,99,-25,-9 0,21,1,-2,-3 20,104,9 20,10,7241700 0,D,60 0,A,-3380031 0,B,15124736 0,C,35 56,111,11 28,10C,1863 43,10D,60 37,20,91,-44,18 0,21,1,0,1 20,104,9 19,10,7241720 0,D,59 0,A,-3380033 0,B,15124733 0,C,35 56,111,11 28,10C,1859 47,10D,59 36,20,100,-24,9 0,21,1,0,0 21,104,9 32,111,11 29,10C,1867 47,10D,59 49,104,8 30,20,121,-27,-8 0,21,2,-3,0 21,111,11 28,10C,1875 47,10D,59 49,104,8 28,111,11 29,20,91,-32,23 0,21,2,1,-3 16,10,7241780 0,D,60 0,A,-3380037 0,B,15124724 0,C,35 67,10C,1875 45,10D,58 49,104,8 26,20,102,-23,1 0,21,2,1,-4 16,10,7241800 0,D,60 0,A,-3380038 0,B,15124720 0,C,35 67,111,11 31,10C,1875 42,10D,58 47,104,8 21,20,94,-39,24 0,21,1,1,0 15,10,7241820 0,D,60 0,A,-3380040 0,B,15124717 0,C,35 68,111,11 32,10C,1855 53,10D,58 37,20,115,-24,7 0,21,1,-2,0 20,104,9 28,111,11 30,10C,1863 46,10D,58 45,104,9 32,10,7241860 0,D,61 0,A,-3380043 0,B,15124711 0,C,35 39,111,11 20,20,82,-37,13 0,21,1,-2,-4 19,10C,1867 44,10D,59 45,104,9 23,10,7241880 0,D,61 0,A,-3380045 0,B,15124708 0,C,35 40,111,11 28,10C,1875 33,20,103,-27,28 0,21,2,-2,-2 21,10D,59 45,104,8 31,111,11 30,10C,1882 42,10D,59 38,20,108,-21,0 0,21,1,0,-2 20,104,8 29,111,11 30,10C,1894 35,10,7241920 0,D,61 0,A,-3380049 0,B,15124702 0,C,35 44,10D,59 44,104,9 21,20,119,-14,9 0,21,1,-2,1 20,111,12 31,10C,1910 34,10,7241940 0,D,61 0,A,-3380050 0,B,15124699 0,C,35 40,10D,60 44,104,8 30,111,12 21,20,122,-16,8 0,21,1,-2,-4 18,10C,1921 42,10D,60 55,104,8 30,111,12 33,10C,1929 34,20,109,-17,22 0,21,1,-2,-6 20,10D,60 36,10,7241980 0,D,62 0,A,-3380055 0,B,15124693 0,C,35 40,104,8 37,111,12 29,10C,1937 38,20,110,-21,11 0,21,1,-1,-3 20,10D,60 36,10,7242000 0,D,63 0,A,-3380057 0,B,15124691 0,C,35 41,104,8 35,111,12 30,10C,1941 40,10D,61 37,20,115,-21,-2 0,21,1,-2,-2 20,104,8 28,111,12 30,10C,1941 46,10D,61 44,104,8 23,10,7242040 0,D,63 0,A,-3380061 0,B,15124685 0,C,35 41,111,12 20,20,143,4,5 0,21,2,0,-4 19,10C,1945 41,10D,61 47,104,8 35,111,12 39,10C,1937 43,20,126,10,13 0,21,2,0,1 19,10D,61 48,104,8 29,111,12 22,10,7242080 0,D,63 0,A,-3380066 0,B,15124680 0,C,35 41,10C,1929 44,10D,62 37,20,130,-26,13 0,21,3,-2,0 20,104,8 29,111,12 23,10,7242100 0,D,63 0,A,-3380068 0,B,15124677 0,C,35 41,10C,1925 45,10D,62 42,20,119,-30,27 0,21,0,-1,1 22,104,8 38,111,12 21,10,7242120 0,D,63 0,A,-3380071 0,B,15124675 0,C,35 41,10C,1929 44,10D,62 37,20,98,-36,45 0,21,1,0,0 20,104,8 29,111,12 24,10,7242140 0,D,63 0,A,-3380073 0,B,15124672 0,C,35 41,10C,1921 45,10D,62 42,20,70,-41,-11 0,21,0,-2,-3 18,104,8 30,111,12 22,10,7242160 0,D,64 0,A,-3380076 0,B,15124670 0,C,35 42,10C,1910 40,10D,62 52,20,110,-25,5 0,21,1,-2,-1 18,104,9 31,111,12 22,10,7242180 0,D,63 0,A,-3380079 0,B,15124668 0,C,35 40,10C,1914 41,10D,62 45,104,9 22,20,114,-44,-3 0,21,1,-2,-3 21,111,12 42,10C,1894 46,10D,62 49,104,9 29,111,11 22,20,122,-41,15 0,21,2,-1,3 19,10C,1875 34,10,7242220 0,D,63 0,A,-3380084 0,B,15124663 0,C,35 44,10D,62 47,104,8 29,111,11 28,20,140,4,-14 0,21,2,-5,-1 21,10C,1855 33,10,7242240 0,D,62 0,A,-3380086 0,B,15124661 0,C,35 43,10D,62 48,104,9 31,111,11 26,20,96,-37,3 0,21,2,-2,-2 19,10C,1835 33,10,7242260 0,D,63 0,A,-3380089 0,B,15124659 0,C,35 44,10D,62 44,104,8 41,111,11 22,20,87,-35,4 0,21,3,0,0 19,10C,1816 34,10,7242280 0,D,62 0,A,-3380092 0,B,15124657 0,C,35 44,10D,62 44,104,9 33,111,11 28,20,57,-36,-3 0,21,2,0,-6 19,10C,1812 34,10,7242300 0,D,61 0,A,-3380095 0,B,15124655 0,C,35 44,10D,61 44,104,8 29,111,11 31,10C,1812 35,20,69,-41,0 0,21,1,0,3 21,10D,61 43,104,8 29,111,11 30,10C,1828 44,10D,61 38,20,102,-19,22 0,21,1,0,0 20,104,8 28,111,11 30,10C,1839 46,10D,61 55,104,8 30,20,91,-35,9 0,21,2,0,-3 15,10,7242360 0,D,60 0,A,-3380103 0,B,15124651 0,C,35 68,111,11 31,10C,1843 54,10D,60 38,20,86,-29,8 0,21,2,0,1 16,10,7242380 0,D,60 0,A,-3380106 0,B,15124649 0,C,35 67,104,8 31,111,11 31,10C,1808 44,10D,60 37,20,93,-41,19 0,21,1,0,4 17,10,7242400 0,D,60 0,A,-3380109 0,B,15124648 0,C,15 66,104,8 31,111,11 30,10,7242420 0,D,60 0,A,-3380111 0,B,15124647 0,C,15 40,10C,1796 33,20,126,-20,-9 0,21,1,0,-2 19,10D,59 44,104,9 32,111,11 30,10C,1777 35,10,7242440 0,D,59 0,A,-3380114 0,B,15124645 0,C,15 41,10D,59 34,20,133,-21,15 0,21,1,0,3 21,104,8 29,111,11 28,10C,1750 47,10D,59 51,104,9 28,20,100,-24,-9 0,21,1,-1,2 21,111,11 29,10C,1730 57,10D,59 46,104,9 34,111,11 21,20,87,-29,0 0,21,0,-1,2 18,10C,1699 43,10D,58 46,104,9 29,111,11 30,10C,1664 34,20,119,-28,9 0,21,1,-2,0 20,10D,58 45,104,9 31,111,11 30,10C,1625 47,10D,58 37,20,101,-37,-9 0,21,0,-4,0 20,104,9 26,111,11 26,10,7242540 0,D,59 0,A,-3380129 0,B,15124640 0,C,15 41,10C,1582 44,10D,58 47,20,89,-36,-9 0,21,0,0,1 18,104,9 30,111,11 29,10C,1519 44,10D,58 45,104,9 34,20,106,-19,-12 0,21,1,0,0 20,111,11 25,10C,1476 58,10D,58 49,104,9 29,111,11 22,20,104,-27,-7 0,21,0,0,-2 19,10C,1437 43,10D,58 38,10,7242600 0,D,58 0,A,-3380138 0,B,15124638 0,C,15 45,104,10 28,111,11 30,10C,1406 34,20,125,-6,-9 0,21,0,-1,0 18,10D,58 38,10,7242620 0,D,58 0,A,-3380140 0,B,15124638 0,C,15 40,104,10 32,111,11 32,10C,1378 42,20,83,-31,0 0,21,0,0,1 19,10D,58 37,10,7242640 0,D,58 0,A,-3380143 0,B,15124637 0,C,15 41,104,11 27,111,11 30,10C,1355 45,10D,57 37,20,103,-23,-35 0,21,0,0,1 21,104,11 27,111,11 30,10C,1347 43,10D,57 48,104,11 36,20,67,-30,11 0,21,0,2,-3 21,111,11 31,10C,1339 47,10D,57 48,104,11 32,111,11 21,20,45,-34,-20 0,21,0,0,-2 18,10,7242700 0,D,58 0,A,-3380152 0,B,15124636 0,C,15 65,10C,1343 91,10D,56 37,20,130,-31,16 0,21,0,0,4 21,104,11 40,111,11 29,10C,1332 56,10D,56 50,104,11 21,20,147,8,14 0,21,0,2,1 21,111,11 27,10C,1332 47,10D,56 51,104,11 30,111,11 27,20,56,-63,-31 0,21,0,-1,11 21,10C,1320 39,10D,56 50,104,12 31,111,11 40,10C,1316 34,20,87,-25,-10 0,21,-2,1,-3 18,10,7242780 0,D,58 0,A,-3380164 0,B,15124634 0,C,14 65,10D,56 46,104,11 31,111,11 31,10C,1308 34,20,76,-48,-13 0,21,0,-1,4 20,10D,56 43,104,12 32,111,13 26,10,7242820 0,D,57 0,A,-3380170 0,B,15124633 0,C,14 45,10C,1308 37,20,69,-29,3 0,21,0,1,-3 21,10D,56 46,104,15 27,111,12 31,10C,1296 47,10D,56 38,20,121,-11,3 0,21,0,0,1 20,104,14 35,111,12 31,10C,1281 44,10D,56 46,104,17 26,20,115,-8,0 0,21,0,-2,-1 19,111,13 31,10C,1304 45,10D,56 48,10,7242880 0,D,57 0,A,-3380178 0,B,15124632 0,C,14 41,104,21 19,20,84,-47,-14 0,21,-1,0,1 20,111,13 31,10C,1304 45,10D,56 38,10,7242900 0,D,57 0,A,-3380181 0,B,15124632 0,C,14 41,104,22 27,20,77,-25,-7 0,21,0,3,-5 20,111,14 30,10C,1308 48,10D,56 37,10,7242920 0,D,57 0,A,-3380184 0,B,15124631 0,C,14 40,104,24 28,111,14 22,20,99,-50,-9 0,21,-1,1,-3 19,10C,1300 46,10D,56 51,10,7242940 0,D,57 0,A,-3380187 0,B,15124631 0,C,14 40,104,26 32,111,14 21,20,85,-9,-6 0,21,-1,0,3 20,10C,1304 43,10D,56 38,10,7242960 0,D,57 0,A,-3380190 0,B,15124630 0,C,14 41,104,28 26,111,15 30,10C,1308 34,20,57,-77,-10 0,21,-1,0,5 19,10D,56 37,10,7242980 0,D,57 0,A,-3380193 0,B,15124630 0,C,14 41,104,30 40,111,15 34,10C,1316 34,20,93,-24,5 0,21,0,0,-4 18,10D,56 37,10,7243000 0,D,57 0,A,-3380196 0,B,15124630 0,C,14 45,104,32 32,111,15 37,10C,1312 33,20,92,-15,4 0,21,-2,1,-4 20,10D,56 37,10,7243020 0,D,57 0,A,-3380198 0,B,15124629 0,C,14 40,104,33 27,111,15 30,10C,1316 45,10D,56 37,20,118,7,-2 0,21,-1,-1,0 21,104,34 31,111,15 34,10C,1328 42,10D,56 48,104,34 23,10,7243060 0,D,57 0,A,-3380204 0,B,15124629 0,C,14 42,111,15 18,20,104,-24,-28 0,21,-1,0,0 21,10C,1328 44,10D,56 47,104,30 44,111,13 21,10,7243080 0,D,57 0,A,-3380207 0,B,15124628 0,C,13 41,10C,1324 41,20,102,-16,0 0,21,-2,-1,2 24,10D,56 47,104,24 21,10,7243100 0,D,58 0,A,-3380210 0,B,15124628 0,C,13 41,111,13 41,10C,1308 34,20,32,-87,7 0,21,-3,6,3 19,10D,56 44,10,7243120 0,D,58 0,A,-3380213 0,B,15124628 0,C,13 41,104,20 31,111,12 30,10C,1320 35,20,87,-35,-24 0,21,-2,2,-3 19,10D,56 44,10,7243140 0,D,58 0,A,-3380216 0,B,15124627 0,C,13 41,104,17 28,111,11 29,10C,1332 39,20,124,-25,-19 0,21,-1,-4,1 19,10D,56 44,10,7243160 0,D,58 0,A,-3380219 0,B,15124627 0,C,13 40,104,13 27,111,11 30,10C,1335 43,20,170,28,-34 0,21,-2,0,-5 23,10D,56 44,104,12 30,111,11 30,10C,1332 46,10D,56 46,20,118,-19,-2 0,21,0,0,-3 20,104,12 27,111,11 22,10,7243200 0,D,58 0,A,-3380225 0,B,15124626 0,C,13 41,10C,1332 44,10D,56 46,20,94,-47,-15 0,21,0,-1,5 17,104,11 26,10,7243220 0,D,58 0,A,-3380228 0,B,15124626 0,C,13 52,111,11 28,10C,1324 43,10D,56 37,20,120,-19,8 0,21,0,0,0 19,104,11 32,111,11 35,10C,1324 42,10D,56 57,104,11 21,20,115,3,10 0,21,0,2,-2 18,111,11 33,10C,1320 36,10,7243260 0,D,58 0,A,-3380233 0,B,15124625 0,C,12 41,10D,56 47,104,11 27,20,94,-61,-60 0,21,-2,-1,-2 24,111,11 20,10,7243280 0,D,57 0,A,-3380236 0,B,15124625 0,C,12 53,10C,1316 44,10D,56 49,104,12 29,20,101,-53,-53 0,21,-2,-3,-1 21,111,11 32,10C,1308 43,10D,56 46,104,12 28,111,11 32,10C,1316 46,20,160,16,14 0,21,-1,-3,3 18,10,7243320 0,D,57 0,A,-3380242 0,B,15124624 0,C,12 65,10D,56 47,104,12 33,111,11 23,10,7243340 0,D,57 0,A,-3380245 0,B,15124624 0,C,12 39,10C,1300 32,20,87,-55,-22 0,21,-1,0,13 21,10D,56 46,104,11 28,111,11 23,10,7243360 0,D,57 0,A,-3380248 0,B,15124623 0,C,12 42,10C,1300 41,20,69,-49,22 0,21,-1,2,-3 19,10D,56 43,104,11 32,111,11 31,10C,1324 44,10D,56 37,20,127,-33,-14 0,21,-2,2,-2 19,104,11 28,111,11 32,10C,1328 55,10D,56 50,104,11 22,20,79,-25,4 0,21,-1,5,1 19,111,11 27,10C,1316 46,10D,56 38,10,7243420 0,D,56 0,A,-3380256 0,B,15124622 0,C,12 41,104,11 26,111,11 22,20,101,-48,-26 0,21,-2,1,-2 19,10C,1312 43,10D,56 54,104,11 30,111,11 34,10C,1308 35,20,105,-28,32 0,21,0,2,-3 19,10D,56 43,104,12 22,10,7243460 0,D,56 0,A,-3380262 0,B,15124621 0,C,12 41,111,11 26,10C,1300 52,10D,56 36,20,78,-41,-14 0,21,0,-1,-4 21,104,12 29,10,7243480 0,D,55 0,A,-3380265 0,B,15124621 0,C,12 48,111,11 31,10C,1285 42,10D,55 37,20,84,-10,17 0,21,-2,1,-8 21,104,12 41,111,11 33,10C,1277 47,10D,55 48,104,12 21,20,121,-17,-30 0,21,-1,1,0 21,111,11 28,10C,1277 42,10D,55 46,104,12 32,111,11 30,10C,1281 34,20,102,-95,-70 0,21,1,-2,9 16,10,7243540 0,D,54 0,A,-3380273 0,B,15124620 0,C,12 67,10D,55 47,104,12 31,111,11 23,10,7243560 0,D,53 0,A,-3380276 0,B,15124620 0,C,12 42,10C,1281 32,20,108,-46,-7 0,21,0,0,-4 23,10D,53 48,104,12 31,111,11 24,10,7243580 0,D,53 0,A,-3380278 0,B,15124620 0,C,12 41,10C,1289 36,20,101,-77,1 0,21,-2,1,0 21,10D,53 46,104,12 32,111,11 30,10C,1296 57,10D,53 37,20,128,5,-24 0,21,-2,0,0 20,104,12 30,111,11 32,10C,1292 35,10,7243620 0,D,51 0,A,-3380284 0,B,15124619 0,C,12 41,10D,53 43,20,110,29,-1 0,21,0,-3,-6 21,104,11 30,111,11 32,10C,1289 43,10,7243640 0,D,51 0,A,-3380286 0,B,15124619 0,C,12 41,10D,51 35,20,114,-15,-13 0,21,-2,2,-3 21,104,12 32,111,11 34,10C,1296 34,10,7243660 0,D,51 0,A,-3380289 0,B,15124618 0,C,12 45,10D,51 36,20,92,-24,23 0,21,-1,2,-5 19,104,11 30,111,11 33,10C,1289 35,10,7243680 0,D,51 0,A,-3380291 0,B,15124618 0,C,12 41,10D,51 43,20,92,-33,-8 0,21,-1,1,-1 20,104,12 29,111,11 39,10,7243700 0,D,51 0,A,-3380294 0,B,15124618 0,C,12 41,10C,1281 50,10D,50 37,20,97,2,-22 0,21,-2,0,-7 19,104,12 30,111,11 34,10C,1285 44,10D,50 45,104,12 29,111,11 22,20,105,-37,-3 0,21,-1,0,7 18,10C,1285 42,10D,50 50,104,12 33,111,11 30,10C,1285 35,20,66,21,30 0,21,-1,2,-7 18,10D,50 49,104,12 33,111,11 30,10C,1281 47,10D,50 36,20,40,-47,-2 0,21,0,1,-5 20,104,12 20,10,7243780 0,D,51 0,A,-3380304 0,B,15124617 0,C,12 56,111,11 31,10C,1296 54,10D,50 37,20,92,-51,-5 0,21,-1,0,2 20,104,12 29,111,11 30,10C,1292 55,10D,50 45,104,12 22,20,103,-30,-20 0,21,-2,0,3 20,111,11 29,10C,1289 43,10D,50 45,104,12 32,111,11 28,10C,1292 35,20,111,-22,-6 0,21,-2,1,-1 16,10,7243840 0,D,50 0,A,-3380312 0,B,15124616 0,C,12 67,10D,50 52,104,12 29,111,11 22,10,7243860 0,D,50 0,A,-3380314 0,B,15124615 0,C,12 42,10C,1292 37,20,88,-35,-19 0,21,-1,-2,0 20,10D,50 46,104,12 28,111,13 30,10C,1304 47,10D,50 38,20,107,-20,-25 0,21,-2,0,1 20,104,17 30,111,14 32,10C,1316 43,10D,50 46,104,21 30,111,14 30,20,102,-24,-21 0,21,-2,1,0 20,10C,1296 42,10D,50 39,10,7243920 0,D,50 0,A,-3380322 0,B,15124614 0,C,12 41,104,25 26,111,14 34,10C,1304 34,20,128,-23,-37 0,21,-1,-2,3 20,10D,50 44,104,28 29,111,14 34,10C,1300 46,10D,50 37,20,119,-16,-29 0,21,-2,1,0 19,104,28 21,10,7243960 0,D,50 0,A,-3380327 0,B,15124614 0,C,12 55,111,15 28,10C,1296 50,10D,50 37,20,16,-95,-54 0,21,0,-2,11 20,104,30 29,111,15 29,10C,1292 47,10D,50 48,104,32 29,111,14 20,20,72,-3,10 0,21,-1,0,-3 21,10C,1292 45,10D,50 45,104,28 39,111,13 41,10C,1300 34,20,151,-26,-49 0,21,-1,-1,10 16,10,7244020 0,D,50 0,A,-3380334 0,B,15124613 0,C,12 67,10D,50 46,104,21 33,111,12 23,10,7244040 0,D,51 0,A,-3380337 0,B,15124612 0,C,12 40,10C,1285 32,20,88,-30,-15 0,21,-1,2,-3 20,10D,50 43,104,18 46,111,11 21,10,7244060 0,D,51 0,A,-3380340 0,B,15124612 0,C,12 40,10C,1277 33,20,101,-49,-34 0,21,-1,0,-2 24,10D,50 47,104,14 27,111,11 24,10,7244080 0,D,51 0,A,-3380342 0,B,15124612 0,C,12 40,10C,1289 41,10D,50 37,20,99,-34,-23 0,21,0,-1,2 19,104,13 30,111,11 31,10C,1285 43,10D,50 46,104,12 29,111,11 30,20,89,-50,2 0,21,0,1,4 19,10C,1289 42,10D,50 38,10,7244120 0,D,51 0,A,-3380347 0,B,15124611 0,C,10 41,104,12 31,111,11 29,10C,1285 43,20,98,-37,-25 0,21,0,-2,2 20,10D,50 43,104,12 30,111,11 30,10C,1285 45,10D,50 38,20,95,-44,-11 0,21,0,0,1 20,104,12 28,111,11 28,10C,1281 48,10D,50 47,104,12 29,20,97,-29,-12 0,21,0,1,2 22,111,11 31,10C,1281 43,10D,50 45,104,12 31,111,11 31,20,68,12,-38 0,21,-2,-1,7 21,10C,1285 54,10D,50 49,104,12 38,111,11 30,10C,1273 34,20,94,-51,-16 0,21,-1,0,4 16,10,7244220 0,D,50 0,A,-3380360 0,B,15124609 0,C,10 67,10D,50 43,104,12 29,111,11 24,10,7244240 0,D,50 0,A,-3380362 0,B,15124609 0,C,10 40,10C,1277 31,20,92,-34,-3 0,21,0,0,0 21,10D,50 46,104,12 28,111,11 31,10C,1289 43,10D,50 38,20,87,-38,-12 0,21,0,0,1 20,104,12 30,111,11 35,10C,1289 44,10D,50 50,104,12 21,20,88,-30,-3 0,21,0,1,1 24,111,11 31,10C,1285 45,10D,50 39,10,7244300 0,D,50 0,A,-3380370 0,B,15124609 0,C,10 40,104,12 25,20,113,-23,-15 0,21,0,-1,-1 19,111,11 31,10C,1292 56,10D,50 37,10,7244320 0,D,50 0,A,-3380372 0,B,15124608 0,C,10 41,104,11 18,20,98,-26,-7 0,21,0,-2,-1 21,111,11 31,10C,1292 46,10D,49 37,10,7244340 0,D,50 0,A,-3380375 0,B,15124608 0,C,10 41,104,12 24,20,85,-34,-6 0,21,0,-1,0 19,111,11 28,10C,1292 44,10D,49 40,10,7244360 0,D,50 0,A,-3380378 0,B,15124608 0,C,10 40,104,12 32,111,11 21,20,93,-32,2 0,21,0,1,0 24,10C,1292 43,10D,49 39,10,7244380 0,D,50 0,A,-3380380 0,B,15124608 0,C,10 40,104,12 27,111,11 27,20,105,-14,-1 0,21,0,0,0 19,10C,1292 42,10D,49 47,104,12 38,111,11 30,10C,1289 35,20,89,-33,1 0,21,0,-1,0 19,10D,48 66,104,11 23,10,7244420 0,D,50 0,A,-3380385 0,B,15124608 0,C,9 39,111,11 31,10C,1292 35,20,106,-27,-5 0,21,0,-1,-1 19,10D,48 44,104,11 31,111,11 34,10C,1292 46,10D,48 38,20,101,-28,-9 0,21,0,0,0 18,104,11 29,111,11 34,10C,1296 43,10D,48 46,104,11 32,111,11 21,20,98,-29,0 0,21,0,0,0 21,10C,1296 46,10,7244480 0,D,50 0,A,-3380393 0,B,15124608 0,C,9 40,10D,48 47,104,11 27,111,11 22,20,106,-19,-4 0,21,0,0,0 20,10C,1296 45,10D,48 49,104,11 30,111,11 33,10C,1296 43,20,88,-32,-6 0,21,0,-1,0 20,10D,48 44,104,11 30,111,11 30,10C,1300 45,10D,48 37,20,91,-31,-6 0,21,0,-1,0 20,104,11 28,111,11 30,10C,1308 46,10D,49 48,104,11 31,111,11 29,20,110,-19,-2 0,21,0,-1,0 21,10C,1316 45,10D,49 45,104,11 27,111,11 31,10C,1328 35,20,101,-27,2 0,21,0,0,0 20,10D,49 48,104,11 32,111,11 32,10C,1339 44,10D,49 37,20,95,-36,1 0,21,0,-1,1 24,104,11 28,111,11 33,10C,1343 45,10D,50 48,10,7244620 0,D,50 0,A,-3380410 0,B,15124609 0,C,9 39,104,11 20,20,112,-21,6 0,21,0,0,0 19,111,11 31,10C,1355 45,10D,50 39,10,7244640 0,D,50 0,A,-3380413 0,B,15124609 0,C,9 39,104,11 27,111,11 22,20,104,-15,11 0,21,0,0,0 20,10C,1363 42,10D,50 46,104,11 30,111,11 31,10C,1367 34,20,101,-24,0 0,21,0,0,0 19,10D,50 46,104,11 24,10,7244680 0,D,50 0,A,-3380418 0,B,15124610 0,C,9 39,111,11 27,10C,1375 46,10D,50 37,20,124,-9,1 0,21,0,0,-2 20,104,11 28,111,11 29,10C,1378 46,10D,50 50,104,10 28,20,101,-24,-6 0,21,0,-1,0 18,111,11 29,10C,1375 53,10D,50 45,104,10 31,111,11 25,20,93,-28,0 0,21,0,-1,0 18,10C,1378 41,10D,50 46,104,10 30,111,11 29,10C,1371 47,20,107,-22,-5 0,21,0,0,-1 20,10D,50 46,10,7244760 0,D,50 0,A,-3380428 0,B,15124612 0,C,9 39,104,10 28,111,11 29,10C,1367 38,20,101,-24,1 0,21,0,-1,-1 19,10D,50 37,10,7244780 0,D,50 0,A,-3380430 0,B,15124613 0,C,9 39,104,10 28,111,11 30,10C,1355 46,10D,50 37,20,109,-24,-10 0,21,-1,0,-1 20,104,11 32,111,11 34,10C,1347 47,10D,50 53,104,11 22,20,95,-32,-9 0,21,0,1,-1 16,10,7244820 0,D,50 0,A,-3380435 0,B,15124614 0,C,9 65,111,11 42,10C,1335 44,10D,50 38,20,109,-28,-15 0,21,0,0,1 21,104,11 28,111,11 29,10C,1328 46,10D,50 49,104,11 22,10,7244860 0,D,50 0,A,-3380440 0,B,15124615 0,C,9 40,111,11 18,20,87,-39,-10 0,21,-1,-1,2 21,10C,1347 44,10D,50 44,104,11 31,111,11 30,10C,1355 34,20,123,-27,-9 0,21,-1,0,-1 15,10,7244880 0,D,50 0,A,-3380443 0,B,15124616 0,C,6 67,10D,50 43,104,11 30,111,11 29,10C,1367 35,20,100,-27,-11 0,21,-1,0,-2 24,10D,49 47,104,11 40,111,11 31,10C,1347 43,10D,49 36,20,97,-31,-13 0,21,-1,0,0 20,104,11 39,111,11 30,10C,1335 43,10D,49 47,104,11 21,20,100,-26,-20 0,21,-1,0,2 20,111,11 29,10C,1339 47,10D,49 39,10,7244960 0,D,50 0,A,-3380453 0,B,15124618 0,C,6 39,104,11 28,20,106,-40,-17 0,21,-1,0,-2 20,111,11 29,10C,1339 44,10D,47 50,104,11 30,111,11 30,10C,1320 33,20,88,-35,-9 0,21,0,0,0 20,10D,47 48,104,11 22,10,7245000 0,D,50 0,A,-3380457 0,B,15124619 0,C,6 40,111,11 31,10C,1304 39,20,98,-32,-16 0,21,-1,0,1 23,10D,47 45,104,11 32,111,11 30,10C,1312 47,10D,47 37,20,116,-14,-9 0,21,-1,0,0 20,104,11 29,10,7245040 0,D,45 0,A,-3380462 0,B,15124620 0,C,6 46,111,11 31,10C,1308 46,10D,45 37,20,103,-31,-16 0,21,-1,0,1 21,104,11 32,111,11 34,10C,1292 46,10D,45 49,104,11 22,20,86,-43,-5 0,21,-1,0,0 20,111,11 29,10C,1289 42,10D,45 46,104,11 33,111,11 31,20,94,-37,-9 0,21,-1,0,0 18,10,7245100 0,D,43 0,A,-3380468 0,B,15124622 0,C,6 64,10C,1300 45,10D,43 49,104,11 26,20,95,-28,-12 0,21,-1,0,0 17,10,7245120 0,D,42 0,A,-3380470 0,B,15124622 0,C,6 65,111,11 44,10C,1308 42,10D,43 37,20,110,-16,-15 0,21,-1,0,0 21,104,11 37,111,11 42,10C,1312 43,10D,43 47,104,11 22,20,90,-31,-8 0,21,0,0,2 17,10,7245160 0,D,41 0,A,-3380474 0,B,15124623 0,C,6 65,111,11 31,10C,1308 46,10D,43 45,20,105,-17,-11 0,21,-1,0,0 21,104,11 28,111,11 30,10C,1300 42,10D,41 48,104,11 29,111,11 22,20,125,-18,-10 0,21,-1,0,0 21,10C,1300 40,10D,41 46,104,11 32,111,11 30,10,7245220 0,D,41 0,A,-3380481 0,B,15124625 0,C,6 40,10C,1296 32,20,97,-30,-13 0,21,-1,-1,-2 24,10D,41 47,104,11 32,111,11 34,10C,1285 44,10D,41 46,20,92,-25,-14 0,21,-1,-1,0 20,104,11 27,111,11 32,10C,1273 43,10D,39 46,104,12 29,111,11 22,20,112,-17,-17 0,21,-1,0,-1 19,10C,1265 39,10D,39 57,104,12 29,111,11 30,10C,1257 34,20,109,-22,-10 0,21,-1,0,0 20,10D,39 46,104,12 23,10,7245300 0,D,39 0,A,-3380488 0,B,15124627 0,C,6 39,111,11 31,10C,1250 43,10D,39 36,20,102,-24,-12 0,21,-1,0,0 20,104,12 28,111,11 30,10C,1242 43,10D,38 46,104,12 32,111,11 21,20,104,-27,-10 0,21,0,0,0 21,10C,1230 41,10D,38 45,104,12 41,111,11 29,10C,1226 34,20,100,-23,-7 0,21,-1,0,0 20,10D,38 47,104,12 34,111,11 30,10C,1222 45,10D,38 37,20,98,-32,-16 0,21,-1,0,0 20,104,12 28,111,11 29,10C,1214 47,10D,38 48,104,12 30,111,11 22,20,100,-31,-17 0,21,-1,0,0 20,10C,1214 44,10D,37 49,104,12 31,111,11 31,10C,1218 35,20,109,-21,-13 0,21,0,0,0 20,10D,37 44,104,12 30,111,11 31,10C,1218 44,10D,37 37,20,102,-33,-17 0,21,-1,0,0 21,104,12 27,111,11 39,10C,1218 44,10D,37 47,104,12 33,20,82,-40,-9 0,21,0,0,1 20,111,11 32,10C,1222 45,10D,35 43,10,7245480 0,D,34 0,A,-3380505 0,B,15124631 0,C,6 43,104,12 19,20,81,-39,-20 0,21,0,0,1 21,111,11 27,10C,1234 45,10D,35 46,104,12 39,10,7245500 0,D,34 0,A,-3380506 0,B,15124631 0,C,6 40,111,11 20,20,101,-25,-5 0,21,0,0,-1 19,10C,1238 40,10D,35 46,104,12 31,111,11 30,10C,1238 34,20,94,-26,-6 0,21,0,0,0 20,10D,35 46,104,12 30,111,11 22,10,7245540 0,D,33 0,A,-3380510 0,B,15124632 0,C,6 39,10C,1234 44,10D,33 46,20,103,-24,-16 0,21,0,0,0 20,104,12 27,111,11 22,10,7245560 0,D,33 0,A,-3380511 0,B,15124633 0,C,6 40,10C,1230 45,10D,33 48,104,12 22,20,106,-30,-17 0,21,-1,0,0 18,111,11 21,10,7245580 0,D,32 0,A,-3380513 0,B,15124633 0,C,6 55,10C,1230 41,10D,33 49,104,12 20,20,95,-30,-8 0,21,-1,0,0 20,111,11 20,10,7245600 0,D,32 0,A,-3380515 0,B,15124633 0,C,6 55,10C,1230 46,10D,31 48,104,12 21,20,103,-27,-7 0,21,-1,0,0 21,111,14 28,10C,1222 56,10D,31 49,104,20 28,111,14 21,20,94,-27,-13 0,21,-1,0,0 21,10C,1234 41,10D,31 51,104,24 38,111,14 31,10C,1250 35,20,98,-25,-15 0,21,-1,0,-2 21,10D,31 43,104,27 29,111,14 30,10C,1214 50,10D,30 37,20,104,-21,-19 0,21,-1,0,0 20,104,28 28,111,14 30,10C,1203 46,10D,30 47,104,29 31,111,14 21,20,100,-21,-9 0,21,-1,0,0 21,10C,1207 45,10D,30 48,104,29 32,111,14 30,10C,1207 34,20,104,-22,-7 0,21,-1,0,0 22,10D,30 43,104,29 29,111,14 32,10C,1214 43,10D,30 37,20,98,-19,-7 0,21,0,0,0 21,104,30 28,111,14 38,10C,1214 45,10D,30 46,104,30 22,20,94,-23,5 0,21,-1,0,0 19,111,14 32,10C,1214 42,10D,30 45,104,30 22,10,7245780 0,D,31 0,A,-3380528 0,B,15124637 0,C,6 39,111,14 20,20,95,-17,2 0,21,-1,0,0 19,10C,1218 45,10D,30 44,104,30 31,111,14 30,10C,1230 35,20,105,-18,-34 0,21,-1,0,0 19,10D,30 55,104,29 32,111,15 34,10C,1257 37,10,7245820 0,D,31 0,A,-3380532 0,B,15124638 0,C,7 39,10D,30 34,20,106,-17,-5 0,21,0,0,1 20,104,31 30,111,15 40,10C,1292 43,10D,30 46,104,32 30,20,92,-27,-9 0,21,-1,0,0 20,111,15 29,10C,1304 74,10,7245860 0,D,31 0,A,-3380535 0,B,15124638 0,C,7 39,10D,30 40,20,103,-13,-1 0,21,0,0,0 18,104,33 29,111,15 31,10C,1277 44,10D,30 45,104,34 31,111,15 20,20,105,-14,-3 0,21,-1,0,0 19,10C,1277 42,10D,30 54,104,33 30,111,15 29,10C,1261 34,20,96,-28,-13 0,21,0,0,0 19,10D,30 49,104,33 33,111,13 30,10C,1250 46,10D,30 37,20,95,-22,-6 0,21,-1,0,0 20,104,29 20,10,7245940 0,D,31 0,A,-3380541 0,B,15124640 0,C,7 54,111,13 28,10C,1257 46,10D,30 46,20,96,-22,-18 0,21,-1,0,0 21,104,23 28,111,12 43,10C,1242 46,10D,30 48,104,20 22,20,99,-21,-18 0,21,-2,0,0 20,111,12 32,10C,1234 43,10D,30 48,104,17 32,111,11 27,20,101,-25,-18 0,21,-1,0,0 16,10,7250000 0,D,31 0,A,-3380545 0,B,15124641 0,C,7 66,10C,1234 41,10D,30 48,104,14 31,20,103,-23,-15 0,21,-1,0,-1 16,10,7250020 0,D,30 0,A,-3380547 0,B,15124641 0,C,7 66,111,11 27,10C,1222 46,10D,30 46,104,13 22,20,104,-27,-14 0,21,-1,0,0 15,10,7250040 0,D,30 0,A,-3380548 0,B,15124642 0,C,7 67,111,11 27,10,7250040 0,D,30 0,A,-3380548 0,B,0 0,C,0 39,10C,1210 54,10D,30 38,20,93,-38,-7 0,21,0,0,0 20,104,12 27,111,11 30,10C,1199 44,10D,30 46,104,13 34,111,11 21,20,91,-32,-7 0,21,0,0,0 20,10C,1191 44,10D,30 45,104,13 23,10,7250100 0,D,29 0,A,-3380553 0,B,15124643 0,C,0 38,111,11 31,10C,1183 39,20,92,-39,-20 0,21,-1,0,0 20,10D,29 45,104,13 34,111,11 24,10,7250120 0,D,29 0,A,-3380554 0,B,15124643 0,C,8 39,10C,1175 41,10D,29 37,20,98,-35,-6 0,21,-1,0,-1 19,104,13 28,111,11 31,10C,1167 47,10D,29 49,104,13 27,111,11 22,20,104,-27,-11 0,21,-1,0,0 20,10C,1164 52,10D,29 49,104,13 29,111,11 32,10C,1156 46,20,100,-38,-7 0,21,0,0,0 21,10D,26 47,104,13 34,111,11 41,10C,1144 46,10D,26 38,20,94,-35,-12 0,21,-1,0,0 15,10,7250200 0,D,24 0,A,-3380559 0,B,15124644 0,C,8 67,104,13 26,111,12 32,10C,1074 44,10D,26 41,20,101,-30,-12 0,21,0,0,0 20,104,15 28,111,12 33,10C,1011 44,10D,26 39,10,7250240 0,D,22 0,A,-3380561 0,B,15124645 0,C,8 40,104,17 27,20,110,-25,-15 0,21,0,0,0 20,111,11 27,10C,921 49,10D,22 38,10,7250260 0,D,21 0,A,-3380563 0,B,15124645 0,C,8 39,104,20 28,20,93,-37,-13 0,21,-1,0,0 20,111,11 27,10C,898 46,10D,22 38,10,7250280 0,D,20 0,A,-3380564 0,B,15124645 0,C,8 39,104,20 28,111,11 20,20,86,-42,-16 0,21,-1,0,0 21,10C,871 41,10D,22 47,104,20 29,111,11 29,10C,843 34,20,94,-36,-12 0,21,-1,0,0 20,10D,19 46,104,20 31,111,11 31,10C,816 46,10D,19 37,20,96,-33,-18 0,21,-1,0,0 19,104,21 36,111,11 30,10C,800 47,10D,19 50,104,21 21,20,99,-27,-11 0,21,-1,0,0 19,111,11 30,10C,781 43,10D,19 46,104,22 29,111,11 35,20,102,-23,-10 0,21,-1,0,0 20,10C,769 42,10D,19 39,10,7250380 0,D,17 0,A,-3380568 0,B,15124646 0,C,8 39,104,22 30,111,11 30,10C,777 34,20,108,-19,-16 0,21,-1,0,0 19,10D,17 37,10,7250400 0,D,17 0,A,-3380569 0,B,15124646 0,C,8 39,104,22 32,111,11 29,10C,781 45,10D,17 37,20,100,-25,-15 0,21,-1,0,0 21,104,22 32,111,11 29,10C,789 46,10D,17 52,104,22 21,20,98,-27,-9 0,21,-1,0,0 21,111,11 30,10C,792 46,10D,17 49,104,22 32,111,11 27,20,102,-27,-7 0,21,-1,0,0 20,10C,792 40,10D,15 46,104,22 39,111,11 32,10C,796 34,20,93,-31,-13 0,21,-1,0,0 17,10,7250480 0,D,15 0,A,-3380572 0,B,15124647 0,C,8 65,10D,15 43,104,21 31,111,11 31,10C,808 34,20,93,-28,-14 0,21,-1,0,0 20,10D,15 43,104,21 30,111,12 32,10C,808 43,10D,15 37,20,106,-24,-8 0,21,-1,0,0 20,104,25 28,111,13 50,10C,867 44,10D,14 39,10,7250540 0,D,14 0,A,-3380574 0,B,15124648 0,C,8 43,104,30 21,20,104,-22,-13 0,21,-1,0,0 19,111,13 31,10C,996 44,10D,14 50,104,29 30,111,14 26,20,95,-29,-11 0,21,-1,0,0 20,10C,1089 44,10D,14 55,104,33 30,111,16 29,10C,1203 35,20,104,-19,-10 0,21,-1,0,0 20,10D,14 46,104,37 29,111,16 23,10,7250600 0,D,13 0,A,-3380576 0,B,15124648 0,C,8 39,10C,1355 46,20,102,-16,-13 0,21,-1,0,0 19,10D,13 46,104,38 30,111,16 22,10,7250620 0,D,13 0,A,-3380577 0,B,15124648 0,C,8 40,10C,1441 41,10D,13 36,20,103,-16,-7 0,21,-1,0,0 20,104,37 26,111,16 30,10C,1492 47,10D,13 55,104,36 25,20,104,-13,-8 0,21,-1,0,0 19,111,17 31,10C,1496 34,10,7250660 0,D,14 0,A,-3380579 0,B,15124649 0,C,8 40,10D,13 43,104,37 33,111,17 21,20,98,-12,-9 0,21,-1,0,0 19,10C,1503 50,10D,13 59,104,40 30,111,17 29,10C,1535 34,20,102,-13,-9 0,21,-1,0,0 20,10D,13 48,104,43 34,111,18 30,10C,1585 45,10D,13 37,20,105,-10,-11 0,21,-1,0,0 21,104,46 27,111,19 29,10C,1632 43,10D,13 49,104,50 30,10,7250740 0,D,16 0,A,-3380582 0,B,15124649 0,C,8 39,111,19 20,20,108,-9,-8 0,21,-1,0,0 19,10C,1707 45,10D,15 44,104,50 35,111,19 21,10,7250760 0,D,16 0,A,-3380582 0,B,15124649 0,C,8 39,10C,1699 32,20,106,-7,-8 0,21,0,0,0 21,10D,15 43,104,51 31,111,19 32,10,7250780 0,D,17 0,A,-3380583 0,B,15124650 0,C,8 39,10C,1625 37,20,106,-6,-10 0,21,-1,0,0 20,10D,15 46,104,52 29,111,19 23,10,7250800 0,D,18 0,A,-3380584 0,B,15124650 0,C,8 39,10C,1550 45,10D,17 36,20,92,-18,-15 0,21,-1,0,0 20,104,55 26,111,20 30,10C,1539 44,10D,17 45,104,57 30,111,20 22,20,98,-15,-16 0,21,-1,0,-1 18,10C,1527 42,10D,17 46,104,60 34,111,20 30,10C,1507 38,20,97,-17,-11 0,21,-1,0,0 19,10D,17 48,104,62 39,111,20 33,10C,1472 43,10D,17 37,20,107,-11,-8 0,21,-1,0,0 20,104,63 41,10,7250880 0,D,21 0,A,-3380588 0,B,15124651 0,C,8 39,111,20 28,10C,1371 46,10D,19 36,20,99,-20,-18 0,21,-1,0,0 21,104,67 32,111,20 29,10C,1289 43,10D,19 49,104,69 28,20,112,1,-19 0,21,-1,0,-1 18,10,7250920 0,D,22 0,A,-3380590 0,B,15124651 0,C,8 64,111,21 29,10C,1277 42,10D,19 48,104,74 21,20,105,-13,-20 0,21,-1,0,0 17,10,7250940 0,D,23 0,A,-3380591 0,B,15124652 0,C,8 65,111,21 31,10C,1289 49,10D,22 38,20,98,-10,-14 0,21,0,0,0 21,104,74 27,111,21 30,10C,1292 42,10D,22 48,104,75 36,20,124,0,-2 0,21,0,0,0 19,111,22 41,10C,1324 43,10D,22 44,104,76 30,111,23 23,10,7251000 0,D,25 0,A,-3380595 0,B,15124652 0,C,8 38,10C,1339 32,20,105,-10,-8 0,21,-1,0,0 20,10D,22 47,104,80 32,111,23 30,10C,1382 43,10D,25 37,20,90,-26,-8 0,21,-1,0,-1 21,104,81 26,111,23 32,10C,1410 53,10D,25 45,104,81 27,20,123,6,-21 0,21,-1,0,0 19,111,23 31,10C,1417 42,10D,25 38,10,7251060 0,D,27 0,A,-3380599 0,B,15124653 0,C,8 43,104,81 29,20,109,-4,-12 0,21,-1,0,-1 19,111,24 27,10C,1433 45,10D,25 39,10,7251080 0,D,28 0,A,-3380601 0,B,15124654 0,C,8 39,104,81 32,20,76,-29,-4 0,21,0,0,2 21,111,23 30,10C,1476 47,10D,27 36,10,7251100 0,D,29 0,A,-3380602 0,B,15124654 0,C,8 39,104,80 28,111,24 22,20,155,23,-29 0,21,-1,0,0 19,10C,1503 43,10D,27 39,10,7251120 0,D,30 0,A,-3380603 0,B,15124655 0,C,8 39,104,81 27,111,24 30,10C,1496 34,20,104,-9,-3 0,21,0,0,1 19,10D,27 49,104,82 22,10,7251140 0,D,30 0,A,-3380605 0,B,15124655 0,C,9 39,111,25 32,10C,1519 39,20,105,0,-10 0,21,0,0,0 18,10D,27 44,104,85 34,111,25 29,10C,1539 47,10D,30 37,20,102,-13,-4 0,21,0,1,1 18,104,85 29,111,25 30,10C,1550 42,10D,30 59,104,85 24,20,98,-15,-14 0,21,0,1,-1 19,111,25 33,10C,1535 35,10,7251200 0,D,30 0,A,-3380610 0,B,15124656 0,C,9 39,10D,30 47,104,85 30,20,102,-16,-8 0,21,0,0,0 20,111,25 20,10,7251220 0,D,34 0,A,-3380611 0,B,15124657 0,C,9 54,10C,1511 41,10D,33 45,104,85 22,20,105,-9,-4 0,21,0,0,-1 19,111,25 21,10,7251240 0,D,34 0,A,-3380613 0,B,15124657 0,C,9 54,10C,1531 45,10D,33 60,104,86 22,20,107,1,-12 0,21,0,0,0 20,111,25 29,10C,1570 42,10D,33 46,104,86 29,111,25 32,10C,1542 34,20,112,-5,-12 0,21,0,0,0 17,10,7251280 0,D,36 0,A,-3380617 0,B,15124658 0,C,9 65,10D,33 54,104,87 27,111,25 35,10C,1542 34,20,95,-12,0 0,21,0,0,0 16,10,7251300 0,D,36 0,A,-3380618 0,B,15124659 0,C,9 66,10D,35 46,104,86 31,111,25 29,10C,1527 35,20,109,-12,-4 0,21,0,0,0 20,10D,35 43,104,86 31,111,24 30,10C,1527 35,10,7251340 0,D,38 0,A,-3380622 0,B,15124660 0,C,9 39,10D,35 36,20,100,-14,1 0,21,0,0,-1 23,104,78 27,111,22 32,10C,1507 45,10,7251360 0,D,39 0,A,-3380624 0,B,15124661 0,C,9 38,10D,35 35,20,101,-21,-4 0,21,0,0,2 21,104,74 28,111,22 30,10C,1480 35,10,7251380 0,D,39 0,A,-3380626 0,B,15124661 0,C,9 40,10D,37 47,104,74 30,20,96,-13,-6 0,21,0,-1,-1 19,111,22 30,10C,1468 36,10,7251400 0,D,40 0,A,-3380628 0,B,15124662 0,C,9 40,10D,37 43,104,73 29,111,22 31,20,102,-20,5 0,21,0,0,2 18,10C,1457 34,10,7251420 0,D,40 0,A,-3380630 0,B,15124663 0,C,9 43,10D,37 43,104,74 34,111,22 28,10C,1441 33,20,94,-24,-16 0,21,0,0,0 19,10D,39 48,104,74 30,111,22 29,10C,1445 44,10D,39 37,20,107,-8,-9 0,21,0,-1,0 22,104,75 26,111,22 34,10C,1441 42,10D,39 51,104,74 24,10,7251480 0,D,42 0,A,-3380636 0,B,15124666 0,C,9 40,111,22 18,20,96,-17,-17 0,21,0,-1,0 21,10C,1441 40,10D,39 57,104,74 23,10,7251500 0,D,42 0,A,-3380638 0,B,15124666 0,C,9 40,111,22 19,20,88,-26,-9 0,21,-1,0,0 19,10C,1441 46,10D,41 47,104,74 30,111,22 30,10C,1441 35,20,95,-20,-14 0,21,-1,0,0 19,10D,41 47,104,75 28,111,22 27,10,7251540 0,D,43 0,A,-3380642 0,B,15124668 0,C,9 52,10C,1441 31,20,93,-20,-10 0,21,-1,0,-1 20,10D,41 46,104,74 29,111,22 31,10C,1437 43,10D,41 37,20,101,-16,-10 0,21,-1,0,-1 20,104,74 28,111,22 44,10C,1437 43,10D,41 50,104,74 21,20,55,-44,-20 0,21,-1,0,-1 20,111,22 27,10C,1441 52,10D,43 38,10,7251600 0,D,44 0,A,-3380648 0,B,15124671 0,C,9 38,104,74 25,20,103,-17,-3 0,21,-1,-1,-1 19,111,23 28,10C,1433 55,10D,43 38,10,7251620 0,D,44 0,A,-3380650 0,B,15124672 0,C,9 39,104,82 24,20,110,-16,-4 0,21,-1,0,2 20,111,25 31,10C,1453 45,10D,43 43,10,7251640 0,D,45 0,A,-3380652 0,B,15124673 0,C,9 39,104,84 23,20,122,-11,0 0,21,-1,-1,0 21,111,25 27,10C,1472 45,10D,44 39,10,7251660 0,D,45 0,A,-3380655 0,B,15124674 0,C,9 39,104,85 27,111,26 22,20,136,3,-13 0,21,-2,0,1 20,10C,1496 42,10D,44 46,104,86 30,111,26 31,10C,1527 33,20,105,-27,-11 0,21,-1,0,0 21,10D,44 54,104,87 24,10,7251700 0,D,46 0,A,-3380659 0,B,15124675 0,C,9 39,111,26 27,10C,1546 35,20,74,-30,-16 0,21,-1,0,0 20,10D,44 45,104,88 30,111,26 31,10C,1574 43,10D,45 38,20,113,-8,-14 0,21,-2,0,0 23,104,88 30,111,26 39,10C,1601 48,10D,45 49,104,87 22,20,156,29,-3 0,21,-2,1,-2 19,111,27 30,10C,1609 44,10D,45 49,104,88 40,111,27 21,20,106,-9,-11 0,21,-3,0,-2 20,10C,1640 40,10D,45 38,10,7251780 0,D,48 0,A,-3380668 0,B,15124679 0,C,9 40,104,88 31,111,27 29,10C,1636 34,20,112,-9,-27 0,21,-2,0,3 18,10D,47 48,10,7251800 0,D,48 0,A,-3380670 0,B,15124680 0,C,9 38,104,85 32,111,24 30,10C,1628 34,20,104,-21,-20 0,21,-2,0,1 19,10D,47 37,10,7251820 0,D,49 0,A,-3380673 0,B,15124681 0,C,9 40,104,81 31,111,23 35,10C,1621 40,20,101,-19,-20 0,21,-2,0,1 20,10D,47 37,10,7251840 0,D,49 0,A,-3380675 0,B,15124682 0,C,9 39,104,80 27,111,23 30,10C,1597 46,10D,47 37,20,91,-16,-30 0,21,-3,0,-1 20,104,80 28,111,24 30,10C,1585 43,10D,49 48,104,80 31,20,101,-14,-16 0,21,-2,0,0 21,111,24 27,10C,1570 43,10D,49 46,104,80 31,111,24 27,10,7251900 0,D,50 0,A,-3380682 0,B,15124684 0,C,9 39,10C,1566 42,20,110,-18,-12 0,21,-2,1,1 20,10D,49 47,104,81 27,111,24 43,10C,1554 44,10D,49 37,20,102,-19,-20 0,21,-3,0,-1 21,104,80 27,111,23 31,10C,1527 42,10D,50 46,104,81 30,111,24 21,20,107,-19,-19 0,21,-3,0,-1 20,10C,1515 39,10D,50 46,104,82 31,111,24 45,10C,1515 34,20,105,-21,-33 0,21,-2,1,0 20,10D,50 43,104,83 22,10,7251980 0,D,51 0,A,-3380692 0,B,15124686 0,C,9 39,111,24 31,10C,1519 43,10D,50 37,20,86,-25,-12 0,21,-3,1,0 19,104,84 28,111,24 31,10C,1523 56,10D,50 45,104,82 22,20,82,-34,-20 0,21,-3,0,0 18,111,24 33,10C,1531 43,10D,50 50,104,82 30,111,24 27,20,122,-11,-13 0,21,-3,0,2 20,10C,1531 34,10,7252040 0,D,51 0,A,-3380700 0,B,15124688 0,C,9 43,10D,50 44,104,82 29,111,24 31,10C,1539 35,20,130,4,-31 0,21,-4,0,-1 20,10D,50 44,104,82 30,111,24 33,10C,1542 45,10D,50 37,20,114,-18,-20 0,21,-4,1,0 21,104,82 31,111,24 34,10C,1542 46,10D,50 49,104,82 30,20,104,-14,-37 0,21,-4,0,-4 16,10,7252100 0,D,51 0,A,-3380708 0,B,15124689 0,C,9 66,111,24 38,10C,1546 45,10D,50 46,20,108,-10,-30 0,21,-5,0,1 17,10,7252120 0,D,51 0,A,-3380710 0,B,15124689 0,C,9 65,104,82 30,111,24 32,10C,1546 44,10D,50 37,20,109,-12,-21 0,21,-3,0,1 20,104,82 28,111,24 33,10C,1542 49,10D,50 39,10,7252160 0,D,51 0,A,-3380715 0,B,15124689 0,C,9 39,104,82 19,20,116,-10,-16 0,21,-3,0,2 21,111,24 30,10C,1542 44,10D,50 48,104,83 32,111,24 27,20,108,-3,0 0,21,-3,2,-2 19,10C,1539 44,10D,50 43,10,7252200 0,D,51 0,A,-3380720 0,B,15124689 0,C,9 39,104,82 28,111,24 27,20,103,-15,-15 0,21,-3,1,0 19,10C,1539 49,10D,50 47,104,83 34,111,24 34,10C,1542 35,20,98,-14,-16 0,21,-2,0,-2 19,10D,50 46,104,83 27,10,7252240 0,D,51 0,A,-3380726 0,B,15124689 0,C,9 39,111,25 29,10C,1535 42,20,92,-30,-14 0,21,-2,-1,0 24,10D,50 42,104,87 31,111,26 43,10C,1554 43,10D,50 37,20,114,-20,-49 0,21,-3,-2,0 19,104,88 30,111,26 35,10C,1566 43,10D,50 46,104,86 29,111,24 22,20,118,3,-9 0,21,-2,0,1 18,10C,1570 41,10D,50 50,104,83 34,111,24 30,10C,1578 43,20,121,-1,-8 0,21,-3,1,-1 20,10D,50 49,104,80 42,111,21 33,10C,1562 42,10D,50 37,20,109,-2,-9 0,21,-3,0,0 21,104,69 28,111,20 30,10C,1531 43,10D,50 45,104,61 30,111,16 21,20,102,-20,-16 0,21,-3,0,1 17,10,7252360 0,D,50 0,A,-3380741 0,B,15124688 0,C,9 65,10C,1503 44,10D,50 48,104,40 26,20,112,-19,-13 0,21,-3,0,0 16,10,7252380 0,D,50 0,A,-3380743 0,B,15124687 0,C,9 66,111,14 28,10C,1453 45,10D,50 47,104,28 20,20,109,-16,-23 0,21,-3,0,2 21,111,14 27,10C,1421 43,10D,50 47,104,25 40,111,13 22,20,106,-12,-12 0,21,-3,0,0 17,10,7252420 0,D,50 0,A,-3380748 0,B,15124686 0,C,15 66,10C,1406 44,10D,49 46,104,20 28,20,95,-29,-13 0,21,-3,1,1 19,111,12 32,10C,1382 46,10D,49 44,104,20 31,111,13 29,10C,1382 35,20,100,-25,-19 0,21,-3,0,0 21,10D,49 43,104,20 31,111,14 30,10C,1378 53,10,7252480 0,D,47 0,A,-3380755 0,B,15124685 0,C,15 45,10D,49 36,20,106,-15,-27 0,21,-2,-1,1 20,104,26 32,111,15 34,10C,1382 37,10,7252500 0,D,47 0,A,-3380758 0,B,15124684 0,C,16 40,10D,47 40,20,96,-26,-2 0,21,-2,0,2 18,104,28 30,111,15 40,10C,1375 43,10D,47 45,104,30 27,20,105,-17,-18 0,21,-2,0,0 18,111,15 26,10C,1382 47,10D,47 49,104,31 34,111,15 26,20,101,-22,-11 0,21,-2,0,-1 19,10C,1378 40,10D,47 38,10,7252560 0,D,45 0,A,-3380764 0,B,15124683 0,C,16 41,104,32 26,111,16 34,10C,1375 34,20,98,-20,-5 0,21,-2,0,-1 19,10D,45 41,10,7252580 0,D,44 0,A,-3380766 0,B,15124682 0,C,16 41,104,34 31,111,16 30,10C,1367 38,20,96,-21,-12 0,21,-2,0,0 18,10D,45 45,104,38 33,111,18 43,10C,1378 42,10D,45 37,20,112,-10,-14 0,21,-1,-1,0 20,104,51 38,111,20 30,10C,1386 46,10D,45 49,104,64 20,20,104,-17,-17 0,21,-1,0,1 22,111,21 28,10C,1406 47,10D,43 49,104,71 27,111,21 30,20,96,-16,-8 0,21,-1,0,-1 17,10,7252660 0,D,42 0,A,-3380775 0,B,15124680 0,C,16 66,10C,1421 45,10D,43 48,104,80 26,20,95,-24,-8 0,21,-2,0,1 17,10,7252680 0,D,42 0,A,-3380777 0,B,15124679 0,C,16 66,111,24 33,10C,1453 42,10D,43 49,20,98,-19,-13 0,21,-1,0,1 20,104,83 28,111,25 30,10C,1484 43,10D,43 45,104,83 29,111,25 22,20,110,-3,-14 0,21,-1,-1,0 15,10,7252720 0,D,42 0,A,-3380781 0,B,15124678 0,C,16 68,10C,1507 50,10D,42 46,104,84 22,20,117,-2,-11 0,21,-2,0,0 15,10,7252740 0,D,42 0,A,-3380783 0,B,15124677 0,C,16 67,111,25 32,10C,1531 44,10D,42 43,20,108,-1,-14 0,21,-2,0,-3 21,104,89 27,111,27 30,10C,1546 46,10D,42 48,104,89 23,10,7252780 0,D,42 0,A,-3380787 0,B,15124676 0,C,16 40,111,27 23,20,107,-12,-9 0,21,-1,0,2 20,10C,1566 44,10D,42 44,104,88 23,10,7252800 0,D,42 0,A,-3380789 0,B,15124675 0,C,16 41,111,27 28,20,119,11,-15 0,21,-1,0,-1 20,10C,1582 43,10D,42 45,104,88 23,10,7252820 0,D,42 0,A,-3380791 0,B,15124674 0,C,16 41,111,27 28,20,87,-28,-20 0,21,-1,-1,1 20,10C,1585 44,10D,42 54,104,86 22,10,7252840 0,D,42 0,A,-3380793 0,B,15124674 0,C,16 41,111,25 19,20,107,-1,-8 0,21,-1,0,-2 20,10C,1585 44,10D,42 44,104,83 23,10,7252860 0,D,42 0,A,-3380795 0,B,15124673 0,C,16 41,111,25 29,20,102,-5,-18 0,21,-2,0,0 24,10C,1566 45,10D,42 48,104,72 31,10,7252880 0,D,42 0,A,-3380797 0,B,15124672 0,C,16 40,111,18 20,20,95,-18,-18 0,21,-2,0,0 19,10C,1515 44,10D,42 45,104,55 22,10,7252900 0,D,43 0,A,-3380800 0,B,15124671 0,C,16 41,111,18 28,10C,1464 33,20,109,-8,-21 0,21,-2,0,1 20,10D,42 46,104,56 22,10,7252920 0,D,42 0,A,-3380802 0,B,15124671 0,C,16 42,111,20 31,10C,1425 39,20,96,-18,-16 0,21,-2,0,0 21,10D,42 45,104,61 32,10,7252940 0,D,42 0,A,-3380804 0,B,15124670 0,C,16 40,111,20 28,10C,1402 34,20,110,-14,-15 0,21,-1,0,0 24,10D,42 46,104,64 23,10,7252960 0,D,42 0,A,-3380806 0,B,15124669 0,C,16 40,111,20 28,10C,1382 43,20,86,-26,-10 0,21,-2,0,-1 19,10D,42 42,104,66 42,111,20 34,10C,1367 47,10D,42 37,20,87,-21,-16 0,21,-2,0,0 19,104,65 31,111,18 22,10,7253000 0,D,41 0,A,-3380810 0,B,15124668 0,C,16 40,10C,1347 44,10D,42 46,20,118,-3,-15 0,21,-2,0,-1 19,104,57 30,111,18 22,10,7253020 0,D,41 0,A,-3380812 0,B,15124667 0,C,16 41,10C,1316 40,10D,42 46,104,49 21,20,95,-23,-12 0,21,-1,1,0 18,111,14 33,10C,1292 56,10D,42 46,104,37 29,111,14 21,20,98,-29,-20 0,21,-1,0,-1 20,10C,1277 34,10,7253060 0,D,41 0,A,-3380816 0,B,15124665 0,C,16 44,10D,42 43,104,35 29,111,17 32,10C,1269 46,20,108,-16,-14 0,21,-1,0,0 21,10D,41 47,104,45 34,111,20 32,10C,1308 45,10D,41 38,20,115,-6,-14 0,21,-1,0,0 17,10,7253100 0,D,40 0,A,-3380819 0,B,15124664 0,C,16 66,104,60 31,111,22 32,10C,1351 43,10D,41 38,20,98,-14,-6 0,21,-1,0,-1 19,104,75 28,111,23 32,10C,1343 44,10D,39 52,104,77 29,20,105,-14,-10 0,21,-2,1,-1 21,111,23 32,10C,1351 46,10D,39 46,104,78 35,111,23 20,20,109,-4,-1 0,21,-2,1,0 21,10C,1367 44,10D,39 48,104,78 30,111,23 31,10C,1390 34,20,91,-27,-12 0,21,-1,0,0 19,10D,39 44,104,78 32,111,23 30,10C,1410 35,10,7253200 0,D,39 0,A,-3380829 0,B,15124660 0,C,16 40,10D,39 35,20,98,-15,-12 0,21,-1,0,0 20,104,81 30,111,24 32,10C,1441 36,10,7253220 0,D,38 0,A,-3380830 0,B,15124659 0,C,16 40,10D,38 44,20,96,-13,-13 0,21,-2,0,0 21,104,81 34,111,24 34,10C,1460 35,10,7253240 0,D,38 0,A,-3380832 0,B,15124658 0,C,16 41,10D,38 44,20,87,-18,-16 0,21,-2,0,0 24,104,81 29,111,24 28,10,7253260 0,D,38 0,A,-3380834 0,B,15124657 0,C,16 40,10C,1476 80,20,109,0,-12 0,21,-1,0,0 19,10D,38 41,104,80 31,111,24 31,10C,1464 47,10D,38 37,20,97,-19,-15 0,21,-1,0,-1 19,104,80 33,111,24 35,10C,1480 43,10D,38 46,104,80 25,20,98,-10,-10 0,21,-2,0,0 20,111,24 29,10C,1476 43,10D,38 40,10,7253320 0,D,38 0,A,-3380839 0,B,15124654 0,C,23 40,104,80 28,20,111,0,-5 0,21,-2,0,-1 19,111,24 30,10C,1480 43,10D,38 40,10,7253340 0,D,38 0,A,-3380841 0,B,15124653 0,C,23 40,104,80 33,20,96,-14,-10 0,21,-2,0,0 19,111,24 30,10C,1484 43,10D,38 46,104,80 30,111,22 32,10C,1484 34,20,107,-11,-8 0,21,-2,0,0 20,10D,38 44,104,67 29,111,18 34,10C,1468 46,10D,38 37,20,105,-16,-8 0,21,-2,0,0 20,104,52 20,10,7253400 0,D,38 0,A,-3380847 0,B,15124651 0,C,23 55,111,15 32,10C,1441 45,10D,38 37,20,93,-19,-19 0,21,-2,0,-1 22,104,43 27,111,19 34,10C,1421 42,10D,38 49,104,56 28,20,101,-12,-10 0,21,-2,0,-1 21,111,20 44,10C,1367 42,10D,38 46,104,64 41,111,20 21,20,107,-13,-7 0,21,-2,0,0 21,10C,1335 40,10D,38 74,104,68 32,111,21 29,10C,1320 34,20,105,-16,-1 0,21,-2,0,0 17,10,7253480 0,D,38 0,A,-3380853 0,B,15124647 0,C,23 67,10D,38 43,104,74 32,111,23 23,10,7253500 0,D,37 0,A,-3380855 0,B,15124646 0,C,23 42,10C,1335 31,20,108,-12,-9 0,21,-2,0,0 20,10D,37 47,104,80 32,111,24 33,10C,1371 44,10D,37 37,20,96,-29,-12 0,21,-2,0,1 20,104,81 27,111,24 32,10C,1398 43,10D,37 39,10,7253540 0,D,37 0,A,-3380859 0,B,15124644 0,C,24 41,104,82 18,20,87,-18,-9 0,21,-2,0,-1 21,111,25 38,10C,1425 44,10D,36 39,10,7253560 0,D,37 0,A,-3380860 0,B,15124643 0,C,24 44,104,83 29,20,110,1,-14 0,21,-2,0,-1 19,111,25 30,10C,1464 44,10D,36 45,104,83 29,111,25 30,10C,1480 34,20,81,-32,-12 0,21,-2,0,0 19,10D,36 55,104,84 32,111,26 30,10C,1503 46,10D,36 37,20,99,-13,-15 0,21,-2,0,0 20,104,88 29,111,27 33,10C,1535 47,10D,36 48,104,89 31,20,107,-8,-21 0,21,-2,0,0 20,111,27 29,10C,1562 46,10D,37 49,104,89 29,111,27 31,20,116,3,-10 0,21,-2,0,1 20,10C,1578 41,10D,37 50,104,89 38,111,27 31,10C,1585 35,20,129,9,-11 0,21,-2,0,-1 20,10D,37 43,104,89 30,111,27 32,10C,1593 45,10D,37 37,20,97,-7,-24 0,21,-3,1,-2 20,104,89 28,111,27 37,10C,1601 43,10D,38 44,104,89 22,10,7253720 0,D,37 0,A,-3380873 0,B,15124634 0,C,24 42,111,28 18,20,124,8,-3 0,21,-2,0,0 21,10C,1609 44,10D,38 47,104,92 31,111,29 31,10C,1617 33,20,117,11,-12 0,21,-3,0,0 21,10D,38 46,104,93 35,111,30 40,10C,1628 35,10,7253760 0,D,37 0,A,-3380877 0,B,15124631 0,C,25 41,10D,38 35,20,107,-5,-13 0,21,-2,0,0 20,104,94 29,111,30 34,10C,1632 44,10D,39 46,104,93 33,20,96,0,0 0,21,-2,0,-1 20,111,30 29,10C,1652 48,10D,39 50,104,94 32,111,30 22,20,124,24,-6 0,21,-1,0,-2 19,10C,1652 41,10D,39 37,10,7253820 0,D,40 0,A,-3380881 0,B,15124627 0,C,25 41,104,94 28,111,30 29,10C,1656 34,20,100,-20,-16 0,21,-1,0,4 19,10D,39 36,10,7253840 0,D,40 0,A,-3380883 0,B,15124625 0,C,25 41,104,94 28,111,30 34,10C,1664 41,10D,40 37,20,86,-26,-8 0,21,-1,0,1 20,104,96 41,111,32 34,10C,1664 46,10D,40 47,104,98 22,20,96,-14,-14 0,21,-1,0,-2 17,10,7253880 0,D,41 0,A,-3380886 0,B,15124622 0,C,25 66,111,32 27,10C,1671 45,10D,40 47,20,97,-17,-4 0,21,0,0,1 25,104,98 28,111,33 29,10C,1687 46,10D,40 47,104,98 24,10,7253920 0,D,41 0,A,-3380890 0,B,15124619 0,C,25 41,111,34 19,20,93,-16,-9 0,21,-2,0,-2 20,10C,1703 41,10D,40 47,104,100 31,111,34 34,10C,1722 45,20,77,-31,-18 0,21,-1,0,2 19,10D,40 46,104,98 29,111,34 29,10C,1734 49,10D,40 46,20,108,-3,-9 0,21,-1,0,-3 19,104,100 27,111,35 31,10C,1742 44,10D,40 50,104,100 29,111,35 22,20,115,-2,-6 0,21,-1,0,-2 19,10C,1761 39,10D,41 56,104,100 33,111,35 42,10C,1773 34,20,105,-10,-11 0,21,-1,0,-1 24,10D,41 49,104,100 33,111,38 29,10C,1792 46,10D,41 37,20,99,-19,-14 0,21,-1,0,-3 21,104,100 19,10,7254040 0,D,43 0,A,-3380900 0,B,15124610 0,C,25 56,111,37 31,10C,1808 46,10D,41 37,20,110,8,6 0,21,0,0,0 21,104,100 18,10,7254060 0,D,43 0,A,-3380902 0,B,15124609 0,C,25 56,111,37 37,10C,1824 35,10,7254065 0,D,43 0,A,26666 0,B,88333 0,C,199 36,10D,43 35,20,109,-14,-30 0,21,-1,0,0 20,104,100 28,111,37 29,10C,1839 47,10D,43 44,104,100 22,10,7254100 0,D,43 0,A,-3380905 0,B,15124606 0,C,199 43,111,37 20,20,96,-3,-1 0,21,-1,0,1 23,10C,1835 41,10D,43 47,104,100 24,10,7254120 0,D,44 0,A,-3380907 0,B,15124604 0,C,199 42,111,36 24,20,111,3,-15 0,21,-2,0,-2 20,10C,1832 44,10D,44 44,104,100 22,10,7254140 0,D,44 0,A,-3380909 0,B,15124603 0,C,199 43,111,36 28,20,88,-18,0 0,21,-1,0,-2 19,10C,1828 45,10D,44 58,104,100 21,10,7254160 0,D,45 0,A,-3380911 0,B,15124601 0,C,199 42,111,36 19,20,114,2,-24 0,21,-1,-1,1 20,10C,1816 53,10D,44 46,104,100 21,10,7254180 0,D,45 0,A,-3380913 0,B,15124599 0,C,199 42,111,36 19,20,135,19,-12 0,21,-1,0,-1 24,10C,1804 44,10D,44 44,104,100 23,10,7254200 0,D,45 0,A,-3380915 0,B,15124598 0,C,199 42,111,36 23,20,122,0,0 0,21,-1,0,-2 20,10C,1804 41,10D,45 47,104,100 23,10,7254220 0,D,45 0,A,-3380916 0,B,15124596 0,C,199 41,111,36 28,20,118,-4,-19 0,21,-1,0,-4 20,10C,1804 40,10D,45 48,104,100 23,10,7254240 0,D,46 0,A,-3380918 0,B,15124595 0,C,199 42,111,36 28,20,93,-13,-2 0,21,-1,0,-3 19,10C,1792 40,10D,45 48,104,100 23,10,7254260 0,D,46 0,A,-3380920 0,B,15124593 0,C,199 43,111,36 27,10C,1796 34,20,118,0,-10 0,21,-1,-1,-2 24,10D,46 52,104,100 22,10,7254280 0,D,46 0,A,-3380922 0,B,15124591 0,C,199 43,111,34 31,10C,1796 35,20,79,-30,-4 0,21,0,0,1 19,10D,46 45,104,96 31,111,31 30,10C,1761 43,10D,46 37,20,104,-2,-9 0,21,0,-1,2 20,104,95 29,111,30 40,10C,1726 37,10,7254320 0,D,46 0,A,-3380926 0,B,15124588 0,C,31 40,10D,46 34,20,82,-40,-12 0,21,-1,0,-1 20,104,95 30,111,30 30,10C,1687 43,10D,46 51,104,96 29,111,30 21,20,110,3,-8 0,21,-1,0,0 18,10C,1675 42,10D,46 50,104,96 30,111,32 42,10C,1667 34,20,107,1,-4 0,21,-1,0,0 23,10D,46 46,10,7254380 0,D,48 0,A,-3380932 0,B,15124583 0,C,31 40,104,100 28,111,33 41,10C,1695 34,20,129,25,0 0,21,-1,0,0 20,10D,46 36,10,7254400 0,D,48 0,A,-3380934 0,B,15124582 0,C,31 41,104,100 28,111,33 33,10C,1722 40,10D,47 38,20,78,-39,-15 0,21,-1,0,-1 21,104,100 31,111,33 33,10C,1742 46,10D,47 48,104,100 22,20,127,26,2 0,21,-1,0,-1 16,10,7254440 0,D,48 0,A,-3380938 0,B,15124578 0,C,31 67,111,32 31,10C,1753 45,10D,47 43,20,93,-6,4 0,21,0,0,2 19,104,98 28,111,32 34,10C,1761 46,10D,47 43,104,98 28,10,7254480 0,D,48 0,A,-3380942 0,B,15124575 0,C,31 40,111,32 28,20,83,-45,-9 0,21,-1,0,1 20,10C,1769 43,10D,48 44,104,98 24,10,7254500 0,D,49 0,A,-3380944 0,B,15124573 0,C,31 41,111,32 28,10C,1773 33,20,107,-5,-13 0,21,0,1,-4 21,10D,48 45,104,97 31,111,33 29,10C,1769 56,10D,48 37,20,106,-8,-13 0,21,-1,3,1 19,104,97 30,111,33 33,10C,1769 44,10D,48 46,104,96 29,111,33 22,20,72,-34,-20 0,21,-1,0,-3 18,10C,1777 41,10D,49 50,104,98 30,111,32 30,10C,1781 33,20,89,-26,-14 0,21,-1,0,-5 20,10D,49 48,104,98 34,111,33 47,10C,1781 42,10D,49 36,20,99,-17,-16 0,21,-1,-1,3 21,104,97 28,111,32 30,10C,1765 46,10D,49 49,104,98 29,111,32 20,20,119,16,-6 0,21,-1,-1,2 17,10,7254620 0,D,50 0,A,-3380956 0,B,15124563 0,C,31 66,10C,1753 45,10D,50 47,104,98 24,10,7254640 0,D,50 0,A,-3380959 0,B,15124561 0,C,31 41,111,32 18,20,106,-5,-16 0,21,-1,0,-2 21,10C,1757 41,10D,50 47,104,98 33,111,32 31,10C,1750 35,20,103,5,-4 0,21,-1,0,2 19,10D,50 43,104,97 41,111,30 31,10C,1750 44,10D,50 37,20,87,-23,-9 0,21,0,-1,4 19,104,93 40,111,28 32,10C,1718 48,10D,51 49,104,90 30,20,130,8,-5 0,21,-1,0,-1 20,111,27 30,10C,1679 46,10D,51 37,10,7254720 0,D,51 0,A,-3380967 0,B,15124554 0,C,31 41,104,91 28,20,101,-16,-16 0,21,-1,-1,0 19,111,26 31,10C,1648 40,10,7254740 0,D,51 0,A,-3380969 0,B,15124553 0,C,31 40,10D,51 44,104,87 26,20,93,-19,-27 0,21,-2,0,-2 20,111,26 30,10C,1628 43,10D,51 46,10,7254760 0,D,52 0,A,-3380972 0,B,15124551 0,C,31 41,104,80 23,20,92,-28,-28 0,21,-2,0,-2 20,111,17 29,10C,1570 40,10,7254780 0,D,52 0,A,-3380974 0,B,15124549 0,C,31 45,10D,52 47,104,45 21,20,109,-12,-9 0,21,-1,0,0 20,111,15 38,10C,1492 44,10D,52 46,104,34 34,111,14 22,20,102,-36,10 0,21,-1,1,1 20,10C,1457 42,10D,52 46,104,29 30,111,14 31,10C,1421 34,20,92,-28,-7 0,21,-1,0,-1 19,10D,51 46,104,26 31,111,13 31,10C,1398 42,10D,51 37,20,101,-28,-13 0,21,-1,0,2 20,104,23 30,111,13 26,10,7254860 0,D,51 0,A,-3380982 0,B,15124542 0,C,31 41,10C,1375 41,10D,51 42,20,117,-7,-9 0,21,0,0,0 20,104,20 28,111,12 47,10C,1335 36,10,7254880 0,D,51 0,A,-3380984 0,B,15124541 0,C,36 41,10D,51 39,20,89,-32,-5 0,21,-1,0,0 19,104,16 40,111,12 23,10,7254900 0,D,50 0,A,-3380986 0,B,15124539 0,C,36 40,10C,1324 41,10D,49 37,20,89,-29,-4 0,21,-1,0,0 19,104,14 27,111,11 34,10C,1316 44,10D,49 49,104,13 29,20,97,-26,-13 0,21,-1,0,0 19,111,11 30,10C,1285 36,10,7254940 0,D,49 0,A,-3380991 0,B,15124536 0,C,36 40,10D,49 44,104,12 30,111,11 21,20,113,-17,-8 0,21,-1,0,-1 19,10C,1265 41,10D,49 49,104,12 30,111,11 31,10C,1253 33,20,103,-15,-14 0,21,-1,0,-1 19,10D,47 48,104,12 30,111,11 29,10C,1242 43,10D,47 37,20,92,-32,-17 0,21,-1,0,0 24,104,12 30,10,7255000 0,D,46 0,A,-3380997 0,B,15124531 0,C,36 43,111,14 27,10C,1265 47,10D,47 37,20,97,-21,-30 0,21,-2,0,0 21,104,21 19,10,7255020 0,D,46 0,A,-3380999 0,B,15124529 0,C,36 55,111,16 32,10C,1269 46,10D,47 46,20,106,-14,-21 0,21,-1,0,0 21,104,38 31,111,19 30,10C,1273 47,10D,45 48,104,53 27,20,115,-6,-16 0,21,-1,0,0 15,10,7255060 0,D,45 0,A,-3381002 0,B,15124526 0,C,36 68,111,19 36,10C,1289 46,10D,45 37,20,95,-14,-2 0,21,-1,0,0 20,104,60 32,111,19 30,10C,1300 43,10D,45 52,104,60 26,20,102,-10,-18 0,21,-1,0,0 21,111,19 38,10C,1304 42,10D,45 45,104,60 32,111,19 27,20,118,-10,-19 0,21,-2,0,0 21,10C,1308 41,10D,44 45,104,60 29,111,19 41,10C,1304 34,20,114,-22,-9 0,21,-1,1,3 18,10,7255140 0,D,44 0,A,-3381010 0,B,15124520 0,C,36 66,10D,44 46,104,61 32,111,19 31,10C,1312 34,20,91,-27,-5 0,21,-1,0,0 21,10D,44 43,104,62 30,111,19 31,10C,1312 43,10D,44 37,20,110,-11,-5 0,21,-2,0,0 22,104,62 27,111,19 30,10C,1308 45,10D,44 50,104,63 31,20,102,-9,-11 0,21,-1,0,0 17,10,7255200 0,D,44 0,A,-3381015 0,B,15124515 0,C,39 66,111,20 32,10C,1300 43,10D,44 43,20,97,-16,-12 0,21,-1,0,-1 19,104,69 28,111,21 30,10C,1304 45,10D,44 47,104,71 33,20,93,-20,-8 0,21,-1,0,0 20,111,21 31,10C,1316 43,10D,44 45,104,71 22,10,7255260 0,D,44 0,A,-3381020 0,B,15124510 0,C,39 40,111,21 20,20,92,-28,-6 0,21,-1,0,0 19,10C,1332 44,10D,43 44,104,71 31,111,21 31,10C,1335 34,20,96,-23,-21 0,21,-2,0,0 20,10D,43 46,104,72 29,111,21 30,10C,1355 43,10D,43 47,20,110,-18,-9 0,21,-1,0,0 20,104,72 31,111,21 31,10C,1375 44,10D,43 54,104,71 21,20,116,-12,-5 0,21,-1,0,-1 20,111,21 30,10C,1378 42,10D,43 38,10,7255340 0,D,43 0,A,-3381027 0,B,15124504 0,C,39 41,104,71 28,111,21 21,20,100,-21,-13 0,21,-1,0,1 20,10C,1382 42,10D,43 40,10,7255360 0,D,44 0,A,-3381029 0,B,15124502 0,C,39 40,104,72 31,111,21 30,10C,1394 34,20,111,-9,-5 0,21,-1,-1,4 19,10D,43 49,104,73 29,111,23 30,10C,1398 55,10D,43 37,20,110,-7,-9 0,21,-1,0,0 21,104,80 19,10,7255400 0,D,43 0,A,-3381032 0,B,15124499 0,C,39 55,111,24 46,10C,1433 47,10D,43 36,20,99,-19,-20 0,21,-1,0,0 25,104,81 28,111,24 29,10C,1441 47,10D,43 48,104,80 26,20,97,-24,-3 0,21,-1,0,0 22,111,24 26,10C,1468 47,10D,43 50,104,81 30,111,24 28,20,114,-8,-22 0,21,-1,0,0 20,10C,1488 41,10D,43 45,104,80 30,111,25 32,10C,1503 34,20,103,-12,-5 0,21,0,0,1 20,10D,43 44,104,81 30,111,25 30,10C,1507 45,10D,43 46,20,104,-13,-7 0,21,-1,-1,0 20,104,82 28,111,25 43,10C,1519 42,10D,43 43,10,7255520 0,D,44 0,A,-3381043 0,B,15124489 0,C,39 40,104,82 19,20,80,-31,-9 0,21,-2,1,1 21,111,25 27,10C,1535 45,10D,43 46,104,83 26,10,7255540 0,D,44 0,A,-3381045 0,B,15124488 0,C,39 41,111,25 19,20,98,-16,-14 0,21,-1,2,1 20,10C,1535 44,10D,44 48,104,85 23,10,7255560 0,D,44 0,A,-3381046 0,B,15124486 0,C,39 40,111,25 27,10C,1550 35,20,101,-20,-14 0,21,-1,0,1 19,10D,44 47,104,86 22,10,7255580 0,D,44 0,A,-3381048 0,B,15124484 0,C,39 41,111,26 28,10C,1574 42,10D,44 49,20,88,-18,-8 0,21,-1,0,0 20,104,86 28,111,27 23,10,7255600 0,D,44 0,A,-3381050 0,B,15124482 0,C,41 41,10C,1585 50,10D,44 41,20,106,-9,-3 0,21,-1,0,2 18,104,86 21,10,7255620 0,D,45 0,A,-3381052 0,B,15124481 0,C,41 56,111,27 28,10C,1613 47,10D,44 36,20,106,-3,-10 0,21,0,1,-1 21,104,86 19,10,7255640 0,D,45 0,A,-3381053 0,B,15124479 0,C,41 56,111,27 28,10C,1613 42,10D,44 37,20,110,3,-16 0,21,-1,0,0 21,104,87 19,10,7255660 0,D,45 0,A,-3381055 0,B,15124477 0,C,41 55,111,27 32,10C,1621 43,10D,44 37,20,125,11,-3 0,21,-1,1,-2 20,104,88 29,111,27 33,10C,1632 47,10D,44 48,104,88 26,20,97,-4,-12 0,21,-1,0,1 17,10,7255700 0,D,45 0,A,-3381059 0,B,15124474 0,C,41 66,111,27 31,10C,1636 56,10D,44 41,20,109,-11,-15 0,21,-1,0,1 21,104,87 28,111,27 30,10C,1640 46,10D,44 48,104,86 30,111,27 21,20,113,4,-10 0,21,-1,0,0 20,10C,1636 45,10D,44 50,104,86 40,111,27 40,10C,1632 34,20,88,-34,-20 0,21,-1,0,0 20,10D,45 44,104,86 28,111,27 32,10C,1621 44,10D,45 37,20,98,-21,-11 0,21,-1,0,0 21,104,86 26,111,27 34,10C,1617 44,10D,45 40,10,7255800 0,D,46 0,A,-3381068 0,B,15124465 0,C,41 40,104,87 19,20,110,-16,-17 0,21,-1,0,-1 20,111,27 32,10C,1609 53,10D,45 39,10,7255820 0,D,46 0,A,-3381070 0,B,15124463 0,C,41 45,104,87 19,20,88,-28,-14 0,21,-1,0,0 20,111,27 27,10C,1609 44,10D,46 52,104,86 29,111,27 30,10C,1609 34,20,114,4,-8 0,21,-1,1,0 19,10D,46 46,104,86 23,10,7255860 0,D,47 0,A,-3381073 0,B,15124459 0,C,41 41,111,26 27,10C,1609 42,10D,46 37,20,104,-15,-9 0,21,-1,0,0 20,104,82 28,111,22 43,10C,1601 43,10D,46 45,104,66 22,20,93,-22,-19 0,21,-1,0,0 18,111,18 32,10C,1554 44,10D,46 49,104,49 30,111,16 31,20,83,-24,-17 0,21,0,-1,0 18,10C,1484 41,10D,46 46,104,38 30,111,15 30,10C,1433 38,20,96,-29,-4 0,21,-1,0,0 18,10D,46 49,104,33 30,111,14 30,10C,1382 54,10D,46 37,20,102,-22,-5 0,21,-1,-2,0 20,104,29 29,111,14 34,10C,1339 46,10D,46 48,104,31 25,20,106,-23,0 0,21,0,0,0 17,10,7255980 0,D,46 0,A,-3381084 0,B,15124448 0,C,41 67,111,16 28,10C,1312 42,10D,46 48,104,43 22,20,102,-22,-8 0,21,0,0,1 16,10,7260000 0,D,46 0,A,-3381086 0,B,15124446 0,C,41 67,111,18 31,10C,1289 41,10D,46 47,20,102,-15,-7 0,21,0,-1,0 21,104,54 28,111,18 29,10C,1265 46,10D,45 44,104,57 31,111,18 22,20,84,-31,-15 0,21,-1,0,0 20,10C,1261 44,10D,45 49,104,60 36,111,19 35,10C,1269 34,20,104,-15,-22 0,21,-1,0,0 17,10,7260060 0,D,46 0,A,-3381091 0,B,15124441 0,C,45 67,10D,45 46,104,63 30,111,20 31,10C,1292 34,20,97,-17,-15 0,21,-1,0,-1 20,10D,45 43,104,68 40,111,21 31,10C,1300 44,10D,44 37,20,110,-17,-15 0,21,-1,0,-1 20,104,70 40,111,20 28,10C,1316 56,10D,44 51,104,67 20,20,96,-20,-17 0,21,-1,0,1 20,111,20 31,10C,1328 43,10D,44 37,10,7260140 0,D,44 0,A,-3381098 0,B,15124434 0,C,45 41,104,64 28,111,19 21,20,113,-12,-10 0,21,-1,0,-1 20,10C,1324 42,10D,44 40,10,7260160 0,D,44 0,A,-3381100 0,B,15124432 0,C,45 44,104,60 31,111,18 26,20,104,-23,-11 0,21,-1,-1,0 19,10C,1292 39,10D,44 39,10,7260180 0,D,44 0,A,-3381101 0,B,15124430 0,C,45 41,104,56 31,111,16 30,10C,1273 33,20,95,-33,-14 0,21,-1,0,1 20,10D,44 48,104,43 30,111,14 29,10C,1257 43,10D,44 37,20,105,-18,-10 0,21,0,0,-2 20,104,35 29,10,7260220 0,D,44 0,A,-3381105 0,B,15124427 0,C,45 47,111,14 28,10C,1238 46,10D,44 37,20,105,-18,-3 0,21,0,0,0 21,104,29 19,10,7260240 0,D,43 0,A,-3381106 0,B,15124425 0,C,45 55,111,13 33,10C,1214 45,10D,43 46,20,85,-34,-11 0,21,0,0,0 21,104,24 28,111,12 34,10C,1210 46,10D,43 48,104,21 27,20,98,-21,-6 0,21,0,0,1 16,10,7260280 0,D,42 0,A,-3381110 0,B,15124422 0,C,45 68,111,12 31,10C,1183 42,10D,43 46,104,17 21,20,99,-22,19 0,21,0,0,3 16,10,7260300 0,D,42 0,A,-3381111 0,B,15124420 0,C,45 67,111,11 32,10C,1199 44,10D,41 43,20,98,-39,-30 0,21,0,0,-2 20,104,13 37,111,11 45,10C,1218 45,10D,41 52,104,13 20,20,99,-21,0 0,21,2,0,2 17,10,7260340 0,D,42 0,A,-3381115 0,B,15124417 0,C,48 67,111,11 35,10C,1191 39,10,7260360 0,D,40 0,A,-3381116 0,B,15124416 0,C,48 41,10D,41 35,20,95,-28,0 0,21,1,0,-1 20,104,13 28,111,11 31,10C,1218 43,10D,41 38,10,7260380 0,D,39 0,A,-3381118 0,B,15124414 0,C,48 40,104,13 20,20,112,-21,3 0,21,1,0,-1 20,111,11 30,10C,1226 45,10D,39 39,10,7260400 0,D,38 0,A,-3381119 0,B,15124413 0,C,48 41,104,12 26,111,14 22,20,106,-22,8 0,21,2,0,0 20,10C,1222 38,10D,39 47,104,20 30,111,14 42,10C,1222 35,20,110,-16,4 0,21,3,-1,-1 19,10D,39 42,104,28 23,10,7260440 0,D,36 0,A,-3381123 0,B,15124411 0,C,48 44,111,19 32,10C,1238 43,10D,39 45,20,116,-13,2 0,21,3,-2,1 21,104,53 28,111,20 34,10C,1257 42,10D,36 49,104,61 27,20,112,-18,1 0,21,3,-1,-1 21,111,20 19,10,7260480 0,D,35 0,A,-3381126 0,B,15124409 0,C,48 57,10C,1277 40,10D,36 75,20,108,-10,-1 0,21,3,-1,-2 20,104,65 32,111,20 29,10C,1292 43,10D,36 45,104,64 32,111,20 22,20,107,-14,-5 0,21,4,0,0 17,10,7260520 0,D,34 0,A,-3381129 0,B,15124407 0,C,48 66,10C,1300 54,10D,34 45,104,64 21,20,103,-12,-3 0,21,3,-1,0 17,10,7260540 0,D,34 0,A,-3381131 0,B,15124407 0,C,48 66,111,20 32,10C,1289 45,10D,34 42,20,106,-17,-5 0,21,4,0,-2 21,104,64 27,111,20 30,10C,1296 46,10D,34 47,104,66 24,10,7260580 0,D,34 0,A,-3381134 0,B,15124405 0,C,48 40,111,20 19,20,96,-24,4 0,21,5,0,0 20,10C,1296 44,10D,34 51,104,67 34,111,20 23,10,7260600 0,D,34 0,A,-3381136 0,B,15124405 0,C,50 41,10C,1281 32,20,99,-8,9 0,21,3,-1,0 19,10D,33 42,104,68 31,111,20 31,10C,1281 46,10D,33 37,20,105,-5,11 0,21,4,0,-1 19,104,68 39,111,20 34,10C,1277 44,10D,33 46,104,68 20,20,98,-22,13 0,21,4,0,0 33,111,20 35,10C,1265 35,10,7260660 0,D,33 0,A,-3381141 0,B,15124404 0,C,50 41,10D,33 47,104,69 21,20,113,-14,14 0,21,6,0,-1 20,111,20 29,10C,1269 44,10D,32 49,104,69 29,111,20 30,10C,1265 34,20,106,-6,19 0,21,6,0,-1 18,10D,32 38,10,7260700 0,D,33 0,A,-3381144 0,B,15124404 0,C,50 41,104,69 40,111,21 30,10C,1261 34,20,97,-21,14 0,21,6,0,0 18,10D,32 37,10,7260720 0,D,32 0,A,-3381146 0,B,15124404 0,C,50 41,104,74 28,111,22 33,10C,1273 41,10D,32 47,20,107,-10,12 0,21,6,0,-1 21,104,76 27,111,23 33,10C,1304 47,10D,31 48,104,80 23,10,7260760 0,D,32 0,A,-3381149 0,B,15124404 0,C,50 40,111,23 19,20,103,-26,2 0,21,5,0,0 20,10C,1335 41,10D,31 47,104,81 31,111,25 33,10C,1367 35,20,107,-16,8 0,21,5,0,0 20,10D,31 43,104,81 31,111,25 30,10C,1390 35,10,7260800 0,D,32 0,A,-3381152 0,B,15124405 0,C,50 40,10D,31 44,20,117,1,9 0,21,6,-1,-1 19,104,82 27,111,25 30,10C,1417 35,10,7260820 0,D,32 0,A,-3381153 0,B,15124406 0,C,50 39,10D,30 45,104,83 21,20,97,-18,17 0,21,5,0,-1 19,111,25 30,10C,1437 45,10,7260840 0,D,32 0,A,-3381155 0,B,15124407 0,C,50 44,10D,30 48,104,83 22,20,117,-1,9 0,21,5,-1,-1 18,111,25 32,10C,1453 44,10,7260860 0,D,32 0,A,-3381156 0,B,15124407 0,C,50 40,10D,30 47,104,82 22,20,119,10,5 0,21,6,-1,-2 18,111,25 32,10C,1460 35,10,7260880 0,D,32 0,A,-3381158 0,B,15124408 0,C,50 41,10D,30 43,104,84 29,111,25 21,20,107,-7,19 0,21,5,-1,-1 19,10C,1484 34,10,7260900 0,D,32 0,A,-3381159 0,B,15124409 0,C,50 44,10D,30 47,104,82 30,111,25 27,20,113,-8,11 0,21,5,0,1 19,10C,1480 34,10,7260920 0,D,31 0,A,-3381161 0,B,15124410 0,C,50 45,10D,30 44,104,83 28,111,25 32,10C,1484 34,20,93,-20,8 0,21,5,-1,0 22,10D,30 56,104,82 30,111,25 28,10C,1492 45,10D,30 37,20,97,-14,1 0,21,4,0,-2 18,10,7260960 0,D,31 0,A,-3381163 0,B,15124412 0,C,50 65,104,82 32,111,25 31,10C,1496 44,10D,30 36,20,104,-8,6 0,21,4,-1,-1 21,104,83 32,111,25 29,10C,1503 44,10D,30 47,104,82 30,20,98,-15,9 0,21,4,0,0 20,111,25 31,10C,1488 42,10D,30 44,104,83 24,10,7261020 0,D,31 0,A,-3381167 0,B,15124416 0,C,50 41,111,25 18,20,94,-24,5 0,21,3,0,0 21,10C,1488 44,10D,31 59,104,82 22,10,7261040 0,D,32 0,A,-3381168 0,B,15124417 0,C,50 40,111,25 28,20,107,-4,0 0,21,3,1,0 20,10C,1503 44,10D,31 45,104,83 21,10,7261060 0,D,32 0,A,-3381169 0,B,15124419 0,C,50 41,111,25 28,10C,1515 34,20,108,0,3 0,21,2,0,0 19,10D,31 56,104,83 22,10,7261080 0,D,32 0,A,-3381170 0,B,15124420 0,C,50 40,111,25 32,10C,1507 34,20,106,-7,0 0,21,1,1,0 19,10D,32 42,104,83 24,10,7261100 0,D,32 0,A,-3381171 0,B,15124422 0,C,50 41,111,25 27,10C,1519 46,10D,32 37,20,104,-2,3 0,21,2,0,0 20,104,83 27,111,25 31,10C,1542 47,10D,32 46,104,83 32,111,25 20,20,110,-7,1 0,21,1,-1,0 21,10C,1562 42,10D,32 45,104,83 39,111,25 32,10C,1550 43,20,106,-7,-4 0,21,1,0,0 20,10D,32 47,104,83 34,111,25 30,10C,1558 44,10D,32 36,20,113,2,-3 0,21,0,-1,0 21,104,85 28,111,26 29,10C,1558 46,10D,32 44,104,85 24,10,7261200 0,D,32 0,A,-3381176 0,B,15124430 0,C,50 40,111,26 19,20,112,0,4 0,21,0,0,-3 20,10C,1550 44,10D,32 44,104,86 31,111,27 40,10C,1539 33,20,104,1,0 0,21,0,0,-1 20,10D,32 47,104,89 28,111,28 30,10C,1550 47,10D,32 37,20,110,0,-13 0,21,0,0,-1 24,104,90 37,111,29 31,10C,1550 43,10D,32 46,104,92 22,20,96,-15,0 0,21,0,0,-1 19,111,29 31,10C,1582 44,10D,32 40,10,7261280 0,D,33 0,A,-3381180 0,B,15124436 0,C,50 40,104,91 28,111,29 21,20,101,0,2 0,21,0,0,-3 20,10C,1597 42,10D,32 50,104,90 34,111,29 29,10C,1593 34,20,103,-13,-4 0,21,0,0,-1 20,10D,33 46,104,90 22,10,7261320 0,D,34 0,A,-3381181 0,B,15124440 0,C,50 41,111,29 27,10C,1589 43,10D,33 37,20,102,0,4 0,21,0,0,0 19,104,90 28,10,7261340 0,D,34 0,A,-3381182 0,B,15124442 0,C,50 50,111,29 35,10C,1648 43,10D,33 46,20,112,9,6 0,21,-1,0,2 20,104,92 28,111,29 33,10C,1648 43,10D,33 48,104,92 29,20,111,11,-4 0,21,-1,0,1 20,111,29 19,10,7261380 0,D,34 0,A,-3381184 0,B,15124445 0,C,50 56,10C,1652 41,10D,34 45,104,91 21,20,121,13,-16 0,21,-2,1,-3 21,111,29 28,10,7261400 0,D,35 0,A,-3381185 0,B,15124447 0,C,50 48,10C,1648 45,10D,34 48,104,91 21,20,91,-20,-10 0,21,-3,0,2 21,111,29 28,10C,1660 55,10D,34 49,104,91 32,111,29 20,20,115,15,-11 0,21,-3,0,0 20,10C,1671 42,10D,35 46,104,92 29,111,29 41,10C,1636 39,20,110,0,-20 0,21,-4,0,0 21,10D,35 44,104,92 29,111,29 33,10C,1632 44,10D,35 38,20,97,-19,-30 0,21,-5,1,-3 17,10,7261480 0,D,36 0,A,-3381189 0,B,15124454 0,C,50 66,104,91 28,111,29 31,10C,1613 56,10D,35 36,20,118,19,-22 0,21,-5,0,0 18,10,7261500 0,D,36 0,A,-3381190 0,B,15124456 0,C,59 66,104,91 27,111,29 34,10C,1609 34,10,7261520 0,D,36 0,A,-3381191 0,B,15124458 0,C,59 41,10D,36 34,20,109,-6,-13 0,21,-4,0,2 21,104,92 26,111,29 31,10C,1652 37,10,7261540 0,D,36 0,A,-3381192 0,B,15124459 0,C,59 40,10D,36 48,104,92 22,20,126,23,-26 0,21,-5,0,0 19,111,29 39,10C,1667 36,10,7261560 0,D,37 0,A,-3381194 0,B,15124461 0,C,59 40,10D,36 44,104,94 25,20,104,-17,-28 0,21,-6,1,-4 19,111,30 34,10C,1625 35,10,7261580 0,D,37 0,A,-3381195 0,B,15124463 0,C,59 40,10D,36 48,104,95 30,20,92,-30,-29 0,21,-5,0,0 20,111,30 30,10C,1632 35,10,7261600 0,D,37 0,A,-3381196 0,B,15124464 0,C,59 41,10D,37 47,104,95 29,111,30 22,20,123,-5,-21 0,21,-5,0,4 19,10C,1644 33,10,7261620 0,D,38 0,A,-3381198 0,B,15124466 0,C,59 44,10D,37 44,104,95 34,111,30 27,20,102,0,-26 0,21,-5,0,1 21,10C,1648 31,10,7261640 0,D,38 0,A,-3381199 0,B,15124467 0,C,59 45,10D,37 48,104,95 31,111,30 25,20,99,4,-18 0,21,-5,0,2 20,10C,1640 42,10,7261660 0,D,38 0,A,-3381200 0,B,15124469 0,C,59 41,10D,38 43,104,95 29,111,30 25,20,108,12,-12 0,21,-5,0,2 20,10C,1648 33,10,7261680 0,D,39 0,A,-3381202 0,B,15124470 0,C,59 44,10D,38 43,104,95 30,111,30 31,10C,1644 34,20,119,14,-13 0,21,-6,0,2 21,10D,38 44,104,95 32,111,30 34,10C,1652 44,10D,38 37,20,90,-39,-43 0,21,-6,0,2 21,104,94 32,111,30 30,10C,1652 46,10D,39 44,104,95 23,10,7261740 0,D,39 0,A,-3381207 0,B,15124474 0,C,59 41,111,30 19,20,91,-25,-35 0,21,-7,-1,5 20,10C,1660 41,10D,39 47,104,95 30,111,30 40,10C,1664 34,20,93,-28,-43 0,21,-7,1,-2 21,10D,39 43,104,95 31,111,30 30,10C,1667 44,10D,39 46,20,94,-15,-46 0,21,-8,1,-1 21,104,95 29,111,30 45,10C,1660 36,10,7261800 0,D,39 0,A,-3381212 0,B,15124478 0,C,59 40,10D,40 35,20,92,-28,-30 0,21,-7,0,4 20,104,95 27,111,32 32,10C,1671 36,10,7261820 0,D,40 0,A,-3381214 0,B,15124479 0,C,59 44,10D,40 41,20,94,-15,-24 0,21,-6,0,3 19,104,97 30,111,32 32,10C,1671 36,10,7261840 0,D,40 0,A,-3381216 0,B,15124479 0,C,59 40,10D,40 44,20,132,22,-27 0,21,-6,1,0 20,104,96 26,111,32 41,10C,1683 36,10,7261860 0,D,40 0,A,-3381218 0,B,15124480 0,C,59 40,10D,40 44,20,88,-30,-25 0,21,-6,0,4 21,104,96 29,111,32 29,10C,1691 36,10,7261880 0,D,40 0,A,-3381220 0,B,15124481 0,C,59 40,10D,41 44,104,96 20,20,118,17,-23 0,21,-6,0,2 20,111,32 33,10C,1691 44,10D,41 49,104,97 29,111,32 26,20,96,-18,-31 0,21,-7,1,-3 20,10C,1699 47,10D,41 39,10,7261920 0,D,41 0,A,-3381224 0,B,15124482 0,C,59 39,104,97 28,111,33 30,20,106,-7,-18 0,21,-6,0,3 18,10C,1710 44,10D,41 38,10,7261940 0,D,41 0,A,-3381226 0,B,15124482 0,C,59 40,104,96 32,111,33 30,10C,1734 33,20,96,-22,-30 0,21,-7,2,-3 19,10D,42 46,10,7261960 0,D,42 0,A,-3381228 0,B,15124482 0,C,59 41,104,98 40,111,34 29,10C,1750 34,20,60,-42,-40 0,21,-7,0,1 21,10D,42 44,104,96 34,111,34 32,10C,1750 46,10D,42 37,20,130,26,-22 0,21,-7,1,-3 21,104,96 28,111,33 33,10C,1753 43,10D,42 49,104,96 35,20,87,-32,-40 0,21,-7,1,-3 21,111,33 27,10C,1753 46,10D,42 50,104,96 27,111,34 31,10C,1757 35,20,110,-9,-34 0,21,-7,1,-3 20,10D,42 44,104,96 33,111,33 35,10C,1750 44,10D,42 37,20,76,-35,-33 0,21,-7,0,3 21,104,96 31,111,33 42,10C,1750 42,10D,42 39,10,7262080 0,D,43 0,A,-3381241 0,B,15124482 0,C,59 41,104,97 18,20,67,-40,-39 0,21,-7,1,0 21,111,33 27,10C,1746 44,10D,43 46,104,97 31,111,33 30,10C,1742 34,20,110,1,-33 0,21,-7,0,2 20,10D,43 45,104,97 31,111,33 31,10C,1753 42,10D,43 37,20,104,4,-24 0,21,-6,0,0 24,104,97 30,111,33 30,10C,1750 43,10D,43 47,104,97 33,20,120,13,-21 0,21,-7,1,0 20,111,33 25,10C,1750 58,10D,44 49,104,96 30,111,33 30,20,86,-24,-42 0,21,-7,0,0 20,10C,1742 41,10D,44 50,104,95 34,111,30 29,10C,1738 34,20,77,-42,-44 0,21,-7,1,-1 20,10D,44 57,104,81 33,111,20 30,10C,1679 47,10D,44 36,20,113,-6,-33 0,21,-7,0,-2 21,104,62 19,10,7262220 0,D,45 0,A,-3381256 0,B,15124477 0,C,59 56,111,19 31,10C,1601 46,10D,44 37,20,92,-28,-37 0,21,-7,0,0 21,104,60 33,111,22 29,10C,1554 43,10D,44 45,104,75 29,20,109,-7,-31 0,21,-6,0,1 17,10,7262260 0,D,45 0,A,-3381260 0,B,15124474 0,C,59 67,111,23 28,10C,1519 46,10D,44 46,20,89,-22,-31 0,21,-7,0,0 20,104,82 29,111,25 34,10C,1507 47,10D,44 48,104,85 25,20,91,-15,-31 0,21,-7,0,1 17,10,7262300 0,D,44 0,A,-3381264 0,B,15124471 0,C,59 66,111,26 37,10C,1511 43,10D,44 37,20,100,-15,-43 0,21,-7,1,-2 21,104,87 28,111,27 30,10C,1527 46,10D,44 49,104,89 26,20,107,-16,-30 0,21,-6,0,2 16,10,7262340 0,D,44 0,A,-3381267 0,B,15124468 0,C,59 67,111,27 33,10C,1554 42,10D,44 46,20,99,-20,-28 0,21,-7,0,0 16,10,7262360 0,D,45 0,A,-3381269 0,B,15124466 0,C,59 67,104,89 27,111,27 30,10C,1585 45,10D,44 46,20,94,-26,-32 0,21,-7,0,-1 22,104,88 26,111,27 31,10C,1605 45,10D,44 50,104,88 22,10,7262400 0,D,45 0,A,-3381272 0,B,15124462 0,C,59 40,111,27 19,20,105,7,-20 0,21,-6,0,0 21,10C,1613 43,10D,44 49,104,89 22,10,7262420 0,D,45 0,A,-3381274 0,B,15124460 0,C,59 40,111,28 28,10C,1628 35,20,84,-24,-30 0,21,-6,0,3 19,10D,44 45,104,91 31,111,28 31,10C,1636 42,10D,44 37,20,118,9,-21 0,21,-6,1,-1 24,104,90 30,111,27 30,10C,1652 48,10D,44 49,104,89 21,20,123,16,-13 0,21,-3,2,-4 20,111,28 29,10C,1664 44,10D,44 49,10,7262480 0,D,45 0,A,-3381278 0,B,15124454 0,C,69 40,104,89 19,20,114,0,-9 0,21,-1,0,0 19,111,30 33,10C,1671 44,10D,44 49,104,95 31,111,31 26,20,85,-24,-20 0,21,-2,0,0 19,10C,1671 39,10D,45 51,10,7262520 0,D,46 0,A,-3381281 0,B,15124450 0,C,69 41,104,95 28,111,29 25,20,109,-8,-7 0,21,-1,0,3 19,10C,1691 40,10D,45 39,10,7262540 0,D,46 0,A,-3381283 0,B,15124447 0,C,69 40,104,87 36,111,24 27,20,111,7,-3 0,21,0,0,-1 15,10C,1679 46,10D,45 46,10,7262560 0,D,47 0,A,-3381284 0,B,15124445 0,C,69 41,104,71 26,111,17 27,20,91,-24,-3 0,21,0,0,0 18,10C,1621 40,10D,46 38,10,7262580 0,D,47 0,A,-3381286 0,B,15124443 0,C,69 41,104,45 37,111,15 29,10C,1535 33,20,112,-14,13 0,21,2,-1,-2 20,10D,46 37,10,7262600 0,D,48 0,A,-3381287 0,B,15124440 0,C,69 41,104,35 27,111,15 33,10C,1457 42,10D,46 37,20,103,-25,9 0,21,2,-1,-2 21,104,30 27,111,15 34,10C,1414 43,10D,46 43,104,30 31,111,15 21,20,108,-19,23 0,21,3,0,-2 25,10C,1371 45,10D,46 49,104,30 32,111,15 29,10C,1332 35,20,119,-13,4 0,21,2,0,0 21,10D,46 44,104,31 39,111,16 30,10C,1316 44,10D,46 37,20,80,-35,1 0,21,3,-2,-1 21,104,36 36,111,17 33,10C,1304 45,10D,46 39,10,7262700 0,D,46 0,A,-3381295 0,B,15124430 0,C,69 40,104,41 20,20,92,-29,9 0,21,2,-1,1 19,111,16 31,10C,1273 45,10D,45 50,104,42 30,111,15 26,20,86,-23,17 0,21,2,0,-2 20,10C,1261 44,10D,45 46,10,7262740 0,D,45 0,A,-3381299 0,B,15124427 0,C,69 41,104,36 28,111,13 21,20,108,-16,9 0,21,2,0,1 19,10C,1246 43,10D,45 52,104,28 29,111,13 34,10C,1242 35,20,97,-30,1 0,21,1,0,0 19,10D,45 47,104,25 29,111,12 22,10,7262780 0,D,45 0,A,-3381303 0,B,15124423 0,C,69 41,10C,1234 44,10D,44 46,20,93,-27,-2 0,21,1,-2,0 19,104,20 28,111,13 22,10,7262800 0,D,45 0,A,-3381304 0,B,15124422 0,C,69 40,10C,1222 44,10D,44 50,104,24 21,20,92,-39,-1 0,21,1,0,0 20,111,13 19,10,7262820 0,D,45 0,A,-3381306 0,B,15124420 0,C,69 56,10C,1250 44,10D,44 48,104,21 22,20,124,-5,-6 0,21,1,0,0 20,111,12 29,10C,1218 46,10D,44 50,104,18 32,111,12 25,20,151,19,14 0,21,2,0,2 24,10C,1222 42,10D,43 46,104,16 30,111,11 29,10C,1234 46,20,108,-29,0 0,21,2,-1,-1 20,10D,43 44,104,14 30,111,11 30,10C,1246 54,10D,43 37,20,84,-35,5 0,21,1,0,0 21,104,13 36,111,11 34,10C,1222 42,10D,43 55,104,13 22,20,101,-25,1 0,21,2,-1,0 20,111,11 31,10C,1234 43,10D,41 45,104,12 30,111,11 21,10,7262940 0,D,42 0,A,-3381318 0,B,15124413 0,C,69 41,10C,1246 32,20,106,-26,4 0,21,2,0,-1 20,10D,41 46,104,16 29,111,14 31,10C,1265 43,10D,41 38,20,112,-13,2 0,21,3,0,-1 19,104,24 27,111,18 32,10C,1285 52,10D,41 49,104,41 21,20,90,-20,5 0,21,3,0,0 20,111,18 27,10C,1285 51,10D,41 39,10,7263000 0,D,41 0,A,-3381324 0,B,15124410 0,C,69 40,104,53 24,20,99,-26,5 0,21,2,-1,1 20,111,19 26,10C,1304 45,10D,40 49,10,7263020 0,D,41 0,A,-3381326 0,B,15124409 0,C,69 40,104,60 20,20,103,-16,5 0,21,1,-1,0 19,111,20 31,10C,1320 45,10D,40 39,10,7263040 0,D,41 0,A,-3381328 0,B,15124408 0,C,69 41,104,63 27,111,20 21,20,104,-18,2 0,21,2,-1,0 20,10C,1335 42,10D,40 47,104,65 29,111,20 30,10C,1347 35,20,90,-27,-2 0,21,0,0,0 23,10D,40 46,104,66 23,10,7263080 0,D,41 0,A,-3381332 0,B,15124407 0,C,69 40,111,20 28,10C,1351 43,20,102,-18,-8 0,21,0,0,3 19,10D,40 52,104,66 22,10,7263100 0,D,41 0,A,-3381334 0,B,15124407 0,C,69 41,111,20 27,10C,1355 39,20,98,-25,-3 0,21,0,0,0 20,10D,40 46,104,66 22,10,7263120 0,D,41 0,A,-3381336 0,B,15124406 0,C,69 40,111,20 28,10C,1347 46,10D,40 37,20,97,-26,0 0,21,0,0,2 19,104,66 29,111,20 31,10C,1343 42,10D,41 46,104,66 28,111,20 21,20,93,-20,-9 0,21,0,0,-1 21,10C,1339 41,10D,41 50,104,67 29,111,20 33,10C,1335 35,20,105,-15,-10 0,21,0,0,0 20,10D,41 44,104,68 34,111,21 34,10C,1335 45,10D,41 46,20,102,-14,-19 0,21,-1,0,0 22,104,69 27,111,20 30,10C,1332 46,10D,42 47,104,69 24,10,7263220 0,D,42 0,A,-3381346 0,B,15124404 0,C,69 41,111,21 31,20,89,-34,-5 0,21,0,0,1 20,10C,1335 44,10D,42 45,104,69 31,10,7263240 0,D,43 0,A,-3381348 0,B,15124403 0,C,69 41,111,21 23,20,101,-22,-8 0,21,-1,-1,-1 21,10C,1343 40,10D,42 44,104,68 22,10,7263260 0,D,43 0,A,-3381350 0,B,15124403 0,C,69 41,111,20 28,10C,1347 33,20,101,-22,-11 0,21,0,0,1 24,10D,42 46,104,68 31,111,20 39,10C,1355 47,10D,42 37,20,93,-23,-8 0,21,-1,0,0 19,104,68 26,111,20 44,10C,1367 43,10D,42 45,104,68 27,20,95,-17,-10 0,21,0,0,1 18,111,21 29,10C,1367 36,10,7263320 0,D,44 0,A,-3381357 0,B,15124401 0,C,69 41,10D,42 43,104,69 30,111,21 22,20,91,-22,-20 0,21,-2,0,-1 18,10C,1371 42,10D,42 49,104,68 30,111,21 30,10C,1371 33,20,106,-4,-16 0,21,-1,0,2 20,10D,43 48,104,68 33,111,21 29,10C,1371 57,10D,43 36,20,93,-36,-18 0,21,-1,1,1 21,104,68 28,111,21 34,10C,1375 51,10D,43 48,104,73 21,20,113,-13,0 0,21,-1,0,-5 21,111,22 41,10C,1390 43,10D,43 49,104,74 32,111,22 21,20,95,-23,-25 0,21,-1,0,1 21,10C,1390 41,10D,44 45,104,74 29,111,22 32,10C,1386 34,20,108,-12,-9 0,21,-1,0,1 21,10D,44 43,104,74 31,111,22 30,10C,1398 45,10D,44 37,20,88,-21,-17 0,21,-1,0,0 21,104,74 28,111,22 30,10C,1414 42,10D,44 48,104,73 27,10,7263480 0,D,46 0,A,-3381374 0,B,15124398 0,C,69 41,111,21 19,20,104,-17,-13 0,21,0,0,0 20,10C,1417 40,10D,44 45,104,71 30,111,21 22,10,7263500 0,D,46 0,A,-3381377 0,B,15124397 0,C,69 45,10C,1417 42,20,98,-9,-12 0,21,-1,0,0 19,10D,45 43,104,70 30,111,20 22,10,7263520 0,D,46 0,A,-3381379 0,B,15124397 0,C,69 40,10C,1398 44,10D,45 38,20,98,-8,-16 0,21,-1,0,-2 20,104,69 25,111,21 31,10C,1375 43,10D,45 46,104,69 30,111,21 21,20,109,-17,-12 0,21,-1,0,-2 19,10C,1371 41,10D,45 51,104,69 54,111,21 29,10C,1375 33,20,87,-30,-2 0,21,-1,0,-1 22,10D,46 44,104,70 30,111,22 33,10C,1375 42,10D,46 37,20,90,-34,-3 0,21,0,0,0 21,104,75 28,111,23 30,10C,1394 55,10D,46 49,104,78 21,20,116,-14,-24 0,21,-1,-1,-1 25,111,24 31,10C,1417 43,10D,46 86,104,81 22,20,115,-5,-16 0,21,-1,0,0 20,111,24 28,10C,1453 47,10D,46 49,104,83 35,111,25 21,20,97,-23,-7 0,21,-1,0,1 21,10C,1484 40,10D,46 46,104,83 30,111,25 32,10C,1507 33,20,115,0,-16 0,21,-1,-1,-2 21,10D,46 44,104,83 30,111,25 29,10C,1527 45,10D,46 37,20,108,-11,-17 0,21,-2,0,0 22,104,82 27,111,25 42,10C,1550 52,10D,47 45,104,83 21,20,114,-11,-14 0,21,-2,0,0 16,10,7263720 0,D,48 0,A,-3381402 0,B,15124392 0,C,69 67,111,25 31,10C,1570 45,10D,47 42,20,103,-26,-20 0,21,-2,0,0 20,104,83 28,111,25 30,10C,1578 46,10D,47 48,104,81 22,10,7263760 0,D,49 0,A,-3381407 0,B,15124391 0,C,69 41,111,25 19,20,88,-22,-26 0,21,-2,0,1 20,10C,1585 44,10D,47 44,104,81 31,111,25 31,10C,1582 34,20,128,13,-19 0,21,-2,0,1 20,10D,48 43,104,81 32,111,25 29,10C,1582 35,10,7263800 0,D,49 0,A,-3381412 0,B,15124390 0,C,69 41,10D,48 35,20,90,-21,-27 0,21,-3,1,1 20,104,82 39,111,25 30,10C,1585 35,10,7263820 0,D,49 0,A,-3381415 0,B,15124389 0,C,69 41,10D,48 35,20,110,-8,-22 0,21,-3,-1,0 23,104,81 31,111,25 30,10C,1582 35,10,7263840 0,D,50 0,A,-3381417 0,B,15124388 0,C,69 39,10D,48 44,104,81 22,20,136,4,-14 0,21,-3,0,4 19,111,25 30,10C,1574 44,10D,49 45,104,82 31,111,25 33,10C,1570 34,20,92,-14,-22 0,21,-3,0,3 19,10D,49 37,10,7263880 0,D,50 0,A,-3381422 0,B,15124387 0,C,69 41,104,82 27,111,25 30,10C,1570 45,10D,49 37,20,89,-24,-30 0,21,-4,0,-1 22,104,82 35,111,25 30,10C,1570 46,10D,49 68,104,81 21,20,121,1,-26 0,21,-3,0,0 21,111,25 31,10C,1562 43,10D,50 45,104,82 27,10,7263940 0,D,51 0,A,-3381429 0,B,15124384 0,C,69 44,111,25 20,20,120,0,-19 0,21,-3,1,-2 20,10C,1562 44,10D,50 48,104,82 31,111,25 31,10C,1566 34,20,120,0,-15 0,21,-4,0,0 20,10D,50 47,104,81 35,111,25 27,10,7263980 0,D,51 0,A,-3381434 0,B,15124382 0,C,69 41,10C,1566 31,20,115,-12,-25 0,21,-3,0,0 21,10D,50 44,104,81 27,111,25 36,10,7264000 0,D,52 0,A,-3381436 0,B,15124381 0,C,69 41,10C,1570 32,20,125,5,-31 0,21,-3,0,0 20,10D,51 48,104,81 31,111,25 40,10C,1582 43,10D,51 38,20,87,-31,-29 0,21,-3,0,1 20,104,82 27,111,25 32,10C,1574 69,10D,51 49,104,82 21,20,89,-11,-37 0,21,-4,0,0 21,111,25 29,10C,1566 40,10,7264060 0,D,52 0,A,-3381444 0,B,15124377 0,C,69 40,10D,52 44,104,82 31,20,90,-16,-25 0,21,-4,0,0 21,111,25 28,10C,1574 44,10D,52 46,104,73 30,111,19 30,10C,1539 35,20,103,-10,-26 0,21,-4,1,-3 19,10D,52 47,104,57 35,111,15 34,10C,1480 46,10D,52 37,20,80,-24,-27 0,21,-4,1,-1 19,104,41 37,111,15 30,10C,1414 47,10D,52 48,104,34 21,20,66,-48,-24 0,21,-3,0,0 19,111,14 21,10,7264140 0,D,53 0,A,-3381453 0,B,15124371 0,C,69 56,10C,1375 49,10D,52 49,104,28 20,20,85,-43,-16 0,21,-3,0,0 22,111,14 28,10C,1339 47,10D,52 49,104,25 28,111,13 28,20,108,-25,-23 0,21,-3,0,1 22,10C,1324 41,10D,52 46,104,24 29,111,14 29,10C,1308 34,20,89,-29,-25 0,21,-3,0,-2 20,10D,52 44,104,25 31,111,15 33,10C,1289 42,10D,52 37,20,108,-21,-21 0,21,-2,0,0 21,104,29 38,111,15 30,10C,1269 46,10D,52 48,104,32 30,20,96,-25,-19 0,21,-2,0,0 20,111,16 32,10C,1265 42,10D,52 46,104,36 31,111,16 30,10C,1265 47,20,96,-26,-18 0,21,0,0,-1 21,10D,52 47,104,43 29,111,17 31,10C,1277 49,10D,51 36,20,103,-19,-9 0,21,-1,0,0 21,104,48 28,111,17 32,10C,1285 44,10D,51 39,10,7264300 0,D,51 0,A,-3381471 0,B,15124357 0,C,69 41,104,49 20,20,104,-20,-2 0,21,0,0,-1 19,111,18 31,10C,1304 45,10D,51 50,104,51 39,111,18 22,20,128,-20,-13 0,21,0,0,0 19,10C,1308 44,10D,51 46,104,51 21,10,7264340 0,D,51 0,A,-3381475 0,B,15124354 0,C,69 41,111,15 27,10C,1312 35,20,97,-36,11 0,21,0,-2,3 19,10D,50 57,104,38 21,10,7264360 0,D,51 0,A,-3381477 0,B,15124352 0,C,69 40,111,14 28,10C,1300 35,20,103,-13,1 0,21,0,0,-1 23,10D,50 47,104,32 22,10,7264380 0,D,51 0,A,-3381479 0,B,15124351 0,C,69 41,111,14 26,10C,1289 43,10D,50 37,20,104,-23,4 0,21,0,0,3 20,104,27 32,111,13 34,10C,1281 42,10D,50 56,104,23 21,20,125,-3,3 0,21,0,-1,2 19,111,12 20,10,7264420 0,D,50 0,A,-3381484 0,B,15124347 0,C,69 56,10C,1265 51,10D,50 49,104,20 20,20,74,-41,2 0,21,1,0,0 21,111,12 28,10C,1242 46,10D,50 51,104,17 27,111,11 29,20,95,-34,2 0,21,1,0,1 17,10,7264460 0,D,50 0,A,-3381488 0,B,15124344 0,C,69 66,10C,1261 45,10D,50 48,104,14 26,20,100,-23,-2 0,21,1,0,0 20,10,7264480 0,D,49 0,A,-3381490 0,B,15124343 0,C,69 64,111,11 31,10C,1277 45,10D,49 42,20,91,-25,-1 0,21,1,0,1 16,10,7264500 0,D,49 0,A,-3381492 0,B,15124341 0,C,69 67,104,12 28,111,11 34,10C,1285 44,10D,49 37,20,83,-34,2 0,21,1,0,0 20,104,12 32,111,11 39,10C,1289 45,10D,49 46,104,12 21,20,94,-32,1 0,21,1,-1,1 16,10,7264540 0,D,48 0,A,-3381497 0,B,15124339 0,C,69 67,111,11 32,10C,1292 44,10D,47 43,20,92,-31,2 0,21,1,0,0 20,104,12 31,111,11 30,10C,1289 45,10D,47 50,104,12 21,10,7264580 0,D,47 0,A,-3381501 0,B,15124336 0,C,69 45,111,11 19,20,106,-19,-2 0,21,1,-1,1 21,10C,1273 43,10D,47 51,10,7264600 0,D,46 0,A,-3381503 0,B,15124335 0,C,69 41,104,12 28,111,11 21,20,108,-25,3 0,21,1,0,-1 20,10C,1265 39,10D,47 46,104,12 22,10,7264620 0,D,46 0,A,-3381505 0,B,15124334 0,C,69 40,111,11 28,10C,1257 43,20,110,-19,1 0,21,1,-1,3 20,10D,45 45,104,12 23,10,7264640 0,D,45 0,A,-3381508 0,B,15124333 0,C,69 41,111,11 43,10C,1257 34,20,94,-33,-6 0,21,1,0,0 20,10D,45 47,104,12 22,10,7264660 0,D,45 0,A,-3381510 0,B,15124333 0,C,69 44,111,11 31,10C,1261 39,20,104,-22,-2 0,21,1,0,0 19,10D,45 43,104,16 22,10,7264680 0,D,45 0,A,-3381512 0,B,15124332 0,C,69 40,111,14 28,10C,1253 46,10D,45 37,20,103,-23,-8 0,21,0,-1,0 18,104,23 29,111,14 31,10C,1277 43,10D,44 45,104,27 28,111,14 21,20,93,-26,-8 0,21,0,-1,0 20,10C,1281 33,10,7264720 0,D,44 0,A,-3381516 0,B,15124330 0,C,69 44,10D,44 44,104,29 38,111,14 21,20,87,-30,-8 0,21,0,0,0 21,10C,1277 41,10D,44 49,104,29 31,111,14 41,10C,1269 34,20,94,-26,-5 0,21,0,0,-1 20,10D,44 48,104,29 30,111,14 30,10C,1265 45,10D,43 36,20,80,-27,-7 0,21,0,0,0 22,104,30 27,111,15 29,10C,1261 56,10D,43 44,104,32 23,10,7264800 0,D,44 0,A,-3381525 0,B,15124328 0,C,69 40,111,15 20,20,108,-18,-11 0,21,-1,0,0 19,10C,1257 45,10D,43 47,104,33 34,111,15 24,10,7264820 0,D,44 0,A,-3381527 0,B,15124327 0,C,77 39,10C,1253 33,20,104,-21,-9 0,21,-1,0,0 20,10D,43 52,104,35 22,10,7264840 0,D,43 0,A,-3381529 0,B,15124327 0,C,77 40,111,16 28,10C,1265 39,20,111,-10,-10 0,21,-1,0,-2 19,10D,43 45,104,41 24,10,7264860 0,D,44 0,A,-3381531 0,B,15124326 0,C,77 45,111,17 32,10C,1269 39,20,99,-21,-6 0,21,-1,0,0 19,10D,43 41,104,46 24,10,7264880 0,D,44 0,A,-3381533 0,B,15124325 0,C,77 41,111,17 31,10C,1277 46,10D,43 37,20,98,-9,-20 0,21,-1,0,-1 19,104,49 28,111,17 31,10C,1285 42,10D,44 46,104,49 29,111,17 20,20,127,-10,-4 0,21,-1,0,0 21,10C,1292 33,10,7264920 0,D,44 0,A,-3381538 0,B,15124324 0,C,77 44,10D,44 44,104,48 28,111,17 31,20,119,-8,-8 0,21,-1,0,-1 20,10C,1300 32,10,7264940 0,D,44 0,A,-3381540 0,B,15124323 0,C,77 44,10D,44 61,104,43 31,111,15 21,20,85,-31,-6 0,21,-1,0,0 21,10C,1292 41,10D,44 50,104,37 29,111,14 29,10C,1289 34,20,107,-18,-4 0,21,0,0,1 20,10D,44 45,104,29 33,111,13 34,10C,1273 45,10D,44 38,20,101,-24,-8 0,21,0,0,0 20,104,25 40,111,12 33,10C,1246 43,10D,44 47,104,22 22,20,117,-10,-8 0,21,0,0,1 16,10,7265020 0,D,45 0,A,-3381549 0,B,15124321 0,C,77 67,111,12 30,10C,1242 42,10D,44 46,20,105,-19,-11 0,21,0,0,0 21,104,17 27,111,12 34,10C,1234 42,10D,44 44,104,17 31,111,13 21,20,123,-6,-4 0,21,0,0,0 21,10C,1246 48,10D,44 45,104,20 32,111,13 34,10C,1261 34,20,100,-24,4 0,21,0,0,1 21,10D,44 44,104,20 29,111,13 31,10C,1257 43,10D,44 38,20,107,-21,-10 0,21,0,0,0 21,104,21 27,111,14 33,10C,1253 41,10D,44 56,104,24 26,20,99,-36,-4 0,21,0,0,2 20,111,15 31,10C,1281 45,10D,44 49,104,29 31,10,7265140 0,D,45 0,A,-3381562 0,B,15124317 0,C,77 41,111,15 28,20,94,-18,-5 0,21,-1,-1,0 19,10C,1281 40,10D,44 46,104,33 22,10,7265160 0,D,44 0,A,-3381564 0,B,15124317 0,C,77 41,111,15 27,10C,1277 34,20,79,-34,-12 0,21,0,0,-4 20,10D,44 55,10,7265180 0,D,45 0,A,-3381566 0,B,15124316 0,C,77 40,104,34 32,111,16 33,10C,1281 34,20,194,62,-47 0,21,-1,4,-2 20,10D,44 41,10,7265200 0,D,44 0,A,-3381568 0,B,15124316 0,C,77 40,104,37 31,111,16 34,10C,1285 34,20,88,-44,3 0,21,0,0,-3 19,10D,44 41,10,7265220 0,D,45 0,A,-3381571 0,B,15124315 0,C,77 40,104,38 32,111,16 34,10C,1296 34,20,104,-15,-8 0,21,0,0,-2 19,10D,44 44,10,7265240 0,D,45 0,A,-3381573 0,B,15124315 0,C,77 41,104,36 37,111,14 30,10C,1289 33,20,108,-15,-7 0,21,1,0,0 20,10D,44 41,10,7265260 0,D,46 0,A,-3381575 0,B,15124314 0,C,77 44,104,30 33,111,13 28,10C,1277 35,20,89,-29,-9 0,21,0,0,0 20,10D,44 44,104,26 30,111,13 33,10C,1269 51,10D,44 37,20,98,-26,1 0,21,0,-1,0 20,104,23 28,111,14 31,10C,1261 46,10D,44 49,104,26 29,111,15 20,20,118,-12,0 0,21,0,0,-1 22,10C,1277 41,10D,44 49,104,29 30,111,16 28,10C,1269 34,20,104,-23,1 0,21,0,0,-1 22,10D,44 44,104,34 43,111,16 32,10C,1273 45,10D,44 50,20,85,-34,7 0,21,1,0,1 20,104,40 32,111,16 30,10C,1285 46,10D,44 46,10,7265380 0,D,47 0,A,-3381589 0,B,15124313 0,C,77 44,104,41 18,20,89,-18,-13 0,21,0,0,-1 21,111,16 30,10C,1285 42,10D,44 43,10,7265400 0,D,47 0,A,-3381592 0,B,15124313 0,C,77 41,104,42 25,20,123,-1,3 0,21,0,0,0 19,111,16 28,10C,1289 46,10D,45 42,10,7265420 0,D,47 0,A,-3381594 0,B,15124313 0,C,77 41,104,42 25,20,141,4,-6 0,21,0,0,0 19,111,17 28,10C,1296 42,10D,45 46,104,43 21,10,7265440 0,D,48 0,A,-3381596 0,B,15124313 0,C,77 41,111,16 29,20,89,-28,4 0,21,0,0,-1 19,10C,1296 41,10D,45 45,104,40 23,10,7265460 0,D,48 0,A,-3381599 0,B,15124313 0,C,77 44,111,14 28,10C,1289 34,20,85,-35,0 0,21,0,-1,0 20,10D,47 45,104,33 23,10,7265480 0,D,48 0,A,-3381601 0,B,15124313 0,C,77 41,111,14 32,10C,1273 39,20,93,-30,14 0,21,1,0,-1 21,10D,47 45,104,28 30,111,13 39,10C,1265 43,10D,47 38,20,119,-5,11 0,21,2,-1,0 20,104,25 40,111,12 22,10,7265520 0,D,48 0,A,-3381606 0,B,15124313 0,C,77 40,10C,1265 41,10D,47 37,20,143,-3,16 0,21,2,-2,1 19,104,21 30,111,12 24,10,7265540 0,D,49 0,A,-3381609 0,B,15124314 0,C,77 41,10C,1261 39,10D,48 48,20,96,-31,-5 0,21,1,-1,1 19,104,18 35,111,12 21,10,7265560 0,D,49 0,A,-3381611 0,B,15124314 0,C,77 41,10C,1277 40,10D,48 46,104,15 21,20,137,4,9 0,21,0,-1,0 18,111,11 33,10C,1269 43,10D,48 50,104,14 30,111,11 28,20,108,-21,-2 0,21,0,0,0 18,10C,1250 45,10D,48 50,104,13 30,111,11 30,10C,1257 33,20,121,-18,2 0,21,0,0,0 19,10D,48 37,10,7265620 0,D,48 0,A,-3381618 0,B,15124315 0,C,77 41,104,12 27,111,11 34,10C,1265 41,10D,48 46,20,121,-22,-8 0,21,0,-1,-1 21,104,12 27,111,11 34,10C,1269 51,10D,48 46,104,12 22,20,107,-28,2 0,21,0,0,0 15,10,7265660 0,D,48 0,A,-3381623 0,B,15124316 0,C,77 68,111,11 31,10C,1277 45,10D,48 43,20,120,-23,-1 0,21,0,0,0 20,104,12 27,111,11 30,10C,1277 45,10D,47 50,104,12 21,10,7265700 0,D,48 0,A,-3381628 0,B,15124318 0,C,77 41,111,11 19,20,94,-27,10 0,21,0,0,0 20,10C,1277 44,10D,47 48,104,12 23,10,7265720 0,D,47 0,A,-3381630 0,B,15124318 0,C,77 41,111,11 27,10C,1277 46,20,92,-35,7 0,21,1,-2,0 20,10D,47 46,104,12 22,10,7265740 0,D,47 0,A,-3381632 0,B,15124319 0,C,77 40,111,11 32,10C,1277 43,10D,47 45,20,107,-23,-3 0,21,0,0,0 26,104,12 31,111,11 34,10C,1277 46,10D,46 49,104,12 21,20,95,-26,9 0,21,1,0,0 21,111,14 28,10C,1277 43,10D,46 45,104,22 30,111,14 32,10C,1285 33,20,99,-21,-2 0,21,1,-1,0 21,10D,46 44,104,29 30,111,16 33,10C,1289 44,10D,46 37,20,96,-28,-12 0,21,0,-2,-2 22,104,36 31,111,17 29,10C,1292 46,10D,46 49,104,41 22,10,7265840 0,D,46 0,A,-3381644 0,B,15124323 0,C,77 41,111,17 19,20,103,-20,-8 0,21,0,0,-1 20,10C,1296 44,10D,46 54,104,43 23,10,7265860 0,D,47 0,A,-3381646 0,B,15124324 0,C,77 40,111,17 19,20,113,-18,-9 0,21,0,0,1 24,10C,1296 44,10D,46 64,104,44 31,111,17 34,10C,1300 34,20,67,-46,4 0,21,0,0,1 20,10D,46 46,104,45 30,111,17 21,10,7265900 0,D,46 0,A,-3381650 0,B,15124326 0,C,77 41,10C,1292 44,10D,46 38,20,109,-27,-10 0,21,-1,0,0 20,104,45 30,111,17 23,10,7265920 0,D,46 0,A,-3381652 0,B,15124327 0,C,77 40,10C,1285 44,10D,46 46,20,109,-15,-18 0,21,-1,0,-1 18,104,44 31,111,15 23,10,7265940 0,D,47 0,A,-3381654 0,B,15124328 0,C,77 39,10C,1277 41,10D,46 45,104,36 31,20,97,-22,-24 0,21,-2,0,1 21,111,14 19,10,7265960 0,D,47 0,A,-3381657 0,B,15124329 0,C,77 55,10C,1265 45,10D,46 49,104,30 21,20,120,-9,-14 0,21,-1,0,2 21,111,13 28,10C,1253 56,10D,46 49,104,26 30,111,13 22,20,95,-26,-19 0,21,-1,0,0 21,10C,1246 41,10D,46 46,104,24 30,111,12 29,10C,1242 34,20,97,-23,-13 0,21,-2,0,0 20,10D,46 48,104,21 34,111,15 30,10C,1230 46,10D,46 37,20,107,-12,-13 0,21,-1,0,-5 20,104,28 32,111,16 34,10C,1289 46,10D,46 51,104,40 31,20,106,-23,-9 0,21,0,0,-2 16,10,7270060 0,D,47 0,A,-3381668 0,B,15124334 0,C,77 67,111,18 30,10C,1269 45,10D,46 48,20,119,-21,-12 0,21,-1,0,0 20,104,56 31,111,19 46,10C,1304 45,10D,46 50,104,60 22,20,93,-14,-16 0,21,-1,0,0 20,111,19 32,10C,1320 46,10D,46 48,104,58 31,111,15 26,20,96,-21,-9 0,21,-1,0,0 20,10C,1328 45,10D,46 49,104,44 28,111,15 30,10C,1324 35,20,106,-16,-7 0,21,-1,0,-1 16,10,7270140 0,D,47 0,A,-3381677 0,B,15124338 0,C,77 67,10D,46 43,104,36 28,10,7270160 0,D,47 0,A,-3381679 0,B,15124339 0,C,77 41,111,14 27,20,95,-25,0 0,21,0,0,0 21,10C,1289 44,10D,46 48,104,30 31,111,14 30,10C,1273 34,20,118,-16,-15 0,21,-1,0,0 25,10D,46 47,104,27 35,111,13 35,10C,1269 43,10D,46 37,20,85,-36,-2 0,21,0,0,0 20,104,24 28,111,12 31,10C,1261 44,10D,46 39,10,7270220 0,D,47 0,A,-3381686 0,B,15124342 0,C,77 40,104,22 20,20,84,-38,-13 0,21,0,0,1 19,111,12 34,10C,1238 53,10D,46 49,104,17 30,111,11 31,20,93,-31,-10 0,21,-1,0,1 19,10C,1250 40,10D,46 38,10,7270260 0,D,47 0,A,-3381690 0,B,15124344 0,C,77 41,104,15 37,111,11 25,20,95,-25,-17 0,21,-1,0,-3 20,10C,1242 40,10D,46 38,10,7270280 0,D,47 0,A,-3381693 0,B,15124345 0,C,77 45,104,14 31,111,11 26,20,112,-15,-11 0,21,-1,0,0 20,10C,1250 38,10D,46 39,10,7270300 0,D,47 0,A,-3381695 0,B,15124346 0,C,77 41,104,13 31,111,11 30,10C,1261 34,20,79,-36,-5 0,21,0,0,1 19,10D,46 48,104,12 34,111,11 30,10C,1265 54,10D,46 37,20,85,-34,-8 0,21,-1,0,0 21,104,12 28,111,11 31,10C,1265 42,10D,46 45,104,12 32,111,11 22,20,114,-28,-12 0,21,-1,0,3 16,10,7270360 0,D,46 0,A,-3381701 0,B,15124349 0,C,77 67,10C,1265 54,10D,46 45,104,16 22,20,90,-26,-15 0,21,-1,0,-2 16,10,7270380 0,D,45 0,A,-3381704 0,B,15124350 0,C,77 67,111,14 31,10C,1296 45,10D,45 43,20,100,-25,-1 0,21,-1,0,0 21,104,24 31,111,15 29,10C,1269 46,10D,45 50,104,28 21,10,7270420 0,D,44 0,A,-3381708 0,B,15124352 0,C,77 41,111,14 20,20,94,-22,-10 0,21,-1,0,-2 19,10C,1273 41,10D,45 47,104,30 31,111,15 35,10C,1273 33,20,104,-17,-11 0,21,0,0,0 21,10D,45 43,104,31 41,111,14 22,10,7270460 0,D,44 0,A,-3381712 0,B,15124354 0,C,77 42,10C,1273 32,20,101,-12,-6 0,21,0,0,0 20,10D,44 52,104,32 31,111,14 24,10,7270480 0,D,44 0,A,-3381714 0,B,15124355 0,C,77 45,10C,1269 33,20,98,-27,-15 0,21,-1,0,-1 20,10D,44 43,104,32 31,111,15 31,10C,1269 44,10D,44 37,20,104,-30,-12 0,21,-1,0,0 20,104,33 28,111,16 32,10C,1269 43,10D,44 50,104,40 29,111,18 22,20,107,-16,-16 0,21,-1,0,0 20,10C,1269 42,10D,44 48,104,53 33,111,19 30,10C,1289 34,20,90,-25,-10 0,21,-1,0,-2 20,10D,44 45,104,62 24,10,7270560 0,D,44 0,A,-3381723 0,B,15124359 0,C,77 41,111,20 32,10C,1300 38,20,73,-49,5 0,21,-1,1,3 20,10D,44 56,104,65 22,10,7270580 0,D,44 0,A,-3381725 0,B,15124360 0,C,77 41,111,20 31,10C,1316 39,20,96,-25,-12 0,21,-1,0,2 20,10D,44 47,104,64 21,10,7270600 0,D,44 0,A,-3381727 0,B,15124360 0,C,77 41,111,17 37,10C,1308 35,20,119,-7,-20 0,21,-1,-1,0 20,10D,44 47,104,47 21,10,7270620 0,D,44 0,A,-3381729 0,B,15124361 0,C,77 40,111,14 32,10C,1292 43,20,89,-33,-11 0,21,-1,0,-2 19,10D,44 53,104,34 30,111,14 30,10C,1269 43,10D,44 37,20,94,-40,-18 0,21,-1,0,0 19,104,29 31,111,13 23,10,7270660 0,D,45 0,A,-3381733 0,B,15124363 0,C,77 39,10C,1253 41,10D,44 46,104,25 30,20,91,-29,-9 0,21,-1,0,0 21,111,12 32,10,7270680 0,D,45 0,A,-3381735 0,B,15124364 0,C,77 43,10C,1242 46,10D,44 48,104,20 21,20,91,-17,0 0,21,-1,-1,0 21,111,12 28,10C,1226 46,10D,44 50,104,17 29,111,11 29,20,82,-46,-8 0,21,-1,-1,1 16,10,7270720 0,D,44 0,A,-3381739 0,B,15124366 0,C,77 67,10C,1222 41,10D,44 49,104,15 29,20,133,-2,-12 0,21,-1,0,0 16,10,7270740 0,D,44 0,A,-3381742 0,B,15124367 0,C,77 67,111,11 31,10C,1222 43,10D,43 44,104,13 22,20,89,-26,-10 0,21,-1,0,2 16,10,7270760 0,D,43 0,A,-3381744 0,B,15124368 0,C,77 67,111,11 27,10C,1222 51,10D,43 46,20,103,-36,-14 0,21,-1,0,0 21,104,13 27,111,12 30,10C,1238 47,10D,43 47,104,14 23,10,7270800 0,D,42 0,A,-3381748 0,B,15124370 0,C,77 40,111,12 20,20,102,-27,-14 0,21,-1,0,-1 19,10C,1234 45,10D,42 48,104,20 30,111,14 31,10C,1250 35,20,91,-29,-14 0,21,-1,1,-1 19,10D,42 59,104,25 33,111,15 23,10,7270840 0,D,42 0,A,-3381752 0,B,15124372 0,C,77 40,10C,1265 31,20,97,-30,-9 0,21,-1,0,1 21,10D,42 43,104,30 32,111,16 33,10C,1269 44,10D,42 37,20,88,-27,-13 0,21,-2,-1,-4 21,104,33 27,111,16 32,10C,1277 52,10D,42 49,104,38 20,20,77,-34,-21 0,21,-1,0,-3 20,111,17 28,10C,1281 45,10D,41 39,10,7270900 0,D,41 0,A,-3381758 0,B,15124374 0,C,77 40,104,45 28,20,100,-18,-9 0,21,-2,0,-1 20,111,18 27,10C,1289 46,10D,41 38,10,7270920 0,D,41 0,A,-3381760 0,B,15124375 0,C,77 41,104,54 30,111,19 22,20,95,-10,-12 0,21,-1,0,0 19,10C,1292 43,10D,41 39,10,7270940 0,D,42 0,A,-3381762 0,B,15124376 0,C,77 41,104,58 31,111,19 27,20,127,-6,-17 0,21,-2,0,0 19,10C,1296 42,10D,41 47,104,60 30,111,19 30,10C,1300 34,20,98,-19,-22 0,21,-1,0,-1 24,10D,41 47,104,62 69,10,7270980 0,D,42 0,A,-3381766 0,B,15124378 0,C,77 41,111,20 23,20,66,-56,-29 0,21,-1,0,0 20,10C,1312 43,10D,41 39,10,7271000 0,D,42 0,A,-3381768 0,B,15124379 0,C,77 39,104,64 28,111,20 34,10C,1324 34,20,131,-13,-24 0,21,-1,0,1 20,10D,41 43,104,65 30,111,20 34,10C,1332 51,10D,42 37,20,85,-26,-10 0,21,-2,0,0 21,104,65 28,111,20 30,10C,1332 55,10D,42 45,104,65 24,20,123,-10,-5 0,21,-2,0,0 18,10,7271060 0,D,43 0,A,-3381774 0,B,15124381 0,C,77 66,111,21 32,10C,1339 46,10D,42 40,20,101,-19,-25 0,21,-2,0,0 22,10,7271080 0,D,43 0,A,-3381776 0,B,15124382 0,C,77 62,104,72 39,111,21 30,10C,1347 45,10D,43 37,20,104,-12,-14 0,21,-2,1,1 17,10,7271100 0,D,44 0,A,-3381778 0,B,15124383 0,C,77 66,104,73 31,111,22 36,10C,1382 43,10D,43 37,20,96,-18,-23 0,21,-3,-1,1 18,10,7271120 0,D,44 0,A,-3381780 0,B,15124383 0,C,80 66,104,74 27,111,23 34,10C,1402 33,10,7271140 0,D,44 0,A,-3381782 0,B,15124384 0,C,80 41,10D,43 35,20,126,-3,-17 0,21,-2,0,1 21,104,77 26,111,23 33,10C,1437 35,10,7271160 0,D,44 0,A,-3381785 0,B,15124385 0,C,80 45,10D,43 40,20,102,-8,-19 0,21,-2,0,0 19,104,81 27,111,25 33,10C,1468 35,10,7271180 0,D,45 0,A,-3381787 0,B,15124386 0,C,80 40,10D,44 44,104,81 31,20,104,-8,-29 0,21,-2,0,-1 20,111,25 28,10C,1484 44,10D,44 46,104,81 30,111,25 30,10C,1507 46,20,103,-15,-31 0,21,-3,0,0 19,10D,44 36,10,7271220 0,D,45 0,A,3381666 0,B,15124386 0,C,80 41,104,81 27,111,25 34,10C,1535 40,10D,45 38,20,108,-24,-19 0,21,-2,0,-1 21,104,81 27,111,25 30,10C,1550 46,10D,45 44,104,83 24,10,7271260 0,D,46 0,A,-3381796 0,B,15124388 0,C,80 45,111,25 19,20,106,-10,-13 0,21,-1,0,0 17,10,7271260 0,D,46 0,A,-3381796 0,B,15124388 0,C,1 65,10C,1566 40,10D,45 46,104,82 30,111,25 21,20,101,-4,-33 0,21,-1,-1,-1 20,10C,1582 53,10D,45 46,104,81 30,111,25 30,10C,1589 34,20,109,-7,-17 0,21,-2,-2,0 20,10D,47 47,104,81 30,10,7271320 0,D,48 0,A,-3381803 0,B,15124390 0,C,1 40,111,20 27,10C,1558 39,20,96,-5,-10 0,21,-1,-1,0 20,10D,47 47,104,58 26,10,7271340 0,D,48 0,A,-3381805 0,B,15124391 0,C,1 39,111,17 32,10C,1484 39,20,99,-14,-16 0,21,-2,0,0 24,10D,47 47,104,57 33,111,20 31,10C,1437 43,10D,47 46,20,88,-25,-12 0,21,-1,1,1 20,104,64 29,111,22 23,10,7271380 0,D,49 0,A,-3381810 0,B,15124392 0,C,1 41,10C,1421 40,10D,48 46,104,75 30,20,88,-20,-6 0,21,-1,0,-3 19,111,22 32,10C,1417 44,10D,48 46,104,76 30,111,22 28,10C,1421 42,20,107,-5,-23 0,21,-1,-1,-1 22,10D,48 47,104,75 39,111,22 34,10C,1433 41,10D,48 36,20,105,-20,-20 0,21,-2,0,-5 22,104,75 27,111,22 29,10C,1437 47,10D,48 44,104,73 23,10,7271460 0,D,49 0,A,-3381820 0,B,15124394 0,C,1 43,111,21 20,20,123,1,-13 0,21,-1,0,-4 20,10C,1437 44,10D,48 44,104,72 23,10,7271480 0,D,49 0,A,-3381822 0,B,15124395 0,C,1 40,111,21 28,10C,1429 35,20,115,-5,-26 0,21,-1,1,-2 19,10D,48 46,104,72 40,111,21 31,10C,1417 43,10D,48 37,20,129,0,-10 0,21,0,0,0 19,104,66 30,111,17 31,10C,1398 44,10D,49 46,104,50 30,111,15 20,20,111,-10,-5 0,21,0,1,0 20,10C,1367 45,10D,49 50,104,40 34,111,14 29,10C,1332 35,20,126,-3,-2 0,21,-1,0,0 18,10D,49 46,104,34 29,111,14 42,10C,1304 46,10D,49 37,20,87,-16,-1 0,21,-1,0,1 21,104,30 24,10,7271580 0,D,50 0,A,-3381835 0,B,15124398 0,C,1 51,111,14 32,10C,1285 42,10D,49 37,20,86,-29,-14 0,21,-1,0,-1 21,104,27 37,111,13 34,10C,1269 42,10D,49 45,104,24 22,20,101,-29,-7 0,21,0,0,0 20,111,12 29,10C,1253 43,10D,49 45,104,21 30,111,12 31,10C,1238 34,20,100,-31,-8 0,21,-1,0,0 18,10,7271640 0,D,49 0,A,-3381842 0,B,15124399 0,C,1 64,10D,49 44,104,17 32,111,11 34,10C,1242 34,20,115,-17,-13 0,21,-1,0,0 21,10D,48 43,104,14 30,111,11 32,10C,1242 43,10D,48 37,20,86,-32,-18 0,21,-1,0,3 22,104,14 27,111,11 34,10C,1242 45,10D,48 46,104,13 31,20,100,-21,-9 0,21,-2,0,-1 20,111,11 27,10C,1250 56,10D,48 46,104,14 30,111,14 22,20,110,-17,-21 0,21,-3,0,0 19,10C,1257 44,10D,48 49,104,28 30,111,18 22,10,7271740 0,D,47 0,A,-3381854 0,B,15124402 0,C,1 40,10C,1289 40,20,114,-3,-10 0,21,-3,1,3 20,10D,47 43,104,50 29,111,20 22,10,7271760 0,D,46 0,A,-3381857 0,B,15124402 0,C,1 39,10C,1289 44,10D,47 38,20,96,-27,-12 0,21,-3,0,0 19,104,63 30,111,21 24,10,7271780 0,D,46 0,A,-3381859 0,B,15124403 0,C,1 40,10C,1320 49,10D,47 42,20,77,-32,-16 0,21,-3,0,-1 19,104,69 29,111,21 31,10C,1359 44,10D,46 54,104,69 27,20,110,-17,-23 0,21,-3,0,2 18,111,21 31,10C,1382 35,10,7271820 0,D,46 0,A,-3381864 0,B,15124403 0,C,1 38,10D,46 49,104,69 29,20,72,-38,-30 0,21,-4,1,-2 19,111,20 30,10C,1398 35,10,7271840 0,D,46 0,A,-3381866 0,B,15124403 0,C,1 39,10D,46 44,104,66 30,111,20 20,20,96,-30,-32 0,21,-4,0,0 19,10C,1394 42,10D,46 45,104,63 30,111,17 29,10C,1367 35,20,121,-6,-23 0,21,-5,0,0 20,10D,46 48,104,50 32,111,14 30,10C,1324 47,10D,46 36,20,87,-23,-30 0,21,-5,0,0 25,104,40 28,111,14 30,10C,1304 46,10D,46 58,104,33 33,20,111,-10,-28 0,21,-6,1,-2 21,111,14 32,10C,1285 42,10D,46 47,104,31 28,111,16 33,10C,1261 35,20,96,-33,-26 0,21,-5,1,4 16,10,7271940 0,D,46 0,A,-3381878 0,B,15124403 0,C,1 66,10D,46 46,104,47 32,111,21 23,10,7271960 0,D,46 0,A,-3381880 0,B,15124403 0,C,1 40,10C,1281 32,20,93,-36,-19 0,21,-3,0,1 20,10D,46 43,104,68 32,111,21 30,10C,1312 44,10D,46 37,20,110,-12,-25 0,21,-3,0,1 20,104,68 27,111,18 32,10C,1335 43,10D,46 47,104,57 34,111,18 21,20,97,-19,-35 0,21,-3,0,0 20,10C,1343 53,10D,46 38,10,7272020 0,D,45 0,A,-3381887 0,B,15124402 0,C,1 40,104,55 27,111,20 22,20,118,-17,-20 0,21,-4,0,0 20,10C,1328 42,10D,46 47,104,69 30,111,22 29,10C,1347 34,20,104,-26,-61 0,21,-4,-1,2 21,10D,46 45,104,73 31,111,21 39,10C,1363 48,10D,46 36,20,127,1,-24 0,21,-3,-1,-1 20,104,73 30,111,21 30,10C,1375 53,10D,46 49,104,71 21,20,87,-37,-17 0,21,-3,0,1 20,111,21 29,10C,1382 36,10,7272100 0,D,46 0,A,-3381896 0,B,15124400 0,C,1 39,10D,46 44,104,69 30,111,19 34,20,107,-2,-22 0,21,-3,0,0 19,10C,1382 34,10,7272120 0,D,46 0,A,-3381898 0,B,15124400 0,C,1 42,10D,46 44,104,50 30,111,14 31,10C,1359 34,20,81,-50,-14 0,21,-2,1,2 22,10D,46 43,104,36 43,111,13 32,10C,1335 45,10D,46 37,20,134,-14,-4 0,21,-2,-7,3 18,10,7272160 0,D,46 0,A,-3381903 0,B,15124398 0,C,1 64,104,28 32,111,13 32,10C,1300 43,10D,46 37,20,93,-22,-17 0,21,-1,0,-1 21,104,22 31,111,12 30,10C,1277 45,10D,46 47,104,21 29,20,56,-46,-10 0,21,-2,1,0 20,111,12 32,10C,1265 42,10D,46 52,10,7272220 0,D,46 0,A,-3381910 0,B,15124396 0,C,1 43,104,20 19,20,99,-22,-4 0,21,0,0,-1 20,111,12 31,10C,1234 47,10D,45 42,10,7272240 0,D,46 0,A,-3381912 0,B,15124395 0,C,1 38,104,17 25,20,84,-38,-1 0,21,0,-1,-1 19,111,12 28,10C,1238 46,10D,45 42,10,7272260 0,D,45 0,A,-3381914 0,B,15124395 0,C,1 40,104,15 28,111,11 21,20,111,-25,-6 0,21,0,-1,-1 20,10C,1238 44,10D,45 58,104,17 31,111,14 28,10C,1257 35,20,113,-11,-12 0,21,-1,0,0 20,10D,45 47,104,25 26,10,7272300 0,D,44 0,A,-3381918 0,B,15124393 0,C,1 39,111,15 32,10C,1257 39,20,103,-21,-9 0,21,-1,0,-1 24,10D,44 43,104,31 44,111,15 32,10C,1250 48,10D,44 36,20,95,-18,-5 0,21,-1,-1,0 20,104,33 27,111,15 22,10,7272340 0,D,44 0,A,-3381923 0,B,15124392 0,C,1 39,10C,1250 44,10D,44 49,104,34 22,20,128,2,-15 0,21,0,2,0 18,111,15 21,10,7272360 0,D,44 0,A,-3381925 0,B,15124391 0,C,1 55,10C,1253 45,10D,43 48,104,31 21,20,71,-42,-17 0,21,-1,0,0 21,111,13 19,10,7272380 0,D,43 0,A,-3381927 0,B,15124391 0,C,1 55,10C,1250 41,10D,43 48,104,26 21,20,102,-24,-20 0,21,0,0,-1 21,111,13 27,10C,1242 48,10D,43 44,104,23 28,111,12 32,10C,1238 34,20,92,-23,-6 0,21,-1,0,0 20,10D,43 53,104,20 44,111,12 32,10C,1230 51,10D,41 38,20,93,-27,3 0,21,0,0,0 21,104,17 31,111,11 29,10C,1238 46,10D,41 46,104,14 30,20,90,-28,-9 0,21,0,0,0 20,111,11 27,10C,1234 47,10D,41 44,104,13 23,10,7272480 0,D,42 0,A,-3381937 0,B,15124388 0,C,1 39,111,11 19,20,97,-25,-6 0,21,0,0,0 20,10C,1253 44,10D,41 44,104,13 30,111,11 31,10C,1257 34,20,102,-22,-12 0,21,0,0,-2 20,10D,41 48,104,12 28,111,11 29,10C,1261 36,10,7272520 0,D,41 0,A,-3381941 0,B,15124387 0,C,1 51,10D,40 45,20,104,-18,-8 0,21,0,0,-1 19,104,12 30,111,11 30,10C,1257 44,10D,40 45,104,12 30,111,11 21,20,92,-31,1 0,21,0,0,0 20,10C,1250 36,10,7272560 0,D,39 0,A,-3381945 0,B,15124386 0,C,1 40,10D,40 43,104,12 30,111,11 30,10C,1238 34,20,99,-27,-10 0,21,0,0,2 20,10D,40 36,10,7272580 0,D,39 0,A,-3381947 0,B,15124385 0,C,1 39,104,12 32,111,11 29,10C,1230 45,10D,38 37,20,97,-34,0 0,21,0,0,0 21,104,12 31,111,11 33,10C,1222 43,10D,38 44,104,12 24,10,7272620 0,D,37 0,A,-3381951 0,B,15124385 0,C,1 51,111,11 18,20,95,-28,1 0,21,0,0,0 20,10C,1218 61,10D,38 47,104,12 31,111,11 33,10C,1210 35,20,93,-47,0 0,21,0,0,1 19,10D,34 47,104,13 27,10,7272660 0,D,35 0,A,-3381955 0,B,15124384 0,C,1 39,111,11 28,10C,1210 42,20,107,-32,-3 0,21,0,0,0 21,10D,34 46,104,13 31,111,11 30,10C,1203 47,10D,34 37,20,117,-27,-7 0,21,0,0,0 20,104,12 30,111,11 29,10C,1199 35,10,7272700 0,D,32 0,A,-3381958 0,B,15124384 0,C,1 40,10D,34 47,104,13 22,20,99,-28,1 0,21,0,0,-2 19,111,11 30,10C,1210 36,10,7272720 0,D,31 0,A,-3381959 0,B,15124383 0,C,1 43,10D,31 44,104,13 30,20,101,-30,-10 0,21,0,-1,0 20,111,11 31,10C,1214 35,10,7272740 0,D,30 0,A,-3381961 0,B,15124383 0,C,1 39,10D,31 43,104,13 30,111,11 22,20,99,-33,-9 0,21,0,0,0 18,10C,1207 42,10D,31 45,104,13 30,111,11 30,10C,1207 38,20,86,-42,-7 0,21,0,0,0 19,10D,31 63,104,13 30,111,11 30,10C,1203 46,10D,27 37,20,95,-36,-12 0,21,0,0,0 20,104,13 32,111,11 29,10C,1199 43,10D,27 46,104,13 33,111,11 22,20,106,-35,-2 0,21,0,0,-1 15,10,7272820 0,D,25 0,A,-3381966 0,B,15124383 0,C,1 70,10C,1183 41,10D,27 54,104,15 22,20,95,-41,-6 0,21,0,0,0 16,10,7272840 0,D,24 0,A,-3381968 0,B,15124382 0,C,1 65,111,12 28,10C,996 45,10D,27 47,20,96,-32,0 0,21,0,0,0 17,10,7272860 0,D,24 0,A,-3381969 0,B,15124382 0,C,87 66,104,20 28,111,11 33,10C,980 43,10D,22 37,20,104,-29,-4 0,21,0,0,0 21,104,18 28,111,12 29,10C,921 45,10D,22 47,104,20 30,20,97,-34,-10 0,21,0,0,0 21,111,11 36,10C,875 46,10D,22 49,104,20 22,10,7272920 0,D,20 0,A,-3381972 0,B,15124382 0,C,87 40,111,11 20,20,97,-40,-8 0,21,0,0,0 19,10C,859 45,10D,18 43,104,21 40,111,12 34,10C,820 34,20,99,-31,-10 0,21,0,0,0 20,10D,18 43,104,22 32,111,11 24,10,7272960 0,D,17 0,A,-3381974 0,B,15124382 0,C,87 39,10C,800 40,10D,18 38,20,94,-37,-7 0,21,0,0,0 20,104,22 28,111,11 35,10C,800 36,10,7272980 0,D,17 0,A,-3381975 0,B,15124382 0,C,87 41,10D,18 40,20,96,-39,-12 0,21,0,0,0 18,104,22 30,111,11 43,10C,796 47,10D,14 49,104,22 22,20,102,-30,-13 0,21,0,0,0 19,111,11 30,10C,804 36,10,7273020 0,D,13 0,A,-3381976 0,B,15124382 0,C,87 41,10D,14 47,104,22 27,20,92,-37,-7 0,21,-1,0,0 22,111,11 30,10C,816 45,10,7273040 0,D,12 0,A,-3381977 0,B,15124382 0,C,87 41,10D,14 43,104,22 21,20,101,-29,-12 0,21,-1,0,0 20,111,11 30,10C,812 35,10,7273060 0,D,11 0,A,-3381977 0,B,15124382 0,C,87 41,10D,14 43,104,22 30,111,11 21,20,102,-29,-11 0,21,0,0,0 19,10C,816 41,10D,11 46,104,22 30,111,12 29,10C,796 38,20,93,-39,-13 0,21,-1,0,0 19,10D,11 49,104,24 29,111,12 30,10C,804 46,10D,11 37,20,104,-31,-8 0,21,-1,0,0 21,104,26 30,111,12 30,10C,820 46,10D,11 54,104,27 22,20,96,-35,-7 0,21,-1,0,0 24,111,12 29,10,7273140 0,D,7 0,A,-3381979 0,B,15124382 0,C,87 43,10C,828 53,10D,8 50,104,27 20,20,98,-32,-8 0,21,-1,0,0 22,111,12 27,10C,800 43,10D,8 45,104,27 33,111,12 29,10C,785 34,20,99,-25,-11 0,21,-1,0,0 17,10,7273180 0,D,5 0,A,-3381980 0,B,15124382 0,C,87 66,10D,8 42,104,29 29,111,12 31,10C,746 34,20,98,-26,-11 0,21,-1,0,0 20,10D,8 47,104,29 30,111,12 29,10C,730 46,10D,5 38,20,97,-27,-9 0,21,-1,0,0 16,10,7273220 0,D,5 0,A,-3381980 0,B,15124382 0,C,86 66,104,29 30,111,11 31,10,7273240 0,D,3 0,A,-3381980 0,B,15124382 0,C,86 45,10C,707 41,20,101,-25,-9 0,21,0,0,0 20,10D,5 46,104,29 32,111,11 34,10C,683 36,10,7273260 0,D,3 0,A,-3381981 0,B,15124382 0,C,86 41,10D,5 35,20,97,-31,-9 0,21,-1,0,0 19,104,29 30,111,11 30,10C,652 43,10D,5 55,104,28 25,20,101,-30,-9 0,21,-1,0,0 20,111,11 33,10C,640 44,10D,3 49,104,28 29,111,11 26,20,100,-29,-10 0,21,-1,0,0 20,10C,632 38,10D,3 47,104,28 29,111,11 30,10C,640 39,20,106,-18,-8 0,21,-1,0,0 19,10D,3 46,104,28 22,10,7273340 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,111,11 45,10C,644 34,20,98,-21,-11 0,21,-1,0,0 19,10D,3 43,104,28 34,10,7273360 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,111,11 19,10,7273360 0,D,0 0,A,3350000 0,B,260000 0,C,11 41,10C,644 32,20,100,-17,-11 0,21,-1,0,0 20,10D,1 36,10,7273380 0,D,0 0,A,-3381981 0,B,15124382 0,C,11 45,104,28 28,111,11 30,10C,652 42,20,104,-19,-10 0,21,-1,0,0 18,10D,1 37,10,7273400 0,D,0 0,A,-3381981 0,B,15124382 0,C,11 41,104,28 28,111,11 29,10C,640 45,10D,1 37,20,103,-18,-10 0,21,-1,0,0 21,104,28 31,111,11 30,10C,640 46,10D,0 48,104,28 27,20,102,-17,-10 0,21,-1,0,0 22,111,11 27,10C,628 46,10D,0 55,104,28 31,111,11 22,20,102,-18,-11 0,21,-1,0,0 16,10,7273460 0,D,0 0,A,-3381981 0,B,15124382 0,C,11 67,10C,628 44,10D,0 43,104,28 30,111,11 22,20,103,-18,-11 0,21,-1,0,0 21,10C,648 53,10D,0 45,104,28 32,111,11 33,10C,640 34,20,102,-18,-11 0,21,-1,0,0 18,10,7273500 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 66,10D,0 45,104,28 31,111,11 41,10C,628 34,20,101,-19,-11 0,21,0,0,0 19,10D,0 46,104,27 29,111,11 31,10C,625 46,10D,0 37,20,103,-18,-10 0,21,-1,0,0 24,104,27 37,111,11 31,10C,628 44,10D,0 45,104,27 21,20,102,-17,-9 0,21,-1,0,0 20,111,11 31,10C,628 44,10D,0 39,10,7273580 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 40,104,27 28,20,101,-19,-9 0,21,-1,0,0 20,111,11 27,10C,628 44,10D,0 39,10,7273600 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,104,27 28,111,11 20,20,101,-19,-10 0,21,-1,0,0 21,10C,628 42,10D,0 46,104,27 29,111,11 30,10C,632 35,20,100,-18,-13 0,21,-1,0,0 19,10D,0 45,104,27 31,111,11 31,10C,628 42,10D,0 37,20,103,-17,-13 0,21,-1,0,0 20,104,27 43,111,11 32,10,7273660 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,10C,625 43,10D,0 38,20,101,-18,-10 0,21,-1,0,0 19,104,26 30,111,11 22,10,7273680 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,10C,617 40,10D,0 45,104,26 22,20,101,-18,-12 0,21,-1,0,0 18,111,11 22,10,7273700 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 55,10C,601 45,10D,0 48,104,26 22,20,102,-17,-11 0,21,-1,0,0 18,111,11 22,10,7273720 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 55,10C,617 41,10D,0 60,104,26 22,20,100,-18,-12 0,21,-1,0,0 20,111,11 29,10C,621 50,10D,0 45,104,26 30,111,11 30,20,101,-17,-11 0,21,-1,0,0 20,10C,617 41,10D,0 49,104,26 30,111,11 30,10C,613 32,20,102,-17,-11 0,21,-1,0,0 22,10D,0 47,104,26 30,111,11 29,10C,613 45,10D,0 36,20,103,-17,-11 0,21,-1,0,0 22,104,26 27,111,11 30,10C,617 46,10D,0 48,104,26 27,20,102,-17,-10 0,21,-1,0,0 20,111,11 28,10C,617 51,10D,0 48,104,26 32,111,11 22,20,102,-18,-10 0,21,-1,0,0 20,10C,609 40,10D,0 46,104,26 30,111,11 31,10C,609 43,20,101,-19,-9 0,21,-1,0,0 21,10D,0 47,104,26 39,111,11 29,10C,609 46,10D,0 41,20,103,-18,-9 0,21,-1,0,0 15,10,7273880 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 69,104,26 31,111,11 30,10C,613 43,10D,0 38,20,102,-18,-12 0,21,-1,0,0 20,104,25 27,111,11 30,10C,609 47,10D,0 39,10,7273920 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,104,26 18,20,102,-18,-9 0,21,-1,0,0 21,111,11 31,10C,613 45,10D,0 50,104,25 33,111,11 21,20,102,-19,-10 0,21,-1,0,0 21,10C,609 43,10D,0 44,104,25 31,10,7273960 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 40,111,11 25,20,101,-17,-12 0,21,-1,0,0 19,10C,609 40,10D,0 44,104,25 22,10,7273980 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 40,111,11 31,10C,601 34,20,104,-17,-8 0,21,0,0,0 20,10D,0 45,104,25 30,111,11 23,10,7274000 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 41,10C,601 40,10D,0 37,20,102,-19,-9 0,21,-1,0,0 19,104,25 25,10,7274020 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 53,111,11 32,10C,605 46,10D,0 36,20,103,-17,-10 0,21,-1,0,0 20,104,25 30,10,7274040 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 47,111,11 31,10C,609 43,10D,0 36,20,102,-18,-9 0,21,-1,0,0 20,104,25 29,10,7274060 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 48,111,11 27,10C,601 47,10D,0 35,20,100,-17,-10 0,21,-1,0,0 21,104,25 19,10,7274080 0,D,0 0,A,-3381981 0,B,15124382 0,C,86 57,111,11 27,10C,605 58,10D,0 37,20,102,-18,-12 0,21,-1,0,0 20,104,26 28,111,11 33,10C,601 42,10D,0 45,104,26 30,111,11 22,20,100,-18,-10 0,21,-1,0,0 15,10,7274120 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 68,10C,601 40,10D,0 48,104,25 22,10,7274140 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,111,11 19,20,101,-18,-10 0,21,-1,0,0 20,10C,609 40,10D,0 44,104,25 35,111,11 43,10C,609 34,20,103,-17,-11 0,21,-1,0,0 20,10D,0 43,104,25 31,111,11 31,10C,605 55,10D,0 38,20,104,-17,-8 0,21,-1,0,0 19,104,25 27,111,11 32,10C,601 43,10D,0 49,104,25 29,111,11 22,20,100,-20,-10 0,21,-1,0,0 19,10C,605 39,10D,0 46,104,25 30,111,10 34,10C,613 34,20,102,-16,-10 0,21,-1,0,0 19,10D,0 85,104,25 34,111,11 30,10C,609 33,20,103,-18,-11 0,21,-1,0,0 20,10D,0 46,104,25 22,10,7274260 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 40,111,11 37,10C,605 39,20,102,-18,-10 0,21,-1,0,0 20,10D,0 42,104,25 26,10,7274280 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 40,111,11 28,10C,605 46,10D,0 36,20,101,-18,-11 0,21,-1,0,0 19,104,25 22,10,7274300 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 55,111,10 28,10C,601 43,10D,0 36,20,103,-18,-11 0,21,-1,0,0 19,104,25 21,10,7274320 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 56,111,11 30,10C,605 42,10D,0 37,20,102,-17,-10 0,21,-1,0,0 21,104,25 19,10,7274340 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 56,111,11 31,10C,605 42,10D,0 37,20,103,-17,-9 0,21,-1,0,0 18,10,7274360 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 65,104,25 66,111,10 28,10C,605 34,20,102,-19,-9 0,21,-1,0,0 21,10D,0 48,104,25 29,111,11 30,10C,605 45,10D,0 36,20,100,-19,-10 0,21,-1,0,0 22,104,25 27,111,11 30,10C,597 46,10D,0 48,104,25 27,20,100,-17,-10 0,21,-1,0,0 20,111,10 28,10C,593 55,10D,0 45,104,25 31,111,10 21,20,101,-16,-12 0,21,-1,0,0 18,10,7274440 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 65,10C,593 44,10D,0 44,104,25 31,111,10 34,20,102,-18,-10 0,21,-1,0,0 20,10C,597 40,10D,0 55,104,25 31,111,10 24,10,7274480 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 44,10C,597 32,20,103,-17,-10 0,21,-1,0,0 20,10D,0 46,104,25 28,111,10 31,10C,605 47,10D,0 37,20,101,-18,-11 0,21,-1,0,0 19,104,25 32,111,10 30,10C,605 43,10D,0 47,104,25 29,111,11 21,20,102,-17,-10 0,21,-1,0,0 20,10C,609 51,10D,0 38,10,7274540 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,104,25 31,111,10 21,20,103,-17,-9 0,21,-1,0,0 20,10C,605 42,10D,0 46,104,25 30,111,11 29,10C,609 34,20,104,-17,-10 0,21,-1,0,0 21,10D,0 55,104,25 21,10,7274580 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 45,111,11 32,10C,605 33,20,103,-16,-9 0,21,-1,0,0 21,10D,0 45,104,25 22,10,7274600 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 40,111,11 32,10C,605 43,20,103,-16,-8 0,21,-1,0,0 20,10D,0 46,104,25 22,10,7274620 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,111,11 27,10C,597 47,10D,0 35,20,102,-17,-10 0,21,-1,0,0 20,104,25 20,10,7274640 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 56,111,10 32,10C,609 42,10D,0 37,20,104,-17,-10 0,21,-1,0,0 20,104,25 20,10,7274660 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 55,111,11 31,10C,605 50,10D,0 45,20,101,-19,-11 0,21,-1,0,0 22,104,25 28,111,11 29,10C,605 46,10D,0 48,104,25 29,111,10 22,20,104,-18,-11 0,21,-1,0,0 16,10,7274700 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 67,10C,605 40,10D,0 47,104,25 23,10,7274720 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,111,11 20,20,102,-16,-8 0,21,-1,0,0 19,10C,609 40,10D,0 45,104,25 24,10,7274740 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 40,111,11 28,10C,609 34,20,103,-18,-8 0,21,-1,0,0 19,10D,0 47,104,25 29,111,11 22,10,7274760 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 45,10C,609 41,20,102,-17,-11 0,21,-1,0,0 19,10D,0 43,104,25 32,10,7274780 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,111,10 32,10C,597 33,20,102,-17,-11 0,21,-1,0,0 20,10D,0 46,104,25 31,111,10 21,10,7274800 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,10C,601 43,10D,0 37,20,102,-18,-12 0,21,-1,0,0 20,104,25 36,111,10 22,10,7274820 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,10C,597 44,10D,0 37,20,102,-18,-13 0,21,-1,0,0 19,104,25 37,10,7274840 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,111,10 32,10C,605 46,10D,0 37,20,102,-18,-11 0,21,-1,0,0 19,104,25 25,10,7274860 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 53,111,10 28,10C,605 46,10D,0 37,20,102,-17,-8 0,21,-1,0,0 19,104,25 37,111,11 30,10C,605 46,10D,0 49,104,25 20,20,101,-18,-12 0,21,-1,0,0 19,111,11 37,10C,601 43,10D,0 45,104,25 29,111,10 29,20,102,-19,-10 0,21,-1,0,0 17,10C,601 42,10D,0 49,104,25 29,111,10 30,10C,601 34,20,102,-18,-12 0,21,-1,0,0 19,10D,0 37,10,7274940 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,104,25 31,111,10 34,10C,605 40,20,101,-17,-9 0,21,-1,0,0 24,10D,0 36,10,7274960 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,104,25 26,111,10 34,10C,601 41,10D,0 37,20,101,-17,-10 0,21,-1,0,0 21,104,25 41,111,10 43,10C,605 45,10D,0 45,104,25 21,20,101,-18,-11 0,21,-1,0,0 16,10,7275000 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 67,111,11 32,10C,609 44,10D,0 43,20,101,-18,-10 0,21,-1,0,0 19,104,25 28,111,12 30,10C,605 45,10D,0 45,104,38 21,10,7275040 0,D,0 0,A,-3381981 0,B,15124383 0,C,86 41,111,19 19,20,104,-17,-12 0,21,-1,0,0 20,10C,691 44,10D,0 43,104,67 31,111,18 35,10C,1140 34,20,104,-7,-9 0,21,-1,0,-1 20,10D,0 46,104,56 28,111,18 35,10C,1511 43,10D,0 46,20,105,2,-13 0,21,-1,0,-1 20,104,49 27,111,18 31,10C,1632 43,10D,0 47,104,44 29,111,18 21,20,112,11,-6 0,21,-1,0,-1 20,10C,1578 39,10D,0 46,104,45 30,111,18 30,10C,1523 39,20,103,-6,-13 0,21,-1,0,0 19,10D,1 45,104,47 24,10,7275140 0,D,3 0,A,-3381981 0,B,15124383 0,C,86 41,111,18 31,10C,1476 43,20,100,-7,-12 0,21,0,0,0 20,10D,1 41,104,54 23,10,7275160 0,D,5 0,A,-3381982 0,B,15124383 0,C,86 40,111,22 29,10C,1550 47,10D,1 36,20,109,6,-10 0,21,-1,0,0 19,104,68 33,111,21 34,10C,1718 56,10D,1 58,20,128,30,-9 0,21,-1,0,-2 19,104,66 33,111,21 30,10C,1777 42,10D,5 45,104,64 33,111,21 22,20,98,-12,-14 0,21,-1,0,-1 20,10C,1832 41,10D,5 45,104,63 30,111,22 42,10C,1882 34,20,95,-5,-6 0,21,-1,0,0 20,10D,5 44,104,63 30,111,23 30,10C,1917 45,10D,5 37,20,92,-14,0 0,21,0,0,0 20,104,64 28,111,23 29,10C,1960 46,10D,10 50,104,64 26,10,7275280 0,D,12 0,A,-3381984 0,B,15124383 0,C,86 41,111,23 19,20,107,-4,0 0,21,-1,0,0 20,10C,1988 49,10D,10 54,104,63 30,111,23 31,10C,2023 34,20,105,-1,-23 0,21,-1,0,0 20,10D,10 43,104,62 32,111,23 27,10,7275320 0,D,15 0,A,-3381986 0,B,15124383 0,C,86 41,10C,2042 41,10D,10 36,20,102,-9,-9 0,21,-1,0,0 21,104,63 39,111,23 30,10C,2050 43,10D,14 47,104,63 21,20,106,2,-18 0,21,-1,0,-2 20,111,23 29,10C,2074 43,10D,14 47,104,63 30,111,23 30,10C,2085 34,20,109,-3,-14 0,21,0,-1,0 19,10D,14 44,104,62 24,10,7275380 0,D,15 0,A,-3381989 0,B,15124383 0,C,86 41,111,23 26,10C,2093 46,10D,14 46,20,105,-4,2 0,21,0,0,0 25,104,63 28,111,24 33,10C,2125 42,10D,18 45,104,66 27,20,108,-2,2 0,21,0,0,0 15,10,7275420 0,D,20 0,A,-3381991 0,B,15124383 0,C,86 68,111,25 32,10C,2195 42,10D,18 46,104,68 21,20,103,0,-15 0,21,0,0,0 15,10,7275440 0,D,21 0,A,-3381992 0,B,15124383 0,C,86 68,111,25 32,10C,2218 44,10D,18 43,20,113,13,-14 0,21,0,0,-1 20,104,67 31,111,24 30,10C,2167 46,10D,18 46,104,69 22,10,7275480 0,D,24 0,A,-3381994 0,B,15124384 0,C,86 39,111,24 20,20,108,2,-10 0,21,0,0,-1 19,10C,2128 45,10D,22 49,104,69 30,10,7275500 0,D,24 0,A,-3381995 0,B,15124384 0,C,86 45,111,24 20,20,117,0,-8 0,21,0,0,1 19,10C,2085 40,10D,22 46,104,69 22,10,7275520 0,D,25 0,A,-3381997 0,B,15124384 0,C,86 40,111,24 27,10C,2039 35,20,101,-3,0 0,21,0,0,0 20,10D,22 45,104,70 30,111,24 31,10C,2015 60,10D,25 36,20,115,0,-6 0,21,0,0,0 20,104,71 40,111,24 21,10,7275560 0,D,26 0,A,-3381999 0,B,15124384 0,C,86 41,10C,1968 40,10D,25 38,20,90,-1,-6 0,21,-1,0,1 20,104,71 28,111,24 40,10C,1929 46,10D,25 49,104,71 22,20,116,-8,-3 0,21,0,0,1 19,111,24 30,10C,1890 45,10,7275600 0,D,28 0,A,-3382002 0,B,15124385 0,C,86 44,10D,25 44,104,72 22,20,115,-1,-18 0,21,-1,0,0 19,111,24 31,10C,1843 35,10,7275620 0,D,29 0,A,-3382004 0,B,15124385 0,C,86 41,10D,28 47,104,74 29,111,24 21,20,104,-12,-15 0,21,-1,0,-2 19,10C,1804 34,10,7275640 0,D,30 0,A,-3382005 0,B,15124385 0,C,86 44,10D,28 43,104,73 30,111,24 32,10C,1812 33,20,91,-19,-14 0,21,-1,0,1 22,10D,28 43,104,73 30,111,24 29,10C,1832 46,10D,28 37,20,136,14,-11 0,21,-1,0,-1 21,104,72 31,111,24 30,10C,1843 46,10D,31 60,104,72 29,20,114,-3,-1 0,21,0,0,-1 20,10,7275700 0,D,31 0,A,-3382010 0,B,15124385 0,C,86 63,111,24 32,10C,1871 45,10D,31 39,10,7275720 0,D,32 0,A,-3382012 0,B,15124386 0,C,86 41,104,72 18,20,105,-8,-7 0,21,0,0,0 20,111,24 32,10C,1882 45,10D,31 46,104,71 34,111,24 25,20,120,0,-9 0,21,0,0,1 20,10C,1890 44,10D,31 42,10,7275760 0,D,34 0,A,-3382015 0,B,15124386 0,C,86 41,104,72 27,111,24 26,20,103,-8,-4 0,21,0,0,0 20,10C,1917 43,10D,33 46,104,70 22,10,7275780 0,D,35 0,A,-3382017 0,B,15124386 0,C,86 40,111,24 27,10C,1937 34,20,103,-8,-19 0,21,-1,-2,2 25,10D,33 45,104,70 23,10,7275800 0,D,35 0,A,-3382018 0,B,15124387 0,C,86 41,111,24 37,10C,1949 34,20,118,4,-8 0,21,-1,-1,0 21,10D,33 46,104,69 21,10,7275820 0,D,36 0,A,-3382020 0,B,15124387 0,C,86 41,111,24 28,10C,1960 46,10D,35 37,20,96,-12,-8 0,21,0,0,0 19,104,63 28,111,22 30,10C,1933 43,10D,35 46,104,62 32,111,22 21,20,81,-25,-7 0,21,-1,0,-1 21,10C,1800 41,10D,35 49,104,65 30,111,22 33,10C,1703 34,20,94,-22,-22 0,21,-1,0,2 20,10D,35 44,104,67 30,111,22 30,10C,1632 46,10D,35 37,20,105,-2,-16 0,21,-1,0,0 24,104,68 27,111,22 46,10C,1574 55,10D,37 45,104,70 22,20,94,-23,-12 0,21,-1,0,0 15,10,7275920 0,D,39 0,A,-3382030 0,B,15124388 0,C,86 68,111,22 31,10C,1531 65,10D,37 37,20,98,-18,-9 0,21,-1,0,0 20,104,71 31,111,22 31,10C,1500 45,10D,37 50,104,71 28,20,111,-13,-8 0,21,-1,0,1 19,111,22 32,10C,1476 46,10D,39 48,104,70 23,10,7275980 0,D,40 0,A,-3382036 0,B,15124389 0,C,86 41,111,21 20,20,117,-4,-10 0,21,-1,0,-1 19,10C,1457 41,10D,39 45,104,70 30,111,21 22,10,7280000 0,D,40 0,A,-3382038 0,B,15124389 0,C,86 45,10C,1441 32,20,122,-4,-16 0,21,-1,0,2 20,10D,39 52,104,65 30,111,19 21,10,7280020 0,D,40 0,A,-3382040 0,B,15124389 0,C,86 41,10C,1414 37,20,115,-7,-11 0,21,-1,0,0 21,10D,39 46,104,60 29,111,18 22,10,7280040 0,D,40 0,A,-3382042 0,B,15124390 0,C,86 41,10C,1378 41,10D,40 37,20,97,-26,-8 0,21,-1,0,0 20,104,53 30,111,16 22,10,7280060 0,D,40 0,A,-3382044 0,B,15124390 0,C,86 42,10C,1335 50,10D,40 37,20,77,-40,-12 0,21,-1,0,2 20,104,41 26,111,14 24,10,7280080 0,D,40 0,A,-3382046 0,B,15124390 0,C,86 45,10C,1296 41,10D,40 46,104,34 21,20,85,-31,-7 0,21,0,0,0 18,111,14 33,10C,1273 44,10D,40 49,104,40 30,111,17 29,20,109,-20,-16 0,21,-1,0,2 20,10C,1269 41,10D,40 40,10,7280120 0,D,40 0,A,-3382050 0,B,15124391 0,C,89 40,104,52 31,111,20 29,20,130,8,-10 0,21,0,0,0 19,10C,1253 34,10,7280140 0,D,40 0,A,-3382052 0,B,15124391 0,C,89 44,10D,40 47,104,65 30,111,20 29,20,118,-7,-18 0,21,-2,0,0 18,10C,1277 34,10,7280160 0,D,40 0,A,-3382054 0,B,15124391 0,C,89 44,10D,40 44,104,68 30,111,20 32,10C,1296 33,20,101,-28,-10 0,21,-2,0,0 25,10D,40 44,104,66 34,111,20 34,10C,1312 44,10D,40 37,20,104,-7,-17 0,21,-1,0,-4 21,104,65 32,111,20 29,10C,1320 46,10D,40 53,10,7280220 0,D,41 0,A,-3382060 0,B,15124392 0,C,89 40,104,65 19,20,91,-27,-16 0,21,-2,0,-2 21,111,20 27,10C,1332 45,10D,40 46,10,7280240 0,D,41 0,A,-3382062 0,B,15124392 0,C,89 41,104,65 20,20,112,-9,-4 0,21,-1,0,-1 20,111,20 27,10C,1339 46,10D,40 46,10,7280260 0,D,41 0,A,-3382064 0,B,15124393 0,C,89 41,104,65 23,20,100,-15,0 0,21,-1,0,0 21,111,20 28,10C,1343 50,10D,40 46,104,61 43,111,17 30,20,99,-22,-11 0,21,-1,0,-1 19,10C,1320 41,10D,40 44,104,47 31,111,14 30,10C,1296 35,20,87,-25,-13 0,21,-1,0,0 20,10D,40 44,104,40 41,111,14 31,10,7280320 0,D,42 0,A,-3382071 0,B,15124393 0,C,89 41,10C,1281 32,20,90,-25,-14 0,21,-2,0,0 21,10D,40 46,104,32 28,111,14 31,10C,1261 44,10D,40 37,20,98,-21,-26 0,21,-3,0,0 21,104,29 26,111,15 32,10C,1246 44,10D,40 45,104,32 30,111,15 21,20,101,-20,-32 0,21,-2,1,0 21,10C,1230 42,10D,40 47,104,33 29,111,15 30,10C,1218 35,20,100,-20,-24 0,21,-3,0,-2 23,10D,40 47,104,34 30,111,15 31,10C,1210 43,10D,40 37,20,107,-24,-21 0,21,-3,0,1 19,104,35 30,111,15 40,10C,1210 46,10,7280420 0,D,42 0,A,-3382081 0,B,15124394 0,C,91 40,10D,40 36,20,100,-19,-17 0,21,-3,0,0 19,104,35 30,111,15 23,10,7280440 0,D,40 0,A,-3382083 0,B,15124394 0,C,91 41,10C,1214 45,10D,40 42,20,93,-26,-17 0,21,-2,0,-1 19,104,35 30,111,15 22,10,7280460 0,D,40 0,A,-3382085 0,B,15124394 0,C,91 41,10C,1226 41,10D,40 49,104,34 22,20,96,-32,-16 0,21,-2,1,1 18,111,15 32,10C,1234 44,10D,40 50,104,37 30,111,16 29,20,107,-29,-12 0,21,-2,0,-2 18,10C,1242 41,10D,40 46,104,37 30,111,16 29,10C,1246 39,20,59,-36,-33 0,21,-2,0,0 20,10D,40 36,10,7280520 0,D,40 0,A,-3382091 0,B,15124394 0,C,91 41,104,40 41,111,16 29,10C,1250 34,20,53,-45,-15 0,21,-2,0,-1 20,10D,39 45,104,46 29,111,18 30,10C,1261 46,10D,39 37,20,77,-15,-13 0,21,-2,1,0 21,104,52 28,111,18 30,10C,1261 43,10D,39 45,104,54 32,111,18 21,20,96,-33,-14 0,21,-2,1,3 20,10C,1269 41,10D,39 46,104,56 30,111,18 32,10C,1289 34,20,102,-19,-22 0,21,-1,0,1 24,10D,39 44,104,57 30,111,18 42,10C,1281 45,10D,39 50,20,92,-20,-21 0,21,-2,0,-1 17,10,7280620 0,D,40 0,A,-3382101 0,B,15124394 0,C,91 66,104,58 41,111,18 30,10C,1285 35,10,7280640 0,D,40 0,A,-3382103 0,B,15124394 0,C,91 41,10D,39 34,20,103,-20,-5 0,21,-2,1,2 21,104,60 30,111,19 28,10C,1285 36,10,7280660 0,D,40 0,A,-3382105 0,B,15124394 0,C,91 41,10D,39 43,104,64 22,20,85,-28,-21 0,21,-2,0,0 19,111,20 30,10C,1292 56,10D,40 50,104,67 34,111,20 22,20,122,2,-1 0,21,-2,0,-1 19,10C,1308 37,10,7280700 0,D,40 0,A,-3382109 0,B,15124394 0,C,91 45,10D,40 57,104,67 30,111,20 21,20,66,-28,-19 0,21,-2,0,2 19,10C,1312 46,10D,40 39,10,7280720 0,D,40 0,A,-3382111 0,B,15124394 0,C,91 40,104,67 28,111,20 29,20,78,-33,-13 0,21,-3,0,1 19,10C,1316 54,10D,40 49,104,69 30,111,21 29,10C,1335 34,20,125,-12,-11 0,21,-3,0,2 17,10,334926 0,D,40 5,10D,40 37,10,7280760 0,D,41 7,104,69 30,111,21 30,10C,1339 47,10D,40 37,20,87,-25,-15 0,21,-2,0,0 21,104,70 41,111,21 29,10C,1351 46,10D,40 50,104,70 20,20,113,-7,-20 0,21,-2,0,0 22,111,21 35,10C,1359 46,10D,40 47,104,70 28,111,21 22,20,96,-15,-22 0,21,-1,-1,-1 20,10C,1363 45,10D,41 50,104,70 33,111,21 33,10C,1375 34,20,103,-16,-15 0,21,-2,0,-2 21,10D,41 52,104,69 30,111,21 30,10C,1390 45,10D,41 38,20,110,-18,-9 0,21,0,0,0 20,104,66 28,111,20 30,10C,1378 46,10D,41 48,104,64 31,111,18 20,20,100,-22,-7 0,21,0,0,1 22,10C,1367 44,10D,42 49,104,53 27,111,14 31,10C,1339 35,20,91,-30,-5 0,21,0,0,0 20,10D,42 47,104,40 34,111,14 31,10C,1316 44,10D,42 37,20,92,-33,-6 0,21,-1,0,1 17,10,7280920 0,D,41 0,A,-3382133 0,B,15124391 0,C,92 67,104,32 26,111,13 31,10,7280940 0,D,44 0,A,-3382135 0,B,15124390 0,C,92 41,10C,1292 41,20,90,-27,-7 0,21,-1,0,1 21,10D,42 43,104,25 31,111,13 39,10C,1273 37,10,7280960 0,D,44 0,A,-3382137 0,B,15124390 0,C,92 40,10D,42 36,20,107,-24,-4 0,21,0,0,0 19,104,22 26,111,12 27,10,7280980 0,D,44 0,A,-3382139 0,B,15124390 0,C,92 41,10C,1250 53,10D,42 37,20,100,-22,-10 0,21,-1,0,0 20,104,24 29,111,16 31,10C,1261 44,10D,42 45,104,37 29,111,18 22,20,109,-23,-7 0,21,-1,0,1 19,10C,1234 46,10D,42 39,10,7281020 0,D,44 0,A,-3382144 0,B,15124389 0,C,91 41,104,50 28,111,18 29,20,110,-13,-13 0,21,-1,0,0 18,10C,1238 42,10D,42 46,104,58 41,10,7281040 0,D,44 0,A,-3382146 0,B,15124389 0,C,91 40,111,18 18,20,105,-12,-5 0,21,-1,0,1 20,10C,1269 41,10D,42 50,104,60 30,111,18 29,10C,1277 34,20,82,-28,-4 0,21,0,0,0 20,10D,42 48,104,60 34,111,19 29,10C,1296 46,10D,42 37,20,103,-7,-1 0,21,0,0,-1 21,104,61 19,10,7281100 0,D,44 0,A,-3382153 0,B,15124388 0,C,91 55,111,19 28,10C,1300 43,10D,43 37,20,115,-15,-11 0,21,-1,0,0 24,104,63 29,111,19 33,10C,1308 43,10D,43 55,104,62 21,20,93,-25,-10 0,21,-2,0,0 21,111,19 28,10C,1316 47,10D,43 58,104,62 29,111,19 20,20,98,-23,-14 0,21,-1,0,0 22,10C,1316 45,10D,43 49,104,61 30,111,18 29,10C,1312 33,20,91,-26,-12 0,21,-1,0,0 22,10D,44 44,104,53 30,111,15 33,10C,1281 42,10D,44 37,20,110,-19,-10 0,21,-1,0,0 22,104,44 26,111,15 31,10C,1265 46,10D,44 48,104,37 27,20,98,-19,-13 0,21,-1,0,0 16,10,7281220 0,D,45 0,A,-3382166 0,B,15124386 0,C,91 68,111,14 32,10C,1250 42,10D,44 42,20,108,-17,-7 0,21,-1,0,0 19,10,7281240 0,D,45 0,A,-3382168 0,B,15124386 0,C,91 64,104,30 43,111,13 32,10C,1246 42,20,111,-22,-5 0,21,0,0,0 17,10,7281260 0,D,45 0,A,-3382171 0,B,15124385 0,C,91 66,10D,44 44,104,24 29,111,12 33,10C,1234 34,20,107,-17,-11 0,21,0,0,-1 17,10,7281280 0,D,45 0,A,-3382173 0,B,15124385 0,C,91 65,10D,44 48,104,20 31,111,12 34,10C,1234 35,20,110,-22,-13 0,21,-1,0,0 20,10D,44 44,104,17 30,111,11 40,10C,1234 37,10,7281320 0,D,45 0,A,-3382177 0,B,15124384 0,C,91 40,10D,44 35,20,110,-23,-18 0,21,-1,0,-1 24,104,14 28,111,11 31,10C,1246 44,10D,44 46,104,13 29,111,11 42,20,107,-22,-17 0,21,0,0,1 20,10C,1246 38,10,7281360 0,D,44 0,A,-3382182 0,B,15124384 0,C,91 40,10D,44 48,104,12 34,111,11 20,20,111,-18,-7 0,21,-1,0,-1 20,10C,1246 37,10,7281380 0,D,44 0,A,-3382184 0,B,15124383 0,C,91 41,10D,44 44,104,12 30,111,11 30,20,101,-25,-14 0,21,0,0,0 18,10C,1250 41,10,7281400 0,D,44 0,A,-3382186 0,B,15124383 0,C,91 41,10D,43 47,104,12 34,111,11 22,20,93,-30,-10 0,21,-1,0,0 19,10C,1250 38,10,7281420 0,D,43 0,A,-3382189 0,B,15124383 0,C,91 44,10D,43 48,104,16 30,111,14 21,20,101,-26,-13 0,21,-1,0,0 20,10C,1281 79,10D,43 49,104,22 29,111,14 31,20,122,-14,-12 0,21,-1,0,0 20,10C,1257 41,10D,42 51,104,25 33,111,14 29,10C,1269 35,20,104,-12,-6 0,21,-1,0,2 19,10D,42 45,104,27 33,111,14 34,10C,1273 42,10D,42 37,20,115,-12,-14 0,21,-1,0,-2 20,104,29 21,10,7281500 0,D,42 0,A,-3382197 0,B,15124381 0,C,91 55,111,14 31,10C,1273 52,10D,42 37,20,107,-14,-11 0,21,-1,1,0 22,104,29 27,111,14 30,10C,1269 43,10D,42 45,104,29 33,20,99,-23,-5 0,21,-1,0,-1 17,10,7281540 0,D,42 0,A,-3382201 0,B,15124381 0,C,91 67,111,14 31,10C,1265 43,10D,42 45,20,98,-27,-11 0,21,-1,0,0 22,104,34 29,111,16 29,10C,1269 46,10D,42 50,104,38 24,20,120,-7,-6 0,21,-1,0,1 18,10,7281580 0,D,42 0,A,-3382205 0,B,15124380 0,C,91 65,111,16 29,10C,1265 43,10D,42 44,104,41 21,20,99,-24,-5 0,21,0,0,0 21,111,16 31,10C,1257 43,10D,42 46,104,41 27,111,16 31,10C,1253 34,20,109,-15,3 0,21,0,0,0 20,10D,42 48,104,41 33,111,16 32,10C,1253 44,10D,42 37,20,104,-14,-9 0,21,0,0,0 21,10,7281640 0,D,42 0,A,-3382212 0,B,15124379 0,C,91 62,104,41 27,111,16 44,10C,1250 43,10D,42 38,20,108,-17,-8 0,21,0,0,-1 20,104,41 36,111,15 31,10C,1250 44,10D,42 45,104,37 27,20,94,-30,-8 0,21,0,0,0 20,111,14 31,10C,1250 41,10D,42 46,104,31 30,111,13 30,10C,1242 34,20,119,-7,-10 0,21,-1,0,0 20,10D,42 46,104,25 35,10,7281720 0,D,42 0,A,-3382220 0,B,15124378 0,C,91 41,111,12 31,10C,1226 34,20,84,-44,-14 0,21,-1,0,0 20,10D,42 43,104,21 21,10,7281740 0,D,42 0,A,-3382222 0,B,15124378 0,C,91 41,111,12 36,10C,1230 39,20,120,-9,-12 0,21,-1,0,0 19,10D,41 43,104,17 31,10,7281760 0,D,41 0,A,-3382224 0,B,15124377 0,C,91 41,111,11 31,10C,1218 35,20,103,-24,-11 0,21,-1,0,0 19,10D,41 47,104,14 22,10,7281780 0,D,41 0,A,-3382226 0,B,15124377 0,C,91 40,111,11 31,10C,1222 42,10D,41 37,20,109,-23,-13 0,21,-1,0,1 21,104,13 20,10,7281800 0,D,41 0,A,-3382229 0,B,15124377 0,C,91 56,111,11 27,10C,1234 47,10D,40 37,20,106,-35,-8 0,21,-2,0,0 21,104,12 37,111,11 29,10C,1230 46,10D,40 49,104,12 21,20,99,-28,-15 0,21,-2,0,0 21,111,11 32,10C,1226 47,10D,40 49,104,12 29,111,11 25,20,100,-39,-21 0,21,-2,0,0 17,10,7281860 0,D,39 0,A,-3382234 0,B,15124376 0,C,91 67,10C,1226 51,10D,40 45,104,12 21,20,91,-45,-22 0,21,-3,0,1 21,111,11 38,10C,1226 46,10D,38 50,104,12 28,111,11 21,20,106,-30,-10 0,21,-3,1,2 21,10C,1226 45,10D,38 49,104,12 30,111,11 32,10C,1226 34,20,89,-38,-11 0,21,-3,1,1 21,10D,38 44,104,12 29,111,11 30,10C,1214 45,10D,38 37,20,91,-40,-31 0,21,-4,0,0 21,104,12 27,111,11 30,10C,1203 43,10D,34 45,104,13 30,111,11 21,20,99,-36,-13 0,21,-4,0,0 19,10,7281960 0,D,33 0,A,-3382243 0,B,15124374 0,C,91 64,10C,1203 51,10D,34 43,10,7281980 0,D,32 0,A,-3382245 0,B,15124373 0,C,91 40,104,13 20,20,96,-38,-16 0,21,-4,1,0 20,111,11 27,10C,1207 46,10D,34 45,104,12 22,10,7282000 0,D,31 0,A,-3382246 0,B,15124373 0,C,91 40,111,11 20,20,110,-25,-20 0,21,-4,0,2 19,10C,1214 44,10D,34 48,104,12 43,111,11 34,10C,1222 34,20,95,-45,-15 0,21,-3,0,0 20,10D,30 47,104,12 29,111,11 22,10,7282040 0,D,29 0,A,-3382249 0,B,15124372 0,C,91 41,10C,1222 40,10D,30 42,20,90,-46,-18 0,21,-4,0,0 19,104,12 30,111,11 22,10,7282060 0,D,28 0,A,-3382251 0,B,15124371 0,C,91 41,10C,1226 41,10D,30 45,104,12 31,20,101,-29,-10 0,21,-4,1,0 18,111,11 22,10,7282080 0,D,27 0,A,-3382252 0,B,15124371 0,C,91 55,10C,1207 41,10D,27 57,104,12 22,20,81,-49,-13 0,21,-4,0,1 20,111,11 29,10C,1187 46,10D,27 49,104,13 30,111,11 28,20,96,-37,-14 0,21,-4,0,-1 21,10C,1179 41,10D,27 45,104,13 30,111,11 30,10C,1144 33,20,91,-38,-14 0,21,-4,0,0 21,10D,27 44,104,14 34,111,12 34,10C,1035 45,10D,27 36,20,98,-35,-9 0,21,-4,0,-1 25,104,17 29,111,11 29,10C,984 46,10D,24 49,104,18 30,20,101,-31,-13 0,21,-4,0,0 21,111,12 32,10C,937 51,10D,24 45,104,20 32,111,11 20,20,90,-35,-8 0,21,-3,1,0 22,10C,898 44,10D,24 49,104,20 32,111,11 32,10C,867 34,20,104,-26,-7 0,21,-3,0,0 17,10,7282220 0,D,20 0,A,-3382259 0,B,15124366 0,C,91 66,10D,24 47,104,20 38,111,11 24,10,7282240 0,D,19 0,A,-3382260 0,B,15124366 0,C,91 39,10C,835 32,20,95,-35,-4 0,21,-3,0,0 20,10D,20 47,104,21 31,111,11 34,10C,792 36,10,7282260 0,D,19 0,A,-3382261 0,B,15124365 0,C,90 44,10D,20 36,20,96,-37,-11 0,21,-3,0,0 19,104,22 30,111,11 40,10C,777 45,10D,20 50,104,22 21,20,93,-42,-9 0,21,-3,0,0 19,111,11 30,10C,789 36,10,7282300 0,D,16 0,A,-3382262 0,B,15124364 0,C,90 41,10D,16 47,104,22 30,111,11 21,20,105,-21,-12 0,21,-2,-1,1 18,10C,792 41,10D,16 50,104,22 30,111,11 30,10C,800 34,20,101,-33,-2 0,21,-2,0,0 18,10D,16 49,104,22 33,111,11 30,10C,804 46,10D,16 37,20,94,-35,-3 0,21,-2,0,0 20,104,22 28,10,7282360 0,D,12 0,A,-3382264 0,B,15124363 0,C,90 48,111,11 36,10C,800 45,10D,12 37,20,99,-36,-8 0,21,-2,0,-1 21,104,22 37,111,11 30,10C,812 46,10D,12 49,104,22 21,20,88,-42,-5 0,21,-2,0,-1 21,111,12 27,10C,789 47,10D,12 49,104,25 28,111,12 30,20,100,-34,-5 0,21,-1,0,0 16,10,7282420 0,D,9 0,A,-3382265 0,B,15124361 0,C,90 67,10C,792 44,10D,12 48,104,26 28,20,95,-37,-5 0,21,-2,0,0 20,111,12 27,10C,808 55,10D,8 45,104,27 31,111,12 22,20,100,-32,-1 0,21,-1,0,0 20,10C,816 44,10D,8 49,104,27 30,111,12 31,10C,796 34,20,94,-38,-2 0,21,-1,0,0 21,10D,8 55,104,28 34,111,12 34,10C,781 46,10D,8 37,20,95,-30,-7 0,21,-1,0,0 15,10,7282500 0,D,5 0,A,-3382266 0,B,15124360 0,C,90 68,104,29 31,111,12 27,10C,738 47,10D,5 37,20,101,-25,-6 0,21,-1,0,0 20,104,29 27,111,12 30,10C,726 44,10D,5 46,104,29 30,111,11 21,20,99,-32,-5 0,21,-1,0,0 20,10C,710 44,10D,5 44,104,29 32,10,7282560 0,D,3 0,A,-3382267 0,B,15124360 0,C,90 40,111,11 24,20,103,-27,-6 0,21,-1,0,0 20,10C,679 40,10D,5 43,104,29 23,10,7282580 0,D,3 0,A,-3382267 0,B,15124359 0,C,90 41,111,11 34,20,98,-32,-4 0,21,-1,0,0 19,10C,640 44,10D,3 56,104,28 21,10,7282600 0,D,2 0,A,-3382267 0,B,15124359 0,C,90 40,111,11 20,20,100,-29,-5 0,21,-1,0,0 20,10C,628 43,10D,3 44,104,28 23,10,7282620 0,D,1 0,A,-3382267 0,B,15124359 0,C,90 41,111,11 27,10C,621 34,20,96,-31,-5 0,21,-1,0,0 19,10D,3 45,104,29 31,111,11 31,10C,621 46,10D,3 37,20,105,-12,-4 0,21,-1,0,0 19,104,29 26,111,11 31,10,7282660 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 41,10C,632 40,10D,1 45,104,29 21,20,103,-20,-5 0,21,-1,0,0 20,111,11 30,10C,640 34,10,7282680 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 45,10D,1 53,104,28 21,20,100,-19,-4 0,21,-1,0,0 19,111,11 31,10C,640 35,10,7282700 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 40,10D,1 56,104,28 21,20,101,-20,-5 0,21,-1,0,0 19,111,11 31,10C,617 35,10,7282720 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 40,10D,1 44,104,28 28,111,11 22,20,102,-19,-4 0,21,-1,0,0 18,10C,617 34,10,7282740 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 44,10D,0 47,104,28 30,111,11 27,20,101,-19,-4 0,21,-1,0,0 19,10C,625 34,10,7282760 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 45,10D,0 51,104,29 29,111,11 24,20,100,-19,-6 0,21,-1,0,0 20,10C,617 32,10,7282780 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 45,10D,0 43,104,29 42,111,11 21,20,103,-20,-6 0,21,-1,0,0 19,10C,613 33,10,7282800 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 45,10D,0 47,104,29 29,111,11 34,20,103,-19,-5 0,21,-1,0,0 20,10C,625 32,10,7282820 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 45,10D,0 43,104,28 33,111,11 27,20,101,-20,-6 0,21,-1,0,0 21,10C,640 32,10,7282840 0,D,0 0,A,-3382267 0,B,15124359 0,C,90 45,10D,0 43,104,28 29,111,11 31,10C,613 39,20,102,-20,-5 0,21,-1,0,0 21,10D,0 43,104,28 29,111,11 33,10C,605 44,10D,0 37,20,101,-20,-7 0,21,-1,0,0 17,10,7282880 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 66,104,28 38,111,11 31,10C,625 48,10D,0 36,20,101,-18,-6 0,21,-1,0,0 20,104,28 32,111,11 29,10C,628 43,10D,0 46,104,28 30,111,11 22,20,103,-19,-4 0,21,-1,0,0 19,10C,617 41,10D,0 43,104,28 24,10,7282940 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 40,111,11 27,10C,609 43,20,103,-20,-6 0,21,-1,0,0 20,10D,0 41,104,28 30,111,11 31,10C,621 55,10D,0 37,20,101,-20,-4 0,21,-1,0,0 24,104,27 29,111,11 24,10,7282980 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 41,10C,621 40,10D,0 42,20,102,-19,-5 0,21,-1,0,0 18,104,27 39,111,11 24,10,7283000 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 40,10C,605 40,10D,0 42,20,100,-20,-6 0,21,-1,0,0 18,104,28 30,111,11 34,10C,609 35,10,7283020 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 41,10D,0 43,20,102,-21,-8 0,21,0,0,0 20,104,27 29,111,11 23,10,7283040 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 41,10C,621 40,10D,0 49,104,27 22,20,102,-18,-6 0,21,-1,0,0 21,111,11 33,10C,617 45,10,7283060 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 40,10D,0 43,104,27 20,20,101,-20,-5 0,21,-1,0,0 19,111,11 28,10C,601 43,10D,0 46,104,27 29,111,11 33,10C,601 43,20,99,-20,-5 0,21,-1,0,0 20,10D,0 43,104,27 34,111,11 33,10C,613 44,10D,0 37,20,99,-20,-4 0,21,-1,0,0 21,104,27 27,111,11 30,10C,613 46,10D,0 43,104,27 31,111,11 21,20,100,-20,-5 0,21,-1,0,0 21,10C,601 44,10D,0 45,104,27 31,111,11 23,10,7283160 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 41,10C,597 32,20,100,-22,-5 0,21,-1,0,0 31,10D,0 46,104,27 44,111,11 23,10,7283180 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 41,10C,609 32,20,101,-19,-6 0,21,0,0,0 19,10D,0 47,104,27 28,111,11 40,10C,613 36,10,7283200 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 40,10D,0 34,20,101,-19,-5 0,21,-1,0,0 21,104,27 29,111,11 30,10C,597 43,10D,0 46,104,27 30,111,11 22,20,101,-20,-5 0,21,0,0,0 18,10C,593 41,10D,0 46,104,27 34,111,11 30,10C,605 33,20,101,-21,-6 0,21,-1,0,0 20,10D,0 48,104,27 34,111,11 29,10C,613 47,10D,0 36,20,103,-18,-5 0,21,-1,0,0 19,104,27 25,10,7283280 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 52,111,11 27,10C,601 46,10D,0 36,20,102,-19,-5 0,21,-1,0,0 21,104,27 28,10,7283300 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 48,111,11 31,10C,593 43,10D,0 36,20,102,-19,-6 0,21,-1,0,0 22,104,27 27,10,7283320 0,D,0 0,A,-3382268 0,B,15124359 0,C,90 48,111,11 38,10C,609 45,10D,0 37,20,103,-19,-5 0,21,-1,0,0 21,104,27 27,111,11 30,10C,597 46,10D,0 48,104,27 28,20,102,-18,-2 0,21,-1,0,0 20,111,11 28,10C,589 46,10D,0 48,104,27 32,111,11 27,20,102,-19,-3 0,21,-1,0,0 19,10,7283380 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 63,10C,589 46,10D,0 48,104,27 22,10,7283400 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 42,111,11 28,20,101,-19,-5 0,21,-1,0,0 20,10C,609 44,10D,0 53,104,27 23,10,7283420 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 41,111,11 19,20,102,-20,-3 0,21,-1,0,0 21,10C,601 44,10D,0 47,104,27 31,111,11 31,10C,597 33,20,103,-19,-4 0,21,-1,0,0 20,10D,0 47,104,27 35,111,11 35,10C,601 43,10D,0 36,20,102,-19,-4 0,21,-1,0,0 21,104,27 28,111,11 30,10C,609 43,10D,0 39,10,7283480 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 45,104,27 20,20,103,-19,-3 0,21,-1,0,0 19,111,11 30,10C,601 43,10D,0 46,104,27 39,111,11 26,20,102,-19,-6 0,21,-1,0,0 20,10C,585 38,10D,0 47,104,27 30,111,11 29,10C,593 38,20,103,-19,-5 0,21,-1,0,0 21,10D,0 54,10,7283540 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 41,104,27 32,111,11 29,10C,605 35,20,102,-19,-7 0,21,-1,0,0 20,10D,0 43,10,7283560 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 41,104,27 31,111,11 30,10C,597 39,20,103,-19,-3 0,21,-1,0,0 18,10D,0 40,10,7283580 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 45,104,27 28,111,11 30,10C,585 39,20,104,-19,-6 0,21,-1,0,0 18,10D,0 43,104,27 22,10,7283600 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 41,111,11 36,10C,597 43,20,103,-19,-5 0,21,-1,0,0 19,10D,0 40,10,7283620 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 41,104,27 27,111,11 30,10C,601 46,10D,0 36,20,102,-19,-5 0,21,-1,0,0 21,104,27 32,111,11 30,10C,597 46,10D,0 49,104,27 25,20,102,-20,-3 0,21,-1,0,0 20,111,11 33,10C,589 42,10D,0 45,104,27 30,111,11 31,10C,597 34,20,100,-20,-8 0,21,-1,0,0 22,10,7283680 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 61,10D,0 47,104,27 38,111,11 24,10,7283700 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 40,10C,609 41,20,103,-19,-5 0,21,-1,0,0 20,10D,0 51,104,27 29,111,11 23,10,7283720 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 40,10C,597 37,20,103,-19,-6 0,21,-1,0,0 20,10D,0 46,104,27 29,111,11 23,10,7283740 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 41,10C,589 40,10D,0 37,20,101,-19,-7 0,21,-1,0,0 20,104,27 29,111,11 31,10C,601 44,10D,0 57,104,27 22,20,103,-18,-4 0,21,-1,0,0 19,111,11 34,10C,601 43,10D,0 46,104,27 30,111,11 29,10C,589 34,20,102,-18,-4 0,21,-1,0,0 19,10D,0 44,104,27 33,111,11 30,10C,585 46,10D,0 46,20,102,-19,-4 0,21,-1,0,0 21,104,27 27,111,11 30,10C,601 46,10D,0 49,104,27 28,111,11 21,20,104,-18,-4 0,21,-1,0,0 21,10C,609 41,10D,0 49,104,27 29,111,11 31,10C,597 34,20,103,-19,-6 0,21,-1,0,0 22,10D,0 43,104,27 29,111,11 34,10C,593 40,10D,0 37,20,103,-18,-5 0,21,-1,0,0 22,104,27 27,111,11 33,10C,597 58,10D,0 45,104,27 22,20,101,-18,-4 0,21,-1,0,0 15,10,7283900 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 68,111,11 32,10C,617 53,10D,0 38,20,102,-20,-7 0,21,-1,0,0 16,10,7283920 0,D,0 0,A,-3382268 0,B,15124358 0,C,90 67,104,27 27,111,11 32,10C,605 43,10D,0 37,20,102,-19,-4 0,21,-1,0,0 20,104,27 28,111,11 34,10C,601 41,10D,0 46,104,27 30,111,11 21,20,100,-22,-7 0,21,-1,0,0 20,10C,613 44,10D,0 47,104,26 35,111,11 22,10,7283980 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 41,10C,617 32,20,101,-21,-5 0,21,-1,0,0 19,10D,0 42,104,26 31,111,11 21,10,7284000 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 44,10C,605 41,10D,0 37,20,102,-20,-3 0,21,-1,0,0 20,104,26 34,10,7284020 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 44,111,11 31,10C,601 42,10D,0 37,20,101,-18,-5 0,21,-1,0,0 20,104,26 31,111,11 22,10,7284040 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 41,10C,605 40,10D,0 46,20,100,-20,-5 0,21,-1,0,0 19,104,26 28,111,11 21,10,7284060 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 41,10C,621 44,10D,0 45,104,26 31,20,102,-18,-5 0,21,-1,0,0 21,111,11 28,10C,605 46,10D,0 50,104,26 28,111,11 28,20,101,-20,-6 0,21,-1,0,0 17,10,7284100 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 67,10C,601 49,10D,0 45,104,26 22,20,101,-19,-6 0,21,-1,0,0 20,111,11 38,10C,613 46,10D,0 49,104,25 31,111,11 21,20,101,-18,-6 0,21,-1,0,0 22,10C,609 41,10D,0 45,104,26 30,111,11 32,10C,601 34,20,101,-20,-6 0,21,-1,0,0 21,10D,0 43,104,26 29,111,11 30,10C,605 45,10D,0 37,20,101,-19,-5 0,21,-1,0,0 20,104,26 28,111,11 30,10C,617 46,10D,0 48,104,26 30,111,11 21,20,101,-21,-2 0,21,-1,0,0 16,10,7284200 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 67,10C,621 43,10D,0 48,104,25 26,20,101,-18,-3 0,21,-1,0,0 16,10,7284220 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 67,111,11 42,10C,601 44,10D,0 37,20,100,-21,-7 0,21,-1,0,0 17,10,7284240 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 67,104,26 30,111,11 28,10C,613 47,10D,0 37,20,104,-20,-5 0,21,-1,0,0 20,104,25 32,111,11 45,10C,613 45,10D,0 38,10,7284280 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 41,104,25 19,20,103,-18,-4 0,21,-1,0,0 20,111,11 27,10C,601 45,10D,0 46,104,25 30,111,11 29,10C,597 34,20,101,-20,-6 0,21,-1,0,0 20,10D,0 45,104,26 30,111,11 22,10,7284320 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 40,10C,605 44,10D,0 46,20,101,-22,-5 0,21,-1,0,0 19,104,25 28,111,11 23,10,7284340 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 40,10C,617 44,10D,0 46,20,101,-18,-6 0,21,-1,0,0 18,104,25 21,10,7284360 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 56,111,11 28,10C,597 46,10D,0 36,20,102,-20,-6 0,21,-1,0,0 20,104,25 20,10,7284380 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 57,111,11 26,10C,593 43,10D,0 36,20,102,-19,-4 0,21,-1,0,0 20,104,25 20,10,7284400 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 55,111,11 32,10C,605 43,10D,0 36,20,102,-18,-5 0,21,-1,0,0 21,104,25 19,10,7284420 0,D,0 0,A,-3382268 0,B,15124358 0,C,89 56,111,11 28,10C,601 55,10D,0 45,20,99,-19,-6 0,21,-1,0,0 22,104,25 26,111,11 34,10C,585 43,10D,0 44,104,25 27,10,7284460 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,111,11 19,20,99,-20,-8 0,21,-1,0,0 20,10C,593 44,10D,0 66,104,25 23,10,7284480 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,111,11 18,20,103,-18,-6 0,21,-1,0,0 21,10C,609 40,10D,0 47,104,25 34,111,11 31,10C,605 56,20,101,-18,-6 0,21,-1,0,0 20,10D,0 46,104,25 31,111,11 21,10,7284520 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,10C,593 44,10D,0 37,20,102,-20,-5 0,21,-1,0,0 20,104,25 36,111,10 22,10,7284540 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,10C,605 44,10D,0 42,20,101,-20,-8 0,21,-1,0,0 18,104,25 31,111,10 22,10,7284560 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,10C,609 40,10D,0 45,104,25 22,20,100,-19,-7 0,21,-1,0,0 18,111,11 32,10C,597 36,10,7284580 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,10D,0 43,104,25 33,111,11 20,20,102,-18,-3 0,21,-1,0,0 22,10C,593 41,10D,0 49,104,25 29,111,10 29,10C,605 34,20,102,-19,-4 0,21,-1,0,0 20,10D,0 49,104,25 33,111,10 29,10C,609 46,10D,0 45,20,101,-19,-5 0,21,-1,0,0 22,104,25 43,111,10 29,10C,605 45,10D,0 46,104,25 20,20,103,-20,-5 0,21,-1,0,0 16,10,7284660 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 68,111,11 31,10C,593 45,10D,0 42,20,103,-19,-4 0,21,-1,0,0 20,104,25 28,111,10 30,10C,601 46,10D,0 46,104,25 23,10,7284700 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,111,11 20,20,101,-19,-4 0,21,-1,0,0 23,10C,609 41,10D,0 44,104,25 27,10,7284720 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,111,11 27,10C,593 34,20,100,-20,-5 0,21,-1,0,0 20,10D,0 46,104,25 40,111,11 22,10,7284740 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,10C,589 32,20,102,-19,-5 0,21,-1,0,0 19,10D,0 46,104,25 23,10,7284760 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,111,10 32,10C,597 39,20,101,-20,-7 0,21,-1,0,0 19,10D,0 46,104,25 31,111,10 31,10C,605 42,10D,0 36,20,101,-20,-5 0,21,-1,0,0 20,104,25 30,111,11 36,10,7284800 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 44,10C,589 46,10D,0 36,20,101,-20,-4 0,21,-1,0,0 20,104,25 29,111,11 34,10C,593 43,10D,0 45,104,25 59,20,101,-19,-3 0,21,-1,0,0 20,111,10 37,10C,601 36,10,7284840 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,10D,0 43,104,25 25,20,100,-19,-5 0,21,-1,0,0 18,111,11 29,10C,605 52,10D,0 45,104,25 30,111,10 28,20,101,-20,-7 0,21,-1,0,0 19,10C,593 45,10D,0 49,104,25 30,111,11 29,10C,593 33,20,99,-21,-7 0,21,-1,0,0 20,10D,0 36,10,7284900 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,104,25 36,111,10 29,10C,605 38,20,100,-22,-8 0,21,-1,0,0 18,10D,0 44,104,25 30,111,10 30,10C,609 46,10D,0 37,20,102,-20,-4 0,21,-1,0,0 19,104,25 30,10,7284940 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 47,111,11 32,10C,597 45,10D,0 36,20,101,-19,-5 0,21,-1,0,0 18,10,7284960 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 65,104,25 29,111,10 30,10C,601 45,10D,0 37,20,102,-19,-4 0,21,-1,0,0 20,104,25 28,111,10 30,10C,605 46,10D,0 44,104,24 29,111,11 22,20,103,-20,-4 0,21,-1,0,0 15,10,7285000 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 68,10C,597 41,10D,0 50,10,7285020 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,104,25 19,20,100,-19,-4 0,21,-1,0,0 21,111,11 31,10C,585 42,10D,0 45,104,25 30,10,7285040 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,111,11 20,20,101,-20,-7 0,21,-1,0,0 20,10C,605 39,10D,0 48,104,25 23,10,7285060 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,111,11 31,10C,609 34,20,101,-19,-6 0,21,-1,0,0 20,10D,0 45,104,25 23,10,7285080 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,111,11 28,10C,593 46,10D,0 36,20,100,-18,-5 0,21,0,0,0 23,104,25 29,111,11 31,10C,593 42,10D,0 46,104,25 32,111,10 21,20,102,-19,-4 0,21,-1,0,0 21,10C,601 40,10D,0 46,104,25 29,111,10 33,10C,605 34,20,101,-20,-6 0,21,-1,0,0 20,10D,0 54,104,25 29,111,10 30,10C,593 45,10D,0 37,20,101,-20,-5 0,21,-1,0,0 20,104,25 38,111,11 33,10C,589 43,10D,0 43,104,25 30,20,102,-20,-8 0,21,-1,0,0 21,111,11 31,10C,589 46,10D,0 48,104,25 32,111,10 23,10,7285200 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 41,10C,597 32,20,102,-18,-4 0,21,-1,0,0 21,10D,0 46,104,25 31,111,10 30,10C,597 48,10D,0 37,20,101,-19,-8 0,21,-1,0,0 20,104,25 39,111,11 32,10C,589 36,10,7285240 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,10D,0 44,20,103,-18,-4 0,21,-1,0,0 21,104,25 26,111,10 32,10C,585 36,10,7285260 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 40,10D,0 43,104,25 21,20,101,-18,-6 0,21,0,0,0 20,111,10 29,10C,609 46,10D,0 50,104,25 33,111,10 22,20,101,-20,-4 0,21,-1,0,0 19,10C,609 38,10D,0 46,104,24 30,111,11 30,10C,593 39,20,101,-21,-7 0,21,-1,0,0 19,10D,0 42,104,25 23,10,7285320 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 44,111,11 28,10C,593 45,10D,0 37,20,102,-19,-9 0,21,-1,0,0 20,104,25 20,10,7285340 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 55,111,10 29,10C,601 55,10D,0 36,20,100,-21,-8 0,21,-1,0,0 21,104,25 19,10,7285360 0,D,0 0,A,-3382269 0,B,15124358 0,C,89 56,111,11 32,10C,593 53,10D,0 37,20,102,-18,-6 0,21,-1,0,0 21,104,25 27,111,10 30,10C,585 46,10D,0 45,104,25 30,111,10 20,20,100,-21,-4 0,21,-1,0,0 17,10,7285400 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 67,10C,589 40,10D,0 47,104,25 24,10,7285420 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 44,111,11 20,20,102,-19,-4 0,21,-1,0,0 19,10C,605 40,10D,0 48,104,25 30,111,10 23,10,7285440 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10C,597 31,20,103,-18,-5 0,21,-1,0,0 20,10D,0 55,104,25 35,111,11 22,10,7285460 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10C,589 32,20,103,-19,-5 0,21,-1,0,0 19,10D,0 42,104,25 31,111,10 20,10,7285480 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10C,601 40,10D,0 38,20,101,-20,-6 0,21,-1,0,0 20,104,25 25,111,10 24,10,7285500 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 44,10C,605 44,10D,0 45,104,25 21,20,103,-19,-4 0,21,-1,0,0 19,111,11 32,10C,597 35,10,7285520 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10D,0 61,104,25 21,20,102,-19,-4 0,21,-1,0,0 20,111,11 20,10,7285540 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 56,10C,597 44,10D,0 48,104,25 29,20,101,-20,-5 0,21,-1,0,0 22,111,11 32,10C,609 43,10D,0 45,104,25 28,111,11 32,10C,613 34,20,101,-17,-5 0,21,-1,0,0 16,10,7285580 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 68,10D,0 46,104,25 31,111,11 30,10C,601 34,20,102,-19,-6 0,21,-1,0,0 25,10D,0 44,104,25 33,111,10 28,10C,597 51,10D,0 37,20,103,-18,-5 0,21,-1,0,0 21,104,25 27,111,10 30,10C,605 44,10D,0 38,10,7285640 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,104,25 19,20,103,-18,-5 0,21,-1,0,0 20,111,10 28,10C,609 44,10D,0 55,104,25 30,111,11 25,20,103,-19,-6 0,21,-1,0,0 21,10C,593 43,10D,0 44,104,25 22,10,7285680 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,111,11 31,10C,593 34,20,100,-19,-7 0,21,-1,0,0 19,10D,0 45,104,25 24,10,7285700 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 40,111,11 36,10C,605 38,20,101,-21,-7 0,21,-1,0,0 20,10D,0 45,104,25 23,10,7285720 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 39,111,11 28,10C,601 46,10D,0 37,20,103,-20,-1 0,21,-1,0,0 19,104,26 22,10,7285740 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 54,111,11 45,10C,589 41,10D,0 37,20,101,-19,-4 0,21,-1,0,0 18,10,7285760 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 65,104,26 43,111,11 29,10C,605 44,10D,0 37,20,101,-19,-6 0,21,-1,0,0 21,104,25 28,111,10 28,10C,609 47,10D,0 43,104,25 30,111,11 22,20,103,-19,-5 0,21,-1,0,0 24,10C,593 45,10D,0 44,104,25 32,111,11 34,10C,589 34,20,103,-19,-5 0,21,-1,0,0 17,10,7285820 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 67,10D,0 42,104,26 23,10,7285840 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,111,11 19,20,102,-19,-3 0,21,-1,0,0 20,10C,605 40,10D,0 45,104,25 33,111,11 21,10,7285860 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10C,609 32,20,102,-20,-6 0,21,-1,0,0 20,10D,0 55,104,25 29,111,11 22,10,7285880 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10C,593 36,20,101,-19,-7 0,21,-1,0,0 20,10D,0 55,104,25 34,10,7285900 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,111,11 31,10C,601 44,20,102,-19,-3 0,21,-1,0,0 20,10D,0 45,104,25 30,111,11 31,10C,609 46,10D,0 36,20,100,-20,-6 0,21,-1,0,0 21,104,25 25,111,11 27,10,7285940 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10C,601 44,10D,0 45,104,25 21,20,103,-19,-4 0,21,-1,0,0 19,111,11 31,10C,589 34,10,7285960 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 41,10D,0 43,104,26 35,20,103,-19,-3 0,21,-1,0,0 18,111,11 25,10,7285980 0,D,0 0,A,-3382269 0,B,15124357 0,C,88 53,10C,597 49,10D,0 44,104,25 22,20,101,-19,-7 0,21,-1,0,0 18,111,11 32,10C,609 36,10,7290000 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,10D,0 46,104,25 31,20,101,-18,-4 0,21,-1,0,0 18,111,11 32,10C,597 44,10D,0 45,104,25 30,111,11 31,10C,589 34,20,103,-19,-5 0,21,-1,0,0 21,10D,0 43,104,25 29,111,11 34,10C,593 41,10D,0 37,20,103,-18,-5 0,21,-1,0,0 21,104,25 27,111,10 34,10C,609 42,10D,0 56,104,25 22,20,101,-19,-4 0,21,-1,0,0 17,10,7290080 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 66,111,11 31,10C,601 41,10D,0 47,104,25 25,20,103,-19,-4 0,21,-1,0,0 22,111,11 30,10C,593 42,10D,0 44,104,25 43,111,11 22,20,102,-19,-4 0,21,-1,0,0 17,10,7290120 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 66,10C,601 43,10D,0 46,104,25 23,10,7290140 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 40,111,11 20,20,101,-19,-5 0,21,-1,0,0 19,10C,609 43,10D,0 39,10,7290160 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,104,25 28,111,11 30,20,100,-19,-7 0,21,-1,0,0 19,10C,589 43,10D,0 55,104,25 24,10,7290180 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 40,111,11 19,20,101,-21,-4 0,21,-1,0,0 24,10C,585 43,10D,0 42,10,7290200 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,104,25 31,111,10 22,20,102,-19,-6 0,21,-1,0,0 19,10C,605 43,10D,0 42,10,7290220 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,104,25 28,111,10 27,20,101,-19,-6 0,21,-1,0,0 19,10C,601 43,10D,0 46,104,25 31,111,11 30,10C,585 42,20,102,-19,-4 0,21,-1,0,0 19,10D,0 46,104,25 24,10,7290260 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 40,111,11 27,10C,593 43,10D,0 37,20,103,-19,-6 0,21,-1,0,0 20,104,25 33,10,7290280 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 45,111,10 38,10C,609 42,10D,0 37,20,102,-18,-4 0,21,-1,0,0 19,104,25 32,111,11 34,10C,601 43,10D,0 45,104,25 29,20,102,-21,-6 0,21,-1,0,0 17,111,11 33,10C,593 36,10,7290320 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 40,10D,0 47,104,25 29,111,11 20,20,100,-21,-7 0,21,-1,0,0 21,10C,601 41,10D,0 49,104,25 29,111,10 30,10C,605 33,20,100,-21,-4 0,21,-1,0,0 20,10D,0 48,104,25 34,111,11 30,10C,609 45,10D,0 36,20,101,-17,-8 0,21,-1,0,0 21,104,25 36,111,11 34,10C,593 51,10D,0 47,104,25 22,20,103,-18,-3 0,21,-1,0,0 20,10,7290400 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 63,111,11 29,10C,597 47,10D,0 42,20,102,-18,-4 0,21,-1,0,0 20,104,25 32,111,11 29,10C,609 47,10D,0 47,104,25 23,10,7290440 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,111,11 20,20,101,-18,-5 0,21,-1,0,0 19,10C,605 44,10D,0 47,104,25 31,111,11 31,10C,593 33,20,99,-19,-5 0,21,-1,0,0 21,10D,0 46,104,25 29,111,11 26,10,7290480 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,10C,601 41,20,102,-24,-7 0,21,-1,0,0 21,10D,0 55,104,25 32,111,11 22,10,7290500 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 45,10C,609 32,20,103,-17,-5 0,21,-1,0,0 21,10D,0 46,104,25 27,111,11 31,10C,601 36,10,7290520 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,10D,0 35,20,99,-18,-4 0,21,-1,0,0 19,104,25 29,111,11 30,10C,597 44,10D,0 46,104,25 29,111,11 22,20,102,-18,-4 0,21,-1,0,0 19,10C,601 37,10,7290560 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,10D,0 47,104,25 30,111,11 29,20,101,-21,-6 0,21,-1,0,0 19,10C,613 41,10D,0 46,104,25 39,111,11 30,10C,601 33,20,101,-18,-5 0,21,-1,0,0 20,10D,0 57,104,25 30,111,11 30,10C,589 46,10D,0 35,20,100,-20,-6 0,21,-1,0,0 21,104,25 19,10,7290620 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 56,111,11 27,10C,597 46,10D,0 37,20,101,-21,-6 0,21,-1,0,0 21,104,25 28,10,7290640 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 49,111,11 30,10C,605 42,10D,0 37,20,102,-18,-5 0,21,-1,0,0 21,104,25 28,111,11 30,10C,597 46,10D,0 45,104,25 28,111,11 21,20,102,-19,-2 0,21,-1,0,0 22,10C,585 40,10D,0 54,104,25 30,111,11 30,10C,589 35,20,101,-19,-6 0,21,-1,0,0 21,10D,0 43,104,25 29,111,10 34,10C,609 42,10D,0 37,20,101,-19,-4 0,21,-1,0,0 17,10,7290720 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 66,104,25 32,111,10 27,10C,601 47,10D,0 37,20,102,-18,-7 0,21,-1,0,0 21,104,25 32,111,11 29,10C,589 44,10D,0 46,104,25 31,111,10 31,20,102,-21,-5 0,21,-1,0,0 20,10C,597 43,10D,0 44,104,25 23,10,7290780 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,111,11 27,10C,597 43,20,101,-19,-5 0,21,-1,0,0 20,10D,0 45,104,25 31,111,11 30,10C,597 47,10D,0 36,20,101,-21,-5 0,21,-1,0,0 20,104,25 25,111,11 35,10C,589 43,10D,0 49,104,25 30,20,100,-20,-6 0,21,-1,0,0 20,111,11 32,10C,597 48,10,7290840 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,10D,0 43,104,25 22,20,102,-19,-5 0,21,-1,0,0 19,111,11 30,10C,613 36,10,7290860 0,D,0 0,A,-3382269 0,B,15124357 0,C,89 41,10D,0 43,104,25 30,111,11 20,20,102,-19,-4 0,21,-1,0,0 20,10C,609 40,10D,0 39,10,7290880 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 40,104,25 41,111,11 21,20,102,-18,-3 0,21,-1,0,0 19,10C,593 41,10D,0 39,10,7290900 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 40,104,25 28,111,11 32,10C,597 38,20,102,-20,-4 0,21,-1,0,0 21,10D,0 43,104,25 30,111,10 33,10C,605 42,10D,0 45,20,101,-18,-4 0,21,-1,0,0 21,104,25 32,111,11 29,10C,609 42,10D,0 48,104,25 31,111,11 21,20,100,-20,-4 0,21,-1,0,0 21,10C,597 40,10D,0 45,104,25 32,111,11 30,10C,589 33,20,101,-20,-4 0,21,-1,0,0 17,10,7290980 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 67,10D,0 63,104,25 30,111,10 27,20,102,-19,-5 0,21,-1,0,0 21,10C,605 40,10D,0 45,104,25 31,111,11 23,10,7291020 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10C,605 32,20,101,-18,-4 0,21,-1,0,0 24,10D,0 43,104,25 32,111,11 31,10C,593 33,10,7291040 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10D,0 35,20,101,-19,-5 0,21,-1,0,0 20,104,25 30,111,11 28,10C,593 36,10,7291060 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10D,0 43,104,25 21,20,101,-20,-6 0,21,-1,0,0 20,111,10 29,10C,609 47,10D,0 49,104,25 29,111,11 27,20,100,-20,-6 0,21,-1,0,0 19,10C,605 49,10D,0 37,10,7291100 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,104,25 27,111,11 27,20,102,-21,-6 0,21,-1,0,0 19,10C,589 42,10D,0 39,10,7291120 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 44,104,25 29,111,10 29,20,101,-20,-7 0,21,-1,0,0 19,10C,589 51,10,7291140 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10D,0 47,104,25 33,111,10 21,20,103,-18,-5 0,21,-1,0,0 20,10C,609 37,10,7291160 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10D,0 47,104,25 34,111,11 21,20,102,-20,-5 0,21,-1,0,0 20,10C,597 39,10D,0 38,10,7291180 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 40,104,25 32,111,11 30,10C,585 34,20,101,-19,-1 0,21,-1,0,0 19,10D,0 45,10,7291200 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 44,104,25 32,111,11 45,10C,613 33,20,103,-19,-6 0,21,-1,0,0 21,10D,0 47,104,25 34,111,10 30,10C,609 46,10D,0 37,20,103,-18,-4 0,21,-1,0,0 20,104,25 28,111,11 30,10C,597 46,10D,0 48,104,25 23,10,7291260 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 40,111,11 20,20,101,-19,-5 0,21,-1,0,0 20,10C,593 40,10D,0 45,104,25 33,111,11 22,10,7291280 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10C,601 32,20,102,-20,-3 0,21,-1,0,0 20,10D,0 55,104,25 33,111,10 31,10,7291300 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 40,10C,609 37,20,101,-20,-6 0,21,-1,0,0 20,10D,0 46,104,25 23,10,7291320 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,111,11 28,10C,605 42,10D,0 37,20,103,-19,-6 0,21,-1,0,0 20,104,25 31,111,11 21,10,7291340 0,D,0 0,A,-3382269 0,B,15124357 0,C,90 41,10C,601 40,10D,0 45,104,25 22,20,102,-18,-4 0,21,-1,0,0 18,111,11 33,10C,605 45,10,7291360 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,10D,0 46,104,25 22,20,100,-21,-6 0,21,-1,0,0 18,111,11 22,10,7291380 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 55,10C,605 45,10D,0 48,104,25 26,20,103,-20,-5 0,21,-1,0,0 20,111,11 29,10,7291400 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 48,10C,597 44,10D,0 48,104,25 22,20,103,-18,-6 0,21,-1,0,0 20,111,11 28,10C,597 46,10D,0 49,104,25 29,111,11 29,20,103,-19,-3 0,21,-1,0,0 16,10,7291440 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 67,10C,609 44,10D,0 45,104,25 30,111,11 22,20,100,-20,-4 0,21,-1,0,0 15,10,7291460 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 69,10C,593 40,10D,0 43,104,25 23,10,7291480 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 42,111,11 19,20,100,-21,-9 0,21,-1,0,0 24,10C,593 44,10D,0 50,104,25 24,10,7291500 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 40,111,11 28,20,102,-19,-5 0,21,-1,0,0 21,10C,609 43,10D,0 48,104,25 23,10,7291520 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 40,111,11 27,20,102,-20,-4 0,21,-1,0,0 21,10C,597 43,10D,0 52,10,7291540 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,104,25 27,111,11 22,20,101,-20,-5 0,21,-1,0,0 20,10C,589 43,10D,0 46,104,25 21,10,7291560 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,111,11 28,10C,597 33,20,101,-19,-6 0,21,-1,0,0 24,10D,0 46,104,25 23,10,7291580 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,111,11 26,10C,601 43,20,101,-20,-5 0,21,-1,0,0 20,10D,0 41,104,25 35,10,7291600 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,111,11 40,10C,589 34,20,102,-19,-6 0,21,-1,0,0 20,10D,0 44,10,7291620 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,104,25 27,111,11 34,10C,593 34,20,101,-19,-4 0,21,-1,0,0 19,10D,0 43,104,25 22,10,7291640 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,111,11 30,10C,601 47,10D,0 36,20,101,-19,-5 0,21,-1,0,0 20,104,25 24,10,7291660 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 52,111,11 35,10C,601 47,10D,0 35,20,102,-19,-6 0,21,-1,0,0 22,104,25 28,111,11 29,10C,593 46,10D,0 49,104,25 28,111,11 22,20,102,-19,-4 0,21,-1,0,0 17,10,7291700 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 66,10C,597 50,10D,0 48,104,25 20,20,101,-19,-4 0,21,-1,0,0 18,10,7291720 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 66,111,11 31,10C,609 42,10D,0 46,104,25 21,20,102,-19,-4 0,21,-1,0,0 17,10,7291740 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 67,111,10 30,10C,597 45,10D,0 41,20,102,-20,-6 0,21,-1,0,0 17,10,7291760 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 66,104,25 31,111,11 42,10C,593 35,10,7291780 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,10D,0 35,20,101,-20,-6 0,21,-1,0,0 19,104,25 27,111,10 31,10C,605 47,10D,0 50,104,25 29,20,102,-18,-4 0,21,-1,0,0 20,111,11 40,10C,601 43,10D,0 46,104,25 29,111,11 22,20,103,-19,-3 0,21,-1,0,0 20,10C,585 43,10D,0 46,104,25 23,10,7291840 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,111,11 28,20,104,-18,-4 0,21,-1,0,0 19,10C,597 43,10D,0 46,104,25 28,10,7291860 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 40,111,10 24,20,104,-19,-4 0,21,-1,0,0 20,10C,609 43,10D,0 50,104,25 23,10,7291880 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 40,111,11 24,20,102,-19,-2 0,21,-1,0,0 20,10C,597 43,10D,0 50,104,25 22,10,7291900 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 41,111,11 24,20,103,-18,-4 0,21,-1,0,0 19,10C,589 52,10D,0 47,104,25 33,111,11 30,10C,601 34,20,102,-19,-2 0,21,-1,0,0 19,10D,0 45,104,25 34,10,7291940 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 40,111,11 28,10C,605 38,20,101,-17,-4 0,21,-1,0,0 19,10D,0 42,104,25 23,10,7291960 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 42,111,11 30,10C,601 46,10D,0 37,20,102,-19,-6 0,21,-1,0,0 20,104,25 28,111,11 31,10C,593 42,10D,0 60,104,25 22,20,101,-20,-6 0,21,-1,0,0 18,111,11 32,10C,605 44,10D,0 45,104,25 30,111,11 34,20,101,-20,-5 0,21,-1,0,0 19,10C,613 33,10,7292020 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 45,10D,0 43,104,25 30,111,11 33,20,101,-18,-5 0,21,-1,0,0 20,10C,593 33,10,7292040 0,D,0 0,A,-3382269 0,B,15124357 0,C,91 44,10D,0 51,104,25 30,111,11 24,20,102,-17,-6 0,21,-1,0,0 20,10C,593 32,10,7292060 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 44,10D,0 43,104,25 30,111,11 32,10C,609 34,20,103,-18,-4 0,21,-1,0,0 20,10D,0 43,104,25 34,111,11 34,10C,613 43,10D,0 37,20,101,-18,-4 0,21,-1,0,0 21,104,25 28,111,11 29,10C,601 46,10D,0 54,104,25 21,10,7292120 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 41,111,11 20,20,102,-21,-5 0,21,-1,0,0 19,10C,593 44,10D,0 44,104,26 33,10,7292140 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 40,111,11 24,20,101,-20,-5 0,21,-1,0,0 24,10C,605 82,10D,0 38,10,7292160 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 41,104,25 18,20,102,-19,-5 0,21,-1,0,0 21,111,11 30,10C,609 45,10D,0 46,104,25 29,111,11 30,10C,597 34,20,101,-20,-7 0,21,-1,0,0 20,10D,0 44,104,25 24,10,7292200 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 42,111,11 31,10C,593 42,20,100,-20,-8 0,21,-1,0,0 20,10D,0 51,104,25 23,10,7292220 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 40,111,11 27,10C,605 39,20,100,-21,-6 0,21,-1,0,0 20,10D,0 41,104,25 30,111,11 24,10,7292240 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 44,10C,605 41,20,101,-21,-5 0,21,-1,0,0 19,10D,0 41,104,25 24,10,7292260 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 40,111,11 27,10C,593 47,10D,0 36,20,102,-19,-7 0,21,-1,0,0 20,104,25 29,111,11 30,10C,593 42,10D,0 45,104,25 33,111,11 21,20,101,-20,-7 0,21,-1,0,0 20,10C,609 32,10,7292300 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 45,10D,0 47,104,25 33,111,11 40,20,102,-19,-5 0,21,-1,0,0 20,10C,601 41,10D,0 45,104,25 30,111,11 29,10C,593 38,20,103,-19,-4 0,21,-1,0,0 16,10,7292340 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 67,10D,0 44,104,25 29,111,11 32,10C,597 46,20,102,-18,-6 0,21,-1,0,0 17,10,7292360 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 66,10D,0 43,104,25 32,111,11 23,10,7292380 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 40,10C,613 32,20,102,-20,-4 0,21,-1,0,0 19,10D,0 47,104,25 36,111,11 24,10,7292400 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 41,10C,593 37,20,101,-20,-4 0,21,-1,0,0 19,10D,0 47,104,25 38,111,12 22,10,7292420 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 41,10C,597 35,20,99,-19,-5 0,21,-1,0,0 25,10D,0 43,104,29 32,111,12 22,10,7292440 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 41,10C,644 40,10D,0 37,20,101,-17,-5 0,21,-1,0,0 19,104,29 29,111,12 31,10C,703 44,10D,0 45,104,29 30,111,12 20,20,101,-18,-5 0,21,-1,0,0 20,10C,703 40,10D,0 51,104,30 29,111,12 30,10C,707 34,20,101,-18,-1 0,21,-1,0,0 19,10D,0 48,104,29 22,10,7292500 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 41,111,12 31,10C,726 39,20,105,-15,-7 0,21,-1,0,0 18,10D,0 62,104,29 30,111,12 30,10C,714 46,10D,0 37,20,99,-17,-8 0,21,-1,0,0 20,104,29 24,10,7292540 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 53,111,12 31,10C,722 42,10D,0 36,20,99,-18,-7 0,21,-1,0,0 21,104,29 19,10,7292560 0,D,0 0,A,-3382269 0,B,15124356 0,C,92 56,111,12 32,10C,726 42,10D,0 35,20,99,-18,-6 0,21,-1,0,0 21,104,29 29,111,12 29,10C,730 46,10D,0 44,104,29 32,111,12 22,20,102,-18,-5 0,21,-1,0,0 20,10C,726 40,10D,0 45,104,29 30,111,12 32,10C,722 43,20,103,-17,-4 0,21,-1,0,0 21,10D,0 47,104,27 33,111,10 30,10C,718 41,10D,0 36,20,103,-18,-6 0,21,-1,0,0 17,10,7292640 0,D,1 0,A,-3382269 0,B,15124356 0,C,92 66,104,25 32,111,11 35,10C,679 43,10D,0 37,20,103,-18,-5 0,21,-1,0,0 19,104,24 28,111,11 34,10C,648 40,10D,0 46,104,24 29,111,11 22,20,103,-18,-3 0,21,-1,0,0 19,10C,621 51,10D,0 43,104,24 30,111,11 24,10,7292700 0,D,1 0,A,-3382269 0,B,15124356 0,C,91 40,10C,593 32,20,102,-20,-2 0,21,-1,0,0 20,10D,0 45,104,25 40,111,11 36,10,7292720 0,D,1 0,A,-3382269 0,B,15124356 0,C,91 40,10C,582 32,20,102,-18,-5 0,21,-1,0,0 19,10D,0 41,104,25 43,111,11 34,10C,585 46,10D,0 37,20,103,-19,-7 0,21,-1,0,0 23,104,25 28,111,11 21,10,7292760 0,D,1 0,A,-3382269 0,B,15124356 0,C,91 41,10C,578 44,10D,0 45,20,104,-18,-5 0,21,-1,0,0 19,104,26 31,111,11 21,10,7292780 0,D,1 0,A,-3382269 0,B,15124356 0,C,91 41,10C,582 44,10D,0 45,20,102,-16,-8 0,21,-1,0,0 19,104,26 30,111,10 22,10,7292800 0,D,0 0,A,-3382269 0,B,15124356 0,C,91 41,10C,597 40,10D,0 45,104,27 21,20,102,-19,-6 0,21,-1,0,0 19,111,12 30,10,7292820 0,D,1 0,A,-3382269 0,B,15124356 0,C,91 47,10C,621 45,10D,0 48,104,29 21,20,99,-19,-4 0,21,-1,0,0 21,111,12 23,10,7292840 0,D,1 0,A,-3382269 0,B,15124356 0,C,91 52,10C,656 44,10D,0 49,104,29 21,20,101,-17,-6 0,21,-1,0,0 21,111,12 28,10C,714 46,10D,0 49,104,29 29,111,12 29,20,107,-15,-5 0,21,-1,0,0 16,10,7292880 0,D,1 0,A,-3382270 0,B,15124356 0,C,91 67,10C,726 50,10D,0 48,104,29 22,20,105,-15,-2 0,21,-1,0,0 20,111,12 29,10C,730 46,10D,0 45,104,29 29,111,12 32,10C,726 43,20,103,-17,-3 0,21,-1,0,0 17,10,7292920 0,D,1 0,A,-3382270 0,B,15124356 0,C,91 66,10D,0 46,104,29 30,111,12 23,10,7292940 0,D,1 0,A,-3382270 0,B,15124356 0,C,91 44,10C,730 31,20,105,-16,-7 0,21,-1,0,0 21,10D,0 46,104,29 32,111,12 22,10,7292960 0,D,1 0,A,-3382270 0,B,15124356 0,C,91 41,10C,726 40,10D,0 37,20,102,-17,-4 0,21,-1,0,0 19,104,29 29,111,12 31,10C,718 44,10D,0 45,104,29 30,111,12 20,20,105,-16,-8 0,21,-1,0,0 19,10C,718 41,10D,0 51,104,29 29,111,12 30,10C,722 34,20,105,-15,-4 0,21,-1,0,0 18,10D,1 48,104,29 32,10,7293020 0,D,1 0,A,-3382270 0,B,15124355 0,C,91 41,111,12 31,10C,726 34,20,105,-16,-4 0,21,-1,0,0 19,10D,1 48,104,29 30,111,12 30,10C,718 50,10D,1 37,20,106,-16,-8 0,21,-1,0,0 19,104,30 21,10,7293060 0,D,2 0,A,-3382270 0,B,15124355 0,C,91 55,111,15 27,10C,722 47,10D,1 46,20,104,-16,-4 0,21,-1,0,0 20,104,44 32,111,15 30,10C,863 46,10D,2 53,104,46 34,20,101,-14,-8 0,21,-1,0,-1 20,111,16 32,10C,1027 46,10D,2 48,104,44 32,111,16 26,20,104,-7,-8 0,21,-1,0,0 21,10C,1128 50,10D,2 45,104,42 30,111,16 31,10C,1199 34,20,106,-7,-6 0,21,-1,0,0 21,10D,2 43,104,41 34,111,17 32,10C,1210 46,10D,3 36,20,106,-9,-5 0,21,-1,0,0 17,10,7293160 0,D,3 0,A,-3382271 0,B,15124355 0,C,91 66,104,48 32,111,19 35,10C,1343 44,10D,3 37,20,106,1,-6 0,21,-1,0,0 19,104,55 28,111,18 30,10C,1480 44,10D,3 46,104,53 29,111,19 22,20,107,3,-4 0,21,-1,0,0 19,10C,1550 45,10D,3 43,104,52 24,10,7293220 0,D,6 0,A,-3382272 0,B,15124354 0,C,91 41,111,19 29,20,111,0,-6 0,21,-1,0,0 19,10C,1613 45,10D,6 43,104,52 24,10,7293240 0,D,7 0,A,-3382272 0,B,15124354 0,C,91 40,111,20 33,20,108,5,-4 0,21,-1,0,0 20,10C,1679 44,10D,6 45,104,60 21,10,7293260 0,D,8 0,A,-3382272 0,B,15124353 0,C,91 40,111,21 33,10C,1812 34,20,102,-8,-6 0,21,-1,0,2 19,10D,6 45,104,60 31,111,21 31,10C,1859 46,10D,6 37,20,96,-13,-8 0,21,-2,0,0 19,104,60 26,111,21 35,10C,1875 43,10D,10 50,104,58 30,111,21 20,20,96,-7,0 0,21,-2,0,0 19,10C,1890 41,10D,10 39,10,7293320 0,D,8 0,A,-3382274 0,B,15124352 0,C,91 41,104,57 37,111,21 25,20,104,-5,-14 0,21,-3,-1,-1 18,10C,1906 42,10D,10 39,10,7293340 0,D,8 0,A,-3382274 0,B,15124352 0,C,91 41,104,57 31,111,21 30,20,114,-2,-17 0,21,-3,0,0 18,10C,1921 41,10D,10 39,10,7293360 0,D,8 0,A,-3382275 0,B,15124351 0,C,91 45,104,57 28,111,21 28,10C,1933 34,20,104,-5,-10 0,21,-3,0,0 21,10D,14 45,104,57 29,111,21 34,10C,1945 42,10D,14 37,20,107,-8,-14 0,21,-3,0,0 20,104,57 28,111,21 30,10C,1960 47,10D,14 48,104,56 27,20,105,-8,-6 0,21,-3,0,0 15,10,7293420 0,D,17 0,A,-3382276 0,B,15124349 0,C,91 67,111,21 32,10C,1984 54,10D,17 37,20,105,-3,-8 0,21,-3,0,0 21,104,58 46,111,22 34,10C,2031 42,10D,17 55,10,7293460 0,D,19 0,A,-3382278 0,B,15124348 0,C,91 41,104,58 18,20,111,-5,-13 0,21,-3,0,1 21,111,22 31,10C,2042 50,10D,17 50,104,60 31,111,22 20,20,103,-11,-18 0,21,-3,0,0 21,10C,2011 40,10D,17 45,104,60 30,111,22 22,10,7293500 0,D,21 0,A,-3382279 0,B,15124346 0,C,91 40,10C,1960 32,20,94,-7,-6 0,21,-4,0,0 20,10D,20 43,104,60 28,111,22 30,10C,1917 47,10D,20 37,20,98,-17,-18 0,21,-4,0,1 21,104,60 36,111,19 31,10C,1859 36,10,7293540 0,D,22 0,A,-3382281 0,B,15124344 0,C,91 41,10D,20 35,20,120,3,-9 0,21,-3,1,0 19,104,51 28,111,19 32,10C,1667 43,10D,20 39,10,7293560 0,D,22 0,A,-3382282 0,B,15124343 0,C,92 41,104,50 38,20,114,-2,-15 0,21,-3,0,0 20,111,19 26,10C,1492 47,10D,23 49,104,56 34,111,19 26,20,105,-12,-10 0,21,-3,0,0 19,10C,1406 41,10D,23 47,10,7293600 0,D,24 0,A,-3382283 0,B,15124340 0,C,92 41,104,60 26,111,19 27,20,112,-8,-8 0,21,-2,0,-1 19,10C,1335 44,10D,23 37,10,7293620 0,D,25 0,A,-3382284 0,B,15124339 0,C,92 41,104,61 28,111,21 30,10C,1320 43,20,92,-21,-23 0,21,-3,0,-1 20,10D,23 44,104,68 34,111,21 33,10C,1339 46,10D,25 37,20,99,-21,-10 0,21,-1,0,1 20,104,71 32,111,21 30,10C,1328 43,10D,25 45,104,71 29,111,21 26,20,106,-21,-7 0,21,-2,0,-1 16,10,7293680 0,D,26 0,A,-3382286 0,B,15124335 0,C,92 68,10C,1335 43,10D,25 49,104,71 23,10,7293700 0,D,27 0,A,-3382287 0,B,15124334 0,C,92 40,111,21 19,20,97,-20,-15 0,21,-2,0,0 20,10C,1363 44,10D,25 49,104,72 22,10,7293720 0,D,28 0,A,-3382288 0,B,15124333 0,C,92 40,111,21 25,20,92,-21,-7 0,21,-1,0,0 19,10C,1363 44,10D,27 55,104,72 22,10,7293740 0,D,28 0,A,-3382289 0,B,15124331 0,C,92 41,111,21 24,20,111,0,-12 0,21,-2,0,0 19,10C,1367 44,10D,27 49,104,72 23,10,7293760 0,D,29 0,A,-3382290 0,B,15124330 0,C,92 44,111,21 24,20,107,-1,-20 0,21,-2,0,0 20,10C,1351 44,10D,27 45,104,73 22,10,7293780 0,D,29 0,A,-3382291 0,B,15124329 0,C,92 40,111,21 28,10C,1367 35,20,125,3,-4 0,21,-1,0,0 19,10D,29 45,104,70 40,111,21 30,10C,1402 46,10D,29 38,20,109,0,-7 0,21,-2,0,-2 19,104,70 26,111,21 41,10C,1406 54,10D,29 46,104,70 22,20,106,-9,-10 0,21,-1,0,0 19,111,20 37,10,7293840 0,D,31 0,A,-3382294 0,B,15124324 0,C,92 41,10C,1394 41,10D,29 46,104,61 21,20,100,-10,0 0,21,-1,0,0 19,111,16 28,10C,1304 40,10,7293860 0,D,32 0,A,-3382295 0,B,15124323 0,C,92 40,10D,31 47,104,45 26,20,98,-23,-4 0,21,-1,0,0 19,111,16 30,10C,1277 35,10,7293880 0,D,32 0,A,-3382296 0,B,15124321 0,C,92 41,10D,31 47,104,40 30,111,15 21,20,98,-20,-4 0,21,0,0,0 19,10C,1328 34,10,7293900 0,D,32 0,A,-3382297 0,B,15124320 0,C,92 44,10D,31 43,104,35 29,111,15 32,10C,1355 35,20,104,-20,-4 0,21,0,0,0 21,10D,31 47,104,30 29,111,13 30,10C,1316 45,10D,32 46,20,94,-25,-9 0,21,-1,0,-1 22,104,25 26,111,12 34,10C,1199 43,10D,32 45,104,22 22,10,7293960 0,D,32 0,A,-3382300 0,B,15124315 0,C,92 45,111,12 19,20,94,-31,-12 0,21,0,0,0 20,10C,1195 53,10D,32 46,104,18 21,10,7293980 0,D,32 0,A,-3382301 0,B,15124313 0,C,92 40,111,11 20,20,105,-27,-7 0,21,0,0,1 20,10C,1187 44,10D,32 48,104,15 23,10,7294000 0,D,32 0,A,-3382302 0,B,15124312 0,C,92 41,111,11 24,20,94,-23,-5 0,21,-1,0,0 19,10C,1222 44,10D,31 45,104,13 23,10,7294020 0,D,30 0,A,-3382303 0,B,15124310 0,C,92 41,111,11 30,10C,1171 35,20,105,-28,-6 0,21,-1,0,0 20,10D,31 46,104,13 40,111,12 29,10C,1179 51,10D,31 37,20,106,-21,-11 0,21,-1,0,0 20,104,18 26,111,14 23,10,7294060 0,D,29 0,A,-3382304 0,B,15124308 0,C,92 42,10C,1187 41,10D,31 45,104,27 21,20,99,-25,-12 0,21,-1,0,0 19,111,18 33,10C,1257 43,10D,30 50,104,45 30,111,19 25,20,110,-18,-15 0,21,-1,0,-1 19,10C,1359 41,10D,30 38,10,7294100 0,D,29 0,A,-3382306 0,B,15124305 0,C,93 41,104,54 31,111,19 30,20,102,-14,-11 0,21,-1,0,0 18,10C,1304 42,10D,30 39,10,7294120 0,D,29 0,A,-3382307 0,B,15124303 0,C,93 40,104,60 28,111,19 32,10C,1250 34,20,100,-20,-9 0,21,-1,0,1 26,10D,30 65,104,60 30,111,17 30,10C,1265 44,10D,30 38,20,112,-6,-13 0,21,-1,0,1 17,10,7294160 0,D,29 0,A,-3382309 0,B,15124301 0,C,93 66,104,51 27,111,15 32,10C,1253 43,10D,30 38,20,104,-17,-12 0,21,-1,0,1 20,104,40 28,111,14 46,10C,1257 56,10D,30 37,10,7294200 0,D,30 0,A,-3382311 0,B,15124298 0,C,93 41,104,33 19,20,123,-16,-2 0,21,-1,0,1 20,111,14 31,10C,1250 46,10D,30 38,10,7294220 0,D,30 0,A,-3382312 0,B,15124296 0,C,93 41,104,28 28,20,98,-26,-5 0,21,0,0,4 19,111,13 28,10C,1230 45,10D,30 39,10,7294240 0,D,30 0,A,-3382313 0,B,15124295 0,C,93 37,104,24 55,20,105,-15,-7 0,21,0,0,-2 20,111,12 29,10C,1203 44,10D,30 39,10,7294260 0,D,30 0,A,-3382314 0,B,15124293 0,C,93 41,104,20 27,20,102,-26,-4 0,21,-1,0,0 20,111,12 30,10C,1203 43,10D,30 47,104,16 29,111,11 30,10C,1179 34,20,72,-44,-28 0,21,-1,0,0 19,10D,29 44,104,15 24,10,7294300 0,D,30 0,A,-3382315 0,B,15124291 0,C,93 41,111,11 28,10C,1167 45,10D,29 36,20,105,-31,-9 0,21,-1,0,1 22,104,14 32,111,11 34,10C,1167 46,10D,29 49,104,13 21,20,96,-29,-12 0,21,-2,0,-1 25,111,11 41,10C,1164 43,10D,29 54,104,13 29,111,11 21,20,108,-20,-20 0,21,-2,0,0 17,10,7294360 0,D,27 0,A,-3382318 0,B,15124287 0,C,93 66,10C,1160 44,10D,27 48,104,13 24,10,7294380 0,D,26 0,A,-3382319 0,B,15124285 0,C,93 41,111,11 19,20,95,-26,-19 0,21,-3,0,0 20,10C,1167 41,10D,27 45,104,12 29,111,11 22,10,7294400 0,D,25 0,A,-3382319 0,B,15124284 0,C,93 41,10C,1160 32,20,100,-38,-19 0,21,-4,0,0 20,10D,27 46,104,13 31,111,11 21,10,7294420 0,D,24 0,A,-3382320 0,B,15124283 0,C,93 40,10C,1128 41,10D,24 42,20,101,-29,-22 0,21,-6,1,0 20,104,15 29,111,12 23,10,7294440 0,D,22 0,A,-3382321 0,B,15124282 0,C,93 41,10C,1070 40,10D,24 46,104,18 31,20,91,-37,-29 0,21,-6,0,-1 18,111,11 22,10,7294460 0,D,21 0,A,-3382321 0,B,15124281 0,C,93 55,10C,1011 45,10D,24 49,104,18 21,20,111,-16,-22 0,21,-7,1,0 20,111,12 20,10,7294480 0,D,20 0,A,-3382322 0,B,15124280 0,C,93 56,10C,925 43,10D,24 49,104,20 22,20,103,-26,-40 0,21,-7,1,0 20,111,12 29,10C,871 46,10D,20 49,104,23 41,111,11 21,20,94,-30,-32 0,21,-8,2,0 21,10C,878 45,10D,20 45,104,23 30,111,13 31,10C,871 34,20,101,-26,-20 0,21,-8,2,0 22,10D,20 43,104,29 29,111,15 34,10C,902 42,10D,20 46,20,99,-29,-27 0,21,-8,2,0 21,104,35 40,111,16 29,10C,1117 46,10D,17 47,10,7294580 0,D,17 0,A,-3382323 0,B,15124274 0,C,93 40,104,37 29,20,100,-26,-17 0,21,-9,3,1 20,111,17 27,10C,1375 46,10D,17 51,104,47 30,111,20 26,20,95,-25,-24 0,21,-9,3,0 20,10C,1488 44,10D,17 49,104,63 30,111,22 31,10C,1718 34,20,106,-11,-25 0,21,-10,1,0 20,10D,17 43,104,65 32,111,22 31,10,7294640 0,D,17 0,A,-3382323 0,B,15124271 0,C,93 45,10C,1929 33,20,94,-8,-25 0,21,-10,1,0 19,10D,17 47,104,60 35,111,21 40,10C,2000 43,10D,17 37,20,81,-31,-31 0,21,-10,4,0 20,104,60 27,111,21 32,10C,1988 43,10D,17 46,104,60 29,111,21 22,20,125,6,-22 0,21,-11,0,1 20,10C,1964 45,10D,17 52,104,60 43,111,22 29,10C,1921 34,20,108,-3,-22 0,21,-11,2,-1 20,10D,19 44,10,7294720 0,D,20 0,A,-3382323 0,B,15124267 0,C,93 41,104,62 31,111,22 30,10C,1851 34,20,105,-8,-26 0,21,-10,0,-2 20,10D,19 40,10,7294740 0,D,21 0,A,-3382322 0,B,15124266 0,C,93 45,104,65 32,111,22 30,10C,1789 33,20,106,9,-28 0,21,-9,2,1 20,10D,19 44,104,66 40,111,22 34,10C,1761 43,10D,19 37,20,138,9,-15 0,21,-10,0,-2 19,104,75 29,111,25 30,10C,1781 43,10D,22 45,104,78 29,111,23 22,20,77,-19,-29 0,21,-8,2,-1 20,10C,1804 33,10,7294800 0,D,23 0,A,-3382321 0,B,15124262 0,C,93 44,10D,22 44,104,70 29,111,22 31,10C,1722 35,20,123,3,-58 0,21,-10,0,0 21,10D,22 44,104,70 29,111,22 30,10C,1628 44,10D,22 38,20,103,2,-16 0,21,-10,0,2 20,104,68 36,111,21 34,10C,1535 42,10D,25 46,104,70 22,20,112,3,-25 0,21,-9,1,0 13,10,7294860 0,D,25 0,A,-3382319 0,B,15124258 0,C,93 70,111,21 39,10C,1433 44,10D,25 37,20,98,-14,-20 0,21,-9,1,1 18,10,7294880 0,D,26 0,A,-3382318 0,B,15124257 0,C,93 65,104,69 32,111,21 28,10C,1355 47,10D,25 38,20,110,-4,-23 0,21,-6,1,1 20,104,70 32,111,21 30,10C,1355 45,10D,25 58,104,69 22,20,98,-18,-16 0,21,-4,-1,0 20,111,21 31,10C,1371 43,10D,27 45,104,69 21,10,7294940 0,D,28 0,A,-3382316 0,B,15124253 0,C,93 41,111,21 20,20,90,-32,-12 0,21,-2,0,1 19,10C,1371 54,10D,27 46,10,7294960 0,D,29 0,A,-3382315 0,B,15124252 0,C,93 45,104,70 27,111,21 22,20,95,3,-8 0,21,-1,1,1 19,10C,1375 49,10D,27 47,104,70 34,111,21 30,10C,1378 35,20,127,5,-10 0,21,-1,-1,-2 19,10D,29 46,104,72 31,111,22 22,10,7295000 0,D,30 0,A,-3382313 0,B,15124249 0,C,93 41,10C,1402 39,10D,29 38,20,106,5,-2 0,21,-1,0,-2 20,104,71 31,111,21 21,10,7295020 0,D,30 0,A,-3382312 0,B,15124248 0,C,93 41,10C,1425 40,10D,29 46,104,72 22,20,94,-17,-11 0,21,-1,0,0 18,111,21 28,10C,1421 48,10D,29 49,104,70 30,111,21 28,10C,1445 34,20,109,-7,-2 0,21,-1,0,0 18,10D,31 54,104,70 29,111,21 30,10C,1453 54,10D,31 38,20,98,-23,-4 0,21,-1,0,0 21,104,70 27,111,21 30,10C,1445 46,10D,31 49,104,69 22,10,7295100 0,D,33 0,A,-3382307 0,B,15124242 0,C,93 41,111,19 18,20,103,-14,-3 0,21,-1,0,0 21,10C,1414 44,10D,31 44,104,51 31,111,14 30,10C,1367 34,20,98,-21,-8 0,21,-1,0,0 19,10D,31 45,104,36 31,111,13 27,10,7295140 0,D,35 0,A,-3382305 0,B,15124239 0,C,93 41,10C,1363 37,20,95,-28,-8 0,21,-1,0,0 19,10D,33 44,104,26 32,111,13 27,10,7295160 0,D,35 0,A,-3382303 0,B,15124238 0,C,93 44,10C,1335 37,20,94,-24,-4 0,21,-1,0,1 20,10D,33 47,104,28 42,111,16 22,10,7295180 0,D,36 0,A,-3382302 0,B,15124236 0,C,93 40,10C,1300 32,20,104,-20,-2 0,21,-1,0,0 21,10D,33 43,104,42 27,111,19 43,10C,1343 43,10D,35 37,20,98,-21,-6 0,21,-1,0,0 20,104,47 27,111,15 32,10C,1332 36,10,7295220 0,D,36 0,A,-3382300 0,B,15124233 0,C,93 41,10D,35 43,104,40 21,20,84,-23,-15 0,21,-1,0,0 20,111,14 30,10C,1246 43,10D,35 39,10,7295240 0,D,36 0,A,-3382298 0,B,15124232 0,C,93 40,104,36 28,20,106,-23,-5 0,21,0,0,0 24,111,14 29,10C,1246 44,10D,35 39,10,7295260 0,D,36 0,A,-3382297 0,B,15124230 0,C,93 40,104,31 25,20,109,-14,-19 0,21,-1,0,1 19,111,13 30,10C,1242 69,10D,36 49,104,25 29,111,12 22,20,145,12,-1 0,21,-1,0,0 19,10C,1242 38,10,7295300 0,D,37 0,A,-3382294 0,B,15124227 0,C,93 40,10D,36 48,104,21 33,111,12 22,20,86,-20,-5 0,21,-1,1,-1 19,10C,1242 45,10D,36 50,104,18 69,111,11 20,20,91,-37,-11 0,21,-1,0,2 20,10C,1246 41,10D,36 50,104,15 30,111,11 29,10C,1253 35,20,90,-29,-6 0,21,-1,0,0 20,10D,37 52,104,13 22,10,7295360 0,D,37 0,A,-3382290 0,B,15124222 0,C,93 41,111,11 31,10C,1250 35,20,158,-6,-7 0,21,0,0,4 19,10D,37 44,104,12 40,111,11 33,10C,1265 43,10D,37 37,20,96,-29,-16 0,21,-1,0,0 19,104,12 29,111,11 31,10C,1273 42,10D,37 46,104,11 29,111,11 21,20,113,-13,-14 0,21,-2,0,0 20,10C,1277 51,10D,38 50,104,11 30,111,11 31,10C,1273 34,20,105,-24,-9 0,21,-1,0,-1 21,10D,38 44,104,11 29,111,11 30,10C,1273 45,10D,38 38,20,102,-27,-5 0,21,-1,0,0 20,104,11 31,111,11 30,10C,1269 47,10D,38 48,104,11 27,20,110,-12,-10 0,21,-1,0,0 24,111,11 41,10C,1265 43,10D,38 45,104,11 29,111,11 21,20,92,-36,2 0,21,0,0,3 17,10,7295500 0,D,39 0,A,-3382281 0,B,15124210 0,C,93 66,10C,1261 40,10D,38 48,104,11 31,20,82,-40,4 0,21,0,1,1 21,111,11 27,10C,1265 46,10D,38 50,104,11 27,111,11 30,20,105,-23,6 0,21,0,0,0 21,10C,1261 40,10D,38 46,104,11 29,111,11 32,10C,1261 35,20,113,-19,7 0,21,0,0,-1 20,10D,38 43,104,11 30,111,11 30,10C,1261 45,10D,38 36,20,85,-37,13 0,21,1,-1,2 21,104,11 37,111,11 34,10C,1257 42,10D,38 45,104,11 21,10,7295600 0,D,40 0,A,-3382274 0,B,15124201 0,C,93 45,111,11 20,20,105,-25,0 0,21,1,0,0 19,10C,1257 41,10D,38 47,104,11 24,10,7295620 0,D,40 0,A,-3382273 0,B,15124200 0,C,93 41,111,11 31,20,122,-7,26 0,21,3,-1,0 20,10C,1253 41,10D,39 44,104,11 22,10,7295640 0,D,40 0,A,-3382272 0,B,15124198 0,C,93 41,111,11 28,10C,1257 34,20,115,-32,18 0,21,3,-2,-1 20,10D,39 45,104,11 31,111,11 31,10C,1257 43,10D,39 37,20,100,-25,19 0,21,3,-2,0 19,104,11 30,111,11 40,10C,1246 44,10D,39 55,104,11 21,20,108,-21,8 0,21,3,-1,-1 19,111,11 34,10C,1246 48,10D,40 49,104,12 33,111,11 21,20,119,-19,6 0,21,4,1,1 20,10C,1250 41,10D,40 38,10,7295720 0,D,40 0,A,-3382267 0,B,15124190 0,C,93 40,104,12 31,111,11 30,10C,1246 34,20,102,-37,16 0,21,3,0,0 19,10D,40 37,10,7295740 0,D,40 0,A,-3382266 0,B,15124187 0,C,93 40,104,12 28,111,11 33,10C,1238 42,10D,40 37,20,99,-32,12 0,21,3,0,0 21,104,12 27,111,11 40,10C,1238 46,10D,40 45,104,12 21,20,107,-15,10 0,21,3,-1,0 20,111,11 28,10C,1238 46,10D,40 54,104,11 29,111,11 27,20,104,-33,6 0,21,1,-1,0 20,10C,1230 45,10D,40 49,104,12 30,111,11 31,10C,1230 35,20,111,-23,3 0,21,1,0,0 20,10D,40 43,104,12 30,111,11 34,10C,1230 41,10D,39 37,20,106,-8,-3 0,21,1,0,-3 17,10,7295840 0,D,40 0,A,-3382262 0,B,15124176 0,C,93 65,104,14 32,111,14 32,10C,1253 43,10D,39 38,20,102,-27,14 0,21,0,-1,1 20,104,24 32,111,18 42,10C,1277 44,10D,39 39,10,7295880 0,D,40 0,A,-3382261 0,B,15124172 0,C,93 41,104,41 18,20,101,-25,12 0,21,1,-1,1 21,111,18 40,10C,1281 45,10D,39 39,10,7295900 0,D,40 0,A,-3382260 0,B,15124170 0,C,93 40,104,51 23,20,113,-12,5 0,21,0,0,-1 20,111,18 27,10C,1289 45,10D,39 39,10,7295920 0,D,41 0,A,-3382260 0,B,15124167 0,C,93 40,104,53 32,111,15 22,20,107,-8,-5 0,21,0,0,-1 19,10C,1281 42,10D,39 47,104,41 34,111,14 29,10C,1289 34,20,95,-20,1 0,21,1,0,0 20,10D,39 45,104,34 23,10,7295960 0,D,42 0,A,-3382259 0,B,15124162 0,C,93 41,111,14 28,10C,1281 43,20,108,-23,0 0,21,0,0,1 19,10D,39 47,104,29 34,10,7295980 0,D,42 0,A,-3382258 0,B,15124160 0,C,93 40,111,13 32,10C,1269 34,20,86,-19,4 0,21,0,0,0 19,10D,41 54,10,7300000 0,D,42 0,A,-3382258 0,B,15124158 0,C,93 45,104,23 27,111,12 30,10C,1261 35,20,103,-23,8 0,21,0,-1,0 19,10D,41 46,104,20 23,10,7300020 0,D,42 0,A,-3382257 0,B,15124155 0,C,93 40,111,12 27,10C,1257 42,10D,41 38,20,102,-20,4 0,21,0,0,1 20,104,16 31,111,11 33,10C,1269 57,10D,42 49,104,18 20,20,102,-29,13 0,21,0,0,0 22,111,16 27,10C,1289 46,10D,42 51,104,28 28,111,16 29,20,97,-17,10 0,21,0,0,-1 17,10,7300080 0,D,43 0,A,-3382256 0,B,15124148 0,C,93 66,10C,1296 41,10D,42 45,104,40 31,20,95,-27,-2 0,21,0,0,0 20,111,17 37,10C,1269 42,10D,42 46,104,43 32,111,17 24,20,122,-12,-1 0,21,0,0,-1 22,10C,1285 41,10D,43 45,104,43 40,111,16 32,10C,1296 34,20,98,-23,0 0,21,-1,0,0 21,10D,43 43,104,43 30,111,16 33,10C,1296 42,10D,43 37,20,95,-27,6 0,21,0,0,0 21,104,40 27,111,16 30,10C,1316 46,10D,43 45,104,38 30,111,14 21,20,102,-28,2 0,21,-1,0,0 21,10C,1320 44,10D,43 50,104,31 28,111,14 43,10C,1320 35,20,117,-15,0 0,21,-1,0,0 20,10D,44 47,104,27 30,111,13 40,10C,1324 44,10D,44 37,20,106,-19,-6 0,21,-1,0,0 20,104,24 27,111,12 34,10C,1308 46,10D,44 37,10,7300240 0,D,45 0,A,-3382253 0,B,15124127 0,C,93 41,104,21 19,20,106,-18,-11 0,21,-1,0,-3 20,111,12 31,10C,1308 45,10D,44 39,10,7300260 0,D,45 0,A,-3382252 0,B,15124124 0,C,93 41,104,17 24,20,99,-26,-3 0,21,-1,0,1 19,111,12 32,10C,1289 44,10D,44 39,10,7300280 0,D,46 0,A,-3382252 0,B,15124121 0,C,93 41,104,14 27,20,106,-24,0 0,21,-1,0,0 20,111,11 27,10C,1300 44,10D,44 57,104,13 29,111,11 26,20,94,-26,-8 0,21,-1,-1,0 21,10C,1289 44,10D,44 46,104,12 33,111,11 30,10C,1281 35,20,104,-16,-3 0,21,-1,-1,0 24,10D,44 55,104,11 31,111,11 30,10C,1269 46,10D,44 37,20,123,-7,3 0,21,-1,0,0 20,104,17 25,111,14 28,10,7300360 0,D,46 0,A,-3382250 0,B,15124110 0,C,93 40,10C,1281 45,10D,44 42,20,101,-23,1 0,21,0,0,0 19,104,25 26,111,16 27,10,7300380 0,D,46 0,A,-3382250 0,B,15124108 0,C,93 41,10C,1265 44,10D,44 46,20,87,-35,-1 0,21,-1,0,0 19,104,33 29,111,14 30,10C,1273 54,10D,45 55,104,29 22,20,105,-14,0 0,21,-1,0,-1 19,111,13 30,10C,1281 36,10,7300420 0,D,46 0,A,-3382249 0,B,15124102 0,C,93 39,10D,45 44,104,25 34,111,12 21,20,102,-30,-3 0,21,0,0,2 18,10C,1281 42,10D,45 45,104,22 30,111,12 30,10C,1269 39,20,88,-30,0 0,21,-1,0,-1 18,10D,45 44,104,20 30,111,12 29,10C,1265 43,10D,46 48,20,109,-23,3 0,21,-1,0,0 19,104,17 32,111,11 32,10C,1277 48,10D,46 48,104,14 21,20,88,-41,-4 0,21,-1,0,-1 21,111,11 19,10,7300500 0,D,47 0,A,-3382247 0,B,15124091 0,C,93 55,10C,1289 55,10D,46 48,104,13 21,20,109,-35,-6 0,21,-1,0,1 21,111,11 31,10C,1265 43,10D,46 49,104,12 31,111,11 27,20,78,-35,0 0,21,-2,0,-2 15,10,7300540 0,D,46 0,A,-3382247 0,B,15124086 0,C,93 68,10C,1257 45,10D,45 49,104,12 30,20,115,-21,-10 0,21,-1,0,-4 20,111,11 32,10C,1257 42,10D,45 49,104,11 32,111,11 27,20,86,-46,7 0,21,-1,0,0 20,10C,1250 41,10D,45 45,104,11 30,111,11 32,10C,1261 33,20,91,-38,-4 0,21,0,0,-1 21,10D,45 48,104,11 42,111,11 30,10C,1277 45,10D,43 37,20,121,-13,-14 0,21,-1,-1,0 16,10,7300620 0,D,43 0,A,-3382245 0,B,15124075 0,C,93 67,104,11 31,111,13 28,10C,1289 48,10D,43 37,20,92,-27,-5 0,21,-1,0,-1 16,10,7300640 0,D,43 0,A,-3382245 0,B,15124072 0,C,86 71,104,17 28,111,14 29,10,7300660 0,D,43 0,A,-3382244 0,B,15124070 0,C,86 41,10C,1300 32,20,111,-14,0 0,21,-1,0,0 20,10D,43 43,104,32 29,111,18 31,10,7300680 0,D,43 0,A,-3382244 0,B,15124067 0,C,86 40,10C,1273 38,20,96,-25,-6 0,21,-1,0,0 19,10D,42 43,104,48 29,111,18 30,10,7300700 0,D,44 0,A,-3382244 0,B,15124065 0,C,86 40,10C,1281 45,20,103,-20,-6 0,21,-1,0,0 20,10D,42 55,104,55 30,111,18 23,10,7300720 0,D,44 0,A,-3382243 0,B,15124062 0,C,86 39,10C,1292 37,20,98,-28,-2 0,21,-1,0,-1 20,10D,42 47,104,57 37,111,18 22,10,7300740 0,D,44 0,A,-3382243 0,B,15124060 0,C,86 40,10C,1292 37,20,94,-10,-19 0,21,-1,0,-1 20,10D,42 43,104,58 31,111,18 31,10C,1289 44,10D,43 37,20,107,-13,0 0,21,-1,0,1 19,104,57 28,111,18 32,10C,1285 43,10D,43 39,10,7300780 0,D,44 0,A,-3382242 0,B,15124054 0,C,86 41,104,57 28,20,103,-25,1 0,21,0,0,-2 20,111,18 29,10C,1285 43,10D,43 39,10,7300800 0,D,44 0,A,-3382242 0,B,15124051 0,C,85 41,104,57 28,20,95,-20,6 0,21,-1,1,0 19,111,18 38,10C,1273 44,10D,43 45,104,58 30,111,18 27,20,92,-21,-1 0,21,-1,-1,2 23,10C,1269 38,10D,45 39,10,7300840 0,D,47 0,A,-3382241 0,B,15124046 0,C,85 41,104,58 27,111,18 30,10C,1269 43,20,94,-28,-7 0,21,-1,-2,1 21,10D,45 47,104,56 30,111,15 29,10C,1261 46,10D,45 37,20,96,-40,-2 0,21,-1,0,-1 22,104,45 18,10,7300880 0,D,48 0,A,-3382240 0,B,15124040 0,C,85 57,111,14 30,10C,1265 43,10D,45 37,20,104,-34,-3 0,21,-1,0,1 21,104,36 28,111,14 30,10C,1257 46,10D,47 49,104,32 31,20,85,-30,-10 0,21,-1,0,-2 20,111,14 41,10C,1257 43,10D,47 45,104,27 29,111,13 22,20,120,-22,-8 0,21,-1,0,0 24,10C,1246 45,10D,47 50,104,24 30,111,12 32,10C,1234 34,20,107,-46,-18 0,21,0,1,-7 21,10D,47 43,104,20 31,111,12 30,10C,1226 45,10D,47 37,20,97,-27,-4 0,21,-1,0,0 21,104,18 31,111,11 29,10C,1207 43,10D,47 49,104,16 30,111,11 22,20,79,-56,-7 0,21,-1,0,0 20,10C,1207 41,10D,47 45,104,14 29,111,11 43,10C,1210 35,20,102,-36,10 0,21,0,0,-2 17,10,7301020 0,D,48 0,A,-3382237 0,B,15124020 0,C,85 66,10D,47 46,104,13 35,111,11 30,10C,1226 34,20,102,-32,2 0,21,0,0,1 21,10D,44 43,104,12 31,111,11 46,10C,1238 36,10,7301060 0,D,48 0,A,-3382237 0,B,15124015 0,C,85 45,10D,44 35,20,102,-25,-8 0,21,0,0,0 20,104,12 29,111,11 24,10,7301080 0,D,42 0,A,-3382236 0,B,15124013 0,C,85 41,10C,1238 45,10D,44 42,20,106,-28,-8 0,21,-1,0,-1 19,104,11 26,111,11 31,10C,1242 47,10D,44 49,104,11 31,20,105,-28,-3 0,21,0,0,0 18,111,11 30,10C,1250 45,10,7301120 0,D,40 0,A,-3382236 0,B,15124008 0,C,85 41,10D,40 43,104,11 26,20,100,-29,-1 0,21,0,0,0 19,111,11 31,10C,1257 35,10,7301140 0,D,39 0,A,-3382235 0,B,15124005 0,C,85 40,10D,40 44,104,11 34,111,11 31,20,89,-37,-8 0,21,-1,0,0 20,10C,1265 33,10,7301160 0,D,38 0,A,-3382235 0,B,15124003 0,C,85 43,10D,40 44,104,11 30,111,11 32,10C,1273 33,20,98,-24,-7 0,21,-1,0,0 22,10D,37 43,104,11 30,111,11 30,10C,1269 35,10,334934 0,D,38 9,10D,37 36,20,100,-29,-6 0,21,-1,0,0 21,104,11 27,111,11 43,10C,1265 43,10D,37 45,104,11 31,20,100,-28,-2 0,21,-1,0,0 17,10,7301220 0,D,36 5,111,11 27,10C,1257 47,10D,37 49,104,11 27,10,7301240 0,D,35 7,111,11 25,20,98,-26,0 0,21,-1,0,1 19,10C,1253 41,10D,37 50,104,11 28,111,11 48,10C,1238 34,20,106,-32,-16 0,21,-1,0,0 17,10,7301260 0,D,35 0,A,-3382233 0,B,15123992 0,C,86 66,10D,35 46,104,12 31,111,11 32,10C,1230 33,20,94,-34,-4 0,21,-1,-1,0 21,10D,35 43,104,12 32,111,11 30,10C,1210 35,10,7301300 0,D,33 0,A,-3382233 0,B,15123988 0,C,86 40,10D,35 36,20,97,-28,-1 0,21,-1,0,0 19,104,12 27,111,11 33,10C,1199 36,10,7301320 0,D,32 0,A,-3382233 0,B,15123986 0,C,86 41,10D,32 44,20,86,-45,-6 0,21,-1,0,0 19,104,12 27,111,11 32,10C,1191 36,10,7301340 0,D,31 0,A,-3382232 0,B,15123985 0,C,86 44,10D,32 45,20,90,-34,-1 0,21,-1,0,-1 20,104,12 29,111,11 30,10C,1187 36,10,7301360 0,D,30 0,A,-3382232 0,B,15123983 0,C,86 40,10D,32 44,104,12 22,20,102,-31,-5 0,21,-1,0,-1 19,111,11 29,10C,1179 44,10D,32 46,104,12 29,111,11 30,10C,1171 34,20,90,-35,-11 0,21,-1,0,-1 19,10D,28 38,10,7301400 0,D,28 0,A,-3382231 0,B,15123980 0,C,86 40,104,12 28,111,11 34,10C,1171 42,10D,28 38,20,99,-32,-8 0,21,-1,0,0 20,104,13 43,111,11 39,10C,1203 46,10D,28 46,10,7301440 0,D,26 0,A,-3382231 0,B,15123976 0,C,86 41,104,12 24,20,93,-30,-7 0,21,-1,0,0 20,111,11 27,10C,1207 46,10D,28 43,10,7301460 0,D,24 0,A,-3382231 0,B,15123975 0,C,86 41,104,12 23,20,105,-24,-2 0,21,-1,0,0 21,111,11 26,10C,1179 46,10D,25 43,10,7301480 0,D,24 0,A,-3382231 0,B,15123974 0,C,86 41,104,13 24,20,92,-29,0 0,21,-1,0,0 20,111,12 31,10C,1015 46,10D,25 50,104,18 34,111,11 22,20,98,-31,-10 0,21,-1,0,1 20,10C,980 44,10D,25 48,104,18 24,10,7301520 0,D,22 0,A,-3382230 0,B,15123971 0,C,86 41,111,11 23,20,97,-30,-6 0,21,-1,0,-1 21,10C,953 62,10D,22 46,10,7301540 0,D,21 0,A,-3382230 0,B,15123970 0,C,86 45,104,18 28,111,11 21,20,93,-35,0 0,21,-1,0,0 20,10C,894 39,10D,22 46,104,20 22,10,7301560 0,D,20 0,A,-3382230 0,B,15123968 0,C,86 41,111,11 31,10C,878 34,20,98,-34,0 0,21,-1,0,0 20,10D,22 47,104,20 30,10,7301580 0,D,19 0,A,-3382230 0,B,15123967 0,C,86 41,111,11 28,10C,832 34,20,94,-38,-3 0,21,-1,0,0 19,10D,22 46,104,21 23,10,7301600 0,D,18 0,A,-3382230 0,B,15123966 0,C,86 40,111,11 27,10C,812 47,10D,18 36,20,98,-30,1 0,21,-1,0,0 20,104,21 38,111,11 29,10C,796 51,10D,18 54,104,21 21,20,98,-26,-7 0,21,-1,0,0 21,111,11 19,10,7301640 0,D,16 0,A,-3382229 0,B,15123964 0,C,86 56,10C,792 45,10D,18 49,104,21 20,20,101,-32,0 0,21,-1,0,1 22,111,11 27,10C,792 43,10D,18 46,104,21 29,111,11 32,10C,804 34,20,101,-31,-1 0,21,-1,0,0 20,10D,14 44,104,21 30,111,11 33,10C,800 46,10D,14 37,20,96,-33,-10 0,21,-1,0,0 16,10,7301700 0,D,13 0,A,-3382229 0,B,15123962 0,C,86 68,104,21 26,111,11 32,10C,792 43,10D,14 38,20,100,-35,-1 0,21,-1,0,0 20,104,21 28,111,11 30,10C,789 54,10D,14 46,104,21 26,20,98,-31,-4 0,21,-1,0,0 20,111,11 28,10C,800 45,10D,11 45,104,23 22,10,7301760 0,D,10 0,A,-3382229 0,B,15123959 0,C,86 40,111,12 20,20,96,-31,-4 0,21,-1,0,0 19,10C,808 44,10D,11 48,104,24 24,10,7301780 0,D,9 0,A,-3382229 0,B,15123959 0,C,86 40,111,12 25,20,101,-29,-8 0,21,-1,0,0 19,10C,816 44,10D,11 57,104,25 23,10,7301800 0,D,8 0,A,-3382229 0,B,15123958 0,C,86 40,111,12 19,20,100,-34,-5 0,21,-1,0,0 20,10C,828 41,10D,11 44,104,25 30,111,12 31,10C,824 34,20,99,-35,-6 0,21,-1,0,0 19,10D,8 48,104,26 45,111,12 23,10,7301840 0,D,6 0,A,-3382229 0,B,15123958 0,C,86 41,10C,777 32,20,97,-32,-3 0,21,-1,0,0 19,10D,8 47,104,27 31,111,12 31,10C,734 44,10D,8 37,20,101,-33,-6 0,21,-1,0,0 19,104,29 28,111,12 32,10C,683 43,10D,8 46,104,29 29,111,11 22,20,103,-31,-4 0,21,-1,0,0 19,10C,671 43,10D,4 57,104,29 29,111,11 30,10C,660 34,20,95,-34,-3 0,21,-1,0,0 19,10D,4 45,104,29 31,111,11 31,10C,656 46,10D,4 46,20,96,-33,-5 0,21,-1,0,0 19,104,29 37,111,11 22,10,7301940 0,D,1 0,A,-3382228 0,B,15123957 0,C,86 41,10C,667 44,10D,4 50,20,106,-9,-5 0,21,-1,0,0 19,104,28 25,10,7301960 0,D,0 0,A,-3382228 0,B,15123957 0,C,86 53,111,11 28,10C,660 46,10D,1 37,20,101,-20,-5 0,21,-1,0,0 19,104,27 28,111,11 35,10C,640 46,10D,1 49,104,27 25,20,101,-17,-5 0,21,0,0,0 18,111,11 21,10,7302000 0,D,0 0,A,-3382228 0,B,15123957 0,C,86 56,10C,628 45,10D,1 48,104,27 21,20,102,-17,-6 0,21,-1,0,0 19,111,11 20,10,7302020 0,D,0 0,A,-3382228 0,B,15123957 0,C,86 57,10C,625 44,10D,0 44,104,27 21,20,101,-18,-4 0,21,-1,0,0 21,111,11 28,10,7302040 0,D,0 0,A,-3382229 0,B,15123957 0,C,86 49,10C,628 39,10D,0 46,104,27 21,20,101,-17,-6 0,21,-1,0,0 21,111,11 31,10C,636 42,10D,0 46,104,27 29,111,11 32,10C,636 34,20,102,-17,-5 0,21,-1,0,0 20,10D,0 44,104,27 30,111,11 33,10C,632 44,10D,0 36,20,102,-18,-3 0,21,-1,0,0 18,10,7302100 0,D,0 0,A,-3382229 0,B,15123957 0,C,86 65,104,27 28,111,11 32,10C,636 43,10D,0 37,20,102,-18,-3 0,21,-1,0,0 21,104,27 28,111,11 33,10C,636 42,10D,0 50,104,27 30,20,102,-17,-5 0,21,-1,0,0 17,10,7302140 0,D,0 0,A,-3382229 0,B,15123957 0,C,87 66,111,11 32,10C,636 54,10D,0 37,20,102,-17,-5 0,21,0,0,0 21,104,27 27,111,11 33,10C,644 41,10D,0 46,104,27 30,111,11 21,20,102,-17,-5 0,21,-1,0,0 20,10C,636 44,10D,0 47,104,27 34,111,11 23,10,7302200 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 40,10C,636 32,20,102,-17,-5 0,21,-1,0,0 20,10D,0 46,104,26 34,111,11 23,10,7302220 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 41,10C,632 36,20,103,-18,-6 0,21,-1,0,0 20,10D,0 45,104,26 35,111,11 30,10C,628 55,10D,0 37,20,103,-16,-5 0,21,-1,0,0 20,104,26 29,111,11 24,10,7302260 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 45,10C,625 45,10D,0 37,20,103,-17,-6 0,21,-1,0,0 19,104,26 36,111,11 22,10,7302280 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 41,10C,621 44,10D,0 41,20,103,-16,-5 0,21,-1,0,0 19,104,26 29,111,11 24,10,7302300 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 41,10C,617 50,10D,0 45,20,100,-18,-6 0,21,-1,0,0 20,104,26 30,111,11 23,10,7302320 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 40,10C,621 40,10D,0 46,104,26 20,20,103,-17,-5 0,21,-1,0,0 19,111,11 33,10C,621 35,10,7302340 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 44,10D,0 53,104,25 21,20,102,-16,-6 0,21,-1,0,0 19,111,11 20,10,7302360 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 56,10C,625 41,10D,0 48,104,25 22,20,101,-18,-7 0,21,-1,0,0 18,111,11 21,10,7302380 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 56,10C,617 44,10D,0 45,104,25 21,20,103,-17,-5 0,21,-1,0,0 20,111,11 20,10,7302400 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 55,10C,613 45,10D,0 48,104,25 21,20,102,-17,-6 0,21,-1,0,0 21,111,11 29,10C,609 46,10D,0 49,104,25 28,111,11 28,20,102,-18,-5 0,21,-1,0,0 22,10,7302440 0,D,0 0,A,-3382229 0,B,15123957 0,C,88 61,10C,613 45,10D,0 54,104,25 21,20,101,-16,-5 0,21,-1,0,0 21,111,11 31,10C,617 42,10D,0 50,104,25 31,111,11 27,20,101,-19,-5 0,21,0,0,0 15,10,7302480 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 68,10C,613 41,10D,0 48,104,25 27,10,7302500 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 40,111,11 20,20,103,-17,-5 0,21,-1,0,0 19,10C,609 44,10D,0 45,104,25 33,111,11 22,10,7302520 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10C,609 31,20,102,-18,-4 0,21,-1,0,0 21,10D,0 47,104,25 32,111,11 35,10,7302540 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10C,609 31,20,102,-17,-6 0,21,-1,0,0 20,10D,0 46,104,25 36,10,7302560 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,111,11 27,10C,605 34,20,103,-17,-5 0,21,-1,0,0 20,10D,0 46,104,25 29,111,10 23,10,7302580 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 40,10C,613 44,10D,0 37,20,103,-18,-6 0,21,-1,0,0 19,104,25 30,111,10 34,10C,605 35,10,7302600 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10D,0 43,104,25 21,20,102,-17,-4 0,21,-1,0,0 19,111,11 32,10C,605 35,10,7302620 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 40,10D,0 43,104,25 29,111,11 21,20,102,-18,-6 0,21,-1,0,0 21,10C,609 45,10D,0 49,104,25 29,111,10 32,10C,605 34,20,104,-17,-7 0,21,-1,0,0 20,10D,0 54,104,25 29,111,10 30,10C,609 73,20,102,-18,-4 0,21,-1,0,0 19,10D,0 56,104,25 33,111,10 39,10C,605 44,10D,0 37,20,103,-17,-5 0,21,-1,0,0 18,10,7302700 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 65,104,25 28,111,10 28,10C,605 39,10,7302720 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10D,0 35,20,102,-17,-5 0,21,-1,0,0 24,104,25 31,111,10 32,10C,601 43,10D,0 46,104,24 27,20,101,-17,-7 0,21,-1,0,0 19,111,10 28,10C,605 44,10D,0 46,104,25 39,111,11 27,20,104,-17,-5 0,21,-1,0,0 19,10C,605 40,10D,0 44,104,25 23,10,7302780 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 39,111,10 28,10C,605 34,20,101,-18,-5 0,21,-1,0,0 20,10D,0 45,104,25 31,111,10 30,10C,605 46,10D,0 37,20,101,-18,-6 0,21,-1,0,0 20,104,25 26,111,10 30,10,7302820 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10C,605 41,10D,0 45,104,25 21,20,102,-15,-5 0,21,-1,0,0 23,111,10 28,10,7302840 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 45,10C,613 41,10D,0 45,104,24 21,20,101,-19,-5 0,21,-1,0,0 19,111,10 28,10,7302860 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 50,10C,609 53,10D,0 45,104,24 21,20,102,-17,-7 0,21,-1,0,0 18,111,10 22,10,7302880 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 55,10C,605 45,10D,0 48,104,24 22,20,103,-17,-4 0,21,-1,0,0 20,111,10 20,10,7302900 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 55,10C,601 44,10D,0 49,104,24 33,20,101,-18,-4 0,21,-1,0,0 22,111,10 30,10C,597 46,10D,0 54,104,25 30,111,10 22,20,101,-17,-4 0,21,-1,0,0 20,10C,589 44,10D,0 49,104,25 30,111,10 32,10C,601 34,20,103,-17,-4 0,21,-1,0,0 20,10D,0 43,104,25 39,111,10 33,10C,605 45,10D,0 37,20,102,-17,-5 0,21,-1,0,0 16,10,7302980 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 67,104,25 27,111,10 31,10C,597 43,10D,0 37,20,101,-18,-5 0,21,-1,0,0 21,104,25 28,111,10 33,10C,601 41,10D,0 46,104,25 30,111,10 21,20,104,-17,-5 0,21,-1,0,0 21,10C,597 40,10D,0 44,104,25 38,111,10 31,10C,601 34,20,101,-18,-5 0,21,-1,0,0 20,10D,0 61,104,25 42,111,10 21,10,7303060 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 40,10C,601 33,20,102,-18,-6 0,21,-1,0,0 20,10D,0 55,104,25 30,111,10 21,10,7303080 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10C,601 37,20,101,-18,-7 0,21,-1,0,0 19,10D,0 46,104,25 29,111,10 23,10,7303100 0,D,0 0,A,-3382229 0,B,15123956 0,C,88 41,10C,601 43,10D,0 36,20,102,-16,-5 0,21,-1,0,0 20,104,25 26,111,10 31,10C,605 46,10D,0 49,104,25 30,111,10 22,20,101,-18,-5 0,21,-1,0,0 18,10C,601 41,10D,0 39,10,7303140 0,D,0 0,A,-3382229 0,B,15123956 0,C,89 44,104,25 32,111,10 28,10C,609 34,20,101,-18,-6 0,21,-1,0,0 21,10D,0 47,104,25 29,111,10 30,10C,601 54,10D,0 37,20,103,-16,-3 0,21,-1,0,0 21,104,25 27,111,11 30,10C,605 46,10D,0 43,104,25 27,10,7303200 0,D,0 0,A,-3382229 0,B,15123956 0,C,89 42,111,10 18,20,102,-16,-6 0,21,-1,0,0 21,10C,605 43,10D,0 45,104,25 31,111,10 30,10C,609 34,20,102,-18,-4 0,21,-1,0,0 19,10D,0 48,104,25 27,111,10 34,10C,609 34,10,7303240 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 41,10D,0 35,20,103,-17,-5 0,21,-1,0,0 19,104,25 32,111,11 32,10C,609 35,10,7303260 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 40,10D,0 47,20,101,-18,-5 0,21,-1,0,0 20,104,25 36,111,10 29,10C,613 34,10,7303280 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 41,10D,0 40,20,103,-16,-5 0,21,-1,0,0 20,104,25 29,111,10 31,10,7303300 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 41,10C,609 40,10D,0 42,20,101,-18,-6 0,21,-1,0,0 19,104,24 30,111,10 30,10C,601 35,10,7303320 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 39,10D,0 44,104,25 21,20,102,-17,-6 0,21,-1,0,0 20,111,10 29,10C,605 51,10D,0 49,104,25 30,111,10 22,20,102,-17,-6 0,21,-1,0,0 19,10C,601 39,10D,0 38,10,7303360 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 41,104,25 28,111,10 29,10C,601 34,20,101,-18,-6 0,21,-1,0,0 18,10D,0 63,104,25 30,111,11 29,10C,605 45,10D,0 37,20,102,-17,-8 0,21,-1,0,0 21,104,25 27,111,10 30,10C,605 46,10D,0 58,104,25 31,20,103,-17,-7 0,21,-1,0,0 21,111,10 31,10C,601 42,10D,0 45,104,25 29,111,10 34,10C,601 34,20,102,-17,-5 0,21,-1,0,0 15,10,7303440 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 68,10D,0 46,104,25 34,111,10 21,10,7303460 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 41,10C,605 32,20,103,-16,-3 0,21,-1,0,0 19,10D,0 46,104,24 32,111,10 33,10,7303480 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 40,10C,601 31,20,102,-18,-5 0,21,-1,0,0 21,10D,0 46,104,25 31,111,10 23,10,7303500 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 41,10C,597 41,20,101,-19,-6 0,21,-1,0,0 20,10D,0 46,104,25 32,111,10 23,10,7303520 0,D,0 0,A,-3382229 0,B,15123957 0,C,89 40,10C,601 40,10D,0 37,20,101,-20,-2 0,21,-1,0,0 19,104,25 30,111,12 31,10C,609 43,10D,0 49,104,35 30,111,14 21,20,101,-18,-4 0,21,-1,0,0 18,10C,613 41,10D,0 47,104,45 29,111,17 30,10C,750 38,20,98,-15,-6 0,21,-1,0,-1 18,10D,0 44,104,62 39,111,20 30,10C,1070 46,10D,0 37,20,108,5,0 0,21,-1,0,-1 19,104,62 21,10,7303600 0,D,0 0,A,-3382228 0,B,15123957 0,C,89 55,111,19 28,10C,1648 46,10D,0 37,20,119,22,2 0,21,-1,0,-1 19,104,51 20,10,7303620 0,D,0 0,A,-3382228 0,B,15123957 0,C,89 56,111,17 28,10C,1671 57,10D,0 37,20,102,2,-7 0,21,0,0,0 20,104,40 29,111,17 30,10C,1507 46,10D,2 45,104,41 27,111,18 36,20,99,-7,-6 0,21,-1,0,0 17,10,7303660 0,D,3 0,A,-3382228 0,B,15123956 0,C,89 66,10C,1386 43,10D,2 45,104,52 23,10,7303680 0,D,4 0,A,-3382228 0,B,15123956 0,C,89 40,111,19 28,20,99,-9,-7 0,21,-1,0,0 20,10C,1425 44,10D,2 44,104,55 22,10,7303700 0,D,5 0,A,-3382228 0,B,15123956 0,C,89 40,111,19 28,10C,1566 35,20,101,-5,-8 0,21,-1,0,0 19,10D,2 45,104,54 31,111,19 31,10C,1617 42,10D,5 46,20,109,4,0 0,21,-1,0,0 19,104,52 26,111,19 31,10C,1648 43,10D,5 46,104,52 29,111,19 21,20,108,1,-2 0,21,-1,0,0 19,10C,1671 46,10D,5 46,104,51 30,111,19 30,10C,1683 43,20,103,-8,-5 0,21,-1,0,2 19,10D,5 48,104,50 34,111,19 52,10C,1683 42,10D,8 37,20,107,-5,-2 0,21,-1,0,0 21,104,50 28,111,19 30,10C,1687 46,10D,8 48,104,50 30,111,19 22,20,97,-15,-14 0,21,-1,0,0 15,10,7303820 0,D,10 0,A,-3382228 0,B,15123953 0,C,89 68,10C,1699 40,10D,8 48,104,50 22,10,7303840 0,D,11 0,A,-3382228 0,B,15123952 0,C,89 41,111,19 18,20,103,-8,-6 0,21,-1,0,0 21,10C,1714 40,10D,8 44,104,51 31,111,19 30,10C,1726 34,20,100,-4,-7 0,21,-1,0,-1 21,10D,12 47,104,50 33,111,19 29,10C,1742 35,10,7303880 0,D,13 0,A,-3382227 0,B,15123950 0,C,89 41,10D,12 44,20,104,-9,-3 0,21,-1,0,1 19,104,54 30,111,20 31,10,7303900 0,D,14 0,A,-3382227 0,B,15123949 0,C,89 40,10C,1792 41,10D,12 42,20,112,3,-3 0,21,-1,0,1 19,104,58 30,111,21 27,10,7303920 0,D,15 0,A,-3382227 0,B,15123948 0,C,89 41,10C,1890 40,10D,12 46,104,60 21,20,105,-3,-11 0,21,-1,0,0 19,111,22 31,10C,1957 35,10,7303940 0,D,15 0,A,-3382227 0,B,15123948 0,C,89 41,10D,15 47,104,60 30,111,21 20,20,103,-11,-4 0,21,0,0,0 24,10C,1929 60,10,7303960 0,D,16 0,A,-3382227 0,B,15123947 0,C,89 40,10D,15 47,104,60 29,20,109,-9,-9 0,21,-1,0,-1 19,111,22 21,10,7303980 0,D,17 0,A,-3382227 0,B,15123945 0,C,89 55,10C,1890 44,10D,15 54,104,63 22,20,105,-3,0 0,21,0,0,1 20,111,22 41,10C,1855 42,10D,18 46,104,65 29,111,23 25,20,107,-4,-5 0,21,0,0,-3 17,10,7304020 0,D,19 0,A,-3382226 0,B,15123943 0,C,89 66,10C,1843 45,10D,18 48,104,70 25,20,93,-18,3 0,21,0,-1,0 17,10,7304040 0,D,19 0,A,-3382226 0,B,15123942 0,C,89 66,111,24 28,10C,1847 43,10D,18 48,20,109,0,-11 0,21,0,0,0 21,104,80 28,111,27 34,10C,1871 46,10D,18 49,104,80 22,20,104,-7,-2 0,21,0,0,-1 20,111,27 29,10C,1875 43,10D,21 54,104,80 41,111,27 22,20,101,-6,-5 0,21,0,0,0 20,10C,1843 44,10D,21 50,104,81 33,111,27 32,10C,1816 35,20,93,-12,-5 0,21,0,0,-1 20,10D,21 44,104,81 30,111,27 30,10C,1769 45,10D,21 37,20,75,-24,-1 0,21,0,0,2 20,104,84 28,111,27 40,10C,1738 46,10D,24 46,10,7304160 0,D,26 0,A,-3382225 0,B,15123934 0,C,89 40,104,84 19,20,79,-30,-15 0,21,-1,-1,1 21,111,27 27,10C,1746 56,10D,24 51,104,84 34,111,27 21,20,114,7,-1 0,21,0,0,1 21,10C,1777 44,10D,24 48,104,83 40,111,27 29,10C,1800 35,20,92,-14,-17 0,21,-1,-1,2 20,10D,24 47,104,82 27,111,27 31,10C,1824 44,10D,27 37,20,112,6,-12 0,21,-2,0,-4 21,104,72 27,111,19 32,10C,1785 44,10D,27 45,104,54 30,111,16 21,20,83,-13,-16 0,21,-1,1,-1 21,10C,1710 42,10D,27 47,104,40 29,111,18 30,10C,1582 35,20,102,-19,-3 0,21,-1,0,1 19,10D,27 46,104,52 23,10,7304280 0,D,30 0,A,-3382224 0,B,15123923 0,C,89 42,111,24 31,10C,1480 39,20,84,-24,-1 0,21,-1,0,-2 24,10D,29 45,104,78 33,10,7304300 0,D,31 0,A,-3382223 0,B,15123921 0,C,89 40,111,23 28,10C,1453 34,20,104,-13,-15 0,21,-2,0,-1 20,10D,29 47,104,80 22,10,7304320 0,D,31 0,A,-3382223 0,B,15123919 0,C,89 40,111,23 31,10C,1468 40,20,100,3,-11 0,21,-1,0,0 20,10D,29 45,104,78 23,10,7304340 0,D,31 0,A,-3382223 0,B,15123918 0,C,89 41,111,23 27,10C,1484 43,10D,29 38,20,108,-8,0 0,21,-1,0,4 19,104,78 40,111,23 24,10,7304360 0,D,31 0,A,-3382223 0,B,15123916 0,C,92 40,10C,1500 41,10D,31 36,20,126,9,-16 0,21,-2,0,0 24,104,78 29,111,23 30,10C,1507 43,10D,31 46,104,77 29,111,23 22,20,113,-8,-26 0,21,-2,0,3 20,10C,1519 42,10,7304400 0,D,32 0,A,-3382223 0,B,15123912 0,C,92 41,10D,31 47,104,77 29,111,23 21,20,111,1,-4 0,21,-2,0,0 21,10C,1515 33,10,7304420 0,D,33 0,A,-3382222 0,B,15123910 0,C,92 44,10D,31 52,104,76 28,111,23 22,20,98,-5,-23 0,21,-2,1,1 20,10C,1496 33,10,7304440 0,D,33 0,A,-3382222 0,B,15123908 0,C,92 44,10D,33 47,104,75 30,111,21 28,20,107,-7,-24 0,21,-3,1,0 21,10C,1500 41,10D,33 49,104,65 30,111,19 33,10C,1472 39,20,128,12,-12 0,21,-3,4,0 20,10D,33 44,104,60 30,111,19 30,10C,1402 46,10D,33 37,20,118,-6,-16 0,21,-2,0,-1 21,104,60 46,111,20 30,10C,1367 43,10D,34 48,104,62 21,20,107,1,-17 0,21,-3,0,0 17,10,7304520 0,D,35 0,A,-3382221 0,B,15123900 0,C,92 66,111,20 31,10C,1351 42,10D,34 47,20,153,21,-28 0,21,-3,0,0 22,104,60 27,111,14 30,10C,1324 46,10D,34 48,104,42 24,10,7304560 0,D,36 0,A,-3382220 0,B,15123895 0,C,92 41,111,14 19,20,65,-32,-20 0,21,-3,1,1 20,10C,1304 41,10D,35 45,104,31 30,111,13 30,10C,1285 39,20,104,-27,-4 0,21,-2,1,3 21,10D,35 47,104,25 27,111,12 31,10C,1242 34,10,7304600 0,D,37 0,A,-3382219 0,B,15123891 0,C,92 41,10D,35 44,20,77,-42,-12 0,21,-2,0,-1 20,104,22 30,111,14 30,10C,1234 34,10,7304620 0,D,37 0,A,-3382219 0,B,15123889 0,C,92 41,10D,35 44,104,25 21,20,103,-26,-11 0,21,-3,0,-2 20,111,14 30,10C,1218 36,10,7304640 0,D,37 0,A,-3382218 0,B,15123886 0,C,92 41,10D,36 43,104,28 30,111,14 21,20,89,-25,-9 0,21,-2,-1,-1 19,10C,1218 41,10D,36 50,104,29 29,111,14 30,10C,1218 34,20,99,-28,-6 0,21,-1,0,5 23,10D,36 50,104,30 29,111,14 30,10C,1210 42,10D,36 37,20,102,-16,-15 0,21,-2,0,0 20,104,30 29,111,14 33,10C,1222 43,10D,36 69,104,28 22,20,86,-17,-10 0,21,-2,0,-2 21,111,12 28,10C,1230 43,10D,36 46,104,24 29,111,12 33,10C,1234 33,20,97,-15,-12 0,21,-1,0,0 18,10,7304740 0,D,37 0,A,-3382215 0,B,15123876 0,C,92 65,10D,36 47,104,29 32,111,15 34,10C,1234 35,20,115,-1,0 0,21,0,-1,2 17,10,7304760 0,D,37 0,A,-3382215 0,B,15123873 0,C,90 66,10D,36 51,104,34 23,10,7304780 0,D,38 0,A,-3382214 0,B,15123871 0,C,90 46,111,15 19,20,103,-14,-6 0,21,-1,0,0 20,10C,1242 40,10D,37 45,104,35 31,111,15 31,10C,1250 34,20,115,-14,-7 0,21,0,-1,0 20,10D,37 47,104,33 37,111,15 31,10C,1250 44,10D,37 37,20,174,-9,-27 0,21,-2,0,6 19,104,33 32,111,15 35,10C,1257 44,10D,37 49,104,33 21,20,104,-26,8 0,21,0,0,2 20,111,15 32,10C,1257 41,10D,38 49,10,7304860 0,D,39 0,A,-3382212 0,B,15123862 0,C,90 40,104,32 19,20,88,-30,-15 0,21,-1,0,0 20,111,14 27,10C,1257 45,10D,38 39,10,7304880 0,D,39 0,A,-3382212 0,B,15123860 0,C,90 40,104,29 32,111,14 26,20,109,-11,-19 0,21,0,0,-1 19,10C,1257 43,10D,38 46,104,25 40,111,12 30,10C,1250 33,20,104,-18,-2 0,21,0,0,0 21,10D,38 53,104,21 34,111,12 34,10C,1250 46,10D,38 37,20,109,-12,-14 0,21,0,0,0 20,104,18 28,111,11 35,10C,1222 42,10D,38 46,104,16 29,111,15 21,20,107,-16,-9 0,21,0,0,-1 21,10C,1246 32,10,7304960 0,D,39 0,A,-3382210 0,B,15123851 0,C,90 44,10D,38 44,104,25 29,111,16 32,10C,1265 34,20,92,-24,-11 0,21,0,-1,2 21,10D,38 44,104,31 30,111,16 29,10C,1265 44,10D,39 38,20,108,-22,2 0,21,0,-1,1 21,104,33 32,111,14 29,10C,1261 46,10D,39 49,104,30 31,20,68,-45,-6 0,21,0,0,-2 16,10,7305020 0,D,40 0,A,-3382208 0,B,15123844 0,C,90 67,111,14 32,10C,1261 44,10D,39 39,10,7305040 0,D,40 0,A,-3382208 0,B,15123841 0,C,90 41,104,25 19,20,118,-4,-3 0,21,-1,0,0 20,111,12 31,10C,1265 44,10D,39 48,104,22 33,111,12 26,20,101,-14,-18 0,21,-1,0,4 20,10C,1269 53,10D,40 46,104,20 30,111,12 30,10C,1253 35,20,84,-28,-22 0,21,0,1,1 19,10D,40 46,104,17 31,111,11 22,10,7305100 0,D,42 0,A,-3382206 0,B,15123834 0,C,90 40,10C,1292 45,20,96,-31,-12 0,21,0,0,0 20,10D,40 46,104,14 31,111,11 31,10,7305120 0,D,42 0,A,-3382206 0,B,15123832 0,C,90 40,10C,1292 36,20,101,-26,-10 0,21,0,0,0 21,10D,40 46,104,12 31,111,11 30,10C,1277 42,10D,41 38,20,106,-29,-13 0,21,0,0,-2 20,104,12 30,111,11 30,10C,1281 34,10,7305160 0,D,43 0,A,-3382205 0,B,15123827 0,C,90 41,10D,41 44,104,11 21,20,110,-27,-11 0,21,0,0,1 20,111,11 29,10C,1285 37,10,7305180 0,D,43 0,A,-3382205 0,B,15123824 0,C,90 39,10D,41 49,104,11 29,111,11 21,20,112,-23,-5 0,21,-1,-1,0 18,10C,1300 46,10D,41 46,104,11 30,111,11 30,10C,1312 43,20,94,-34,-3 0,21,-1,0,1 20,10D,42 47,104,11 39,111,11 30,10C,1335 46,10D,42 37,20,112,-19,-15 0,21,0,0,0 20,104,11 29,111,11 33,10C,1359 47,10D,42 48,104,10 27,20,101,-30,-21 0,21,-1,0,0 16,10,7305260 0,D,44 0,A,-3382203 0,B,15123814 0,C,90 67,111,11 41,10C,1386 43,10D,43 36,20,110,-27,-32 0,21,-1,2,2 21,104,10 28,111,11 33,10C,1402 42,10D,43 45,104,10 30,111,11 22,20,108,-17,-16 0,21,0,0,1 16,10,7305300 0,D,44 0,A,-3382202 0,B,15123808 0,C,90 67,10C,1421 45,10D,43 45,104,10 22,10,7305320 0,D,44 0,A,-3382202 0,B,15123806 0,C,90 40,111,11 29,20,113,-34,-5 0,21,0,0,0 19,10C,1460 44,10D,43 45,104,9 23,10,7305340 0,D,44 0,A,-3382201 0,B,15123803 0,C,90 40,111,11 27,10C,1476 35,20,109,-20,-8 0,21,0,-1,-5 20,10D,44 46,104,9 29,111,11 31,10C,1492 43,10D,44 38,20,98,-26,-5 0,21,0,-1,0 20,104,9 28,111,11 28,10,7305380 0,D,45 0,A,-3382200 0,B,15123798 0,C,90 40,10C,1511 41,10D,44 46,104,9 21,20,93,-42,-19 0,21,-1,1,3 20,111,11 31,10C,1554 34,10,7305400 0,D,45 0,A,-3382200 0,B,15123795 0,C,90 45,10D,44 44,104,9 26,20,106,-14,-24 0,21,-1,0,0 18,111,11 32,10C,1859 34,10,7305420 0,D,45 0,A,-3382200 0,B,15123793 0,C,90 41,10D,44 53,104,8 22,20,106,-29,0 0,21,-2,0,-2 19,111,12 40,10C,2082 44,10D,44 46,104,8 30,111,12 26,20,87,-34,-9 0,21,-1,0,0 18,10C,2226 49,10D,44 46,104,7 30,111,12 30,10C,2378 33,20,94,-37,-8 0,21,-1,0,2 20,10D,44 48,104,7 34,111,12 29,10C,2406 47,10D,43 36,20,95,-26,-10 0,21,-1,1,2 21,104,6 19,10,7305500 0,D,44 0,A,-3382198 0,B,15123782 0,C,90 57,111,12 31,10C,2398 46,10D,43 37,20,106,-17,-5 0,21,-1,0,1 21,104,7 32,111,12 33,10C,2406 47,10D,43 58,104,7 21,20,100,-30,-9 0,21,-1,1,1 21,111,12 27,10C,2398 48,10D,43 49,104,7 27,111,12 31,20,89,-28,-10 0,21,-1,0,0 15,10,7305560 0,D,44 0,A,-3382197 0,B,15123774 0,C,90 68,10C,2402 44,10D,42 49,104,7 27,20,100,-29,-19 0,21,-1,0,0 20,111,12 37,10C,2410 47,10D,42 48,104,7 29,111,12 22,20,112,-17,-19 0,21,-1,0,0 20,10C,2414 44,10D,42 46,104,7 30,111,12 32,10C,2414 33,20,109,-24,-5 0,21,-1,0,0 21,10D,42 44,104,7 30,111,12 33,10C,2417 63,10D,42 37,20,103,-20,-17 0,21,-1,0,-2 20,104,6 31,111,12 30,10C,2421 46,10D,42 50,104,7 26,20,83,-44,-9 0,21,0,0,1 20,111,12 28,10C,2417 47,10D,42 48,104,7 22,10,7305680 0,D,44 0,A,-3382194 0,B,15123759 0,C,90 42,111,12 19,20,100,-31,-15 0,21,0,0,0 20,10C,2410 40,10D,42 45,104,6 27,10,7305700 0,D,44 0,A,-3382194 0,B,15123756 0,C,90 41,111,12 27,10C,2414 34,20,105,-16,-14 0,21,-1,0,-2 21,10D,42 46,104,7 30,111,12 22,10,7305720 0,D,44 0,A,-3382194 0,B,15123754 0,C,90 40,10C,2410 41,20,74,-50,4 0,21,-1,0,-2 23,10D,42 44,104,7 39,111,12 31,10C,2417 46,10D,42 37,20,114,-29,-16 0,21,-1,0,1 21,104,6 29,111,12 27,10,7305760 0,D,44 0,A,-3382193 0,B,15123748 0,C,90 41,10C,2414 44,10D,42 42,20,76,-53,-11 0,21,-1,0,0 19,104,6 26,111,12 31,10,7305780 0,D,44 0,A,-3382193 0,B,15123746 0,C,90 41,10C,2421 41,10D,43 42,20,107,-30,-15 0,21,-1,-1,2 19,104,7 42,111,12 31,10C,2421 80,10D,43 37,20,107,-16,1 0,21,-1,0,0 20,104,7 30,111,12 33,10C,2433 37,10,7305820 0,D,44 0,A,-3382192 0,B,15123740 0,C,81 40,10D,43 40,20,104,-38,-11 0,21,0,1,2 20,104,6 28,111,12 40,10C,2433 43,10D,44 45,104,7 27,20,75,-45,-15 0,21,-1,0,-1 18,111,12 34,10C,2441 36,10,7305860 0,D,44 0,A,-3382191 0,B,15123735 0,C,81 40,10D,44 48,104,6 26,20,100,-40,-20 0,21,-1,0,-1 18,111,12 30,10C,2457 36,10,7305880 0,D,44 0,A,-3382191 0,B,15123733 0,C,81 41,10D,44 47,104,6 29,111,12 22,20,118,-19,-4 0,21,-1,0,-2 18,10C,2464 41,10D,44 50,104,6 30,111,12 30,10C,2472 34,20,97,-23,-14 0,21,-1,0,0 19,10D,44 37,10,7305920 0,D,44 0,A,-3382190 0,B,15123727 0,C,81 44,104,6 32,111,12 34,10C,2468 37,20,78,-47,-8 0,21,-1,0,0 20,10D,44 46,10,7305940 0,D,44 0,A,-3382189 0,B,15123725 0,C,81 40,104,6 41,111,12 30,10C,2484 33,20,82,-38,-1 0,21,-1,0,0 21,10D,44 36,10,7305960 0,D,45 0,A,-3382189 0,B,15123722 0,C,81 41,104,6 27,111,12 33,10C,2488 42,20,97,-32,-6 0,21,-1,0,-1 20,10D,44 35,10,7305980 0,D,45 0,A,-3382189 0,B,15123719 0,C,81 41,104,6 32,111,12 34,10C,2484 41,20,109,-14,-2 0,21,-1,0,-2 20,10D,44 35,10,7310000 0,D,45 0,A,-3382188 0,B,15123717 0,C,81 42,104,6 31,111,12 38,10C,2500 37,20,110,-28,-13 0,21,-1,0,0 21,10D,44 45,10,7310020 0,D,45 0,A,-3382188 0,B,15123714 0,C,81 41,104,6 27,111,12 33,10C,2500 34,20,82,-44,-7 0,21,0,-1,1 21,10D,44 53,104,6 30,111,12 29,10C,2503 46,10D,44 37,20,100,-19,-9 0,21,-1,0,0 21,104,6 27,111,12 30,10C,2507 46,10D,44 49,104,6 27,20,112,-27,-20 0,21,-1,-1,0 15,10,7310080 0,D,45 0,A,-3382187 0,B,15123706 0,C,81 68,111,12 32,10C,2515 42,10D,44 43,20,116,-13,-10 0,21,-1,0,-1 15,10,7310100 0,D,45 0,A,-3382186 0,B,15123703 0,C,81 68,104,6 35,111,12 33,10C,2527 45,10D,44 38,20,90,-34,-5 0,21,-1,1,1 17,10,7310120 0,D,45 0,A,-3382186 0,B,15123700 0,C,81 66,104,6 31,111,12 27,10C,2531 49,10D,44 46,20,94,-29,-19 0,21,-1,-1,0 17,10,7310140 0,D,45 0,A,-3382185 0,B,15123698 0,C,77 67,104,6 26,111,12 31,10C,2535 47,10D,44 37,20,60,-49,-4 0,21,-1,0,0 20,104,6 31,111,12 40,10C,2531 37,10,7310180 0,D,46 0,A,-3382185 0,B,15123692 0,C,77 40,10D,44 47,20,77,-27,-4 0,21,-1,0,0 20,104,6 30,111,12 33,10C,2539 35,10,7310200 0,D,46 0,A,-3382184 0,B,15123690 0,C,77 45,10D,44 40,20,107,-13,-7 0,21,-1,0,0 19,104,6 27,111,12 33,10C,2542 35,10,7310220 0,D,46 0,A,-3382184 0,B,15123687 0,C,77 40,10D,44 44,104,6 21,20,121,-34,-8 0,21,0,2,-3 19,111,12 30,10C,2554 44,10D,44 54,104,6 30,111,12 26,20,95,-12,-13 0,21,-1,0,-2 19,10C,2566 40,10D,44 39,10,7310260 0,D,46 0,A,-3382183 0,B,15123681 0,C,77 40,104,6 28,111,12 29,10C,2386 34,20,139,12,-23 0,21,0,0,-3 19,10D,45 48,104,7 29,111,12 30,10C,2269 46,10D,45 37,20,89,-63,-15 0,21,-1,-3,0 20,104,7 21,10,7310300 0,D,47 0,A,-3382182 0,B,15123676 0,C,77 55,111,12 32,10C,2113 42,10D,45 37,20,96,-36,-5 0,21,-1,0,-2 20,104,7 29,111,12 33,10C,2074 43,10D,45 54,104,8 21,20,132,-31,5 0,21,-1,0,12 21,111,12 19,10,7310340 0,D,47 0,A,-3382181 0,B,15123670 0,C,77 56,10C,2042 54,10D,46 48,104,8 22,20,163,11,-27 0,21,-1,-1,-2 20,111,12 32,10C,2046 42,10D,46 50,104,8 31,111,12 26,20,110,-8,-3 0,21,-1,0,-4 21,10C,2035 41,10D,46 46,104,8 30,111,12 31,10C,2035 34,20,119,-12,-17 0,21,-1,0,-2 21,10D,46 44,104,8 40,111,12 29,10C,1992 45,10D,47 37,20,116,-17,-26 0,21,0,1,1 25,104,8 28,111,11 29,10C,1886 46,10D,47 45,104,9 23,10,7310440 0,D,48 0,A,-3382179 0,B,15123656 0,C,77 40,111,11 19,20,107,-34,-10 0,21,-1,1,-3 20,10C,1746 53,10D,47 44,104,9 23,10,7310460 0,D,48 0,A,-3382179 0,B,15123653 0,C,77 40,111,11 20,20,87,-29,-20 0,21,-1,0,1 19,10C,1546 45,10D,47 48,104,9 23,10,7310480 0,D,48 0,A,-3382178 0,B,15123651 0,C,77 41,111,11 27,10C,1488 34,20,83,-41,-10 0,21,-1,0,0 20,10D,48 46,104,9 31,111,11 29,10C,1484 43,10D,48 37,20,77,-46,-12 0,21,-1,0,2 21,104,9 43,111,11 29,10C,1488 44,10D,48 46,104,9 21,20,86,-41,3 0,21,-1,0,1 20,111,11 30,10C,1500 55,10D,48 50,104,9 29,111,11 31,20,95,-23,-3 0,21,-1,0,-1 19,10C,1507 40,10D,48 38,10,7310560 0,D,48 0,A,-3382176 0,B,15123639 0,C,77 41,104,9 31,111,11 30,10C,1511 33,20,110,-17,4 0,21,0,-1,1 20,10D,48 37,10,7310580 0,D,49 0,A,-3382176 0,B,15123636 0,C,77 41,104,9 27,111,11 34,10C,1523 42,10D,48 37,20,114,-37,0 0,21,-1,0,-2 20,104,9 28,111,11 33,10C,1535 43,10D,48 45,104,9 27,10,7310620 0,D,49 0,A,-3382175 0,B,15123630 0,C,77 45,111,11 19,20,122,11,-8 0,21,0,-3,0 20,10C,1531 45,10D,48 48,104,9 30,111,11 30,10C,1519 35,20,107,-13,15 0,21,-1,0,0 19,10D,48 48,104,9 37,111,11 30,10C,1531 47,10D,48 38,20,65,-65,6 0,21,-1,0,-4 20,104,9 31,111,11 31,10C,1523 52,10D,48 46,104,9 21,20,76,-63,8 0,21,-1,1,-4 20,111,11 31,10C,1519 45,10D,48 39,10,7310700 0,D,49 0,A,-3382174 0,B,15123619 0,C,77 41,104,9 24,20,159,-43,17 0,21,0,6,3 19,111,11 32,10C,1503 44,10D,48 40,10,7310720 0,D,48 0,A,-3382173 0,B,15123616 0,C,77 40,104,9 27,20,44,-99,-7 0,21,-1,5,2 24,111,11 27,10C,1488 46,10D,48 38,10,7310740 0,D,48 0,A,-3382173 0,B,15123613 0,C,77 40,104,9 25,20,110,-16,22 0,21,-1,0,3 19,111,11 28,10C,1468 55,10D,47 38,10,7310760 0,D,47 0,A,-3382172 0,B,15123610 0,C,77 41,104,11 19,20,76,-21,6 0,21,-1,0,-5 20,111,15 37,10C,1468 46,10D,47 38,10,7310780 0,D,47 0,A,-3382172 0,B,15123608 0,C,77 40,104,20 19,20,116,-14,-15 0,21,-2,-1,0 21,111,15 31,10C,1476 44,10D,47 39,10,7310800 0,D,47 0,A,-3382171 0,B,15123605 0,C,77 40,104,26 28,20,95,-26,-25 0,21,-1,0,1 24,111,16 31,10C,1484 42,10D,47 38,10,7310820 0,D,46 0,A,-3382171 0,B,15123602 0,C,77 40,104,30 25,20,103,-10,-4 0,21,0,1,-2 19,111,14 31,10C,1488 42,10D,46 39,10,7310840 0,D,46 0,A,-3382171 0,B,15123599 0,C,77 40,104,25 27,111,13 22,20,124,-8,-1 0,21,-1,0,-2 19,10C,1484 43,10D,46 56,104,20 38,111,12 33,10C,1484 34,20,89,-34,0 0,21,-1,-2,2 20,10D,46 41,10,7310880 0,D,45 0,A,-3382170 0,B,15123594 0,C,77 39,104,18 29,111,12 29,10C,1453 43,20,86,-29,-3 0,21,0,0,-1 18,10D,46 41,10,7310900 0,D,45 0,A,-3382169 0,B,15123591 0,C,77 44,104,22 29,111,16 42,10C,1500 34,20,99,-32,-2 0,21,0,1,-2 19,10D,46 44,104,30 31,111,16 34,10C,1492 42,10D,46 38,20,93,-32,-14 0,21,-1,0,1 19,104,33 28,111,16 21,10,7310940 0,D,45 0,A,-3382169 0,B,15123586 0,C,77 41,10C,1476 44,10D,46 49,104,35 21,20,105,-23,-7 0,21,-1,0,0 20,111,16 29,10,7310960 0,D,45 0,A,-3382168 0,B,15123583 0,C,77 48,10C,1480 41,10D,45 45,104,42 21,20,121,-18,-11 0,21,-1,0,0 21,111,19 28,10C,1496 47,10D,45 49,104,51 29,111,19 28,20,79,-30,-3 0,21,-1,-1,3 22,10,7311000 0,D,44 0,A,-3382168 0,B,15123578 0,C,77 61,10C,1484 42,10D,45 45,104,54 33,111,19 21,20,100,-18,-1 0,21,-1,1,1 17,10,7311020 0,D,45 0,A,-3382167 0,B,15123575 0,C,77 67,10C,1480 44,10D,45 44,104,55 30,111,19 22,20,131,-3,-12 0,21,-1,0,2 20,10C,1488 45,10D,44 50,104,58 27,111,20 40,10C,1500 43,20,89,-3,5 0,21,-1,0,-4 22,10D,44 47,104,58 28,111,19 32,10C,1488 37,10,7311080 0,D,45 0,A,-3382166 0,B,15123567 0,C,77 40,10D,44 35,20,86,-30,-11 0,21,-1,0,3 20,104,55 27,111,18 32,10C,1500 43,10D,44 50,104,54 32,111,18 21,20,72,-31,-12 0,21,-1,-1,1 19,10C,1503 42,10D,44 48,10,7311120 0,D,45 0,A,-3382165 0,B,15123561 0,C,77 40,104,53 27,111,19 27,20,90,-31,-4 0,21,-2,-2,2 19,10C,1503 42,10D,44 39,10,7311140 0,D,46 0,A,-3382165 0,B,15123559 0,C,77 41,104,54 28,111,19 29,10C,1507 34,20,82,-32,-22 0,21,-1,-1,0 20,10D,44 58,104,54 38,111,19 30,10C,1492 46,10D,44 37,20,98,-21,-20 0,21,-2,1,-1 20,104,54 33,111,19 30,10C,1480 42,10D,45 46,104,56 31,111,20 21,20,117,-16,-6 0,21,-1,0,-1 17,10,7311200 0,D,46 0,A,-3382164 0,B,15123550 0,C,77 67,10C,1480 44,10D,45 44,104,58 30,20,92,-17,-14 0,21,-2,0,0 21,111,20 31,10C,1472 43,10D,45 45,104,60 32,111,20 29,10C,1480 35,20,90,-24,-13 0,21,-1,0,0 21,10D,45 43,104,60 29,111,20 32,10C,1488 44,10D,46 37,20,117,-5,-4 0,21,0,1,0 17,10,7311260 0,D,46 0,A,-3382162 0,B,15123542 0,C,72 66,104,58 50,111,20 30,10C,1492 39,20,87,-34,-9 0,21,0,0,0 19,10D,46 47,104,60 30,111,20 32,10C,1496 43,10D,46 37,20,102,-23,-3 0,21,0,1,-1 20,104,58 28,111,20 32,10C,1500 41,10D,46 46,104,58 30,111,19 25,20,101,-22,-17 0,21,0,0,2 19,10C,1492 41,10D,47 44,104,57 24,10,7311340 0,D,48 0,A,-3382161 0,B,15123530 0,C,72 41,111,19 27,10C,1527 35,20,68,-22,-21 0,21,-1,0,0 20,10D,47 46,104,57 33,111,19 31,10C,1519 43,10D,47 38,20,90,-34,-10 0,21,-1,0,0 20,104,49 38,111,15 24,10,7311380 0,D,49 0,A,-3382160 0,B,15123524 0,C,72 41,10C,1500 41,10D,47 37,20,76,-39,-4 0,21,0,0,1 19,104,33 26,111,14 31,10,7311400 0,D,49 0,A,-3382160 0,B,15123522 0,C,72 41,10C,1453 40,10D,48 47,20,139,0,-2 0,21,-1,0,1 19,104,27 39,111,13 27,10,7311420 0,D,49 0,A,-3382159 0,B,15123519 0,C,72 41,10C,1433 39,10D,48 38,20,118,-6,-19 0,21,0,0,-2 20,104,22 30,111,13 30,10C,1425 43,10D,48 46,104,20 30,111,12 22,20,98,-28,-10 0,21,-1,0,2 19,10C,1421 45,10D,48 39,10,7311460 0,D,49 0,A,-3382158 0,B,15123513 0,C,72 41,104,24 31,111,16 25,20,81,-32,-7 0,21,-2,0,0 19,10C,1468 51,10D,48 49,104,43 34,111,21 29,10C,1500 34,20,105,-16,-20 0,21,-1,2,2 21,10D,48 36,10,7311500 0,D,48 0,A,-3382157 0,B,15123507 0,C,72 41,104,60 27,111,21 34,10C,1519 42,10D,48 41,20,104,-19,-4 0,21,-1,1,1 21,104,65 37,111,21 34,10C,1523 42,10D,48 45,104,67 22,20,86,-19,-12 0,21,-2,0,0 16,10,7311540 0,D,48 0,A,-3382157 0,B,15123501 0,C,72 67,111,21 31,10C,1531 42,10D,48 46,104,69 22,20,83,-31,-4 0,21,-1,0,0 17,10,7311560 0,D,48 0,A,-3382156 0,B,15123498 0,C,72 66,111,21 36,10C,1527 43,10D,48 47,20,103,-16,-9 0,21,-1,0,2 15,10,7311580 0,D,49 0,A,-3382156 0,B,15123495 0,C,72 68,104,68 30,111,21 33,10C,1515 36,10,7311600 0,D,49 0,A,-3382155 0,B,15123492 0,C,72 40,10D,48 35,20,120,-1,-3 0,21,-1,-2,-2 24,104,69 28,111,21 32,10C,1515 36,10,7311620 0,D,50 0,A,-3382155 0,B,15123489 0,C,72 41,10D,49 40,20,129,-5,-7 0,21,-1,-1,-2 19,104,69 28,111,21 31,10C,1500 43,10D,49 59,104,70 21,20,97,-24,1 0,21,-1,0,0 20,111,21 30,10C,1484 43,10D,49 38,10,7311660 0,D,50 0,A,-3382154 0,B,15123483 0,C,72 41,104,69 28,111,21 21,20,93,-24,-3 0,21,0,0,0 20,10C,1484 43,10D,50 39,10,7311680 0,D,51 0,A,-3382153 0,B,15123480 0,C,72 40,104,69 37,111,21 21,20,92,-15,-13 0,21,0,-2,1 20,10C,1488 44,10D,50 37,10,7311700 0,D,50 0,A,-3382153 0,B,15123477 0,C,72 46,104,70 31,111,21 26,20,84,-28,-6 0,21,0,0,-1 19,10C,1503 39,10D,50 39,10,7311720 0,D,51 0,A,-3382152 0,B,15123474 0,C,72 41,104,69 31,111,21 31,10C,1503 33,20,90,-17,-8 0,21,-1,3,-3 20,10D,50 37,10,7311740 0,D,51 0,A,-3382152 0,B,15123471 0,C,72 41,104,65 27,111,17 30,10C,1480 46,10D,51 37,20,82,-38,0 0,21,-1,0,0 20,104,47 32,111,15 30,10C,1484 47,10D,51 48,104,35 27,20,65,-32,-22 0,21,-2,0,-4 21,111,14 28,10C,1484 46,10D,51 68,104,28 29,111,14 22,20,78,-34,2 0,21,-1,0,-2 19,10,7311800 0,D,52 0,A,-3382151 0,B,15123462 0,C,72 64,10C,1460 42,10D,51 48,104,24 22,10,7311820 0,D,52 0,A,-3382150 0,B,15123459 0,C,72 40,111,13 20,20,95,-25,-18 0,21,-1,-1,-3 20,10C,1437 44,10D,51 48,104,20 23,10,7311840 0,D,52 0,A,-3382150 0,B,15123456 0,C,72 42,111,12 23,20,86,-40,-11 0,21,-1,-1,0 21,10C,1449 44,10D,51 47,104,16 24,10,7311860 0,D,52 0,A,-3382149 0,B,15123452 0,C,72 42,111,12 23,20,117,-13,-23 0,21,-1,-2,-2 21,10C,1449 40,10D,51 45,104,14 30,111,11 31,10C,1445 34,20,117,-23,-17 0,21,-1,-1,-2 24,10D,51 57,104,14 31,111,14 23,10,7311900 0,D,51 0,A,-3382148 0,B,15123446 0,C,72 41,10C,1464 32,20,110,-19,0 0,21,0,0,0 20,10D,50 46,104,21 32,111,16 41,10C,1480 36,10,7311920 0,D,51 0,A,-3382148 0,B,15123443 0,C,73 41,10D,50 35,20,94,-24,6 0,21,0,1,1 19,104,29 40,111,16 21,10,7311940 0,D,51 0,A,-3382147 0,B,15123440 0,C,73 41,10C,1480 44,10D,50 38,20,83,-32,0 0,21,0,0,0 20,104,28 28,111,14 31,10C,1492 44,10D,50 49,104,24 30,111,13 22,20,83,-38,-6 0,21,0,-2,0 18,10C,1496 42,10D,50 54,104,21 29,111,13 39,10C,1488 34,20,113,-8,-12 0,21,-1,0,0 20,10D,50 36,10,7312000 0,D,51 0,A,-3382146 0,B,15123431 0,C,73 41,104,18 32,111,16 29,10C,1472 46,20,82,-36,-18 0,21,-1,0,-2 21,10D,50 47,104,26 30,111,16 29,10C,1511 46,10D,50 37,20,111,-16,-4 0,21,-1,-1,2 22,104,31 32,111,16 29,10C,1515 43,10D,50 45,104,33 30,20,123,-16,-9 0,21,0,-1,3 16,10,7312060 0,D,50 0,A,-3382145 0,B,15123422 0,C,73 67,111,16 28,10C,1503 46,10D,50 46,20,114,-10,-7 0,21,-1,0,-4 15,10,7312080 0,D,50 0,A,-3382144 0,B,15123419 0,C,73 68,104,35 32,111,16 46,10C,1511 43,10D,50 36,20,109,-21,-12 0,21,-1,0,0 16,10,7312100 0,D,49 0,A,-3382144 0,B,15123416 0,C,73 67,104,36 31,111,16 36,10C,1511 43,10D,49 38,20,107,-18,-20 0,21,-1,0,-2 15,10,7312120 0,D,49 0,A,-3382144 0,B,15123413 0,C,73 68,104,35 31,111,15 33,10C,1503 44,10D,49 37,20,100,-35,-7 0,21,0,0,1 21,104,29 27,111,14 32,10C,1496 43,10D,49 40,10,7312160 0,D,49 0,A,-3382143 0,B,15123407 0,C,73 40,104,25 19,20,110,-17,-12 0,21,0,0,-1 20,111,14 31,10C,1476 56,10D,48 39,10,7312180 0,D,49 0,A,-3382142 0,B,15123404 0,C,73 44,104,22 19,20,97,-28,-14 0,21,0,0,-2 21,111,13 38,10C,1464 44,10D,48 49,104,20 30,111,12 21,20,88,-34,-8 0,21,0,0,-3 20,10C,1441 43,10D,48 38,10,7312220 0,D,49 0,A,-3382142 0,B,15123398 0,C,73 41,104,16 31,111,12 27,20,115,-21,-4 0,21,0,0,1 19,10C,1449 43,10D,48 39,10,7312240 0,D,49 0,A,-3382141 0,B,15123395 0,C,73 40,104,14 28,111,12 29,10C,1453 34,20,108,-18,-9 0,21,-2,0,-1 21,10D,48 44,104,13 29,111,11 34,10C,1453 42,10D,48 37,20,105,-25,-15 0,21,-1,0,1 21,104,12 35,111,11 23,10,7312280 0,D,49 0,A,-3382140 0,B,15123390 0,C,74 40,10C,1453 45,10D,48 37,20,86,-29,-24 0,21,-1,0,0 19,104,10 50,111,11 34,10C,1449 56,10D,48 41,20,109,-28,-7 0,21,-1,1,0 20,104,9 20,10,7312320 0,D,47 0,A,-3382140 0,B,15123384 0,C,74 57,111,11 31,10C,1460 43,10D,47 37,20,95,-35,-6 0,21,-1,0,0 21,104,10 26,111,11 34,10C,1457 43,10D,47 49,104,10 28,20,102,-24,1 0,21,0,0,1 21,111,11 19,10,7312360 0,D,46 0,A,-3382139 0,B,15123378 0,C,74 56,10C,1457 40,10D,47 45,104,10 22,20,90,-32,-13 0,21,0,0,-2 24,111,11 33,10C,1460 42,10D,45 46,104,9 29,111,11 34,20,110,-19,-15 0,21,0,0,1 20,10C,1457 51,10D,45 45,104,9 30,111,11 29,10C,1460 35,20,99,-23,-11 0,21,0,0,0 20,10D,45 47,104,9 34,111,11 30,10C,1464 46,10D,45 37,20,102,-24,-5 0,21,0,0,0 20,104,9 28,111,11 29,10C,1460 43,10D,45 44,104,9 31,111,11 22,20,99,-30,-3 0,21,-1,0,2 20,10C,1460 44,10D,43 46,104,9 29,111,11 33,10C,1464 35,20,100,-37,2 0,21,-1,0,-1 15,10,7312480 0,D,44 0,A,-3382136 0,B,15123362 0,C,74 67,10D,43 43,104,9 32,111,11 24,10,7312500 0,D,43 0,A,-3382136 0,B,15123360 0,C,74 45,10C,1460 42,20,99,-30,-5 0,21,0,0,1 19,10D,43 43,104,10 30,111,11 22,10,7312520 0,D,42 0,A,-3382136 0,B,15123357 0,C,74 40,10C,1460 44,10D,42 38,20,103,-28,0 0,21,-1,0,-2 20,104,10 25,111,11 44,10C,1460 43,10D,42 47,104,10 21,20,108,-24,-11 0,21,-1,-1,-2 19,111,11 30,10C,1457 36,10,7312560 0,D,42 0,A,-3382135 0,B,15123352 0,C,74 41,10D,42 47,104,10 30,111,12 21,20,105,-27,-13 0,21,-1,0,2 19,10C,1476 45,10D,42 49,104,11 30,111,12 29,10C,1464 35,20,99,-27,-10 0,21,-2,0,-3 24,10D,41 48,104,13 34,111,12 43,10C,1468 42,10D,41 36,20,82,-34,-6 0,21,-1,1,0 21,104,15 28,111,12 29,10C,1453 46,10D,41 50,104,16 29,20,99,-21,-19 0,21,-1,0,1 22,111,12 30,10C,1457 43,10D,41 47,104,15 27,111,11 30,10C,1464 35,20,111,-15,-8 0,21,-1,0,-3 15,10,7312660 0,D,39 0,A,-3382133 0,B,15123340 0,C,74 68,10D,41 52,104,17 31,111,15 21,10,7312680 0,D,39 0,A,-3382133 0,B,15123338 0,C,74 40,10C,1472 33,20,89,-39,7 0,21,-1,0,0 19,10D,39 47,104,26 28,111,16 24,10,7312700 0,D,39 0,A,-3382133 0,B,15123335 0,C,74 45,10C,1468 37,20,97,-28,-9 0,21,-1,0,0 20,10D,39 55,104,30 31,111,16 21,10,7312720 0,D,38 0,A,-3382132 0,B,15123333 0,C,74 40,10C,1453 33,20,97,-30,-6 0,21,-2,0,0 20,10D,39 46,104,32 28,111,16 24,10,7312740 0,D,38 0,A,-3382132 0,B,15123331 0,C,74 41,10C,1449 41,10D,38 37,20,111,-11,-11 0,21,-1,0,0 19,104,32 43,111,16 23,10,7312760 0,D,38 0,A,-3382132 0,B,15123328 0,C,74 40,10C,1449 45,10D,38 37,20,94,-28,-2 0,21,-1,0,1 19,104,34 26,111,17 30,10C,1449 44,10D,38 46,104,41 30,111,18 21,20,95,-23,-4 0,21,-1,0,0 23,10C,1457 42,10D,38 39,10,7312800 0,D,38 0,A,-3382131 0,B,15123324 0,C,75 40,104,45 32,111,18 29,20,105,-8,-8 0,21,-1,0,0 20,10C,1457 46,10D,37 49,104,48 30,111,18 30,10C,1453 33,20,107,-13,-8 0,21,-1,0,1 20,10D,37 37,10,7312840 0,D,38 0,A,-3382131 0,B,15123319 0,C,75 41,104,47 27,111,18 30,10C,1457 45,10D,37 37,20,107,-10,-3 0,21,-1,0,1 21,104,47 28,111,18 30,10C,1464 46,10D,37 48,104,47 27,20,72,-9,-2 0,21,-1,1,-2 20,111,18 28,10C,1476 47,10D,37 49,104,45 37,111,17 21,20,115,-15,-12 0,21,-1,-1,3 25,10C,1476 42,10D,37 49,104,41 29,111,17 42,10C,1476 34,20,90,-27,-8 0,21,-1,0,1 17,10,7312920 0,D,38 0,A,-3382129 0,B,15123310 0,C,75 66,10D,37 47,104,40 28,111,16 24,10,7312940 0,D,39 0,A,-3382129 0,B,15123308 0,C,75 41,10C,1476 32,20,91,-26,-1 0,21,-1,0,0 20,10D,37 43,104,37 32,111,15 30,10C,1476 44,10D,38 37,20,79,-33,-13 0,21,-1,0,3 21,104,31 27,111,13 29,10C,1457 47,10D,38 50,104,23 30,20,108,-17,-9 0,21,-1,0,2 21,111,12 27,10C,1445 44,10D,38 47,104,18 30,111,12 30,10C,1433 35,20,95,-22,-12 0,21,-1,2,3 23,10D,38 46,104,15 32,10,7313020 0,D,39 0,A,-3382127 0,B,15123299 0,C,75 41,111,12 28,10C,1429 33,20,97,-28,32 0,21,0,6,-1 20,10D,38 47,104,13 32,10,7313040 0,D,39 0,A,-3382127 0,B,15123296 0,C,75 40,111,11 27,10C,1429 35,20,82,-23,2 0,21,-1,0,0 19,10D,38 48,104,11 21,10,7313060 0,D,39 0,A,-3382126 0,B,15123294 0,C,75 41,111,11 31,10C,1437 40,20,87,-41,-4 0,21,-1,0,0 19,10D,38 46,104,10 23,10,7313080 0,D,39 0,A,-3382126 0,B,15123292 0,C,75 40,111,11 27,10C,1425 43,10D,38 37,20,89,-31,-7 0,21,-1,1,1 24,104,10 32,111,11 23,10,7313100 0,D,39 0,A,-3382126 0,B,15123289 0,C,75 40,10C,1425 41,10D,38 49,20,95,-25,-6 0,21,-1,0,-2 21,104,10 40,111,11 29,10C,1425 47,10D,38 48,104,10 22,20,66,-47,-8 0,21,0,2,2 20,111,11 20,10,7313140 0,D,39 0,A,-3382125 0,B,15123285 0,C,75 55,10C,1417 41,10D,38 45,104,10 22,20,94,-30,-8 0,21,-1,0,0 20,111,11 32,10C,1421 43,10D,38 49,104,10 30,111,11 27,20,121,-15,-6 0,21,-1,0,-2 22,10C,1425 41,10D,38 45,104,10 30,111,11 29,10C,1425 34,20,98,-25,-12 0,21,-1,0,0 21,10D,38 48,104,10 34,111,11 29,10C,1425 46,10D,38 37,20,75,-36,-10 0,21,-1,0,0 21,104,10 37,111,11 29,10C,1414 47,10D,38 48,104,10 21,20,86,-42,-2 0,21,-1,0,-2 21,111,11 28,10C,1398 46,10D,38 83,104,10 22,20,91,-35,-4 0,21,-1,0,1 20,111,11 28,10C,1375 46,10D,38 50,104,10 28,111,11 26,10,7313280 0,D,39 0,A,-3382122 0,B,15123268 0,C,75 41,10C,1355 32,20,110,-35,-8 0,21,0,-1,0 20,10D,38 48,104,11 27,111,11 31,10,7313300 0,D,39 0,A,-3382122 0,B,15123266 0,C,75 41,10C,1335 37,20,96,-35,20 0,21,0,0,-1 19,10D,38 44,104,11 28,111,11 39,10C,1316 43,10D,38 55,20,91,-36,-13 0,21,0,-1,6 21,104,11 29,111,11 29,10C,1300 47,10D,38 49,104,11 27,20,101,-35,-12 0,21,0,-1,0 19,111,11 27,10C,1285 47,10D,38 37,10,7313360 0,D,38 0,A,-3382121 0,B,15123259 0,C,75 41,104,11 32,111,11 20,20,122,-22,-12 0,21,0,0,0 21,10C,1269 43,10D,37 37,10,7313380 0,D,37 0,A,-3382120 0,B,15123257 0,C,75 41,104,11 28,111,11 30,10C,1250 34,20,130,-11,7 0,21,0,0,2 19,10D,37 44,104,12 30,111,11 43,10C,1230 43,10D,37 37,20,114,-46,11 0,21,0,0,1 20,104,12 20,10,7313420 0,D,36 0,A,-3382120 0,B,15123253 0,C,75 55,111,11 38,10C,1207 46,10D,37 37,20,97,-47,-7 0,21,0,0,4 20,104,12 28,111,11 29,10C,1191 43,10D,35 46,104,12 32,111,11 22,20,94,-52,-5 0,21,0,0,-1 15,10,7313460 0,D,34 0,A,-3382119 0,B,15123248 0,C,75 68,10C,1183 55,10D,35 49,104,12 22,20,105,-37,21 0,21,1,0,-3 15,10,7313480 0,D,33 0,A,-3382119 0,B,15123246 0,C,75 68,111,11 31,10C,1175 41,10D,35 47,104,13 22,20,94,-52,16 0,21,0,0,-5 19,111,11 32,10C,1187 46,10D,32 44,104,13 24,10,7313520 0,D,31 0,A,-3382118 0,B,15123243 0,C,75 44,111,11 47,20,109,-35,28 0,21,2,0,0 20,10C,1207 53,10D,32 50,104,13 30,111,11 29,10C,1195 34,20,95,-35,9 0,21,2,0,-2 21,10D,32 45,104,13 30,111,12 31,10C,1183 42,10D,32 38,20,62,-87,35 0,21,7,-2,1 19,104,15 30,111,11 31,10C,1156 43,10D,28 46,104,15 29,111,11 21,20,69,-51,27 0,21,7,0,-7 19,10C,1207 41,10D,28 48,104,14 32,111,11 34,10C,1242 44,20,96,-40,36 0,21,8,0,-1 20,10D,28 48,104,14 32,111,11 30,10C,1226 47,10D,28 45,20,106,-26,33 0,21,9,-3,0 22,104,14 27,111,11 30,10C,1218 43,10D,28 45,104,20 34,20,101,-27,26 0,21,11,-2,0 16,10,7313660 0,D,24 0,A,-3382119 0,B,15123231 0,C,75 67,111,16 32,10C,1277 43,10D,25 45,20,97,-28,43 0,21,10,-2,-1 20,104,32 29,111,16 30,10C,1371 46,10D,25 49,104,37 28,20,114,-24,14 0,21,9,-1,-1 17,10,7313700 0,D,24 0,A,-3382120 0,B,15123229 0,C,75 66,111,18 28,10C,1480 46,10D,25 46,20,111,-25,14 0,21,10,-2,-2 16,10,7313720 0,D,23 0,A,-3382121 0,B,15123228 0,C,75 67,104,47 31,111,18 30,10C,1589 45,10D,24 46,20,81,-47,50 0,21,12,-2,-2 21,104,47 28,111,18 30,10C,1613 45,10D,24 51,104,47 25,20,96,-29,25 0,21,13,-2,-2 21,111,18 28,10C,1613 43,10D,24 45,104,47 29,111,18 22,10,7313780 0,D,24 0,A,-3382124 0,B,15123224 0,C,75 41,10C,1621 42,20,100,-13,21 0,21,12,-3,-3 19,10D,24 47,104,51 29,111,20 23,10,7313800 0,D,24 0,A,-3382125 0,B,15123224 0,C,75 40,10C,1664 45,10D,24 36,20,103,-23,24 0,21,12,-3,-2 20,104,58 27,111,22 22,10,7313820 0,D,24 0,A,-3382126 0,B,15123223 0,C,75 42,10C,1777 40,10D,24 46,104,65 21,20,91,-36,22 0,21,11,-3,0 19,111,22 40,10C,1914 46,10,7313840 0,D,24 0,A,-3382127 0,B,15123222 0,C,73 44,10D,24 44,104,69 21,20,97,-13,0 0,21,8,-3,-2 19,111,25 20,10,7313860 0,D,24 0,A,-3382128 0,B,15123222 0,C,73 56,10C,2015 41,10D,24 49,104,73 20,20,113,-1,-2 0,21,5,-1,-3 21,111,26 19,10,7313880 0,D,24 0,A,-3382129 0,B,15123221 0,C,73 57,10C,2117 44,10D,24 48,104,76 21,20,115,4,-5 0,21,2,-1,-1 21,111,27 28,10C,2144 47,10D,24 49,104,77 29,111,27 28,20,95,-5,0 0,21,2,-1,0 17,10,7313920 0,D,24 0,A,-3382132 0,B,15123221 0,C,73 66,10C,2136 45,10D,24 49,104,82 26,20,111,-1,-9 0,21,1,0,0 20,10,7313940 0,D,25 0,A,-3382133 0,B,15123220 0,C,73 63,111,29 43,10C,2167 42,10D,24 37,20,102,-13,-12 0,21,0,0,0 20,104,84 28,111,29 30,10C,2140 47,10D,24 48,104,84 30,111,29 21,20,105,-9,-4 0,21,0,0,0 15,10,7313980 0,D,26 0,A,-3382135 0,B,15123220 0,C,73 68,10C,2101 41,10D,24 44,104,85 23,10,7314000 0,D,26 0,A,-3382137 0,B,15123219 0,C,73 41,111,29 29,20,108,-1,-5 0,21,0,0,2 19,10C,2031 45,10D,25 50,104,87 21,10,7314020 0,D,26 0,A,-3382138 0,B,15123219 0,C,73 40,111,29 28,10C,1972 35,20,81,-12,-7 0,21,0,0,1 22,10D,25 46,104,89 24,10,7314040 0,D,27 0,A,-3382139 0,B,15123219 0,C,73 41,111,30 27,10C,1902 53,20,95,-8,-15 0,21,0,-1,-2 19,10D,25 43,104,91 21,10,7314060 0,D,27 0,A,-3382141 0,B,15123218 0,C,73 41,111,30 27,10C,1835 47,10D,25 37,20,109,6,-1 0,21,0,-1,0 19,104,92 21,10,7314080 0,D,28 0,A,-3382142 0,B,15123218 0,C,73 55,111,31 32,10C,1765 43,10D,27 37,20,126,14,-9 0,21,-1,0,-2 19,104,95 21,10,7314100 0,D,28 0,A,-3382143 0,B,15123218 0,C,73 55,111,31 29,10C,1652 46,10D,27 37,20,100,-11,0 0,21,-1,0,1 24,104,95 33,111,31 30,10C,1593 46,10D,27 48,104,95 21,20,85,-24,-5 0,21,-1,0,0 21,111,31 28,10C,1585 47,10D,27 58,104,96 29,111,31 21,20,118,7,-20 0,21,-1,0,-1 21,10C,1585 45,10D,29 49,104,97 30,111,32 32,10C,1601 34,20,93,-18,-15 0,21,-1,-1,0 21,10D,29 53,104,98 30,111,32 29,10C,1609 45,10D,29 38,20,117,6,-9 0,21,-1,0,0 21,104,97 27,111,32 30,10C,1621 46,10D,29 48,104,100 33,20,102,-3,-7 0,21,-1,0,-1 22,111,33 30,10C,1648 46,10D,30 50,104,98 28,111,33 23,10,7314240 0,D,31 0,A,-3382154 0,B,15123215 0,C,73 44,10C,1695 33,20,76,-36,-14 0,21,-1,0,0 20,10D,30 55,104,100 30,111,33 21,10,7314260 0,D,31 0,A,-3382155 0,B,15123215 0,C,73 41,10C,1695 37,20,131,21,-3 0,21,0,0,0 20,10D,30 46,104,98 30,111,33 21,10,7314280 0,D,32 0,A,-3382157 0,B,15123215 0,C,73 41,10C,1683 44,10D,30 38,20,78,-36,-9 0,21,-1,0,-2 19,104,98 26,111,33 34,10C,1691 37,10,7314300 0,D,32 0,A,-3382159 0,B,15123214 0,C,77 40,10D,31 44,20,113,6,0 0,21,0,0,-2 18,104,98 30,111,32 30,10C,1699 43,10D,31 50,104,96 29,111,31 22,20,111,-28,7 0,21,-1,0,4 22,10C,1714 42,10D,31 49,104,96 30,111,30 30,10C,1675 43,20,92,-30,-50 0,21,-2,-6,0 19,10D,31 44,104,95 40,111,30 30,10C,1675 45,10D,33 37,20,120,-5,-32 0,21,-1,-1,0 20,104,95 29,111,30 34,10C,1671 54,10D,33 45,104,94 22,20,78,-18,-24 0,21,-1,0,-1 20,111,30 29,10C,1671 43,10D,33 45,104,95 33,111,30 33,10C,1671 34,20,109,-6,-33 0,21,-1,1,-4 16,10,7314420 0,D,34 0,A,-3382169 0,B,15123212 0,C,77 67,10D,33 47,104,95 33,111,30 22,10,7314440 0,D,34 0,A,-3382170 0,B,15123212 0,C,77 41,10C,1652 31,20,74,-46,-18 0,21,0,0,0 24,10D,34 44,104,95 42,111,30 21,10,7314460 0,D,34 0,A,-3382172 0,B,15123212 0,C,77 41,10C,1640 32,20,118,6,-34 0,21,-2,-2,-4 21,10D,34 43,104,95 31,111,30 23,10,7314480 0,D,34 0,A,-3382174 0,B,15123211 0,C,77 42,10C,1628 40,20,95,-28,-42 0,21,0,0,-3 20,10D,34 43,104,94 31,111,29 31,10C,1625 44,10D,34 37,20,78,-21,-14 0,21,-1,-1,1 19,104,91 28,111,28 31,10C,1632 43,10D,34 40,10,7314520 0,D,34 0,A,-3382177 0,B,15123211 0,C,80 40,104,85 20,20,65,-42,-1 0,21,-1,0,2 19,111,24 27,10C,1625 47,10D,34 50,104,81 58,111,25 22,20,93,-8,-7 0,21,-1,0,0 19,10C,1613 55,10D,34 50,104,80 34,111,25 29,10C,1593 35,20,86,-31,-8 0,21,-1,0,1 20,10D,35 56,104,81 30,111,25 29,10C,1613 47,10D,35 37,20,118,17,-19 0,21,-2,-2,-3 21,104,80 19,10,7314600 0,D,36 0,A,-3382184 0,B,15123209 0,C,80 56,111,24 31,10C,1601 42,10D,35 37,20,68,-59,-2 0,21,-1,1,-1 22,104,80 28,111,23 30,10C,1578 46,10D,35 49,104,67 25,20,163,21,-17 0,21,-1,0,-7 17,10,7314640 0,D,36 0,A,-3382188 0,B,15123208 0,C,80 67,111,18 27,10C,1480 43,10D,36 44,104,49 35,20,139,17,-4 0,21,-1,2,-4 18,10,7314660 0,D,36 0,A,-3382190 0,B,15123208 0,C,80 66,111,14 27,10C,1363 45,10D,36 47,104,32 22,20,150,5,-22 0,21,-1,3,8 19,111,13 28,10C,1332 46,10D,36 48,104,26 23,10,7314700 0,D,36 0,A,-3382194 0,B,15123207 0,C,80 41,111,16 20,20,99,-35,-19 0,21,-1,3,2 19,10C,1296 41,10D,36 45,104,34 27,10,7314720 0,D,36 0,A,-3382195 0,B,15123207 0,C,80 41,111,18 28,10C,1238 44,20,101,-14,-11 0,21,-1,0,0 19,10D,36 46,104,63 31,111,22 31,10C,1265 43,10D,36 46,20,108,-16,-10 0,21,-1,0,2 19,104,73 34,111,21 31,10C,1292 56,10D,36 50,104,74 22,20,109,-16,-18 0,21,-1,0,-1 19,111,23 30,10C,1328 36,10,7314780 0,D,36 0,A,-3382201 0,B,15123206 0,C,80 41,10D,36 47,104,75 29,111,22 21,20,107,-1,-7 0,21,-1,0,0 19,10C,1355 41,10D,36 49,104,74 31,111,22 30,10C,1386 34,20,121,14,6 0,21,-1,0,-7 19,10D,36 45,104,74 30,111,23 33,10C,1417 43,10D,36 36,20,95,-19,-16 0,21,-1,1,-2 21,104,75 19,10,7314840 0,D,36 0,A,-3382206 0,B,15123204 0,C,80 56,111,23 27,10C,1437 47,10D,36 37,20,123,-10,-13 0,21,-1,0,0 21,104,80 42,111,24 39,10C,1460 43,10D,36 45,104,78 21,20,102,-6,-9 0,21,0,0,1 21,111,24 31,10C,1472 43,10D,36 50,104,78 28,111,24 27,20,105,-18,-20 0,21,-1,0,0 16,10,7314900 0,D,37 0,A,-3382212 0,B,15123203 0,C,80 67,10C,1472 41,10D,36 45,104,78 33,111,24 31,20,107,-4,-2 0,21,0,0,0 16,10,7314920 0,D,37 0,A,-3382213 0,B,15123203 0,C,80 67,10C,1511 44,10D,37 45,104,78 22,10,7314940 0,D,37 0,A,-3382215 0,B,15123202 0,C,80 41,111,24 19,20,86,-23,-2 0,21,-1,0,-5 20,10C,1523 53,10D,37 45,104,80 22,10,7314960 0,D,38 0,A,-3382217 0,B,15123202 0,C,80 45,111,24 28,20,93,-19,1 0,21,0,0,0 20,10C,1507 44,10D,37 46,104,80 21,10,7314980 0,D,38 0,A,-3382219 0,B,15123201 0,C,80 41,111,24 28,10C,1507 34,20,79,-38,-17 0,21,-1,0,-1 20,10D,37 45,104,80 24,10,7315000 0,D,39 0,A,-3382221 0,B,15123201 0,C,80 41,111,24 32,10C,1515 39,20,117,3,-13 0,21,0,0,0 20,10D,38 42,104,80 23,10,7315020 0,D,39 0,A,-3382223 0,B,15123201 0,C,80 40,111,24 28,10C,1503 46,10D,38 37,20,107,-17,-6 0,21,-1,0,-1 21,104,78 26,111,22 31,10C,1503 43,10D,38 46,104,67 33,111,17 21,20,99,-4,-7 0,21,-1,0,0 21,10C,1472 42,10D,38 49,104,49 39,111,15 32,10C,1414 34,20,87,-7,-3 0,21,-2,1,-3 21,10D,39 47,104,40 30,111,15 40,10C,1363 49,10D,39 38,20,98,-17,-17 0,21,-1,0,-2 17,10,7315100 0,D,40 0,A,-3382231 0,B,15123199 0,C,80 66,104,34 31,111,14 32,10C,1308 43,10D,39 38,20,137,-4,-7 0,21,-1,0,1 20,104,29 31,111,14 30,10C,1277 45,10D,39 51,104,26 26,20,110,-11,-4 0,21,0,1,0 20,111,13 27,10C,1265 46,10D,40 46,104,24 21,10,7315160 0,D,40 0,A,-3382237 0,B,15123198 0,C,80 41,111,12 23,20,120,-10,-7 0,21,0,0,0 20,10C,1250 53,10D,40 46,104,21 21,10,7315180 0,D,39 0,A,-3382239 0,B,15123197 0,C,80 41,111,12 20,20,92,-37,-8 0,21,-1,0,-1 19,10C,1234 44,10D,40 49,104,17 23,10,7315200 0,D,39 0,A,-3382241 0,B,15123197 0,C,80 40,111,12 27,10C,1230 34,20,107,-17,-18 0,21,-1,0,0 21,10D,39 45,104,22 30,111,15 31,10C,1285 43,10D,39 37,20,105,-19,-7 0,21,-1,0,-1 21,104,37 28,111,20 31,10C,1300 44,10D,39 45,104,60 30,111,21 21,20,107,-17,-13 0,21,-1,0,0 20,10C,1316 45,10D,39 47,104,68 30,111,21 33,10C,1316 47,20,103,-15,-11 0,21,-1,0,-1 20,10D,39 47,104,70 34,111,21 29,10C,1316 57,10D,38 37,20,108,-16,-9 0,21,-2,0,0 20,104,71 29,111,21 46,10C,1324 42,10D,38 45,104,72 21,20,139,10,-21 0,21,-1,-2,0 21,111,21 28,10C,1335 43,10D,38 46,104,71 31,111,21 31,20,116,-13,-23 0,21,-2,0,-2 15,10,7315340 0,D,39 0,A,-3382254 0,B,15123194 0,C,80 68,10C,1351 40,10D,38 46,104,71 29,111,21 21,20,104,-10,-6 0,21,-1,0,0 17,10,7315360 0,D,39 0,A,-3382256 0,B,15123194 0,C,80 66,10C,1382 40,10D,38 54,104,71 24,10,7315380 0,D,39 0,A,-3382258 0,B,15123193 0,C,80 44,111,23 19,20,111,-9,-3 0,21,0,0,1 20,10C,1394 44,10D,38 45,104,74 22,10,7315400 0,D,39 0,A,-3382260 0,B,15123193 0,C,80 42,111,24 28,20,97,-31,12 0,21,-1,-1,3 20,10C,1421 45,10D,38 47,104,78 23,10,7315420 0,D,40 0,A,-3382262 0,B,15123192 0,C,80 40,111,24 25,20,81,-20,-4 0,21,0,0,-6 19,10C,1445 44,10D,39 45,104,78 23,10,7315440 0,D,40 0,A,-3382264 0,B,15123192 0,C,80 41,111,24 31,10C,1468 43,20,101,-10,0 0,21,-1,0,-2 19,10D,39 42,104,78 33,10,7315460 0,D,40 0,A,-3382266 0,B,15123192 0,C,80 45,111,24 29,10C,1496 33,20,116,-5,-9 0,21,-1,0,0 20,10D,39 50,10,7315480 0,D,40 0,A,-3382268 0,B,15123191 0,C,80 41,104,78 31,111,24 33,10C,1507 35,20,139,3,-31 0,21,-1,-1,-2 20,10D,40 44,10,7315500 0,D,41 0,A,-3382270 0,B,15123191 0,C,80 40,104,78 31,111,25 30,10C,1523 35,20,113,-5,-14 0,21,-2,0,-2 19,10D,40 47,104,80 22,10,7315520 0,D,41 0,A,-3382272 0,B,15123190 0,C,80 41,111,24 31,10C,1539 40,20,77,-34,-1 0,21,-1,0,2 18,10D,40 47,104,80 23,10,7315540 0,D,41 0,A,-3382274 0,B,15123190 0,C,80 44,111,24 28,10C,1535 42,20,102,-20,-22 0,21,-1,-1,6 20,10D,40 43,104,80 22,10,7315560 0,D,42 0,A,-3382277 0,B,15123190 0,C,80 40,111,24 28,10C,1539 43,10D,41 37,20,101,-16,-17 0,21,-1,0,-1 19,104,80 42,111,24 34,10C,1542 46,10D,41 49,104,80 21,20,115,6,-9 0,21,0,0,1 20,111,24 20,10,7315600 0,D,42 0,A,-3382281 0,B,15123189 0,C,80 56,10C,1527 40,10D,41 46,104,70 20,20,97,-25,-8 0,21,0,0,0 22,111,19 28,10C,1507 47,10D,41 49,104,54 30,111,15 24,20,96,-13,-12 0,21,-1,0,0 21,10C,1457 41,10D,42 50,104,40 34,111,14 28,10C,1394 34,20,92,-21,-2 0,21,0,0,1 22,10D,42 44,104,32 29,111,14 34,10C,1351 42,10D,42 47,20,91,-27,-14 0,21,0,0,2 21,104,28 49,111,13 29,10C,1320 47,10D,42 46,10,7315700 0,D,43 0,A,-3382291 0,B,15123186 0,C,80 40,104,24 19,20,90,-30,-16 0,21,0,0,0 20,111,12 27,10C,1292 46,10D,42 46,10,7315720 0,D,42 0,A,-3382294 0,B,15123186 0,C,80 41,104,22 20,20,91,-26,-14 0,21,-1,0,1 19,111,12 28,10C,1273 46,10D,42 45,104,18 22,10,7315740 0,D,42 0,A,-3382296 0,B,15123186 0,C,80 40,111,12 20,20,101,-19,-30 0,21,-1,0,-1 23,10C,1234 44,10D,42 50,104,15 21,10,7315760 0,D,42 0,A,-3382298 0,B,15123185 0,C,80 41,111,11 24,20,87,-31,-18 0,21,-1,0,-1 20,10C,1230 44,10D,42 44,104,16 24,10,7315780 0,D,42 0,A,-3382300 0,B,15123185 0,C,80 40,111,14 28,20,87,-31,-7 0,21,-1,0,1 20,10C,1242 44,10D,41 44,104,25 23,10,7315800 0,D,41 0,A,-3382302 0,B,15123184 0,C,80 41,111,17 28,20,109,-18,-12 0,21,-1,0,0 20,10C,1226 45,10D,41 49,104,38 21,10,7315820 0,D,41 0,A,-3382304 0,B,15123184 0,C,80 41,111,17 24,20,84,-22,-11 0,21,-1,0,-1 23,10C,1238 45,10D,41 53,10,7315840 0,D,40 0,A,-3382306 0,B,15123184 0,C,80 39,104,44 28,111,14 22,20,104,-24,-3 0,21,-1,0,2 20,10C,1246 43,10D,40 46,10,7315860 0,D,40 0,A,-3382308 0,B,15123183 0,C,80 41,104,33 28,111,13 26,20,122,-12,-11 0,21,-1,0,0 20,10C,1246 44,10D,40 46,104,29 35,111,16 29,10C,1250 43,20,104,-18,-12 0,21,-1,0,0 21,10D,40 45,104,36 31,111,19 30,10C,1300 47,10D,40 37,20,105,-22,-16 0,21,-1,1,-1 20,104,54 30,111,20 26,10,7315920 0,D,40 0,A,-3382314 0,B,15123182 0,C,80 41,10C,1332 44,10D,39 42,20,103,-14,-3 0,21,0,0,0 20,104,63 25,111,20 31,10C,1335 35,10,7315940 0,D,39 0,A,-3382316 0,B,15123182 0,C,80 40,10D,39 48,104,65 20,20,110,-9,-16 0,21,-1,0,0 21,111,20 26,10C,1316 35,10,7315960 0,D,39 0,A,-3382318 0,B,15123181 0,C,80 41,10D,39 43,104,65 30,111,20 21,20,114,-13,-4 0,21,-1,0,1 19,10C,1296 42,10D,39 49,104,65 39,111,20 34,10C,1296 33,20,105,-10,-9 0,21,0,0,-2 21,10D,39 36,10,7320000 0,D,39 0,A,-3382322 0,B,15123181 0,C,80 40,104,66 27,111,20 30,10C,1304 46,10D,39 37,20,102,-12,-4 0,21,-1,0,0 25,104,66 27,111,20 30,10C,1300 46,10D,39 49,104,66 23,10,7320040 0,D,39 0,A,-3382326 0,B,15123180 0,C,80 41,111,20 18,20,69,-10,-4 0,21,-1,0,-3 21,10C,1308 41,10D,39 61,104,65 40,111,20 30,10C,1324 33,20,99,-16,-5 0,21,-1,0,3 21,10D,40 46,104,65 29,111,20 22,10,7320080 0,D,40 0,A,-3382330 0,B,15123179 0,C,80 41,10C,1335 40,10D,40 47,20,95,-11,-17 0,21,-1,0,-2 20,104,65 29,111,20 23,10,7320100 0,D,40 0,A,-3382332 0,B,15123179 0,C,80 41,10C,1335 44,10D,40 46,20,104,-17,-11 0,21,-1,0,0 18,104,65 30,111,20 22,10,7320120 0,D,40 0,A,-3382334 0,B,15123178 0,C,80 40,10C,1351 41,10D,40 46,104,66 21,20,105,-7,-13 0,21,0,0,0 18,111,20 29,10C,1355 47,10D,40 50,104,65 30,111,20 30,20,98,-17,-16 0,21,-1,0,2 19,10C,1355 34,10,7320160 0,D,40 0,A,-3382338 0,B,15123178 0,C,80 43,10D,40 48,104,66 30,111,20 28,20,118,-15,-10 0,21,-1,0,0 18,10C,1355 35,10,7320180 0,D,41 0,A,-3382340 0,B,15123177 0,C,80 44,10D,40 43,104,66 42,111,20 21,20,100,-23,-6 0,21,-1,0,0 20,10C,1355 43,10,7320200 0,D,41 0,A,-3382342 0,B,15123177 0,C,80 44,10D,40 48,104,66 33,111,20 20,20,86,-13,-13 0,21,-1,0,2 21,10C,1351 32,10,7320220 0,D,41 0,A,-3382344 0,B,15123176 0,C,80 44,10D,40 48,104,67 29,111,20 29,20,91,-19,-21 0,21,-1,0,0 17,10,7320240 0,D,41 0,A,-3382346 0,B,15123176 0,C,80 66,10C,1355 45,10D,40 48,104,66 25,20,110,-8,-11 0,21,-2,0,0 21,111,20 32,10C,1347 43,10D,40 45,104,67 30,111,20 31,10C,1355 34,20,86,-21,-12 0,21,-1,0,-1 18,10,7320280 0,D,41 0,A,-3382350 0,B,15123175 0,C,80 65,10D,41 47,104,67 37,111,20 35,10C,1355 34,20,90,-18,-12 0,21,-2,0,0 21,10,7320300 0,D,41 0,A,-3382352 0,B,15123175 0,C,88 63,10D,41 43,104,66 30,111,20 30,10C,1355 35,20,94,-23,-26 0,21,-1,0,1 19,10D,41 48,104,66 28,111,20 30,10C,1355 35,10,7320340 0,D,42 0,A,-3382356 0,B,15123174 0,C,88 40,10D,42 35,20,130,2,-12 0,21,0,0,0 20,104,66 31,111,19 32,10C,1347 35,10,7320360 0,D,42 0,A,-3382358 0,B,15123173 0,C,88 41,10D,42 43,20,117,-11,-17 0,21,0,0,-1 21,104,56 26,111,15 33,10C,1312 35,10,7320380 0,D,42 0,A,-3382361 0,B,15123173 0,C,88 41,10D,42 47,104,42 21,20,112,-11,-7 0,21,0,0,-1 24,111,14 41,10C,1285 34,10,7320400 0,D,42 0,A,-3382363 0,B,15123173 0,C,88 41,10D,42 44,104,34 20,20,81,-28,-4 0,21,0,0,0 20,111,14 30,10C,1265 35,10,7320420 0,D,42 0,A,-3382365 0,B,15123172 0,C,88 41,10D,42 43,104,29 30,111,13 21,20,98,-23,-2 0,21,0,0,0 19,10C,1253 82,10D,42 49,104,25 30,111,12 21,20,94,-15,-6 0,21,-1,0,6 18,10C,1242 52,10D,42 49,104,22 30,111,12 29,10C,1230 34,20,101,-13,1 0,21,0,0,1 20,10D,42 36,10,7320480 0,D,42 0,A,-3382371 0,B,15123171 0,C,88 41,104,20 27,111,12 38,10C,1203 38,20,94,-31,-6 0,21,-1,0,1 20,10D,41 45,10,7320500 0,D,41 0,A,-3382373 0,B,15123171 0,C,88 40,104,16 32,111,11 34,10C,1207 33,20,96,-30,-9 0,21,-1,0,0 20,10D,41 36,10,7320520 0,D,41 0,A,-3382375 0,B,15123170 0,C,88 41,104,14 40,111,11 29,10C,1210 34,20,99,-26,-11 0,21,-1,-1,1 21,10D,41 35,10,7320540 0,D,41 0,A,-3382377 0,B,15123170 0,C,88 41,104,13 27,111,12 34,10C,1222 42,10D,40 37,20,103,-19,-17 0,21,-1,-1,0 20,104,14 28,111,12 30,10C,1226 47,10D,40 44,104,14 29,111,12 31,20,110,-28,-7 0,21,-1,0,2 25,10C,1238 45,10D,40 45,104,18 28,111,13 23,10,7320600 0,D,40 0,A,-3382383 0,B,15123169 0,C,88 41,10C,1242 42,20,123,-5,-9 0,21,-1,0,1 19,10D,40 47,104,22 29,111,14 23,10,7320620 0,D,39 0,A,-3382385 0,B,15123168 0,C,88 41,10C,1253 41,10D,39 37,20,97,-20,-12 0,21,0,0,-1 20,104,24 29,111,14 30,10C,1242 44,10D,39 50,104,26 29,111,14 22,20,104,-23,-14 0,21,-1,0,1 19,10C,1253 41,10D,39 47,104,29 33,111,14 34,10C,1261 34,20,122,-6,-16 0,21,-1,-1,-1 19,10D,39 45,104,28 30,111,13 34,10C,1265 42,10D,38 36,20,105,-19,-12 0,21,-1,0,1 24,104,24 29,111,12 33,10C,1261 53,10D,38 45,104,21 20,20,96,-29,-16 0,21,-1,0,0 21,111,12 19,10,7320720 0,D,39 0,A,-3382395 0,B,15123166 0,C,88 56,10C,1257 44,10D,38 50,104,17 20,20,104,-12,-31 0,21,-1,-1,-2 22,111,11 27,10C,1273 47,10D,38 50,104,18 28,111,14 29,20,90,-32,-18 0,21,-2,0,1 20,10C,1273 42,10D,38 49,104,22 30,111,14 29,10C,1273 35,20,71,-40,-17 0,21,-2,0,-1 20,10D,38 44,104,25 30,111,14 42,10C,1246 46,10D,38 37,20,119,-18,-19 0,21,-2,0,2 21,104,28 31,111,16 39,10C,1253 50,10D,38 56,104,36 22,20,92,-28,-10 0,21,-1,0,0 20,111,16 28,10C,1257 43,10D,38 45,104,40 30,111,16 21,10,7320840 0,D,39 0,A,-3382406 0,B,15123164 0,C,88 41,10C,1261 32,20,93,-33,-5 0,21,0,0,-1 21,10D,38 46,104,41 42,111,16 22,10,7320860 0,D,39 0,A,-3382408 0,B,15123164 0,C,88 40,10C,1265 32,20,103,-7,-15 0,21,-1,0,-1 20,10D,38 43,104,41 32,111,16 24,10,7320880 0,D,39 0,A,-3382410 0,B,15123163 0,C,88 41,10C,1265 41,20,105,-23,-7 0,21,0,0,0 19,10D,38 43,104,41 32,111,16 23,10,7320900 0,D,39 0,A,-3382412 0,B,15123163 0,C,88 45,10C,1269 38,20,99,-18,-11 0,21,-1,0,-1 20,10D,39 52,104,41 30,111,16 22,10,7320920 0,D,40 0,A,-3382414 0,B,15123162 0,C,88 40,10C,1257 37,20,113,-13,-11 0,21,-1,0,-1 20,10D,39 46,104,41 40,111,16 22,10,7320940 0,D,40 0,A,-3382416 0,B,15123162 0,C,88 41,10C,1253 32,20,107,-11,-12 0,21,0,1,0 19,10D,39 47,104,42 29,111,16 22,10,7320960 0,D,40 0,A,-3382418 0,B,15123161 0,C,88 41,10C,1253 40,10D,39 38,20,117,-3,-5 0,21,0,0,-1 20,104,42 29,111,15 30,10C,1253 44,10D,40 46,104,38 30,111,14 20,20,101,-17,-13 0,21,-1,0,0 24,10C,1250 42,10D,40 50,104,33 34,111,14 28,10C,1250 45,20,107,-14,0 0,21,-1,0,-1 19,10D,40 47,104,29 30,111,13 29,10C,1246 47,10D,40 36,20,83,-31,-17 0,21,-1,0,0 21,104,29 32,111,16 29,10C,1253 46,10D,41 50,104,33 24,20,101,-17,-5 0,21,-1,0,-1 21,111,14 32,10C,1257 42,10D,41 46,104,28 29,111,12 32,10C,1257 35,20,79,-33,-5 0,21,-1,0,1 20,10D,41 43,104,24 30,111,12 30,10C,1253 44,10D,41 37,20,96,-30,-15 0,21,-1,0,0 21,104,21 28,111,12 29,10C,1246 46,10D,41 56,104,17 21,20,93,-17,5 0,21,0,0,-5 19,10,7321120 0,D,42 0,A,-3382435 0,B,15123158 0,C,88 64,111,11 32,10C,1250 41,10D,42 47,104,14 34,20,109,-20,-3 0,21,0,0,-1 19,111,11 28,10C,1242 42,10D,42 45,104,13 22,10,7321160 0,D,42 0,A,-3382439 0,B,15123157 0,C,88 40,111,11 20,20,104,-19,-6 0,21,-1,0,-1 19,10C,1246 41,10D,42 48,104,12 40,111,11 34,10C,1246 34,20,87,-35,-16 0,21,-2,0,-1 19,10D,41 44,104,12 41,111,11 23,10,7321200 0,D,41 0,A,-3382443 0,B,15123156 0,C,88 40,10C,1242 37,20,121,-8,-3 0,21,-1,0,0 19,10D,41 43,104,12 37,10,7321220 0,D,41 0,A,-3382445 0,B,15123156 0,C,88 44,111,11 32,10C,1238 35,20,98,-23,-11 0,21,-1,0,0 19,10D,41 46,104,12 35,111,11 30,10C,1230 43,10D,41 36,20,102,-22,-11 0,21,-1,0,-1 21,104,13 30,111,13 29,10C,1265 44,10D,41 45,104,17 30,111,13 22,20,98,-26,-6 0,21,-1,0,0 19,10C,1265 37,10,7321280 0,D,40 0,A,-3382451 0,B,15123155 0,C,88 41,10D,41 57,104,20 33,111,13 22,20,100,-20,-14 0,21,-1,0,0 19,10C,1257 41,10D,41 50,104,20 34,111,13 30,10C,1269 33,20,88,-35,-8 0,21,-1,0,0 20,10D,41 57,104,21 30,111,13 30,10C,1269 50,10D,41 37,20,105,-22,-7 0,21,-1,0,0 20,104,21 20,10,7321340 0,D,41 0,A,-3382457 0,B,15123154 0,C,88 56,111,13 31,10C,1265 46,10D,41 37,20,106,-19,-7 0,21,-1,0,0 20,104,20 32,111,12 29,10C,1253 48,10D,41 48,104,17 25,20,97,-28,0 0,21,-1,0,0 17,10,7321380 0,D,42 0,A,-3382462 0,B,15123153 0,C,88 66,111,11 28,10C,1265 43,10D,41 47,104,14 22,20,91,-27,-10 0,21,-1,0,0 20,111,11 19,10,7321400 0,D,42 0,A,-3382464 0,B,15123153 0,C,88 56,10C,1265 41,10D,41 45,104,12 29,20,94,-24,-6 0,21,-1,0,-1 17,10,7321420 0,D,42 0,A,-3382466 0,B,15123152 0,C,88 66,111,11 33,10C,1253 44,10D,41 43,20,93,-29,-5 0,21,-1,0,2 16,10,7321440 0,D,41 0,A,-3382468 0,B,15123152 0,C,88 67,104,11 32,111,11 35,10C,1246 44,10D,41 37,20,99,-27,-9 0,21,-1,0,-1 19,104,12 28,111,11 29,10C,1253 45,10D,41 47,104,12 33,111,11 22,20,105,-26,-9 0,21,0,0,-2 19,10C,1246 44,10D,41 44,104,12 31,111,11 31,10C,1242 34,20,96,-31,-7 0,21,0,0,0 19,10D,41 55,104,12 32,111,13 24,10,7321520 0,D,41 0,A,-3382476 0,B,15123150 0,C,88 41,10C,1253 42,20,105,-17,-15 0,21,0,0,0 23,10D,41 44,104,20 28,111,13 23,10,7321540 0,D,41 0,A,-3382478 0,B,15123149 0,C,88 41,10C,1261 41,10D,40 37,20,93,-6,1 0,21,0,0,0 20,104,21 39,111,14 31,10,7321560 0,D,41 0,A,-3382480 0,B,15123149 0,C,88 41,10C,1257 44,10D,40 38,20,121,-3,-8 0,21,-2,-2,-2 20,104,24 26,111,14 23,10,7321580 0,D,41 0,A,-3382482 0,B,15123149 0,C,88 40,10C,1261 41,10D,40 45,104,25 21,20,105,-28,1 0,21,0,0,-3 19,111,13 24,10,7321600 0,D,41 0,A,-3382485 0,B,15123148 0,C,88 53,10C,1261 46,10D,40 49,104,21 20,20,93,-19,0 0,21,0,0,3 24,111,12 20,10,7321620 0,D,42 0,A,-3382487 0,B,15123148 0,C,88 52,10C,1246 54,10D,40 49,104,16 20,20,90,-34,-5 0,21,-2,0,0 22,111,11 27,10C,1246 48,10D,40 49,104,14 28,111,11 29,20,102,-18,-5 0,21,-2,0,-1 16,10,7321660 0,D,41 0,A,-3382491 0,B,15123147 0,C,88 67,10C,1265 54,10D,40 49,104,14 21,20,92,-34,-10 0,21,-1,0,-5 20,111,12 28,10C,1253 47,10D,40 49,104,14 29,111,12 30,20,91,-27,-11 0,21,-2,0,0 15,10,7321700 0,D,41 0,A,-3382495 0,B,15123146 0,C,88 68,10C,1261 44,10D,40 49,104,15 26,20,114,-17,-13 0,21,-1,1,0 24,111,12 31,10C,1265 43,10D,40 54,104,15 32,111,12 21,20,98,-26,-1 0,21,-1,0,1 18,10,7321740 0,D,41 0,A,-3382499 0,B,15123145 0,C,88 65,10C,1257 45,10D,40 44,104,17 31,111,12 21,20,95,-25,-12 0,21,-2,0,1 21,10C,1257 44,10D,40 49,104,18 29,111,12 30,10C,1250 34,20,100,-19,-19 0,21,-1,1,0 22,10D,40 43,104,18 29,111,12 33,10C,1261 43,10D,40 37,20,103,-25,-11 0,21,0,0,-1 22,104,18 27,111,13 30,10C,1265 45,10D,40 51,104,21 23,10,7321820 0,D,41 0,A,-3382507 0,B,15123144 0,C,86 41,111,14 18,20,97,-27,-1 0,21,0,1,0 24,10C,1265 53,10D,40 46,104,23 34,111,14 30,10C,1253 34,20,88,-27,6 0,21,-1,-1,2 20,10D,40 46,104,25 22,10,7321860 0,D,40 0,A,-3382511 0,B,15123143 0,C,86 41,111,14 27,10C,1250 43,10D,40 37,20,92,-16,-10 0,21,-2,-1,0 20,104,27 28,111,14 31,10C,1257 55,10D,40 46,104,27 21,20,135,-15,-18 0,21,0,0,2 19,111,14 25,10,7321900 0,D,41 0,A,-3382515 0,B,15123142 0,C,86 53,10C,1257 41,10D,41 46,104,25 21,20,104,-38,-21 0,21,-1,0,0 19,111,12 41,10C,1253 36,10,7321920 0,D,41 0,A,-3382517 0,B,15123142 0,C,86 44,10D,41 48,104,20 29,20,91,-14,-6 0,21,-1,0,-4 21,111,11 29,10C,1238 56,10D,41 49,104,16 29,111,11 21,20,93,-28,-6 0,21,-1,-1,0 21,10C,1246 45,10D,42 50,104,14 30,111,11 28,10C,1261 34,20,111,-14,-11 0,21,-1,-1,-3 22,10D,42 47,104,12 34,111,11 29,10C,1246 45,10D,42 38,20,104,-16,4 0,21,-1,0,0 21,104,12 31,111,11 30,10C,1246 46,10D,42 48,104,12 27,20,99,-41,-12 0,21,-1,0,0 21,111,11 37,10C,1250 46,10D,42 50,104,12 39,111,11 21,20,116,-29,-10 0,21,-1,0,0 21,10C,1246 44,10D,42 50,104,11 28,111,11 30,10C,1250 39,20,106,-20,-14 0,21,-1,0,-3 15,10,7322060 0,D,41 0,A,-3382532 0,B,15123139 0,C,86 68,10D,42 43,104,11 30,111,11 22,10,7322080 0,D,41 0,A,-3382534 0,B,15123139 0,C,86 40,10C,1242 33,20,89,-39,-7 0,21,-1,0,-2 19,10D,42 47,104,12 28,111,11 31,10C,1242 47,10D,42 38,20,94,-33,-5 0,21,-1,0,0 19,104,12 31,111,11 32,10C,1253 44,10D,42 45,104,12 29,111,12 22,20,108,-23,-4 0,21,0,0,0 20,10C,1253 42,10D,42 56,104,18 29,111,14 31,10C,1250 34,20,116,-10,-8 0,21,-1,0,0 19,10D,42 47,104,22 22,10,7322160 0,D,40 0,A,-3382542 0,B,15123137 0,C,86 45,111,14 28,10C,1281 39,20,107,-16,-11 0,21,-1,0,0 19,10D,42 47,104,25 22,10,7322180 0,D,41 0,A,-3382544 0,B,15123137 0,C,86 41,111,14 27,10C,1277 43,10D,41 37,20,114,-13,-6 0,21,-1,0,2 20,104,27 28,111,14 30,10C,1269 47,10D,41 49,104,26 26,20,127,-10,-7 0,21,-1,0,0 18,111,14 21,10,7322220 0,D,41 0,A,-3382548 0,B,15123136 0,C,86 56,10C,1265 45,10D,41 49,104,28 21,20,86,-30,-10 0,21,-1,0,0 20,111,14 41,10,7322240 0,D,41 0,A,-3382550 0,B,15123135 0,C,86 41,10C,1273 41,10D,41 49,104,29 30,20,112,-9,-4 0,21,-1,0,1 21,111,14 31,10C,1273 43,10D,41 45,104,29 32,111,14 28,20,99,-26,4 0,21,-1,0,0 15,10,7322280 0,D,41 0,A,-3382554 0,B,15123135 0,C,86 68,10C,1265 44,10D,41 49,104,29 26,20,94,-37,-19 0,21,-1,0,-1 16,10,7322300 0,D,41 0,A,-3382557 0,B,15123134 0,C,86 67,111,13 32,10C,1269 42,10D,41 47,20,104,-17,-5 0,21,-1,-1,-3 22,104,22 26,111,12 34,10C,1265 43,10D,42 48,104,18 27,20,88,-23,-19 0,21,0,0,0 20,111,11 41,10C,1242 43,10D,42 45,104,14 32,111,11 22,20,105,-23,0 0,21,0,0,0 17,10,7322360 0,D,42 0,A,-3382563 0,B,15123133 0,C,86 66,10C,1265 45,10D,42 48,104,13 26,20,112,0,2 0,21,-1,0,-3 21,111,11 27,10C,1261 48,10D,42 48,104,12 39,111,11 21,20,69,-40,-31 0,21,-2,0,0 16,10,7322400 0,D,42 0,A,-3382567 0,B,15123132 0,C,86 67,10C,1250 41,10D,42 44,104,12 31,111,11 21,20,119,-18,-21 0,21,-1,0,-1 21,10C,1250 44,10D,42 49,104,12 32,111,11 34,10C,1246 35,20,110,-26,-9 0,21,-1,0,-1 17,10,7322440 0,D,42 0,A,-3382571 0,B,15123131 0,C,84 66,10D,42 57,104,12 23,10,7322460 0,D,42 0,A,-3382573 0,B,15123131 0,C,84 45,111,11 20,20,115,-22,-2 0,21,-1,-1,2 20,10C,1234 40,10D,42 45,104,12 31,111,11 31,10C,1230 33,20,118,-10,2 0,21,-1,0,0 20,10D,42 48,104,11 31,111,11 30,10C,1253 47,10D,42 38,20,114,-20,-4 0,21,0,0,0 20,104,11 32,111,11 31,10C,1261 43,10D,42 39,10,7322520 0,D,42 0,A,-3382579 0,B,15123130 0,C,84 42,104,12 19,20,91,-36,-4 0,21,0,1,0 20,111,11 30,10C,1257 47,10D,42 46,104,11 34,111,11 26,20,88,-44,2 0,21,-1,0,0 20,10C,1250 52,10D,42 39,10,7322560 0,D,41 0,A,-3382584 0,B,15123129 0,C,84 40,104,11 36,111,11 21,20,116,-35,-17 0,21,-1,0,3 20,10C,1238 43,10D,42 39,10,7322580 0,D,41 0,A,-3382586 0,B,15123128 0,C,84 40,104,12 31,111,11 30,10C,1250 34,20,107,-32,-17 0,21,-1,2,2 19,10D,42 48,104,11 34,111,11 30,10C,1257 47,10D,41 37,20,99,-13,-20 0,21,-1,0,0 20,104,11 53,111,11 33,10C,1250 43,10D,41 45,104,12 22,20,92,-27,-2 0,21,-2,-1,0 20,111,11 32,10C,1269 43,10D,41 49,104,11 41,111,11 22,20,121,-21,-11 0,21,-1,0,-2 20,10C,1261 44,10D,41 50,104,11 33,111,11 32,10C,1250 34,20,89,-41,-12 0,21,-1,0,0 24,10D,39 45,104,12 39,111,11 33,10C,1246 43,10D,39 37,20,112,-26,-14 0,21,-2,0,-1 15,10,7322700 0,D,39 0,A,-3382598 0,B,15123126 0,C,84 68,104,12 32,111,11 27,10C,1226 47,10D,39 38,20,106,-23,-14 0,21,-2,2,0 20,104,12 31,111,11 30,10C,1210 44,10D,39 40,10,7322740 0,D,38 0,A,-3382601 0,B,15123125 0,C,84 40,104,12 20,20,96,-41,0 0,21,-1,2,0 19,111,11 32,10C,1199 54,10D,37 47,10,7322760 0,D,37 0,A,-3382603 0,B,15123125 0,C,84 41,104,12 19,20,101,-26,1 0,21,-2,0,4 20,111,11 31,10C,1195 41,10D,37 39,10,7322780 0,D,36 0,A,-3382605 0,B,15123124 0,C,84 45,104,12 27,111,11 22,20,103,-30,-19 0,21,-4,1,-3 19,10C,1203 43,10D,37 39,10,7322800 0,D,35 0,A,-3382607 0,B,15123124 0,C,84 41,104,12 31,111,11 30,10C,1195 34,20,94,-48,-20 0,21,-4,1,2 20,10D,35 44,104,13 34,111,11 32,10C,1183 43,10D,35 37,20,124,-39,-40 0,21,-6,0,2 21,104,13 27,111,11 34,10C,1171 43,10D,35 49,104,15 31,20,77,-55,-29 0,21,-7,1,0 21,111,12 19,10,7322860 0,D,31 0,A,-3382612 0,B,15123123 0,C,84 55,10C,1195 44,10D,35 46,104,15 21,20,97,-40,-29 0,21,-7,2,1 24,111,11 60,10C,1234 46,10D,32 48,104,14 22,20,96,-26,-45 0,21,-7,1,0 21,111,11 28,10C,1250 46,10D,32 50,104,13 29,111,11 28,20,109,-57,-17 0,21,-6,1,3 21,10C,1250 41,10D,32 50,104,12 30,111,11 28,10C,1265 35,20,145,-7,-42 0,21,-8,-4,0 21,10D,32 44,104,12 29,111,11 34,10C,1257 42,10D,29 46,20,89,-49,-18 0,21,-8,4,-3 22,104,14 39,111,11 33,10C,1234 46,10D,29 60,104,13 20,20,58,-60,-27 0,21,-6,5,-2 22,111,11 28,10C,1167 46,10D,29 49,104,13 29,111,11 22,10,7323000 0,D,22 0,A,-3382619 0,B,15123118 0,C,84 45,10C,1132 32,20,79,-54,-29 0,21,-7,4,0 20,10D,29 46,104,15 30,111,12 23,10,7323020 0,D,22 0,A,-3382620 0,B,15123117 0,C,84 39,10C,1167 41,10D,26 37,20,97,-45,-35 0,21,-10,1,1 21,104,15 28,111,11 24,10,7323040 0,D,21 0,A,-3382621 0,B,15123116 0,C,84 42,10C,1214 40,10D,26 46,20,111,-13,-23 0,21,-12,1,0 19,104,15 30,111,11 42,10,7323060 0,D,20 0,A,-3382622 0,B,15123116 0,C,84 40,10C,1226 41,10D,26 37,20,110,-5,1 0,21,-15,0,-1 19,104,14 29,111,12 22,10,7323080 0,D,19 0,A,-3382622 0,B,15123115 0,C,84 40,10C,1101 46,10D,26 45,20,90,-31,-45 0,21,-17,3,0 18,104,20 32,111,12 21,10,7323100 0,D,21 0,A,-3382623 0,B,15123113 0,C,84 40,10C,1042 41,10D,23 45,104,20 22,20,87,-29,-47 0,21,-18,2,2 18,111,12 22,10,7323120 0,D,21 0,A,-3382623 0,B,15123112 0,C,84 55,10C,1039 55,10D,23 48,104,25 22,20,85,-37,-44 0,21,-17,3,1 20,111,14 29,10C,1078 46,10D,23 49,104,28 33,111,14 26,20,104,-18,-22 0,21,-14,3,2 17,10,7323160 0,D,22 0,A,-3382624 0,B,15123109 0,C,84 66,10C,1210 51,10D,23 46,104,26 20,20,112,-23,-14 0,21,-9,2,0 22,111,15 33,10C,1304 46,10D,23 49,104,32 29,111,16 21,20,103,-19,-20 0,21,-7,0,0 20,10C,1386 46,10D,23 50,104,37 29,111,17 29,10C,1421 34,20,113,-14,-16 0,21,-5,0,1 20,10D,23 47,104,40 34,111,17 30,10C,1472 46,10D,25 37,20,83,-24,-11 0,21,-4,0,0 21,104,40 31,111,17 30,10C,1546 46,10D,25 49,104,43 23,10,7323260 0,D,26 0,A,-3382624 0,B,15123102 0,C,84 40,111,18 19,20,110,-14,-3 0,21,-2,1,0 19,10C,1593 54,10D,25 45,104,47 22,10,7323280 0,D,26 0,A,-3382624 0,B,15123100 0,C,84 40,111,18 20,20,103,-19,-5 0,21,0,-1,0 19,10C,1652 49,10D,25 44,104,46 23,10,7323300 0,D,28 0,A,-3382624 0,B,15123098 0,C,84 42,111,18 23,20,102,-13,0 0,21,0,-1,-2 21,10C,1679 40,10D,28 58,104,46 22,10,7323320 0,D,29 0,A,-3382624 0,B,15123097 0,C,84 41,111,18 18,20,114,-11,0 0,21,0,0,0 21,10C,1675 39,10D,28 49,104,49 34,111,20 31,10C,1675 46,20,112,-17,4 0,21,1,-2,0 20,10D,28 47,104,56 32,111,21 23,10,7323360 0,D,31 0,A,-3382624 0,B,15123093 0,C,84 40,10C,1687 41,10D,28 46,20,106,-7,6 0,21,3,-1,-4 19,104,62 27,111,21 24,10,7323380 0,D,32 0,A,-3382624 0,B,15123091 0,C,84 45,10C,1730 44,10D,31 42,20,113,-19,1 0,21,4,0,-4 18,104,63 30,111,22 23,10,7323400 0,D,32 0,A,-3382624 0,B,15123089 0,C,84 41,10C,1714 44,10D,31 45,104,67 22,20,120,-6,0 0,21,4,1,-2 18,111,22 29,10C,1714 47,10D,31 49,104,70 31,111,23 28,20,115,-12,-4 0,21,4,0,-3 19,10C,1707 44,10,7323440 0,D,34 0,A,-3382625 0,B,15123085 0,C,84 40,10D,31 47,104,73 30,111,23 20,20,93,-22,12 0,21,3,0,-2 21,10C,1687 33,10,7323460 0,D,35 0,A,-3382626 0,B,15123083 0,C,84 44,10D,34 43,104,73 39,111,23 21,20,119,3,7 0,21,4,-1,0 25,10C,1648 32,10,7323480 0,D,36 0,A,-3382626 0,B,15123081 0,C,84 40,10D,34 49,104,69 28,111,19 31,20,111,-10,18 0,21,2,0,0 20,10C,1531 33,10,7323500 0,D,37 0,A,-3382627 0,B,15123078 0,C,84 44,10D,34 47,104,61 30,111,19 28,20,103,-13,-4 0,21,2,0,1 21,10C,1410 41,10D,37 45,104,60 30,111,18 30,10C,1367 33,20,117,-11,0 0,21,1,-2,3 21,10D,37 36,10,7323540 0,D,38 0,A,-3382628 0,B,15123074 0,C,84 41,104,54 27,111,17 33,10C,1335 42,10D,37 37,20,95,-30,-3 0,21,1,-2,-2 20,104,51 28,111,18 34,10C,1332 47,10D,37 54,104,51 22,20,110,-11,10 0,21,0,-2,1 15,10,7323580 0,D,39 0,A,-3382630 0,B,15123070 0,C,84 68,111,18 30,10C,1300 46,10D,39 42,20,106,-16,-11 0,21,0,-3,1 21,104,55 28,111,19 29,10C,1300 46,10D,39 49,104,60 23,10,7323620 0,D,40 0,A,-3382632 0,B,15123065 0,C,84 40,111,19 19,20,118,-13,0 0,21,0,1,0 20,10C,1300 44,10D,39 48,104,60 31,111,18 29,10C,1292 35,20,79,-28,-8 0,21,0,-1,0 20,10D,39 44,104,54 30,111,15 28,10,7323660 0,D,41 0,A,-3382633 0,B,15123061 0,C,84 40,10C,1281 38,20,76,-40,-15 0,21,0,0,-3 32,10D,40 47,104,38 39,111,14 21,10,7323680 0,D,41 0,A,-3382634 0,B,15123058 0,C,84 41,10C,1281 32,20,113,-28,-13 0,21,0,-1,-1 20,10D,40 46,104,30 32,111,13 24,10,7323700 0,D,42 0,A,-3382635 0,B,15123056 0,C,84 40,10C,1261 41,10D,40 38,20,111,-18,-2 0,21,0,-1,4 19,104,25 26,111,12 71,10C,1234 46,10D,40 42,20,105,-22,-6 0,21,0,-1,-1 19,104,21 29,111,12 24,10,7323740 0,D,42 0,A,-3382637 0,B,15123052 0,C,84 40,10C,1234 41,10D,40 49,104,18 22,20,96,-26,-18 0,21,-1,0,0 18,111,11 32,10C,1214 44,10D,40 49,104,15 28,111,11 31,10C,1222 44,20,145,-18,-9 0,21,0,0,5 21,10D,40 47,104,17 34,111,14 29,10C,1214 44,10D,40 37,20,122,6,-17 0,21,-1,-1,-2 22,104,23 27,111,16 30,10C,1246 46,10D,40 48,104,34 31,20,69,-33,-13 0,21,-1,0,0 16,10,7323820 0,D,41 0,A,-3382642 0,B,15123043 0,C,84 67,111,17 32,10C,1226 45,10D,40 42,20,88,-28,-3 0,21,0,1,0 20,104,47 28,111,18 30,10C,1253 46,10D,40 48,104,56 31,20,112,-11,0 0,21,0,0,-1 16,10,7323860 0,D,40 0,A,-3382644 0,B,15123038 0,C,84 68,111,18 30,10C,1292 45,10D,40 46,20,85,-31,-7 0,21,0,1,-1 25,104,58 29,111,18 29,10C,1300 45,10D,40 46,104,57 28,20,94,-30,-6 0,21,0,1,0 20,111,18 27,10C,1296 46,10D,40 48,104,58 28,10,7323920 0,D,41 0,A,-3382647 0,B,15123032 0,C,84 40,111,18 19,20,88,-30,-9 0,21,-1,0,-1 21,10C,1300 44,10D,40 48,104,56 28,10,7323940 0,D,41 0,A,-3382648 0,B,15123030 0,C,84 40,111,15 19,20,96,-23,-1 0,21,-1,0,0 21,10C,1281 44,10D,41 48,104,41 31,111,14 21,10,7323960 0,D,42 0,A,-3382649 0,B,15123027 0,C,84 40,10C,1265 33,20,106,-26,-2 0,21,-1,0,0 19,10D,41 47,104,34 34,111,14 31,10,7323980 0,D,42 0,A,-3382650 0,B,15123025 0,C,84 41,10C,1250 31,20,84,-26,-9 0,21,-1,0,0 20,10D,41 47,104,29 30,111,13 21,10,7324000 0,D,42 0,A,-3382651 0,B,15123023 0,C,84 41,10C,1234 44,10D,41 37,20,98,-23,-3 0,21,0,0,0 20,104,25 25,111,12 24,10,7324020 0,D,42 0,A,-3382652 0,B,15123021 0,C,84 41,10C,1222 41,10D,42 51,20,96,-32,-10 0,21,-1,1,0 18,104,23 27,111,14 22,10,7324040 0,D,42 0,A,-3382653 0,B,15123019 0,C,84 41,10C,1203 41,10D,42 45,104,29 22,20,106,-21,-9 0,21,0,0,0 18,111,16 32,10C,1242 48,10D,42 46,104,35 30,111,16 29,10C,1226 33,20,74,-33,-10 0,21,-1,0,0 21,10D,42 56,104,42 46,111,17 33,10C,1242 46,10D,41 37,20,95,-28,0 0,21,0,0,1 15,10,7324100 0,D,41 0,A,-3382656 0,B,15123012 0,C,84 68,104,45 28,111,17 31,10C,1253 43,10D,41 37,20,103,-17,-1 0,21,-1,0,0 18,10,7324120 0,D,41 0,A,-3382657 0,B,15123010 0,C,78 66,104,49 30,111,17 31,10C,1273 33,10,7324140 0,D,41 0,A,-3382659 0,B,15123008 0,C,78 41,10D,41 35,20,119,-12,-17 0,21,-1,0,0 21,104,48 29,111,17 30,10C,1281 35,10,7324160 0,D,41 0,A,-3382660 0,B,15123006 0,C,78 45,10D,40 40,20,107,-6,-4 0,21,-1,0,1 19,104,48 31,111,17 32,10C,1281 36,10,7324180 0,D,41 0,A,-3382661 0,B,15123003 0,C,78 41,10D,40 44,20,104,-22,-4 0,21,-1,0,-2 19,104,48 27,111,17 31,10C,1281 37,10,7324200 0,D,41 0,A,-3382662 0,B,15123001 0,C,78 40,10D,40 44,104,48 21,20,114,-10,-12 0,21,-2,0,1 20,111,17 38,10C,1277 35,10,7324220 0,D,41 0,A,-3382663 0,B,15122999 0,C,78 41,10D,40 43,104,47 27,20,105,-22,-2 0,21,-2,0,0 18,111,15 33,10C,1273 37,10,7324240 0,D,41 0,A,-3382664 0,B,15122997 0,C,78 44,10D,41 57,104,37 21,20,104,-13,-7 0,21,-1,0,-1 20,111,14 31,10C,1253 34,10,7324260 0,D,41 0,A,-3382665 0,B,15122995 0,C,78 41,10D,41 48,104,31 28,111,14 22,20,110,-24,-12 0,21,-1,0,-2 18,10C,1238 35,10,7324280 0,D,42 0,A,-3382666 0,B,15122992 0,C,78 43,10D,41 44,104,27 39,111,13 24,20,93,-24,-4 0,21,-1,0,0 20,10C,1234 33,10,7324300 0,D,41 0,A,-3382667 0,B,15122990 0,C,78 44,10D,42 44,104,23 29,111,12 32,10C,1218 34,20,107,-20,-9 0,21,-1,0,-1 20,10D,42 45,104,22 29,111,14 33,10C,1218 46,10D,42 37,20,89,-24,-4 0,21,0,0,0 20,104,25 28,111,15 34,10C,1214 42,10D,42 44,104,31 23,10,7324360 0,D,41 0,A,-3382670 0,B,15122984 0,C,78 41,111,15 20,20,111,-22,2 0,21,-1,0,2 19,10C,1222 41,10D,41 48,104,37 35,111,17 30,10C,1246 43,20,99,-24,0 0,21,-1,0,-3 20,10D,41 46,104,44 42,111,18 23,10,7324400 0,D,41 0,A,-3382672 0,B,15122979 0,C,78 40,10C,1261 32,20,164,20,-29 0,21,-1,-1,-1 20,10D,41 43,104,50 28,111,18 31,10C,1277 47,10D,41 37,20,109,-10,-4 0,21,-1,-1,-5 20,104,55 31,111,18 31,10C,1292 44,10D,40 50,104,57 26,20,94,-25,-13 0,21,-2,1,1 21,111,18 30,10C,1296 41,10D,40 52,10,7324460 0,D,41 0,A,-3382675 0,B,15122973 0,C,78 40,104,57 19,20,82,-19,-22 0,21,-2,0,-1 19,111,19 31,10C,1292 46,10D,40 38,10,7324480 0,D,42 0,A,-3382677 0,B,15122971 0,C,78 41,104,60 28,20,130,-1,-9 0,21,0,0,0 19,111,19 31,10C,1296 52,10D,40 46,104,60 30,111,19 27,20,126,-15,6 0,21,0,0,1 19,10C,1304 43,10D,41 47,104,60 34,111,19 30,10C,1296 34,20,93,-19,-12 0,21,-1,0,2 20,10D,41 46,104,60 34,111,19 30,10C,1292 47,10D,41 37,20,113,-26,-2 0,21,-1,0,-1 24,104,60 34,111,19 34,10C,1296 35,10,7324560 0,D,42 0,A,-3382681 0,B,15122962 0,C,80 41,10D,41 35,20,137,-2,-23 0,21,-1,1,0 20,104,60 29,111,19 34,10C,1285 57,10D,42 50,104,60 21,20,85,-13,-20 0,21,-1,-3,-5 20,111,19 36,10C,1289 44,10,7324600 0,D,41 0,A,-3382683 0,B,15122957 0,C,80 41,10D,42 44,104,63 21,20,102,-22,-10 0,21,-1,0,-2 20,111,20 31,10C,1281 35,10,7324620 0,D,41 0,A,-3382684 0,B,15122955 0,C,80 41,10D,42 43,104,65 30,111,21 20,20,153,14,0 0,21,0,0,1 20,10C,1289 33,10,7324640 0,D,41 0,A,-3382685 0,B,15122953 0,C,80 44,10D,42 49,104,67 29,111,21 25,20,135,-3,-8 0,21,-1,-2,0 18,10C,1312 34,10,7324660 0,D,41 0,A,-3382686 0,B,15122951 0,C,80 44,10D,42 44,104,70 30,111,22 32,10C,1328 33,20,107,-18,-2 0,21,-1,0,-3 21,10D,42 44,104,72 30,111,22 29,10C,1359 45,10D,42 46,20,101,-9,-8 0,21,-1,-1,-1 21,104,72 27,111,22 30,10C,1378 47,10D,42 47,104,71 24,10,7324720 0,D,42 0,A,-3382689 0,B,15122944 0,C,80 41,111,21 19,20,106,-10,-5 0,21,0,0,0 20,10C,1390 53,10D,43 44,104,70 23,10,7324740 0,D,42 0,A,-3382690 0,B,15122942 0,C,80 44,111,21 20,20,95,-19,-2 0,21,0,0,-2 20,10C,1398 44,10D,43 44,104,69 23,10,7324760 0,D,42 0,A,-3382691 0,B,15122940 0,C,80 41,111,21 28,20,84,-23,-14 0,21,-1,0,-1 19,10C,1402 45,10D,43 47,104,67 24,10,7324780 0,D,43 0,A,-3382692 0,B,15122937 0,C,80 41,111,21 28,10C,1390 33,20,85,-33,-10 0,21,-1,-1,0 21,10D,44 46,104,66 39,111,21 23,10,7324800 0,D,43 0,A,-3382693 0,B,15122935 0,C,82 40,10C,1375 33,20,105,-21,-8 0,21,-1,0,0 20,10D,44 42,104,67 30,111,21 31,10C,1367 59,10D,44 37,20,125,-1,-8 0,21,-1,0,-1 20,104,67 29,111,21 31,10C,1371 43,10D,44 46,104,67 30,111,21 20,20,117,2,-8 0,21,-1,0,0 20,10C,1375 41,10D,44 50,104,68 34,111,21 34,10C,1367 33,20,105,-9,-19 0,21,-1,0,-1 20,10D,44 44,104,68 34,111,21 28,10C,1363 47,10D,44 37,20,98,-15,-2 0,21,-1,0,0 20,104,67 29,10,7324900 0,D,44 0,A,-3382698 0,B,15122923 0,C,82 48,111,21 31,10C,1371 46,10D,44 37,20,100,-23,-6 0,21,-1,0,0 21,104,67 31,111,20 34,10C,1367 46,10D,44 48,104,65 22,20,106,-15,-11 0,21,-1,0,-1 20,111,20 29,10C,1351 53,10D,44 56,104,64 31,111,18 31,20,80,-39,0 0,21,-1,0,0 22,10C,1339 44,10D,44 49,104,51 33,111,15 31,10C,1308 35,20,92,-16,-8 0,21,-1,0,0 18,10,7324980 0,D,44 0,A,-3382703 0,B,15122914 0,C,82 65,10D,44 47,104,37 28,111,14 31,10C,1281 44,20,107,-15,-9 0,21,-1,0,1 20,10D,44 47,104,32 33,111,14 33,10C,1269 36,10,7325020 0,D,44 0,A,-3382705 0,B,15122909 0,C,82 39,10D,44 36,20,96,-28,-10 0,21,0,0,1 20,104,28 27,111,13 31,10C,1250 44,10D,44 49,104,24 31,111,12 20,20,71,-42,-4 0,21,-1,0,-1 21,10C,1238 42,10D,44 38,10,7325060 0,D,44 0,A,-3382707 0,B,15122905 0,C,82 40,104,21 27,111,12 30,10C,1222 35,20,97,-29,-12 0,21,-1,0,0 19,10D,43 53,104,18 22,10,7325080 0,D,44 0,A,-3382708 0,B,15122902 0,C,82 40,111,11 28,10C,1226 39,20,94,-29,-5 0,21,-1,0,-1 18,10D,43 48,104,15 39,111,11 30,10C,1214 47,10D,43 36,20,106,-18,-9 0,21,-2,0,0 21,104,14 32,111,12 30,10C,1218 43,10D,43 45,104,17 32,111,13 21,20,103,-29,1 0,21,-1,0,1 20,10C,1246 40,10D,42 47,104,21 29,111,14 33,10C,1230 34,20,104,-18,-2 0,21,-1,0,0 20,10D,42 48,104,26 30,111,16 46,10C,1238 45,10D,42 37,20,116,-15,-6 0,21,-1,0,1 17,10,7325180 0,D,41 0,A,-3382714 0,B,15122891 0,C,82 66,104,33 32,111,17 35,10C,1242 44,10D,42 36,20,99,-11,-2 0,21,-1,0,-1 18,10,7325200 0,D,41 0,A,-3382715 0,B,15122889 0,C,84 66,104,42 40,111,18 35,10C,1265 44,10D,41 37,20,123,-2,1 0,21,-2,0,0 20,104,53 27,111,19 32,10C,1289 44,10D,41 39,10,7325240 0,D,41 0,A,-3382717 0,B,15122884 0,C,84 41,104,60 19,20,107,-9,-8 0,21,-1,0,-2 20,111,19 29,10C,1312 44,10D,41 47,104,61 30,111,19 30,10C,1324 38,20,113,-6,-8 0,21,-1,0,0 19,10D,41 49,104,61 23,10,7325280 0,D,41 0,A,-3382719 0,B,15122880 0,C,84 40,111,19 32,10C,1328 39,20,71,-35,-1 0,21,-1,0,0 18,10D,40 48,104,56 23,10,7325300 0,D,41 0,A,-3382720 0,B,15122878 0,C,84 41,111,16 30,10C,1304 43,10D,40 46,20,95,-23,-7 0,21,-1,1,0 21,104,48 41,111,16 43,10C,1281 46,10D,40 43,10,7325340 0,D,41 0,A,-3382722 0,B,15122873 0,C,84 40,104,41 19,20,112,-10,0 0,21,0,0,0 21,111,13 31,10C,1257 46,10D,40 50,104,30 31,111,13 25,20,101,-19,3 0,21,0,0,0 21,10C,1242 48,10D,40 48,104,25 31,111,12 30,10C,1222 34,20,104,-22,0 0,21,-1,0,0 21,10D,40 43,104,21 31,111,12 27,10,7325400 0,D,41 0,A,-3382726 0,B,15122867 0,C,84 41,10C,1199 37,20,95,-30,0 0,21,0,0,0 20,10D,40 43,104,18 32,111,11 40,10C,1183 44,10D,40 46,20,108,-23,-2 0,21,0,0,1 20,104,15 30,111,11 32,10C,1175 43,10D,39 50,104,13 26,20,104,-20,-3 0,21,-1,0,-1 20,111,11 31,10C,1195 43,10D,39 37,10,7325460 0,D,40 0,A,-3382729 0,B,15122860 0,C,84 41,104,13 31,111,12 21,20,103,-23,-4 0,21,-1,0,-1 21,10C,1199 37,10D,39 44,10,7325480 0,D,39 0,A,-3382730 0,B,15122858 0,C,84 41,104,15 31,111,12 27,20,104,-18,-7 0,21,-1,0,0 19,10C,1207 47,10D,38 38,10,7325500 0,D,39 0,A,-3382731 0,B,15122856 0,C,84 41,104,16 27,111,12 30,20,87,-35,-1 0,21,0,0,0 20,10C,1222 43,10D,38 47,10,7325520 0,D,38 0,A,-3382732 0,B,15122854 0,C,84 41,104,17 31,111,12 21,20,96,-24,-11 0,21,-1,0,0 21,10C,1230 43,10D,38 38,10,7325540 0,D,37 0,A,-3382733 0,B,15122852 0,C,84 41,104,17 40,111,12 21,20,97,-21,0 0,21,-1,0,0 19,10C,1238 45,10D,38 36,10,7325560 0,D,37 0,A,-3382734 0,B,15122850 0,C,84 45,104,16 28,111,12 27,20,96,-28,-9 0,21,-1,0,0 18,10C,1242 40,10D,37 39,10,7325580 0,D,37 0,A,-3382735 0,B,15122848 0,C,84 40,104,17 32,111,12 29,10C,1242 34,20,103,-20,-4 0,21,-1,0,0 19,10D,37 49,104,16 32,111,12 30,10C,1242 47,10D,37 37,20,113,-8,-12 0,21,-1,0,0 21,104,16 38,111,12 32,10C,1242 43,10D,37 45,104,16 22,20,101,-25,0 0,21,-1,0,0 20,111,13 20,10,7325640 0,D,36 0,A,-3382737 0,B,15122843 0,C,84 55,10C,1238 42,10D,36 48,104,23 22,20,103,-21,-8 0,21,-1,0,1 24,111,16 28,10C,1277 47,10D,36 49,104,33 28,111,17 26,20,101,-17,-15 0,21,-1,0,-1 16,10,7325680 0,D,36 0,A,-3382739 0,B,15122839 0,C,84 67,10C,1246 41,10D,36 56,104,43 20,20,96,-23,-4 0,21,-1,0,0 22,111,17 27,10C,1261 57,10D,36 49,104,47 32,111,17 21,20,124,-3,-10 0,21,-1,0,-1 20,10C,1269 51,10D,36 46,104,49 28,111,17 32,10C,1269 35,20,100,-12,-9 0,21,-1,0,0 20,10D,36 43,104,52 31,111,18 33,10C,1269 41,10D,36 38,20,73,-34,1 0,21,-1,0,1 20,104,55 28,111,18 30,10C,1261 46,10D,36 55,104,57 22,20,113,-21,2 0,21,-1,0,1 18,10,7325780 0,D,37 0,A,-3382744 0,B,15122829 0,C,84 64,111,19 32,10C,1269 41,10D,36 47,104,60 22,20,98,-19,-11 0,21,-1,0,-2 19,111,18 32,10C,1269 42,10D,36 52,104,60 23,10,7325820 0,D,37 0,A,-3382746 0,B,15122825 0,C,84 42,111,18 27,20,94,-27,-3 0,21,0,0,0 21,10C,1257 40,10D,36 44,104,60 31,111,18 30,10C,1253 35,20,92,-17,-9 0,21,-1,0,-1 19,10D,36 45,104,60 31,111,18 27,10,7325860 0,D,37 0,A,-3382748 0,B,15122821 0,C,84 41,10C,1250 37,20,98,-27,-13 0,21,-1,2,0 20,10D,37 43,104,60 32,111,18 31,10C,1253 47,10D,37 38,20,101,-17,-3 0,21,-1,1,-1 19,104,60 28,111,18 32,10C,1257 44,10D,37 62,104,60 22,20,110,-11,-6 0,21,0,0,0 19,111,18 28,10C,1253 45,10D,37 39,10,7325920 0,D,38 0,A,-3382750 0,B,15122815 0,C,84 40,104,60 33,20,94,-20,-13 0,21,-1,0,0 20,111,18 26,10C,1250 46,10D,38 38,10,7325940 0,D,39 0,A,-3382751 0,B,15122813 0,C,84 41,104,60 31,111,18 22,20,80,-31,-8 0,21,-1,0,-1 20,10C,1253 42,10D,38 39,10,7325960 0,D,39 0,A,-3382752 0,B,15122811 0,C,84 41,104,60 31,111,18 29,10C,1257 35,20,104,-10,-14 0,21,-1,0,1 23,10D,38 45,104,60 33,111,18 34,10C,1257 46,10D,39 37,20,94,-9,4 0,21,-1,0,-2 21,104,60 19,10,7330000 0,D,39 0,A,-3382754 0,B,15122807 0,C,84 55,111,18 32,10C,1250 46,10D,39 37,20,107,-14,-15 0,21,-1,0,0 21,104,58 31,111,17 30,10C,1246 55,10D,39 50,104,47 21,20,96,-41,-18 0,21,-2,1,3 20,111,14 29,10C,1242 52,10D,39 46,104,37 31,111,14 22,20,134,2,-17 0,21,-1,0,-1 20,10C,1242 41,10D,40 56,104,31 30,111,13 32,10C,1238 34,20,106,-11,-5 0,21,-1,-1,-2 20,10D,40 44,104,28 30,111,12 30,10C,1222 45,10D,40 42,20,94,-23,3 0,21,-1,0,-2 20,104,23 28,111,12 33,10C,1207 51,10D,40 45,104,20 22,10,7330120 0,D,40 0,A,-3382761 0,B,15122794 0,C,84 40,111,11 20,20,100,-24,-7 0,21,-1,0,0 19,10C,1207 50,10D,40 45,104,16 22,10,7330140 0,D,39 0,A,-3382762 0,B,15122792 0,C,84 41,111,11 23,20,84,-33,-2 0,21,-1,0,0 21,10C,1214 44,10D,40 48,104,14 23,10,7330160 0,D,39 0,A,-3382763 0,B,15122790 0,C,84 40,111,11 27,10C,1203 35,20,99,-25,-7 0,21,-1,0,1 19,10D,40 45,104,13 31,111,11 31,10C,1210 47,10D,40 37,20,111,-21,-11 0,21,-1,0,0 23,104,12 34,111,11 34,10C,1210 44,10D,39 45,104,13 22,20,102,-19,-3 0,21,-1,0,-1 19,111,14 30,10C,1226 44,10D,39 45,104,22 30,111,14 29,10C,1253 43,20,113,-15,-8 0,21,0,0,0 21,10D,39 47,104,33 30,111,17 29,10C,1253 55,10D,39 36,20,117,-16,-3 0,21,-1,0,0 21,104,42 29,111,18 29,10C,1261 47,10D,39 48,104,49 30,111,18 21,20,103,-12,-13 0,21,-1,0,-1 17,10,7330280 0,D,39 0,A,-3382769 0,B,15122777 0,C,84 67,10C,1269 40,10D,38 44,104,54 30,111,18 22,20,102,-17,-16 0,21,-2,0,0 21,10C,1292 44,10D,38 49,104,54 43,111,18 23,10,7330320 0,D,39 0,A,-3382771 0,B,15122773 0,C,84 41,10C,1296 33,20,94,-25,-11 0,21,-2,1,0 19,10D,38 47,104,54 38,111,18 23,10,7330340 0,D,39 0,A,-3382772 0,B,15122771 0,C,84 41,10C,1300 37,20,107,-16,-13 0,21,-1,0,-1 19,10D,39 47,104,54 33,111,18 21,10,7330360 0,D,39 0,A,-3382773 0,B,15122769 0,C,84 41,10C,1296 41,20,108,-8,-5 0,21,-1,0,0 20,10D,39 47,104,56 29,111,18 22,10,7330380 0,D,40 0,A,-3382774 0,B,15122767 0,C,84 40,10C,1289 45,10D,39 37,20,103,-14,-7 0,21,0,1,0 19,104,56 27,111,18 47,10C,1265 42,10D,39 46,104,50 22,20,109,-15,-6 0,21,-1,0,2 19,111,14 31,10C,1246 36,10,7330420 0,D,40 0,A,-3382776 0,B,15122763 0,C,84 40,10D,40 47,104,37 31,20,108,-25,-8 0,21,0,0,0 20,111,14 34,10,7330440 0,D,40 0,A,-3382777 0,B,15122760 0,C,84 43,10C,1250 41,10D,40 46,104,29 21,20,120,-15,-4 0,21,-1,0,0 19,111,13 31,10C,1234 43,10,7330460 0,D,40 0,A,-3382778 0,B,15122758 0,C,84 41,10D,40 44,104,25 26,20,99,-24,-9 0,21,-1,0,0 18,111,12 31,10C,1218 35,10,7330480 0,D,40 0,A,-3382779 0,B,15122756 0,C,84 41,10D,40 48,104,21 30,20,106,-19,-9 0,21,-1,0,0 18,111,12 31,10C,1207 35,10,7330500 0,D,40 0,A,-3382780 0,B,15122754 0,C,84 40,10D,40 48,104,17 28,111,11 22,20,104,-25,0 0,21,-1,0,1 19,10C,1222 34,10,7330520 0,D,40 0,A,-3382781 0,B,15122752 0,C,84 43,10D,40 48,104,14 29,111,11 29,20,120,-14,1 0,21,-1,-1,0 19,10C,1226 43,10,7330540 0,D,40 0,A,-3382782 0,B,15122750 0,C,84 40,10D,40 44,104,13 29,111,11 29,20,74,-43,-11 0,21,-1,1,0 20,10C,1222 33,10,7330560 0,D,40 0,A,-3382783 0,B,15122748 0,C,84 43,10D,39 48,104,12 33,111,11 24,20,92,-19,-5 0,21,-1,0,0 21,10C,1226 32,10,7330580 0,D,39 0,A,-3382784 0,B,15122746 0,C,84 45,10D,39 43,104,12 29,111,11 32,10C,1230 34,20,100,-18,-19 0,21,-1,0,-3 21,10D,39 43,104,12 30,111,11 30,10C,1234 45,10D,39 38,20,103,-27,-15 0,21,-2,-2,0 20,104,12 28,111,11 46,10C,1238 45,10D,38 50,104,12 31,20,102,-33,-14 0,21,-1,-1,3 20,111,14 28,10C,1257 43,10D,38 48,104,21 35,111,14 26,20,84,-42,8 0,21,-1,0,1 20,10C,1257 41,10D,38 45,104,29 32,111,16 30,10C,1238 34,20,110,-21,-5 0,21,-1,0,-2 25,10D,38 44,104,38 29,111,17 32,10C,1265 44,10D,38 37,20,100,-16,-1 0,21,0,0,0 22,104,45 26,111,18 30,10C,1269 46,10D,38 50,104,52 27,20,87,-56,-10 0,21,-1,1,5 19,111,18 28,10C,1281 47,10D,38 48,104,54 23,10,7330740 0,D,39 0,A,-3382792 0,B,15122729 0,C,84 40,111,15 28,20,146,7,-25 0,21,0,-3,0 20,10C,1277 44,10D,38 49,104,41 31,10,7330760 0,D,39 0,A,-3382793 0,B,15122727 0,C,84 41,111,14 19,20,101,-6,-6 0,21,-1,-1,-1 20,10C,1273 41,10D,38 49,104,33 21,10,7330780 0,D,39 0,A,-3382794 0,B,15122725 0,C,84 41,111,14 29,20,107,-20,1 0,21,-1,0,-1 19,10C,1261 43,10D,38 46,104,28 22,10,7330800 0,D,39 0,A,-3382795 0,B,15122723 0,C,84 41,111,13 37,20,107,-22,-25 0,21,-2,-1,-2 20,10C,1246 40,10D,38 46,104,23 31,111,12 34,10C,1238 33,20,95,-33,-1 0,21,0,1,2 20,10D,38 47,104,20 27,10,7330840 0,D,39 0,A,-3382797 0,B,15122719 0,C,84 41,111,12 27,10C,1222 43,20,82,-32,-33 0,21,-1,-1,-2 21,10D,38 46,104,17 31,111,11 33,10C,1214 43,10D,38 37,20,113,-14,-9 0,21,0,0,0 20,104,15 29,111,11 27,10,7330880 0,D,39 0,A,-3382799 0,B,15122715 0,C,84 45,10C,1222 45,10D,38 37,20,89,-31,6 0,21,-1,0,0 19,104,13 26,111,11 31,10,7330900 0,D,39 0,A,-3382800 0,B,15122712 0,C,84 41,10C,1234 40,10D,38 46,20,83,-45,-12 0,21,0,0,2 19,104,12 30,111,11 31,10C,1230 43,10D,38 46,104,12 29,111,11 21,20,96,-26,-6 0,21,-1,0,-1 19,10C,1230 45,10D,38 51,104,12 33,111,11 43,10C,1234 34,20,97,-14,-9 0,21,0,-1,-2 20,10D,38 35,10,7330960 0,D,38 0,A,-3382803 0,B,15122706 0,C,84 41,104,12 28,111,11 30,10C,1234 45,10D,38 38,20,104,-23,-7 0,21,-1,0,0 20,104,12 72,111,11 34,10C,1230 45,10D,37 37,20,92,-26,-18 0,21,-1,0,-1 17,10,7331000 0,D,37 0,A,-3382805 0,B,15122702 0,C,84 67,104,12 30,111,11 29,10C,1226 43,10D,37 37,20,107,-21,-4 0,21,-1,0,0 20,104,12 28,111,11 34,10C,1222 42,10D,37 46,104,12 30,111,11 22,20,97,-29,-11 0,21,-1,0,0 19,10C,1222 45,10D,36 58,104,12 23,10,7331060 0,D,37 0,A,-3382808 0,B,15122697 0,C,84 41,111,11 19,20,107,-22,-11 0,21,0,0,0 20,10C,1222 41,10D,36 47,104,12 35,111,11 34,10C,1222 35,20,106,-25,-18 0,21,-1,0,-1 19,10D,36 44,104,12 32,111,11 30,10C,1226 52,10D,36 37,20,88,-36,-11 0,21,-1,0,-1 19,104,12 32,111,11 31,10C,1230 44,10D,35 55,104,12 22,20,91,-39,-11 0,21,-1,0,0 19,111,11 31,10C,1226 43,10D,35 37,10,7331140 0,D,36 0,A,-3382811 0,B,15122689 0,C,84 41,104,12 27,111,11 22,20,94,-31,-10 0,21,-1,0,0 19,10C,1226 59,10D,35 37,10,7331160 0,D,35 0,A,-3382812 0,B,15122687 0,C,84 40,104,12 32,111,11 22,20,89,-26,-8 0,21,0,0,0 19,10C,1226 50,10,7331180 0,D,35 0,A,-3382813 0,B,15122685 0,C,84 41,10D,35 47,104,12 30,111,11 21,20,111,-16,-11 0,21,-1,0,0 24,10C,1230 38,10,7331200 0,D,35 0,A,-3382814 0,B,15122683 0,C,84 41,10D,34 47,104,12 34,111,11 21,20,115,-14,-11 0,21,-1,0,0 20,10C,1230 41,10D,34 50,104,12 34,111,11 29,10C,1230 34,20,96,-34,-11 0,21,-1,1,1 20,10D,34 48,104,12 34,111,11 29,10C,1230 47,10D,34 37,20,98,-22,-15 0,21,-1,0,0 20,104,12 37,111,11 29,10C,1230 46,10D,33 49,104,12 22,20,114,-22,-10 0,21,0,0,0 18,111,11 32,10C,1234 44,10D,33 49,104,12 30,111,11 29,20,99,-26,-2 0,21,-1,0,0 17,10C,1242 42,10D,33 45,104,12 30,111,11 34,10C,1226 33,20,106,-25,-2 0,21,0,0,0 24,10D,33 45,104,12 30,111,11 32,10C,1222 43,10D,32 50,20,105,-21,-9 0,21,0,0,-2 20,104,12 29,111,11 33,10C,1226 43,10D,32 45,104,12 28,111,11 30,20,93,-24,-4 0,21,-1,0,0 17,10,7331360 0,D,32 0,A,-3382821 0,B,15122669 0,C,84 66,10C,1218 44,10D,32 49,104,12 22,10,7331380 0,D,32 0,A,-3382822 0,B,15122668 0,C,84 41,111,11 18,20,98,-32,-7 0,21,-1,0,0 20,10C,1230 45,10D,32 44,104,12 29,111,11 31,10C,1226 35,20,121,-7,-13 0,21,-1,0,-1 19,10D,31 47,104,12 35,111,11 35,10C,1222 43,10D,31 38,20,97,-30,-14 0,21,-1,0,0 23,104,12 31,111,11 36,10C,1226 43,10D,31 49,104,12 22,20,99,-23,0 0,21,-1,0,-1 19,111,11 31,10C,1226 42,10D,31 48,10,7331460 0,D,31 0,A,-3382825 0,B,15122661 0,C,84 40,104,12 23,20,100,-19,-9 0,21,0,0,0 21,111,11 31,10C,1218 49,10,7331480 0,D,31 0,A,-3382826 0,B,15122659 0,C,84 40,10D,30 44,104,12 21,20,101,-23,-1 0,21,-1,0,0 20,111,11 30,10C,1218 53,10D,30 46,104,12 29,111,11 22,20,103,-27,-10 0,21,-1,0,0 19,10C,1214 44,10D,30 46,104,12 23,10,7331520 0,D,31 0,A,-3382828 0,B,15122656 0,C,84 45,111,11 25,20,98,-34,-5 0,21,-1,0,-1 19,10C,1214 43,10D,30 57,104,12 34,111,11 33,10C,1210 35,20,91,-29,-7 0,21,-1,0,-1 19,10D,30 47,104,12 31,10,7331560 0,D,30 0,A,-3382829 0,B,15122653 0,C,84 40,111,11 28,10C,1214 35,20,70,-25,-7 0,21,-1,1,0 19,10D,30 46,104,12 23,10,7331580 0,D,30 0,A,-3382830 0,B,15122651 0,C,84 40,111,11 27,10C,1191 46,10D,30 37,20,103,-28,-12 0,21,-1,0,2 20,104,12 21,10,7331600 0,D,29 0,A,-3382831 0,B,15122650 0,C,84 54,111,11 33,10C,1222 42,10D,30 37,20,96,-33,-9 0,21,-1,0,-1 25,104,12 28,111,11 33,10C,1218 43,10D,29 45,104,12 28,20,104,-22,-13 0,21,-1,0,2 20,111,11 20,10,7331640 0,D,29 0,A,-3382832 0,B,15122647 0,C,84 56,10C,1199 40,10D,29 45,104,12 21,20,82,-32,-4 0,21,-1,0,0 21,111,11 29,10,7331660 0,D,29 0,A,-3382833 0,B,15122645 0,C,84 47,10C,1210 41,10D,29 46,104,12 20,20,96,-33,-9 0,21,-1,0,1 21,111,11 32,10C,1210 42,10D,28 51,104,12 28,111,11 29,20,105,-26,-13 0,21,-1,0,0 16,10,7331700 0,D,28 0,A,-3382834 0,B,15122642 0,C,84 67,10C,1210 53,10D,28 45,104,12 22,20,107,-31,-8 0,21,-1,-1,0 24,111,11 32,10C,1210 42,10D,28 46,104,12 31,111,11 26,20,95,-41,-8 0,21,-1,0,3 17,10,7331740 0,D,27 0,A,-3382836 0,B,15122639 0,C,84 67,10C,1203 44,10D,28 50,104,12 26,20,101,-46,-28 0,21,-1,-1,1 20,111,11 41,10C,1195 43,10D,27 45,104,12 31,111,11 21,20,101,-27,2 0,21,-1,1,0 21,10C,1191 40,10D,27 46,104,12 30,111,11 31,10C,1183 35,20,94,-34,-16 0,21,0,0,0 20,10D,27 43,104,12 30,111,11 30,10C,1171 45,10D,27 37,20,77,-44,-16 0,21,-1,0,0 21,104,13 28,111,11 29,10C,1175 46,10D,25 44,104,13 32,20,107,-39,-2 0,21,-1,2,0 21,111,11 49,10C,1167 43,10D,25 45,104,13 30,111,11 21,20,100,-39,0 0,21,-1,1,0 15,10,7331860 0,D,24 0,A,-3382840 0,B,15122631 0,C,84 68,10C,1117 50,10D,25 46,104,16 22,20,94,-34,-7 0,21,-1,0,0 15,10,7331880 0,D,23 0,A,-3382840 0,B,15122630 0,C,84 68,111,11 31,10C,996 44,10D,25 44,20,92,-36,-17 0,21,-1,0,1 19,104,17 32,111,11 29,10C,960 45,10D,23 44,104,17 32,20,98,-30,-16 0,21,-2,-1,0 22,111,11 27,10C,910 46,10D,23 49,104,18 32,111,11 23,10,7331940 0,D,22 0,A,-3382842 0,B,15122626 0,C,84 44,10C,894 33,20,103,-28,-6 0,21,-1,0,0 19,10D,23 43,104,20 32,111,11 23,10,7331960 0,D,21 0,A,-3382843 0,B,15122625 0,C,84 41,10C,859 40,10D,20 38,20,98,-38,-4 0,21,-1,0,1 20,104,20 39,111,11 22,10,7331980 0,D,20 0,A,-3382843 0,B,15122624 0,C,84 41,10C,828 40,10D,20 42,20,94,-35,-16 0,21,-1,-1,0 18,104,20 30,111,11 31,10C,804 43,10D,20 45,104,21 30,111,11 21,20,94,-29,0 0,21,-1,0,0 20,10C,781 41,10D,20 50,104,21 32,111,11 30,10C,785 34,20,94,-49,-15 0,21,0,0,0 19,10D,20 49,104,21 22,10,7332040 0,D,20 0,A,-3382844 0,B,15122621 0,C,82 45,111,11 62,10C,789 32,20,100,-40,-10 0,21,-1,-1,0 22,10D,17 48,104,22 33,111,11 46,10C,792 44,10D,17 47,20,102,-33,-19 0,21,-1,0,0 20,104,21 28,111,11 30,10C,808 45,10D,17 44,104,21 23,10,7332100 0,D,14 0,A,-3382846 0,B,15122619 0,C,82 40,111,11 20,20,100,-29,-9 0,21,-1,0,0 19,10C,789 44,10D,14 52,104,21 23,10,7332120 0,D,13 0,A,-3382846 0,B,15122618 0,C,82 40,111,11 24,20,104,-31,-11 0,21,-1,0,0 20,10C,789 40,10D,14 44,104,21 31,111,11 30,10C,796 38,20,99,-34,-10 0,21,-1,0,0 24,10D,14 48,104,21 31,111,11 30,10C,804 43,10D,14 37,20,104,-23,-6 0,21,-1,0,0 21,104,21 26,111,11 32,10C,808 43,10D,11 56,104,21 26,20,94,-50,-7 0,21,0,0,2 20,111,11 39,10C,800 46,10D,11 37,10,7332200 0,D,10 0,A,-3382847 0,B,15122616 0,C,82 41,104,21 29,20,105,-27,-5 0,21,0,-1,-1 20,111,11 26,10C,785 46,10D,11 38,10,7332220 0,D,10 0,A,-3382847 0,B,15122615 0,C,82 41,104,21 31,111,12 21,20,105,-30,-3 0,21,-1,0,0 20,10C,781 43,10D,11 38,10,7332240 0,D,9 0,A,-3382848 0,B,15122615 0,C,82 41,104,24 29,111,12 30,20,95,-37,-10 0,21,-1,0,0 19,10C,792 43,10D,9 38,10,7332260 0,D,9 0,A,-3382848 0,B,15122614 0,C,82 41,104,26 31,111,12 30,10C,792 34,20,96,-44,-8 0,21,-1,0,0 19,10D,9 48,104,26 39,111,12 40,10C,792 46,10D,9 37,20,89,-47,-7 0,21,-1,0,0 20,104,27 32,111,12 30,10C,789 47,10D,9 48,104,28 27,20,101,-36,-5 0,21,-1,0,0 15,10,7332320 0,D,6 0,A,-3382848 0,B,15122613 0,C,82 68,111,12 30,10C,750 42,10D,6 46,104,29 22,20,97,-36,-8 0,21,-1,0,0 15,10,7332340 0,D,4 0,A,-3382848 0,B,15122613 0,C,82 68,111,12 32,10C,699 45,10D,6 42,20,96,-34,-7 0,21,-1,0,-1 20,104,29 28,111,11 29,10C,691 47,10D,6 47,104,29 22,10,7332380 0,D,3 0,A,-3382849 0,B,15122612 0,C,82 41,111,11 28,20,97,-34,-8 0,21,-1,0,0 20,10C,675 43,10D,3 45,104,28 23,10,7332400 0,D,3 0,A,-3382849 0,B,15122612 0,C,82 40,111,11 32,10C,656 33,20,96,-35,-7 0,21,-1,0,0 20,10D,3 45,104,28 23,10,7332420 0,D,2 0,A,-3382849 0,B,15122612 0,C,82 42,111,11 27,10C,636 43,20,99,-33,-9 0,21,-1,0,0 19,10D,3 46,104,27 43,111,11 29,10C,628 46,10D,3 37,20,97,-33,-9 0,21,-1,0,0 24,104,28 30,111,11 23,10,7332460 0,D,1 0,A,-3382849 0,B,15122612 0,C,82 40,10C,628 41,10D,1 42,20,99,-30,-9 0,21,-1,0,0 18,104,28 30,111,11 24,10,7332480 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 39,10C,648 40,10D,1 52,20,102,-28,-8 0,21,-1,0,0 18,104,27 30,111,11 23,10,7332500 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 40,10C,660 44,10D,1 46,20,98,-24,-7 0,21,0,0,0 18,104,27 30,111,11 23,10,7332520 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 41,10C,652 40,10D,1 45,104,27 21,20,101,-24,-9 0,21,-1,0,0 19,111,11 33,10C,652 43,10D,0 46,104,27 29,111,11 30,20,99,-26,-9 0,21,-1,0,0 20,10C,652 41,10D,0 49,104,27 29,111,11 30,10C,652 34,20,101,-25,-12 0,21,-1,0,0 19,10D,0 46,10,7332580 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 41,104,27 31,111,11 39,10C,644 34,20,99,-24,-5 0,21,-1,0,0 19,10D,0 36,10,7332600 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 42,104,27 27,111,11 33,10C,656 41,10D,0 37,20,100,-25,-11 0,21,-1,0,0 22,104,27 27,111,11 34,10C,644 42,10D,0 44,104,27 31,111,11 21,20,101,-25,-9 0,21,-1,0,0 21,10C,648 44,10D,0 49,104,27 32,111,11 45,10C,640 34,20,100,-24,-12 0,21,-1,0,0 20,10D,0 43,104,27 30,111,11 31,10C,648 44,10D,0 37,20,99,-26,-10 0,21,-1,0,0 19,104,26 32,111,11 42,10C,636 43,10,7332700 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 41,10D,0 35,20,101,-25,-9 0,21,-1,0,0 19,104,27 28,111,11 29,10C,636 46,10D,0 37,10,7332720 0,D,0 0,A,-3382849 0,B,15122612 0,C,82 41,104,26 20,20,99,-25,-8 0,21,-1,0,0 19,111,11 28,10C,640 44,10D,0 39,10,7332740 0,D,0 0,A,-3382850 0,B,15122612 0,C,82 41,104,26 30,111,11 22,20,99,-25,-9 0,21,-1,0,0 23,10C,632 39,10D,0 46,104,26 30,111,11 30,10C,628 34,20,100,-25,-9 0,21,-1,0,0 20,10D,0 45,104,26 31,111,11 23,10,7332780 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 40,10C,621 40,10D,0 59,20,100,-24,-10 0,21,-1,0,0 20,104,26 28,111,11 29,10C,625 47,10D,0 48,104,26 28,20,102,-25,-7 0,21,-1,0,0 21,111,11 19,10,7332820 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 56,10C,621 41,10D,0 44,104,25 21,20,100,-26,-8 0,21,-1,0,0 18,10,7332840 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 65,111,11 33,10C,621 46,10D,0 39,20,99,-25,-9 0,21,-1,0,0 25,104,25 29,111,11 30,10C,621 46,10D,0 48,104,25 25,20,100,-27,-11 0,21,-1,0,0 20,111,11 33,10C,617 42,10D,0 45,104,25 42,111,11 32,20,101,-24,-8 0,21,-1,0,0 20,10C,617 40,10D,0 45,104,25 30,111,10 33,10C,617 33,20,100,-25,-9 0,21,-1,0,0 21,10D,0 43,104,25 29,111,11 34,10C,613 51,10D,0 37,20,99,-27,-8 0,21,-1,0,0 21,104,25 27,111,11 30,10C,617 46,10D,0 44,104,25 31,111,11 20,20,102,-25,-7 0,21,-1,0,0 18,10,7332960 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 66,10C,609 39,10D,0 42,10,7332980 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 45,104,25 20,20,100,-24,-12 0,21,-1,0,0 20,111,11 32,10C,605 41,10D,0 55,104,25 31,111,10 22,20,101,-25,-9 0,21,-1,0,0 19,10C,609 41,10D,0 48,104,25 30,111,10 32,10,7333020 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,10C,609 31,20,101,-22,-11 0,21,-1,0,0 21,10D,0 46,104,24 26,10,7333040 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,111,10 28,10C,609 39,20,100,-26,-10 0,21,-1,0,0 19,10D,0 46,104,24 27,10,7333060 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,111,10 28,10C,609 39,20,103,-23,-10 0,21,-1,0,0 17,10D,0 43,104,24 30,111,10 21,10,7333080 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,10C,605 44,10D,0 37,20,100,-25,-12 0,21,-1,0,0 20,104,24 36,111,10 22,10,7333100 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,10C,609 44,10D,0 37,20,100,-26,-9 0,21,-1,0,0 19,104,24 27,111,11 22,10,7333120 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,10C,605 44,10D,0 49,104,24 21,20,102,-25,-6 0,21,-1,0,0 18,111,11 22,10,7333140 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 55,10C,609 41,10D,0 45,104,24 22,20,100,-25,-7 0,21,-1,0,0 23,111,11 21,10,7333160 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 52,10C,609 52,10D,0 48,104,24 22,20,99,-27,-10 0,21,-1,0,0 20,111,10 32,10C,613 43,10D,0 45,104,24 33,111,10 28,10C,605 43,20,100,-27,-9 0,21,-1,0,0 21,10D,0 46,104,24 30,111,10 30,10C,609 43,10,7333220 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,10D,0 34,20,97,-26,-9 0,21,-1,0,0 20,104,24 27,111,10 30,10C,601 45,10D,0 38,10,7333240 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 40,104,24 19,20,101,-24,-7 0,21,-1,0,0 21,111,10 27,10C,613 55,10D,0 38,10,7333260 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 40,104,24 19,20,101,-23,-10 0,21,-1,0,0 21,111,10 27,10C,605 44,10D,0 38,10,7333280 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,104,24 31,111,10 21,20,100,-25,-9 0,21,-1,0,0 21,10C,609 42,10D,0 46,104,24 39,111,10 43,10C,605 34,20,101,-24,-4 0,21,-1,0,0 19,10D,0 40,10,7333320 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,104,24 28,111,10 33,10C,601 42,10D,0 37,20,101,-26,-10 0,21,-1,0,0 21,104,24 18,10,7333340 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 61,111,10 27,10C,605 46,10D,0 36,20,104,-23,-13 0,21,-1,0,0 22,104,24 27,111,10 30,10C,605 47,10D,0 48,104,24 29,111,10 21,20,101,-25,-15 0,21,-1,0,0 17,10,7333380 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 66,10C,605 44,10D,0 48,104,24 23,10,7333400 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 40,111,10 29,20,100,-26,-15 0,21,-1,0,0 19,10C,601 54,10D,0 45,104,24 22,10,7333420 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 41,111,10 23,20,100,-26,-10 0,21,-1,0,0 21,10C,601 43,10D,0 44,104,24 23,10,7333440 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 44,111,10 28,10C,597 34,20,102,-24,-20 0,21,-1,0,0 19,10D,0 46,104,24 23,10,7333460 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 40,111,10 28,10C,593 46,10D,0 37,20,104,-22,-23 0,21,-2,0,0 19,104,25 28,111,10 30,10C,597 43,10D,0 46,104,25 32,111,10 21,20,100,-25,-9 0,21,0,0,0 21,10C,605 32,10,7333500 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 44,10D,0 56,104,24 29,111,10 22,20,100,-26,-8 0,21,-1,0,0 20,10C,601 45,10D,0 49,104,24 30,111,10 45,10C,601 34,20,98,-25,-16 0,21,-1,0,0 20,10D,0 47,104,24 38,111,10 30,10C,605 44,10D,0 37,20,100,-26,-9 0,21,-1,0,0 16,10,7333560 0,D,0 0,A,-3382850 0,B,15122612 0,C,81 67,104,24 30,111,10 32,10C,601 43,10D,0 37,20,100,-24,-13 0,21,-1,0,0 18,10,7333580 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 66,104,24 30,111,10 29,10C,601 35,10,7333600 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 41,10D,0 35,20,100,-24,-11 0,21,-1,0,0 20,104,24 39,111,10 39,10,7333620 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 41,10C,597 40,10D,0 37,20,101,-26,-6 0,21,-1,0,0 21,104,25 28,111,10 34,10C,601 39,10,7333640 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 40,10D,0 40,20,103,-23,-9 0,21,-1,0,0 19,104,24 30,111,10 31,10,7333660 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 41,10C,605 40,10D,0 42,20,100,-25,-8 0,21,-1,0,0 19,104,24 30,111,10 29,10,7333680 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 41,10C,609 44,10D,0 38,20,100,-24,-7 0,21,-1,0,0 20,104,24 35,111,11 34,10C,605 43,10D,0 50,104,24 21,20,102,-25,-9 0,21,-1,0,0 20,111,10 38,10C,605 36,10,7333720 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 40,10D,0 43,104,24 27,20,100,-25,-8 0,21,-1,0,0 16,111,10 27,10C,605 47,10D,0 38,10,7333740 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 41,104,24 31,111,10 21,20,100,-25,-9 0,21,-1,0,0 20,10C,605 44,10D,0 38,10,7333760 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 41,104,24 28,111,10 29,20,100,-25,-8 0,21,-1,0,0 18,10C,605 45,10D,0 39,10,7333780 0,D,0 0,A,-3382850 0,B,15122612 0,C,80 40,104,24 32,111,10 30,20,102,-24,-11 0,21,-1,0,0 18,10C,597 40,10D,0 61,104,24 30,111,10 30,10C,593 32,20,101,-24,-11 0,21,-1,0,0 21,10D,0 45,10,7333820 0,D,0 0,A,-3382851 0,B,15122612 0,C,80 45,104,24 32,111,10 28,10C,601 34,20,102,-24,-9 0,21,-1,0,0 20,10D,0 36,10,7333840 0,D,0 0,A,-3382851 0,B,15122612 0,C,80 42,104,24 26,111,10 34,10C,601 45,10D,0 37,20,100,-25,-9 0,21,-1,0,0 20,104,24 32,111,10 30,10C,605 45,10D,0 47,104,24 24,10,7333880 0,D,0 0,A,-3382851 0,B,15122612 0,C,80 40,111,10 19,20,102,-26,-8 0,21,-1,0,0 20,10C,605 43,10D,0 44,104,24 31,111,10 31,10C,605 34,20,101,-20,-9 0,21,-1,0,0 20,10D,0 46,104,24 44,111,11 31,10C,605 55,10D,0 38,20,102,-20,-7 0,21,-1,0,0 24,104,24 26,111,11 32,10C,601 36,10,7333940 0,D,0 0,A,-3382851 0,B,15122612 0,C,80 41,10D,0 43,20,99,-19,-10 0,21,-1,0,0 20,104,27 31,111,12 35,10C,621 36,10,7333960 0,D,0 0,A,-3382851 0,B,15122612 0,C,80 40,10D,0 40,20,101,-20,-10 0,21,-1,0,0 19,104,29 28,111,12 41,10C,679 34,10,7333980 0,D,0 0,A,-3382851 0,B,15122612 0,C,80 41,10D,0 39,20,105,-18,-9 0,21,-1,0,0 21,104,29 30,111,12 36,10C,710 35,10,7334000 0,D,1 0,A,-3382851 0,B,15122612 0,C,80 40,10D,0 40,20,100,-19,-9 0,21,-1,0,0 21,104,29 30,111,12 33,10C,722 35,10,7334020 0,D,1 0,A,-3382851 0,B,15122612 0,C,80 41,10D,1 44,20,102,-18,-10 0,21,-1,0,0 19,104,29 30,111,12 34,10C,722 34,10,7334040 0,D,2 0,A,-3382851 0,B,15122612 0,C,80 41,10D,1 43,20,101,-17,-9 0,21,-1,0,0 20,104,29 26,111,12 32,10C,722 35,10,7334060 0,D,2 0,A,-3382851 0,B,15122612 0,C,80 41,10D,1 49,20,98,-20,-9 0,21,-1,0,0 20,104,28 30,111,12 29,10C,730 35,10,7334080 0,D,3 0,A,-3382851 0,B,15122612 0,C,80 40,10D,1 43,104,29 21,20,101,-18,-8 0,21,-1,0,0 20,111,12 30,10C,750 47,10D,2 44,104,31 29,111,13 30,10C,765 34,20,94,-26,-11 0,21,-1,0,0 18,10D,2 48,104,32 30,111,13 30,10C,824 55,10D,2 36,20,97,-20,-11 0,21,-1,0,-1 22,104,34 27,111,13 30,10C,859 46,10D,2 49,104,33 28,111,13 21,20,100,-21,-9 0,21,-1,0,0 18,10,7334160 0,D,5 0,A,-3382851 0,B,15122611 0,C,80 65,10C,910 41,10D,3 47,104,32 32,20,110,-13,-11 0,21,-1,0,0 22,111,13 30,10C,925 46,10D,3 49,104,31 32,111,14 22,20,100,-19,-8 0,21,-1,0,0 16,10,7334200 0,D,5 0,A,-3382852 0,B,15122610 0,C,80 67,10C,933 44,10D,3 43,104,35 30,111,14 21,20,103,-17,-11 0,21,-1,0,0 20,10C,988 40,10D,5 49,104,40 41,111,17 31,10C,1027 34,20,101,-21,-11 0,21,-1,0,0 20,10D,5 44,104,46 30,111,17 32,10C,1179 43,10D,5 37,20,107,-11,-11 0,21,-1,0,0 17,10,7334260 0,D,5 0,A,-3382852 0,B,15122609 0,C,80 67,104,50 29,111,17 30,10C,1375 35,10,7334280 0,D,7 0,A,-3382853 0,B,15122609 0,C,80 41,10D,5 75,20,106,-10,-7 0,21,0,0,0 19,104,46 32,111,17 21,10,7334300 0,D,8 0,A,-3382853 0,B,15122608 0,C,80 41,10C,1558 40,10D,7 45,104,42 22,20,106,-3,-15 0,21,-1,0,0 18,111,17 26,10,7334320 0,D,9 0,A,-3382853 0,B,15122608 0,C,80 51,10C,1605 44,10D,7 49,104,40 30,20,100,-11,-16 0,21,-1,0,0 20,111,17 33,10C,1582 51,10D,7 45,104,41 32,111,17 22,20,100,-13,-14 0,21,-1,-1,0 20,10C,1562 42,10D,7 45,104,41 30,111,17 29,10C,1554 34,20,106,-17,-15 0,21,-1,0,0 21,10D,10 44,104,41 30,111,17 33,10C,1562 42,10D,10 37,20,99,-11,-14 0,21,-1,0,0 21,104,41 27,111,17 30,10C,1566 47,10D,10 48,104,41 27,20,105,-4,-13 0,21,-1,1,1 16,10,7334420 0,D,14 0,A,-3382855 0,B,15122605 0,C,80 67,111,17 36,10C,1574 55,10D,10 47,20,106,-18,-12 0,21,-1,0,0 21,104,40 27,111,17 30,10C,1589 46,10D,14 47,104,40 24,10,7334460 0,D,15 0,A,-3382856 0,B,15122603 0,C,80 41,111,17 19,20,108,-8,0 0,21,0,0,0 20,10C,1593 44,10D,14 49,104,40 22,10,7334480 0,D,15 0,A,-3382856 0,B,15122602 0,C,80 40,111,17 25,20,103,-15,-8 0,21,-1,0,1 19,10C,1593 44,10D,14 48,104,43 23,10,7334500 0,D,16 0,A,-3382856 0,B,15122601 0,C,80 41,111,18 27,10C,1632 34,20,106,-12,-6 0,21,-1,1,0 21,10D,17 45,104,47 31,111,19 30,10C,1648 42,10D,17 38,20,98,-16,4 0,21,-1,0,0 24,104,49 29,111,19 30,10C,1613 44,10,7334540 0,D,17 0,A,-3382857 0,B,15122600 0,C,80 40,10D,17 36,20,103,-7,-5 0,21,-1,0,0 19,104,51 30,111,19 41,10C,1585 43,10D,17 46,104,54 22,20,103,-10,-13 0,21,-1,0,0 20,111,20 30,10C,1578 43,10D,17 47,104,56 30,111,19 29,10C,1562 34,20,113,-2,-25 0,21,-1,0,0 20,10D,20 48,104,57 33,111,19 29,10C,1519 47,10D,20 37,20,101,-7,-9 0,21,-2,1,0 20,104,57 20,10,7334620 0,D,22 0,A,-3382859 0,B,15122595 0,C,80 55,111,20 32,10C,1449 43,10D,20 37,20,111,-5,-12 0,21,-1,1,0 25,104,60 40,111,20 30,10C,1375 54,10D,20 50,104,62 20,20,104,-17,-12 0,21,-1,0,1 22,111,19 28,10C,1277 46,10D,23 49,104,64 29,111,19 26,20,111,-13,-17 0,21,-1,0,-1 16,10,7334680 0,D,24 0,A,-3382861 0,B,15122591 0,C,80 67,10C,1257 53,10D,23 48,104,65 22,20,98,-14,5 0,21,0,0,0 20,111,19 28,10C,1253 46,10D,23 50,104,64 28,111,19 29,20,106,-14,-7 0,21,-1,0,0 17,10,7334720 0,D,26 0,A,-3382862 0,B,15122589 0,C,80 66,10C,1253 45,10D,26 48,104,64 27,20,99,-22,-11 0,21,-1,0,1 21,111,19 40,10C,1246 43,10D,26 50,104,62 31,111,19 22,20,97,-29,-21 0,21,-1,0,0 17,10,7334760 0,D,27 0,A,-3382864 0,B,15122586 0,C,80 66,10C,1234 45,10D,26 44,104,62 30,111,19 21,20,102,-16,-5 0,21,-1,0,0 21,10C,1238 41,10D,26 46,104,62 31,111,19 40,10C,1250 34,20,104,-15,-19 0,21,-1,0,0 21,10D,29 44,104,61 29,111,18 32,10C,1289 43,10D,29 38,20,118,-1,-16 0,21,0,0,-2 20,104,58 28,111,17 30,10C,1289 45,10D,29 46,104,48 34,111,14 30,20,115,-14,-13 0,21,0,0,0 20,10C,1218 41,10D,29 48,104,37 23,10,7334860 0,D,31 0,A,-3382868 0,B,15122578 0,C,80 44,111,13 24,20,106,-19,-4 0,21,-1,0,1 20,10C,1238 40,10D,31 45,104,29 22,10,7334880 0,D,32 0,A,-3382868 0,B,15122576 0,C,80 40,111,12 28,10C,1242 34,20,109,-13,-15 0,21,-1,-1,0 20,10D,31 45,104,24 31,111,12 30,10C,1238 43,10D,31 37,20,93,-33,-5 0,21,-1,0,1 21,104,22 28,111,14 41,10C,1207 44,10D,31 50,104,27 21,20,105,-12,0 0,21,-1,0,2 20,111,15 28,10C,1222 44,10D,33 39,10,7334940 0,D,32 0,A,-3382871 0,B,15122571 0,C,77 41,104,33 28,20,96,4,-32 0,21,-2,0,1 19,111,16 30,10C,1281 44,10D,33 39,10,7334960 0,D,32 0,A,-3382872 0,B,15122569 0,C,77 44,104,40 25,20,90,-35,-2 0,21,-1,0,0 19,111,16 29,10C,1289 44,10D,33 39,10,7334980 0,D,32 0,A,-3382873 0,B,15122567 0,C,77 41,104,42 30,111,16 22,20,146,18,22 0,21,-2,2,-1 19,10C,1273 44,10D,33 51,104,44 33,111,17 46,10C,1261 34,20,99,-51,-3 0,21,-1,0,1 21,10D,34 44,104,43 29,111,17 34,10C,1238 53,10D,34 38,20,104,-3,-6 0,21,-1,-1,-6 21,104,47 30,111,17 30,10C,1269 47,10D,34 57,104,49 21,20,84,-37,3 0,21,-1,1,1 21,111,17 31,10C,1257 46,10D,34 46,104,49 31,111,17 26,20,99,-19,-3 0,21,-1,0,1 20,10C,1253 45,10D,35 49,104,49 30,111,17 31,10C,1261 35,20,107,-25,-16 0,21,-1,-1,0 20,10D,35 43,104,49 30,111,15 30,10C,1257 45,10D,35 36,20,94,-27,-24 0,21,-1,-1,0 22,104,40 28,111,13 29,10C,1242 46,10D,35 49,104,31 30,20,51,-44,-4 0,21,-2,0,0 17,10,7335140 0,D,37 0,A,-3382880 0,B,15122552 0,C,77 66,111,12 28,10C,1238 54,10D,36 37,20,97,-38,-20 0,21,-1,-2,2 20,104,23 28,111,12 30,10C,1222 46,10D,36 49,104,20 22,10,7335180 0,D,38 0,A,-3382882 0,B,15122548 0,C,77 40,111,12 19,20,97,-29,-13 0,21,0,0,0 23,10C,1230 46,10D,36 45,104,15 22,10,7335200 0,D,38 0,A,-3382883 0,B,15122546 0,C,77 40,111,11 24,20,104,-17,-6 0,21,-1,-1,0 20,10C,1234 44,10D,36 43,104,13 31,111,11 31,10C,1242 33,20,104,-25,-19 0,21,-1,-1,0 21,10D,37 43,104,12 32,111,11 26,10,7335240 0,D,38 0,A,-3382884 0,B,15122542 0,C,77 41,10C,1238 37,20,92,-30,-12 0,21,-1,0,0 21,10D,37 47,104,12 36,111,11 24,10,7335260 0,D,38 0,A,-3382885 0,B,15122540 0,C,77 41,10C,1238 32,20,84,-27,-3 0,21,-1,-1,-1 20,10D,37 43,104,12 32,111,11 49,10C,1234 46,10D,37 37,20,92,-28,-16 0,21,-1,0,-1 21,104,12 26,111,11 32,10C,1234 43,10D,38 46,104,13 30,111,12 20,20,94,-27,-5 0,21,0,0,-2 21,10C,1246 42,10D,38 40,10,7335320 0,D,38 0,A,-3382888 0,B,15122533 0,C,77 40,104,14 31,111,12 26,20,109,-23,-13 0,21,-1,0,2 19,10C,1238 46,10D,38 39,10,7335340 0,D,38 0,A,-3382889 0,B,15122531 0,C,77 41,104,15 31,111,13 27,20,94,-32,-17 0,21,-1,0,0 19,10C,1257 53,10D,38 38,10,7335360 0,D,38 0,A,-3382890 0,B,15122529 0,C,77 40,104,20 40,111,13 21,20,75,-41,-11 0,21,0,0,0 32,10C,1281 41,10D,38 46,104,22 30,111,13 30,10C,1289 35,20,92,-34,-9 0,21,0,0,0 19,10D,38 47,104,22 35,111,13 30,10C,1281 43,10D,38 37,20,100,-26,-13 0,21,0,0,0 19,104,23 29,111,13 29,10C,1300 47,10D,38 50,104,23 28,111,14 21,20,119,-14,-4 0,21,0,0,-1 21,10C,1312 45,10D,38 49,104,24 30,111,14 29,10C,1320 43,20,103,-15,-5 0,21,-1,0,0 21,10D,38 47,104,25 30,111,14 30,10C,1324 45,10D,38 37,20,104,-14,-7 0,21,-1,-1,0 21,104,25 28,111,14 30,10C,1335 42,10D,38 58,104,25 21,20,103,-25,-8 0,21,-1,0,-1 21,111,14 43,10C,1351 42,10D,39 46,104,24 32,111,13 21,20,106,-19,-11 0,21,-1,0,-1 18,10,7335520 0,D,40 0,A,-3382898 0,B,15122512 0,C,77 66,10C,1363 44,10D,39 48,104,20 23,10,7335540 0,D,40 0,A,-3382899 0,B,15122510 0,C,77 41,111,12 18,20,101,-28,-11 0,21,-1,0,0 21,10C,1355 44,10D,39 48,104,16 33,10,7335560 0,D,41 0,A,-3382900 0,B,15122508 0,C,77 40,111,11 19,20,144,23,-11 0,21,-1,-2,0 20,10C,1386 45,10D,40 48,104,13 22,10,7335580 0,D,41 0,A,-3382901 0,B,15122506 0,C,77 40,111,11 25,20,92,-25,-26 0,21,-2,0,-2 23,10C,1359 44,10D,40 44,104,11 24,10,7335600 0,D,41 0,A,-3382902 0,B,15122504 0,C,77 41,111,12 24,20,91,-28,-24 0,21,-1,0,-1 20,10C,1324 45,10D,40 49,104,14 22,10,7335620 0,D,41 0,A,-3382903 0,B,15122502 0,C,77 41,111,12 23,20,115,-13,-9 0,21,-2,0,-2 21,10C,1339 44,10D,40 48,104,17 22,10,7335640 0,D,41 0,A,-3382904 0,B,15122499 0,C,77 40,111,13 30,20,113,-9,-10 0,21,-1,1,-2 20,10C,1308 44,10D,40 50,104,18 30,10,7335660 0,D,41 0,A,-3382905 0,B,15122497 0,C,77 41,111,13 19,20,91,-27,-11 0,21,0,1,3 20,10C,1281 48,10D,40 45,104,20 22,10,7335680 0,D,40 0,A,-3382906 0,B,15122495 0,C,77 41,111,13 28,10C,1242 33,20,99,-19,-10 0,21,-1,0,-1 21,10D,40 45,104,20 31,111,12 30,10C,1242 43,10D,40 37,20,92,-29,-7 0,21,-1,0,-1 21,104,18 28,111,11 31,10C,1218 52,10D,40 63,104,15 20,20,99,-27,-9 0,21,-1,0,0 20,111,11 27,10C,1234 36,10,7335740 0,D,40 0,A,-3382909 0,B,15122488 0,C,77 40,10D,40 44,104,13 33,111,11 21,20,117,-17,-2 0,21,0,0,0 19,10C,1234 34,10,7335760 0,D,40 0,A,-3382910 0,B,15122486 0,C,77 44,10D,40 56,104,12 30,111,11 19,20,107,-23,0 0,21,-1,0,1 19,10C,1234 33,10,7335780 0,D,40 0,A,-3382911 0,B,15122484 0,C,77 44,10D,40 44,104,12 30,111,11 32,10C,1226 34,20,113,-20,0 0,21,-1,0,0 20,10D,40 44,104,12 30,111,11 30,10C,1214 45,10D,40 37,20,110,-34,-28 0,21,0,0,2 21,104,12 32,111,11 29,10C,1222 46,10D,40 49,104,12 22,10,7335840 0,D,39 0,A,-3382914 0,B,15122478 0,C,77 42,111,11 19,20,72,-45,-13 0,21,-1,0,0 20,10C,1238 41,10D,40 48,104,12 34,111,11 31,10C,1230 44,20,97,-41,0 0,21,0,0,0 19,10D,39 56,104,13 29,111,13 23,10,7335880 0,D,39 0,A,-3382916 0,B,15122474 0,C,77 44,10C,1246 32,20,111,-14,-8 0,21,0,0,-3 21,10D,39 46,104,18 33,111,13 22,10,7335900 0,D,39 0,A,-3382917 0,B,15122472 0,C,77 40,10C,1253 41,20,92,-22,-8 0,21,-1,0,0 20,10D,39 47,104,22 28,111,13 23,10,7335920 0,D,38 0,A,-3382918 0,B,15122470 0,C,77 41,10C,1238 41,20,94,-28,0 0,21,-1,0,2 19,10D,38 43,104,23 33,111,13 23,10,7335940 0,D,38 0,A,-3382919 0,B,15122468 0,C,77 40,10C,1261 45,10D,38 36,20,113,-21,-6 0,21,-1,0,-3 20,104,24 27,111,13 30,10C,1265 47,10D,38 55,104,23 29,20,103,-30,-7 0,21,-2,-1,0 20,111,12 32,10C,1257 34,10,7335980 0,D,38 0,A,-3382921 0,B,15122464 0,C,77 40,10D,38 44,104,18 30,111,11 21,20,97,-22,-8 0,21,-1,0,3 19,10C,1238 34,10,7340000 0,D,38 0,A,-3382922 0,B,15122462 0,C,77 44,10D,38 47,104,15 30,111,11 28,20,106,-8,-15 0,21,-2,-1,-2 19,10C,1253 52,10D,38 45,104,13 30,111,11 29,10C,1246 35,20,97,-24,-13 0,21,-2,0,1 20,10D,38 48,104,12 34,111,11 29,10C,1242 46,10D,38 36,20,99,-27,-14 0,21,-3,0,-1 22,104,12 31,111,11 34,10C,1226 46,10D,37 68,104,12 21,20,100,-22,-13 0,21,-3,0,-1 18,10,7340080 0,D,38 0,A,-3382926 0,B,15122453 0,C,77 65,111,11 28,10C,1226 58,10D,37 37,20,87,-34,-19 0,21,-3,0,2 22,104,12 26,111,11 30,10C,1222 47,10D,37 47,104,12 28,20,112,-21,-29 0,21,-4,1,-1 20,111,11 28,10C,1226 46,10D,37 49,104,12 32,111,12 24,10,7340140 0,D,37 0,A,-3382928 0,B,15122447 0,C,77 41,10C,1230 32,20,101,-11,-28 0,21,-4,0,-1 20,10D,36 47,104,16 29,111,13 30,10C,1230 47,10D,36 37,20,102,-17,-33 0,21,-5,1,0 21,104,18 30,111,13 41,10C,1230 36,10,7340180 0,D,36 0,A,-3382929 0,B,15122443 0,C,77 45,10D,36 35,20,126,-14,-27 0,21,-4,0,0 21,104,22 26,111,13 32,10C,1242 44,10D,36 45,104,22 30,111,13 21,20,101,-18,-17 0,21,-4,1,0 21,10C,1250 42,10D,36 47,104,23 29,111,13 39,10C,1246 35,20,95,-20,12 0,21,-3,0,3 20,10D,36 47,104,24 21,10,7340240 0,D,36 0,A,-3382931 0,B,15122437 0,C,77 41,111,14 31,10C,1242 43,20,139,4,-53 0,21,-4,2,-2 19,10D,36 40,10,7340260 0,D,36 0,A,-3382932 0,B,15122435 0,C,77 41,104,25 28,111,15 30,10C,1253 43,10D,36 37,20,114,0,-3 0,21,-4,0,-2 24,104,30 41,111,15 29,10C,1250 43,10D,36 45,104,33 21,20,116,-19,-10 0,21,-4,2,0 21,111,16 33,10C,1250 42,10D,36 50,104,35 28,111,16 29,20,89,-19,-9 0,21,-5,0,0 21,10C,1261 40,10D,36 47,104,36 29,111,16 29,10C,1257 34,20,90,-35,-18 0,21,-5,1,0 21,10D,36 44,104,37 34,111,15 33,10C,1253 46,10D,36 37,20,114,-15,-15 0,21,-4,0,-3 21,104,37 31,111,15 30,10C,1250 53,10D,36 45,104,37 22,20,73,-43,-26 0,21,-2,0,-1 20,111,16 41,10C,1253 43,10D,36 45,104,36 32,111,15 21,20,96,-19,-20 0,21,-4,1,0 21,10C,1250 41,10D,36 62,104,35 33,111,15 32,10C,1246 34,20,96,-25,-13 0,21,-3,0,-1 17,10,7340420 0,D,37 0,A,-3382934 0,B,15122417 0,C,77 66,10D,36 48,104,33 27,111,15 42,10C,1257 34,20,96,-21,-16 0,21,-4,0,0 20,10D,36 43,104,33 30,111,15 32,10C,1246 44,10D,36 37,20,85,-27,-12 0,21,-4,0,-1 20,104,33 27,111,15 34,10C,1242 45,10D,36 39,10,7340480 0,D,37 0,A,-3382934 0,B,15122410 0,C,77 40,104,33 28,20,91,-25,-18 0,21,-5,0,3 20,111,15 31,10C,1246 47,10D,37 37,10,7340500 0,D,37 0,A,-3382934 0,B,15122408 0,C,77 40,104,29 28,20,105,-17,-12 0,21,-4,0,1 24,111,13 27,10C,1242 44,10,7340520 0,D,37 0,A,-3382934 0,B,15122405 0,C,77 40,10D,37 48,104,24 22,20,111,-18,-29 0,21,-5,1,0 19,111,12 27,10C,1234 44,10,7340540 0,D,37 0,A,-3382934 0,B,15122403 0,C,77 40,10D,37 48,104,20 26,20,92,-22,-22 0,21,-5,1,0 20,111,12 30,10C,1234 43,10D,38 50,104,16 30,111,11 30,10C,1222 34,20,73,-34,-28 0,21,-5,1,0 20,10D,38 44,104,14 41,111,11 29,10C,1230 56,10D,38 36,20,103,-25,-17 0,21,-5,1,0 21,104,13 28,111,11 30,10C,1234 46,10D,38 50,104,12 27,111,11 26,20,95,-28,-18 0,21,-4,0,0 20,10C,1230 41,10D,38 49,104,12 30,111,11 32,10C,1230 34,20,94,-23,-19 0,21,-4,0,0 21,10D,38 43,104,12 31,111,11 30,10C,1226 45,10D,38 36,20,89,-34,-17 0,21,-3,0,0 21,104,12 28,111,11 29,10C,1226 43,10D,38 48,104,12 31,20,96,-28,-10 0,21,-3,0,0 21,111,11 27,10C,1222 43,10D,38 58,104,12 28,111,11 24,10,7340700 0,D,38 0,A,-3382932 0,B,15122385 0,C,77 41,10C,1226 32,20,117,-13,-19 0,21,-4,0,0 20,10D,38 43,104,12 32,111,11 35,10C,1230 54,10D,38 37,20,104,-22,-10 0,21,-3,0,-2 20,104,12 31,111,11 33,10C,1234 44,10,7340740 0,D,38 0,A,-3382931 0,B,15122380 0,C,77 41,10D,38 35,20,104,-25,-13 0,21,-2,0,0 20,104,14 27,111,12 31,10C,1230 36,10,7340760 0,D,38 0,A,-3382931 0,B,15122378 0,C,77 41,10D,38 47,104,17 22,20,95,-24,-13 0,21,-2,0,0 19,111,12 30,10C,1242 44,10D,38 45,104,18 46,111,12 31,20,102,-22,-8 0,21,-2,0,0 19,10C,1257 45,10D,38 50,104,20 30,111,13 30,10C,1257 35,20,87,-32,-9 0,21,-1,0,-1 19,10D,38 44,104,20 30,111,13 34,10C,1257 43,10D,38 37,20,106,-20,-6 0,21,-1,0,-1 19,104,22 29,111,14 28,10C,1273 46,10D,38 50,104,25 28,111,14 22,20,110,-21,-8 0,21,-1,0,0 20,10C,1246 45,10D,38 50,104,27 30,111,15 29,10C,1246 34,20,101,-24,-9 0,21,-1,0,-1 21,10D,38 44,104,33 30,111,17 34,10C,1257 54,10D,38 38,20,102,-22,-14 0,21,-1,1,-1 20,104,41 31,111,17 34,10C,1261 47,10D,38 51,10,7340920 0,D,39 0,A,-3382926 0,B,15122360 0,C,77 41,104,45 20,20,97,-30,-6 0,21,-1,1,1 19,111,17 32,10C,1261 46,10D,38 42,10,7340940 0,D,39 0,A,-3382926 0,B,15122358 0,C,77 41,104,46 24,20,109,-9,-5 0,21,-1,0,0 20,111,17 32,10C,1261 46,10D,38 50,104,46 29,111,17 27,20,110,-21,-18 0,21,-1,0,1 20,10C,1261 41,10D,38 45,104,45 26,10,7340980 0,D,40 0,A,-3382925 0,B,15122353 0,C,77 41,111,15 28,20,92,-27,-2 0,21,-1,0,1 19,10C,1257 41,10D,39 54,104,37 31,111,14 30,10C,1257 35,20,112,-12,-6 0,21,-1,-1,3 19,10D,39 47,104,31 29,111,13 30,10C,1253 47,10D,39 38,20,101,-24,-12 0,21,-1,0,-2 19,104,27 32,111,13 32,10C,1238 43,10D,39 50,104,25 26,20,82,-36,0 0,21,0,0,0 20,111,13 27,10C,1234 46,10D,41 38,10,7341060 0,D,42 0,A,-3382922 0,B,15122344 0,C,77 44,104,23 25,20,106,-17,-13 0,21,-1,0,-1 21,111,12 26,10C,1234 45,10D,41 66,104,20 29,111,12 22,20,94,-29,-8 0,21,-1,0,1 19,10C,1222 44,10D,41 56,104,17 23,10,7341100 0,D,42 0,A,-3382921 0,B,15122339 0,C,74 40,111,11 20,20,108,-21,-9 0,21,-2,0,0 19,10C,1230 44,10D,41 50,104,14 34,111,11 30,10C,1234 35,20,98,-23,-14 0,21,-2,0,0 19,10D,42 55,104,14 24,10,7341140 0,D,42 0,A,-3382920 0,B,15122334 0,C,74 41,111,13 31,10C,1226 34,20,94,-26,-8 0,21,-1,0,0 20,10D,42 46,104,20 30,111,14 35,10C,1250 70,20,122,-10,-9 0,21,-1,0,-1 20,10D,42 42,104,27 30,111,15 31,10C,1289 46,10D,42 38,20,80,-35,1 0,21,0,0,0 19,104,30 26,111,15 44,10C,1277 43,10D,42 50,104,33 21,20,101,-25,-5 0,21,-1,0,2 20,111,15 29,10C,1277 44,10D,42 39,10,7341220 0,D,42 0,A,-3382918 0,B,15122324 0,C,74 40,104,33 32,111,15 21,20,93,-28,-9 0,21,-1,0,0 18,10C,1285 46,10D,42 51,104,33 33,111,15 29,10C,1281 35,20,95,-33,-8 0,21,-1,0,1 18,10D,42 49,104,33 33,111,14 30,10C,1277 56,10D,43 37,20,113,-20,-3 0,21,0,0,0 21,104,29 27,111,13 34,10C,1273 51,10D,43 48,104,25 22,20,103,-18,-7 0,21,-1,0,0 20,111,13 38,10C,1269 46,10D,43 50,104,22 31,111,12 22,20,84,-40,-8 0,21,0,0,0 20,10C,1269 41,10D,43 46,104,20 30,111,11 29,10C,1281 34,20,94,-33,-8 0,21,0,1,0 20,10D,44 47,104,16 31,111,11 30,10C,1277 45,10D,44 36,20,101,-30,-7 0,21,-1,0,0 22,104,14 31,111,11 29,10C,1277 43,10D,44 49,104,12 26,20,102,-20,3 0,21,-1,0,0 21,111,11 31,10C,1273 46,10D,44 50,104,12 27,111,11 27,20,97,-42,-15 0,21,-1,-1,-2 20,10C,1277 51,10D,44 50,104,11 28,111,11 42,10C,1277 39,20,93,-38,-1 0,21,0,0,-1 16,10,7341420 0,D,45 0,A,-3382912 0,B,15122298 0,C,74 67,10D,44 87,104,11 30,111,11 21,20,125,-4,-21 0,21,-1,0,-1 21,10C,1261 44,10D,44 48,104,11 31,111,11 21,10,7341460 0,D,44 0,A,-3382910 0,B,15122293 0,C,74 40,10C,1250 33,20,67,-65,0 0,21,-1,-1,2 19,10D,44 48,104,12 32,111,11 23,10,7341480 0,D,44 0,A,-3382910 0,B,15122290 0,C,74 40,10C,1242 44,20,111,-24,-11 0,21,0,0,0 20,10D,43 43,104,12 29,111,11 23,10,7341500 0,D,44 0,A,-3382909 0,B,15122288 0,C,74 39,10C,1242 47,20,87,-40,-13 0,21,0,0,-1 24,10D,43 43,104,12 30,111,11 21,10,7341520 0,D,43 0,A,-3382909 0,B,15122285 0,C,74 41,10C,1246 41,20,100,-38,-1 0,21,0,0,1 20,10D,43 46,104,12 30,111,11 22,10,7341540 0,D,43 0,A,-3382908 0,B,15122283 0,C,74 40,10C,1242 44,10D,42 38,20,105,-31,-5 0,21,-1,-1,0 19,104,12 26,111,11 23,10,7341560 0,D,42 0,A,-3382908 0,B,15122280 0,C,74 41,10C,1250 41,10D,42 45,104,12 22,20,103,-25,-5 0,21,-2,0,-1 18,111,11 33,10C,1261 44,10D,42 45,104,12 30,111,11 29,10C,1261 33,20,104,-29,-7 0,21,-2,0,-1 22,10D,42 52,104,12 39,111,11 30,10C,1265 45,10D,42 37,20,98,-35,-11 0,21,-2,0,0 20,104,12 32,111,11 39,10C,1261 46,10D,41 43,10,7341640 0,D,42 0,A,-3382906 0,B,15122270 0,C,74 40,104,12 19,20,104,-25,1 0,21,-1,0,0 20,111,11 27,10C,1257 46,10D,41 43,10,7341660 0,D,41 0,A,-3382905 0,B,15122268 0,C,74 40,104,12 25,20,94,-39,-9 0,21,-1,0,-2 19,111,11 28,10C,1257 46,10D,41 49,104,12 22,10,7341680 0,D,41 0,A,-3382904 0,B,15122266 0,C,74 40,111,11 19,20,93,-32,-11 0,21,-1,-1,0 21,10C,1246 44,10D,40 48,104,12 22,10,7341700 0,D,41 0,A,-3382904 0,B,15122263 0,C,74 44,111,11 25,20,90,-32,-14 0,21,-1,0,0 19,10C,1250 50,10D,40 46,104,12 21,10,7341720 0,D,41 0,A,-3382903 0,B,15122261 0,C,74 40,111,11 25,20,104,-33,-15 0,21,-1,0,1 19,10C,1253 44,10D,40 45,104,12 23,10,7341740 0,D,41 0,A,-3382903 0,B,15122258 0,C,74 40,111,11 27,10C,1250 34,20,104,-23,-9 0,21,-1,0,-1 21,10D,40 45,104,12 30,111,11 31,10C,1250 42,10D,40 38,20,87,-45,-7 0,21,-2,-2,-1 19,104,12 38,111,11 31,10C,1250 43,10D,40 46,104,12 26,20,124,-16,-9 0,21,-1,0,-1 23,111,11 45,10C,1246 35,10,7341800 0,D,40 0,A,-3382901 0,B,15122251 0,C,74 40,10D,40 55,104,12 31,20,102,-35,-4 0,21,-1,0,0 20,111,11 24,10,7341820 0,D,40 0,A,-3382900 0,B,15122249 0,C,74 52,10C,1238 45,10D,40 50,104,12 20,20,101,-40,-11 0,21,-1,0,-1 20,111,11 31,10C,1234 36,10,7341840 0,D,40 0,A,-3382900 0,B,15122247 0,C,71 41,10D,40 47,104,12 25,20,95,-32,0 0,21,-1,0,-1 18,111,11 41,10C,1226 46,10D,40 50,104,12 29,111,11 22,20,105,-35,-5 0,21,-1,-1,-2 19,10C,1222 33,10,7341880 0,D,39 0,A,-3382899 0,B,15122242 0,C,71 45,10D,40 47,104,12 33,111,11 24,20,121,-29,-9 0,21,-1,0,-3 21,10C,1214 33,10,7341900 0,D,38 0,A,-3382898 0,B,15122240 0,C,71 44,10D,38 44,104,12 29,111,11 30,20,105,-11,-14 0,21,0,0,-7 19,10C,1207 34,10,7341920 0,D,37 0,A,-3382897 0,B,15122238 0,C,71 43,10D,38 44,104,12 30,111,11 32,10C,1195 34,20,137,-13,-14 0,21,-1,0,2 20,10D,38 44,104,13 30,111,11 29,10C,1199 45,10D,38 37,20,119,-20,-12 0,21,-1,0,-4 21,104,12 27,111,11 30,10C,1203 46,10D,35 48,104,12 23,10,7341980 0,D,35 0,A,-3382896 0,B,15122232 0,C,71 46,111,11 19,20,93,-39,-6 0,21,-1,0,-2 20,10C,1195 44,10D,35 48,104,12 40,111,11 33,10C,1187 35,20,88,-40,4 0,21,-1,0,-1 19,10D,35 43,104,12 39,111,11 21,10,7342020 0,D,32 0,A,-3382895 0,B,15122228 0,C,71 41,10C,1207 37,20,110,-20,-6 0,21,-1,1,-1 21,10D,35 46,104,12 30,111,11 21,10,7342040 0,D,31 0,A,-3382895 0,B,15122226 0,C,71 41,10C,1210 44,10D,31 37,20,98,-41,-12 0,21,-1,0,0 19,104,12 30,111,11 35,10C,1199 36,10,7342060 0,D,31 0,A,-3382894 0,B,15122225 0,C,71 40,10D,31 40,20,97,-43,-17 0,21,-1,0,-1 23,104,12 30,111,11 23,10,7342080 0,D,28 0,A,-3382894 0,B,15122223 0,C,71 41,10C,1183 41,10D,31 42,20,98,-41,-13 0,21,-1,1,0 19,104,12 29,111,11 30,10C,1187 44,10D,31 46,104,12 30,111,11 20,20,100,-38,-3 0,21,-1,0,0 20,10C,1183 50,10D,26 48,10,7342120 0,D,28 0,A,-3382893 0,B,15122220 0,C,71 40,104,12 32,111,11 20,20,95,-41,-6 0,21,-1,0,-1 20,10C,1121 45,10D,26 39,10,7342140 0,D,28 0,A,-3382893 0,B,15122219 0,C,71 40,104,15 31,111,11 25,20,93,-36,-9 0,21,-1,0,1 18,10C,1089 45,10D,26 51,104,16 29,111,12 34,10C,992 34,20,108,-33,-6 0,21,-1,0,0 18,10D,26 48,10,7342180 0,D,20 0,A,-3382892 0,B,15122216 0,C,71 40,104,20 32,111,11 30,10C,898 33,20,93,-40,-5 0,21,-1,0,0 20,10D,21 36,10,7342200 0,D,18 0,A,-3382892 0,B,15122215 0,C,71 41,104,20 28,111,11 32,10C,871 42,10D,21 46,20,92,-44,-9 0,21,0,0,-1 21,104,20 40,111,11 29,10C,855 46,10D,21 46,104,20 20,20,100,-37,-4 0,21,-1,0,0 15,10,7342240 0,D,15 0,A,-3382891 0,B,15122213 0,C,71 69,111,11 31,10C,828 45,10D,15 43,20,106,-27,-4 0,21,-1,-3,0 19,104,20 32,111,11 34,10C,812 45,10D,15 45,104,21 21,10,7342280 0,D,12 0,A,-3382891 0,B,15122212 0,C,71 41,111,11 19,20,99,-39,0 0,21,0,0,0 20,10C,808 43,10D,15 44,104,21 31,111,12 31,10C,789 34,20,100,-25,-2 0,21,-1,0,0 19,10D,15 47,104,23 28,111,12 44,10C,769 36,10,7342320 0,D,12 0,A,-3382891 0,B,15122211 0,C,71 40,10D,10 34,20,100,-30,-6 0,21,-1,0,0 20,104,26 27,111,12 26,10,7342340 0,D,8 0,A,-3382890 0,B,15122210 0,C,71 40,10C,781 44,10D,10 43,20,97,-26,0 0,21,-1,-1,0 20,104,26 28,111,12 35,10C,796 43,10D,10 54,104,27 26,20,99,-40,-10 0,21,0,0,0 19,111,12 26,10C,781 47,10D,10 49,104,27 30,111,12 30,10C,753 32,20,96,-30,-1 0,21,-1,0,0 20,10D,6 37,10,7342400 0,D,5 0,A,-3382890 0,B,15122209 0,C,71 41,104,29 30,111,12 34,10C,687 38,20,102,-25,-7 0,21,-1,0,0 19,10D,6 46,10,7342420 0,D,4 0,A,-3382890 0,B,15122209 0,C,71 40,104,29 27,111,12 30,10C,675 38,20,97,-28,-4 0,21,0,0,0 18,10D,6 44,104,29 30,111,11 30,10C,679 46,10D,6 37,20,100,-27,-1 0,21,0,0,0 19,104,29 21,10,7342460 0,D,2 0,A,-3382890 0,B,15122209 0,C,71 55,111,11 32,10C,675 45,10D,2 45,20,102,-26,-4 0,21,-1,0,0 20,104,29 29,111,11 30,10C,664 46,10D,2 45,104,28 27,111,11 22,20,101,-27,-4 0,21,-1,0,0 17,10,7342500 0,D,0 0,A,-3382890 0,B,15122208 0,C,71 66,10C,667 40,10D,2 48,104,28 30,111,11 30,20,102,-12,-4 0,21,-1,0,0 22,10C,652 43,10D,2 49,104,27 32,111,11 22,10,7342540 0,D,0 0,A,-3382890 0,B,15122208 0,C,71 42,10C,636 32,20,106,-13,-6 0,21,-1,0,0 19,10D,0 46,104,28 39,111,11 24,10,7342560 0,D,0 0,A,-3382890 0,B,15122209 0,C,71 40,10C,609 32,20,103,-16,-4 0,21,-1,0,0 23,10D,0 47,104,28 31,111,11 31,10C,617 36,10,7342580 0,D,0 0,A,-3382890 0,B,15122209 0,C,72 40,10D,0 48,20,102,-17,-5 0,21,-1,0,0 19,104,28 29,111,11 35,10C,621 34,10,7342600 0,D,0 0,A,-3382890 0,B,15122209 0,C,72 41,10D,0 43,20,102,-14,-4 0,21,-1,0,0 19,104,28 29,111,11 23,10,7342620 0,D,0 0,A,-3382890 0,B,15122209 0,C,72 41,10C,613 53,10D,0 37,20,102,-14,-7 0,21,-1,0,0 19,104,28 26,111,16 24,10,7342640 0,D,0 0,A,-3382890 0,B,15122209 0,C,72 41,10C,609 40,10D,0 46,104,94 20,20,104,-13,-3 0,21,-1,0,0 19,111,27 32,10C,875 43,10D,0 46,104,80 30,111,19 32,10C,1578 34,20,102,0,-7 0,21,-1,0,-4 20,10D,0 45,104,54 30,111,16 30,10C,1750 45,10D,0 36,20,109,12,-1 0,21,-2,0,0 21,104,41 28,111,16 29,10C,1558 42,10D,0 48,104,34 34,111,15 22,20,103,-7,-12 0,21,-1,0,0 15,10,7342720 0,D,2 0,A,-3382890 0,B,15122208 0,C,72 68,10C,1339 60,10D,0 45,104,35 22,20,102,-10,0 0,21,-2,0,0 20,111,15 28,10C,1117 46,10D,2 48,104,36 28,10,7342760 0,D,4 0,A,-3382890 0,B,15122208 0,C,72 40,111,13 19,20,107,-7,0 0,21,-2,0,0 19,10C,1082 44,10D,2 52,104,32 34,111,14 31,10C,1019 34,20,101,-18,-3 0,21,-2,0,0 20,10D,2 43,104,40 32,111,15 30,10C,976 35,10,7342800 0,D,4 0,A,-3382890 0,B,15122207 0,C,72 41,10D,2 35,20,104,-12,4 0,21,-2,0,0 19,104,40 28,111,15 31,10C,1046 36,10,7342820 0,D,5 0,A,-3382889 0,B,15122207 0,C,72 41,10D,4 43,104,40 39,20,101,-18,-14 0,21,-3,0,0 20,111,15 31,10C,1089 35,10,7342840 0,D,5 0,A,-3382889 0,B,15122207 0,C,72 40,10D,4 43,104,42 30,111,16 21,20,100,-14,-14 0,21,-3,0,0 19,10C,1113 41,10D,4 46,104,49 29,111,18 30,10C,1226 38,20,103,-13,-14 0,21,-4,0,0 20,10D,4 36,10,7342880 0,D,5 0,A,-3382889 0,B,15122206 0,C,72 41,104,50 31,111,17 34,10C,1375 39,20,108,-5,-6 0,21,-5,1,0 18,10D,5 44,104,46 34,111,17 30,10C,1433 46,10D,5 37,20,107,-2,-9 0,21,-6,0,0 20,104,45 30,10,7342920 0,D,6 0,A,-3382889 0,B,15122206 0,C,72 46,111,17 32,10C,1480 55,10D,5 36,20,105,-9,-15 0,21,-7,1,0 21,104,49 31,111,19 30,10C,1558 55,10D,5 44,104,54 21,20,103,-13,-10 0,21,-8,0,0 21,111,20 32,10C,1664 43,10D,7 45,104,55 28,111,21 30,10C,1722 34,20,89,-21,-25 0,21,-10,0,1 20,10,7342980 0,D,8 0,A,-3382888 0,B,15122205 0,C,72 64,10D,7 43,104,61 28,111,21 23,10,7343000 0,D,9 0,A,-3382887 0,B,15122204 0,C,72 42,10C,1851 32,20,93,-19,-28 0,21,-13,3,1 20,10D,7 42,104,60 32,111,21 31,10C,1890 44,10D,7 37,20,99,-8,-15 0,21,-14,1,0 19,104,60 40,111,21 29,10C,1917 47,10D,11 49,104,57 21,20,96,-5,-21 0,21,-14,3,1 21,111,21 28,10C,1933 44,10D,11 40,10,7343060 0,D,13 0,A,-3382886 0,B,15122203 0,C,72 40,104,56 27,20,95,-23,-18 0,21,-14,2,0 21,111,21 26,10C,1921 45,10D,11 44,10,7343080 0,D,14 0,A,-3382885 0,B,15122203 0,C,72 40,104,56 24,20,121,5,-60 0,21,-15,0,3 20,111,21 37,10C,1937 46,10D,11 38,10,7343100 0,D,15 0,A,-3382885 0,B,15122202 0,C,72 41,104,55 19,20,98,-6,-26 0,21,-15,3,-4 20,111,21 31,10C,1929 46,10D,16 38,10,7343120 0,D,16 0,A,-3382884 0,B,15122202 0,C,72 41,104,54 27,20,98,-8,-17 0,21,-15,2,0 20,111,20 40,10C,1929 43,10D,16 51,104,53 30,111,20 21,20,79,-32,-33 0,21,-13,1,2 20,10C,1917 44,10D,16 50,104,52 22,10,7343160 0,D,16 0,A,-3382882 0,B,15122202 0,C,72 45,111,20 20,20,111,-6,-14 0,21,-12,3,0 19,10C,1882 44,10D,20 55,104,52 33,111,19 30,10C,1828 35,20,90,-25,-29 0,21,-10,1,3 19,10D,20 45,104,43 31,111,15 31,10C,1781 43,10D,20 37,20,98,-21,-21 0,21,-10,0,1 20,104,33 29,111,15 31,10C,1601 44,10D,20 46,104,28 29,111,14 30,20,112,-15,-25 0,21,-10,0,0 20,10C,1472 42,10D,20 49,104,26 33,111,14 30,10C,1425 34,20,101,-31,-30 0,21,-9,1,0 19,10D,23 37,10,7343260 0,D,23 0,A,-3382877 0,B,15122202 0,C,72 41,104,24 28,111,13 34,10C,1355 42,10D,23 37,20,84,-44,-15 0,21,-7,1,3 34,104,22 29,111,12 30,10C,1289 46,10D,23 48,104,20 21,20,89,-56,-11 0,21,-4,0,0 17,10,7343300 0,D,23 0,A,-3382874 0,B,15122203 0,C,72 66,111,12 43,10C,1187 41,10D,22 38,20,70,-66,-26 0,21,-3,0,0 21,104,20 27,111,12 34,10C,1136 43,10D,22 54,104,18 22,20,93,-59,-3 0,21,-2,1,0 15,10,7343340 0,D,21 0,A,-3382872 0,B,15122204 0,C,72 68,111,12 32,10C,1031 45,10D,22 43,20,95,-52,-13 0,21,-2,0,0 20,104,20 31,111,11 30,10C,992 46,10D,22 49,104,18 21,10,7343380 0,D,17 0,A,-3382871 0,B,15122204 0,C,72 40,111,11 24,20,98,-27,-8 0,21,-2,0,0 20,10C,957 43,10D,18 44,104,18 24,10,7343400 0,D,15 0,A,-3382870 0,B,15122204 0,C,72 41,111,11 32,10C,925 33,20,96,-28,-14 0,21,-2,0,1 20,10D,18 46,104,18 31,111,15 30,10C,882 42,10D,18 38,20,105,-26,-11 0,21,-3,0,0 20,104,32 39,111,16 30,10C,992 46,10D,18 51,104,40 30,20,103,-27,-12 0,21,-2,0,0 20,111,17 30,10C,1425 36,10,7343460 0,D,16 0,A,-3382868 0,B,15122205 0,C,72 40,10D,16 47,104,45 27,20,109,-8,-10 0,21,-3,1,-1 18,111,20 30,10C,1777 36,10,7343480 0,D,15 0,A,-3382867 0,B,15122206 0,C,72 45,10D,16 44,104,67 29,111,23 21,20,96,-20,-7 0,21,-2,0,0 19,10C,1941 41,10D,16 50,104,66 29,111,23 30,10C,2089 34,20,101,-6,-8 0,21,-1,0,0 19,10D,16 48,10,7343520 0,D,16 0,A,-3382865 0,B,15122206 0,C,72 39,104,62 28,111,22 34,10C,2175 34,20,104,2,-6 0,21,-1,1,-1 19,10D,18 46,10,7343540 0,D,18 0,A,-3382865 0,B,15122207 0,C,72 41,104,56 27,111,20 31,10C,2074 37,20,108,-16,-6 0,21,0,0,0 19,10D,18 37,10,7343560 0,D,20 0,A,-3382864 0,B,15122207 0,C,72 41,104,50 31,111,20 30,10C,1957 42,20,106,-10,-5 0,21,-1,0,0 24,10D,18 37,10,7343580 0,D,21 0,A,-3382863 0,B,15122208 0,C,72 39,104,51 32,111,20 30,10C,1890 39,20,99,-8,-9 0,21,0,1,-2 18,10D,22 44,104,52 30,111,20 30,10C,1867 43,10D,22 37,20,100,-14,-9 0,21,0,1,0 19,104,51 29,111,20 33,10C,1816 42,10D,22 47,104,50 28,111,19 21,20,103,-14,0 0,21,0,0,0 20,10C,1753 51,10D,22 49,104,47 45,111,14 31,10C,1644 34,20,105,-9,2 0,21,1,1,0 17,10,7343660 0,D,27 0,A,-3382858 0,B,15122210 0,C,72 66,10D,22 47,104,26 46,111,12 22,10,7343680 0,D,28 0,A,-3382856 0,B,15122210 0,C,72 44,10C,1457 32,20,124,-10,-6 0,21,0,0,0 20,10D,26 43,104,20 32,111,12 23,10,7343700 0,D,28 0,A,-3382855 0,B,15122211 0,C,72 41,10C,1363 41,20,99,-26,0 0,21,1,0,0 21,10D,26 43,104,18 31,111,12 24,10,7343720 0,D,29 0,A,-3382854 0,B,15122211 0,C,72 41,10C,1269 41,20,101,-18,-12 0,21,0,0,0 19,10D,26 43,104,16 32,111,12 24,10,7343740 0,D,29 0,A,-3382852 0,B,15122211 0,C,72 41,10C,1222 41,20,102,-30,-1 0,21,0,0,0 19,10D,29 44,104,16 32,111,11 22,10,7343760 0,D,30 0,A,-3382851 0,B,15122212 0,C,72 46,10C,1175 37,20,109,-14,-3 0,21,0,0,-2 21,10D,29 43,104,15 27,111,11 24,10,7343780 0,D,30 0,A,-3382849 0,B,15122212 0,C,72 41,10C,1117 45,10D,29 37,20,104,-21,-7 0,21,-1,0,0 19,104,16 30,111,12 31,10C,1035 43,10D,29 46,104,17 29,111,11 22,20,101,-20,-4 0,21,-1,0,0 19,10C,1027 41,10D,30 60,104,16 29,111,11 30,10C,996 34,20,94,-26,0 0,21,-1,0,0 19,10D,30 45,104,16 34,111,11 39,10C,972 45,10D,30 37,20,97,-27,-5 0,21,-1,0,0 22,104,16 31,111,11 33,10C,941 47,10D,30 53,104,16 22,20,99,-24,-8 0,21,-1,0,0 20,111,11 33,10C,921 46,10D,30 49,104,17 29,111,11 27,20,100,-23,-15 0,21,-2,0,-1 15,10,7343900 0,D,31 0,A,-3382840 0,B,15122215 0,C,72 68,10C,910 40,10D,30 45,104,17 32,111,11 22,20,101,-24,-7 0,21,-2,1,1 16,10,7343920 0,D,31 0,A,-3382839 0,B,15122215 0,C,72 67,10C,902 44,10D,30 44,104,17 24,10,7343940 0,D,31 0,A,-3382837 0,B,15122216 0,C,72 39,111,11 20,20,96,-26,-2 0,21,-1,0,3 19,10C,917 55,10D,31 44,104,17 22,10,7343960 0,D,32 0,A,-3382836 0,B,15122216 0,C,72 42,111,11 19,20,100,-24,-4 0,21,-2,-1,2 20,10C,921 45,10D,31 48,104,17 23,10,7343980 0,D,32 0,A,-3382834 0,B,15122217 0,C,72 42,111,11 23,20,121,-16,-14 0,21,-1,0,0 20,10C,914 41,10D,31 44,104,17 31,111,11 30,10C,914 34,20,95,-21,-7 0,21,-2,-1,-3 19,10D,31 48,104,17 31,111,11 31,10C,921 34,10,7344020 0,D,32 0,A,-3382831 0,B,15122218 0,C,72 41,10D,32 35,20,105,-32,-12 0,21,-1,0,1 20,104,17 41,111,11 27,10,7344040 0,D,32 0,A,-3382829 0,B,15122218 0,C,72 41,10C,921 40,10D,32 50,20,88,-42,-6 0,21,-1,0,-1 19,104,17 39,111,11 23,10,7344060 0,D,32 0,A,-3382828 0,B,15122219 0,C,72 45,10C,921 40,10D,32 38,20,96,-58,1 0,21,-1,0,1 19,104,17 29,111,11 23,10,7344080 0,D,32 0,A,-3382826 0,B,15122219 0,C,72 42,10C,921 44,10D,32 45,104,17 22,20,102,-33,-6 0,21,-1,0,0 18,111,11 25,10,7344100 0,D,32 0,A,-3382825 0,B,15122220 0,C,72 53,10C,914 40,10D,32 46,104,17 22,20,112,-29,-10 0,21,-1,0,1 18,111,11 33,10C,894 43,10D,32 46,104,18 30,111,11 28,10C,894 33,20,107,-32,4 0,21,-1,0,0 22,10D,32 44,104,17 33,111,11 34,10C,886 45,10D,32 46,20,91,-38,-8 0,21,-1,0,0 21,104,17 27,111,11 34,10C,890 46,10D,31 45,104,18 23,10,7344180 0,D,30 0,A,-3382819 0,B,15122222 0,C,72 40,111,11 19,20,98,-37,-6 0,21,-1,0,2 20,10C,886 53,10D,31 45,104,20 23,10,7344200 0,D,30 0,A,-3382817 0,B,15122222 0,C,72 39,111,11 20,20,93,-43,-11 0,21,0,0,0 19,10C,878 44,10D,31 49,104,20 23,10,7344220 0,D,29 0,A,-3382816 0,B,15122223 0,C,72 41,111,11 24,20,88,-46,-12 0,21,-1,0,0 20,10C,878 52,10D,29 44,104,20 23,10,7344240 0,D,28 0,A,-3382814 0,B,15122223 0,C,72 41,111,11 23,20,96,-40,-8 0,21,-1,0,1 21,10C,863 43,10D,29 49,104,20 32,10,7344260 0,D,28 0,A,-3382813 0,B,15122223 0,C,72 41,111,11 18,20,95,-41,-5 0,21,-1,0,0 21,10C,851 40,10D,29 48,104,20 22,10,7344280 0,D,27 0,A,-3382812 0,B,15122224 0,C,72 40,111,11 28,10C,851 34,20,83,-42,-2 0,21,-1,0,0 20,10D,29 45,104,20 31,111,11 31,10C,843 46,10D,26 37,20,107,-42,1 0,21,0,0,0 20,104,20 26,111,11 30,10C,835 34,10,7344320 0,D,25 0,A,-3382809 0,B,15122225 0,C,72 40,10D,26 48,104,20 21,20,113,-21,-4 0,21,0,-1,-2 20,111,11 26,10C,832 36,10,7344340 0,D,24 0,A,-3382808 0,B,15122225 0,C,72 44,10D,26 44,104,20 33,111,11 21,20,103,-38,0 0,21,0,0,0 18,10C,832 34,10,7344360 0,D,23 0,A,-3382807 0,B,15122225 0,C,72 45,10D,26 57,104,20 28,111,11 22,20,115,-27,-8 0,21,1,0,0 19,10C,816 33,10,7344380 0,D,22 0,A,-3382806 0,B,15122226 0,C,72 44,10D,23 48,104,20 29,111,11 28,20,97,-22,7 0,21,1,0,-2 19,10C,824 34,10,7344400 0,D,22 0,A,-3382804 0,B,15122226 0,C,72 44,10D,23 47,104,20 44,111,11 20,20,101,-27,4 0,21,1,-1,2 22,10C,832 52,10D,23 46,104,20 30,111,11 28,10C,835 34,20,103,-28,-4 0,21,0,-1,0 25,10D,23 48,104,20 29,111,11 29,10C,855 45,10D,21 38,20,104,-22,0 0,21,0,-1,-1 21,104,20 27,111,11 30,10C,855 55,10D,21 47,104,20 22,20,91,-27,1 0,21,0,0,0 16,10,7344480 0,D,21 0,A,-3382800 0,B,15122227 0,C,72 67,111,11 28,10C,847 45,10D,21 46,20,89,-32,0 0,21,1,-1,-1 21,104,25 28,111,14 30,10C,890 46,10D,21 47,104,29 30,111,14 22,20,105,-26,-3 0,21,1,0,0 20,10C,1082 44,10D,21 50,104,27 27,111,14 35,10C,1253 34,20,88,-39,2 0,21,1,0,0 21,10D,21 48,104,26 29,111,14 41,10C,1257 43,10D,21 38,20,150,13,-5 0,21,1,0,-3 24,104,25 41,111,12 37,10C,1308 47,10D,21 51,104,20 20,20,95,-30,-10 0,21,2,1,0 21,111,11 27,10C,1261 45,10D,22 51,104,16 29,111,12 30,10C,1195 34,20,118,-11,3 0,21,1,0,0 19,10D,22 46,104,15 23,10,7344620 0,D,23 0,A,-3382792 0,B,15122227 0,C,72 42,111,11 32,10C,1160 38,20,99,-17,-6 0,21,1,1,0 20,10D,22 45,104,15 24,10,7344640 0,D,23 0,A,-3382791 0,B,15122227 0,C,72 39,111,11 32,10C,1085 43,20,96,-27,-11 0,21,0,0,0 20,10D,22 41,104,16 30,111,11 31,10C,1031 46,10D,22 47,20,107,-24,-21 0,21,-4,1,0 24,104,17 30,111,12 22,10,7344680 0,D,23 0,A,-3382789 0,B,15122227 0,C,72 41,10C,992 44,10D,22 42,20,90,-38,-37 0,21,-7,2,-1 18,104,18 30,111,12 24,10,7344700 0,D,22 0,A,-3382788 0,B,15122227 0,C,72 41,10C,972 40,10D,22 46,104,20 20,20,96,-30,-48 0,21,-11,0,0 20,111,11 24,10,7344720 0,D,22 0,A,-3382786 0,B,15122227 0,C,72 53,10C,976 40,10D,22 46,104,20 21,20,89,-27,-38 0,21,-14,2,3 19,111,11 32,10C,964 43,10D,22 46,104,20 30,111,11 32,10C,941 33,20,90,-36,-53 0,21,-17,3,2 22,10D,22 43,104,20 69,111,11 54,10C,949 34,20,88,-32,-42 0,21,-16,1,0 17,10,7344780 0,D,21 0,A,-3382783 0,B,15122228 0,C,72 67,10D,22 43,104,18 31,111,11 30,10C,945 34,20,110,-20,-13 0,21,-12,2,0 21,10D,22 43,104,17 30,111,11 33,10C,949 43,10D,22 37,20,96,-21,-13 0,21,-7,2,0 20,104,17 28,111,11 30,10C,937 45,10D,22 47,104,20 32,111,14 22,20,105,-37,-12 0,21,-5,0,0 19,10C,929 44,10D,22 44,104,29 31,111,15 31,10C,1054 35,20,100,-26,0 0,21,-1,1,0 19,10D,22 43,104,35 41,111,16 31,10C,1320 43,10D,23 38,20,115,-23,7 0,21,2,1,0 19,104,40 32,111,18 36,10C,1453 43,10D,23 50,104,50 31,20,103,-12,3 0,21,4,-2,-1 19,111,20 39,10C,1628 43,10D,23 47,104,58 30,111,20 25,20,113,-9,16 0,21,5,-2,-1 20,10C,1796 44,10D,23 46,104,55 24,10,7344940 0,D,21 0,A,-3382776 0,B,15122235 0,C,63 41,111,20 27,20,92,-18,14 0,21,5,0,0 20,10C,1867 43,10D,25 50,104,53 23,10,7344960 0,D,21 0,A,-3382774 0,B,15122235 0,C,63 40,111,20 25,20,113,-3,3 0,21,5,-1,-3 19,10C,1875 40,10D,25 56,104,53 29,111,20 34,10C,1875 34,20,98,-22,-5 0,21,4,0,-2 20,10D,25 42,104,52 31,111,20 30,10C,1886 51,10D,25 37,20,99,-18,8 0,21,3,-2,0 19,104,52 30,111,20 35,10C,1882 43,10D,27 46,104,52 30,111,20 20,20,97,-15,0 0,21,2,0,1 20,10C,1882 40,10D,27 52,104,52 32,111,20 30,10C,1878 34,20,106,-14,10 0,21,1,-2,1 19,10D,27 45,104,52 34,111,20 33,10C,1835 43,10D,27 37,20,129,2,-1 0,21,0,0,-2 19,104,54 42,111,20 33,10C,1789 47,10D,29 48,104,49 22,20,96,-17,0 0,21,0,-1,-1 20,111,15 28,10C,1726 47,10D,29 49,104,33 55,111,14 22,20,102,-20,-17 0,21,-1,0,0 20,10C,1574 41,10D,29 45,104,27 30,111,14 32,10C,1433 34,20,101,-24,-6 0,21,-1,0,0 19,10D,29 47,104,25 34,111,14 30,10C,1363 45,10D,31 37,20,102,-18,-11 0,21,-1,0,-2 20,104,24 28,111,14 30,10C,1332 46,10D,31 48,104,30 23,10,7345180 0,D,33 0,A,-3382758 0,B,15122241 0,C,63 41,111,17 28,20,99,-19,-8 0,21,-1,0,-1 20,10C,1414 44,10D,31 49,104,40 22,10,7345200 0,D,33 0,A,-3382756 0,B,15122242 0,C,63 41,111,17 24,20,89,-24,-6 0,21,-1,0,-1 19,10C,1531 45,10D,31 48,104,41 23,10,7345220 0,D,33 0,A,-3382755 0,B,15122242 0,C,63 40,111,17 27,10C,1609 34,20,99,-21,-6 0,21,-1,0,0 24,10D,33 43,104,40 29,111,17 31,10C,1609 55,10D,33 47,20,94,-29,-7 0,21,-1,-1,-1 20,104,40 27,111,17 22,10,7345260 0,D,34 0,A,-3382751 0,B,15122243 0,C,63 40,10C,1609 45,10D,33 49,104,37 21,20,113,-16,-14 0,21,-1,0,0 19,111,14 21,10,7345280 0,D,34 0,A,-3382750 0,B,15122244 0,C,63 56,10C,1597 53,10D,33 48,104,27 22,20,95,-28,-12 0,21,0,0,-1 20,111,14 29,10C,1421 46,10D,34 49,104,24 33,111,13 26,20,90,-33,-7 0,21,-1,0,0 16,10,7345320 0,D,35 0,A,-3382746 0,B,15122245 0,C,63 67,10C,1324 45,10D,34 48,104,21 25,20,106,-19,-14 0,21,-1,0,0 21,111,12 28,10C,1296 43,10D,34 47,104,20 31,111,12 34,10C,1261 34,20,103,-14,-20 0,21,-1,-1,-1 16,10,7345360 0,D,36 0,A,-3382743 0,B,15122246 0,C,63 67,10D,34 43,104,16 29,111,12 30,10C,1195 34,20,102,-24,-6 0,21,-1,0,1 21,10D,34 57,104,15 29,111,11 31,10C,1167 36,10,7345400 0,D,36 0,A,-3382739 0,B,15122247 0,C,63 41,10D,34 36,20,95,-27,-8 0,21,-1,0,-1 19,104,14 31,111,12 32,10C,1097 43,10D,34 46,104,15 30,111,12 21,20,109,-12,-7 0,21,-1,0,0 20,10C,1039 42,10D,35 47,104,16 29,111,11 32,10C,1027 34,20,101,-19,-12 0,21,-1,0,0 20,10D,35 46,104,15 23,10,7345460 0,D,36 0,A,-3382734 0,B,15122249 0,C,63 40,111,11 31,10C,992 43,10D,35 49,20,94,-23,-14 0,21,-1,0,0 19,104,16 28,111,11 30,10C,964 56,10D,35 57,104,16 22,20,101,-19,-15 0,21,-1,0,1 20,111,11 29,10C,949 46,10D,36 49,104,16 29,111,11 28,20,94,-37,-17 0,21,-1,1,0 18,10,7345520 0,D,36 0,A,-3382729 0,B,15122251 0,C,63 65,10C,945 41,10D,36 49,104,16 29,111,11 21,20,77,-30,-28 0,21,-1,-2,-1 16,10,7345540 0,D,36 0,A,-3382727 0,B,15122252 0,C,63 68,10C,921 40,10D,36 44,104,17 30,111,11 22,20,107,-16,-14 0,21,-1,-1,-1 20,10C,937 44,10D,36 46,104,17 28,111,11 31,10,7345580 0,D,36 0,A,-3382723 0,B,15122253 0,C,63 40,10C,929 32,20,71,-42,-11 0,21,-1,-1,-2 20,10D,36 43,104,17 41,111,11 31,10C,917 43,10D,36 46,20,80,-40,-3 0,21,-1,0,0 19,104,17 31,111,11 29,10C,917 56,10D,36 49,104,17 22,20,103,-31,-4 0,21,-1,-1,-1 19,111,11 31,10C,917 42,10D,36 38,10,7345640 0,D,35 0,A,-3382718 0,B,15122255 0,C,63 40,104,17 27,111,11 22,20,86,-46,0 0,21,0,-1,1 23,10C,906 39,10D,35 39,10,7345660 0,D,35 0,A,-3382716 0,B,15122256 0,C,63 41,104,17 31,111,11 29,10C,906 34,20,96,-36,-14 0,21,-1,0,0 20,10D,35 44,104,17 34,111,11 29,10C,898 46,10D,35 36,20,107,-23,-10 0,21,-1,0,0 21,104,17 37,111,11 29,10C,906 46,10D,35 48,104,17 22,20,111,-36,-11 0,21,0,0,0 18,111,11 22,10,7345720 0,D,33 0,A,-3382712 0,B,15122257 0,C,63 55,10C,886 41,10D,33 49,104,18 21,20,122,-7,-17 0,21,-1,0,-2 20,111,11 20,10,7345740 0,D,31 0,A,-3382710 0,B,15122258 0,C,63 56,10C,867 44,10D,33 48,104,20 21,20,56,-59,-16 0,21,-1,-1,3 20,111,11 28,10C,859 46,10D,33 46,104,20 29,111,11 31,10C,855 34,20,98,-42,-8 0,21,-1,0,0 21,10D,33 44,104,20 29,111,11 30,10C,851 40,10D,30 37,20,77,-55,-12 0,21,-1,0,-1 21,104,20 37,111,11 33,10C,855 42,10D,30 46,104,20 21,20,107,-38,-10 0,21,-1,0,-2 15,10,7345820 0,D,28 0,A,-3382704 0,B,15122260 0,C,63 68,111,11 32,10C,847 53,10D,30 38,20,113,-33,-6 0,21,0,0,0 17,10,7345840 0,D,27 0,A,-3382703 0,B,15122260 0,C,63 66,104,20 28,111,11 32,10C,839 43,10D,26 47,20,100,-38,-12 0,21,-1,0,0 24,104,20 29,111,11 33,10C,824 45,10D,26 38,10,7345880 0,D,25 0,A,-3382701 0,B,15122261 0,C,63 41,104,20 18,20,107,-43,-11 0,21,0,1,0 21,111,11 30,10C,820 44,10D,26 51,104,20 29,111,11 31,20,98,-49,0 0,21,0,-1,0 19,10C,808 40,10D,26 46,104,20 21,10,7345920 0,D,22 0,A,-3382698 0,B,15122262 0,C,63 41,111,11 28,10C,792 33,20,102,-37,-9 0,21,1,1,0 21,10D,22 45,104,21 22,10,7345940 0,D,21 0,A,-3382697 0,B,15122262 0,C,63 41,111,11 28,10C,800 46,10D,22 37,20,100,-53,-10 0,21,0,-1,0 19,104,21 38,111,11 38,10C,789 46,10D,22 48,104,21 22,20,99,-35,-11 0,21,0,0,0 19,111,11 29,10,7345980 0,D,18 0,A,-3382695 0,B,15122262 0,C,63 48,10C,808 44,10D,22 49,104,21 21,20,94,-42,-11 0,21,1,-1,0 20,111,11 29,10C,792 46,10D,18 54,104,21 29,111,11 25,20,98,-33,-5 0,21,1,-1,0 20,10C,804 32,10,7350020 0,D,16 0,A,-3382694 0,B,15122263 0,C,63 45,10D,18 44,104,21 29,111,11 31,10C,800 34,20,92,-41,-8 0,21,1,-1,0 17,10,7350040 0,D,16 0,A,-3382693 0,B,15122263 0,C,63 66,10D,18 47,104,21 32,111,11 31,10C,796 33,20,100,-40,-9 0,21,1,0,0 41,10D,18 78,104,21 31,111,11 21,10,7350080 0,D,14 0,A,-3382691 0,B,15122263 0,C,63 41,10C,804 32,20,100,-34,-8 0,21,0,0,0 20,10D,15 47,104,21 31,111,11 23,10,7350100 0,D,13 0,A,-3382690 0,B,15122263 0,C,63 41,10C,792 40,20,98,-26,0 0,21,0,0,-1 20,10D,15 53,104,21 28,111,11 23,10,7350120 0,D,13 0,A,-3382690 0,B,15122263 0,C,63 41,10C,808 36,20,103,-26,-3 0,21,1,0,0 20,10D,15 46,104,26 30,111,13 22,10,7350140 0,D,13 0,A,-3382689 0,B,15122263 0,C,63 40,10C,824 44,10D,13 38,20,100,-26,-5 0,21,1,0,0 24,104,31 25,111,14 24,10,7350160 0,D,13 0,A,-3382688 0,B,15122263 0,C,63 42,10C,1027 40,10D,13 46,104,33 21,20,100,-26,-8 0,21,1,0,0 19,111,16 24,10,7350180 0,D,14 0,A,-3382688 0,B,15122263 0,C,63 53,10C,1339 45,10D,13 49,104,38 20,20,101,-19,-8 0,21,0,0,0 19,111,17 33,10C,1480 44,10D,13 49,104,40 33,111,16 42,20,108,-25,-8 0,21,0,-1,0 22,10C,1535 41,10D,13 46,104,33 30,111,15 29,10C,1523 34,20,114,-14,-9 0,21,1,-1,0 21,10D,13 55,104,27 30,111,13 29,10C,1429 46,10D,13 37,20,107,-16,-5 0,21,0,0,0 21,104,24 33,111,12 29,10C,1332 46,10D,13 48,104,21 27,20,100,-15,8 0,21,0,0,-2 22,111,12 27,10C,1296 46,10D,15 49,104,20 35,111,12 22,20,102,-26,7 0,21,1,0,0 17,10,7350300 0,D,17 0,A,-3382683 0,B,15122263 0,C,63 67,10C,1257 44,10D,15 44,104,20 39,20,99,-24,-12 0,21,0,2,0 21,111,13 31,10C,1257 43,10D,15 45,104,21 33,111,13 22,10,7350340 0,D,17 0,A,-3382681 0,B,15122263 0,C,63 41,10C,1277 32,20,93,-28,-19 0,21,-3,0,-2 20,10D,15 53,104,21 28,111,13 23,10,7350360 0,D,17 0,A,-3382680 0,B,15122263 0,C,63 41,10C,1285 37,20,96,-21,-23 0,21,-4,3,0 23,10D,17 47,104,21 32,111,13 24,10,7350380 0,D,17 0,A,-3382679 0,B,15122263 0,C,63 40,10C,1281 36,20,93,-27,-22 0,21,-6,4,0 21,10D,17 46,104,22 32,111,13 23,10,7350400 0,D,18 0,A,-3382678 0,B,15122263 0,C,63 40,10C,1281 38,20,95,-31,-20 0,21,-9,1,1 20,10D,17 43,104,23 31,111,16 33,10,7350420 0,D,18 0,A,-3382677 0,B,15122263 0,C,63 40,10C,1296 33,20,108,-24,-17 0,21,-10,2,0 19,10D,18 43,104,31 32,111,15 35,10C,1402 36,10,7350440 0,D,18 0,A,-3382676 0,B,15122263 0,C,59 41,10D,18 34,20,113,-18,-18 0,21,-11,1,-1 24,104,31 27,111,15 33,10C,1445 44,10D,18 50,104,31 26,20,100,-22,-33 0,21,-12,1,-1 20,111,15 28,10C,1441 44,10D,18 47,104,31 29,111,15 30,10C,1441 34,20,91,-22,-27 0,21,-12,1,1 19,10D,19 45,104,31 30,111,15 34,10C,1437 42,10D,19 38,20,84,-20,-19 0,21,-10,2,-1 19,104,31 38,111,15 30,10C,1437 46,10D,19 49,104,31 21,20,77,-23,-6 0,21,-8,1,1 21,111,15 19,10,7350540 0,D,21 0,A,-3382672 0,B,15122266 0,C,59 56,10C,1437 44,10D,19 49,104,31 20,20,94,-16,-5 0,21,-4,0,3 22,111,16 27,10C,1445 52,10D,21 49,104,31 45,111,17 21,20,103,-19,7 0,21,-2,-1,0 21,10C,1449 44,10D,21 50,104,40 29,111,19 31,10C,1539 35,20,102,-4,2 0,21,0,-1,0 21,10D,21 57,104,49 30,111,19 29,10C,1722 47,10D,21 47,20,107,-8,-3 0,21,0,-1,-1 15,10,7350620 0,D,25 0,A,-3382668 0,B,15122269 0,C,59 68,104,51 30,111,20 28,10C,1816 48,10D,24 37,20,98,-11,13 0,21,1,-3,-3 20,104,52 31,111,20 30,10C,1746 45,10D,24 39,10,7350660 0,D,27 0,A,-3382665 0,B,15122270 0,C,59 40,104,54 27,20,118,-11,12 0,21,1,-3,-1 21,111,16 26,10C,1675 47,10D,24 43,10,7350680 0,D,29 0,A,-3382664 0,B,15122271 0,C,59 40,104,38 23,20,116,-9,6 0,21,1,-3,-1 21,111,14 26,10C,1636 47,10D,24 37,10,7350700 0,D,30 0,A,-3382663 0,B,15122272 0,C,59 41,104,28 28,20,92,-26,-5 0,21,2,0,-5 20,111,14 31,10C,1503 52,10D,28 55,104,24 30,111,13 22,20,111,-22,1 0,21,2,0,-1 20,10C,1433 43,10D,28 46,104,21 34,111,13 30,10C,1386 34,20,94,-23,-6 0,21,2,0,-1 20,10D,28 45,104,27 31,111,17 30,10C,1386 43,10D,28 37,20,87,-42,1 0,21,0,0,-1 20,104,36 30,111,19 26,10,7350780 0,D,32 0,A,-3382657 0,B,15122274 0,C,59 45,10C,1582 45,10D,31 37,20,100,-24,3 0,21,0,0,2 20,104,40 25,111,13 31,10C,1617 35,10,7350800 0,D,33 0,A,-3382655 0,B,15122275 0,C,59 40,10D,31 44,104,24 21,20,94,-27,-2 0,21,0,0,-1 20,111,13 30,10C,1453 35,10,7350820 0,D,33 0,A,-3382653 0,B,15122276 0,C,59 41,10D,31 52,104,20 22,20,105,-19,-11 0,21,0,-1,0 19,111,14 31,10C,1367 35,10,7350840 0,D,33 0,A,-3382652 0,B,15122276 0,C,59 41,10D,31 43,104,30 30,111,17 21,20,113,-16,-13 0,21,0,0,0 18,10C,1449 42,10D,33 50,104,36 29,111,17 34,10C,1683 34,20,110,-13,-8 0,21,0,0,0 20,10D,33 36,10,7350880 0,D,34 0,A,-3382649 0,B,15122277 0,C,59 41,104,38 31,111,17 34,10C,1648 39,20,109,-20,-17 0,21,0,0,1 18,10D,33 37,10,7350900 0,D,34 0,A,-3382647 0,B,15122278 0,C,59 41,104,32 32,111,14 32,10C,1597 42,20,96,-24,-9 0,21,0,0,1 20,10D,34 37,10,7350920 0,D,35 0,A,-3382645 0,B,15122278 0,C,59 41,104,26 36,111,14 30,10C,1578 38,20,77,-35,-12 0,21,0,0,0 19,10D,34 49,10,7350940 0,D,35 0,A,-3382643 0,B,15122279 0,C,59 41,104,23 27,111,13 33,10C,1542 34,20,93,-29,-10 0,21,0,0,0 24,10D,34 45,104,20 30,111,14 30,10C,1492 46,10D,34 47,20,81,-35,-6 0,21,-1,0,0 20,104,21 32,111,13 30,10C,1472 42,10D,35 46,104,20 30,111,12 21,20,105,-22,-16 0,21,-1,0,0 16,10,7351000 0,D,36 0,A,-3382638 0,B,15122281 0,C,59 67,10C,1437 40,10D,35 55,104,16 22,10,7351020 0,D,36 0,A,-3382636 0,B,15122281 0,C,59 40,111,12 19,20,91,-27,-1 0,21,-1,0,0 21,10C,1355 49,10D,35 45,104,14 21,10,7351040 0,D,37 0,A,-3382635 0,B,15122282 0,C,59 41,111,11 24,20,118,-16,-10 0,21,-1,0,0 20,10C,1281 49,10D,35 45,104,13 21,10,7351060 0,D,37 0,A,-3382633 0,B,15122282 0,C,59 41,111,12 24,20,110,-15,-11 0,21,-1,0,0 20,10C,1195 44,10D,36 44,104,14 23,10,7351080 0,D,37 0,A,-3382631 0,B,15122283 0,C,59 42,111,11 28,20,103,-24,-20 0,21,-1,0,0 20,10C,1164 41,10D,36 48,104,13 22,10,7351100 0,D,38 0,A,-3382629 0,B,15122284 0,C,59 42,111,11 27,20,101,-18,-16 0,21,-1,0,0 21,10C,1105 40,10D,36 48,104,15 23,10,7351120 0,D,38 0,A,-3382627 0,B,15122284 0,C,59 40,111,11 28,20,93,-28,-13 0,21,-1,0,0 20,10C,1066 52,10D,37 48,10,7351140 0,D,38 0,A,-3382625 0,B,15122285 0,C,59 40,104,15 32,111,11 21,20,99,-23,-11 0,21,-1,1,-1 20,10C,1046 44,10D,37 46,104,14 34,111,11 30,10C,1039 35,20,126,-3,-10 0,21,0,0,0 19,10D,37 46,104,15 30,111,11 22,10,7351180 0,D,39 0,A,-3382621 0,B,15122286 0,C,59 40,10C,1003 41,10D,37 37,20,89,-33,-19 0,21,-1,1,0 20,104,15 29,111,11 31,10C,996 43,10D,38 46,104,15 30,111,11 20,20,88,-39,-11 0,21,-1,0,0 20,10C,996 41,10D,38 50,104,15 34,111,11 42,10C,996 33,20,97,-36,-5 0,21,-1,0,0 21,10D,38 36,10,7351240 0,D,40 0,A,-3382616 0,B,15122288 0,C,59 44,104,15 28,111,11 30,10C,988 41,20,96,-26,-6 0,21,-1,0,0 21,10D,38 34,10,7351260 0,D,40 0,A,-3382614 0,B,15122289 0,C,59 41,104,16 28,111,11 30,10C,988 45,10D,39 38,20,88,-28,-12 0,21,-1,-1,0 20,104,15 28,111,11 29,10C,976 47,10D,39 48,104,15 29,111,11 22,20,101,-30,-15 0,21,-1,-1,0 21,10C,996 53,10D,39 45,104,15 28,111,11 30,10C,968 35,20,98,-28,-12 0,21,-1,0,-2 20,10D,39 47,104,16 39,111,11 32,10C,980 36,10,7351340 0,D,40 0,A,-3382606 0,B,15122291 0,C,59 40,10D,40 50,20,97,-26,-6 0,21,-1,-1,-1 21,104,16 26,111,11 32,10C,988 44,10,7351360 0,D,41 0,A,-3382604 0,B,15122292 0,C,59 41,10D,40 40,20,101,-26,-16 0,21,-1,0,0 19,104,16 30,111,11 34,10C,980 34,10,7351380 0,D,41 0,A,-3382602 0,B,15122292 0,C,59 41,10D,40 44,104,16 21,20,99,-24,-8 0,21,0,0,-2 20,111,11 32,10C,984 36,10,7351400 0,D,41 0,A,-3382600 0,B,15122293 0,C,59 41,10D,40 47,104,16 26,20,104,-21,-12 0,21,-1,0,0 19,111,11 30,10C,980 36,10,7351420 0,D,41 0,A,-3382598 0,B,15122294 0,C,59 40,10D,40 47,104,16 31,20,98,-25,-10 0,21,-1,0,-1 18,111,11 37,10C,980 35,10,7351440 0,D,42 0,A,-3382595 0,B,15122294 0,C,59 40,10D,40 44,104,16 30,20,116,-12,-5 0,21,0,0,-1 20,111,11 32,10C,972 33,10,7351460 0,D,42 0,A,-3382593 0,B,15122295 0,C,59 41,10D,40 43,104,16 30,111,11 20,20,95,-34,-9 0,21,0,0,0 20,10C,980 33,10,7351480 0,D,42 0,A,-3382591 0,B,15122295 0,C,59 45,10D,41 43,104,16 29,111,11 29,10C,976 34,20,104,-26,-6 0,21,-1,0,-1 20,10D,41 49,104,16 29,111,11 30,10C,960 45,10D,41 37,20,105,-30,-14 0,21,-1,0,0 20,104,16 36,111,11 34,10C,949 46,10D,41 48,104,16 30,20,104,-23,-10 0,21,-1,0,0 17,10,7351540 0,D,42 0,A,-3382585 0,B,15122297 0,C,59 67,111,11 31,10C,949 45,10D,42 42,20,104,-24,-16 0,21,-1,0,0 20,104,16 32,111,11 30,10C,949 45,10D,42 49,104,16 21,10,7351580 0,D,42 0,A,-3382581 0,B,15122298 0,C,59 41,111,11 19,20,93,-31,-14 0,21,-2,0,-1 20,10C,925 44,10D,42 48,104,16 23,10,7351600 0,D,42 0,A,-3382579 0,B,15122299 0,C,59 40,111,11 27,10C,917 34,20,96,-25,-4 0,21,-1,0,0 21,10D,42 45,104,17 30,111,11 31,10C,914 46,10D,42 42,20,98,-24,-14 0,21,-1,-1,0 20,104,17 25,111,11 31,10C,910 52,10D,42 49,104,17 27,20,95,-31,-6 0,21,-1,0,-1 18,111,11 30,10C,914 43,10D,42 46,104,17 30,111,11 34,20,97,-31,-3 0,21,0,0,0 19,10C,910 43,10D,42 38,10,7351680 0,D,42 0,A,-3382570 0,B,15122302 0,C,59 41,104,17 31,111,11 29,10C,886 34,20,91,-34,-9 0,21,0,0,0 20,10D,42 37,10,7351700 0,D,42 0,A,-3382568 0,B,15122302 0,C,59 39,104,17 28,111,11 34,10C,890 41,10D,42 56,20,116,-26,-10 0,21,-1,-1,1 22,104,18 27,111,11 33,10C,914 42,10D,42 46,104,18 26,10,7351740 0,D,41 0,A,-3382564 0,B,15122303 0,C,59 41,111,11 28,20,101,-39,-5 0,21,0,0,0 20,10C,886 40,10D,42 46,104,18 20,10,7351760 0,D,41 0,A,-3382562 0,B,15122304 0,C,59 41,111,11 28,10C,875 34,20,99,-25,-5 0,21,0,0,0 20,10D,40 45,104,20 23,10,7351780 0,D,40 0,A,-3382560 0,B,15122305 0,C,59 41,111,11 27,10C,878 46,10D,40 37,20,116,-23,-23 0,21,-1,0,0 20,104,20 28,111,11 34,10C,878 42,10D,40 76,20,104,-35,-9 0,21,-1,0,0 19,104,20 33,111,11 31,10C,882 42,10D,40 46,104,20 29,111,11 20,20,99,-29,-8 0,21,0,-1,0 25,10C,886 42,10D,37 49,104,18 39,111,11 32,10C,890 33,20,97,-44,-20 0,21,-1,0,0 22,10D,37 43,104,20 30,111,11 33,10C,882 41,10D,37 37,20,98,-41,-13 0,21,0,0,0 22,104,20 27,111,11 30,10C,859 45,10D,37 45,104,20 31,111,11 21,20,103,-34,-13 0,21,0,-1,0 21,10C,863 43,10D,34 50,104,20 28,111,11 33,10C,867 34,20,98,-38,1 0,21,0,0,0 16,10,7351920 0,D,33 0,A,-3382548 0,B,15122308 0,C,59 67,10D,34 47,104,20 30,111,11 22,10,7351940 0,D,32 0,A,-3382546 0,B,15122308 0,C,59 39,10C,871 32,20,105,-29,-8 0,21,0,0,0 25,10D,34 55,104,20 27,10,7351960 0,D,31 0,A,-3382545 0,B,15122309 0,C,59 41,111,11 27,10C,843 34,20,81,-55,-15 0,21,0,0,0 21,10D,34 46,104,20 29,111,11 22,10,7351980 0,D,30 0,A,-3382543 0,B,15122309 0,C,59 41,10C,847 44,10D,30 37,20,88,-42,3 0,21,1,0,0 19,104,20 26,111,11 30,10C,839 47,10D,30 50,104,20 29,111,11 21,20,102,-38,0 0,21,2,0,2 19,10C,843 41,10D,30 49,104,20 42,111,11 34,10C,820 34,20,102,-34,10 0,21,2,0,0 21,10D,30 34,10,7352040 0,D,26 0,A,-3382539 0,B,15122310 0,C,59 41,104,20 29,111,11 30,10C,816 55,20,98,-47,5 0,21,3,0,1 19,10D,26 45,104,20 30,111,11 30,10C,804 45,10D,26 49,20,95,-49,2 0,21,3,-1,1 21,104,21 31,111,11 30,10C,800 46,10D,26 47,104,21 27,20,99,-42,8 0,21,3,0,-1 21,111,11 28,10C,812 46,10D,26 48,104,21 32,111,11 23,10,7352120 0,D,19 0,A,-3382535 0,B,15122310 0,C,59 41,10C,820 32,20,94,-40,5 0,21,3,0,0 21,10D,21 46,104,21 31,111,11 31,10C,816 43,10D,21 38,20,104,-37,4 0,21,4,-1,0 20,104,21 27,111,11 41,10C,812 52,10D,21 46,104,21 22,20,94,-35,5 0,21,4,-1,0 19,111,11 31,10C,796 45,10D,21 43,10,7352180 0,D,15 0,A,-3382532 0,B,15122310 0,C,59 40,104,22 24,20,100,-35,-3 0,21,5,0,0 20,111,13 27,10C,789 45,10D,16 39,10,7352200 0,D,15 0,A,-3382531 0,B,15122310 0,C,59 40,104,25 31,111,12 21,20,108,-27,9 0,21,6,-1,0 20,10C,851 42,10D,16 39,10,7352220 0,D,15 0,A,-3382531 0,B,15122309 0,C,59 41,104,25 31,111,12 27,20,103,-28,15 0,21,6,-1,0 19,10C,890 38,10D,16 47,104,23 30,111,14 29,10C,925 38,20,105,-28,6 0,21,7,0,-1 20,10D,16 53,104,31 22,10,7352260 0,D,14 0,A,-3382529 0,B,15122309 0,C,59 40,111,16 32,10C,1117 34,20,92,-28,13 0,21,7,0,0 19,10D,14 47,104,38 22,10,7352280 0,D,14 0,A,-3382529 0,B,15122308 0,C,59 41,111,17 28,10C,1390 42,10D,14 37,20,104,-15,6 0,21,7,-3,0 19,104,41 29,111,17 33,10C,1531 43,10D,14 50,104,40 28,111,17 22,20,111,-13,30 0,21,8,0,1 20,10C,1539 41,10D,14 50,104,40 30,111,17 29,10C,1535 34,20,111,-24,31 0,21,9,-2,0 20,10D,14 45,104,40 30,111,17 33,10C,1531 43,10D,14 45,20,100,-25,16 0,21,10,-5,-1 21,104,38 28,111,17 29,10C,1539 47,10D,14 58,104,38 20,20,104,-13,12 0,21,10,-2,-2 22,10,7352380 0,D,16 0,A,-3382526 0,B,15122305 0,C,59 62,111,17 32,10C,1535 50,10D,14 37,20,107,-15,14 0,21,10,-3,0 22,104,40 27,111,18 30,10C,1542 46,10D,15 48,104,42 27,20,95,-27,6 0,21,9,-4,1 20,111,17 28,10C,1585 46,10D,15 59,104,41 30,111,18 21,20,101,-19,14 0,21,9,-2,0 16,10,7352440 0,D,18 0,A,-3382524 0,B,15122302 0,C,59 67,10C,1593 41,10D,15 44,104,45 35,20,106,-18,3 0,21,7,-3,0 21,111,18 31,10C,1636 43,10D,17 45,104,49 31,111,20 23,10,7352480 0,D,19 0,A,-3382523 0,B,15122300 0,C,59 42,10C,1699 37,20,94,-14,-2 0,21,4,-3,0 19,10D,17 43,104,53 28,111,20 31,10C,1695 47,10D,17 38,20,104,-4,3 0,21,3,0,-1 19,104,54 32,111,20 41,10C,1675 36,10,7352520 0,D,19 0,A,-3382523 0,B,15122298 0,C,59 41,10D,17 34,20,101,-16,5 0,21,2,-2,0 21,104,56 26,111,20 32,10C,1640 43,10D,19 50,104,60 30,111,20 21,20,101,-12,4 0,21,2,-2,0 20,10C,1621 39,10D,19 46,104,60 39,111,20 30,10C,1585 33,20,100,-5,-5 0,21,1,-1,0 21,10D,19 46,104,61 23,10,7352580 0,D,21 0,A,-3382522 0,B,15122294 0,C,59 39,111,20 28,10C,1531 43,20,102,-10,-2 0,21,1,-3,1 24,10D,19 43,104,62 22,10,7352600 0,D,22 0,A,-3382521 0,B,15122293 0,C,59 40,111,20 28,10C,1464 43,20,108,-11,-9 0,21,0,-1,0 19,10D,21 42,104,63 23,10,7352620 0,D,23 0,A,-3382521 0,B,15122292 0,C,59 41,111,20 27,10C,1367 43,10D,21 37,20,95,-28,-13 0,21,0,0,-1 20,104,66 28,111,20 30,10C,1296 47,10D,21 49,104,68 26,20,114,3,-11 0,21,-1,0,-1 18,111,20 32,10C,1265 44,10D,21 54,104,68 30,111,20 22,20,95,-16,-2 0,21,0,0,0 18,10C,1257 41,10D,21 39,10,7352680 0,D,23 0,A,-3382520 0,B,15122287 0,C,52 45,104,68 32,111,20 25,20,112,-6,-4 0,21,0,0,1 19,10C,1261 41,10D,24 39,10,7352700 0,D,23 0,A,-3382520 0,B,15122286 0,C,52 41,104,68 27,111,20 33,10C,1277 34,20,112,-3,-4 0,21,0,0,0 20,10D,24 45,104,66 30,111,20 30,10C,1289 62,10D,24 38,20,103,-18,-2 0,21,0,0,0 21,104,65 27,111,19 33,10C,1289 43,10D,27 44,104,61 23,10,7352760 0,D,28 0,A,-3382519 0,B,15122281 0,C,52 42,111,17 18,20,97,-19,-12 0,21,-1,-1,-1 20,10C,1253 54,10D,27 48,104,51 22,10,7352780 0,D,28 0,A,-3382519 0,B,15122279 0,C,52 40,111,16 20,20,99,-14,-9 0,21,0,0,0 23,10C,1199 45,10D,27 60,104,47 21,10,7352800 0,D,29 0,A,-3382518 0,B,15122278 0,C,52 41,111,16 20,20,96,-19,-3 0,21,0,0,-1 19,10C,1199 44,10D,27 44,104,44 24,10,7352820 0,D,29 0,A,-3382518 0,B,15122276 0,C,52 40,111,16 27,10C,1242 35,20,95,-25,-11 0,21,-1,0,0 20,10D,28 46,104,42 29,111,16 35,10C,1285 46,10D,28 37,20,100,-23,-6 0,21,0,0,1 21,104,40 32,111,16 34,10C,1324 44,10D,28 45,104,40 40,20,93,-18,-13 0,21,-1,0,0 20,111,16 31,10C,1312 35,10,7352880 0,D,29 0,A,-3382517 0,B,15122271 0,C,52 44,10D,28 44,104,40 26,20,104,-16,-15 0,21,-1,0,-1 18,111,16 31,10C,1292 36,10,7352900 0,D,30 0,A,-3382517 0,B,15122269 0,C,52 40,10D,29 43,104,40 30,111,16 21,20,108,-9,-15 0,21,0,0,0 18,10C,1285 41,10D,29 46,104,40 30,111,16 30,10C,1289 39,20,103,-17,0 0,21,0,0,0 18,10D,29 44,104,40 30,111,16 30,10C,1277 46,10D,29 37,20,115,-11,-8 0,21,0,0,0 20,104,40 31,111,16 29,10C,1277 48,10D,30 49,104,40 29,20,89,-25,-15 0,21,-1,0,-1 22,111,16 28,10C,1261 46,10D,30 50,104,36 29,111,14 28,20,111,-11,-8 0,21,-2,0,-1 25,10C,1238 42,10D,30 45,104,31 29,111,13 30,10C,1253 34,20,105,-23,-21 0,21,-2,0,0 20,10D,30 44,104,27 34,111,13 33,10C,1253 46,10D,30 37,20,98,-25,-14 0,21,-2,0,0 20,104,23 32,111,12 30,10C,1238 46,10D,30 48,104,20 27,20,100,-27,-10 0,21,-2,0,0 20,111,12 28,10C,1214 51,10D,30 49,104,17 42,111,11 34,20,93,-25,-21 0,21,-2,0,0 15,10,7353080 0,D,31 0,A,-3382514 0,B,15122252 0,C,52 68,10C,1214 40,10D,30 46,104,15 21,10,7353100 0,D,30 0,A,-3382514 0,B,15122251 0,C,52 40,111,11 20,20,101,-23,-11 0,21,-2,0,0 23,10C,1218 41,10D,30 45,104,13 23,10,7353120 0,D,30 0,A,-3382514 0,B,15122249 0,C,52 40,111,11 28,10C,1183 33,20,104,-26,-7 0,21,-1,0,0 21,10D,30 45,104,13 31,111,11 30,10C,1179 43,10D,30 47,20,102,-24,-12 0,21,-1,0,0 20,104,13 30,111,11 30,10C,1175 43,10D,30 46,104,13 30,111,11 21,20,93,-32,-10 0,21,-1,0,0 19,10C,1183 51,10D,29 49,104,12 30,111,11 30,10C,1203 34,20,105,-20,-4 0,21,0,0,0 19,10D,29 48,104,12 33,111,13 30,10C,1203 47,10D,29 45,20,105,-24,-10 0,21,0,0,0 20,104,18 28,111,13 30,10C,1218 46,10D,29 53,104,20 24,20,93,-30,-3 0,21,0,0,0 21,111,13 33,10C,1222 42,10D,29 46,104,21 28,111,13 32,10C,1210 35,20,96,-22,-12 0,21,0,0,0 16,10,7353260 0,D,28 0,A,-3382511 0,B,15122237 0,C,52 67,10D,28 46,104,21 32,111,13 40,10C,1207 34,20,104,-17,-1 0,21,0,-1,0 20,10D,28 43,104,22 30,111,13 30,10C,1207 44,10D,28 37,20,97,-23,0 0,21,0,0,0 20,104,22 32,111,13 32,10C,1199 45,10D,28 46,104,23 26,20,98,-23,0 0,21,1,0,0 21,111,14 26,10C,1214 46,10D,28 46,104,26 22,10,7353340 0,D,28 0,A,-3382510 0,B,15122230 0,C,52 44,111,14 29,20,105,-21,0 0,21,1,-1,0 19,10C,1218 40,10D,28 46,104,27 21,10,7353360 0,D,28 0,A,-3382510 0,B,15122228 0,C,52 41,111,14 32,10C,1222 34,20,107,-20,5 0,21,2,-1,0 20,10D,28 47,104,28 31,10,7353380 0,D,28 0,A,-3382510 0,B,15122227 0,C,52 40,111,14 28,10C,1222 34,20,97,-19,1 0,21,3,0,-1 20,10D,28 46,104,29 23,10,7353400 0,D,28 0,A,-3382510 0,B,15122225 0,C,52 40,111,14 27,10C,1238 43,10D,28 46,20,109,-20,6 0,21,3,-1,-1 20,104,29 32,111,14 29,10C,1246 43,10D,28 45,104,32 33,20,93,-29,-4 0,21,4,-1,0 25,111,15 20,10,7353440 0,D,28 0,A,-3382510 0,B,15122222 0,C,52 52,10C,1285 41,10D,28 50,104,32 21,20,112,-20,4 0,21,4,0,0 21,111,15 28,10C,1296 46,10D,28 50,104,35 33,111,16 22,20,102,-23,1 0,21,4,-2,0 20,10C,1300 54,10D,28 51,104,38 29,111,16 28,10C,1328 35,20,105,-20,6 0,21,4,-1,0 20,10D,28 56,104,38 29,111,17 30,10C,1328 45,10D,28 38,20,97,-23,1 0,21,4,-1,0 20,104,41 28,111,17 30,10C,1339 47,10D,28 49,104,43 22,10,7353540 0,D,28 0,A,-3382510 0,B,15122213 0,C,52 40,111,17 19,20,113,-14,1 0,21,3,-1,0 20,10C,1308 49,10D,28 49,104,47 22,10,7353560 0,D,29 0,A,-3382511 0,B,15122211 0,C,52 40,111,17 20,20,108,-15,0 0,21,2,0,0 19,10C,1253 54,10D,28 45,104,49 22,10,7353580 0,D,29 0,A,-3382511 0,B,15122210 0,C,52 41,111,17 28,20,90,-21,-1 0,21,2,0,0 20,10C,1246 44,10D,28 49,104,50 22,10,7353600 0,D,29 0,A,-3382512 0,B,15122208 0,C,52 41,111,17 27,10C,1246 34,20,108,-15,6 0,21,2,0,0 21,10D,28 45,104,51 23,10,7353620 0,D,29 0,A,-3382512 0,B,15122206 0,C,52 42,111,17 31,10C,1230 39,20,110,-9,-8 0,21,1,0,0 20,10D,28 49,104,52 24,10,7353640 0,D,29 0,A,-3382512 0,B,15122205 0,C,52 41,111,18 32,10C,1226 34,20,91,-27,0 0,21,2,-1,0 20,10D,28 46,104,54 34,111,18 23,10,7353660 0,D,29 0,A,-3382513 0,B,15122203 0,C,52 41,10C,1230 37,20,106,-12,3 0,21,3,-1,-1 20,10D,29 42,104,54 30,111,17 31,10C,1230 46,10D,29 47,20,111,-13,-1 0,21,1,0,-1 20,104,54 25,111,18 31,10C,1226 48,10D,29 49,104,53 27,20,114,-7,-9 0,21,1,0,-1 18,111,17 30,10C,1242 44,10D,29 49,104,53 30,111,17 31,10C,1246 33,20,110,-14,-6 0,21,0,0,0 20,10D,29 37,10,7353740 0,D,30 0,A,-3382515 0,B,15122196 0,C,52 44,104,52 32,111,18 33,10C,1261 43,20,99,-15,-11 0,21,-1,0,1 21,10D,30 47,104,52 34,111,18 29,10C,1273 46,10D,30 37,20,108,-8,-19 0,21,-1,0,1 22,104,52 32,111,17 33,10C,1277 47,10D,30 67,104,51 22,20,104,-18,-8 0,21,-2,0,-1 19,111,18 32,10C,1269 42,10D,30 46,104,51 32,111,17 23,10,7353820 0,D,31 0,A,-3382518 0,B,15122189 0,C,52 41,10C,1273 32,20,112,-4,-16 0,21,-3,-1,4 20,10D,30 47,104,50 31,111,17 35,10C,1257 44,10D,30 37,20,100,-27,-10 0,21,-3,2,0 20,104,51 28,111,17 36,10C,1242 43,10D,30 56,104,51 22,20,104,-25,-9 0,21,-4,-1,-3 20,111,17 27,10C,1257 46,10D,30 38,10,7353880 0,D,32 0,A,-3382520 0,B,15122184 0,C,52 41,104,51 30,111,15 22,20,82,-29,-24 0,21,-3,0,3 19,10C,1257 51,10D,31 37,10,7353900 0,D,32 0,A,-3382521 0,B,15122182 0,C,52 40,104,41 32,111,14 21,20,91,-32,-18 0,21,-4,0,0 20,10C,1226 42,10D,31 39,10,7353920 0,D,32 0,A,-3382521 0,B,15122180 0,C,52 41,104,33 31,111,13 31,20,104,-18,-26 0,21,-2,0,-2 20,10C,1226 44,10D,31 38,10,7353940 0,D,32 0,A,-3382522 0,B,15122178 0,C,52 44,104,27 27,111,12 27,20,106,-12,-11 0,21,-2,1,1 19,10C,1207 39,10D,32 39,10,7353960 0,D,32 0,A,-3382522 0,B,15122176 0,C,52 41,104,22 31,111,12 30,10C,1203 33,20,142,12,-1 0,21,-2,2,0 20,10D,32 45,104,18 30,111,11 33,10C,1222 42,10D,32 37,20,74,-39,3 0,21,0,0,0 20,104,15 31,10,7354000 0,D,32 0,A,-3382523 0,B,15122173 0,C,52 47,111,11 26,10C,1203 43,10D,32 37,20,92,-27,-8 0,21,0,0,2 21,104,13 27,111,11 34,10C,1175 43,10D,31 45,104,13 29,111,11 21,20,97,-22,4 0,21,0,-2,-3 21,10C,1164 45,10D,31 54,104,15 29,111,14 31,10C,1148 35,20,105,-26,-14 0,21,-1,0,-2 21,10D,31 44,104,23 30,111,16 29,10C,1257 45,10D,31 37,20,109,-15,-17 0,21,-1,0,-1 22,104,35 30,111,17 31,10C,1324 54,10D,31 45,104,43 30,20,91,-24,-12 0,21,0,1,0 18,10,7354100 0,D,30 0,A,-3382526 0,B,15122164 0,C,52 66,111,17 27,10C,1316 46,10D,30 46,20,114,-7,-11 0,21,-1,0,-3 20,104,47 28,111,17 30,10C,1257 46,10D,30 49,104,49 21,10,7354140 0,D,30 0,A,-3382526 0,B,15122160 0,C,52 40,111,17 20,20,98,-20,-11 0,21,0,0,0 19,10C,1242 54,10D,30 46,10,7354160 0,D,30 0,A,-3382527 0,B,15122159 0,C,52 41,104,46 27,111,16 22,20,96,-20,-7 0,21,-3,0,0 19,10C,1238 44,10D,30 45,104,43 23,10,7354180 0,D,30 0,A,-3382527 0,B,15122157 0,C,52 40,111,16 27,10C,1242 34,20,95,-21,-16 0,21,-3,1,0 21,10D,30 45,104,43 23,10,7354200 0,D,30 0,A,-3382528 0,B,15122155 0,C,52 41,111,16 37,10C,1234 35,20,101,-18,-14 0,21,-4,1,1 19,10D,30 46,104,42 23,10,7354220 0,D,30 0,A,-3382528 0,B,15122153 0,C,52 42,111,16 31,10C,1234 39,20,100,-15,-12 0,21,-5,1,0 20,10D,30 54,104,42 26,10,7354240 0,D,30 0,A,-3382529 0,B,15122151 0,C,52 41,111,16 28,10C,1253 33,20,77,-25,-19 0,21,-5,0,0 20,10D,30 46,104,41 22,10,7354260 0,D,31 0,A,-3382529 0,B,15122150 0,C,52 41,111,16 28,10C,1273 43,20,100,-23,-22 0,21,-5,0,1 19,10D,30 42,104,41 23,10,7354280 0,D,31 0,A,-3382529 0,B,15122148 0,C,52 42,111,16 31,10C,1296 43,10D,30 37,20,100,-21,-21 0,21,-5,0,0 20,104,40 38,111,16 22,10,7354300 0,D,31 0,A,-3382530 0,B,15122146 0,C,53 41,10C,1308 54,10D,31 36,20,99,-19,-14 0,21,-5,1,0 21,104,40 28,111,16 34,10C,1304 47,10D,31 49,104,40 24,20,95,-27,-14 0,21,-4,0,0 21,111,16 19,10,7354340 0,D,32 0,A,-3382530 0,B,15122142 0,C,53 55,10C,1292 46,10D,31 48,104,40 21,20,98,-23,-1 0,21,-4,0,0 21,111,16 28,10C,1273 46,10D,31 51,104,40 28,111,16 29,20,98,-23,-17 0,21,-4,0,0 16,10,7354380 0,D,32 0,A,-3382530 0,B,15122138 0,C,53 67,10C,1265 45,10D,32 48,104,41 26,20,113,-15,-11 0,21,-3,0,0 20,111,16 28,10C,1257 47,10D,32 54,104,41 29,111,16 26,20,77,-35,-21 0,21,-3,0,0 17,10,7354420 0,D,33 0,A,-3382530 0,B,15122134 0,C,53 70,10C,1257 41,10D,32 46,104,41 26,20,100,-23,-14 0,21,-3,0,0 15,10,7354440 0,D,33 0,A,-3382530 0,B,15122132 0,C,53 68,111,16 32,10C,1261 45,10D,33 43,20,71,-34,-15 0,21,-3,0,0 15,10,7354460 0,D,34 0,A,-3382530 0,B,15122130 0,C,53 68,104,41 27,111,16 41,10C,1257 47,10D,33 37,20,107,-16,-20 0,21,-2,0,0 16,10,7354480 0,D,34 0,A,-3382530 0,B,15122128 0,C,53 67,104,41 28,111,16 31,10C,1261 44,10D,33 37,20,102,-17,-9 0,21,-1,0,0 17,10,7354500 0,D,34 0,A,-3382530 0,B,15122126 0,C,52 67,104,41 40,111,16 34,10C,1261 44,20,90,-24,-9 0,21,-1,1,0 21,10D,34 43,104,41 33,111,16 27,10C,1261 44,10D,34 38,20,89,-32,-1 0,21,-1,0,-1 20,104,41 31,111,16 45,10C,1265 39,10,7354560 0,D,35 0,A,-3382530 0,B,15122119 0,C,52 41,10D,34 35,20,111,-13,-8 0,21,-1,-1,0 21,104,41 27,111,16 30,10C,1261 46,10D,34 37,10,7354580 0,D,36 0,A,-3382530 0,B,15122117 0,C,52 41,104,42 19,20,109,-17,-15 0,21,-1,-1,0 21,111,17 31,10C,1269 45,10D,35 38,10,7354600 0,D,36 0,A,-3382530 0,B,15122115 0,C,52 40,104,45 28,20,113,-24,-18 0,21,-1,-1,0 21,111,17 34,10C,1269 53,10D,35 46,104,52 29,111,19 22,20,77,-33,-22 0,21,0,3,-4 20,10C,1265 43,10D,35 59,104,60 29,111,19 34,10C,1289 34,20,119,-16,-18 0,21,-1,0,0 20,10D,35 46,104,64 23,10,7354660 0,D,37 0,A,-3382530 0,B,15122108 0,C,52 40,111,20 32,10C,1285 39,20,108,-18,-14 0,21,-1,-2,0 20,10D,36 42,104,66 23,10,7354680 0,D,37 0,A,-3382530 0,B,15122106 0,C,52 41,111,20 27,10C,1292 46,10D,36 47,20,106,-21,-12 0,21,-2,0,0 20,104,65 28,111,20 23,10,7354700 0,D,37 0,A,-3382530 0,B,15122104 0,C,52 40,10C,1296 41,10D,36 49,104,65 31,20,110,-12,-7 0,21,-1,0,0 20,111,20 31,10C,1300 43,10D,36 46,104,65 29,111,20 30,10,7354740 0,D,38 0,A,-3382530 0,B,15122099 0,C,52 41,10C,1296 31,20,121,-2,-26 0,21,-2,0,-2 21,10D,37 44,104,63 27,111,19 30,10C,1308 35,10,7354760 0,D,38 0,A,-3382530 0,B,15122097 0,C,52 41,10D,37 35,20,112,-18,-17 0,21,-2,0,0 20,104,52 31,111,15 32,10C,1273 35,10,7354780 0,D,38 0,A,-3382530 0,B,15122095 0,C,52 41,10D,37 43,20,112,-21,-25 0,21,-4,0,-2 21,104,40 27,111,14 31,10C,1257 44,10D,38 45,104,35 30,111,14 62,20,88,-24,-21 0,21,-4,3,0 19,10C,1226 50,10D,38 50,104,29 38,111,13 30,10C,1195 34,20,117,-23,-9 0,21,-3,3,0 20,10D,38 48,104,26 34,111,12 30,10C,1187 45,10D,38 37,20,87,-16,-23 0,21,-3,4,-2 21,104,23 31,111,12 30,10C,1175 47,10D,36 48,104,20 26,20,101,-27,-14 0,21,-3,5,1 21,111,12 28,10C,1160 47,10D,36 49,104,16 28,111,11 30,10C,1214 34,20,97,-26,-2 0,21,-2,2,-4 21,10D,36 47,104,15 42,111,11 31,10C,1210 43,10D,36 47,20,89,-22,-14 0,21,-3,0,2 20,104,13 32,111,11 28,10C,1175 46,10D,36 38,10,7354940 0,D,34 0,A,-3382528 0,B,15122077 0,C,52 44,104,13 20,20,129,-4,-7 0,21,-3,0,5 20,111,11 27,10C,1171 46,10D,33 38,10,7354960 0,D,33 0,A,-3382528 0,B,15122075 0,C,52 41,104,13 31,111,11 21,20,100,-33,-11 0,21,-4,-2,-3 20,10C,1230 43,10D,33 38,10,7354980 0,D,32 0,A,-3382528 0,B,15122074 0,C,52 41,104,12 31,111,11 30,10C,1230 34,20,98,-32,-39 0,21,-5,0,-1 19,10D,33 87,104,12 30,111,11 29,10C,1226 35,20,98,-22,-16 0,21,-8,-3,3 20,10D,31 44,104,12 43,111,11 34,10C,1253 46,10D,31 37,20,119,-26,-31 0,21,-8,-1,0 20,104,12 24,10,7355040 0,D,30 0,A,-3382526 0,B,15122068 0,C,52 52,111,11 32,10C,1277 52,10D,31 37,20,103,-32,-41 0,21,-8,-1,2 20,104,16 28,111,15 34,10C,1277 42,10D,31 49,104,25 26,10,7355080 0,D,29 0,A,-3382525 0,B,15122065 0,C,52 41,111,15 19,20,86,-43,-36 0,21,-7,0,0 20,10C,1281 44,10D,29 49,104,30 30,111,14 22,10,7355100 0,D,29 0,A,-3382525 0,B,15122063 0,C,52 41,10C,1281 31,20,119,-9,-25 0,21,-7,1,-2 21,10D,29 46,104,29 30,111,13 22,10,7355120 0,D,29 0,A,-3382524 0,B,15122062 0,C,52 40,10C,1234 41,20,102,-24,-26 0,21,-7,1,0 25,10D,29 47,104,26 29,111,12 22,10,7355140 0,D,28 0,A,-3382523 0,B,15122060 0,C,52 41,10C,1214 37,20,87,-45,-32 0,21,-6,1,0 19,10D,29 47,104,23 29,111,12 22,10,7355160 0,D,28 0,A,-3382522 0,B,15122059 0,C,52 40,10C,1175 45,10D,27 37,20,101,-28,-12 0,21,-4,0,-2 20,104,20 36,111,12 22,10,7355180 0,D,27 0,A,-3382522 0,B,15122057 0,C,52 40,10C,1144 44,10D,27 38,20,107,-36,-1 0,21,-1,1,0 19,104,18 26,111,11 31,10C,1164 43,10D,27 46,104,15 29,111,11 22,20,101,-40,-11 0,21,-1,0,0 19,10C,1152 46,10D,27 38,10,7355220 0,D,27 0,A,-3382520 0,B,15122055 0,C,54 41,104,14 40,111,12 22,20,99,-35,-14 0,21,0,0,0 18,10C,1093 42,10D,24 39,10,7355240 0,D,27 0,A,-3382519 0,B,15122054 0,C,54 41,104,16 28,111,12 33,10C,976 32,20,103,-23,-2 0,21,0,0,0 21,10D,24 45,104,18 30,111,11 29,10C,964 45,10D,24 49,20,69,-52,-20 0,21,0,1,0 21,104,18 32,111,11 32,10C,933 47,10D,24 48,104,17 21,20,105,-37,-11 0,21,0,0,-3 17,10,7355300 0,D,20 0,A,-3382518 0,B,15122050 0,C,54 66,111,11 28,10C,882 45,10D,21 46,20,86,-29,4 0,21,0,0,-2 24,104,20 29,111,11 30,10C,875 54,10D,21 45,104,20 22,20,58,-54,11 0,21,0,0,7 15,10,7355340 0,D,19 0,A,-3382517 0,B,15122049 0,C,54 68,111,11 31,10C,824 45,10D,21 42,20,98,-30,8 0,21,0,0,5 21,104,20 31,111,11 29,10C,792 46,10D,18 54,10,7355380 0,D,18 0,A,-3382516 0,B,15122047 0,C,54 40,104,21 19,20,99,-23,-17 0,21,0,-2,1 20,111,11 31,10C,777 46,10D,18 46,10,7355400 0,D,17 0,A,-3382515 0,B,15122046 0,C,54 40,104,21 20,20,106,-25,-2 0,21,0,0,0 20,111,11 31,10C,785 42,10D,18 43,10,7355420 0,D,17 0,A,-3382515 0,B,15122045 0,C,54 44,104,23 25,20,102,-21,0 0,21,0,0,2 19,111,14 41,10C,785 54,10D,16 50,104,33 34,111,14 22,20,36,-73,-11 0,21,0,0,-1 19,10C,980 43,10D,16 46,104,36 22,10,7355460 0,D,16 0,A,-3382514 0,B,15122043 0,C,54 40,111,16 27,10C,1285 35,20,91,-26,-15 0,21,0,-1,0 20,10D,16 45,104,42 30,111,19 31,10C,1417 43,10D,16 37,20,83,-56,-10 0,21,0,0,1 19,104,53 30,111,21 27,10,7355500 0,D,16 0,A,-3382513 0,B,15122041 0,C,54 41,10C,1609 44,10D,16 42,20,104,-9,-9 0,21,0,0,0 19,104,61 26,111,21 30,10C,1910 39,10,7355520 0,D,16 0,A,-3382513 0,B,15122040 0,C,54 40,10D,16 51,20,109,2,-16 0,21,0,-1,-4 19,104,55 35,111,20 23,10,7355540 0,D,17 0,A,-3382513 0,B,15122039 0,C,54 41,10C,1960 41,10D,16 42,20,114,-11,-17 0,21,-1,0,0 20,104,53 28,111,20 31,10C,1921 47,10D,16 50,104,53 26,20,115,0,-16 0,21,-1,0,0 18,111,20 30,10C,1878 44,10D,18 45,104,54 30,111,20 30,10C,1867 33,20,104,-6,-5 0,21,-1,0,0 20,10D,18 48,104,54 30,111,20 29,10C,1832 43,10D,18 37,20,109,-4,-18 0,21,-1,1,-2 20,104,55 31,111,20 34,10C,1777 46,10D,18 54,104,56 29,20,102,-7,-10 0,21,-2,0,0 22,111,20 27,10C,1722 56,10D,18 46,104,57 32,111,20 20,20,94,-22,-18 0,21,-3,0,0 21,10C,1695 41,10D,21 50,104,56 29,111,20 33,10C,1640 34,20,109,2,-21 0,21,-4,1,-1 20,10D,21 44,104,54 30,111,18 30,10C,1566 46,10D,21 37,20,105,-13,-17 0,21,-4,1,1 20,104,43 31,111,14 30,10C,1484 47,10D,21 48,104,32 26,20,99,-20,-27 0,21,-4,0,0 16,10,7355720 0,D,24 0,A,-3382508 0,B,15122029 0,C,54 67,111,14 33,10C,1421 42,10D,23 56,20,108,-13,-28 0,21,-5,1,0 22,104,24 27,111,13 33,10C,1265 46,10D,23 47,104,23 21,10,7355760 0,D,23 0,A,-3382507 0,B,15122027 0,C,54 40,111,13 19,20,93,-29,-30 0,21,-6,1,0 20,10C,1234 45,10D,23 44,104,21 42,111,12 34,10C,1210 34,20,96,-32,-17 0,21,-7,2,0 20,10D,23 46,104,20 29,111,12 23,10,7355800 0,D,23 0,A,-3382505 0,B,15122025 0,C,54 41,10C,1167 41,10D,23 37,20,101,-24,-4 0,21,-6,2,0 21,104,16 28,111,11 31,10C,1109 43,10D,23 46,104,17 30,111,11 21,20,104,-23,-17 0,21,-6,2,0 20,10C,1035 50,10D,23 49,104,18 30,111,11 29,10C,996 34,20,98,-23,-16 0,21,-6,1,0 24,10D,23 58,104,17 34,111,11 30,10C,964 45,10D,22 37,20,91,-28,-12 0,21,-6,2,0 20,104,17 29,111,11 29,10C,933 42,10D,22 47,104,17 31,111,11 22,20,97,-22,-10 0,21,-6,2,0 16,10,7355900 0,D,22 0,A,-3382501 0,B,15122020 0,C,54 67,10C,878 40,10D,22 44,104,20 30,111,11 22,20,97,-29,-16 0,21,-5,2,0 20,10C,882 44,10D,22 50,104,20 28,111,11 39,10C,882 35,20,104,-31,-16 0,21,-6,1,1 20,10D,21 48,104,20 29,111,11 32,10C,878 43,10D,21 37,20,92,-27,-14 0,21,-6,1,0 20,104,20 28,111,11 30,10C,875 45,10D,21 50,104,20 27,20,104,-19,-2 0,21,-5,1,1 23,111,11 44,10C,871 45,10D,21 46,104,20 35,111,11 22,20,90,-21,-1 0,21,-5,0,0 19,10C,871 44,10D,20 48,104,20 27,10,7360020 0,D,21 0,A,-3382496 0,B,15122016 0,C,54 41,111,11 23,20,100,-26,1 0,21,-5,0,0 21,10C,878 43,10D,20 45,104,20 40,111,11 34,10C,886 33,20,95,-27,1 0,21,-3,0,0 20,10D,20 43,104,18 32,111,11 33,10C,886 37,10,7360060 0,D,21 0,A,-3382494 0,B,15122014 0,C,54 40,10D,20 35,20,101,-26,3 0,21,-2,0,0 19,104,20 30,111,11 31,10C,878 43,10D,21 60,104,20 21,20,105,-16,-2 0,21,-2,0,1 23,111,11 31,10C,878 36,10,7360100 0,D,22 0,A,-3382492 0,B,15122013 0,C,54 40,10D,21 44,104,20 30,111,11 20,20,102,-30,1 0,21,-2,0,1 19,10C,875 41,10D,21 56,104,20 34,111,11 29,10C,882 34,20,101,-24,-11 0,21,-2,0,-1 19,10D,21 57,104,20 29,111,11 30,10C,886 45,10D,22 37,20,111,-19,-8 0,21,-2,-1,0 22,104,18 27,111,11 30,10C,894 46,10D,22 49,104,18 28,111,11 21,20,108,-33,-14 0,21,-2,-1,0 18,10,7360180 0,D,24 0,A,-3382487 0,B,15122011 0,C,54 65,10C,886 41,10D,22 47,104,20 30,20,137,-7,-14 0,21,-3,0,1 22,111,12 35,10C,894 42,10D,22 45,104,21 32,111,12 27,20,116,-17,4 0,21,-2,0,-2 20,10C,937 40,10D,23 46,104,21 30,111,12 32,10C,968 34,20,103,-35,-5 0,21,-3,0,1 20,10D,23 52,104,21 30,111,11 34,10C,1011 41,10D,23 38,20,101,-29,-4 0,21,-3,0,0 16,10,7360260 0,D,26 0,A,-3382483 0,B,15122008 0,C,54 67,104,20 30,111,11 32,10C,1019 43,10D,23 38,20,111,-17,0 0,21,-1,-1,0 20,104,17 28,111,12 30,10C,980 45,10D,25 46,104,17 33,111,11 21,20,110,-11,-13 0,21,-2,0,-1 21,10C,976 44,10D,25 43,104,17 30,111,11 31,10C,957 34,20,96,-34,-7 0,21,-1,0,0 23,10D,25 49,104,17 45,111,11 21,10,7360340 0,D,28 0,A,-3382478 0,B,15122006 0,C,54 40,10C,945 41,20,106,-21,-1 0,21,-1,0,0 20,10D,25 47,104,17 29,111,11 22,10,7360360 0,D,28 0,A,-3382476 0,B,15122005 0,C,54 41,10C,933 44,10D,27 37,20,102,-26,-5 0,21,-1,0,0 19,104,17 26,111,11 23,10,7360380 0,D,28 0,A,-3382475 0,B,15122005 0,C,54 42,10C,917 43,10D,27 50,104,17 21,20,102,-25,-5 0,21,0,-1,-1 18,111,11 29,10C,917 47,10D,27 49,104,17 30,111,11 29,10C,917 32,20,93,-39,-7 0,21,0,-1,1 22,10D,27 51,104,17 30,111,11 29,10C,925 46,10D,28 47,20,93,-42,-10 0,21,0,0,1 20,104,17 28,111,11 39,10C,910 45,10D,28 46,104,17 21,10,7360460 0,D,28 0,A,-3382470 0,B,15122002 0,C,54 41,111,11 19,20,79,-45,-2 0,21,-1,0,0 20,10C,910 52,10D,28 46,104,17 22,10,7360480 0,D,27 0,A,-3382468 0,B,15122002 0,C,54 40,111,11 23,20,90,-44,2 0,21,-1,0,-1 21,10C,910 40,10D,28 48,104,17 23,10,7360500 0,D,27 0,A,-3382467 0,B,15122001 0,C,54 39,111,11 28,10C,906 34,20,81,-44,-15 0,21,-1,0,2 19,10D,27 46,104,17 31,111,11 31,10C,910 50,10D,27 45,20,100,-27,-9 0,21,0,2,-10 20,104,17 29,111,11 24,10,7360540 0,D,25 0,A,-3382465 0,B,15122000 0,C,54 41,10C,910 40,10D,27 47,20,112,-43,9 0,21,0,0,-10 19,104,17 29,111,11 24,10,7360560 0,D,24 0,A,-3382464 0,B,15121999 0,C,54 40,10C,929 40,10D,24 46,104,17 21,20,113,-9,9 0,21,0,1,7 19,111,11 32,10C,921 43,10D,24 49,104,17 30,111,11 29,20,116,-9,6 0,21,0,-1,-1 18,10C,925 45,10D,24 49,104,17 30,111,11 30,10C,937 34,20,98,-22,21 0,21,0,3,-2 18,10D,24 48,104,16 30,111,11 29,10C,953 47,10D,24 36,20,151,17,53 0,21,1,2,-3 33,104,16 28,111,11 33,10C,960 43,10D,23 54,104,16 20,20,74,-39,-10 0,21,-1,-1,0 22,111,11 28,10C,953 46,10D,23 50,104,16 28,111,11 29,20,162,-19,-23 0,21,-1,0,1 18,10,7360680 0,D,26 0,A,-3382457 0,B,15121995 0,C,54 65,10C,968 45,10D,23 57,104,16 22,20,69,-18,-9 0,21,-1,-1,-5 20,111,11 32,10C,980 42,10D,23 46,104,16 29,111,11 34,10C,980 33,20,108,-33,-22 0,21,-1,0,0 16,10,7360720 0,D,27 0,A,-3382454 0,B,15121994 0,C,54 67,10D,26 44,104,16 32,111,11 24,10,7360740 0,D,28 0,A,-3382453 0,B,15121993 0,C,54 44,10C,976 32,20,94,-18,-14 0,21,-2,0,0 20,10D,26 43,104,15 42,111,11 22,10,7360760 0,D,28 0,A,-3382452 0,B,15121993 0,C,54 40,10C,972 37,20,93,-29,-23 0,21,-2,0,0 20,10D,26 47,104,15 29,111,11 22,10,7360780 0,D,28 0,A,-3382450 0,B,15121992 0,C,54 41,10C,976 40,10D,28 37,20,86,-29,-3 0,21,-2,1,-2 19,104,16 30,111,11 31,10C,984 43,10D,28 56,104,16 22,20,95,-29,-1 0,21,-1,0,0 19,111,11 30,10C,976 43,10D,28 46,104,16 30,111,11 35,20,92,-32,0 0,21,-2,0,-1 20,10C,988 39,10D,28 38,10,7360840 0,D,30 0,A,-3382446 0,B,15121990 0,C,54 45,104,16 27,111,11 30,10C,992 34,20,86,-35,-3 0,21,-2,-1,0 19,10D,29 46,10,7360860 0,D,30 0,A,-3382445 0,B,15121989 0,C,54 41,104,15 31,111,11 34,10C,1007 34,20,106,-25,-13 0,21,-2,0,0 20,10D,29 36,10,7360880 0,D,31 0,A,-3382443 0,B,15121988 0,C,54 41,104,15 40,111,11 30,10C,1007 33,20,94,-29,-18 0,21,-2,0,0 21,10D,29 36,10,7360900 0,D,31 0,A,-3382442 0,B,15121987 0,C,54 41,104,15 27,111,11 33,10C,1007 42,10D,29 38,20,87,-36,-12 0,21,-1,0,0 20,104,15 28,111,11 30,10C,1003 50,10D,31 48,104,15 27,20,98,-37,-12 0,21,-1,0,0 21,111,11 28,10C,1003 46,10D,31 49,104,15 32,111,11 30,20,104,-35,0 0,21,-1,0,0 17,10,7360960 0,D,32 0,A,-3382437 0,B,15121985 0,C,54 66,10C,1015 45,10D,31 44,104,15 23,10,7360980 0,D,33 0,A,-3382436 0,B,15121985 0,C,54 41,111,11 18,20,94,-34,-10 0,21,-1,0,0 21,10C,1011 44,10D,32 48,104,15 31,111,11 30,10C,1015 34,20,99,-38,-14 0,21,-1,-1,0 21,10D,32 43,104,15 32,111,11 30,10C,1015 43,10D,32 38,20,91,-42,7 0,21,0,-1,1 20,104,15 27,111,11 33,10C,1003 43,10D,32 51,104,15 26,20,96,-42,-8 0,21,-2,0,0 19,111,11 28,10C,992 54,10D,32 48,10,7361060 0,D,32 0,A,-3382430 0,B,15121982 0,C,54 41,104,15 19,20,91,-43,0 0,21,-1,0,-1 20,111,11 28,10C,988 44,10D,31 39,10,7361080 0,D,31 0,A,-3382428 0,B,15121981 0,C,54 41,104,15 27,111,11 22,20,89,-48,-13 0,21,-1,0,0 19,10C,992 42,10D,31 47,104,16 34,111,11 30,10C,984 34,20,118,-41,-19 0,21,-1,0,-1 19,10D,31 46,104,16 24,10,7361120 0,D,30 0,A,-3382425 0,B,15121980 0,C,54 41,111,11 32,10C,984 41,20,89,-45,-15 0,21,-1,0,-2 21,10D,31 46,104,16 23,10,7361140 0,D,29 0,A,-3382424 0,B,15121979 0,C,54 41,111,11 27,10C,964 42,20,86,-49,-6 0,21,-1,0,0 20,10D,29 42,104,16 32,10,7361160 0,D,28 0,A,-3382423 0,B,15121978 0,C,54 41,111,11 27,10C,945 39,20,95,-44,-19 0,21,-1,0,0 19,10D,29 56,10,7361180 0,D,27 0,A,-3382422 0,B,15121978 0,C,54 40,104,16 31,111,11 30,10C,937 34,20,96,-45,-11 0,21,-1,0,-1 20,10D,29 44,10,7361200 0,D,26 0,A,-3382420 0,B,15121977 0,C,54 40,104,16 38,111,11 30,10C,917 34,20,107,-42,1 0,21,0,1,0 19,10D,26 44,104,16 35,111,11 34,10C,917 42,10D,26 46,20,84,-48,-18 0,21,-1,2,1 19,104,17 32,111,11 35,10C,902 42,10D,26 46,104,17 29,20,138,-33,9 0,21,0,0,-4 18,111,11 29,10C,878 56,10D,26 49,104,17 30,111,11 20,20,67,-10,13 0,21,-1,0,0 20,10C,906 34,10,7361280 0,D,22 0,A,-3382416 0,B,15121975 0,C,54 44,10D,23 47,104,17 29,111,11 29,20,74,-45,4 0,21,-1,3,0 18,10C,898 34,10,7361300 0,D,22 0,A,-3382415 0,B,15121974 0,C,54 44,10D,23 43,104,17 30,111,11 32,10C,914 34,20,68,-31,6 0,21,0,1,-2 21,10D,23 43,104,17 30,111,11 34,10C,917 49,10D,23 37,20,85,-52,-20 0,21,0,-1,-6 20,104,17 32,111,11 29,10C,949 43,10D,22 48,104,18 23,10,7361360 0,D,21 0,A,-3382412 0,B,15121973 0,C,54 41,111,12 29,20,86,-36,0 0,21,0,0,4 19,10C,949 40,10D,22 48,104,24 24,10,7361380 0,D,22 0,A,-3382411 0,B,15121972 0,C,54 40,111,14 32,10C,1082 33,20,52,-39,-26 0,21,-1,-1,0 21,10D,22 45,104,30 34,111,15 30,10C,1355 43,10D,22 37,20,54,-3,-6 0,21,0,1,0 21,104,29 28,111,15 47,10C,1496 42,10D,22 47,104,32 21,20,105,-24,6 0,21,0,1,-1 20,111,18 29,10C,1507 43,10D,22 46,104,40 34,111,16 30,20,97,-19,-3 0,21,0,0,-3 19,10C,1574 43,10D,22 38,10,7361460 0,D,22 0,A,-3382407 0,B,15121970 0,C,54 41,104,33 40,111,16 22,20,120,-24,-7 0,21,-1,-2,-1 19,10C,1523 45,10D,22 37,10,7361480 0,D,22 0,A,-3382406 0,B,15121969 0,C,54 41,104,31 32,111,15 29,10C,1464 34,20,93,-25,-12 0,21,-1,0,-2 20,10D,22 36,10,7361500 0,D,23 0,A,-3382405 0,B,15121968 0,C,54 40,104,31 28,111,16 34,10C,1457 42,10D,22 37,20,101,-18,0 0,21,-1,0,-2 21,104,32 27,111,16 29,10C,1453 48,10D,22 59,104,34 21,20,103,-17,-11 0,21,-2,1,-1 20,10,7361540 0,D,23 0,A,-3382402 0,B,15121967 0,C,54 63,111,16 29,10C,1484 45,10D,23 47,20,100,-26,-1 0,21,-4,1,0 21,104,36 27,111,18 30,10C,1507 55,10D,23 55,104,43 21,20,107,-10,-14 0,21,-4,0,0 21,111,18 31,10C,1609 42,10D,23 50,104,45 29,111,18 22,10,7361600 0,D,24 0,A,-3382399 0,B,15121965 0,C,54 41,10C,1671 31,20,94,-13,-26 0,21,-6,1,0 21,10D,23 47,104,45 29,111,18 22,10,7361620 0,D,24 0,A,-3382398 0,B,15121965 0,C,54 40,10C,1593 41,10D,24 37,20,86,-25,-25 0,21,-6,1,3 20,104,47 29,111,18 35,10C,1488 44,10D,24 45,104,49 27,20,103,-17,-31 0,21,-6,1,1 19,111,18 30,10C,1417 47,10D,24 49,104,50 34,111,18 31,20,101,-13,-26 0,21,-7,2,-1 19,10C,1339 38,10,7361680 0,D,25 0,A,-3382394 0,B,15121964 0,C,54 40,10D,24 48,104,53 30,111,18 25,20,97,-16,-16 0,21,-7,1,0 19,10C,1289 41,10D,25 38,10,7361700 0,D,26 0,A,-3382393 0,B,15121963 0,C,54 40,104,55 31,111,18 30,10C,1277 34,20,117,-18,-22 0,21,-8,1,0 20,10D,25 36,10,7361720 0,D,26 0,A,-3382391 0,B,15121963 0,C,54 41,104,56 28,111,18 32,10C,1281 42,10D,25 42,20,81,-24,-24 0,21,-9,1,0 21,104,55 27,111,18 33,10C,1281 43,10D,25 44,104,54 31,111,18 22,20,98,-15,-31 0,21,-9,0,1 20,10C,1273 44,10D,27 49,104,54 52,10,7361780 0,D,28 0,A,-3382387 0,B,15121963 0,C,54 41,111,18 19,20,106,-6,-32 0,21,-8,0,0 20,10C,1292 41,10D,27 45,104,51 30,111,17 22,10,7361800 0,D,28 0,A,-3382386 0,B,15121963 0,C,54 39,10C,1285 33,20,111,-9,-26 0,21,-8,0,-1 20,10D,27 47,104,50 33,111,17 22,10,7361820 0,D,28 0,A,-3382384 0,B,15121963 0,C,54 40,10C,1269 41,10D,27 37,20,89,-27,-18 0,21,-8,1,0 23,104,48 30,111,17 24,10,7361840 0,D,29 0,A,-3382383 0,B,15121963 0,C,54 41,10C,1269 44,10D,29 38,20,121,0,-22 0,21,-8,1,0 19,104,46 30,111,17 33,10C,1300 44,10D,29 46,104,46 30,111,17 21,20,103,-17,-19 0,21,-5,0,0 19,10C,1320 50,10D,29 51,104,45 29,111,17 30,10C,1324 34,20,109,-9,-17 0,21,-5,0,0 19,10D,29 47,10,7361900 0,D,30 0,A,-3382378 0,B,15121965 0,C,54 41,104,45 28,111,17 30,10C,1316 42,20,97,-22,-18 0,21,-4,1,0 20,10D,31 52,104,43 31,111,14 30,10C,1292 45,10D,31 37,20,118,-9,-22 0,21,-4,0,0 25,104,34 28,111,13 30,10C,1265 46,10D,31 49,104,28 25,20,96,-23,-11 0,21,-3,0,0 17,10,7361960 0,D,33 0,A,-3382374 0,B,15121967 0,C,54 67,111,13 31,10C,1257 42,10D,31 46,104,23 31,20,105,-18,-19 0,21,-3,0,-1 15,10,7361980 0,D,33 0,A,-3382372 0,B,15121967 0,C,54 68,111,12 27,10C,1238 44,10D,32 48,104,18 21,20,86,-36,-15 0,21,-2,0,0 20,111,11 27,10C,1214 43,10D,32 48,104,15 23,10,7362020 0,D,33 0,A,-3382369 0,B,15121969 0,C,54 41,111,11 18,20,90,-35,-22 0,21,-2,0,-2 21,10C,1199 41,10D,32 44,104,14 30,111,11 35,10C,1160 35,20,98,-23,-20 0,21,-2,-1,0 20,10D,32 47,104,13 31,111,13 35,10C,1109 43,10D,32 38,20,112,-21,-25 0,21,-2,0,0 20,104,20 31,111,14 31,10C,1113 44,10D,32 48,10,7362080 0,D,33 0,A,-3382365 0,B,15121971 0,C,42 41,104,26 19,20,108,-14,-18 0,21,-3,0,0 20,111,15 29,10C,1226 44,10D,32 39,10,7362100 0,D,33 0,A,-3382363 0,B,15121972 0,C,41 41,104,30 30,111,15 22,20,102,-26,-15 0,21,-3,0,0 19,10C,1230 41,10D,32 47,104,34 30,111,15 30,10C,1214 34,20,116,-10,-20 0,21,-4,0,0 19,10D,32 57,104,35 30,111,15 34,10C,1218 46,10D,32 37,20,110,-12,-24 0,21,-3,0,-3 20,104,40 21,10,7362160 0,D,32 0,A,-3382359 0,B,15121975 0,C,41 55,111,17 31,10C,1261 46,10D,32 37,20,104,-19,-6 0,21,-2,1,-1 21,104,43 32,111,16 39,10C,1308 46,10D,32 49,104,43 21,20,114,-11,-9 0,21,0,0,0 21,111,17 28,10C,1289 43,10D,32 46,104,45 28,111,17 32,10C,1273 35,20,100,-16,-18 0,21,0,0,-2 17,10,7362220 0,D,32 0,A,-3382354 0,B,15121978 0,C,41 66,10D,32 47,104,45 32,111,15 34,10C,1242 34,20,92,-21,-29 0,21,0,3,0 17,10,7362240 0,D,32 0,A,-3382353 0,B,15121979 0,C,42 66,10D,32 47,104,37 30,111,16 31,10C,1250 35,20,111,-10,3 0,21,1,0,-3 19,10D,32 95,104,40 30,111,16 39,10C,1308 44,20,94,-20,-6 0,21,0,0,0 20,10D,32 46,104,40 30,111,17 21,10,7362300 0,D,33 0,A,-3382348 0,B,15121981 0,C,42 41,10C,1339 45,10D,32 37,20,107,-4,-4 0,21,1,0,-3 19,104,42 28,111,17 21,10,7362320 0,D,33 0,A,-3382347 0,B,15121982 0,C,42 41,10C,1324 40,10D,32 46,104,43 21,20,104,-23,-6 0,21,0,0,-1 18,111,17 33,10C,1289 43,10D,32 46,104,45 30,111,17 28,10C,1253 34,20,92,-16,8 0,21,0,0,-2 25,10D,32 48,104,45 30,111,17 29,10C,1230 45,10D,32 38,20,123,-11,-1 0,21,0,-1,-2 21,104,46 31,111,15 30,10C,1230 55,10D,32 44,104,40 22,20,119,-10,-12 0,21,0,0,-1 16,10,7362400 0,D,33 0,A,-3382340 0,B,15121985 0,C,42 67,111,13 31,10C,1234 46,10D,32 43,20,106,-14,-2 0,21,0,0,-1 20,104,29 32,111,13 30,10C,1222 42,10D,32 48,104,25 23,10,7362440 0,D,32 0,A,-3382337 0,B,15121987 0,C,42 41,111,12 20,20,104,-25,-10 0,21,0,0,-2 19,10C,1203 41,10D,32 48,104,21 31,111,12 31,10C,1179 34,20,103,-22,-5 0,21,0,-1,-2 23,10D,32 48,104,17 28,111,11 26,10,7362480 0,D,31 0,A,-3382335 0,B,15121988 0,C,42 41,10C,1187 37,20,105,-29,-1 0,21,0,0,-1 21,10D,31 55,104,15 32,111,11 23,10,7362500 0,D,30 0,A,-3382333 0,B,15121989 0,C,42 41,10C,1160 45,20,97,-30,-3 0,21,0,-1,0 20,10D,31 43,104,14 32,111,11 23,10,7362520 0,D,30 0,A,-3382332 0,B,15121989 0,C,42 40,10C,1113 41,10D,31 37,20,108,-30,-12 0,21,0,0,0 19,104,14 30,111,11 31,10C,1105 43,10D,31 46,104,13 30,111,11 20,20,115,-22,-6 0,21,0,-1,1 19,10C,1140 46,10D,28 50,104,13 38,111,12 33,10C,1183 34,20,103,-15,-3 0,21,1,0,-1 20,10D,28 37,10,7362580 0,D,27 0,A,-3382328 0,B,15121991 0,C,42 39,104,16 28,111,12 30,10C,1210 48,20,73,-16,-3 0,21,1,-1,0 18,10D,28 37,10,7362600 0,D,25 0,A,-3382326 0,B,15121991 0,C,42 41,104,20 32,111,12 33,10C,1175 39,20,109,-18,-20 0,21,1,1,-3 18,10D,25 46,10,7362620 0,D,25 0,A,-3382325 0,B,15121992 0,C,42 40,104,20 28,111,12 29,10C,1207 42,20,95,-2,16 0,21,3,1,-3 20,10D,25 47,10,7362640 0,D,23 0,A,-3382324 0,B,15121992 0,C,42 40,104,17 41,111,12 28,10C,1128 39,20,134,-12,8 0,21,2,0,3 21,10D,25 48,104,20 34,111,14 30,10C,1042 45,10D,25 36,20,84,-19,26 0,21,3,0,-6 22,104,27 27,111,15 29,10C,1117 47,10D,22 58,104,33 21,20,78,-39,-3 0,21,3,-3,-1 21,111,16 30,10C,1328 43,10D,22 50,104,37 31,111,18 27,20,98,-29,-8 0,21,3,0,0 20,10C,1417 41,10D,22 45,104,47 30,111,19 32,10C,1546 34,20,87,-22,24 0,21,3,-2,0 20,10D,22 44,104,53 30,111,19 30,10C,1699 45,10D,19 36,20,111,-2,9 0,21,3,-3,6 21,104,53 28,111,19 29,10C,1750 46,10D,19 44,104,49 24,10,7362780 0,D,19 0,A,-3382317 0,B,15121993 0,C,42 45,111,18 19,20,124,-54,5 0,21,3,1,7 21,10C,1738 44,10D,19 58,104,50 22,10,7362800 0,D,19 0,A,-3382316 0,B,15121993 0,C,42 40,111,21 19,20,85,-26,-5 0,21,2,-4,-5 21,10C,1769 44,10D,19 48,104,61 22,10,7362820 0,D,19 0,A,-3382315 0,B,15121992 0,C,42 40,111,21 25,20,105,-4,-7 0,21,4,0,-4 19,10C,1921 44,10D,19 44,104,57 24,10,7362840 0,D,18 0,A,-3382314 0,B,15121992 0,C,42 41,111,20 28,20,125,2,0 0,21,3,0,0 19,10C,1910 45,10D,19 48,104,55 23,10,7362860 0,D,19 0,A,-3382313 0,B,15121992 0,C,42 44,111,21 32,20,109,-2,-13 0,21,3,0,0 20,10C,1875 43,10D,19 46,10,7362880 0,D,19 0,A,-3382312 0,B,15121992 0,C,42 41,104,55 28,111,21 25,20,106,-6,-6 0,21,2,0,0 20,10C,1882 44,10D,19 55,104,56 31,111,21 30,10C,1878 33,20,102,-7,-12 0,21,1,0,-2 21,10D,20 46,104,62 27,10,7362920 0,D,19 0,A,-3382310 0,B,15121991 0,C,42 40,111,22 32,10C,1902 34,20,105,-2,-7 0,21,1,0,1 20,10D,20 47,104,64 26,10,7362940 0,D,19 0,A,-3382309 0,B,15121991 0,C,42 41,111,22 32,10C,1863 34,20,107,-5,-17 0,21,0,-1,-2 20,10D,20 50,104,65 27,10,7362960 0,D,19 0,A,-3382308 0,B,15121991 0,C,42 41,111,22 28,10C,1828 43,20,119,12,-11 0,21,0,1,-1 19,10D,20 46,104,67 31,111,23 31,10C,1789 43,10D,20 36,20,84,-25,-3 0,21,-1,0,0 20,104,70 30,111,23 40,10C,1746 44,10D,20 65,104,70 21,20,101,-5,-6 0,21,-1,0,-1 20,111,22 29,10C,1703 37,10,7363020 0,D,19 0,A,-3382305 0,B,15121990 0,C,42 40,10D,20 44,104,71 29,111,22 21,20,106,-4,-1 0,21,0,0,1 19,10C,1656 41,10D,20 49,104,73 30,111,22 30,10C,1609 35,20,100,-4,-11 0,21,0,1,1 18,10D,20 45,104,73 38,111,23 30,10C,1531 42,10D,20 36,20,100,-17,-17 0,21,-1,0,0 21,104,75 20,10,7363080 0,D,20 0,A,-3382302 0,B,15121989 0,C,42 56,111,22 30,10C,1425 43,10D,20 37,20,97,-6,-2 0,21,-1,0,-1 21,104,77 28,10,7363100 0,D,20 0,A,-3382301 0,B,15121988 0,C,42 48,111,23 31,10C,1332 45,10D,21 37,20,114,-7,-13 0,21,0,0,-1 22,104,80 27,111,22 34,10C,1351 46,10D,21 49,104,78 26,20,111,-3,1 0,21,0,0,0 16,10,7363140 0,D,21 0,A,-3382299 0,B,15121988 0,C,42 67,111,22 32,10C,1335 42,10D,21 45,104,77 21,20,114,-1,0 0,21,0,0,-1 21,10,7363160 0,D,22 0,A,-3382298 0,B,15121988 0,C,42 62,111,22 32,10C,1328 45,10D,21 43,20,109,-3,0 0,21,0,0,1 19,104,77 29,111,22 30,10C,1335 46,10D,22 47,104,76 24,10,7363200 0,D,22 0,A,-3382296 0,B,15121987 0,C,42 41,111,22 28,20,92,-15,-12 0,21,0,1,2 21,10C,1335 44,10D,22 48,104,76 22,10,7363220 0,D,22 0,A,-3382295 0,B,15121987 0,C,42 40,111,22 28,10C,1328 34,20,107,-8,-5 0,21,0,0,0 20,10D,22 45,104,76 47,111,21 33,10C,1335 47,10D,22 37,20,99,0,-4 0,21,0,0,-2 20,104,75 26,111,21 23,10,7363260 0,D,21 0,A,-3382293 0,B,15121986 0,C,42 44,10C,1335 45,10D,22 42,20,123,4,-9 0,21,0,0,-1 17,104,70 31,111,19 22,10,7363280 0,D,22 0,A,-3382292 0,B,15121985 0,C,42 40,10C,1332 41,10D,22 49,104,62 22,20,106,-12,8 0,21,0,0,0 18,111,18 21,10,7363300 0,D,23 0,A,-3382290 0,B,15121985 0,C,42 56,10C,1285 54,10D,22 50,104,56 20,20,103,-12,-11 0,21,0,0,1 21,111,17 28,10C,1238 57,10D,22 49,104,52 28,111,17 21,20,105,-9,0 0,21,0,0,-1 20,10C,1222 46,10D,22 50,104,52 29,111,17 32,10C,1226 34,20,111,-5,-9 0,21,0,0,1 20,10D,22 44,104,50 34,111,17 34,10C,1207 51,10D,22 47,20,107,-14,2 0,21,0,0,0 18,10,7363380 0,D,22 0,A,-3382286 0,B,15121983 0,C,42 65,104,47 32,111,13 28,10C,1167 48,10D,21 37,20,90,-20,-7 0,21,0,0,0 16,10,7363400 0,D,22 0,A,-3382285 0,B,15121983 0,C,49 66,104,33 37,111,12 31,10C,1164 44,10D,21 37,20,98,-32,-8 0,21,-1,0,0 19,104,25 28,111,12 32,10C,1121 44,10D,21 39,10,7363440 0,D,22 0,A,-3382283 0,B,15121982 0,C,49 41,104,22 18,20,94,-16,-10 0,21,0,1,0 20,111,11 30,10C,1109 43,10D,21 51,104,18 29,111,12 30,10C,1019 34,20,108,-29,1 0,21,-1,0,0 17,10D,19 80,104,20 33,111,12 29,10C,929 42,20,89,-23,-6 0,21,-1,0,-1 19,10D,19 44,104,20 31,111,11 29,10C,902 46,10D,19 37,20,98,-28,-6 0,21,0,1,0 20,104,20 38,111,11 30,10C,859 46,10D,19 50,104,22 20,20,104,-24,-5 0,21,0,1,0 18,111,14 33,10C,832 43,10D,16 38,10,7363540 0,D,22 0,A,-3382279 0,B,15121979 0,C,49 41,104,29 27,20,95,-28,1 0,21,0,0,0 17,111,14 33,10C,933 43,10D,16 46,104,33 29,111,14 32,10C,1066 34,20,96,-26,2 0,21,-1,0,0 21,10D,16 44,104,32 29,111,14 30,10C,1210 45,10D,16 54,20,100,-22,-1 0,21,-1,0,0 21,104,28 31,111,13 33,10C,1214 46,10D,12 46,104,27 30,20,99,-20,-1 0,21,-1,0,0 16,10,7363620 0,D,10 0,A,-3382277 0,B,15121978 0,C,49 67,111,13 32,10C,1125 44,10D,12 39,10,7363640 0,D,9 0,A,-3382276 0,B,15121978 0,C,49 41,104,25 18,20,101,-19,4 0,21,-1,0,0 21,111,12 30,10C,1015 46,10D,12 50,104,26 29,111,12 27,20,99,-24,-4 0,21,0,0,0 20,10C,906 43,10D,12 51,10,7363680 0,D,7 0,A,-3382275 0,B,15121977 0,C,49 41,104,25 27,111,12 22,20,100,-22,1 0,21,0,0,0 19,10C,816 40,10D,8 44,104,28 22,10,7363700 0,D,6 0,A,-3382275 0,B,15121977 0,C,49 40,111,12 30,10C,750 34,20,107,-14,-2 0,21,-1,0,0 21,10D,8 45,104,30 30,111,12 39,10C,738 43,10D,8 37,20,100,-17,0 0,21,-1,0,0 20,104,30 28,111,13 40,10C,730 46,10D,8 50,104,46 21,20,104,-14,0 0,21,-1,0,0 19,111,16 42,10C,773 34,10,7363760 0,D,3 0,A,-3382275 0,B,15121977 0,C,49 41,10D,4 43,104,62 22,20,97,-17,-3 0,21,-1,0,0 18,111,19 30,10C,1105 37,10,7363780 0,D,2 0,A,-3382274 0,B,15121977 0,C,49 40,10D,4 43,104,60 29,111,19 22,20,102,-4,-1 0,21,-1,0,0 22,10C,1531 42,10D,4 38,10,7363800 0,D,2 0,A,-3382274 0,B,15121977 0,C,51 41,104,56 31,111,18 26,20,101,0,-10 0,21,-1,0,0 18,10C,1648 42,10D,2 47,10,7363820 0,D,2 0,A,-3382274 0,B,15121976 0,C,51 41,104,47 31,111,18 21,20,105,6,-1 0,21,-1,0,0 19,10C,1550 45,10D,2 39,10,7363840 0,D,2 0,A,-3382274 0,B,15121976 0,C,51 40,104,54 31,111,21 26,20,110,2,-7 0,21,-1,0,-1 17,10C,1570 42,10D,2 49,104,66 34,111,20 30,10C,1687 34,20,89,-15,-5 0,21,-1,0,0 19,10D,2 44,104,60 33,111,20 30,10C,1687 47,10D,4 36,20,99,2,-10 0,21,-1,0,-1 23,104,58 28,111,20 33,10C,1656 43,10D,4 45,104,60 28,111,20 22,20,90,-8,-7 0,21,-2,-1,2 20,10C,1648 44,10D,4 56,104,63 29,111,23 32,10C,1687 34,20,89,-18,-12 0,21,-3,0,2 21,10D,4 43,104,70 30,111,21 30,10C,1792 54,10D,7 37,20,118,19,-6 0,21,-5,0,0 20,104,66 28,111,21 34,10C,1820 43,10D,7 44,104,64 22,10,7363980 0,D,9 0,A,-3382272 0,B,15121975 0,C,51 41,111,21 19,20,90,-11,-17 0,21,-7,0,1 20,10C,1855 44,10D,7 47,104,62 31,111,21 31,10C,1871 35,20,101,-3,-21 0,21,-9,0,0 19,10D,7 47,104,62 46,111,21 23,10,7364020 0,D,11 0,A,-3382271 0,B,15121975 0,C,51 40,10C,1875 41,20,111,-5,-27 0,21,-12,0,1 20,10D,10 43,104,62 29,111,21 22,10,7364040 0,D,11 0,A,-3382270 0,B,15121975 0,C,51 41,10C,1886 44,10D,10 38,20,90,-6,-30 0,21,-14,1,1 20,104,61 25,111,21 31,10C,1898 44,10D,10 45,104,58 30,111,21 21,20,100,-7,-27 0,21,-14,2,0 20,10C,1882 41,10D,10 51,104,57 43,111,20 30,10C,1859 34,20,115,3,-30 0,21,-15,2,0 19,10D,10 37,10,7364100 0,D,14 0,A,-3382268 0,B,15121975 0,C,51 41,104,56 27,111,21 41,10C,1863 39,20,100,-9,-30 0,21,-15,3,1 20,10D,14 48,104,56 34,111,20 39,10C,1882 45,10D,14 38,20,100,-18,-26 0,21,-15,3,1 20,104,55 28,111,20 29,10C,1878 46,10D,14 50,104,54 26,10,7364160 0,D,16 0,A,-3382266 0,B,15121977 0,C,51 41,111,20 20,20,99,-16,-28 0,21,-13,1,1 19,10C,1882 45,10D,17 48,104,54 30,111,20 23,10,7364180 0,D,17 0,A,-3382265 0,B,15121977 0,C,51 39,10C,1875 33,20,100,4,-5 0,21,-11,1,0 20,10D,17 43,104,55 31,111,20 24,10,7364200 0,D,17 0,A,-3382264 0,B,15121978 0,C,51 41,10C,1835 41,10D,17 38,20,101,-14,-16 0,21,-10,0,0 23,104,57 30,111,20 24,10,7364220 0,D,18 0,A,-3382263 0,B,15121979 0,C,51 41,10C,1789 44,10D,17 47,20,107,3,-8 0,21,-8,0,0 19,104,58 30,111,20 22,10,7364240 0,D,19 0,A,-3382263 0,B,15121979 0,C,51 41,10C,1738 44,10D,19 46,104,60 21,20,111,1,-10 0,21,-5,0,0 19,111,20 32,10C,1695 44,10D,19 49,104,61 30,111,21 26,20,109,4,-1 0,21,-4,0,0 18,10C,1664 41,10D,19 49,104,65 30,111,21 31,10C,1652 33,20,102,-11,-20 0,21,-3,0,-1 20,10D,19 37,10,7364300 0,D,22 0,A,-3382260 0,B,15121982 0,C,51 41,104,66 34,111,21 47,10C,1609 33,20,111,0,-2 0,21,-2,0,0 21,10D,22 35,10,7364320 0,D,22 0,A,-3382259 0,B,15121983 0,C,51 42,104,67 27,111,21 39,10C,1574 38,20,88,-17,-12 0,21,-3,0,-1 21,10D,22 44,104,68 33,111,21 34,10C,1566 45,10D,22 38,20,108,-9,-14 0,21,-2,-1,2 21,104,69 35,111,21 30,10C,1578 47,10D,22 48,104,68 21,20,105,-17,-16 0,21,-3,0,-2 21,111,21 28,10C,1582 46,10D,25 49,104,68 29,111,21 26,10,7364400 0,D,25 0,A,-3382256 0,B,15121987 0,C,51 41,10C,1601 32,20,106,-4,-8 0,21,-2,0,1 21,10D,25 47,104,67 28,111,21 31,10,7364420 0,D,26 0,A,-3382255 0,B,15121988 0,C,51 41,10C,1621 33,20,88,-33,-20 0,21,-1,0,0 19,10D,25 47,104,67 38,111,21 31,10C,1632 43,10D,25 47,20,111,-3,-1 0,21,-2,0,0 21,104,66 30,111,21 32,10C,1664 36,10,7364460 0,D,28 0,A,-3382253 0,B,15121991 0,C,51 41,10D,27 40,20,115,-5,-8 0,21,-1,0,0 19,104,66 31,111,21 40,10C,1691 36,10,7364480 0,D,29 0,A,-3382252 0,B,15121992 0,C,51 40,10D,27 35,20,104,-6,-18 0,21,-1,0,-1 20,104,65 28,111,21 30,10C,1687 44,10D,27 47,104,63 29,111,20 22,20,89,-24,-5 0,21,-1,0,2 23,10C,1691 44,10D,27 38,10,7364520 0,D,30 0,A,-3382250 0,B,15121995 0,C,51 41,104,63 28,111,20 29,10C,1691 34,20,108,0,2 0,21,-1,0,0 20,10D,30 57,104,60 34,111,20 30,10C,1679 46,10D,30 37,20,98,-14,-8 0,21,-1,0,-2 20,104,60 33,111,20 29,10C,1648 47,10D,30 49,104,60 24,20,98,-22,-12 0,21,-1,0,0 18,10,7364580 0,D,33 0,A,-3382246 0,B,15121999 0,C,51 65,111,20 32,10C,1562 43,10D,30 44,20,101,-9,-9 0,21,-1,0,0 17,10,7364600 0,D,33 0,A,-3382245 0,B,15122000 0,C,51 66,104,60 29,111,18 33,10C,1445 41,10D,33 42,20,100,-15,-3 0,21,0,-1,1 21,104,55 27,111,18 30,10C,1359 47,10D,33 48,104,54 30,20,101,-16,-8 0,21,0,0,-1 18,10,7364640 0,D,34 0,A,-3382243 0,B,15122003 0,C,51 66,111,18 27,10C,1328 46,10D,33 43,20,101,-15,1 0,21,0,0,0 19,104,54 32,111,18 30,10C,1312 46,10D,34 49,104,55 33,20,83,-28,-7 0,21,0,0,2 16,10,7364680 0,D,35 0,A,-3382240 0,B,15122006 0,C,51 67,111,18 27,10C,1300 45,10D,34 46,104,54 22,20,114,-13,-12 0,21,0,0,-1 20,111,17 28,10C,1304 46,10D,34 47,104,51 43,111,16 22,20,108,-14,-1 0,21,0,0,3 23,10C,1289 45,10D,34 49,104,41 30,111,14 31,10,7364740 0,D,37 0,A,-3382236 0,B,15122011 0,C,51 41,10C,1273 32,20,110,-13,-8 0,21,0,0,0 20,10D,35 46,104,32 30,111,13 21,10,7364760 0,D,37 0,A,-3382235 0,B,15122012 0,C,51 41,10C,1261 41,10D,35 37,20,100,-27,-2 0,21,-1,0,0 21,104,25 28,111,12 24,10,7364780 0,D,37 0,A,-3382233 0,B,15122014 0,C,51 42,10C,1250 40,10D,35 46,20,103,-21,-17 0,21,-1,0,0 18,104,22 30,111,12 31,10C,1230 44,10D,35 38,10,7364800 0,D,37 0,A,-3382232 0,B,15122016 0,C,53 40,104,18 19,20,121,-18,-11 0,21,-1,0,1 23,111,11 42,10C,1234 52,10D,36 46,104,15 29,111,11 21,20,112,-18,-8 0,21,-1,0,1 19,10C,1230 34,10,7364840 0,D,37 0,A,-3382229 0,B,15122019 0,C,53 44,10D,36 53,104,13 29,111,11 32,20,99,-34,-14 0,21,-1,0,0 20,10C,1222 41,10D,36 46,104,12 30,111,11 33,10C,1222 34,20,97,-24,-3 0,21,-1,0,0 20,10D,36 45,104,12 30,111,11 30,10C,1210 45,10D,36 37,20,91,-29,-13 0,21,-1,0,2 21,104,12 32,111,11 34,10C,1214 46,10D,36 49,104,12 20,20,102,-26,-14 0,21,-1,0,0 22,111,11 27,10C,1210 47,10D,36 50,104,12 33,111,11 26,20,94,-33,-12 0,21,-1,0,1 15,10,7364940 0,D,37 0,A,-3382223 0,B,15122027 0,C,53 68,10C,1203 51,10D,36 44,104,12 22,20,107,-25,-9 0,21,-1,0,0 21,111,11 27,10C,1203 47,10D,36 49,104,12 28,111,11 27,10,7364980 0,D,37 0,A,-3382220 0,B,15122030 0,C,53 41,10C,1203 32,20,94,-32,-6 0,21,-1,0,0 20,10D,36 48,104,12 27,111,11 34,10C,1207 35,10,7365000 0,D,37 0,A,-3382219 0,B,15122032 0,C,53 40,10D,36 36,20,93,-32,-10 0,21,-1,0,0 19,104,12 27,111,11 33,10C,1207 35,10,7365020 0,D,36 0,A,-3382218 0,B,15122033 0,C,53 45,10D,36 44,20,103,-23,-5 0,21,-1,0,0 20,104,12 27,111,11 32,10C,1218 35,10,7365040 0,D,36 0,A,-3382217 0,B,15122035 0,C,53 41,10D,36 47,20,93,-30,-14 0,21,-2,0,0 20,104,12 36,111,11 26,10,7365060 0,D,36 0,A,-3382215 0,B,15122036 0,C,53 41,10C,1222 41,10D,36 46,20,112,-20,-10 0,21,-1,0,0 20,104,12 28,111,11 28,10,7365080 0,D,36 0,A,-3382214 0,B,15122038 0,C,53 40,10C,1222 45,10D,36 42,20,97,-34,-6 0,21,-1,0,0 19,104,12 26,111,11 28,10,7365100 0,D,36 0,A,-3382213 0,B,15122039 0,C,53 40,10C,1222 45,10D,36 42,20,91,-42,-5 0,21,0,0,0 19,104,12 27,111,11 26,10,7365120 0,D,36 0,A,-3382211 0,B,15122041 0,C,53 41,10C,1226 44,10D,36 46,20,106,-19,-12 0,21,0,0,-2 20,104,12 29,111,11 30,10C,1222 44,10D,36 45,104,12 30,111,11 22,20,109,-13,-1 0,21,0,0,0 19,10C,1222 50,10D,35 50,104,12 30,111,11 30,10C,1214 34,20,92,-28,-2 0,21,0,0,0 19,10D,35 48,104,12 34,111,11 39,10C,1218 46,10D,35 37,20,100,-25,-3 0,21,0,0,0 20,104,12 32,111,11 31,10C,1218 42,10D,35 45,104,12 33,111,11 31,20,98,-27,-2 0,21,0,0,0 17,10,7365220 0,D,35 0,A,-3382205 0,B,15122049 0,C,53 66,10C,1210 44,10D,34 45,104,12 23,10,7365240 0,D,35 0,A,-3382204 0,B,15122050 0,C,53 40,111,11 19,20,92,-37,-11 0,21,-1,0,0 20,10C,1210 45,10D,34 47,104,12 33,10,7365260 0,D,35 0,A,-3382203 0,B,15122052 0,C,53 40,111,11 19,20,84,-37,-9 0,21,-1,0,0 19,10C,1222 46,10D,34 44,104,12 22,10,7365280 0,D,35 0,A,-3382201 0,B,15122053 0,C,53 42,111,11 28,20,87,-37,-3 0,21,-1,0,0 19,10C,1207 44,10D,34 48,104,12 23,10,7365300 0,D,35 0,A,-3382200 0,B,15122055 0,C,53 41,111,11 27,20,99,-34,-11 0,21,-1,0,0 21,10C,1226 40,10D,34 48,104,12 23,10,7365320 0,D,35 0,A,-3382199 0,B,15122056 0,C,53 41,111,11 27,10C,1226 34,20,110,-32,-10 0,21,-1,0,0 20,10D,34 45,104,12 31,111,11 31,10C,1222 42,10D,34 38,20,116,-18,-22 0,21,-1,0,-2 19,104,12 30,111,11 27,10,7365360 0,D,34 0,A,-3382196 0,B,15122059 0,C,53 41,10C,1226 53,10D,34 38,20,123,-15,-9 0,21,-1,0,0 19,104,12 26,111,11 30,10C,1214 44,10D,33 46,104,12 29,111,11 22,20,96,-20,-13 0,21,-2,0,-1 19,10C,1230 41,10D,33 50,104,12 34,111,11 30,10C,1226 44,20,102,-17,-14 0,21,-1,2,1 19,10D,33 54,104,12 33,111,11 30,10C,1218 46,10D,33 37,20,103,-19,11 0,21,-1,0,0 20,104,12 33,111,11 33,10C,1222 47,10D,32 48,104,12 22,20,67,-40,-4 0,21,-1,0,-3 20,111,11 29,10C,1207 46,10D,32 58,104,12 29,111,11 22,20,78,-46,-5 0,21,0,1,2 20,10C,1191 33,10,7365480 0,D,33 0,A,-3382189 0,B,15122068 0,C,53 44,10D,32 48,104,14 29,111,12 29,20,103,-20,-10 0,21,-1,0,-2 17,10,7365500 0,D,33 0,A,-3382188 0,B,15122069 0,C,53 66,10C,1234 45,10D,32 48,104,15 27,20,104,-21,-2 0,21,0,0,0 19,10,7365520 0,D,32 0,A,-3382187 0,B,15122071 0,C,53 64,111,12 32,10C,1179 42,10D,32 43,20,101,-25,-7 0,21,-1,1,0 15,10,7365540 0,D,32 0,A,-3382186 0,B,15122072 0,C,53 68,104,16 30,111,12 34,10C,1207 45,10D,32 37,20,101,-25,-3 0,21,0,0,0 18,10,7365560 0,D,33 0,A,-3382184 0,B,15122073 0,C,53 65,104,16 76,111,12 31,10C,1234 33,20,103,-19,-13 0,21,-1,0,0 22,10D,32 43,104,17 30,111,13 31,10C,1238 44,10D,32 37,20,85,-29,-3 0,21,-1,0,0 21,104,18 27,111,12 30,10C,1242 53,10D,32 39,10,7365620 0,D,33 0,A,-3382181 0,B,15122078 0,C,53 45,104,20 20,20,91,-25,-1 0,21,-1,0,0 19,111,13 28,10C,1230 45,10D,32 46,104,21 30,111,13 29,10C,1230 35,20,98,-23,-11 0,21,-1,0,0 20,10D,32 46,104,22 22,10,7365660 0,D,33 0,A,-3382179 0,B,15122081 0,C,53 41,111,13 31,10C,1234 43,20,79,-30,3 0,21,-1,0,1 19,10D,32 53,104,22 22,10,7365680 0,D,33 0,A,-3382177 0,B,15122082 0,C,53 40,111,13 28,10C,1246 39,20,107,-16,-7 0,21,-1,0,1 20,10D,32 46,104,22 23,10,7365700 0,D,33 0,A,-3382176 0,B,15122083 0,C,53 40,111,13 27,10C,1261 43,10D,32 41,20,103,-27,-12 0,21,-1,0,0 20,104,22 31,111,13 24,10,7365720 0,D,33 0,A,-3382175 0,B,15122085 0,C,51 40,10C,1277 41,10D,32 45,20,83,-34,-4 0,21,-1,-1,0 18,104,22 33,111,13 24,10,7365740 0,D,33 0,A,-3382174 0,B,15122086 0,C,51 40,10C,1257 44,10D,32 42,20,95,-25,-1 0,21,-1,-1,0 18,104,22 22,10,7365760 0,D,34 0,A,-3382173 0,B,15122088 0,C,51 55,111,13 29,10C,1253 43,10D,32 36,20,98,-25,-14 0,21,-1,-1,0 20,104,22 31,10,7365780 0,D,34 0,A,-3382171 0,B,15122089 0,C,51 46,111,13 27,10C,1246 47,10D,32 45,20,103,-20,-13 0,21,-1,0,0 25,104,22 29,111,13 46,10C,1250 43,10D,33 45,104,22 20,20,100,-18,-7 0,21,-1,-1,0 22,111,13 31,10C,1261 43,10D,33 49,104,22 31,111,13 27,20,97,-30,-9 0,21,0,0,0 15,10,7365840 0,D,34 0,A,-3382168 0,B,15122094 0,C,51 68,10C,1277 44,10D,33 49,104,18 27,20,89,-32,-7 0,21,-1,0,0 15,10,7365860 0,D,34 0,A,-3382167 0,B,15122095 0,C,51 68,111,11 32,10C,1210 45,10D,34 43,20,105,-22,-7 0,21,-1,0,0 19,104,15 38,111,11 33,10C,1242 47,10D,34 47,104,13 21,20,96,-28,-13 0,21,-1,0,0 18,10,7365900 0,D,34 0,A,-3382164 0,B,15122098 0,C,51 65,111,11 32,10C,1218 46,10D,34 42,20,102,-22,-15 0,21,-1,-1,0 22,104,12 30,111,11 30,10C,1230 43,10D,34 48,104,12 27,20,89,-32,-2 0,21,-1,0,0 20,111,11 32,10C,1179 46,10D,34 59,104,12 29,111,11 22,20,93,-33,-11 0,21,-1,0,1 15,10,7365960 0,D,34 0,A,-3382160 0,B,15122103 0,C,51 68,10C,1160 41,10D,34 44,104,13 23,10,7365980 0,D,34 0,A,-3382159 0,B,15122104 0,C,51 40,111,11 29,20,106,-23,-10 0,21,-1,0,0 19,10C,1210 45,10D,34 47,104,12 23,10,7370000 0,D,34 0,A,-3382158 0,B,15122106 0,C,51 46,111,11 25,20,90,-29,-11 0,21,-1,0,0 19,10C,1214 54,10D,33 45,104,12 22,10,7370020 0,D,34 0,A,-3382157 0,B,15122107 0,C,51 41,111,11 23,20,98,-22,-10 0,21,0,0,0 20,10C,1210 45,10D,33 48,104,12 23,10,7370040 0,D,34 0,A,-3382156 0,B,15122109 0,C,51 40,111,11 27,10C,1203 34,20,95,-25,-9 0,21,0,0,0 20,10D,33 45,104,12 24,10,7370060 0,D,33 0,A,-3382154 0,B,15122110 0,C,51 41,111,11 32,10C,1203 39,20,108,-19,-11 0,21,-1,0,-1 19,10D,33 46,104,12 23,10,7370080 0,D,33 0,A,-3382153 0,B,15122111 0,C,51 45,111,11 37,10C,1207 33,20,109,-23,-16 0,21,-1,0,-1 21,10D,32 46,104,12 23,10,7370100 0,D,33 0,A,-3382152 0,B,15122113 0,C,51 39,111,11 28,10C,1218 43,20,90,-37,-4 0,21,-1,0,-1 20,10D,32 49,104,12 22,10,7370120 0,D,33 0,A,-3382151 0,B,15122114 0,C,51 41,111,11 31,10C,1218 39,20,114,-29,-22 0,21,-1,2,0 20,10D,32 46,104,12 23,10,7370140 0,D,33 0,A,-3382150 0,B,15122116 0,C,51 40,111,11 32,10C,1218 39,20,90,-23,-5 0,21,-1,0,-4 19,10D,32 46,104,12 23,10,7370160 0,D,33 0,A,-3382148 0,B,15122117 0,C,51 40,111,11 42,10C,1218 33,20,99,-28,3 0,21,-1,0,-6 20,10D,32 47,104,12 21,10,7370180 0,D,33 0,A,-3382147 0,B,15122119 0,C,51 41,111,11 37,10C,1222 34,20,103,-36,-1 0,21,-1,0,-2 19,10D,32 47,104,12 34,10,7370200 0,D,32 0,A,-3382146 0,B,15122120 0,C,51 41,111,11 31,10C,1226 35,20,144,12,27 0,21,-1,1,-1 19,10D,32 43,104,12 22,10,7370220 0,D,32 0,A,-3382145 0,B,15122121 0,C,51 41,111,11 27,10C,1230 46,10D,32 37,20,97,-23,-14 0,21,-1,0,-1 21,104,12 27,111,11 30,10C,1226 46,10D,32 49,104,12 28,111,11 22,20,121,-28,4 0,21,0,0,1 24,10C,1222 41,10D,32 49,104,12 30,111,11 32,10C,1218 33,20,106,-26,-18 0,21,-1,-1,-2 22,10D,32 43,104,12 39,111,11 34,10C,1218 41,10D,31 37,20,111,-18,-7 0,21,-1,0,-3 17,10,7370300 0,D,31 0,A,-3382140 0,B,15122127 0,C,51 65,104,12 32,111,11 32,10C,1218 43,10D,31 38,20,94,-25,-14 0,21,-1,0,-1 20,104,12 32,111,11 30,10C,1218 54,10D,31 47,104,12 21,20,105,-26,-8 0,21,-1,0,0 20,111,11 28,10C,1214 46,10D,31 48,104,13 22,10,7370360 0,D,30 0,A,-3382137 0,B,15122131 0,C,51 40,111,13 20,20,96,-28,-8 0,21,-1,0,1 23,10C,1242 45,10D,30 45,104,20 22,10,7370380 0,D,30 0,A,-3382136 0,B,15122132 0,C,51 40,111,13 25,20,106,-23,-7 0,21,-1,0,0 19,10C,1234 64,10D,30 41,10,7370400 0,D,30 0,A,-3382135 0,B,15122133 0,C,51 41,104,23 28,111,13 22,20,114,-12,-2 0,21,0,0,0 19,10C,1222 44,10D,30 42,10,7370420 0,D,30 0,A,-3382134 0,B,15122135 0,C,51 41,104,23 32,111,13 25,20,101,-26,-10 0,21,-1,0,1 21,10C,1210 43,10D,30 43,10,7370440 0,D,31 0,A,-3382133 0,B,15122136 0,C,51 40,104,24 27,111,13 27,20,104,-18,-8 0,21,0,0,-1 20,10C,1210 48,10D,30 46,104,23 30,111,13 30,10C,1222 34,20,99,-21,-9 0,21,0,0,0 19,10D,30 48,104,23 29,10,7370480 0,D,31 0,A,-3382131 0,B,15122139 0,C,51 41,111,13 28,10C,1242 35,20,95,-27,-8 0,21,-1,0,0 19,10D,30 55,104,22 31,111,13 31,10C,1253 42,10D,30 38,20,106,-24,-11 0,21,-1,0,0 19,104,22 30,111,13 40,10C,1269 44,10D,30 45,104,21 26,20,100,-28,-9 0,21,-1,0,0 20,111,12 30,10C,1273 43,10D,30 47,104,18 29,111,11 30,10C,1246 34,20,100,-24,-11 0,21,-1,0,1 19,10D,30 57,104,15 29,111,11 30,10C,1207 46,10D,30 37,20,97,-30,-13 0,21,-1,0,0 25,104,14 27,111,11 30,10C,1273 46,10D,30 49,104,12 31,20,101,-22,-14 0,21,-2,0,-1 20,111,11 20,10,7370600 0,D,31 0,A,-3382124 0,B,15122146 0,C,51 55,10C,1265 45,10D,30 48,104,12 22,20,103,-25,-6 0,21,-1,0,0 20,111,11 29,10C,1253 46,10D,30 49,104,12 29,111,11 29,20,102,-26,-10 0,21,-1,0,0 17,10,7370640 0,D,31 0,A,-3382122 0,B,15122149 0,C,51 66,10C,1210 45,10D,30 49,104,12 25,20,103,-27,-11 0,21,-2,0,0 17,10,7370660 0,D,31 0,A,-3382121 0,B,15122151 0,C,51 66,111,11 32,10C,1152 46,10D,30 41,20,101,-26,-10 0,21,-1,0,0 21,104,13 27,111,11 30,10C,1195 43,10D,30 45,104,13 35,20,102,-27,-9 0,21,-1,0,0 16,10,7370700 0,D,30 0,A,-3382118 0,B,15122153 0,C,51 68,111,12 37,10C,1222 45,10D,30 37,20,120,-13,-10 0,21,-1,0,0 21,104,15 28,111,12 29,10C,1195 46,10D,30 49,104,17 30,111,12 21,20,101,-23,-10 0,21,-1,0,0 15,10,7370740 0,D,30 0,A,-3382116 0,B,15122156 0,C,51 69,10C,1195 40,10D,30 45,104,18 22,10,7370760 0,D,30 0,A,-3382115 0,B,15122157 0,C,51 40,111,12 20,20,115,-26,-10 0,21,-1,0,0 19,10C,1195 59,10D,30 50,104,20 21,10,7370780 0,D,30 0,A,-3382114 0,B,15122159 0,C,51 40,111,12 20,20,85,-34,-9 0,21,-1,0,0 19,10C,1210 44,10D,30 44,104,16 40,111,11 33,10C,1234 35,20,100,-19,-4 0,21,-1,0,0 19,10D,30 43,104,14 33,111,11 22,10,7370820 0,D,30 0,A,-3382112 0,B,15122161 0,C,51 40,10C,1234 41,10D,30 37,20,107,-31,-21 0,21,0,-2,1 20,104,13 25,111,11 35,10C,1230 43,10D,30 49,104,12 30,111,11 21,20,110,-17,3 0,21,-1,0,0 20,10C,1246 41,10D,30 46,104,12 34,111,11 39,10C,1234 33,20,115,-28,3 0,21,-1,0,3 20,10D,30 41,10,7370880 0,D,30 0,A,-3382109 0,B,15122165 0,C,51 40,104,12 31,111,13 34,10C,1144 34,20,98,-23,-10 0,21,-2,0,-2 18,10D,30 38,10,7370900 0,D,29 0,A,-3382108 0,B,15122167 0,C,51 41,104,18 40,111,12 34,10C,1207 34,20,105,-17,-13 0,21,-1,1,0 19,10D,30 37,10,7370920 0,D,29 0,A,-3382107 0,B,15122168 0,C,51 40,104,20 28,111,12 34,10C,1203 46,20,103,-25,4 0,21,0,0,0 19,10D,29 48,104,20 30,111,12 30,10C,1199 45,10D,29 36,20,121,-5,0 0,21,0,0,-1 22,104,21 32,111,12 29,10C,1199 47,10D,29 49,104,21 24,20,99,-24,-9 0,21,0,-1,0 21,10,7370980 0,D,29 0,A,-3382104 0,B,15122172 0,C,51 62,111,12 33,10C,1199 42,10D,29 45,104,21 21,20,91,-30,-3 0,21,0,0,0 17,10,7371000 0,D,29 0,A,-3382103 0,B,15122173 0,C,51 66,111,12 42,10C,1187 44,10D,28 37,20,98,-25,-6 0,21,0,0,-1 22,104,21 26,111,12 30,10C,1191 47,10D,28 48,104,21 23,10,7371040 0,D,29 0,A,-3382101 0,B,15122176 0,C,51 40,111,12 18,20,128,2,-5 0,21,0,-1,-2 21,10C,1203 44,10D,28 44,104,21 31,111,12 30,10C,1203 34,20,99,-31,18 0,21,0,0,2 19,10D,28 48,104,21 37,111,12 31,10C,1210 67,10D,28 38,20,118,-17,-15 0,21,0,0,1 19,104,21 30,111,12 34,10C,1199 34,10,7371100 0,D,29 0,A,-3382097 0,B,15122179 0,C,51 41,10D,28 44,20,90,-28,-14 0,21,0,0,3 20,104,21 39,111,12 30,10C,1207 44,10D,28 46,104,20 21,20,102,-23,-6 0,21,-1,0,0 20,111,12 29,10C,1210 55,10D,28 49,104,20 30,111,12 21,20,106,-20,-12 0,21,-1,-1,0 20,10C,1214 42,10D,28 47,104,20 30,111,12 30,10C,1218 35,20,103,-24,-7 0,21,-1,0,0 19,10D,28 46,104,20 23,10,7371180 0,D,29 0,A,-3382093 0,B,15122184 0,C,51 40,111,12 31,10C,1222 43,20,105,-22,-12 0,21,-1,0,0 21,10D,28 46,104,20 22,10,7371200 0,D,29 0,A,-3382092 0,B,15122185 0,C,51 40,111,12 28,10C,1218 43,20,100,-23,-10 0,21,0,0,0 20,10D,28 53,104,21 21,10,7371220 0,D,29 0,A,-3382091 0,B,15122187 0,C,51 40,111,14 37,10C,1230 34,20,100,-25,-7 0,21,0,0,0 20,10D,28 43,10,7371240 0,D,29 0,A,-3382090 0,B,15122188 0,C,51 41,104,25 28,111,14 30,10C,1246 40,20,101,-24,-12 0,21,0,0,-1 18,10D,28 47,104,28 22,10,7371260 0,D,29 0,A,-3382089 0,B,15122189 0,C,51 41,111,14 27,10C,1269 42,10D,28 38,20,103,-23,-7 0,21,0,-1,0 18,104,29 32,111,14 23,10,7371280 0,D,29 0,A,-3382088 0,B,15122190 0,C,48 41,10C,1281 40,10D,28 45,104,29 21,20,99,-20,-10 0,21,0,-1,0 21,111,14 32,10,7371300 0,D,29 0,A,-3382087 0,B,15122191 0,C,48 46,10C,1308 40,10D,28 45,104,28 30,20,94,-25,-14 0,21,-1,0,0 21,111,14 27,10C,1304 48,10D,28 49,104,28 30,111,15 28,20,95,-21,-13 0,21,-2,0,-3 21,10C,1296 40,10D,28 50,104,31 29,111,15 32,10C,1289 34,20,108,-18,-19 0,21,-2,0,0 21,10D,29 43,104,32 30,111,15 30,10C,1285 45,10D,29 38,20,99,-16,-11 0,21,-2,0,0 24,104,33 28,111,15 30,10C,1281 46,10D,29 48,104,33 22,10,7371400 0,D,30 0,A,-3382081 0,B,15122197 0,C,48 41,111,15 19,20,108,-14,-24 0,21,-2,1,-2 20,10C,1261 45,10D,29 48,104,33 32,10,7371420 0,D,30 0,A,-3382080 0,B,15122198 0,C,48 41,111,15 20,20,101,-25,-15 0,21,-2,0,2 19,10C,1261 53,10D,30 46,104,33 22,10,7371440 0,D,30 0,A,-3382079 0,B,15122200 0,C,48 41,111,15 23,20,95,-26,-9 0,21,-2,0,-2 21,10C,1242 44,10D,30 48,104,33 23,10,7371460 0,D,30 0,A,-3382078 0,B,15122201 0,C,48 39,111,15 29,20,103,-22,-20 0,21,-2,0,0 20,10C,1234 44,10D,30 45,104,34 21,10,7371480 0,D,30 0,A,-3382077 0,B,15122202 0,C,48 41,111,15 28,10C,1218 34,20,104,-15,-18 0,21,-1,0,-2 20,10D,30 45,104,35 24,10,7371500 0,D,30 0,A,-3382075 0,B,15122204 0,C,48 42,111,15 30,10C,1222 39,20,97,-26,-13 0,21,-1,0,-1 21,10D,30 54,104,35 31,10,7371520 0,D,30 0,A,-3382074 0,B,15122205 0,C,48 40,111,15 31,10C,1238 35,20,85,-29,-20 0,21,-1,0,0 20,10D,30 43,104,36 21,10,7371540 0,D,30 0,A,-3382073 0,B,15122206 0,C,48 41,111,15 28,10C,1285 47,20,130,10,-14 0,21,-1,1,-1 19,10D,30 43,104,35 22,10,7371560 0,D,30 0,A,-3382072 0,B,15122208 0,C,48 41,111,16 31,10C,1300 43,10D,30 36,20,107,-12,-10 0,21,-2,0,0 21,104,37 20,10,7371580 0,D,30 0,A,-3382071 0,B,15122209 0,C,48 55,111,16 38,10C,1328 46,10D,30 37,20,85,-23,-4 0,21,-1,0,0 20,104,40 32,111,16 29,10C,1324 43,10D,30 46,104,40 31,111,16 22,20,97,-26,-19 0,21,-2,0,0 17,10,7371620 0,D,31 0,A,-3382069 0,B,15122212 0,C,48 66,10C,1308 55,10D,30 44,104,41 22,20,95,-13,-15 0,21,-2,0,1 16,10,7371640 0,D,31 0,A,-3382068 0,B,15122213 0,C,48 67,111,16 31,10C,1261 45,10D,30 43,20,102,-17,-15 0,21,-3,-1,0 21,104,41 31,111,16 29,10C,1250 43,10D,30 48,104,41 34,20,102,-21,-14 0,21,-2,-1,0 18,10,7371680 0,D,31 0,A,-3382065 0,B,15122216 0,C,48 65,111,14 32,10C,1234 44,10D,30 43,20,116,-16,-18 0,21,-3,-3,0 20,104,33 28,111,14 30,10C,1265 46,10D,30 49,104,29 21,10,7371720 0,D,32 0,A,-3382063 0,B,15122219 0,C,48 41,111,13 19,20,123,-9,-11 0,21,-3,0,-1 20,10C,1261 54,10D,30 45,104,25 21,10,7371740 0,D,31 0,A,-3382062 0,B,15122220 0,C,48 45,111,12 20,20,98,-21,-12 0,21,-2,0,-1 19,10C,1230 44,10D,30 44,104,21 24,10,7371760 0,D,31 0,A,-3382061 0,B,15122221 0,C,48 40,111,12 27,10C,1222 35,20,107,-20,-11 0,21,-2,0,0 20,10D,30 46,104,18 30,111,12 35,10C,1218 35,10,7371780 0,D,31 0,A,-3382060 0,B,15122223 0,C,3 39,10D,30 35,20,99,-24,-19 0,21,-2,0,-1 19,104,18 25,10,7371800 0,D,31 0,A,-3382059 0,B,15122224 0,C,3 51,111,12 32,10C,1179 43,10D,30 37,20,97,-29,-15 0,21,-2,0,0 19,104,20 29,111,13 40,10C,1148 43,10D,30 45,104,23 71,20,82,-29,-18 0,21,0,2,1 21,111,14 32,10C,1199 42,10D,30 49,104,26 31,111,15 24,10,7371860 0,D,31 0,A,-3382056 0,B,15122229 0,C,3 40,10C,1203 32,20,109,-18,-10 0,21,0,0,-3 20,10D,30 43,104,33 32,111,16 35,10C,1238 43,10D,30 38,20,96,-24,2 0,21,0,0,-1 19,104,37 28,111,16 31,10C,1238 43,10D,30 62,104,40 21,20,110,-11,-5 0,21,0,0,0 20,111,16 28,10C,1250 44,10D,30 47,104,40 29,111,16 30,10C,1253 34,20,96,-30,-5 0,21,0,0,1 20,10D,30 54,10,7371940 0,D,31 0,A,-3382052 0,B,15122235 0,C,3 39,104,40 27,111,16 48,10C,1277 34,20,93,-27,-4 0,21,0,0,0 20,10D,30 44,104,40 30,111,16 30,10C,1285 43,10D,30 37,20,102,-17,-3 0,21,0,0,0 19,104,40 29,111,16 21,10,7371980 0,D,31 0,A,-3382050 0,B,15122237 0,C,3 39,10C,1300 41,10D,30 50,104,38 20,20,96,-20,-1 0,21,0,0,0 18,111,16 22,10,7372000 0,D,31 0,A,-3382049 0,B,15122239 0,C,3 54,10C,1324 42,10D,30 48,104,37 22,20,102,-17,-6 0,21,0,0,0 20,111,16 20,10,7372020 0,D,31 0,A,-3382047 0,B,15122240 0,C,3 54,10C,1316 45,10D,30 48,104,37 31,20,97,-23,-6 0,21,0,0,0 20,111,15 32,10C,1285 47,10D,30 62,104,31 31,111,13 22,20,93,-21,-12 0,21,-1,0,-1 16,10,7372060 0,D,31 0,A,-3382045 0,B,15122243 0,C,3 66,10C,1234 44,10D,30 44,104,26 31,111,13 21,20,96,-29,-7 0,21,-1,0,0 21,10C,1242 44,10D,30 50,104,22 27,111,12 27,10,7372100 0,D,32 0,A,-3382043 0,B,15122246 0,C,3 40,10C,1238 32,20,109,-19,-10 0,21,-1,0,0 20,10D,30 47,104,21 32,111,14 27,10,7372120 0,D,31 0,A,-3382042 0,B,15122247 0,C,3 40,10C,1242 37,20,93,-29,-4 0,21,-1,0,0 19,10D,30 44,104,25 32,111,14 40,10C,1242 43,10D,30 38,20,96,-18,-10 0,21,-1,0,0 23,104,27 28,111,14 32,10C,1214 44,10D,30 38,10,7372160 0,D,31 0,A,-3382040 0,B,15122250 0,C,50 40,104,27 20,20,103,-16,-5 0,21,-1,-1,0 19,111,14 31,10C,1195 43,10D,30 50,104,28 40,111,14 21,20,103,-27,-13 0,21,0,0,0 20,10C,1183 42,10D,30 47,104,29 30,111,14 30,10C,1195 33,20,91,-24,-11 0,21,-1,0,0 21,10D,30 45,104,29 23,10,7372220 0,D,31 0,A,-3382036 0,B,15122254 0,C,50 40,111,14 32,10C,1207 39,20,105,-22,-14 0,21,-1,0,1 20,10D,30 46,104,29 31,10,7372240 0,D,31 0,A,-3382035 0,B,15122255 0,C,50 45,111,14 28,10C,1218 35,20,94,-24,-9 0,21,-1,0,0 19,10D,30 46,104,29 23,10,7372260 0,D,31 0,A,-3382034 0,B,15122256 0,C,50 40,111,14 28,10C,1230 47,10D,30 47,20,91,-28,-8 0,21,-1,0,0 19,104,29 32,111,14 30,10C,1250 43,10D,30 45,104,28 35,20,97,-24,-12 0,21,-1,0,0 20,111,14 19,10,7372300 0,D,31 0,A,-3382032 0,B,15122259 0,C,50 56,10C,1277 41,10D,30 45,104,28 20,20,105,-19,-6 0,21,-1,0,0 22,111,14 19,10,7372320 0,D,31 0,A,-3382031 0,B,15122260 0,C,50 56,10C,1289 44,10D,30 49,104,27 21,20,110,-15,-4 0,21,0,0,0 25,111,14 38,10C,1300 46,10D,30 49,104,26 32,111,13 21,20,99,-19,-2 0,21,0,0,0 21,10C,1296 41,10D,30 45,104,24 29,111,12 32,10C,1257 35,20,105,-26,-2 0,21,0,-1,0 20,10D,30 44,104,20 30,111,12 30,10C,1250 45,10D,30 37,20,104,-10,-3 0,21,0,0,-2 21,104,17 28,111,11 30,10C,1285 55,10D,30 44,104,14 22,10,7372420 0,D,31 0,A,-3382025 0,B,15122267 0,C,50 42,111,11 19,20,87,-27,-2 0,21,0,0,0 20,10C,1273 40,10D,30 45,104,13 31,111,11 30,10C,1242 44,20,108,-25,-6 0,21,0,0,0 19,10D,30 47,104,14 28,111,13 35,10C,1167 48,10D,30 37,20,103,-21,0 0,21,0,-1,0 20,104,20 27,111,13 32,10C,1218 44,10D,29 39,10,7372480 0,D,31 0,A,-3382022 0,B,15122270 0,C,50 39,104,21 20,20,100,-22,-12 0,21,0,-1,0 20,111,13 30,10C,1203 47,10D,29 50,104,22 34,111,13 21,20,100,-19,-6 0,21,0,0,0 20,10C,1183 42,10D,29 47,104,23 30,111,12 30,10C,1191 34,20,102,-22,-9 0,21,-1,0,0 20,10D,29 56,104,20 23,10,7372540 0,D,28 0,A,-3382018 0,B,15122274 0,C,50 40,111,12 37,10C,1187 33,20,98,-29,-13 0,21,-1,-1,0 21,10D,28 43,104,16 21,10,7372560 0,D,28 0,A,-3382017 0,B,15122275 0,C,50 45,111,11 32,10C,1230 39,20,104,-20,-12 0,21,-1,0,-1 20,10D,28 47,104,14 21,10,7372580 0,D,28 0,A,-3382016 0,B,15122276 0,C,50 40,111,11 32,10C,1242 43,10D,28 37,20,95,-32,-11 0,21,-1,0,0 19,104,12 21,10,7372600 0,D,28 0,A,-3382015 0,B,15122277 0,C,50 55,111,11 29,10C,1234 46,10D,28 37,20,94,-30,-17 0,21,-1,1,1 20,104,12 28,111,11 30,10C,1199 42,10D,28 57,104,12 30,20,87,-31,-2 0,21,-1,0,0 21,111,11 29,10C,1148 46,10D,28 55,104,13 29,111,11 20,20,97,-31,-11 0,21,-1,0,0 22,10C,1148 49,10D,28 49,104,13 30,111,11 31,10C,1203 35,20,95,-32,-11 0,21,-1,0,0 21,10D,28 47,104,12 29,111,11 30,10C,1210 46,10D,28 37,20,105,-26,-11 0,21,-1,0,-1 21,104,12 27,111,11 30,10C,1210 46,10D,28 48,104,12 31,111,11 21,20,97,-22,-13 0,21,-1,0,0 21,10C,1214 44,10D,28 49,104,12 29,111,11 29,10C,1207 35,20,101,-27,-15 0,21,-1,-1,-1 21,10D,28 47,104,12 39,111,11 70,10C,1203 35,20,109,-21,-9 0,21,-1,0,-1 17,10,7372760 0,D,28 0,A,-3382006 0,B,15122286 0,C,49 66,10D,28 46,104,12 31,111,11 31,10C,1199 33,20,89,-24,-6 0,21,-1,-1,0 24,10D,28 44,104,12 32,111,11 30,10C,1175 43,10D,28 38,20,124,-19,-4 0,21,-1,0,2 20,104,12 27,111,11 32,10C,1195 43,10D,28 47,104,12 30,111,11 21,20,102,-36,-24 0,21,-1,1,0 20,10C,1226 43,10D,27 47,104,12 33,111,11 30,10C,1226 34,20,103,-27,-22 0,21,-1,0,0 20,10D,27 56,104,12 22,10,7372860 0,D,27 0,A,-3382001 0,B,15122292 0,C,49 41,111,11 27,10C,1214 34,20,94,-32,-16 0,21,-1,0,1 20,10D,27 46,104,12 30,111,11 31,10C,1210 54,10D,27 38,20,79,-36,-17 0,21,-1,0,0 20,104,12 25,111,11 31,10C,1207 52,10D,26 49,104,12 27,20,89,-38,-17 0,21,-2,0,0 18,111,11 30,10C,1203 36,10,7372920 0,D,27 0,A,-3381998 0,B,15122295 0,C,49 41,10D,26 43,104,12 30,111,11 21,20,101,-18,-22 0,21,-2,0,0 18,10C,1199 46,10D,26 50,104,12 29,111,11 30,10C,1207 34,20,108,-22,-16 0,21,-2,0,2 19,10D,26 46,10,7372960 0,D,26 0,A,-3381996 0,B,15122297 0,C,49 41,104,12 31,111,11 43,10C,1207 34,20,98,-28,-14 0,21,-2,-1,0 21,10D,26 45,10,7372980 0,D,26 0,A,-3381995 0,B,15122298 0,C,49 41,104,12 28,111,11 33,10C,1191 34,20,92,-38,0 0,21,-2,0,0 24,10D,26 45,104,12 30,111,11 30,10C,1175 46,10D,26 37,20,103,-27,-17 0,21,-3,-1,0 20,104,12 29,111,11 34,10C,1160 46,10D,26 49,104,13 25,20,114,-31,-25 0,21,-2,0,2 17,10,7373040 0,D,25 0,A,-3381992 0,B,15122301 0,C,49 67,111,11 31,10C,1144 43,10D,25 42,20,94,-33,-27 0,21,-2,0,-1 15,10,7373060 0,D,24 0,A,-3381991 0,B,15122302 0,C,49 68,104,13 42,111,12 33,10C,1109 43,20,78,-53,-11 0,21,-2,1,4 15,10,7373080 0,D,23 0,A,-3381990 0,B,15122303 0,C,49 68,10D,25 44,104,15 28,111,11 32,10C,1003 35,20,109,-25,-13 0,21,-2,0,0 25,10D,25 44,104,17 32,111,12 34,10C,917 45,10D,22 38,20,98,-27,-18 0,21,-1,0,-1 15,10,7373120 0,D,22 0,A,-3381989 0,B,15122305 0,C,49 68,104,20 43,111,11 33,10C,890 35,10,7373140 0,D,21 0,A,-3381988 0,B,15122306 0,C,49 41,10D,22 34,20,89,-42,-12 0,21,-1,0,1 20,104,20 28,111,11 31,10C,859 36,10,7373160 0,D,20 0,A,-3381987 0,B,15122307 0,C,49 40,10D,22 47,104,20 31,20,95,-34,-20 0,21,0,0,0 19,111,11 30,10C,828 36,10,7373180 0,D,19 0,A,-3381986 0,B,15122308 0,C,49 41,10D,22 43,104,20 30,111,11 25,20,104,-30,-9 0,21,0,0,1 19,10C,804 42,10D,19 49,104,21 29,111,11 30,10C,789 34,20,91,-35,-12 0,21,0,0,0 19,10D,19 48,104,21 30,111,11 30,10C,785 46,10D,19 36,20,97,-31,-6 0,21,0,0,0 21,104,21 19,10,7373240 0,D,17 0,A,-3381984 0,B,15122310 0,C,49 56,111,11 32,10C,792 45,10D,19 37,20,81,-48,-18 0,21,0,0,2 20,104,21 33,111,11 39,10C,804 46,10D,18 57,104,21 22,20,90,-22,0 0,21,0,0,0 20,111,11 32,10C,804 42,10D,18 45,104,21 32,111,11 26,10,7373300 0,D,17 0,A,-3381982 0,B,15122312 0,C,49 41,10C,812 32,20,86,-33,-7 0,21,1,0,0 24,10D,18 45,104,21 30,111,11 28,10,7373320 0,D,17 0,A,-3381982 0,B,15122313 0,C,49 40,10C,816 37,20,106,-20,-4 0,21,1,-1,0 20,10D,18 43,104,21 41,111,11 30,10C,824 47,10D,18 38,20,102,-23,-2 0,21,2,-1,0 19,104,21 31,111,11 32,10C,828 43,10D,18 56,104,21 22,20,99,-29,-2 0,21,2,-1,0 19,111,11 31,10C,839 48,10,7373380 0,D,16 0,A,-3381980 0,B,15122315 0,C,49 41,10D,18 44,104,20 21,20,104,-29,-8 0,21,2,-1,0 20,111,11 30,10C,843 42,10D,18 38,10,7373400 0,D,16 0,A,-3381979 0,B,15122315 0,C,49 45,104,20 27,111,11 22,20,88,-31,-5 0,21,1,-1,0 19,10C,835 38,10D,18 47,104,20 30,111,11 30,10C,828 38,20,96,-31,-9 0,21,0,-1,0 19,10D,18 42,104,20 24,10,7373440 0,D,17 0,A,-3381978 0,B,15122316 0,C,49 39,111,11 28,10C,804 46,10D,18 37,20,97,-35,0 0,21,1,0,0 20,104,21 28,111,11 30,10C,789 43,10D,18 45,104,21 30,111,11 29,20,98,-30,-4 0,21,0,-1,0 21,10C,777 42,10D,18 57,104,21 30,111,11 32,10C,781 33,20,101,-27,-21 0,21,0,0,0 21,10D,18 43,104,22 34,111,11 33,10C,773 44,10D,18 38,20,99,-33,-20 0,21,-1,0,0 25,104,22 28,111,11 29,10C,777 46,10D,18 44,104,22 23,10,7373540 0,D,18 0,A,-3381974 0,B,15122319 0,C,49 42,111,11 18,20,96,-28,-16 0,21,-2,0,0 21,10C,761 40,10D,19 48,104,22 34,111,11 30,10C,765 34,20,95,-39,-23 0,21,-2,0,1 21,10D,19 43,104,22 31,111,11 40,10C,785 47,10D,19 37,20,91,-35,-22 0,21,-3,0,0 20,104,22 32,111,11 30,10C,769 43,10D,19 50,104,22 31,20,82,-41,-20 0,21,-4,1,0 20,111,11 30,10C,785 46,10D,20 37,10,7373620 0,D,18 0,A,-3381970 0,B,15122321 0,C,49 41,104,22 28,20,106,-21,-14 0,21,-4,0,0 23,111,11 32,10C,777 42,10D,20 38,10,7373640 0,D,19 0,A,-3381970 0,B,15122322 0,C,49 40,104,22 25,20,86,-40,-27 0,21,-4,2,0 19,111,11 28,10C,804 49,10D,20 38,10,7373660 0,D,19 0,A,-3381969 0,B,15122322 0,C,49 40,104,21 27,20,98,-24,-10 0,21,-3,1,0 21,111,11 34,10C,804 42,10D,20 47,10,7373680 0,D,19 0,A,-3381968 0,B,15122323 0,C,49 40,104,21 19,20,109,-37,-8 0,21,-4,0,0 21,111,11 26,10C,808 45,10D,21 38,10,7373700 0,D,20 0,A,-3381967 0,B,15122324 0,C,49 41,104,20 27,111,11 21,20,105,-26,-6 0,21,-3,0,0 21,10C,796 47,10D,21 49,10,7373720 0,D,20 0,A,-3381966 0,B,15122325 0,C,49 40,104,21 31,111,11 21,20,97,-29,-11 0,21,-3,0,-1 20,10C,820 39,10D,21 38,10,7373740 0,D,20 0,A,-3381966 0,B,15122326 0,C,49 41,104,21 31,111,11 30,10C,824 34,20,82,-46,-11 0,21,-3,1,0 19,10D,22 37,10,7373760 0,D,20 0,A,-3381965 0,B,15122327 0,C,49 40,104,21 32,111,11 32,10C,828 42,20,107,-34,-14 0,21,-3,0,0 19,10D,22 37,10,7373780 0,D,20 0,A,-3381964 0,B,15122327 0,C,49 41,104,21 36,111,11 30,10C,820 38,20,74,-56,-16 0,21,-2,1,-3 18,10D,22 42,10,7373800 0,D,21 0,A,-3381963 0,B,15122328 0,C,49 40,104,21 28,111,11 30,10C,824 42,20,102,-33,-14 0,21,-3,1,0 18,10D,22 37,10,7373820 0,D,20 0,A,-3381963 0,B,15122329 0,C,49 41,104,21 32,111,11 29,10C,839 45,10D,22 37,20,108,-32,-26 0,21,-2,0,0 21,104,20 27,111,11 30,10C,835 54,10D,22 44,104,20 23,10,7373860 0,D,20 0,A,-3381961 0,B,15122331 0,C,49 42,111,11 18,20,88,-42,-21 0,21,-2,0,-1 21,10C,824 44,10D,22 48,104,20 30,111,11 30,10C,839 34,20,92,-41,-21 0,21,-3,0,0 21,10D,22 55,104,20 32,111,11 34,10C,828 40,10,7373900 0,D,20 0,A,-3381960 0,B,15122333 0,C,39 40,10D,21 35,20,102,-40,-14 0,21,-2,0,1 20,104,20 29,111,11 31,10C,808 43,10D,21 45,104,20 30,111,11 21,20,77,-44,-11 0,21,-2,1,0 20,10C,828 41,10D,21 50,104,21 33,111,11 29,10C,824 34,20,100,-32,-15 0,21,-2,0,0 20,10D,21 48,104,20 29,111,11 30,10C,832 46,10D,20 47,20,99,-31,-10 0,21,-2,0,-2 20,104,20 27,111,11 30,10C,820 46,10D,20 59,104,20 20,20,105,-41,-13 0,21,-2,0,1 21,111,11 19,10,7374000 0,D,18 0,A,-3381957 0,B,15122337 0,C,39 56,10C,820 44,10D,20 59,104,20 20,20,78,-57,-20 0,21,-2,0,3 22,111,11 30,10C,824 42,10D,20 47,104,20 27,111,11 31,10,7374040 0,D,19 0,A,-3381956 0,B,15122339 0,C,39 41,10C,824 32,20,92,-33,-10 0,21,-2,-1,0 19,10D,20 44,104,20 29,111,11 33,10C,824 34,10,7374060 0,D,18 0,A,-3381955 0,B,15122340 0,C,39 40,10D,20 35,20,94,-38,-13 0,21,-1,0,0 21,104,20 26,111,11 32,10C,839 47,10D,20 55,104,20 22,20,103,-32,-16 0,21,-1,0,1 20,111,11 36,10C,828 39,10,7374100 0,D,18 0,A,-3381954 0,B,15122342 0,C,39 41,10D,20 43,104,20 22,20,100,-26,-7 0,21,-1,0,0 23,111,11 31,10C,824 47,10D,20 50,104,20 33,111,11 21,20,86,-41,-11 0,21,-1,0,1 21,10C,839 42,10D,20 46,104,20 30,111,11 29,10C,828 34,20,98,-27,-12 0,21,0,0,-1 21,10D,20 45,104,20 30,111,11 31,10C,839 45,10D,20 38,20,92,-36,-8 0,21,0,0,-1 19,104,20 26,111,11 27,10,7374180 0,D,17 0,A,-3381952 0,B,15122345 0,C,39 41,10C,835 44,10D,20 45,104,20 30,20,94,-37,-11 0,21,0,0,0 20,111,11 40,10C,847 36,10,7374200 0,D,17 0,A,-3381952 0,B,15122346 0,C,33 40,10D,20 43,104,20 21,20,83,-41,-9 0,21,0,0,0 23,111,11 32,10C,851 43,10D,20 47,104,20 29,111,11 26,20,116,-19,5 0,21,0,0,0 17,10C,839 41,10D,20 47,104,20 33,111,11 30,10C,843 34,20,85,-35,-10 0,21,0,0,4 19,10D,20 48,104,20 34,111,11 34,10C,832 42,10D,20 37,20,81,-50,-11 0,21,0,0,1 19,104,20 29,111,11 29,10C,843 46,10D,20 50,104,20 29,20,73,-41,-26 0,21,0,0,1 20,111,11 20,10,7374300 0,D,18 0,A,-3381949 0,B,15122350 0,C,33 56,10C,851 44,10D,20 45,104,20 21,20,100,-29,-3 0,21,0,0,2 21,111,11 27,10C,843 57,10D,20 49,104,20 28,111,11 21,20,89,-39,-13 0,21,0,0,1 24,10C,839 41,10D,20 45,104,20 39,111,11 32,10C,828 34,20,109,-38,-6 0,21,0,-1,0 21,10D,20 43,104,20 30,111,11 30,10C,828 46,10D,20 37,20,88,-52,3 0,21,0,-3,-1 20,104,20 28,111,11 31,10C,816 46,10D,19 48,104,20 31,20,95,-51,-11 0,21,2,-1,2 21,111,11 28,10C,808 46,10D,19 49,104,20 28,111,11 30,20,103,-33,4 0,21,3,-1,-3 22,10C,804 40,10D,19 60,104,21 29,111,11 31,10C,789 33,20,84,-44,3 0,21,4,0,-1 16,10,7374440 0,D,16 0,A,-3381944 0,B,15122355 0,C,33 67,10D,19 43,104,21 29,111,11 22,10,7374460 0,D,16 0,A,-3381943 0,B,15122356 0,C,33 47,10C,789 31,20,112,-31,1 0,21,4,-2,-1 21,10D,17 46,104,21 29,111,11 30,10C,781 43,10D,17 38,20,107,-41,0 0,21,4,-2,0 20,104,21 27,111,11 32,10C,777 43,10D,17 56,104,22 22,20,92,-45,-5 0,21,4,-4,0 19,111,11 32,10C,785 44,10D,17 39,10,7374520 0,D,13 0,A,-3381941 0,B,15122357 0,C,33 41,104,22 28,111,11 21,20,100,-53,-11 0,21,5,-3,1 20,10C,785 38,10D,15 48,104,22 42,111,11 32,10C,792 35,20,97,-44,1 0,21,4,-2,0 20,10D,15 46,104,21 22,10,7374560 0,D,11 0,A,-3381940 0,B,15122357 0,C,33 44,111,11 32,10C,792 39,20,94,-39,-14 0,21,3,-3,-1 19,10D,15 46,104,21 23,10,7374580 0,D,11 0,A,-3381939 0,B,15122357 0,C,33 40,111,11 28,10C,796 46,10D,15 36,20,96,-37,-9 0,21,2,-3,0 20,104,21 21,10,7374600 0,D,11 0,A,-3381939 0,B,15122357 0,C,33 56,111,11 37,10C,800 43,10D,14 35,20,95,-34,-16 0,21,2,-2,0 22,104,21 28,111,11 29,10C,804 46,10D,14 50,104,20 25,20,102,-37,-10 0,21,1,-1,-1 17,10,7374640 0,D,12 0,A,-3381937 0,B,15122358 0,C,33 66,111,11 29,10C,808 42,10D,14 44,104,21 21,20,85,-51,-17 0,21,0,0,-1 21,10,7374660 0,D,12 0,A,-3381936 0,B,15122358 0,C,33 62,111,11 28,10C,800 45,10D,14 47,20,103,-32,-23 0,21,0,-1,0 21,104,21 31,111,11 39,10C,800 46,10D,14 45,104,21 30,20,97,-40,-23 0,21,-1,0,0 16,10,7374700 0,D,13 0,A,-3381935 0,B,15122359 0,C,33 67,111,11 41,10C,781 45,10D,14 37,20,98,-39,-16 0,21,-2,0,-1 17,10,7374720 0,D,12 0,A,-3381934 0,B,15122359 0,C,33 66,104,22 32,111,12 27,10C,789 47,10D,13 38,20,105,-37,-20 0,21,-3,1,0 17,10,7374740 0,D,12 0,A,-3381933 0,B,15122360 0,C,28 66,104,27 27,111,12 35,10,7374760 0,D,13 0,A,-3381933 0,B,15122360 0,C,28 40,10C,878 32,20,99,-36,-23 0,21,-3,1,0 20,10D,13 44,104,24 31,111,12 30,10C,898 35,10,7374780 0,D,13 0,A,-3381932 0,B,15122361 0,C,28 41,10D,13 35,20,97,-42,-19 0,21,-4,1,0 19,104,24 28,111,12 31,10C,886 44,10D,13 45,104,23 29,111,12 22,20,86,-48,-34 0,21,-5,2,0 20,10C,875 62,10D,12 46,104,23 34,111,12 32,10C,863 34,20,98,-39,-22 0,21,-6,2,-1 21,10D,12 44,104,23 22,10,7374840 0,D,13 0,A,-3381930 0,B,15122362 0,C,28 41,111,12 28,10C,875 45,10D,12 42,20,93,-42,-21 0,21,-6,3,0 20,104,24 29,111,12 30,10C,890 46,10D,12 48,104,23 27,20,95,-35,-21 0,21,-7,3,0 16,10,7374880 0,D,9 0,A,-3381929 0,B,15122363 0,C,28 67,111,12 30,10C,890 46,10D,11 41,20,104,-41,-21 0,21,-7,2,0 17,10,7374900 0,D,9 0,A,-3381929 0,B,15122364 0,C,28 67,104,26 28,111,12 30,10C,917 44,10D,11 47,20,94,-44,-21 0,21,-8,1,0 20,104,27 28,111,12 34,10C,945 42,10D,11 61,104,26 22,20,94,-37,-19 0,21,-8,2,0 21,111,12 31,10C,953 46,10D,9 48,104,26 31,111,12 26,20,92,-40,-29 0,21,-8,3,0 20,10C,968 49,10D,9 44,104,26 32,111,12 35,10C,964 33,20,98,-33,-21 0,21,-9,2,-1 21,10D,9 43,104,26 30,111,12 31,10C,968 43,10D,9 38,20,102,-33,-22 0,21,-10,2,0 18,10,7375000 0,D,9 0,A,-3381927 0,B,15122367 0,C,29 65,104,25 31,111,12 30,10C,960 43,10,7375020 0,D,7 0,A,-3381927 0,B,15122367 0,C,29 41,10D,8 34,20,98,-35,-14 0,21,-10,2,0 20,104,24 26,111,12 33,10C,957 35,10,7375040 0,D,7 0,A,-3381926 0,B,15122368 0,C,29 41,10D,8 43,104,23 20,20,93,-38,-20 0,21,-11,2,0 21,111,12 29,10C,937 44,10D,8 45,104,23 51,111,12 25,20,101,-31,-34 0,21,-13,0,0 20,10C,921 45,10D,8 39,10,7375080 0,D,7 0,A,-3381926 0,B,15122369 0,C,30 40,104,23 27,111,12 30,20,99,-39,-22 0,21,-13,2,0 19,10C,886 44,10D,8 50,104,23 30,111,12 29,10C,863 34,20,99,-32,-31 0,21,-13,0,0 19,10D,8 49,104,23 38,111,12 30,10C,855 46,10D,8 37,20,99,-36,-38 0,21,-13,2,0 20,104,24 20,10,7375140 0,D,6 0,A,-3381926 0,B,15122370 0,C,30 55,111,14 31,10C,851 46,10D,8 37,20,92,-41,-31 0,21,-13,1,0 21,104,32 28,111,14 33,10C,945 46,10D,7 49,104,33 25,20,100,-35,-29 0,21,-13,0,-1 36,111,14 31,10C,1027 43,10D,7 45,104,37 29,111,15 21,20,99,-28,-35 0,21,-13,2,0 21,10C,1097 45,10D,7 49,104,38 30,111,15 29,10C,1121 33,20,101,-23,-32 0,21,-12,2,0 22,10D,7 47,104,40 39,111,17 30,10C,1167 44,10D,6 37,20,94,-28,-26 0,21,-13,1,0 21,104,42 28,111,16 29,10C,1250 46,10D,6 48,104,45 23,10,7375260 0,D,6 0,A,-3381926 0,B,15122373 0,C,30 40,111,18 20,20,110,-15,-27 0,21,-13,3,0 19,10C,1332 45,10D,6 43,104,49 31,111,18 30,10C,1453 48,20,106,-6,-31 0,21,-14,3,0 19,10D,6 43,104,47 28,111,18 27,10,7375300 0,D,6 0,A,-3381927 0,B,15122374 0,C,30 44,10C,1535 42,20,91,-26,-26 0,21,-14,1,3 20,10D,7 43,104,46 32,111,17 29,10C,1578 44,10D,7 37,20,101,-7,-32 0,21,-15,2,0 21,104,43 35,111,17 32,10C,1554 44,10D,7 45,104,42 26,20,98,-11,-36 0,21,-15,2,0 20,111,17 31,10C,1535 46,10D,7 37,10,7375360 0,D,7 0,A,-3381928 0,B,15122374 0,C,30 41,104,40 28,20,94,-26,-37 0,21,-14,2,1 19,111,17 28,10C,1492 45,10D,8 38,10,7375380 0,D,8 0,A,-3381928 0,B,15122374 0,C,30 41,104,40 30,111,17 22,20,104,-5,-31 0,21,-15,2,0 23,10C,1472 43,10D,8 50,10,7375400 0,D,8 0,A,-3381928 0,B,15122375 0,C,30 40,104,42 27,111,17 22,20,117,-10,-21 0,21,-14,5,1 19,10C,1507 43,10D,8 47,10,7375420 0,D,8 0,A,-3381929 0,B,15122375 0,C,30 40,104,42 28,111,17 26,20,91,-21,-29 0,21,-15,3,0 20,10C,1527 49,10D,8 38,10,7375440 0,D,8 0,A,-3381929 0,B,15122375 0,C,30 40,104,42 28,111,17 26,20,117,-5,-24 0,21,-15,1,2 20,10C,1535 43,10D,8 38,10,7375460 0,D,8 0,A,-3381929 0,B,15122375 0,C,30 40,104,43 28,111,18 30,10C,1554 34,20,132,9,-17 0,21,-15,4,0 19,10D,8 52,104,44 30,111,18 30,10C,1589 43,10D,8 36,20,109,-5,-34 0,21,-15,2,0 20,104,44 32,111,18 34,10C,1609 46,10D,8 48,104,45 21,20,90,-21,-26 0,21,-15,0,3 20,111,18 20,10,7375520 0,D,9 0,A,-3381931 0,B,15122375 0,C,30 56,10C,1625 44,10D,9 49,104,46 42,20,104,-11,-30 0,21,-15,3,0 20,111,18 28,10C,1648 46,10D,9 49,104,45 28,111,18 30,10C,1656 35,20,103,-15,-31 0,21,-16,1,0 21,10D,9 47,104,45 33,111,18 31,10C,1664 44,10D,9 37,20,95,-8,-33 0,21,-16,1,0 18,10,7375580 0,D,9 0,A,-3381932 0,B,15122374 0,C,31 65,104,45 35,111,18 30,10C,1652 34,10,7375600 0,D,9 0,A,-3381932 0,B,15122374 0,C,31 41,10D,10 35,20,95,-25,-46 0,21,-17,2,0 21,104,44 29,111,18 30,10C,1585 35,10,7375620 0,D,10 0,A,-3381933 0,B,15122373 0,C,31 41,10D,10 44,104,47 20,20,89,-26,-34 0,21,-16,3,1 21,111,18 29,10C,1515 53,10D,10 46,104,47 30,111,18 33,20,105,-17,-13 0,21,-17,3,0 20,10C,1460 38,10,7375660 0,D,9 0,A,-3381933 0,B,15122373 0,C,31 40,10D,11 44,104,50 29,111,18 30,10C,1414 34,20,93,-28,-30 0,21,-17,3,0 20,10D,11 36,10,7375680 0,D,9 0,A,-3381933 0,B,15122372 0,C,31 45,104,51 32,111,18 30,10C,1320 37,20,94,-21,-26 0,21,-17,4,1 21,10D,11 35,10,7375700 0,D,10 0,A,-3381933 0,B,15122372 0,C,31 41,104,51 27,111,18 34,10C,1222 45,10D,11 37,20,94,-25,-44 0,21,-18,3,0 22,104,55 30,111,19 34,10C,1179 46,10D,12 49,104,62 31,20,121,0,-5 0,21,-18,3,0 16,10,7375740 0,D,10 0,A,-3381933 0,B,15122371 0,C,31 67,111,18 31,10C,1210 46,10D,12 47,20,103,-6,-18 0,21,-20,5,1 16,10,7375760 0,D,11 0,A,-3381933 0,B,15122370 0,C,31 67,104,60 28,111,15 31,10C,1199 43,10D,12 42,20,74,-33,-42 0,21,-22,7,1 21,104,47 26,111,14 34,10C,1140 52,10D,13 38,10,7375800 0,D,12 0,A,-3381933 0,B,15122369 0,C,31 40,104,41 20,20,87,-37,-12 0,21,-23,4,2 19,111,14 32,10C,1207 41,10D,13 39,10,7375820 0,D,12 0,A,-3381933 0,B,15122368 0,C,31 41,104,33 30,111,13 22,20,95,-24,-28 0,21,-22,4,3 20,10C,1167 42,10D,13 47,104,27 39,111,12 30,10C,1148 34,20,87,-31,-25 0,21,-21,3,3 19,10D,13 48,104,23 21,10,7375860 0,D,13 0,A,-3381932 0,B,15122367 0,C,31 41,111,12 19,10,7375812 0,D,13 0,A,1186 0,B,13333 0,C,19 40,10C,1140 32,20,101,-24,-15 0,21,-19,3,4 20,10D,14 48,104,18 23,10,7375880 0,D,13 0,A,-3381932 0,B,15122367 0,C,33 40,111,11 32,10C,1031 39,20,94,-24,-2 0,21,-16,1,4 18,10D,14 48,104,20 23,10,7375900 0,D,13 0,A,-3381931 0,B,15122366 0,C,33 41,111,12 31,10C,917 39,20,105,-24,-10 0,21,-13,2,2 18,10D,14 55,104,20 30,111,11 30,10C,933 46,10D,14 38,20,108,-35,2 0,21,-9,1,0 19,104,20 28,111,11 23,10,7375940 0,D,13 0,A,-3381930 0,B,15122365 0,C,32 40,10C,882 49,10D,14 42,20,80,-31,-5 0,21,-6,1,-2 20,104,20 24,10,7375960 0,D,14 0,A,-3381929 0,B,15122365 0,C,32 52,111,11 30,10C,859 43,10D,14 37,20,99,-34,16 0,21,-4,-3,0 20,104,20 20,10,7375980 0,D,14 0,A,-3381929 0,B,15122364 0,C,32 55,111,11 31,10C,816 43,10D,14 37,20,97,-36,13 0,21,0,-1,0 20,104,25 28,111,12 30,10C,832 46,10D,14 49,104,25 28,111,12 21,20,94,-39,11 0,21,3,-2,0 21,10C,878 41,10D,14 49,104,24 70,111,12 21,20,106,-36,6 0,21,5,-2,0 17,10,7380040 0,D,13 0,A,-3381927 0,B,15122363 0,C,32 67,10C,902 54,10D,14 44,104,23 22,20,97,-40,2 0,21,6,-5,1 20,10,7380060 0,D,13 0,A,-3381927 0,B,15122362 0,C,32 63,111,12 31,10C,898 45,10D,14 42,20,86,-49,1 0,21,7,-3,-2 22,104,23 31,111,12 29,10C,906 46,10D,14 49,104,23 22,10,7380100 0,D,13 0,A,-3381926 0,B,15122361 0,C,32 41,111,12 18,20,94,-42,13 0,21,10,-6,-1 21,10C,882 44,10D,14 44,104,23 31,111,12 29,10C,898 44,20,92,-43,4 0,21,10,-6,0 20,10D,14 47,104,23 29,111,12 29,10C,917 48,10D,14 37,20,97,-37,0 0,21,10,-5,0 20,104,22 36,111,12 31,10C,925 43,10D,14 47,104,21 25,20,98,-30,6 0,21,9,-4,0 21,111,11 40,10C,937 98,10D,14 42,20,96,-32,7 0,21,9,-4,0 20,104,20 27,111,11 32,10C,894 43,10D,14 47,104,20 29,111,11 21,20,99,-35,1 0,21,8,-4,-1 20,10C,878 42,10D,14 48,104,20 29,111,11 37,10C,847 34,20,101,-33,-3 0,21,7,-4,0 19,10D,14 43,104,20 23,10,7380240 0,D,13 0,A,-3381925 0,B,15122355 0,C,32 40,111,11 27,10C,828 47,10D,14 46,20,95,-32,6 0,21,6,0,0 19,104,20 29,111,11 29,10C,804 47,10D,14 49,104,20 27,20,94,-37,-8 0,21,5,-3,0 20,111,11 20,10,7380280 0,D,13 0,A,-3381925 0,B,15122354 0,C,32 56,10C,796 56,10D,14 45,104,20 26,20,90,-35,-10 0,21,3,-2,0 20,111,11 29,10C,800 46,10D,14 49,104,21 29,111,11 29,20,93,-34,-6 0,21,2,-1,0 17,10,7380320 0,D,13 0,A,-3381925 0,B,15122352 0,C,32 66,10C,800 44,10D,14 49,104,21 26,20,87,-35,-11 0,21,1,0,1 16,10,7380340 0,D,13 0,A,-3381925 0,B,15122352 0,C,32 68,111,11 31,10C,792 45,10D,14 46,20,104,-32,-16 0,21,1,0,1 21,104,21 28,111,11 30,10C,820 45,10D,14 49,104,21 27,20,98,-32,-9 0,21,0,-1,0 20,111,11 28,10C,820 46,10D,14 49,104,20 31,111,11 27,20,92,-35,-6 0,21,0,-1,1 16,10,7380400 0,D,12 0,A,-3381925 0,B,15122349 0,C,32 67,10C,820 44,10D,14 58,104,21 21,20,101,-36,-9 0,21,0,0,0 17,10,7380420 0,D,13 0,A,-3381925 0,B,15122349 0,C,32 66,111,11 28,10C,828 45,10D,15 47,20,105,-30,-12 0,21,-1,0,-1 20,104,20 28,111,11 30,10C,839 46,10D,15 47,104,20 31,20,99,-32,-14 0,21,-2,0,0 20,111,11 32,10C,839 43,10D,15 45,104,20 32,111,11 30,20,100,-27,-9 0,21,-2,0,0 21,10C,835 52,10D,15 50,104,20 28,111,11 34,10C,839 33,20,100,-36,-14 0,21,-2,0,-1 16,10,7380500 0,D,15 0,A,-3381925 0,B,15122345 0,C,32 71,10D,15 48,104,20 29,111,11 23,10,7380520 0,D,15 0,A,-3381925 0,B,15122345 0,C,32 40,10C,839 31,20,97,-36,-8 0,21,-2,0,0 20,10D,16 47,104,20 28,111,11 23,10,7380540 0,D,15 0,A,-3381925 0,B,15122344 0,C,32 41,10C,835 41,10D,16 37,20,102,-33,-13 0,21,-1,0,0 19,104,20 39,111,11 33,10,7380560 0,D,16 0,A,-3381925 0,B,15122343 0,C,32 41,10C,824 40,10D,16 38,20,98,-33,-11 0,21,-1,0,-1 19,104,20 29,111,11 24,10,7380580 0,D,17 0,A,-3381925 0,B,15122342 0,C,32 42,10C,828 40,10D,17 45,104,20 21,20,101,-23,-15 0,21,-2,0,-1 23,111,11 32,10C,832 43,10D,17 51,104,20 29,111,11 25,20,109,-27,-9 0,21,-2,0,-1 18,10C,835 41,10D,17 46,104,20 30,111,11 30,10C,832 38,20,103,-29,-7 0,21,-2,1,0 18,10D,17 44,104,20 30,111,11 29,10C,820 47,10D,18 36,20,95,-35,-19 0,21,-3,1,-1 21,104,20 37,111,11 44,10C,820 46,10D,18 49,104,21 20,20,103,-32,-16 0,21,-2,1,-1 22,111,11 29,10C,812 46,10D,18 49,104,21 29,111,11 28,20,97,-31,-5 0,21,-3,2,0 17,10,7380700 0,D,17 0,A,-3381926 0,B,15122335 0,C,32 66,10C,808 44,10D,18 49,104,21 26,20,111,-21,0 0,21,-2,2,1 20,10,7380720 0,D,17 0,A,-3381925 0,B,15122334 0,C,32 63,111,11 32,10C,804 45,10D,18 41,20,91,-32,8 0,21,-3,-4,-4 17,10,7380740 0,D,17 0,A,-3381925 0,B,15122333 0,C,32 66,104,21 31,111,11 34,10C,792 44,10D,18 38,20,106,-27,-8 0,21,-3,2,-3 17,10,7380760 0,D,16 0,A,-3381925 0,B,15122332 0,C,32 66,104,21 41,111,11 29,10C,800 46,10D,18 38,20,103,-26,-5 0,21,-3,0,0 19,104,21 28,111,11 29,10C,804 54,10D,17 39,10,7380800 0,D,16 0,A,-3381925 0,B,15122330 0,C,32 40,104,21 19,20,109,-20,-8 0,21,-3,2,-3 19,111,11 33,10C,796 47,10D,17 39,10,7380820 0,D,16 0,A,-3381925 0,B,15122329 0,C,32 41,104,21 24,20,104,-30,-3 0,21,-3,0,0 20,111,11 31,10C,808 44,10D,17 50,104,21 30,111,11 30,20,97,-23,-8 0,21,-3,1,-1 20,10C,828 43,10D,17 46,104,21 22,10,7380860 0,D,17 0,A,-3381925 0,B,15122327 0,C,32 40,111,11 27,10C,828 34,20,110,-23,-12 0,21,-3,1,1 20,10D,16 53,104,21 21,10,7380880 0,D,17 0,A,-3381925 0,B,15122326 0,C,32 41,111,11 27,10C,839 39,20,100,-30,-14 0,21,-4,-1,0 19,10D,16 46,104,20 23,10,7380900 0,D,17 0,A,-3381925 0,B,15122325 0,C,32 45,111,11 27,10C,832 42,20,99,-32,-23 0,21,-4,0,-1 20,10D,16 42,104,20 23,10,7380920 0,D,17 0,A,-3381925 0,B,15122324 0,C,32 40,111,11 28,10C,828 46,10D,16 47,20,101,-24,-6 0,21,-5,0,-1 20,104,20 27,111,11 30,10C,832 46,10D,16 49,104,20 28,20,99,-25,-12 0,21,-4,0,0 19,111,11 21,10,7380960 0,D,17 0,A,-3381925 0,B,15122322 0,C,32 55,10C,824 40,10D,16 46,104,20 30,20,97,-34,-11 0,21,-4,2,0 20,111,11 32,10C,828 43,10D,16 45,104,20 30,111,11 31,10C,820 33,20,105,-28,-3 0,21,-4,0,1 22,10D,16 48,104,20 33,111,11 32,10C,820 47,10D,16 36,20,100,-33,-22 0,21,-3,1,0 16,10,7381020 0,D,16 0,A,-3381924 0,B,15122319 0,C,32 67,104,20 31,111,11 29,10C,816 46,10D,16 38,20,97,-29,-9 0,21,-3,0,-1 19,104,21 40,111,11 33,10C,824 45,10D,16 38,10,7381060 0,D,16 0,A,-3381924 0,B,15122317 0,C,32 41,104,21 18,20,98,-27,-7 0,21,-2,0,-1 21,111,11 30,10C,824 45,10D,16 48,10,7381080 0,D,16 0,A,-3381924 0,B,15122317 0,C,32 41,104,21 19,20,97,-23,-7 0,21,-1,0,1 19,111,11 27,10C,828 45,10D,16 39,10,7381100 0,D,16 0,A,-3381923 0,B,15122316 0,C,32 44,104,20 28,111,11 21,20,97,-24,-5 0,21,-1,0,0 20,10C,843 39,10D,16 46,104,20 29,111,11 30,10C,835 39,20,99,-21,-2 0,21,-1,-1,1 19,10D,16 45,104,20 24,10,7381140 0,D,17 0,A,-3381923 0,B,15122314 0,C,32 41,111,11 32,10C,847 39,20,101,-23,-7 0,21,0,-1,0 19,10D,16 45,104,20 24,10,7381160 0,D,17 0,A,-3381923 0,B,15122313 0,C,32 40,111,11 44,10C,839 33,20,101,-35,5 0,21,0,0,-1 20,10D,16 46,104,20 32,10,7381180 0,D,17 0,A,-3381923 0,B,15122312 0,C,32 40,111,11 27,10C,832 38,20,102,-32,0 0,21,1,0,0 24,10D,16 44,104,20 30,10,7381200 0,D,17 0,A,-3381922 0,B,15122311 0,C,32 40,111,11 28,10C,824 34,20,100,-29,-5 0,21,2,0,0 19,10D,16 42,104,20 23,10,7381220 0,D,17 0,A,-3381922 0,B,15122310 0,C,32 40,111,11 27,10C,808 47,10D,16 36,20,99,-32,3 0,21,3,-3,0 20,104,21 28,111,11 30,10C,796 46,10D,16 49,104,21 29,20,95,-34,1 0,21,4,-3,0 19,111,11 28,10C,792 43,10D,16 38,10,7381260 0,D,17 0,A,-3381922 0,B,15122308 0,C,28 40,104,21 31,111,11 20,20,100,-40,-8 0,21,5,-2,0 21,10C,785 50,10D,15 50,104,21 34,111,11 32,10C,785 43,20,96,-50,11 0,21,5,0,-1 20,10D,15 44,104,21 30,111,11 34,10C,789 44,10D,15 37,20,90,-43,0 0,21,4,-1,-1 17,10,7381320 0,D,15 0,A,-3381922 0,B,15122305 0,C,28 65,104,21 28,111,11 32,10C,777 43,10D,15 37,20,95,-34,0 0,21,5,-1,-2 21,104,21 28,111,11 30,10C,789 44,10D,13 47,104,21 22,10,7381360 0,D,15 0,A,-3381922 0,B,15122303 0,C,27 41,111,11 19,20,92,-43,-6 0,21,5,-1,0 20,10C,789 43,10D,13 50,104,21 39,111,11 30,10C,796 34,20,93,-43,2 0,21,4,0,0 20,10D,13 45,104,21 31,111,11 31,10C,785 50,10D,13 48,20,97,-44,-7 0,21,4,-1,0 19,104,21 31,111,11 23,10,7381420 0,D,12 0,A,-3381923 0,B,15122301 0,C,27 40,10C,792 44,10D,11 45,20,103,-34,0 0,21,4,-1,0 18,104,21 30,111,11 23,10,7381440 0,D,11 0,A,-3381923 0,B,15122301 0,C,27 40,10C,804 40,10D,11 46,104,21 21,20,99,-38,-4 0,21,3,-1,0 18,111,12 33,10C,808 43,10D,11 46,104,23 30,111,12 32,10C,808 33,20,97,-39,-9 0,21,2,-1,0 21,10D,11 53,104,24 30,111,12 29,10C,828 46,10D,9 36,20,106,-27,-10 0,21,1,0,0 21,104,25 28,111,12 29,10C,859 46,10D,9 44,104,25 38,20,99,-28,-9 0,21,1,0,0 21,111,12 26,10C,878 46,10D,9 49,104,24 43,111,12 20,20,100,-28,-9 0,21,0,0,0 15,10,7381540 0,D,8 0,A,-3381924 0,B,15122298 0,C,27 68,10C,898 44,10D,9 44,104,24 23,10,7381560 0,D,8 0,A,-3381924 0,B,15122298 0,C,27 41,111,12 18,20,98,-30,-8 0,21,0,0,0 19,10C,898 41,10D,8 43,104,23 31,111,11 31,10C,886 43,20,94,-31,-7 0,21,0,0,0 19,10D,8 47,104,22 31,111,12 35,10C,875 43,10D,8 37,20,96,-27,-11 0,21,0,0,0 19,104,22 31,111,11 35,10C,863 43,10D,8 46,104,21 30,111,12 20,20,102,-24,-6 0,21,-1,0,0 32,10C,851 42,10D,8 38,10,7381640 0,D,7 0,A,-3381924 0,B,15122296 0,C,27 41,104,24 26,111,13 31,20,97,-29,-9 0,21,-1,0,0 19,10C,863 38,10D,8 39,10,7381660 0,D,8 0,A,-3381925 0,B,15122295 0,C,27 41,104,30 28,111,13 30,10C,980 33,20,105,-24,-5 0,21,-1,0,0 20,10D,8 48,104,30 34,111,14 39,10C,1066 46,10D,8 36,20,102,-22,-4 0,21,-1,0,0 21,104,30 19,10,7381700 0,D,8 0,A,-3381925 0,B,15122294 0,C,27 56,111,14 27,10C,1164 43,10D,8 36,20,102,-18,-8 0,21,-1,0,0 22,104,29 27,111,14 30,10C,1210 47,10D,8 48,104,28 27,20,102,-19,-2 0,21,-1,0,0 20,111,14 20,10,7381740 0,D,8 0,A,-3381925 0,B,15122294 0,C,27 55,10C,1218 45,10D,8 48,104,27 22,20,101,-19,-11 0,21,-2,0,0 20,111,14 29,10C,1250 43,10D,8 56,104,26 29,111,14 26,20,104,-17,-6 0,21,-1,0,0 16,10,7381780 0,D,9 0,A,-3381926 0,B,15122292 0,C,27 67,10C,1289 51,10D,9 48,104,22 21,20,98,-21,-7 0,21,-1,0,0 21,111,12 32,10C,1234 46,10D,9 49,104,21 29,111,12 26,20,102,-26,-1 0,21,-1,0,0 16,10,7381820 0,D,10 0,A,-3381926 0,B,15122291 0,C,27 67,10C,1179 41,10D,9 45,104,18 31,20,96,-26,-8 0,21,-1,0,0 15,10,7381840 0,D,11 0,A,-3381926 0,B,15122291 0,C,27 68,111,11 32,10C,1132 42,10D,10 43,20,95,-28,-9 0,21,-2,0,0 15,10,7381860 0,D,11 0,A,-3381926 0,B,15122290 0,C,27 67,104,17 32,111,12 30,10C,1023 45,10D,10 37,20,102,-26,-5 0,21,-1,0,0 17,10,7381880 0,D,11 0,A,-3381927 0,B,15122289 0,C,27 66,104,18 38,111,11 31,10C,964 43,10D,10 50,20,106,-25,-3 0,21,-1,0,0 20,104,17 28,111,11 29,10C,929 50,10D,11 38,10,7381920 0,D,11 0,A,-3381927 0,B,15122288 0,C,27 41,104,18 19,20,100,-26,-5 0,21,-2,0,0 24,111,11 28,10C,906 45,10D,11 38,10,7381940 0,D,11 0,A,-3381927 0,B,15122287 0,C,27 41,104,20 24,20,102,-25,-3 0,21,-1,0,0 20,111,11 27,10C,871 45,10D,11 39,10,7381960 0,D,11 0,A,-3381927 0,B,15122287 0,C,27 40,104,20 31,111,11 22,20,107,-25,0 0,21,-1,0,0 19,10C,859 42,10D,11 47,104,20 30,111,11 30,10C,843 34,20,99,-29,3 0,21,0,0,0 19,10D,12 56,104,20 22,10,7382000 0,D,12 0,A,-3381928 0,B,15122285 0,C,27 41,111,11 27,10C,820 38,20,107,-22,0 0,21,-1,0,0 21,10D,12 46,104,20 22,10,7382020 0,D,12 0,A,-3381928 0,B,15122285 0,C,27 44,111,11 28,10C,816 39,20,94,-29,-2 0,21,0,0,0 19,10D,12 47,104,20 32,10,7382040 0,D,12 0,A,-3381928 0,B,15122284 0,C,27 40,111,11 28,10C,808 34,20,104,-27,0 0,21,-1,0,0 19,10D,12 46,104,20 23,10,7382060 0,D,12 0,A,-3381929 0,B,15122283 0,C,27 41,111,11 27,10C,796 46,10D,12 37,20,92,-32,-9 0,21,0,0,0 20,104,20 28,111,11 34,10C,800 46,10D,12 50,104,21 30,20,105,-21,0 0,21,0,-1,0 20,111,11 20,10,7382100 0,D,12 0,A,-3381929 0,B,15122282 0,C,27 55,10C,808 41,10D,12 46,104,21 25,20,94,-29,-3 0,21,-1,-1,0 21,111,11 19,10,7382120 0,D,13 0,A,-3381929 0,B,15122281 0,C,27 56,10C,804 40,10D,12 49,104,21 22,20,103,-25,0 0,21,-1,-1,0 20,111,11 32,10C,812 42,10D,12 50,104,21 29,111,11 29,20,91,-27,-7 0,21,-1,-1,0 17,10,7382160 0,D,12 0,A,-3381930 0,B,15122280 0,C,27 66,10C,820 56,10D,12 48,104,21 21,20,101,-28,-5 0,21,-1,0,0 21,111,11 28,10C,820 46,10D,12 50,104,21 27,111,11 31,20,100,-27,-12 0,21,-1,0,0 21,10C,832 41,10D,12 49,104,20 30,111,11 31,10C,808 34,20,99,-31,-10 0,21,-1,-1,0 25,10D,12 44,104,21 29,111,11 30,10C,812 45,10D,12 37,20,103,-27,-5 0,21,-1,0,-1 21,104,21 28,111,11 30,10C,812 46,10D,12 47,104,20 24,10,7382260 0,D,12 0,A,-3381931 0,B,15122276 0,C,27 41,111,11 27,20,97,-27,-3 0,21,-1,0,0 21,10C,800 55,10D,12 46,10,7382280 0,D,13 0,A,-3381931 0,B,15122276 0,C,27 41,104,21 32,111,11 20,20,96,-28,-4 0,21,0,0,0 21,10C,796 43,10D,12 46,104,21 30,10,7382300 0,D,13 0,A,-3381932 0,B,15122275 0,C,27 40,111,11 20,20,93,-30,-14 0,21,0,0,0 20,10C,796 43,10D,12 46,104,21 22,10,7382320 0,D,13 0,A,-3381932 0,B,15122274 0,C,27 44,111,11 25,20,101,-24,-2 0,21,0,0,0 19,10C,796 40,10D,12 46,104,21 22,10,7382340 0,D,13 0,A,-3381932 0,B,15122273 0,C,27 40,111,11 31,10C,812 35,20,105,-27,-12 0,21,0,-1,0 19,10D,12 46,104,21 23,10,7382360 0,D,13 0,A,-3381933 0,B,15122273 0,C,27 41,111,11 32,10C,804 42,20,94,-27,-11 0,21,-1,0,0 19,10D,12 43,104,21 23,10,7382380 0,D,13 0,A,-3381933 0,B,15122272 0,C,27 40,111,13 27,10C,804 43,10D,12 37,20,95,-30,-8 0,21,-1,0,0 20,104,28 28,111,13 43,10C,875 43,10D,12 60,104,31 20,20,94,-25,-10 0,21,-1,0,0 21,111,14 19,10,7382420 0,D,13 0,A,-3381933 0,B,15122271 0,C,27 56,10C,1085 45,10D,12 45,104,30 21,20,105,-21,-7 0,21,-1,0,0 21,111,14 27,10C,1226 47,10D,12 49,104,28 33,111,14 25,20,96,-26,-8 0,21,-2,0,0 21,10C,1234 41,10D,12 49,104,28 30,111,14 30,10C,1277 34,20,97,-19,-12 0,21,-2,-1,0 20,10D,12 45,104,27 30,111,14 33,10C,1304 43,10D,13 36,20,101,-16,-11 0,21,-1,0,0 21,104,26 38,111,14 30,10C,1289 46,10D,13 49,104,25 20,20,94,-25,-10 0,21,-2,0,0 22,111,14 42,10C,1285 51,10D,13 49,104,24 32,111,14 21,20,102,-16,-7 0,21,-1,0,0 17,10,7382540 0,D,14 0,A,-3381935 0,B,15122266 0,C,27 66,10C,1304 45,10D,14 47,104,21 24,10,7382560 0,D,15 0,A,-3381935 0,B,15122265 0,C,27 40,111,12 19,20,108,-20,-11 0,21,-1,0,0 20,10C,1257 44,10D,14 48,104,20 31,111,12 23,10,7382580 0,D,15 0,A,-3381936 0,B,15122264 0,C,24 41,10C,1191 32,20,97,-31,-9 0,21,-1,0,0 19,10D,14 47,104,16 26,10,7382600 0,D,16 0,A,-3381936 0,B,15122263 0,C,24 41,111,11 37,10C,1167 35,20,101,-24,-9 0,21,0,0,0 19,10D,14 51,104,15 33,10,7382620 0,D,16 0,A,-3381936 0,B,15122262 0,C,24 40,111,12 32,10C,1058 34,20,106,-26,-17 0,21,0,1,-1 19,10D,15 46,104,18 23,10,7382640 0,D,16 0,A,-3381937 0,B,15122262 0,C,24 41,111,12 43,10C,980 34,20,106,-19,4 0,21,-1,0,0 20,10D,15 43,104,24 22,10,7382660 0,D,16 0,A,-3381937 0,B,15122261 0,C,24 40,111,13 28,10C,1023 46,10D,15 37,20,94,-34,0 0,21,0,1,0 20,104,26 28,111,13 30,10C,1136 43,10D,15 46,104,26 29,111,13 21,20,100,-36,-15 0,21,-1,-2,0 21,10C,1203 45,10D,16 55,104,25 30,111,13 28,10C,1242 38,20,91,-21,-21 0,21,-1,0,0 21,10D,16 47,104,24 30,111,13 29,10C,1277 46,10D,16 37,20,100,-12,-4 0,21,0,0,-1 22,104,24 30,111,13 30,10C,1265 46,10D,16 48,104,23 24,10,7382760 0,D,17 0,A,-3381939 0,B,15122256 0,C,24 41,111,13 19,20,97,-22,-9 0,21,-2,-1,1 20,10C,1257 54,10D,16 48,104,22 23,10,7382780 0,D,17 0,A,-3381939 0,B,15122255 0,C,24 40,111,12 19,20,104,-18,-11 0,21,0,0,1 19,10C,1265 45,10D,16 48,104,20 30,111,12 23,10,7382800 0,D,17 0,A,-3381940 0,B,15122254 0,C,24 41,10C,1199 41,20,99,-28,-7 0,21,-1,0,-1 23,10D,16 46,104,18 24,10,7382820 0,D,17 0,A,-3381940 0,B,15122253 0,C,24 40,111,12 28,10C,1160 43,20,104,-24,-8 0,21,-1,0,0 19,10D,16 47,104,22 22,10,7382840 0,D,17 0,A,-3381940 0,B,15122252 0,C,24 41,111,14 27,10C,1171 46,10D,17 37,20,100,-25,-5 0,21,-1,0,-1 20,104,25 21,10,7382860 0,D,18 0,A,-3381941 0,B,15122251 0,C,24 54,111,14 33,10C,1289 42,10D,17 37,20,99,-20,-14 0,21,-2,-1,-1 21,104,26 20,10,7382880 0,D,18 0,A,-3381941 0,B,15122250 0,C,24 55,111,14 31,10C,1328 43,10D,17 37,20,93,-29,-8 0,21,-2,0,0 36,104,25 31,111,14 30,10C,1308 46,10D,18 55,104,25 21,20,101,-27,-10 0,21,-1,0,1 21,111,13 27,10C,1296 47,10D,18 49,104,23 28,111,13 27,10,7382940 0,D,18 0,A,-3381942 0,B,15122247 0,C,24 41,10C,1281 32,20,112,-14,-2 0,21,-2,0,1 20,10D,18 47,104,22 32,111,13 30,10,7382960 0,D,18 0,A,-3381942 0,B,15122246 0,C,24 41,10C,1292 32,20,111,-8,-11 0,21,-2,0,0 21,10D,18 43,104,21 41,111,13 30,10C,1304 43,10D,18 38,20,109,-17,-9 0,21,-1,0,-1 20,104,21 27,111,13 33,10C,1296 43,10D,18 50,104,22 34,20,102,-19,-15 0,21,-2,0,0 24,111,13 31,10C,1289 48,10,7383020 0,D,19 0,A,-3381944 0,B,15122243 0,C,24 41,10D,18 44,104,22 22,20,95,-18,2 0,21,-1,0,0 19,111,13 31,10C,1292 43,10,7383040 0,D,19 0,A,-3381944 0,B,15122242 0,C,24 41,10D,18 47,104,21 22,20,101,-24,-7 0,21,-1,1,0 19,111,13 34,10C,1296 44,10D,19 50,104,21 30,111,13 25,20,96,-23,3 0,21,-1,1,-1 21,10C,1296 42,10D,19 47,104,21 23,10,7383080 0,D,19 0,A,-3381945 0,B,15122239 0,C,24 41,111,13 27,20,96,-22,-6 0,21,0,0,0 20,10C,1304 43,10D,19 47,104,22 22,10,7383100 0,D,19 0,A,-3381945 0,B,15122238 0,C,24 45,111,13 24,20,95,-36,-10 0,21,0,0,0 20,10C,1304 43,10D,19 60,104,21 29,111,14 30,10C,1292 34,20,107,-20,7 0,21,0,-2,0 20,10D,20 47,104,23 22,10,7383140 0,D,20 0,A,-3381946 0,B,15122236 0,C,24 40,111,14 37,10C,1320 35,20,94,-27,-7 0,21,0,-2,0 19,10D,20 46,104,24 23,10,7383160 0,D,21 0,A,-3381946 0,B,15122235 0,C,24 40,111,14 31,10C,1328 43,20,101,-15,5 0,21,1,0,0 20,10D,20 42,104,24 22,10,7383180 0,D,21 0,A,-3381947 0,B,15122234 0,C,24 41,111,14 27,10C,1320 43,10D,20 42,20,96,-18,0 0,21,1,0,-1 18,104,24 33,111,14 34,10C,1320 43,10D,20 46,104,24 29,20,103,-15,2 0,21,1,0,0 18,111,14 30,10,7383220 0,D,21 0,A,-3381948 0,B,15122231 0,C,24 48,10C,1335 40,10D,20 46,104,24 20,20,103,-18,0 0,21,1,-2,0 21,111,14 19,10,7383240 0,D,21 0,A,-3381948 0,B,15122230 0,C,24 57,10C,1335 44,10D,20 48,104,24 21,20,89,-25,-4 0,21,0,-1,0 21,111,14 29,10C,1308 46,10D,21 57,104,25 32,111,14 21,20,107,-24,-26 0,21,0,-3,1 21,10C,1214 41,10D,21 46,104,25 29,111,14 33,10C,1230 34,20,64,-25,9 0,21,0,0,0 25,10D,21 44,104,26 29,111,13 30,10C,1230 45,10D,21 75,20,104,-13,-7 0,21,0,0,-1 20,104,24 41,111,14 30,10C,1238 44,10D,22 47,104,25 21,20,93,-28,-20 0,21,0,1,0 20,111,13 28,10C,1222 42,10D,22 48,104,24 30,111,13 34,10C,1226 35,20,108,-23,-12 0,21,0,0,-1 20,10D,22 59,104,24 32,111,14 22,10,7383380 0,D,23 0,A,-3381953 0,B,15122222 0,C,24 41,10C,1214 32,20,100,-15,1 0,21,-1,-2,-2 19,10D,22 44,104,26 31,111,14 31,10C,1214 44,10D,22 37,20,90,-36,-11 0,21,-1,1,0 20,104,26 27,111,13 32,10C,1214 44,10D,22 50,104,25 30,20,116,-23,0 0,21,0,1,0 20,111,13 30,10C,1218 43,10D,22 38,10,7383440 0,D,23 0,A,-3381955 0,B,15122219 0,C,24 40,104,25 27,111,13 22,20,90,-30,-4 0,21,0,1,-1 19,10C,1230 39,10D,22 46,104,24 30,111,13 30,10C,1234 39,20,115,-10,-15 0,21,-1,0,-2 20,10D,22 46,104,24 23,10,7383480 0,D,23 0,A,-3381956 0,B,15122216 0,C,24 39,111,13 32,10C,1253 43,20,89,-27,-28 0,21,0,0,2 20,10D,23 42,104,21 32,10,7383500 0,D,24 0,A,-3381957 0,B,15122215 0,C,24 40,111,11 28,10C,1234 39,20,120,-17,-8 0,21,-1,1,0 19,10D,23 52,104,17 21,10,7383520 0,D,24 0,A,-3381957 0,B,15122214 0,C,24 41,111,11 27,10C,1171 44,20,107,-15,-2 0,21,-1,0,0 19,10D,23 43,104,15 23,10,7383540 0,D,24 0,A,-3381958 0,B,15122212 0,C,24 40,111,11 27,10C,1148 42,10D,24 38,20,97,-29,4 0,21,-1,0,0 19,104,14 32,111,12 34,10C,1066 43,10D,24 46,104,17 29,111,12 20,20,93,-29,-10 0,21,-1,0,0 22,10C,1023 44,10D,24 46,104,17 30,111,11 28,10C,1015 34,20,88,-24,2 0,21,0,1,-2 21,10D,24 45,104,16 29,111,12 33,10C,980 53,10D,24 37,20,104,-29,-13 0,21,0,1,0 21,104,17 31,111,11 34,10C,953 51,10D,24 44,104,16 22,20,98,-32,-6 0,21,0,1,0 17,10,7383640 0,D,24 0,A,-3381962 0,B,15122206 0,C,24 66,111,11 28,10C,933 45,10D,24 46,20,109,-18,-1 0,21,0,0,1 20,104,17 28,111,11 30,10C,917 46,10D,24 44,104,17 30,111,11 22,20,97,-26,-12 0,21,0,-2,0 20,10C,902 44,10D,23 50,104,17 28,111,11 30,10C,882 34,20,126,-9,-1 0,21,0,-2,-1 15,10,7383700 0,D,23 0,A,-3381964 0,B,15122203 0,C,24 68,10D,23 43,104,20 29,111,11 23,10,7383720 0,D,23 0,A,-3381964 0,B,15122202 0,C,24 40,10C,886 44,20,101,-15,6 0,21,0,0,0 23,10D,23 57,104,20 29,111,11 31,10C,878 42,10D,23 38,20,107,-31,-7 0,21,0,0,-2 19,104,20 30,111,11 30,10C,878 35,10,7383760 0,D,23 0,A,-3381966 0,B,15122200 0,C,24 40,10D,22 44,104,20 21,20,96,-17,9 0,21,0,0,-1 20,111,11 28,10C,863 36,10,7383780 0,D,23 0,A,-3381967 0,B,15122199 0,C,24 41,10D,22 43,104,20 30,111,11 21,20,101,-24,-4 0,21,0,-1,-1 19,10C,871 41,10D,22 47,104,20 33,111,11 29,10C,871 34,20,100,-21,-11 0,21,-1,0,0 19,10D,22 49,104,20 29,111,11 30,10C,871 46,10D,22 46,20,104,-14,-5 0,21,0,0,0 25,104,20 28,111,11 30,10C,859 46,10D,22 59,104,20 20,20,88,-40,-14 0,21,-1,0,0 22,111,11 27,10C,863 46,10D,22 50,104,20 28,111,11 30,20,99,-21,-9 0,21,-2,-1,1 16,10,7383880 0,D,23 0,A,-3381971 0,B,15122193 0,C,24 67,10C,875 44,10D,22 49,104,20 24,20,112,-9,0 0,21,-2,0,0 18,10,7383900 0,D,22 0,A,-3381971 0,B,15122192 0,C,24 65,111,11 28,10C,855 46,10D,22 44,20,97,-26,-10 0,21,-2,2,0 18,10,7383920 0,D,22 0,A,-3381972 0,B,15122191 0,C,24 66,104,20 32,111,11 30,10C,851 53,10D,22 38,20,94,-23,-20 0,21,-4,0,0 20,10,7383940 0,D,22 0,A,-3381973 0,B,15122190 0,C,24 63,104,20 31,111,11 35,10C,843 43,10D,22 37,20,83,-31,-19 0,21,-4,0,1 18,10,7383960 0,D,22 0,A,-3381973 0,B,15122189 0,C,21 66,104,20 30,111,11 31,10C,839 33,10,7383980 0,D,23 0,A,-3381974 0,B,15122188 0,C,21 41,10D,22 35,20,102,-23,-27 0,21,-5,0,-1 21,104,20 29,111,11 43,10C,843 34,10,7384000 0,D,22 0,A,-3381975 0,B,15122187 0,C,21 40,10D,22 36,20,88,-33,-27 0,21,-4,1,-1 19,104,20 31,111,11 32,10C,839 36,10,7384020 0,D,22 0,A,-3381975 0,B,15122186 0,C,21 51,10D,22 36,20,79,-33,-10 0,21,-3,3,0 19,104,20 36,111,11 30,10C,839 34,10,7384040 0,D,22 0,A,-3381976 0,B,15122184 0,C,21 40,10D,22 44,104,20 22,20,103,-19,-7 0,21,-3,0,1 19,111,11 34,10C,828 35,10,7384060 0,D,22 0,A,-3381976 0,B,15122183 0,C,21 40,10D,22 48,104,20 26,20,90,-20,-9 0,21,-2,0,0 18,111,11 31,10C,832 35,10,7384080 0,D,23 0,A,-3381977 0,B,15122182 0,C,21 40,10D,22 44,104,20 29,111,11 21,20,114,-9,1 0,21,-1,0,-1 18,10C,824 41,10D,22 40,10,7384100 0,D,23 0,A,-3381978 0,B,15122181 0,C,20 44,104,21 32,111,11 34,20,101,-33,-11 0,21,-1,-1,0 19,10C,824 34,10,7384120 0,D,23 0,A,-3381978 0,B,15122180 0,C,20 43,10D,22 44,104,20 30,111,11 33,20,92,-27,-4 0,21,0,1,0 20,10C,839 33,10,7384140 0,D,23 0,A,-3381979 0,B,15122178 0,C,20 44,10D,22 44,104,20 29,111,11 31,10C,839 34,20,101,-35,-12 0,21,0,0,0 21,10D,22 48,104,20 33,111,11 29,10C,832 45,10D,22 37,20,106,-22,-17 0,21,0,0,-1 20,104,20 28,111,11 30,10C,843 46,10D,22 44,104,20 22,10,7384200 0,D,22 0,A,-3381980 0,B,15122175 0,C,20 41,111,11 20,20,94,-25,-3 0,21,-1,-1,-1 17,10C,843 45,10D,22 44,104,20 31,111,11 31,10C,851 34,20,90,-25,-21 0,21,-2,1,0 19,10D,22 47,104,20 38,111,11 27,10,7384240 0,D,22 0,A,-3381982 0,B,15122172 0,C,20 41,10C,832 41,20,89,-25,-17 0,21,-3,0,-2 19,10D,22 47,104,20 32,111,11 31,10C,839 43,10D,22 36,20,93,-13,-15 0,21,-3,2,1 20,104,20 28,111,11 31,10C,835 43,10D,22 39,10,7384280 0,D,22 0,A,-3381983 0,B,15122170 0,C,20 41,104,20 19,20,91,-36,-26 0,21,-4,0,-2 20,111,11 27,10C,832 39,10,7384300 0,D,22 0,A,-3381983 0,B,15122169 0,C,20 44,10D,22 73,20,95,-28,-14 0,21,-4,2,-2 21,104,20 30,111,11 32,10C,839 34,10,7384320 0,D,21 0,A,-3381984 0,B,15122168 0,C,20 41,10D,22 44,104,20 22,20,84,-34,-43 0,21,-5,0,-1 19,111,11 40,10C,839 34,10,7384340 0,D,21 0,A,-3381984 0,B,15122166 0,C,20 41,10D,22 47,104,20 21,20,105,-25,-12 0,21,-4,3,0 20,111,11 30,10C,832 35,10,7384360 0,D,21 0,A,-3381984 0,B,15122165 0,C,20 40,10D,22 47,104,20 30,111,11 33,20,88,-34,-2 0,21,-5,0,1 20,10C,847 32,10,7384380 0,D,21 0,A,-3381985 0,B,15122164 0,C,20 44,10D,22 56,104,20 30,111,11 21,20,87,-25,-9 0,21,-5,0,-1 20,10C,839 32,10,7384400 0,D,21 0,A,-3381985 0,B,15122163 0,C,20 45,10D,22 47,104,20 29,111,11 28,20,99,-23,-17 0,21,-5,1,0 18,10,7384420 0,D,21 0,A,-3381985 0,B,15122161 0,C,20 65,10C,832 45,10D,22 48,104,20 25,20,102,-32,-9 0,21,-6,0,1 22,111,11 40,10C,828 42,10D,22 47,104,20 31,111,11 22,20,89,-39,-21 0,21,-7,0,0 20,10C,792 41,10D,22 45,104,21 30,111,12 33,10C,804 34,20,124,-12,-13 0,21,-8,4,-1 20,10D,22 45,104,23 42,111,11 33,10C,832 45,10D,22 37,20,104,-18,-28 0,21,-9,1,0 24,104,23 32,111,14 30,10C,875 46,10D,22 44,104,31 22,10,7384520 0,D,21 0,A,-3381987 0,B,15122155 0,C,20 42,111,14 19,20,85,-37,-33 0,21,-9,1,0 20,10C,1003 40,10D,21 48,104,32 35,111,14 39,10C,1250 35,20,107,-21,-6 0,21,-8,4,0 19,10D,21 47,104,29 28,111,14 31,10C,1269 43,10D,21 38,20,102,-18,-9 0,21,-9,4,-1 19,104,29 31,111,16 36,10C,1285 43,10D,21 49,104,34 27,20,100,-42,-38 0,21,-9,0,2 19,111,16 31,10C,1382 45,10D,21 39,10,7384600 0,D,21 0,A,-3381986 0,B,15122150 0,C,20 40,104,34 28,20,88,-19,-38 0,21,-9,3,0 20,111,16 37,10C,1406 43,10D,21 36,10,7384620 0,D,21 0,A,-3381986 0,B,15122148 0,C,20 41,104,34 24,20,110,-29,-18 0,21,-7,2,0 20,111,16 31,10C,1445 42,10D,21 38,10,7384640 0,D,21 0,A,-3381986 0,B,15122147 0,C,20 40,104,34 29,20,128,-1,-38 0,21,-6,1,-1 19,111,16 31,10C,1457 46,10D,21 38,10,7384660 0,D,21 0,A,-3381986 0,B,15122146 0,C,20 40,104,36 27,20,107,-6,5 0,21,-4,4,4 21,111,15 26,10C,1484 46,10D,22 38,10,7384680 0,D,22 0,A,-3381985 0,B,15122145 0,C,20 40,104,33 28,111,18 26,20,112,-11,-22 0,21,-3,0,0 19,10C,1464 43,10D,22 39,10,7384700 0,D,22 0,A,-3381985 0,B,15122143 0,C,20 40,104,43 28,111,19 29,10C,1617 34,20,105,-14,-8 0,21,-2,-1,-4 20,10D,22 44,104,50 23,10,7384720 0,D,22 0,A,-3381984 0,B,15122142 0,C,20 40,111,19 28,10C,1750 46,10D,22 45,20,95,-30,0 0,21,0,-1,3 20,104,53 39,111,20 30,10C,1816 55,10D,23 45,104,50 22,20,97,-16,-1 0,21,-1,-2,0 15,10,7384760 0,D,24 0,A,-3381984 0,B,15122139 0,C,20 68,111,19 31,10C,1738 46,10D,23 42,20,108,-7,18 0,21,0,3,-1 20,104,49 31,111,19 37,10C,1621 42,10D,23 48,104,50 22,10,7384800 0,D,25 0,A,-3381983 0,B,15122137 0,C,20 41,111,19 19,20,87,-13,-15 0,21,-1,0,-1 20,10C,1542 41,10D,23 44,104,52 31,111,19 31,10C,1507 33,20,98,-10,-13 0,21,-1,0,-1 21,10D,24 43,104,54 32,111,19 27,10,7384840 0,D,25 0,A,-3381982 0,B,15122134 0,C,20 41,10C,1457 37,20,108,-14,0 0,21,-2,3,-2 19,10D,24 65,104,55 31,111,19 21,10,7384860 0,D,26 0,A,-3381981 0,B,15122132 0,C,20 40,10C,1367 33,20,109,-8,-6 0,21,-1,-1,-2 19,10D,24 47,104,58 33,111,18 23,10,7384880 0,D,26 0,A,-3381981 0,B,15122131 0,C,20 44,10C,1269 37,20,106,-16,-9 0,21,-1,0,0 20,10D,25 46,104,58 30,111,18 22,10,7384900 0,D,26 0,A,-3381981 0,B,15122129 0,C,20 40,10C,1218 44,10D,25 38,20,113,0,-8 0,21,-2,0,0 20,104,54 25,111,14 31,10C,1210 44,10D,25 45,104,43 30,111,14 21,20,122,-8,-6 0,21,-1,0,-1 20,10C,1191 41,10D,25 50,104,35 34,111,14 29,10C,1203 43,20,97,-36,-6 0,21,-1,2,-2 21,10D,26 47,104,30 30,111,15 29,10C,1199 47,10D,26 36,20,103,-10,-3 0,21,-2,2,0 21,104,33 30,10,7384980 0,D,26 0,A,-3381979 0,B,15122123 0,C,20 47,111,16 31,10C,1195 43,10D,26 37,20,124,-6,2 0,21,-2,-1,1 21,104,40 19,10,7385000 0,D,26 0,A,-3381979 0,B,15122122 0,C,20 56,111,17 27,10C,1234 46,10D,26 37,20,103,-22,-32 0,21,-2,0,0 22,104,44 31,111,17 34,10C,1250 46,10D,25 49,104,46 21,20,104,-17,-36 0,21,-2,-4,0 21,111,17 29,10C,1242 42,10D,25 46,104,48 42,111,18 22,20,93,-30,-15 0,21,-2,-2,1 20,10C,1210 41,10D,25 50,104,55 30,111,18 32,10C,1207 34,20,145,8,-3 0,21,-1,-1,-1 21,10D,25 44,104,56 38,111,18 34,10C,1230 41,10D,24 50,20,112,-1,1 0,21,-4,0,-1 24,104,58 32,111,18 30,10C,1230 45,10D,24 46,104,60 21,10,7385120 0,D,25 0,A,-3381976 0,B,15122113 0,C,20 41,111,18 19,20,123,-13,-6 0,21,-3,0,1 20,10C,1238 41,10D,24 44,104,60 23,10,7385140 0,D,25 0,A,-3381976 0,B,15122112 0,C,20 41,111,19 31,10C,1253 34,20,105,-4,-11 0,21,-3,-1,0 21,10D,24 51,104,60 23,10,7385160 0,D,25 0,A,-3381976 0,B,15122110 0,C,20 40,111,18 28,10C,1265 39,20,95,-17,-11 0,21,-3,-1,0 20,10D,25 46,104,57 23,10,7385180 0,D,25 0,A,-3381975 0,B,15122109 0,C,20 41,111,18 32,10C,1265 39,20,98,-10,-20 0,21,-4,-1,0 20,10D,25 45,104,56 31,111,18 31,10C,1273 57,10D,25 38,20,104,-19,-12 0,21,-4,0,0 19,104,56 27,111,18 23,10,7385220 0,D,26 0,A,-3381974 0,B,15122106 0,C,20 42,10C,1265 41,10D,25 46,104,56 20,20,105,-8,-15 0,21,-4,0,0 20,111,18 31,10C,1269 44,10D,26 49,104,57 31,111,18 25,20,88,-16,-21 0,21,-5,0,-1 18,10C,1265 51,10D,26 50,104,56 30,111,18 30,10C,1257 34,20,101,-6,-14 0,21,-3,1,0 19,10D,26 37,10,7385280 0,D,26 0,A,-3381972 0,B,15122102 0,C,20 40,104,56 28,111,18 33,10C,1246 44,10D,26 37,20,108,-19,-40 0,21,-4,-1,0 22,104,57 31,111,18 29,10C,1226 43,10D,26 48,104,56 27,20,95,-20,-14 0,21,-5,0,0 22,111,18 30,10C,1214 43,10D,26 59,104,56 33,111,18 22,20,119,-5,-21 0,21,-3,0,1 15,10,7385340 0,D,26 0,A,-3381970 0,B,15122098 0,C,20 68,10C,1214 41,10D,26 47,104,52 31,20,90,-6,22 0,21,-2,0,-1 17,10,7385360 0,D,26 0,A,-3381969 0,B,15122097 0,C,20 66,111,16 27,10C,1207 46,10D,26 46,20,110,-7,-1 0,21,-1,0,-1 21,104,48 28,111,16 29,10C,1207 46,10D,26 49,104,42 23,10,7385400 0,D,27 0,A,-3381968 0,B,15122094 0,C,20 44,111,13 19,20,137,3,-41 0,21,0,0,0 20,10C,1214 45,10D,26 44,104,33 23,10,7385420 0,D,27 0,A,-3381967 0,B,15122093 0,C,20 41,111,13 27,20,109,-32,-9 0,21,1,0,0 20,10C,1203 45,10D,26 44,104,26 31,10,7385440 0,D,26 0,A,-3381966 0,B,15122091 0,C,20 40,111,14 20,20,111,-24,0 0,21,0,-1,0 19,10C,1195 44,10D,26 45,104,32 32,10,7385460 0,D,26 0,A,-3381966 0,B,15122090 0,C,20 41,111,17 19,20,89,-22,-11 0,21,0,-1,0 20,10C,1257 44,10D,26 55,10,7385480 0,D,26 0,A,-3381965 0,B,15122088 0,C,20 44,104,45 29,111,18 22,20,115,-9,-11 0,21,-1,-1,-2 19,10C,1328 41,10D,26 45,104,51 22,10,7385500 0,D,25 0,A,-3381964 0,B,15122087 0,C,20 40,111,18 32,10C,1265 34,20,120,-9,-19 0,21,-2,0,0 20,10D,26 46,104,51 23,10,7385520 0,D,25 0,A,-3381964 0,B,15122086 0,C,20 40,111,16 32,10C,1199 39,20,100,-15,-28 0,21,-2,1,0 19,10D,25 46,104,47 24,10,7385540 0,D,25 0,A,-3381963 0,B,15122085 0,C,20 40,111,16 31,10C,1207 42,20,101,-16,-16 0,21,-3,1,0 21,10D,25 42,104,43 32,10,7385560 0,D,25 0,A,-3381962 0,B,15122083 0,C,20 45,111,13 27,10C,1191 34,20,98,-16,-28 0,21,-4,1,-1 21,10D,25 47,104,32 21,10,7385580 0,D,25 0,A,-3381962 0,B,15122082 0,C,20 40,111,13 44,10C,1214 34,20,97,-22,-10 0,21,-3,0,0 19,10D,24 44,104,25 22,10,7385600 0,D,25 0,A,-3381961 0,B,15122081 0,C,20 41,111,12 31,10C,1207 43,10D,24 37,20,101,-21,0 0,21,-3,1,0 20,104,20 28,111,12 29,10C,1167 47,10D,24 50,104,17 27,111,11 22,20,85,-28,-24 0,21,-2,0,0 20,10C,1210 45,10D,24 49,104,15 30,111,12 32,10C,1058 34,20,99,-23,-4 0,21,-1,1,-1 20,10D,24 53,104,20 34,111,12 34,10C,851 44,10D,23 38,20,92,-30,-3 0,21,-1,0,0 16,10,7385680 0,D,23 0,A,-3381958 0,B,15122076 0,C,20 67,104,23 28,111,11 31,10C,984 43,10D,23 37,20,99,-31,0 0,21,-1,2,-1 22,104,20 26,111,11 30,10C,968 55,10D,23 46,104,18 22,20,104,-18,-1 0,21,-1,2,-1 20,111,11 28,10C,933 42,10D,21 49,104,17 23,10,7385740 0,D,21 0,A,-3381956 0,B,15122073 0,C,20 40,111,11 19,20,109,-15,-3 0,21,0,1,0 19,10C,871 40,10D,21 45,104,20 31,111,11 31,10C,855 43,20,104,-19,-6 0,21,0,0,0 19,10D,21 47,104,20 32,111,11 35,10C,843 36,10,7385780 0,D,21 0,A,-3381955 0,B,15122071 0,C,28 40,10D,21 44,20,94,-32,-3 0,21,-1,0,1 19,104,20 30,111,11 31,10C,808 43,10D,19 45,104,20 30,111,11 21,20,102,-19,-8 0,21,-1,0,-1 19,10C,800 41,10D,19 51,104,21 33,111,11 30,10C,789 45,20,89,-17,8 0,21,0,0,0 20,10D,19 44,104,21 29,111,11 34,10C,781 42,10D,19 37,20,103,-25,-5 0,21,0,-2,1 20,104,21 20,10,7385860 0,D,17 0,A,-3381953 0,B,15122067 0,C,28 55,111,11 38,10C,781 45,10D,17 37,20,101,-28,-4 0,21,0,-1,0 20,104,21 28,111,11 30,10C,769 46,10D,17 53,104,22 27,20,85,-33,0 0,21,1,0,0 15,10,7385900 0,D,16 0,A,-3381952 0,B,15122066 0,C,28 68,111,11 31,10C,773 45,10D,17 43,20,100,-24,3 0,21,1,-2,-1 21,104,22 31,111,11 29,10C,777 46,10D,17 50,104,22 32,20,110,-21,0 0,21,2,0,0 22,111,11 31,10C,781 46,10D,15 49,104,22 27,111,11 24,10,7385960 0,D,15 0,A,-3381951 0,B,15122063 0,C,28 42,10C,769 32,20,97,-33,-3 0,21,2,0,1 19,10D,15 56,104,23 28,111,12 31,10C,781 36,10,7385980 0,D,15 0,A,-3381950 0,B,15122062 0,C,28 40,10D,15 36,20,85,-30,-4 0,21,2,-2,-1 19,104,27 34,111,14 31,10C,851 43,10D,15 46,104,31 29,111,14 21,20,109,-21,-9 0,21,2,0,0 19,10C,968 41,10D,13 50,104,33 30,111,15 30,10C,1187 35,20,109,-23,-16 0,21,2,1,3 19,10D,13 44,104,32 30,111,14 34,10C,1285 43,10D,13 36,20,110,-23,-5 0,21,2,0,0 20,104,28 28,111,14 40,10C,1312 47,10D,13 49,104,27 29,20,97,-23,-10 0,21,2,0,1 21,111,14 19,10,7390080 0,D,13 0,A,-3381949 0,B,15122059 0,C,28 57,10C,1265 44,10D,12 49,104,26 20,20,98,-18,-5 0,21,1,-1,0 21,111,14 28,10C,1265 47,10D,12 50,104,26 28,111,14 29,20,102,-22,9 0,21,1,-1,0 25,10C,1300 41,10D,12 54,104,26 30,111,14 32,10C,1304 34,20,108,-16,-3 0,21,1,0,0 22,10D,12 43,104,26 29,111,14 30,10C,1304 46,10D,12 37,20,94,-28,6 0,21,0,0,0 20,104,26 28,111,14 30,10C,1324 46,10D,12 48,104,25 31,20,107,-20,-10 0,21,0,-1,0 20,111,14 39,10C,1332 46,10D,12 49,104,25 30,111,14 22,20,99,-23,-9 0,21,0,-1,0 15,10,7390200 0,D,13 0,A,-3381948 0,B,15122054 0,C,28 68,10C,1332 39,10D,12 44,104,25 31,111,14 22,20,98,-22,-11 0,21,0,0,-1 20,10C,1328 44,10D,12 49,104,25 32,111,14 24,10,7390240 0,D,13 0,A,-3381947 0,B,15122053 0,C,28 45,10C,1328 32,20,102,-19,-11 0,21,0,0,0 20,10D,12 47,104,25 31,111,14 30,10C,1316 45,10D,12 36,20,99,-14,-8 0,21,0,0,-2 21,104,26 28,111,14 30,10C,1316 44,10D,12 61,10,7390280 0,D,13 0,A,-3381947 0,B,15122051 0,C,29 41,104,26 18,20,103,-19,-4 0,21,0,0,0 20,111,14 33,10C,1308 36,10,7390300 0,D,13 0,A,-3381947 0,B,15122050 0,C,29 40,10D,13 48,104,26 26,20,101,-20,-1 0,21,-1,-1,0 18,111,14 30,10C,1300 37,10,7390320 0,D,13 0,A,-3381946 0,B,15122050 0,C,29 40,10D,13 52,104,26 26,20,109,-14,-9 0,21,-1,0,0 18,111,14 31,10C,1300 35,10,7390340 0,D,14 0,A,-3381946 0,B,15122049 0,C,29 41,10D,13 43,104,27 29,111,14 22,20,108,-11,0 0,21,-1,0,0 18,10C,1312 41,10D,13 46,104,29 30,111,14 30,10C,1261 38,20,103,-15,-6 0,21,-1,0,0 19,10D,14 44,104,31 43,111,14 30,10C,1195 46,10D,14 37,20,93,-26,2 0,21,-1,0,0 20,104,31 20,10,7390400 0,D,14 0,A,-3381946 0,B,15122046 0,C,29 55,111,14 27,10C,1203 43,10D,14 37,20,102,-13,-4 0,21,-1,0,0 21,104,32 38,111,14 34,10C,1203 41,10D,14 50,104,32 25,20,92,-33,-14 0,21,-1,0,0 21,111,14 31,10C,1191 43,10D,14 50,104,32 31,111,14 28,20,114,-8,-10 0,21,0,-1,0 15,10,7390460 0,D,15 0,A,-3381945 0,B,15122044 0,C,29 68,10C,1203 44,10D,14 58,104,32 22,20,108,-13,-12 0,21,-1,0,0 17,10,7390480 0,D,15 0,A,-3381945 0,B,15122043 0,C,29 66,111,14 42,10C,1191 45,10D,14 37,20,101,-19,-10 0,21,-1,-1,0 21,104,30 31,111,12 30,10C,1179 43,10D,15 47,104,24 30,111,12 22,20,95,-25,-12 0,21,-1,0,0 20,10C,1160 41,10D,15 45,104,20 32,111,11 28,10,7390540 0,D,16 0,A,-3381944 0,B,15122040 0,C,29 44,10C,1113 33,20,99,-31,0 0,21,-1,-1,1 19,10D,15 44,104,18 71,111,12 31,10C,1023 38,20,99,-19,-2 0,21,-1,0,0 21,10D,15 43,104,18 32,111,11 26,10,7390580 0,D,16 0,A,-3381944 0,B,15122038 0,C,29 41,10C,1000 37,20,104,-20,-1 0,21,-1,0,0 20,10D,16 56,104,17 28,111,11 30,10C,933 47,10D,16 37,20,102,-20,-3 0,21,0,0,0 21,104,18 26,111,11 32,10C,910 43,10D,16 39,10,7390620 0,D,16 0,A,-3381943 0,B,15122036 0,C,29 41,104,20 18,20,99,-22,2 0,21,0,-1,0 21,111,11 33,10C,871 43,10D,16 47,104,20 34,111,11 25,20,97,-29,-8 0,21,0,0,0 21,10C,843 51,10D,15 39,10,7390660 0,D,15 0,A,-3381943 0,B,15122035 0,C,29 40,104,20 27,111,11 22,20,108,-19,-9 0,21,0,0,0 19,10C,820 38,10D,15 47,104,20 30,111,11 30,10C,804 39,20,96,-24,-13 0,21,1,-1,0 19,10D,15 56,104,20 22,10,7390700 0,D,15 0,A,-3381943 0,B,15122033 0,C,29 40,111,11 27,10C,785 39,20,108,-25,-11 0,21,1,-2,0 20,10D,15 47,104,21 21,10,7390720 0,D,15 0,A,-3381942 0,B,15122032 0,C,29 41,111,11 27,10C,800 46,10D,14 37,20,98,-30,-3 0,21,2,0,-2 19,104,21 29,111,11 35,10C,792 46,10D,14 49,104,21 22,20,88,-34,-7 0,21,3,-1,0 18,111,11 21,10,7390760 0,D,15 0,A,-3381942 0,B,15122030 0,C,29 56,10C,792 41,10D,14 45,104,21 21,20,108,-21,-5 0,21,3,-2,0 19,111,11 20,10,7390780 0,D,14 0,A,-3381942 0,B,15122029 0,C,29 57,10C,789 41,10D,14 58,104,21 30,20,101,-26,-2 0,21,3,-1,0 21,111,11 28,10C,789 46,10D,14 50,104,21 29,111,11 29,20,101,-26,6 0,21,4,0,0 16,10,7390820 0,D,14 0,A,-3381942 0,B,15122027 0,C,29 67,10C,792 44,10D,14 54,104,21 21,20,89,-39,-4 0,21,5,-2,0 21,111,11 35,10C,789 42,10D,14 47,104,21 30,111,11 27,20,105,-28,0 0,21,5,-1,0 15,10,7390860 0,D,14 0,A,-3381942 0,B,15122026 0,C,29 69,10C,781 44,10D,13 48,104,22 27,20,97,-27,5 0,21,6,-3,0 20,111,11 31,10C,781 43,10D,13 49,104,22 31,111,11 30,20,97,-33,9 0,21,7,-2,0 21,10C,785 44,10D,13 50,104,22 29,111,11 32,10C,781 33,20,94,-36,-10 0,21,6,-2,0 21,10D,13 55,104,22 30,111,11 28,10C,777 47,10D,12 36,20,102,-31,2 0,21,6,-1,-1 16,10,7390940 0,D,12 0,A,-3381943 0,B,15122023 0,C,29 67,104,22 28,111,11 32,10C,781 47,10D,12 42,20,97,-29,-10 0,21,6,-1,0 15,10,7390960 0,D,12 0,A,-3381943 0,B,15122022 0,C,29 68,104,23 26,111,13 27,10,7390980 0,D,12 0,A,-3381944 0,B,15122022 0,C,29 41,10C,781 32,20,100,-34,-1 0,21,5,-1,0 19,10D,12 48,104,32 28,111,14 27,10,7391000 0,D,12 0,A,-3381944 0,B,15122021 0,C,29 41,10C,917 40,20,93,-31,-9 0,21,5,-1,0 21,10D,11 46,104,30 32,111,12 31,10C,1167 44,10D,11 36,20,107,-24,-2 0,21,5,-1,-1 21,104,25 27,111,12 45,10C,1152 35,10,7391040 0,D,11 0,A,-3381945 0,B,15122020 0,C,29 40,10D,11 36,20,102,-22,-8 0,21,5,-2,0 24,104,23 30,111,12 29,10C,1144 47,10D,11 49,104,22 22,20,93,-35,-5 0,21,5,-2,0 19,111,12 28,10C,1167 44,10D,10 47,104,21 30,111,12 30,10C,1179 33,20,96,-31,-2 0,21,5,-1,0 20,10D,10 46,104,21 22,10,7391100 0,D,11 0,A,-3381946 0,B,15122018 0,C,29 41,111,12 37,10C,1203 34,20,100,-24,-9 0,21,4,-1,-1 19,10D,10 47,104,20 22,10,7391120 0,D,11 0,A,-3381946 0,B,15122018 0,C,29 41,111,12 27,10C,1207 43,10D,10 37,20,99,-26,-5 0,21,4,0,0 19,104,20 33,111,12 34,10C,1218 43,10D,10 45,104,20 28,111,12 26,20,99,-30,-5 0,21,4,0,0 20,10C,1218 52,10D,10 49,104,20 29,111,12 32,10C,1226 44,20,100,-23,-7 0,21,3,0,0 21,10D,10 44,104,20 29,111,12 33,10C,1230 41,10D,10 37,20,96,-26,-15 0,21,2,-1,0 21,104,20 27,111,12 43,10C,1222 42,10D,10 46,104,20 22,20,106,-19,-15 0,21,2,-1,0 15,10,7391220 0,D,11 0,A,-3381949 0,B,15122016 0,C,29 68,111,12 31,10C,1238 44,10D,10 43,20,99,-25,-7 0,21,1,0,0 21,104,20 28,111,12 29,10C,1234 46,10D,10 48,104,20 23,10,7391260 0,D,11 0,A,-3381949 0,B,15122015 0,C,29 40,111,13 19,20,99,-24,-7 0,21,0,0,0 24,10C,1238 44,10D,10 44,104,20 24,10,7391280 0,D,11 0,A,-3381950 0,B,15122014 0,C,29 40,111,13 24,20,100,-19,-9 0,21,0,0,0 21,10C,1234 51,10D,11 45,104,21 22,10,7391300 0,D,11 0,A,-3381951 0,B,15122014 0,C,29 40,111,12 25,20,103,-20,-14 0,21,0,0,0 19,10C,1234 49,10D,11 45,104,21 23,10,7391320 0,D,11 0,A,-3381951 0,B,15122014 0,C,29 40,111,13 25,20,102,-21,-4 0,21,0,0,0 19,10C,1238 44,10D,11 48,104,21 23,10,7391340 0,D,12 0,A,-3381952 0,B,15122013 0,C,29 41,111,12 26,10C,1246 35,20,104,-19,-10 0,21,0,0,0 24,10D,11 46,104,21 23,10,7391360 0,D,12 0,A,-3381952 0,B,15122013 0,C,29 41,111,12 31,10C,1246 35,20,103,-15,-9 0,21,0,0,0 19,10D,12 46,104,21 31,111,12 31,10C,1253 35,10,7391380 0,D,12 0,A,-3381953 0,B,15122012 0,C,27 39,10D,12 35,20,102,-25,-13 0,21,0,0,0 20,104,20 41,111,12 33,10C,1253 44,10D,12 46,104,20 29,20,104,-20,-4 0,21,0,0,0 20,111,12 31,10C,1238 37,10,7391420 0,D,12 0,A,-3381954 0,B,15122012 0,C,26 40,10D,12 47,104,17 25,20,100,-27,-8 0,21,0,0,0 18,111,11 29,10C,1156 44,10D,12 45,104,17 29,111,12 32,10C,1078 33,20,99,-25,-1 0,21,0,0,0 22,10D,12 43,104,18 30,111,11 29,10C,1031 46,10D,12 37,20,101,-27,-2 0,21,0,0,0 21,104,17 27,111,11 30,10C,972 46,10D,12 49,104,18 27,10,7391500 0,D,12 0,A,-3381956 0,B,15122010 0,C,26 40,111,12 19,20,101,-23,-2 0,21,0,0,0 21,10C,906 44,10D,12 48,104,21 40,111,12 44,10C,871 34,20,102,-26,-7 0,21,0,-1,0 19,10D,12 55,104,25 34,111,12 21,10,7391540 0,D,12 0,A,-3381957 0,B,15122009 0,C,26 41,10C,917 31,20,99,-25,-8 0,21,0,0,0 21,10D,12 46,104,24 29,111,11 27,10,7391560 0,D,12 0,A,-3381958 0,B,15122009 0,C,26 40,10C,988 40,20,99,-25,-8 0,21,0,0,0 20,10D,11 43,104,20 28,111,11 23,10,7391580 0,D,12 0,A,-3381958 0,B,15122009 0,C,26 41,10C,968 44,10D,11 37,20,99,-27,-3 0,21,0,0,0 19,104,20 26,111,11 35,10C,914 43,10D,11 49,104,20 29,111,11 21,20,102,-25,-4 0,21,0,0,-1 19,10C,878 41,10D,11 56,104,20 33,111,11 30,10C,847 34,20,101,-25,0 0,21,0,0,0 18,10D,11 38,10,7391640 0,D,9 0,A,-3381960 0,B,15122008 0,C,26 40,104,20 31,111,12 34,10C,808 46,20,100,-27,-8 0,21,0,0,0 23,10D,10 55,104,21 29,111,11 34,10C,808 41,10D,10 37,20,97,-31,-7 0,21,0,0,0 20,104,21 29,111,11 30,10C,816 46,10D,10 45,104,22 29,111,12 21,20,107,-25,-2 0,21,0,0,0 16,10,7391700 0,D,9 0,A,-3381961 0,B,15122007 0,C,26 67,10C,804 40,10D,9 47,104,24 31,111,12 30,20,105,-26,-14 0,21,0,-1,0 21,10C,832 44,10D,9 48,104,25 29,111,12 29,10C,859 35,20,98,-26,-13 0,21,-1,0,0 17,10,7391740 0,D,9 0,A,-3381962 0,B,15122007 0,C,24 66,10D,9 60,104,25 22,10,7391760 0,D,8 0,A,-3381962 0,B,15122007 0,C,24 40,111,12 20,20,98,-29,-10 0,21,-1,0,0 23,10C,878 45,10D,9 43,104,25 23,10,7391780 0,D,8 0,A,-3381963 0,B,15122007 0,C,24 41,111,12 27,10C,878 34,20,109,-22,-9 0,21,-2,0,0 20,10D,8 45,104,25 30,111,12 31,10C,875 46,10D,8 37,20,107,-20,-6 0,21,-2,0,0 19,104,24 26,111,12 31,10,7391820 0,D,7 0,A,-3381963 0,B,15122006 0,C,24 40,10C,859 50,10D,8 37,20,96,-29,-9 0,21,-3,1,0 19,104,24 29,111,11 31,10C,847 43,10D,8 45,104,23 29,111,11 22,20,98,-27,-6 0,21,-2,0,0 19,10C,824 40,10D,7 37,10,7391860 0,D,6 0,A,-3381964 0,B,15122006 0,C,24 45,104,23 28,111,11 29,10C,792 42,20,105,-29,-6 0,21,-2,0,0 21,10D,7 44,104,22 40,111,11 29,10C,773 46,10D,7 36,20,99,-27,-3 0,21,-2,0,0 20,104,22 28,111,11 29,10C,730 46,10D,7 49,104,23 28,20,106,-30,-3 0,21,-2,0,0 18,10,7391920 0,D,5 0,A,-3381965 0,B,15122005 0,C,24 65,111,11 39,10C,644 45,10D,5 37,20,96,-29,-6 0,21,-2,0,0 20,104,24 28,111,11 30,10C,621 46,10D,5 44,104,25 30,111,11 21,20,100,-31,-2 0,21,-1,0,0 15,10,7391960 0,D,3 0,A,-3381965 0,B,15122005 0,C,24 68,10C,601 40,10D,5 48,104,27 23,10,7391980 0,D,2 0,A,-3381965 0,B,15122004 0,C,24 45,111,12 19,20,97,-23,-8 0,21,-1,0,0 20,10C,593 41,10D,3 47,104,29 33,111,12 31,10C,617 34,20,101,-18,-8 0,21,-2,0,0 19,10D,3 43,104,32 32,111,12 42,10C,679 36,10,7392020 0,D,2 0,A,-3381965 0,B,15122004 0,C,24 40,10D,3 44,20,98,-19,-3 0,21,-2,0,0 19,104,33 30,111,12 31,10C,734 36,10,7392040 0,D,2 0,A,-3381965 0,B,15122004 0,C,25 40,10D,3 43,104,40 21,20,104,-17,-4 0,21,-2,0,0 19,111,14 24,10,7392060 0,D,2 0,A,-3381965 0,B,15122004 0,C,25 53,10C,789 40,10D,2 46,104,40 27,20,96,-22,-7 0,21,-2,0,0 18,111,13 21,10,7392080 0,D,3 0,A,-3381966 0,B,15122004 0,C,25 56,10C,921 44,10D,2 49,104,34 21,20,105,-15,-5 0,21,-2,0,0 20,111,12 20,10,7392100 0,D,2 0,A,-3381966 0,B,15122003 0,C,25 56,10C,914 44,10D,2 44,104,30 22,20,109,-8,-7 0,21,-3,0,0 20,111,12 29,10C,855 53,10D,2 45,104,31 42,111,14 22,20,106,-15,-6 0,21,-4,0,0 20,10C,804 41,10D,3 46,104,41 30,111,15 32,10C,832 33,20,96,-22,-8 0,21,-4,1,0 22,10D,3 43,104,43 31,111,14 29,10C,1019 45,10D,3 37,20,104,-13,-3 0,21,-5,0,0 25,104,41 32,111,14 33,10C,1054 48,10D,3 47,104,40 21,20,101,-19,-11 0,21,-6,0,0 21,111,14 31,10C,1097 46,10D,4 50,104,38 27,111,14 28,20,104,-12,-10 0,21,-7,0,0 20,10C,1109 41,10D,4 45,104,37 42,111,14 39,10C,1117 35,20,104,-14,0 0,21,-8,1,0 15,10,7392240 0,D,5 0,A,-3381967 0,B,15122002 0,C,25 68,10D,4 52,104,37 30,111,15 22,10,7392260 0,D,5 0,A,-3381967 0,B,15122001 0,C,25 40,10C,1144 33,20,103,-20,-9 0,21,-9,1,0 20,10D,4 47,104,36 27,111,15 31,10C,1179 44,10D,5 37,20,102,-13,-17 0,21,-10,1,0 19,104,36 36,111,15 28,10C,1218 47,10D,5 49,104,35 22,20,106,-16,-4 0,21,-10,2,0 20,111,14 27,10C,1234 45,10D,5 39,10,7392320 0,D,4 0,A,-3381967 0,B,15122001 0,C,25 41,104,33 30,111,14 22,20,96,-17,-17 0,21,-11,1,0 20,10C,1234 42,10D,5 49,10,7392340 0,D,5 0,A,-3381967 0,B,15122000 0,C,25 40,104,31 27,111,14 22,20,105,-16,-3 0,21,-11,3,0 20,10C,1226 42,10D,7 46,104,31 30,111,14 30,10C,1222 34,20,95,-27,-17 0,21,-11,1,0 20,10D,7 46,104,31 22,10,7392380 0,D,6 0,A,-3381967 0,B,15121999 0,C,25 40,111,14 43,10C,1238 35,20,108,-16,-12 0,21,-11,2,0 24,10D,7 87,104,29 30,111,14 29,10C,1265 34,20,102,-22,-9 0,21,-10,2,0 20,10D,7 44,10,7392420 0,D,8 0,A,-3381967 0,B,15121998 0,C,25 40,104,29 32,111,14 30,10C,1289 35,20,102,-18,-15 0,21,-10,1,0 19,10D,9 40,10,7392440 0,D,8 0,A,-3381967 0,B,15121997 0,C,25 41,104,28 40,111,14 34,10C,1308 35,20,101,-18,-10 0,21,-9,2,0 19,10D,9 47,104,28 24,10,7392460 0,D,8 0,A,-3381967 0,B,15121997 0,C,26 41,111,14 30,10C,1320 39,20,102,-19,-9 0,21,-9,1,0 19,10D,9 48,104,28 22,10,7392480 0,D,8 0,A,-3381967 0,B,15121996 0,C,26 45,111,14 40,10C,1320 34,20,104,-17,1 0,21,-8,1,0 20,10D,10 48,104,28 34,111,14 29,10C,1328 47,10D,10 37,20,106,-16,-12 0,21,-7,0,0 21,104,28 30,111,14 30,10C,1335 47,10D,10 48,104,28 25,20,105,-20,-22 0,21,-7,1,1 20,111,14 21,10,7392540 0,D,9 0,A,-3381967 0,B,15121994 0,C,26 55,10C,1335 53,10D,10 45,104,28 22,20,102,-18,-10 0,21,-6,1,0 20,111,14 29,10C,1335 43,10D,11 46,104,28 29,111,14 33,10C,1324 33,20,103,-19,-12 0,21,-5,0,0 18,10,7392580 0,D,11 0,A,-3381967 0,B,15121993 0,C,26 70,10D,11 52,104,28 29,111,14 23,10,7392600 0,D,11 0,A,-3381966 0,B,15121992 0,C,26 40,10C,1324 33,20,101,-18,-6 0,21,-5,0,0 19,10D,11 47,104,28 28,111,14 31,10C,1324 57,10D,11 37,20,97,-25,-4 0,21,-4,1,0 20,104,28 30,111,14 32,10C,1308 37,10,7392640 0,D,13 0,A,-3381966 0,B,15121991 0,C,26 40,10D,13 44,20,105,-14,-3 0,21,-2,0,0 19,104,29 40,111,14 30,10C,1203 34,10,7392660 0,D,13 0,A,-3381966 0,B,15121990 0,C,26 41,10D,13 40,20,108,-19,-5 0,21,-1,-2,0 20,104,31 30,111,14 32,10C,1187 36,10,7392680 0,D,13 0,A,-3381966 0,B,15121989 0,C,26 44,10D,13 41,20,99,-17,-13 0,21,-1,-2,-1 20,104,32 29,111,14 34,10C,1183 35,10,7392700 0,D,14 0,A,-3381966 0,B,15121988 0,C,26 40,10D,15 44,20,105,-14,-5 0,21,0,0,0 19,104,32 27,111,14 34,10C,1187 35,10,7392720 0,D,14 0,A,-3381966 0,B,15121987 0,C,26 39,10D,15 44,104,33 22,20,99,-24,-3 0,21,0,-1,0 19,111,14 30,10C,1191 36,10,7392740 0,D,13 0,A,-3381966 0,B,15121986 0,C,26 41,10D,15 47,104,33 30,111,14 29,20,102,-20,-8 0,21,0,-1,0 21,10C,1195 33,10,7392760 0,D,14 0,A,-3381966 0,B,15121985 0,C,26 45,10D,15 47,104,33 44,111,14 21,20,104,-21,-6 0,21,-1,0,-1 21,10C,1199 41,10D,16 46,104,33 30,111,14 32,10C,1207 34,20,105,-19,-10 0,21,-1,0,-1 22,10D,16 43,104,33 30,111,14 30,10C,1214 45,10D,16 37,20,101,-18,-8 0,21,0,0,0 22,104,32 31,111,14 30,10C,1218 46,10D,16 49,104,32 22,20,101,-18,-10 0,21,-1,0,0 20,111,14 29,10C,1218 42,10D,17 46,104,32 44,111,14 31,20,91,-22,-6 0,21,-1,-1,1 20,10C,1218 45,10D,17 45,104,31 30,111,14 29,10C,1222 33,20,101,-15,-14 0,21,-1,0,1 22,10D,17 47,104,31 34,111,14 30,10C,1218 45,10D,17 37,20,108,-19,-5 0,21,-1,0,0 21,104,31 28,111,14 29,10C,1222 43,10D,18 48,104,31 31,20,92,-19,-9 0,21,-1,-1,-1 21,111,14 31,10C,1234 46,10D,18 58,104,28 27,10,7392940 0,D,17 0,A,-3381965 0,B,15121976 0,C,26 41,111,13 19,20,100,-22,-8 0,21,0,1,-1 20,10C,1214 44,10D,18 49,104,25 40,111,14 31,10C,1199 34,20,96,-23,-5 0,21,0,0,0 20,10D,18 48,104,28 31,111,14 44,10C,1250 36,10,7392980 0,D,17 0,A,-3381965 0,B,15121974 0,C,23 40,10D,19 36,20,104,-23,-4 0,21,-1,0,0 19,104,28 30,111,14 39,10C,1261 36,10,7393000 0,D,17 0,A,-3381965 0,B,15121973 0,C,23 41,10D,19 35,20,104,-15,-10 0,21,0,0,0 20,104,29 29,111,14 30,10C,1281 44,10D,19 46,104,27 29,111,12 22,20,102,-16,-3 0,21,-1,0,0 19,10C,1269 42,10D,19 50,104,24 34,111,12 30,10C,1218 34,20,96,-21,-11 0,21,-1,0,0 19,10D,20 57,104,22 34,111,12 30,10C,1242 46,10D,20 37,20,103,-27,-5 0,21,-1,-1,0 21,104,18 32,111,11 30,10C,1187 43,10D,20 45,104,15 29,20,97,-33,-9 0,21,-1,0,0 20,111,12 28,10C,1117 43,10D,20 62,104,16 29,111,11 20,20,99,-38,-6 0,21,-1,0,0 25,10C,1085 46,10D,19 49,104,16 34,111,12 32,10C,1007 34,20,95,-50,-8 0,21,0,0,0 21,10D,19 44,104,17 30,111,12 29,10C,945 45,10D,19 37,20,97,-44,-7 0,21,-1,0,0 22,104,18 37,111,11 29,10C,937 46,10D,19 49,104,18 21,20,92,-47,-5 0,21,0,0,0 16,10,7393180 0,D,16 0,A,-3381963 0,B,15121963 0,C,23 67,111,11 31,10C,898 45,10D,15 50,20,98,-45,-9 0,21,-1,0,0 20,104,18 28,111,11 34,10C,882 42,10D,15 45,104,20 22,10,7393220 0,D,13 0,A,-3381963 0,B,15121961 0,C,23 40,111,11 20,20,94,-48,-1 0,21,-1,0,0 19,10C,867 45,10D,15 44,104,20 30,111,11 31,10C,855 34,20,94,-45,-8 0,21,-1,0,0 20,10D,15 43,104,20 32,111,12 27,10,7393260 0,D,9 0,A,-3381963 0,B,15121960 0,C,23 40,10C,812 41,20,102,-37,-6 0,21,-1,0,0 21,10D,10 55,104,23 32,111,12 23,10,7393280 0,D,8 0,A,-3381963 0,B,15121959 0,C,23 40,10C,816 32,20,92,-40,-7 0,21,-2,0,0 21,10D,10 43,104,25 31,111,12 31,10,7393300 0,D,7 0,A,-3381963 0,B,15121959 0,C,23 41,10C,820 37,20,105,-29,-6 0,21,-1,0,0 19,10D,10 43,104,26 32,111,12 31,10C,812 43,10D,10 38,20,97,-35,-5 0,21,-1,0,0 23,104,26 41,111,12 28,10C,796 47,10D,6 49,104,27 22,20,96,-36,-7 0,21,-1,0,0 19,111,12 31,10C,761 42,10D,6 38,10,7393360 0,D,4 0,A,-3381963 0,B,15121957 0,C,23 40,104,28 32,20,95,-34,-7 0,21,-1,0,0 21,111,11 31,10C,738 46,10D,6 37,10,7393380 0,D,4 0,A,-3381963 0,B,15121957 0,C,23 40,104,28 28,20,100,-30,-9 0,21,-1,0,0 20,111,11 26,10C,714 46,10D,6 38,10,7393400 0,D,3 0,A,-3381963 0,B,15121956 0,C,23 40,104,28 21,10,7393400 0,D,3 0,A,13333 0,B,86666 0,C,24 40,111,11 18,20,102,-20,-8 0,21,-1,0,0 24,10C,695 40,10D,3 50,104,27 29,111,11 30,10C,671 34,20,104,-18,-7 0,21,-1,0,0 19,10D,3 48,104,27 33,111,11 30,10C,667 46,10D,3 37,20,101,-21,-12 0,21,-1,0,0 19,104,27 21,10,7393460 0,D,3 0,A,-3381963 0,B,15121956 0,C,24 55,111,11 28,10C,660 63,10D,3 37,20,99,-22,-10 0,21,-1,0,0 21,104,36 27,111,14 33,10C,695 43,10D,2 44,104,44 30,111,15 21,20,106,-16,-8 0,21,-2,0,0 17,10,7393500 0,D,3 0,A,-3381964 0,B,15121955 0,C,24 66,10C,847 40,10D,2 47,104,45 24,10,7393520 0,D,3 0,A,-3381964 0,B,15121955 0,C,24 41,111,16 23,20,105,-9,-8 0,21,-2,0,0 21,10C,1070 40,10D,2 44,104,47 30,111,16 31,10C,1171 34,20,105,-12,-7 0,21,-2,0,0 20,10D,3 46,104,45 29,111,17 31,10,7393560 0,D,4 0,A,-3381964 0,B,15121954 0,C,24 41,10C,1246 44,20,101,-9,-3 0,21,-1,0,0 20,10D,3 56,104,54 27,111,19 31,10C,1417 37,10,7393580 0,D,4 0,A,-3381963 0,B,15121954 0,C,25 40,10D,3 35,20,108,0,-7 0,21,-1,0,-1 19,104,57 30,111,19 30,10C,1585 43,10D,3 46,104,55 29,111,19 22,20,115,13,-8 0,21,-1,0,0 19,10C,1679 41,10D,6 61,104,51 29,111,18 30,10C,1718 34,20,103,-2,-7 0,21,-1,0,-1 23,10D,6 37,10,7393640 0,D,9 0,A,-3381963 0,B,15121952 0,C,25 41,104,45 28,111,18 33,10C,1660 38,20,104,-8,-6 0,21,-1,0,0 19,10D,6 48,104,44 33,111,18 29,10C,1621 48,10D,6 45,20,103,-11,-8 0,21,-1,0,0 20,104,44 29,111,18 30,10C,1613 43,10D,10 54,104,45 24,20,104,-7,-7 0,21,-1,0,0 22,111,18 32,10C,1621 42,10D,10 46,104,45 28,111,18 33,10C,1625 34,20,105,-7,-13 0,21,0,0,0 17,10,7393720 0,D,13 0,A,-3381963 0,B,15121949 0,C,25 66,10D,10 47,104,45 31,111,18 30,10C,1636 35,20,108,-14,-5 0,21,-1,0,-1 25,10D,10 44,104,45 31,111,18 31,10C,1640 47,10D,14 38,20,99,-8,-11 0,21,-1,0,0 21,104,44 31,111,18 30,10C,1648 57,10D,14 37,10,7393780 0,D,15 0,A,-3381962 0,B,15121946 0,C,25 41,104,44 20,20,103,-3,-7 0,21,-1,0,0 19,111,18 32,10C,1652 46,10D,14 38,10,7393800 0,D,16 0,A,-3381962 0,B,15121945 0,C,25 41,104,44 25,20,105,-6,-10 0,21,-1,0,0 19,111,18 32,10C,1660 43,10D,14 38,10,7393820 0,D,17 0,A,-3381962 0,B,15121944 0,C,25 41,104,44 27,20,96,-18,-12 0,21,-1,0,0 21,111,18 70,10C,1617 47,10D,17 51,104,44 25,20,103,-11,-4 0,21,-1,0,0 21,111,18 29,10C,1550 44,10D,17 52,104,46 33,111,18 22,20,105,-12,-5 0,21,-1,0,0 20,10C,1500 43,10D,17 57,104,47 34,111,17 29,10C,1449 35,20,101,-17,-12 0,21,-1,0,1 21,10D,17 43,104,45 22,10,7393900 0,D,20 0,A,-3381962 0,B,15121940 0,C,25 41,111,16 28,10C,1328 47,10D,19 37,20,103,-16,-15 0,21,-1,0,0 20,104,42 21,10,7393920 0,D,20 0,A,-3381961 0,B,15121939 0,C,25 55,111,16 39,10C,1187 46,10D,19 38,20,109,-13,-5 0,21,-1,0,0 20,104,43 33,111,16 34,10C,1199 43,10D,19 46,104,44 27,20,103,-14,-4 0,21,0,0,0 20,111,16 29,10C,1191 55,10D,19 50,104,43 36,111,16 31,20,109,-11,0 0,21,0,0,0 20,10C,1195 41,10D,21 46,104,43 34,111,16 32,10C,1199 35,20,95,-25,-2 0,21,0,0,0 17,10,7394000 0,D,22 0,A,-3381961 0,B,15121933 0,C,25 67,10D,21 44,104,41 31,111,16 31,10C,1207 35,20,100,-19,-7 0,21,0,0,0 20,10D,21 48,104,40 30,111,15 33,10C,1203 44,10D,23 38,20,104,-17,-1 0,21,0,0,0 19,104,40 32,111,14 34,10C,1210 53,10,7394060 0,D,24 0,A,-3381960 0,B,15121929 0,C,25 41,10D,23 36,20,101,-25,-3 0,21,0,0,0 23,104,32 33,111,13 36,10C,1207 44,10D,23 59,104,27 23,20,94,-25,-4 0,21,0,0,0 19,111,12 32,10C,1207 45,10D,23 40,10,7394100 0,D,24 0,A,-3381960 0,B,15121926 0,C,25 40,104,22 25,20,107,-26,-3 0,21,1,0,0 19,111,12 32,10C,1175 46,10D,23 39,10,7394120 0,D,24 0,A,-3381959 0,B,15121925 0,C,25 41,104,20 23,20,98,-48,-1 0,21,1,-1,-1 21,111,11 31,10C,1097 43,10D,23 39,10,7394140 0,D,23 0,A,-3381959 0,B,15121923 0,C,25 39,104,18 29,20,98,-57,-2 0,21,1,0,-1 20,111,12 27,10C,964 46,10D,23 39,10,7394160 0,D,22 0,A,-3381959 0,B,15121922 0,C,25 44,104,20 25,20,84,-64,0 0,21,1,0,-1 20,111,11 31,10C,957 46,10D,23 39,10,7394180 0,D,20 0,A,-3381959 0,B,15121921 0,C,25 40,104,18 30,20,97,-60,-2 0,21,1,-2,-1 19,111,11 31,10C,898 44,10,7394200 0,D,17 0,A,-3381959 0,B,15121920 0,C,25 40,10D,19 45,104,20 34,20,104,-32,-1 0,21,2,-1,-1 20,111,11 27,10C,855 47,10D,19 40,10,7394220 0,D,17 0,A,-3381959 0,B,15121919 0,C,25 40,104,20 28,111,11 22,20,104,-33,-7 0,21,2,-2,-1 19,10C,882 38,10,7394240 0,D,13 0,A,-3381959 0,B,15121918 0,C,25 44,10D,19 45,104,21 30,111,14 27,20,100,-29,-2 0,21,3,0,-4 18,10C,863 41,10D,14 51,104,32 30,111,14 35,10C,1000 34,20,97,-33,2 0,21,3,0,-3 19,10D,14 45,104,35 31,111,16 30,10C,1265 56,10D,14 38,20,100,-22,8 0,21,3,-2,-4 19,104,38 33,10,7394300 0,D,10 0,A,-3381959 0,B,15121916 0,C,25 44,111,18 32,10C,1425 43,10D,14 38,20,101,-8,-3 0,21,4,0,-4 20,104,51 20,10,7394320 0,D,10 0,A,-3381959 0,B,15121916 0,C,25 55,111,21 32,10C,1664 56,10D,11 37,20,120,10,1 0,21,4,0,-3 21,104,60 32,111,21 34,10C,1812 43,10D,11 53,104,57 22,20,114,1,-2 0,21,4,0,-3 20,111,21 32,10C,1875 44,10D,11 45,104,55 29,111,21 30,10C,1898 35,20,116,4,-7 0,21,5,-1,-3 21,10D,11 45,104,55 39,111,21 31,10C,1906 44,10D,10 38,20,108,4,0 0,21,5,1,0 17,10,7394400 0,D,10 0,A,-3381960 0,B,15121913 0,C,27 66,104,55 31,111,21 28,10,7394420 0,D,11 0,A,-3381960 0,B,15121912 0,C,27 40,10C,1878 33,20,103,-5,0 0,21,5,0,-3 20,10D,10 48,104,60 28,111,23 40,10C,1906 44,10D,10 38,20,106,0,-13 0,21,7,0,-3 20,104,65 28,111,22 32,10C,1980 44,10D,10 40,10,7394460 0,D,11 0,A,-3381961 0,B,15121911 0,C,27 44,104,62 21,20,103,-3,0 0,21,7,-2,-1 19,111,22 30,10C,1976 44,10D,11 47,104,61 31,111,22 29,20,89,-12,0 0,21,6,-2,0 21,10C,1980 48,10D,11 40,10,7394500 0,D,12 0,A,-3381962 0,B,15121910 0,C,27 40,104,60 32,111,23 21,20,100,6,10 0,21,7,0,0 21,10C,1964 42,10D,11 40,10,7394520 0,D,13 0,A,-3381962 0,B,15121909 0,C,27 40,104,65 28,111,23 31,10C,2035 34,20,86,-11,-15 0,21,5,0,-3 19,10D,12 45,104,65 31,111,24 34,10C,2062 43,10D,12 37,20,111,8,-3 0,21,5,-1,0 19,104,66 22,10,7394560 0,D,12 0,A,-3381963 0,B,15121908 0,C,27 54,111,24 34,10C,2078 43,10D,12 48,20,118,19,0 0,21,5,0,0 21,104,67 29,111,24 34,10C,2078 43,10D,12 49,104,66 31,20,109,13,-15 0,21,4,0,-1 20,111,24 30,10C,2085 43,10D,13 46,104,67 28,111,24 34,10C,2097 35,20,93,0,6 0,21,4,-1,0 15,10,7394620 0,D,14 0,A,-3381965 0,B,15121906 0,C,27 68,10D,13 44,104,68 32,111,24 23,10,7394640 0,D,15 0,A,-3381965 0,B,15121906 0,C,27 41,10C,2117 33,20,103,1,3 0,21,4,0,0 20,10D,13 47,104,68 28,111,25 31,10C,2121 44,10D,13 50,20,97,2,-11 0,21,4,0,0 24,104,69 32,111,25 36,10,7394680 0,D,15 0,A,-3381967 0,B,15121905 0,C,27 40,10C,2136 45,10D,14 38,20,97,-5,-13 0,21,3,0,0 20,104,69 30,111,25 40,10C,2144 44,10D,14 47,104,69 21,20,104,4,0 0,21,4,1,0 21,111,25 29,10C,2136 44,10D,14 50,104,69 34,111,25 23,20,111,12,-13 0,21,3,0,0 19,10C,2136 43,10D,14 40,10,7394740 0,D,15 0,A,-3381969 0,B,15121904 0,C,27 40,104,68 29,111,24 29,20,106,6,3 0,21,3,0,-1 20,10C,2148 43,10D,15 40,10,7394760 0,D,15 0,A,-3381969 0,B,15121903 0,C,27 41,104,68 27,111,24 31,20,101,-2,2 0,21,3,1,-2 20,10C,2152 40,10D,15 47,104,68 33,111,24 30,10C,2140 35,20,111,-4,-2 0,21,3,-2,0 19,10D,15 44,104,68 41,10,7394800 0,D,16 0,A,-3381971 0,B,15121903 0,C,27 40,111,24 33,10C,2144 34,20,103,0,2 0,21,2,1,0 19,10D,15 45,104,68 35,111,25 34,10C,2140 47,10D,16 37,20,86,-6,-5 0,21,3,1,0 19,104,68 33,111,25 35,10C,2140 43,10D,16 46,104,68 26,20,103,-5,15 0,21,3,0,2 18,111,25 33,10C,2136 44,10D,16 50,104,68 34,111,24 21,20,105,10,7 0,21,3,0,0 19,10C,2140 41,10D,16 50,104,68 35,111,24 34,10C,2148 37,20,95,0,-16 0,21,3,-1,0 21,10D,16 45,10,7394900 0,D,17 0,A,-3381975 0,B,15121901 0,C,27 41,104,68 32,111,25 34,10C,2148 33,20,106,4,7 0,21,3,1,0 21,10D,16 45,104,68 30,111,25 30,10C,2148 55,10D,16 37,20,98,-2,2 0,21,3,0,0 21,104,68 28,111,25 33,10C,2156 47,10D,16 49,104,68 22,20,115,18,-4 0,21,4,0,1 21,111,25 27,10C,2156 43,10D,16 46,104,68 29,111,25 31,10C,2167 35,20,95,-4,4 0,21,4,2,1 15,10,7394980 0,D,17 0,A,-3381978 0,B,15121901 0,C,27 67,10D,16 48,104,67 28,111,25 24,10,7395000 0,D,17 0,A,-3381979 0,B,15121901 0,C,27 44,10C,2160 43,20,101,-12,-9 0,21,4,0,1 19,10D,16 47,104,69 31,111,25 40,10C,2175 58,10D,16 38,20,86,-1,0 0,21,5,0,0 20,104,67 26,111,23 31,10C,2179 44,10D,17 46,104,62 31,111,23 21,20,115,1,7 0,21,5,0,0 19,10C,2128 46,10D,17 39,10,7395060 0,D,17 0,A,-3381982 0,B,15121902 0,C,35 41,104,62 27,111,23 30,20,120,12,6 0,21,5,0,0 19,10C,2082 41,10D,17 40,10,7395080 0,D,17 0,A,-3381983 0,B,15121902 0,C,35 39,104,64 32,111,24 30,10C,2097 35,20,88,0,-5 0,21,5,-1,0 20,10D,17 45,104,65 30,111,24 44,10C,2117 45,10D,18 38,20,113,2,11 0,21,5,0,-1 20,104,65 28,111,25 35,10C,2125 46,10D,18 49,104,70 22,20,92,-2,-8 0,21,4,-2,-1 16,10,7395140 0,D,19 0,A,-3381985 0,B,15121903 0,C,35 67,111,25 31,10C,2109 43,10D,18 46,20,90,3,2 0,21,5,-1,0 21,104,71 27,111,25 31,10C,2066 46,10D,18 48,104,72 24,10,7395180 0,D,19 0,A,-3381987 0,B,15121904 0,C,35 42,111,25 19,20,96,-6,-5 0,21,4,-2,0 20,10C,2023 41,10D,18 49,104,73 31,111,25 30,10C,1976 35,20,103,5,-13 0,21,4,0,0 20,10D,18 53,104,74 32,111,25 24,10,7395220 0,D,19 0,A,-3381989 0,B,15121905 0,C,35 45,10C,1917 33,20,94,-6,-16 0,21,3,-1,-1 21,10D,18 47,104,74 27,111,25 32,10C,1855 44,10D,19 38,20,92,-11,-12 0,21,3,-2,0 19,104,75 28,111,25 32,10C,1808 44,10D,19 40,10,7395260 0,D,19 0,A,-3381991 0,B,15121906 0,C,37 40,104,75 20,20,103,-2,-2 0,21,4,0,2 20,111,25 29,10C,1761 44,10D,19 48,104,77 34,111,25 34,20,131,27,6 0,21,3,-2,-1 20,10C,1703 38,10D,19 48,104,78 30,111,25 30,10C,1644 35,20,101,2,-12 0,21,3,-1,-2 19,10D,20 50,10,7395320 0,D,20 0,A,-3381993 0,B,15121908 0,C,37 46,104,80 28,111,25 30,10C,1550 35,20,90,7,-5 0,21,3,1,0 19,10D,20 44,10,7395340 0,D,20 0,A,-3381994 0,B,15121909 0,C,37 41,104,81 32,111,25 31,10C,1531 33,20,81,-25,-11 0,21,3,-1,0 20,10D,20 41,10,7395360 0,D,21 0,A,-3381995 0,B,15121910 0,C,37 41,104,82 28,111,25 42,10C,1558 35,20,108,8,4 0,21,3,0,-1 20,10D,20 45,104,81 35,111,25 46,10C,1574 43,10D,21 37,20,77,-26,5 0,21,5,1,2 19,104,81 21,10,7395400 0,D,21 0,A,-3381997 0,B,15121911 0,C,37 55,111,25 29,10C,1562 43,10D,21 37,20,113,-3,3 0,21,4,-4,3 25,104,82 40,111,26 34,10C,1585 43,10D,21 46,104,83 22,20,113,2,8 0,21,5,0,0 21,111,26 28,10C,1597 43,10D,21 51,104,81 29,111,25 29,20,99,-15,7 0,21,4,0,1 17,10,7395460 0,D,22 0,A,-3381999 0,B,15121914 0,C,37 67,10C,1632 41,10D,22 46,104,81 29,111,25 22,20,93,-30,-24 0,21,4,-5,4 18,10,7395480 0,D,23 0,A,-3381999 0,B,15121916 0,C,37 65,10C,1617 41,10D,22 48,104,81 28,20,85,-22,-7 0,21,3,0,2 21,111,25 28,10C,1667 43,10D,22 46,104,81 29,111,25 27,10,7395520 0,D,23 0,A,-3382001 0,B,15121918 0,C,37 41,10C,1675 56,20,99,-1,24 0,21,3,-1,0 19,10D,23 43,104,81 31,111,25 22,10,7395540 0,D,23 0,A,-3382001 0,B,15121919 0,C,37 41,10C,1664 41,10D,23 38,20,93,6,-1 0,21,2,1,-1 20,104,81 25,111,25 32,10C,1667 37,10,7395560 0,D,23 0,A,-3382002 0,B,15121920 0,C,40 41,10D,23 47,104,78 21,20,122,10,-21 0,21,0,3,-3 19,111,24 30,10C,1671 44,10D,23 46,104,78 30,111,24 30,10C,1675 34,20,104,3,-16 0,21,0,1,-6 20,10D,24 45,104,78 31,111,25 30,10C,1691 43,10D,24 38,20,101,-12,-20 0,21,1,1,0 20,104,80 30,111,25 39,10C,1699 44,10D,24 49,104,78 22,20,126,-17,-15 0,21,1,2,4 21,111,25 28,10C,1695 47,10D,24 46,104,80 42,111,25 21,20,118,-2,-24 0,21,1,0,6 21,10C,1699 41,10D,25 47,104,81 30,111,26 32,10C,1742 35,20,93,-9,0 0,21,1,1,5 21,10D,25 47,104,80 30,111,25 34,10C,1769 45,10D,25 38,20,115,-7,-37 0,21,0,0,0 22,104,80 31,111,25 38,10C,1761 51,10D,25 51,104,80 22,20,100,0,22 0,21,1,0,2 21,111,25 37,10C,1785 44,10D,25 44,104,78 47,111,25 22,20,96,-3,-22 0,21,0,0,2 20,10C,1804 41,10D,27 46,104,78 28,111,25 24,10,7395760 0,D,28 0,A,-3382007 0,B,15121935 0,C,40 46,10C,1812 33,20,125,18,-20 0,21,0,0,-1 19,10D,27 44,104,77 29,111,25 31,10C,1839 44,10D,27 38,20,113,-11,-2 0,21,0,0,2 20,104,76 28,111,25 31,10C,1835 45,10D,27 39,10,7395800 0,D,28 0,A,-3382008 0,B,15121938 0,C,42 41,104,76 20,20,98,-2,11 0,21,-1,0,0 19,111,25 31,10C,1835 44,10D,29 51,104,76 39,111,20 23,20,134,18,-27 0,21,-1,0,-3 19,10C,1816 43,10D,29 40,10,7395840 0,D,30 0,A,-3382009 0,B,15121942 0,C,42 40,104,57 29,111,17 29,10C,1679 35,20,106,-19,-6 0,21,0,0,0 20,10D,29 45,104,40 30,111,15 42,10C,1585 43,10D,29 37,20,94,-15,-10 0,21,-1,0,-1 22,104,32 19,10,7395880 0,D,31 0,A,-3382010 0,B,15121946 0,C,42 56,111,14 27,10C,1488 43,10D,30 38,20,120,7,8 0,21,-1,0,0 21,104,28 28,111,17 30,10C,1414 44,10D,30 45,104,36 33,111,18 21,20,100,-13,-20 0,21,-1,-2,-1 22,10C,1394 41,10D,30 59,104,50 30,111,19 32,10C,1445 34,20,106,-16,0 0,21,-1,0,3 18,10,7395940 0,D,30 0,A,-3382011 0,B,15121951 0,C,42 66,10D,30 43,104,60 32,111,19 36,10C,1296 35,20,94,-21,-13 0,21,-2,0,0 16,10,7395960 0,D,30 0,A,-3382011 0,B,15121953 0,C,43 67,10D,30 44,104,63 31,111,19 30,10C,1261 35,20,100,-25,-11 0,21,-1,-1,0 21,10D,30 44,104,64 31,111,19 28,10,7400000 0,D,30 0,A,-3382012 0,B,15121956 0,C,43 41,10C,1257 38,20,81,-27,2 0,21,-1,0,4 19,10D,30 48,104,63 44,111,16 32,10C,1257 44,10D,30 38,20,115,-6,14 0,21,0,-2,0 20,104,49 36,111,14 33,10C,1253 37,10,7400040 0,D,30 0,A,-3382013 0,B,15121960 0,C,43 40,10D,30 36,20,70,-48,10 0,21,-1,0,2 19,104,37 32,111,14 32,10C,1238 37,10,7400060 0,D,30 0,A,-3382014 0,B,15121961 0,C,43 52,10D,30 36,20,125,-3,19 0,21,-1,0,0 19,104,29 31,111,13 34,10C,1226 34,10,7400080 0,D,30 0,A,-3382014 0,B,15121963 0,C,43 41,10D,30 44,20,95,-26,-29 0,21,-1,1,-2 21,104,25 30,111,12 34,10C,1203 35,10,7400100 0,D,29 0,A,-3382015 0,B,15121965 0,C,43 41,10D,29 47,20,156,10,-21 0,21,-1,2,1 21,104,21 30,111,11 30,10,7400120 0,D,29 0,A,-3382015 0,B,15121966 0,C,43 41,10C,1175 41,10D,29 38,20,76,-38,-9 0,21,-1,0,0 21,104,17 38,111,11 35,10C,1207 37,10,7400140 0,D,29 0,A,-3382015 0,B,15121968 0,C,45 40,10D,29 36,20,99,-22,38 0,21,-1,0,8 23,104,15 27,111,11 31,10C,1152 45,10D,27 49,104,14 27,20,109,6,-71 0,21,-1,-4,-8 19,111,11 30,10C,1164 44,10D,27 50,104,14 31,111,11 26,20,117,-7,-10 0,21,-2,-2,1 20,10C,1179 43,10D,27 39,10,7400200 0,D,26 0,A,-3382017 0,B,15121973 0,C,45 41,104,13 31,111,11 27,20,100,-35,-18 0,21,-4,1,-3 19,10C,1183 45,10D,27 38,10,7400220 0,D,25 0,A,-3382017 0,B,15121974 0,C,45 40,104,13 29,111,11 30,10C,1183 35,20,118,-10,-12 0,21,-1,2,-3 19,10D,25 47,10,7400240 0,D,25 0,A,-82017 0,B,15121976 0,C,45 42,104,13 38,111,11 30,10C,1144 34,20,89,-48,-46 0,21,-1,-1,1 20,10D,25 37,10,7400260 0,D,24 0,A,-3382018 0,B,15121977 0,C,45 40,104,14 28,111,12 30,10C,1015 46,10D,25 38,20,105,-13,0 0,21,-1,0,0 22,104,18 31,111,12 34,10C,972 43,10D,25 44,104,18 24,10,7400300 0,D,22 0,A,-3382019 0,B,15121980 0,C,45 42,111,11 19,20,93,-27,-30 0,21,-1,-1,0 21,10C,937 40,10D,22 45,104,20 31,111,11 31,10C,898 35,20,102,-20,2 0,21,-1,2,0 19,10D,22 44,104,20 30,111,14 27,10,7400340 0,D,21 0,A,-3382019 0,B,15121982 0,C,45 41,10C,871 87,20,106,-20,-18 0,21,-1,0,-1 20,10D,22 46,104,31 24,10,7400360 0,D,20 0,A,-3382020 0,B,15121983 0,C,45 40,111,14 31,10C,1082 40,20,87,-30,-26 0,21,-1,0,0 21,10D,19 43,104,33 22,10,7400380 0,D,19 0,A,-3382020 0,B,15121984 0,C,45 41,111,14 32,10C,1281 43,10D,19 50,20,110,-9,-5 0,21,0,0,1 20,104,32 32,111,16 30,10C,1324 43,10D,19 46,104,34 29,111,16 22,20,101,-22,4 0,21,-2,0,0 20,10C,1347 50,10D,19 50,104,34 30,111,16 29,10C,1378 35,20,99,-20,-28 0,21,-4,0,0 20,10D,19 44,104,34 40,111,16 33,10C,1410 48,10D,17 38,20,107,-5,-29 0,21,-6,1,0 15,10,7400460 0,D,17 0,A,-3382021 0,B,15121988 0,C,45 68,104,33 27,111,14 32,10C,1417 61,10D,17 37,20,107,-15,1 0,21,-6,1,2 20,104,27 33,111,13 29,10C,1328 43,10D,17 38,10,7400500 0,D,16 0,A,-3382022 0,B,15121990 0,C,45 41,104,25 20,20,98,-24,-15 0,21,-8,2,1 20,111,13 28,10C,1242 46,10D,15 39,10,7400520 0,D,15 0,A,-3382023 0,B,15121991 0,C,45 40,104,23 27,111,12 23,20,99,-21,-15 0,21,-7,1,0 19,10C,1199 43,10D,15 40,10,7400540 0,D,15 0,A,-3382023 0,B,15121991 0,C,45 40,104,20 37,111,12 31,20,99,-25,-8 0,21,-7,1,0 19,10C,1128 45,10D,15 38,10,7400560 0,D,14 0,A,-3382023 0,B,15121992 0,C,45 41,104,20 32,111,12 27,20,101,-21,-9 0,21,-6,2,0 18,10C,1050 45,10D,15 38,10,7400580 0,D,13 0,A,-3382024 0,B,15121993 0,C,45 41,104,20 28,111,11 30,20,87,-38,-27 0,21,-6,1,3 20,10C,972 40,10D,13 39,10,7400600 0,D,13 0,A,-3382024 0,B,15121993 0,C,45 40,104,20 28,111,11 34,10C,917 34,20,93,-30,-7 0,21,-5,2,1 20,10D,13 46,10,7400620 0,D,12 0,A,-3382025 0,B,15121994 0,C,45 41,104,20 28,111,11 38,10C,875 34,20,113,-22,0 0,21,-5,0,0 21,10D,13 48,104,20 34,111,11 31,10C,843 54,10D,11 38,20,94,-30,-12 0,21,-5,0,1 20,104,20 32,111,11 31,10C,828 43,10D,11 45,104,26 31,111,14 22,20,101,-26,-19 0,21,-4,0,0 21,10C,804 41,10D,11 46,104,30 32,111,14 28,10,7400700 0,D,10 0,A,-3382027 0,B,15121996 0,C,45 40,10C,941 33,20,110,-19,5 0,21,-1,1,0 19,10D,11 48,104,33 29,111,15 31,10C,1121 35,10,7400720 0,D,10 0,A,-3382027 0,B,15121996 0,C,45 41,10D,11 35,20,108,-16,-1 0,21,-1,-1,-1 21,104,37 26,111,17 34,10C,1277 40,10,7400740 0,D,9 0,A,-3382027 0,B,15121996 0,C,45 41,10D,9 40,20,105,-10,-2 0,21,0,-1,0 20,104,49 35,111,20 31,10C,1472 47,10,7400760 0,D,9 0,A,-3382028 0,B,15121997 0,C,45 40,10D,9 36,20,101,-10,6 0,21,0,-1,0 19,104,60 27,111,20 44,10C,1722 47,10D,9 50,104,56 22,20,103,0,-5 0,21,0,-1,0 19,111,21 30,10C,1820 44,10D,9 50,104,58 31,111,20 27,20,120,11,-3 0,21,1,-2,2 19,10C,1910 44,10D,9 38,10,7400820 0,D,11 0,A,-3382029 0,B,15121998 0,C,45 41,104,53 28,111,20 30,20,94,-16,-7 0,21,2,-2,1 20,10C,1886 40,10D,9 43,10,7400840 0,D,13 0,A,-3382029 0,B,15121999 0,C,45 40,104,51 28,111,19 34,20,110,-4,7 0,21,2,-3,-1 20,10C,1835 51,10D,9 46,104,48 35,111,20 29,10C,1761 35,20,110,-7,1 0,21,3,0,-4 20,10D,12 45,104,50 29,111,19 31,10C,1753 47,10D,12 37,20,100,-12,-5 0,21,3,0,0 20,104,50 29,111,19 35,10C,1757 47,10D,12 49,104,50 23,20,111,-7,-3 0,21,3,-2,-1 18,111,19 22,10,7400920 0,D,17 0,A,-3382031 0,B,15122002 0,C,45 55,10C,1765 42,10D,12 45,104,49 22,20,121,0,3 0,21,3,0,2 19,111,18 22,10,7400940 0,D,17 0,A,-3382032 0,B,15122003 0,C,45 54,10C,1750 43,10D,15 49,104,33 21,20,101,-15,-6 0,21,3,0,-1 21,111,14 29,10,7400960 0,D,18 0,A,-3382032 0,B,15122004 0,C,45 48,10C,1558 41,10D,15 45,104,28 21,20,86,-36,7 0,21,4,0,2 22,111,14 27,10C,1367 54,10D,15 46,104,27 29,111,14 22,20,119,-27,5 0,21,3,1,5 20,10C,1253 33,10,7401000 0,D,19 0,A,-3382033 0,B,15122006 0,C,45 44,10D,15 48,104,28 33,111,16 22,20,89,-20,14 0,21,2,-1,-2 21,10C,1246 41,10D,17 46,104,34 31,111,19 30,10C,1332 33,20,90,-24,2 0,21,2,-1,0 22,10D,17 44,104,49 31,111,19 34,10C,1539 47,10D,17 36,20,150,8,31 0,21,3,0,0 22,104,52 41,111,19 30,10C,1734 43,10D,17 45,104,47 22,20,111,-8,2 0,21,2,-1,0 21,111,17 27,10C,1750 47,10D,18 51,104,36 34,111,15 23,20,71,-35,1 0,21,2,1,0 20,10C,1636 41,10D,18 51,104,29 29,111,14 72,20,90,-24,-12 0,21,2,-1,1 20,10C,1437 41,10D,18 46,104,26 30,111,14 32,10C,1343 35,20,97,-24,7 0,21,2,-1,2 17,10,7401140 0,D,20 0,A,-3382035 0,B,15122014 0,C,45 66,10D,18 44,104,24 32,111,13 35,10C,1277 35,20,111,-15,-12 0,21,1,-2,0 21,10D,19 53,104,23 29,111,13 37,10C,1246 37,10,7401180 0,D,20 0,A,-3382036 0,B,15122016 0,C,45 40,10D,19 36,20,109,-15,-15 0,21,0,0,1 20,104,24 31,111,14 29,10C,1246 48,10D,19 46,104,25 34,20,112,-17,4 0,21,0,0,-1 19,111,14 28,10C,1253 44,10,7401220 0,D,19 0,A,-3382036 0,B,15122018 0,C,45 41,10D,19 44,104,29 27,20,92,-24,8 0,21,0,-1,0 19,111,15 31,10C,1308 44,10D,20 51,104,33 30,111,14 26,20,109,-10,-8 0,21,0,0,-1 20,10C,1351 44,10D,20 51,104,30 34,111,14 34,10C,1351 44,20,105,-7,0 0,21,0,0,0 19,10D,20 41,10,7401280 0,D,19 0,A,-3382037 0,B,15122022 0,C,45 44,104,26 33,111,13 34,10C,1300 34,20,92,-23,-17 0,21,-1,0,2 20,10D,20 45,104,23 31,111,12 29,10C,1273 43,10D,20 38,20,81,-44,-9 0,21,-1,-1,0 20,104,21 28,111,15 22,10,7401320 0,D,19 0,A,-3382037 0,B,15122024 0,C,45 41,10C,1242 44,10D,20 46,20,99,-17,-20 0,21,-2,0,-2 18,104,29 29,111,16 31,10,7401340 0,D,19 0,A,-3382037 0,B,15122025 0,C,45 40,10C,1347 45,10D,20 38,20,98,-35,-4 0,21,-1,2,0 19,104,36 29,111,17 21,10,7401360 0,D,19 0,A,-3382037 0,B,15122026 0,C,45 41,10C,1453 41,10D,20 51,20,101,-25,-20 0,21,-2,-4,5 20,104,47 25,10,7401380 0,D,19 0,A,-3382038 0,B,15122027 0,C,45 53,111,19 31,10C,1671 43,10D,20 38,20,87,-14,-30 0,21,-1,2,-3 20,104,52 28,111,19 32,10C,1777 43,10D,20 46,104,49 30,111,19 22,20,111,-6,-4 0,21,-1,-1,-2 20,10C,1804 42,10D,20 46,104,48 30,111,19 30,10C,1796 34,20,89,-18,-40 0,21,-3,-2,0 21,10D,20 45,104,48 31,111,19 29,10C,1789 43,10D,20 37,20,102,-32,-32 0,21,-1,1,6 22,104,48 28,111,19 34,10C,1785 56,10D,20 55,104,48 32,20,93,-18,-20 0,21,-1,-2,-1 18,10,7401480 0,D,22 0,A,-3382039 0,B,15122033 0,C,45 66,111,19 28,10C,1781 46,10D,20 44,20,114,-3,-18 0,21,-1,-1,1 20,104,49 31,111,19 34,10C,1730 43,10D,21 45,104,50 24,10,7401520 0,D,23 0,A,-3382039 0,B,15122036 0,C,45 40,111,19 20,20,85,-17,-21 0,21,-2,0,-2 20,10C,1671 41,10D,21 45,104,50 31,111,19 31,10C,1632 35,20,109,0,-19 0,21,-1,0,0 19,10D,21 44,104,52 29,111,19 28,10,7401560 0,D,24 0,A,-3382040 0,B,15122039 0,C,45 41,10C,1585 41,20,102,-7,-9 0,21,-1,0,0 20,10D,21 55,104,53 43,111,19 23,10,7401580 0,D,25 0,A,-3382040 0,B,15122041 0,C,45 44,10C,1527 34,20,102,-7,-13 0,21,-1,0,0 19,10D,23 43,104,54 30,111,19 24,10,7401600 0,D,25 0,A,-3382040 0,B,15122042 0,C,45 39,10C,1457 41,10D,23 38,20,107,-7,-6 0,21,-1,-1,1 21,104,56 29,111,19 35,10C,1375 44,10D,23 50,104,58 22,20,102,-14,-52 0,21,-2,1,-3 19,111,19 30,10C,1281 44,10D,23 50,104,58 34,111,18 23,20,96,-26,11 0,21,-1,0,1 19,10C,1234 45,10D,25 38,10,7401660 0,D,27 0,A,-3382041 0,B,15122047 0,C,45 41,104,49 28,111,14 29,10C,1203 35,20,112,-19,-28 0,21,-2,0,1 20,10D,25 51,10,7401680 0,D,27 0,A,-3382041 0,B,15122048 0,C,45 41,104,40 32,111,14 33,10C,1218 34,20,92,-19,6 0,21,0,0,0 21,10D,25 45,104,33 40,111,13 29,10C,1230 46,10D,27 38,20,128,-11,-34 0,21,-1,-1,-2 21,104,29 31,111,16 34,10C,1226 43,10D,27 46,104,36 28,20,107,-9,-21 0,21,0,0,-2 19,111,16 29,10C,1250 46,10D,27 50,104,38 32,111,13 28,20,109,-26,-24 0,21,0,0,0 20,10C,1269 45,10D,27 51,104,30 32,111,13 33,10C,1210 35,20,91,-33,-9 0,21,0,0,2 16,10,7401780 0,D,28 0,A,-3382043 0,B,15122057 0,C,45 67,10D,27 54,104,28 34,111,15 22,10,7401800 0,D,28 0,A,-3382043 0,B,15122058 0,C,45 40,10C,1195 33,20,112,-23,-13 0,21,0,0,-1 21,10D,28 47,104,32 31,111,15 33,10,7401820 0,D,28 0,A,-3382044 0,B,15122060 0,C,45 40,10C,1175 33,20,111,-18,0 0,21,0,-2,0 20,10D,28 47,104,35 32,111,15 24,10,7401840 0,D,28 0,A,-3382044 0,B,15122062 0,C,45 41,10C,1191 37,20,98,-21,-5 0,21,0,-2,1 20,10D,28 54,104,36 31,111,15 23,10,7401860 0,D,28 0,A,-3382044 0,B,15122063 0,C,45 40,10C,1191 32,20,104,-20,-21 0,21,0,-1,-1 21,10D,28 43,104,37 28,111,16 36,10C,1218 47,10D,28 38,20,106,-27,-24 0,21,-1,0,0 20,104,38 37,111,16 29,10C,1230 36,10,7401900 0,D,28 0,A,-3382045 0,B,15122067 0,C,45 40,10D,28 41,20,93,-25,-13 0,21,-1,0,0 20,104,38 27,111,16 32,10C,1257 44,10D,28 50,104,38 27,20,104,-13,-16 0,21,-2,-1,-1 19,111,16 28,10C,1285 56,10D,28 51,104,38 34,111,16 22,20,115,-15,26 0,21,-2,2,0 20,10C,1292 43,10D,28 50,104,38 34,111,16 31,10C,1304 35,20,111,-24,-5 0,21,-1,1,-1 19,10D,28 44,104,37 23,10,7401980 0,D,29 0,A,-3382046 0,B,15122074 0,C,45 40,111,16 32,10C,1281 43,20,88,-40,-25 0,21,-2,0,-1 20,10D,28 50,10,7402000 0,D,29 0,A,-3382046 0,B,15122075 0,C,45 41,104,38 28,111,16 33,10C,1277 35,20,81,-32,-16 0,21,-2,0,0 20,10D,28 41,10,7402020 0,D,29 0,A,-3382046 0,B,15122077 0,C,45 41,104,38 28,111,16 30,10C,1277 40,20,86,-25,-1 0,21,-1,2,-2 18,10D,28 44,10,7402040 0,D,29 0,A,-3382046 0,B,15122079 0,C,45 41,104,40 32,111,16 31,10C,1269 35,20,92,-25,-24 0,21,-1,0,0 19,10D,28 41,10,7402060 0,D,29 0,A,-3382047 0,B,15122080 0,C,45 40,104,40 29,111,16 30,10C,1265 44,20,100,-27,-10 0,21,-1,0,2 19,10D,28 53,104,40 35,111,16 35,10C,1261 43,10D,28 37,20,106,6,32 0,21,-1,0,-1 19,104,40 38,111,17 31,10C,1257 47,10D,28 49,104,43 21,20,71,-29,-11 0,21,0,2,0 20,111,16 21,10,7402120 0,D,29 0,A,-3382048 0,B,15122086 0,C,45 56,10C,1277 42,10D,28 49,104,40 21,20,98,-16,16 0,21,-1,-1,-2 21,111,16 19,10,7402140 0,D,29 0,A,-3382048 0,B,15122087 0,C,45 56,10C,1214 42,10D,28 45,104,42 21,20,96,-33,-17 0,21,0,0,0 21,111,16 20,10,7402160 0,D,30 0,A,-3382048 0,B,15122089 0,C,45 55,10C,1222 49,10D,28 50,104,43 29,20,97,-9,-11 0,21,0,0,1 21,111,16 32,10C,1230 43,10D,28 50,104,43 28,111,16 28,20,73,-26,-21 0,21,0,0,0 21,10C,1238 54,10D,28 49,104,43 33,111,16 34,10C,1257 46,20,91,-18,1 0,21,0,0,3 15,10,7402220 0,D,30 0,A,-3382049 0,B,15122095 0,C,45 68,10D,29 44,104,43 29,111,16 23,10,7402240 0,D,30 0,A,-3382050 0,B,15122096 0,C,45 41,10C,1269 33,20,110,-22,-1 0,21,0,2,0 19,10D,29 44,104,40 29,111,16 23,10,7402260 0,D,30 0,A,-3382050 0,B,15122098 0,C,45 40,10C,1265 41,10D,29 38,20,87,-17,11 0,21,0,-2,3 24,104,42 30,111,16 31,10C,1296 44,10D,30 50,104,40 22,20,96,-22,16 0,21,0,0,0 19,111,16 30,10C,1296 44,10D,30 50,104,40 39,111,16 35,20,93,-13,-14 0,21,-2,1,0 19,10C,1273 41,10D,30 51,104,38 34,111,16 30,10C,1265 35,20,101,-11,-17 0,21,-2,1,-2 19,10D,30 45,104,38 31,111,16 30,10C,1253 43,10D,30 38,20,84,-40,-18 0,21,-1,0,2 19,104,38 28,111,15 31,10C,1250 48,10D,30 49,104,37 25,20,102,-19,-10 0,21,-1,0,0 19,111,15 28,10C,1238 44,10D,30 46,104,37 31,111,15 30,10C,1214 34,20,105,-27,6 0,21,-1,0,-3 24,10D,30 45,104,34 30,111,13 43,10C,1214 42,10D,30 37,20,111,-29,-30 0,21,0,2,4 21,104,28 28,111,12 31,10C,1222 55,10D,30 47,10,7402440 0,D,31 0,A,-3382053 0,B,15122115 0,C,45 40,104,23 20,20,114,-20,-7 0,21,0,0,4 20,111,16 28,10C,1199 43,10D,30 46,104,31 22,10,7402460 0,D,31 0,A,-3382053 0,B,15122117 0,C,45 40,111,19 20,20,116,-16,-3 0,21,0,0,-2 20,10C,1308 41,10D,30 49,104,50 23,10,7402480 0,D,31 0,A,-3382053 0,B,15122119 0,C,45 41,111,19 27,20,117,-6,-3 0,21,-1,0,0 20,10C,1445 41,10D,30 45,104,52 23,10,7402500 0,D,31 0,A,-3382053 0,B,15122120 0,C,45 39,111,17 29,10C,1324 35,20,102,-20,-2 0,21,-1,0,3 19,10D,30 54,104,49 23,10,7402520 0,D,31 0,A,-3382054 0,B,15122122 0,C,45 41,111,16 37,10C,1222 35,20,117,-8,-4 0,21,-1,0,-6 19,10D,30 46,104,46 24,10,7402540 0,D,31 0,A,-3382054 0,B,15122124 0,C,45 41,111,16 32,10C,1199 38,20,116,-4,-25 0,21,-1,0,-2 21,10D,30 42,104,45 23,10,7402560 0,D,31 0,A,-3382054 0,B,15122126 0,C,45 41,111,16 33,10C,1187 43,10D,30 37,20,110,-3,3 0,21,0,0,-1 19,104,45 30,111,15 31,10C,1191 58,10D,30 46,104,40 22,20,116,-10,-13 0,21,-1,-1,-2 18,111,14 33,10C,1191 48,10D,30 50,104,38 34,111,15 30,20,113,-15,-43 0,21,-3,2,0 21,10C,1210 45,10D,30 51,104,38 33,111,15 30,10C,1253 34,20,75,-37,-7 0,21,-2,0,0 20,10D,30 45,104,37 31,111,15 30,10C,1296 46,10D,30 38,20,140,-32,25 0,21,-2,2,2 20,104,36 40,111,15 31,10C,1308 43,10D,30 48,104,35 22,20,113,-5,-19 0,21,-2,0,-3 17,10,7402680 0,D,31 0,A,-3382056 0,B,15122137 0,C,45 67,111,16 27,10C,1304 46,10D,30 43,20,83,-41,-19 0,21,-2,0,-1 21,104,35 51,111,15 34,10C,1281 43,10D,30 52,20,84,-32,0 0,21,-2,1,0 21,104,36 28,111,15 31,10C,1257 46,10D,30 49,104,36 28,20,78,-33,-7 0,21,-2,0,0 20,111,15 32,10C,1257 43,10D,30 46,104,40 29,111,17 31,10C,1277 35,20,62,-63,-9 0,21,-1,0,0 21,10D,30 44,104,42 30,111,17 32,10C,1300 44,10D,30 38,20,98,-20,-30 0,21,-1,-2,1 21,104,43 41,111,17 33,10C,1277 47,10D,30 38,10,7402800 0,D,32 0,A,-3382058 0,B,15122149 0,C,45 40,104,45 21,20,117,-7,-21 0,21,-1,2,0 19,111,16 32,10C,1242 42,10D,30 49,10,7402820 0,D,31 0,A,-3382058 0,B,15122150 0,C,45 44,104,46 20,20,85,-32,-18 0,21,-1,0,-2 20,111,17 28,10C,1253 46,10D,30 39,10,7402840 0,D,32 0,A,-3382059 0,B,15122152 0,C,45 41,104,46 27,20,94,-24,-11 0,21,0,0,0 20,111,16 32,10C,1253 47,10D,31 38,10,7402860 0,D,32 0,A,-3382059 0,B,15122154 0,C,45 41,104,41 24,20,90,-30,7 0,21,0,-1,-1 20,111,14 31,10C,1242 54,10D,31 51,104,32 29,111,13 23,20,105,-6,6 0,21,0,0,-3 19,10C,1253 43,10D,31 52,104,28 33,111,12 35,10C,1250 35,20,102,-24,-15 0,21,0,0,0 19,10D,31 48,104,24 31,10,7402920 0,D,32 0,A,-3382060 0,B,15122160 0,C,45 44,111,12 33,10C,1203 35,20,104,-24,-16 0,21,0,0,0 19,10D,31 41,10,7402940 0,D,32 0,A,-3382060 0,B,15122162 0,C,45 40,104,22 29,111,14 45,10C,1218 35,20,78,-42,2 0,21,0,0,-1 19,10D,31 45,104,25 31,111,15 35,10C,1222 43,10D,31 38,20,106,-14,-1 0,21,0,1,0 19,104,31 29,111,15 31,10C,1230 44,10D,30 46,104,33 29,111,15 22,20,134,-21,6 0,21,-1,-2,3 20,10C,1210 42,10D,30 47,104,36 34,111,15 30,10C,1199 34,20,113,0,-13 0,21,0,0,-1 21,10D,30 66,104,37 34,111,15 30,10C,1203 45,10D,30 53,20,95,-41,-21 0,21,-1,-1,3 20,104,37 32,111,15 35,10C,1203 46,10D,29 50,104,37 22,20,98,-23,-14 0,21,-1,-1,2 18,10,7403060 0,D,32 0,A,-3382062 0,B,15122173 0,C,49 65,111,15 28,10C,1207 46,10D,29 39,10,7403080 0,D,29 0,A,-3382062 0,B,15122174 0,C,49 40,104,34 19,20,96,-25,-9 0,21,-1,0,-1 21,111,12 32,10C,1203 42,10D,29 39,10,7403100 0,D,29 0,A,-3382062 0,B,15122176 0,C,49 41,104,25 27,20,119,-15,1 0,21,-2,-1,0 21,111,12 27,10C,1234 46,10D,29 39,10,7403120 0,D,29 0,A,-3382063 0,B,15122178 0,C,49 41,104,20 33,20,95,-32,1 0,21,-1,0,0 19,111,11 32,10C,1269 46,10D,27 39,10,7403140 0,D,28 0,A,-3382063 0,B,15122180 0,C,49 40,104,15 25,20,109,-16,1 0,21,-1,1,0 20,111,11 31,10C,1269 44,10D,27 47,10,7403160 0,D,28 0,A,-3382063 0,B,15122181 0,C,49 41,104,14 19,20,88,-28,-22 0,21,-1,1,0 20,111,11 28,10C,1230 47,10D,27 38,10,7403180 0,D,27 0,A,-3382063 0,B,15122183 0,C,49 41,104,13 27,111,11 23,20,97,-28,3 0,21,-1,-1,1 19,10C,1152 44,10D,25 39,10,7403200 0,D,26 0,A,-3382063 0,B,15122184 0,C,49 40,104,13 32,111,11 26,20,102,-37,-44 0,21,-3,-3,0 24,10C,1109 42,10,7403220 0,D,26 0,A,-3382064 0,B,15122186 0,C,49 41,10D,25 48,104,14 43,111,11 31,20,113,-23,-17 0,21,-2,0,2 19,10C,1136 42,10D,25 50,104,13 34,111,11 34,10C,1214 35,20,101,-22,-10 0,21,-2,0,0 20,10D,25 44,104,13 31,111,12 30,10C,1136 44,10D,23 37,20,98,-27,-5 0,21,0,0,-1 20,104,14 29,111,12 30,10C,1058 43,10D,23 47,104,17 28,111,11 22,20,96,-33,-15 0,21,-1,0,0 20,10C,1007 45,10D,23 50,104,18 46,111,11 32,10C,953 35,20,93,-31,-17 0,21,-1,0,0 16,10,7403320 0,D,22 0,A,-3382065 0,B,15122193 0,C,49 67,10D,23 57,104,20 31,111,11 23,10,7403340 0,D,20 0,A,-3382065 0,B,15122194 0,C,49 40,10C,902 32,20,101,-35,-15 0,21,-1,0,0 21,10D,20 43,104,20 28,111,11 25,10,7403360 0,D,19 0,A,-3382065 0,B,15122195 0,C,49 40,10C,855 44,10D,20 38,20,96,-32,-18 0,21,-1,0,0 20,104,20 30,111,11 31,10C,824 44,10D,20 46,104,21 31,20,104,-32,-12 0,21,-1,0,0 19,111,11 30,10C,816 56,10D,20 49,104,21 35,111,11 22,20,95,-41,-13 0,21,-1,0,0 19,10C,816 41,10D,16 47,104,21 31,111,11 34,10C,812 43,20,95,-34,-12 0,21,-1,0,0 23,10D,16 48,104,21 31,111,11 30,10C,820 43,10D,16 38,20,104,-24,-11 0,21,-1,0,0 19,104,21 29,111,11 30,10C,828 47,10D,16 50,104,21 25,20,95,-29,-9 0,21,-1,0,0 21,111,11 19,10,7403480 0,D,11 0,A,-3382066 0,B,15122200 0,C,49 56,10C,832 41,10D,12 46,104,20 21,20,100,-25,-8 0,21,-1,0,0 21,111,12 19,10,7403500 0,D,11 0,A,-3382066 0,B,15122201 0,C,49 55,10C,816 44,10D,12 51,104,29 21,20,103,-21,-13 0,21,-1,0,0 21,111,13 32,10C,835 53,10D,12 46,104,32 42,111,14 21,20,101,-24,-11 0,21,-1,0,0 21,10C,1000 46,10D,12 46,104,32 29,111,13 32,10C,1101 35,20,101,-22,-11 0,21,-1,0,0 21,10D,9 49,104,29 33,111,12 42,10C,1089 43,10D,9 38,20,103,-20,-9 0,21,-1,0,0 16,10,7403580 0,D,8 0,A,-3382066 0,B,15122203 0,C,49 67,104,26 28,111,12 33,10C,1003 44,10D,9 37,20,98,-25,-11 0,21,-2,0,0 20,104,26 32,111,12 29,10C,929 47,10D,9 38,10,7403620 0,D,8 0,A,-3382066 0,B,15122204 0,C,49 40,104,24 20,20,98,-24,-19 0,21,-3,0,0 20,111,11 32,10C,871 55,10D,7 38,10,7403640 0,D,7 0,A,-3382066 0,B,15122205 0,C,49 40,104,23 21,20,98,-27,-9 0,21,-3,0,0 23,111,12 32,10C,796 46,10D,7 38,10,7403660 0,D,6 0,A,-3382067 0,B,15122205 0,C,49 41,104,26 23,20,104,-22,-12 0,21,-3,0,0 21,111,12 32,10C,789 42,10D,7 49,10,7403680 0,D,6 0,A,-3382067 0,B,15122205 0,C,49 41,104,27 19,20,102,-23,-11 0,21,-3,1,0 21,111,12 30,10C,781 48,10D,6 36,10,7403700 0,D,5 0,A,-3382067 0,B,15122206 0,C,49 41,104,31 25,20,97,-24,-14 0,21,-4,0,0 19,111,12 32,10C,785 43,10D,6 38,10,7403720 0,D,5 0,A,-3382067 0,B,15122206 0,C,49 40,104,34 29,111,12 21,20,95,-23,-10 0,21,-5,1,0 24,10C,828 51,10D,6 37,10,7403740 0,D,5 0,A,-3382067 0,B,15122206 0,C,49 41,104,34 31,111,12 22,20,103,-17,-24 0,21,-6,0,-1 20,10C,843 40,10D,6 38,10,7403760 0,D,4 0,A,-3382067 0,B,15122206 0,C,49 41,104,33 28,111,12 34,20,99,-21,-15 0,21,-6,0,1 20,10C,847 39,10D,5 39,10,7403780 0,D,4 0,A,-3382067 0,B,15122207 0,C,49 41,104,31 32,111,12 29,10C,824 35,20,100,-15,-11 0,21,-7,1,-1 20,10D,5 37,10,7403800 0,D,4 0,A,-3382067 0,B,15122207 0,C,49 40,104,30 28,111,12 31,10C,816 46,10D,5 37,20,110,-14,-14 0,21,-6,1,0 24,104,31 33,111,12 34,10C,804 46,10D,4 48,104,30 32,20,95,-23,-7 0,21,-7,1,0 16,10,7403840 0,D,4 0,A,-3382068 0,B,15122207 0,C,49 67,111,12 32,10C,777 45,10D,4 43,20,110,-13,-7 0,21,-7,2,0 19,104,47 32,111,16 35,10C,871 45,10D,4 43,10,7403880 0,D,4 0,A,-3382068 0,B,15122207 0,C,49 41,104,48 19,20,95,-20,-14 0,21,-7,1,0 21,111,14 31,10C,1074 43,10D,4 45,104,40 23,10,7403900 0,D,4 0,A,-3382068 0,B,15122207 0,C,49 40,111,13 30,20,102,-14,-6 0,21,-8,1,0 19,10C,1074 45,10D,4 46,10,7403920 0,D,4 0,A,-3382069 0,B,15122208 0,C,49 44,104,33 29,111,13 21,20,105,-13,-11 0,21,-8,1,0 21,10C,996 44,10D,4 50,104,32 49,111,20 35,10C,933 34,20,101,-20,-8 0,21,-7,1,0 20,10D,4 46,104,80 23,10,7403960 0,D,4 0,A,-3382069 0,B,15122208 0,C,49 41,111,21 32,10C,1351 40,20,99,-2,-25 0,21,-7,0,-1 19,10D,4 43,104,68 23,10,7403980 0,D,4 0,A,-3382069 0,B,15122208 0,C,49 39,111,20 29,10C,1609 43,10D,5 37,20,104,-6,-5 0,21,-7,0,2 19,104,58 29,111,20 32,10C,1621 47,10D,5 49,104,63 26,20,95,-13,-17 0,21,-9,1,3 18,111,25 22,10,7404020 0,D,6 0,A,-3382070 0,B,15122208 0,C,49 55,10C,1718 43,10D,5 48,104,72 22,20,115,4,-27 0,21,-11,2,1 20,111,23 21,10,7404040 0,D,8 0,A,-3382070 0,B,15122208 0,C,49 55,10C,1894 54,10D,8 48,104,66 23,20,116,3,-30 0,21,-13,2,1 20,111,22 28,10C,1953 55,10D,8 45,104,61 29,111,21 28,20,107,-7,-38 0,21,-15,1,0 19,10C,1902 46,10D,8 49,104,63 34,111,23 29,10C,1890 35,20,97,-22,-27 0,21,-16,3,0 20,10D,8 44,104,67 30,111,23 34,10C,1972 42,10D,12 37,20,106,-3,-29 0,21,-16,3,0 21,104,63 32,111,22 30,10C,2000 43,10D,12 84,20,101,-11,-25 0,21,-16,2,0 21,104,62 73,111,21 38,10C,1988 44,10D,12 38,20,105,-11,-31 0,21,-14,2,0 21,104,60 27,111,21 31,10C,1972 46,10D,12 47,104,60 24,10,7404180 0,D,8 0,A,-3382075 0,B,15122208 0,C,51 40,111,21 19,20,107,-6,-19 0,21,-11,2,0 21,10C,1988 41,10D,16 46,104,60 32,111,21 33,10C,2007 35,20,104,-14,-27 0,21,-11,0,0 21,10D,16 43,104,60 27,10,7404220 0,D,19 0,A,-3382077 0,B,15122208 0,C,51 41,111,21 28,10C,2007 40,20,109,-12,-33 0,21,-11,1,0 19,10D,16 44,104,60 28,10,7404240 0,D,19 0,A,-3382078 0,B,15122207 0,C,51 44,111,21 29,10C,2003 40,20,85,-12,-28 0,21,-11,0,0 19,10D,16 56,104,60 24,10,7404260 0,D,21 0,A,-3382079 0,B,15122207 0,C,51 42,111,21 32,10C,1949 35,20,101,-21,-19 0,21,-9,0,1 19,10D,20 43,104,61 40,111,22 31,10C,1910 43,10D,20 38,20,85,-39,-27 0,21,-8,0,-1 19,104,64 41,111,22 23,10,7404300 0,D,23 0,A,-3382081 0,B,15122205 0,C,51 40,10C,1906 46,10D,20 37,20,93,-30,-19 0,21,-9,1,2 20,104,67 25,111,23 32,10C,1906 37,10,7404320 0,D,23 0,A,-3382082 0,B,15122205 0,C,51 40,10D,20 48,104,66 26,20,109,5,-48 0,21,-8,0,2 19,111,22 22,10,7404340 0,D,24 0,A,-3382083 0,B,15122204 0,C,51 55,10C,1875 41,10D,23 46,104,62 31,20,114,7,-9 0,21,-8,1,-2 20,111,21 29,10C,1785 47,10D,23 50,104,64 33,111,21 21,20,115,3,-20 0,21,-8,0,5 22,10C,1667 41,10D,23 47,104,68 34,111,21 30,10C,1562 33,20,122,8,-38 0,21,-8,0,2 22,10D,26 44,104,71 31,111,21 29,10C,1484 46,10D,26 38,20,101,-16,-28 0,21,-8,1,-4 21,104,72 31,111,21 47,10C,1457 43,10D,26 48,104,71 22,20,110,-11,-43 0,21,-7,0,-2 18,10,7404440 0,D,29 0,A,-3382088 0,B,15122198 0,C,51 65,111,21 33,10C,1421 42,10D,26 47,20,122,9,-20 0,21,-6,4,0 20,104,70 29,111,21 30,10C,1398 43,10D,29 45,104,70 32,111,21 21,20,98,-14,0 0,21,-1,4,0 16,10,7404480 0,D,30 0,A,-3382089 0,B,15122195 0,C,51 67,10C,1390 45,10D,29 47,104,71 27,20,111,-11,7 0,21,1,1,1 20,111,21 32,10C,1386 43,10D,29 63,104,74 22,10,7404520 0,D,32 0,A,-3382091 0,B,15122192 0,C,51 41,111,22 20,20,121,2,-5 0,21,1,-1,0 19,10C,1398 41,10D,29 53,104,75 24,10,7404540 0,D,32 0,A,-3382092 0,B,15122191 0,C,51 40,111,22 24,20,97,-18,1 0,21,1,0,-1 20,10C,1402 45,10D,31 48,104,74 33,10,7404560 0,D,33 0,A,-3382093 0,B,15122189 0,C,51 40,111,22 19,20,102,-14,7 0,21,0,0,0 21,10C,1421 45,10D,31 49,104,74 22,10,7404580 0,D,33 0,A,-3382095 0,B,15122188 0,C,51 40,111,22 25,20,101,-24,-3 0,21,0,0,2 19,10C,1453 41,10D,31 45,104,74 24,10,7404600 0,D,33 0,A,-3382096 0,B,15122186 0,C,51 41,111,22 32,10C,1425 34,20,106,-7,-5 0,21,0,0,-1 21,10D,33 46,104,74 23,10,7404620 0,D,34 0,A,-3382097 0,B,15122185 0,C,51 41,111,21 29,10C,1406 44,20,101,-26,-3 0,21,0,0,1 20,10D,33 46,104,64 23,10,7404640 0,D,35 0,A,-3382098 0,B,15122183 0,C,51 40,111,16 33,10C,1332 39,20,106,-15,-6 0,21,-1,0,0 20,10D,33 66,104,43 40,111,14 34,10C,1324 43,10D,33 37,20,94,-26,-2 0,21,0,0,1 20,104,35 29,111,14 31,10C,1300 43,10D,34 46,104,30 30,111,13 22,20,103,-28,7 0,21,0,0,0 20,10C,1273 42,10D,34 46,104,26 31,111,13 30,10C,1246 33,20,107,-18,-12 0,21,0,0,-2 21,10D,34 45,104,23 31,111,12 29,10C,1234 43,10D,34 37,20,103,-22,-3 0,21,0,0,0 22,104,21 28,111,12 34,10C,1203 51,10D,34 49,104,18 22,20,101,-28,-11 0,21,0,0,-1 22,111,11 36,10C,1207 43,10D,34 47,104,16 28,111,11 28,20,91,-30,-5 0,21,-1,0,0 20,10C,1199 45,10D,34 50,104,15 45,111,12 33,10C,1191 35,20,102,-28,-16 0,21,-1,0,0 17,10,7404800 0,D,35 0,A,-3382108 0,B,15122171 0,C,51 66,10D,34 47,104,16 30,111,12 23,10,7404820 0,D,34 0,A,-3382109 0,B,15122169 0,C,51 40,10C,1085 33,20,110,-18,-10 0,21,-2,0,-1 21,10D,34 43,104,20 28,111,13 32,10C,1105 47,10D,34 38,20,97,-21,-16 0,21,-2,0,-1 21,104,22 31,111,14 32,10C,1218 52,10D,34 60,104,26 21,20,104,-22,-8 0,21,-1,0,0 21,111,14 26,10C,1210 57,10D,34 47,104,27 30,111,14 22,20,106,-13,-15 0,21,-2,0,0 20,10C,1207 43,10D,33 47,104,29 34,111,14 31,10C,1214 35,20,97,-29,-16 0,21,-2,0,0 19,10D,33 46,104,29 24,10,7404920 0,D,33 0,A,-3382115 0,B,15122162 0,C,51 41,111,15 32,10C,1222 38,20,99,-22,-3 0,21,-1,0,0 21,10D,33 42,104,32 24,10,7404940 0,D,33 0,A,-3382116 0,B,15122161 0,C,51 40,111,15 32,10C,1257 43,10D,33 38,20,101,-25,-4 0,21,-1,0,0 20,104,35 27,111,16 32,10C,1296 56,10D,32 54,104,38 21,20,111,-12,-7 0,21,0,0,0 21,111,17 20,10,7404980 0,D,33 0,A,-3382119 0,B,15122158 0,C,51 54,10C,1347 41,10D,32 59,104,42 21,20,89,-23,1 0,21,0,0,0 21,111,18 32,10C,1359 53,10D,32 46,104,47 29,111,18 22,20,106,-20,-1 0,21,0,0,0 20,10C,1335 42,10D,32 46,104,49 31,111,17 30,10C,1281 34,20,115,-10,-10 0,21,0,-1,0 20,10D,32 44,104,50 31,111,17 31,10C,1289 46,10D,32 36,20,103,-18,-11 0,21,-1,-1,0 22,104,50 32,111,17 39,10C,1289 43,10D,32 45,104,51 21,20,108,-8,-15 0,21,-1,0,0 22,111,17 27,10C,1277 52,10D,32 49,104,51 28,111,17 23,20,96,-20,-7 0,21,-1,0,0 16,10,7405100 0,D,33 0,A,-3382126 0,B,15122149 0,C,51 67,10C,1261 41,10D,32 48,104,54 28,20,106,-8,-14 0,21,-1,0,0 21,111,18 28,10C,1265 43,10D,32 46,104,54 32,111,18 31,20,91,-32,-9 0,21,-2,0,0 21,10C,1250 41,10D,32 62,104,55 33,111,18 30,10C,1246 35,20,119,1,-10 0,21,-1,-1,-2 16,10,7405160 0,D,34 0,A,-3382130 0,B,15122145 0,C,51 67,10D,32 57,104,56 27,10,7405180 0,D,34 0,A,-3382131 0,B,15122143 0,C,51 41,111,18 20,20,99,-16,-14 0,21,-1,1,0 20,10C,1238 45,10D,33 45,104,56 31,111,18 23,10,7405200 0,D,34 0,A,-3382132 0,B,15122142 0,C,51 40,10C,1261 32,20,102,-13,-11 0,21,-1,0,0 20,10D,33 44,104,55 33,111,18 23,10,7405220 0,D,34 0,A,-3382133 0,B,15122140 0,C,51 40,10C,1277 41,10D,33 38,20,112,-5,1 0,21,-1,0,-1 19,104,55 30,111,18 44,10C,1277 43,10D,34 50,104,55 22,20,89,-24,-11 0,21,-1,0,0 19,111,18 31,10C,1273 36,10,7405260 0,D,35 0,A,-3382136 0,B,15122137 0,C,51 41,10D,34 47,104,56 32,20,102,-21,-13 0,21,-2,0,0 19,111,18 27,10C,1269 36,10,7405280 0,D,35 0,A,-3382137 0,B,15122136 0,C,51 45,10D,34 44,104,55 30,111,18 22,20,92,-21,-13 0,21,-1,0,0 18,10C,1269 42,10D,34 51,104,56 33,111,18 34,10C,1273 34,20,103,-11,-3 0,21,-1,0,0 21,10D,34 44,104,55 30,111,18 31,10C,1269 46,10D,34 46,20,103,-18,-13 0,21,-1,0,-1 22,104,55 31,111,18 30,10C,1265 43,10D,34 46,104,54 31,111,17 30,20,74,-36,-27 0,21,-1,0,0 16,10,7405360 0,D,36 0,A,-3382142 0,B,15122129 0,C,51 68,10C,1257 55,10D,34 47,104,44 21,20,103,-22,1 0,21,-1,0,-2 20,111,15 28,10C,1230 43,10D,34 46,104,42 35,111,16 31,10C,1238 35,20,99,-22,-1 0,21,-1,0,1 19,10D,34 44,104,42 29,111,16 35,10C,1308 35,10,7405420 0,D,36 0,A,-3382145 0,B,15122125 0,C,51 40,10D,34 35,20,123,-12,-18 0,21,-1,0,1 21,104,40 31,111,16 29,10C,1347 36,10,7405440 0,D,36 0,A,-3382147 0,B,15122123 0,C,51 40,10D,34 44,104,41 22,20,91,-27,-5 0,21,-1,0,-2 19,111,16 31,10C,1343 37,10,7405460 0,D,36 0,A,-3382148 0,B,15122122 0,C,51 40,10D,34 48,104,43 26,20,120,-9,-10 0,21,0,0,-2 20,111,16 40,10C,1292 36,10,7405480 0,D,36 0,A,-3382149 0,B,15122120 0,C,51 44,10D,34 49,104,44 21,20,110,-10,-20 0,21,-1,0,-1 20,111,16 27,10C,1253 36,10,7405500 0,D,36 0,A,-3382150 0,B,15122118 0,C,51 40,10D,34 44,104,42 31,111,14 21,20,106,-21,-12 0,21,-1,0,-1 19,10C,1226 54,10D,34 50,104,36 31,111,14 33,10C,1226 35,20,96,-31,0 0,21,0,0,0 20,10D,34 45,104,30 30,111,13 31,10C,1222 46,10D,34 37,20,91,-25,-3 0,21,0,0,-1 20,104,26 32,111,12 34,10C,1214 47,10D,34 49,104,22 31,20,108,-19,-2 0,21,0,0,0 20,111,12 29,10C,1195 43,10D,34 46,104,18 45,111,11 21,20,110,-24,-12 0,21,0,0,1 21,10,7405600 0,D,35 0,A,-3382157 0,B,15122111 0,C,51 62,10C,1195 45,10D,34 45,104,15 24,10,7405620 0,D,35 0,A,-3382158 0,B,15122109 0,C,51 41,111,11 19,20,93,-34,-4 0,21,0,0,0 20,10C,1210 41,10D,34 45,104,14 32,111,12 34,10C,1199 35,20,100,-23,-3 0,21,0,0,-1 20,10D,34 44,104,16 28,111,13 28,10,7405660 0,D,34 0,A,-3382160 0,B,15122106 0,C,51 40,10C,1140 42,20,102,-18,-7 0,21,0,0,-1 19,10D,34 49,104,21 27,111,13 32,10C,1230 56,10D,33 48,20,98,-24,-4 0,21,-1,0,0 20,104,23 31,111,13 29,10C,1218 36,10,7405700 0,D,33 0,A,-3382163 0,B,15122103 0,C,51 44,10D,33 41,20,96,-27,-7 0,21,-1,0,0 20,104,25 31,111,15 33,10C,1222 36,10,7405720 0,D,33 0,A,-3382164 0,B,15122102 0,C,51 40,10D,33 41,20,105,-22,-9 0,21,-1,0,0 19,104,35 37,111,17 31,10,7405740 0,D,33 0,A,-3382165 0,B,15122101 0,C,51 41,10C,1281 41,10D,32 38,20,106,-18,-16 0,21,-2,-1,-2 20,104,43 30,111,18 31,10C,1343 34,10,7405760 0,D,33 0,A,-3382166 0,B,15122099 0,C,51 41,10D,32 44,104,52 22,20,104,-13,-16 0,21,-1,0,-1 19,111,18 31,10C,1335 37,10,7405780 0,D,33 0,A,-3382167 0,B,15122098 0,C,51 44,10D,32 57,104,58 22,20,124,-5,-12 0,21,-1,0,0 19,111,18 29,10C,1289 35,10,7405800 0,D,33 0,A,-3382169 0,B,15122096 0,C,51 40,10D,32 44,104,60 30,111,19 22,20,92,-20,-12 0,21,-1,0,0 18,10C,1300 35,10,7405820 0,D,33 0,A,-3382170 0,B,15122095 0,C,51 43,10D,32 48,104,60 30,111,19 26,20,107,-20,-15 0,21,-2,-1,1 18,10C,1300 35,10,7405840 0,D,33 0,A,-3382171 0,B,15122094 0,C,51 43,10D,32 48,104,71 30,111,22 28,10C,1328 35,20,104,-13,-11 0,21,-2,-1,0 21,10D,32 44,104,76 30,111,22 38,10C,1343 42,10D,32 38,20,108,-19,-21 0,21,-1,0,1 21,104,76 27,111,22 45,10C,1367 56,10D,33 51,104,75 21,20,99,-29,-12 0,21,-1,0,1 18,10,7405900 0,D,33 0,A,-3382175 0,B,15122089 0,C,54 65,111,22 28,10C,1406 47,10D,33 38,10,7405920 0,D,34 0,A,-3382176 0,B,15122088 0,C,54 40,104,74 20,20,97,-14,-15 0,21,-1,1,-4 20,111,22 31,10C,1406 46,10D,33 39,10,7405940 0,D,35 0,A,-3382177 0,B,15122086 0,C,54 40,104,74 25,20,97,-16,-22 0,21,-1,1,0 19,111,22 32,10C,1414 42,10D,35 40,10,7405960 0,D,35 0,A,-3382178 0,B,15122085 0,C,54 44,104,74 24,20,105,-13,-21 0,21,-1,0,-1 19,111,22 29,10C,1414 45,10D,35 52,10,7405980 0,D,35 0,A,-3382179 0,B,15122083 0,C,54 40,104,74 21,20,108,-13,-18 0,21,-1,0,0 19,111,22 37,10C,1425 40,10,7410000 0,D,36 0,A,-3382181 0,B,15122081 0,C,54 41,10D,35 44,104,74 22,20,100,-5,-6 0,21,-1,0,1 20,111,22 27,10C,1433 48,10D,35 37,10,7410020 0,D,36 0,A,-3382182 0,B,15122080 0,C,54 41,104,74 28,20,80,-29,-15 0,21,-1,0,0 20,111,22 31,10C,1425 44,10,7410040 0,D,37 0,A,-3382183 0,B,15122078 0,C,54 41,10D,36 52,104,74 22,20,89,-27,-17 0,21,-1,0,0 20,111,22 34,10C,1406 54,10D,36 50,104,74 34,111,22 22,20,80,-32,-10 0,21,-1,0,2 19,10C,1417 45,10D,36 38,10,7410080 0,D,37 0,A,-3382186 0,B,15122075 0,C,54 41,104,75 32,111,22 27,20,132,9,-3 0,21,-1,1,-1 19,10C,1414 50,10D,37 38,10,7410100 0,D,38 0,A,-3382187 0,B,15122073 0,C,54 41,104,74 32,111,22 22,20,60,-27,-7 0,21,-1,1,0 20,10C,1402 44,10D,37 48,10,7410120 0,D,38 0,A,-3382188 0,B,15122071 0,C,54 41,104,75 32,111,22 21,20,105,-10,-6 0,21,0,1,-1 21,10C,1417 45,10D,37 47,104,74 34,111,22 30,10C,1414 35,20,92,-41,-5 0,21,0,0,7 20,10D,37 45,104,74 30,111,22 34,10C,1406 43,10D,38 38,20,145,28,-18 0,21,-1,-4,-2 21,104,75 28,111,22 31,10C,1421 44,10D,38 46,104,75 30,111,22 31,20,96,-18,-13 0,21,-1,0,0 20,10C,1414 42,10D,38 46,104,75 31,111,22 33,10C,1414 34,20,91,-25,-37 0,21,-1,0,2 21,10D,38 45,104,74 31,111,22 29,10C,1417 47,10D,39 37,20,86,-34,-14 0,21,-1,0,1 22,104,75 32,111,22 33,10C,1414 43,10D,39 45,104,74 35,20,112,-7,-12 0,21,-1,0,1 21,111,20 31,10C,1417 48,10D,39 46,104,60 28,111,15 24,10,7410280 0,D,41 0,A,-3382199 0,B,15122057 0,C,54 41,10C,1375 33,20,111,-8,-6 0,21,-1,0,0 19,10D,39 44,104,44 32,111,14 41,10C,1335 43,10D,40 38,20,95,-26,-17 0,21,0,0,2 19,104,36 28,111,14 33,10C,1300 44,10D,40 50,104,31 26,20,102,-23,-11 0,21,0,-1,-1 20,111,14 32,10C,1273 56,10D,40 47,104,27 30,111,13 22,20,91,-26,-18 0,21,0,0,0 20,10C,1261 44,10D,40 47,104,24 34,111,12 33,10C,1257 35,20,101,-16,-13 0,21,0,1,0 21,10D,40 47,104,21 22,10,7410380 0,D,40 0,A,-3382206 0,B,15122048 0,C,54 44,111,13 33,10C,1222 43,20,100,-38,-9 0,21,0,0,2 20,10D,40 45,10,7410400 0,D,40 0,A,-3382208 0,B,15122047 0,C,54 40,104,24 42,111,14 33,10C,1253 35,20,112,-7,-7 0,21,-1,0,0 20,10D,40 45,104,27 30,111,14 31,10C,1222 47,10D,40 37,20,115,-13,-9 0,21,-1,0,0 21,104,28 31,111,14 36,10C,1218 46,10D,39 50,104,29 22,20,120,-5,-5 0,21,0,0,0 20,111,14 21,10,7410460 0,D,39 0,A,-3382212 0,B,15122041 0,C,54 55,10C,1218 54,10D,39 50,104,30 21,20,111,-13,-1 0,21,0,0,0 21,111,14 32,10C,1226 43,10D,39 47,104,30 34,111,14 26,20,96,-25,-8 0,21,-1,-1,0 16,10,7410500 0,D,39 0,A,-3382215 0,B,15122038 0,C,54 67,10C,1230 52,10D,39 49,104,31 23,20,96,-21,-6 0,21,-1,0,0 20,111,14 28,10C,1230 44,10D,38 46,104,31 29,111,14 30,10C,1230 35,20,76,-36,-1 0,21,0,0,2 16,10,7410540 0,D,39 0,A,-3382217 0,B,15122035 0,C,54 67,10D,38 47,104,32 31,111,14 22,10,7410560 0,D,38 0,A,-3382219 0,B,15122033 0,C,54 40,10C,1234 33,20,101,-20,-20 0,21,-1,0,3 20,10D,38 44,104,32 28,111,14 31,10C,1238 45,10D,38 38,20,111,-22,-15 0,21,-1,0,1 19,104,32 33,111,14 32,10C,1238 44,10D,38 50,104,32 22,20,102,-20,-15 0,21,-1,0,-3 20,111,14 37,10C,1234 46,10D,38 49,10,7410620 0,D,38 0,A,-3382223 0,B,15122028 0,C,54 41,104,32 20,20,119,-13,-15 0,21,-1,-1,0 20,111,14 31,10C,1238 40,10,7410640 0,D,38 0,A,-3382224 0,B,15122027 0,C,54 41,10D,38 48,104,31 21,20,95,-22,-14 0,21,-1,1,0 21,111,14 31,10C,1238 48,10D,37 47,104,32 30,111,13 26,20,82,-30,-1 0,21,0,0,0 21,10C,1238 43,10D,37 47,104,26 34,111,12 34,10C,1238 35,20,93,-25,-6 0,21,0,0,0 20,10D,37 46,104,22 23,10,7410700 0,D,37 0,A,-3382228 0,B,15122022 0,C,54 44,111,12 41,10C,1230 35,20,97,-16,-3 0,21,0,1,0 19,10D,37 58,104,18 35,111,11 33,10C,1199 48,10D,36 37,20,97,-29,-10 0,21,0,0,1 20,104,15 32,111,11 34,10C,1234 56,10D,36 50,104,14 21,20,105,-26,-9 0,21,0,0,0 21,111,11 19,10,7410760 0,D,36 0,A,-3382232 0,B,15122017 0,C,54 56,10C,1230 41,10D,36 46,104,13 21,20,118,-18,-9 0,21,0,0,0 21,111,11 28,10C,1222 43,10D,36 51,104,13 29,111,12 29,20,82,-33,-3 0,21,0,0,0 20,10C,1226 33,10,7410800 0,D,35 0,A,-3382235 0,B,15122014 0,C,54 45,10D,35 44,104,14 34,111,11 31,20,101,-29,-16 0,21,0,0,1 20,10C,1210 46,10D,35 50,104,13 34,111,11 39,10C,1222 35,20,95,-31,-11 0,21,-1,0,0 20,10D,35 45,104,13 29,111,11 31,10C,1230 45,10D,35 38,20,97,-23,-10 0,21,-1,0,0 21,104,12 32,111,12 34,10C,1246 46,10D,33 43,10,7410880 0,D,34 0,A,-3382240 0,B,15122009 0,C,54 41,104,14 19,20,97,-24,-16 0,21,-1,0,0 21,111,11 32,10C,1242 43,10D,33 46,104,14 22,10,7410900 0,D,33 0,A,-3382241 0,B,15122007 0,C,54 40,111,12 21,20,102,-21,-9 0,21,-1,0,0 19,10C,1210 45,10D,33 45,104,14 33,10,7410920 0,D,33 0,A,-3382243 0,B,15122006 0,C,54 41,111,11 19,20,97,-24,-12 0,21,-1,0,0 20,10C,1199 45,10D,33 49,104,14 23,10,7410940 0,D,33 0,A,-3382244 0,B,15122005 0,C,54 41,111,11 23,20,92,-30,-14 0,21,-2,0,0 21,10C,1230 41,10D,32 45,104,14 23,10,7410960 0,D,33 0,A,-3382245 0,B,15122003 0,C,54 40,111,12 32,10C,1238 35,20,106,-25,-16 0,21,-1,0,1 20,10D,32 47,104,15 23,10,7410980 0,D,33 0,A,-3382246 0,B,15122002 0,C,54 40,111,12 33,10C,1230 46,20,90,-26,-13 0,21,-2,0,0 19,10D,32 49,10,7411000 0,D,32 0,A,-3382247 0,B,15122001 0,C,54 40,104,15 32,111,12 31,10C,1230 34,20,97,-24,-12 0,21,-1,0,0 20,10D,32 44,104,15 32,10,7411020 0,D,32 0,A,-3382249 0,B,15121999 0,C,54 40,111,11 28,10C,1253 40,20,90,-30,-16 0,21,-2,0,0 19,10D,32 41,10,7411040 0,D,32 0,A,-3382250 0,B,15121998 0,C,54 41,104,13 31,111,11 34,10C,1253 35,20,108,-21,-13 0,21,-2,0,0 19,10D,32 45,104,12 31,111,11 34,10C,1250 47,10D,32 38,20,77,-34,-9 0,21,-2,0,1 19,104,12 41,111,11 32,10C,1238 43,10D,31 50,104,12 22,20,93,-32,-10 0,21,-2,0,2 22,111,11 43,10C,1222 43,10D,31 50,104,12 34,111,11 22,20,89,-28,-7 0,21,-2,-1,0 20,10C,1218 33,10,7411120 0,D,31 0,A,-3382254 0,B,15121993 0,C,54 43,10D,31 57,104,12 30,111,11 22,20,88,-39,-21 0,21,-2,-1,0 20,10C,1222 34,10,7411140 0,D,31 0,A,-3382255 0,B,15121991 0,C,54 43,10D,31 48,104,12 34,111,11 21,20,103,-22,-14 0,21,-2,0,0 21,10C,1214 33,10,7411160 0,D,31 0,A,-3382257 0,B,15121990 0,C,54 44,10D,30 44,104,13 29,111,11 29,20,97,-30,-14 0,21,-1,-1,1 20,10C,1207 33,10,7411180 0,D,30 0,A,-3382258 0,B,15121989 0,C,54 45,10D,30 45,104,13 30,111,11 29,20,99,-24,-21 0,21,-2,-1,0 20,10C,1214 33,10,7411200 0,D,30 0,A,-3382259 0,B,15121987 0,C,54 44,10D,30 44,104,13 39,111,11 21,20,129,-16,-11 0,21,-1,1,0 22,10C,1222 41,10D,29 47,104,13 39,111,11 30,10C,1214 34,20,112,-21,-17 0,21,-1,-1,1 21,10D,29 44,104,13 31,111,11 29,10C,1203 46,10D,29 38,20,104,-27,-19 0,21,-1,0,0 22,104,13 32,111,11 33,10C,1203 43,10D,29 45,104,13 24,10,7411280 0,D,28 0,A,-3382263 0,B,15121982 0,C,54 40,111,11 19,20,91,-35,-11 0,21,-2,-1,-3 25,10C,1222 45,10D,29 48,104,12 24,10,7411300 0,D,28 0,A,-3382264 0,B,15121981 0,C,54 41,111,11 19,20,91,-45,-25 0,21,-1,1,0 20,10C,1207 40,10D,28 46,104,13 31,111,11 35,10C,1199 35,20,79,-29,-5 0,21,-1,0,-2 19,10D,28 44,104,13 42,111,11 24,10,7411340 0,D,28 0,A,-3382265 0,B,15121978 0,C,54 40,10C,1195 33,20,74,-43,-27 0,21,-1,0,-3 20,10D,28 47,104,13 29,111,11 42,10C,1207 43,10D,27 38,20,102,-25,-21 0,21,-2,-1,-4 20,104,13 28,111,11 29,10C,1195 48,10D,27 50,104,13 27,20,112,-16,-20 0,21,-1,-1,5 23,111,11 32,10C,1195 43,10,7411400 0,D,26 0,A,-3382268 0,B,15121975 0,C,54 41,10D,27 48,104,12 21,20,102,-21,-10 0,21,-2,0,0 21,111,11 31,10C,1207 44,10D,27 47,104,12 29,111,11 31,20,109,-28,-16 0,21,-2,2,-2 20,10C,1199 44,10D,26 97,104,13 34,111,11 29,20,100,-34,-23 0,21,-1,0,0 21,10C,1191 41,10,7411460 0,D,25 0,A,-3382271 0,B,15121971 0,C,54 41,10D,26 48,104,13 34,111,11 21,20,103,-31,-21 0,21,-1,0,0 20,10C,1191 38,10,7411480 0,D,25 0,A,-3382271 0,B,15121970 0,C,54 41,10D,26 44,104,13 30,111,11 31,20,102,-30,-21 0,21,-2,0,0 18,10C,1187 42,10D,26 51,104,13 33,111,11 34,10C,1187 35,20,107,-26,-22 0,21,-2,0,0 19,10D,25 46,104,13 30,111,11 30,10C,1175 47,10D,25 38,20,110,-28,-17 0,21,-2,0,0 19,104,14 41,111,12 31,10C,1027 43,10D,25 46,104,17 22,20,101,-27,-17 0,21,-2,0,-1 19,111,11 21,10,7411560 0,D,24 0,A,-3382275 0,B,15121966 0,C,54 55,10C,992 44,10D,25 59,104,18 22,20,103,-29,-20 0,21,-2,0,0 21,111,11 32,10C,937 43,10D,23 46,104,18 30,111,12 30,20,97,-29,-26 0,21,-3,0,1 16,10,7411600 0,D,21 0,A,-3382276 0,B,15121963 0,C,54 66,10C,890 42,10D,23 47,104,20 29,111,11 23,20,100,-36,-11 0,21,-4,0,1 15,10,7411620 0,D,20 0,A,-3382276 0,B,15121962 0,C,54 68,10C,863 44,10D,23 45,104,20 31,20,99,-35,-16 0,21,-4,0,0 17,10,7411640 0,D,20 0,A,-3382277 0,B,15121962 0,C,54 65,111,11 33,10C,812 45,10D,20 43,20,104,-28,-18 0,21,-5,1,0 21,104,22 32,111,11 33,10C,777 46,10D,20 46,10,7411680 0,D,18 0,A,-3382278 0,B,15121960 0,C,54 41,104,23 20,20,98,-32,-10 0,21,-5,1,0 20,111,11 32,10C,792 46,10D,20 47,104,23 31,111,11 27,20,93,-35,-16 0,21,-5,1,0 19,10C,800 44,10D,20 49,104,22 32,111,11 31,10C,800 35,20,131,-21,-1 0,21,-4,2,1 19,10D,17 44,104,22 44,111,11 31,10C,820 53,10D,17 38,20,102,-23,-22 0,21,-5,1,-2 20,104,22 28,111,11 32,10C,824 37,10,7411760 0,D,15 0,A,-3382279 0,B,15121956 0,C,54 40,10D,17 44,20,86,-19,-13 0,21,-5,1,-2 20,104,21 27,111,13 34,10C,808 34,10,7411780 0,D,14 0,A,-3382280 0,B,15121956 0,C,54 41,10D,17 44,20,108,-23,-10 0,21,-4,0,0 21,104,27 31,111,13 32,10C,910 36,10,7411800 0,D,12 0,A,-3382280 0,B,15121955 0,C,54 44,10D,15 174,20,112,-15,-15 0,21,-3,0,1 20,104,33 27,111,15 31,10C,1261 55,10D,15 47,104,33 31,20,96,-19,-7 0,21,-3,0,2 20,111,15 28,10C,1359 43,10D,15 44,104,32 24,10,7411860 0,D,12 0,A,-3382280 0,B,15121953 0,C,54 41,111,15 19,20,96,-18,6 0,21,-3,0,0 20,10C,1367 45,10D,14 49,104,32 24,10,7411880 0,D,12 0,A,-3382280 0,B,15121952 0,C,54 40,111,15 24,20,113,-7,1 0,21,-2,0,0 20,10C,1367 40,10D,14 46,104,32 31,111,15 35,10C,1378 35,20,86,-24,-12 0,21,-2,-1,0 19,10D,14 44,104,31 29,111,15 35,10C,1382 138,20,101,-21,-6 0,21,-2,0,0 16,10,7411920 0,D,14 0,A,-3382280 0,B,15121950 0,C,54 67,10D,14 55,104,31 30,111,15 30,10C,1371 35,20,92,-7,-8 0,21,-2,0,-1 20,10D,14 44,104,32 31,111,15 30,10C,1371 55,10D,14 38,20,90,-24,-13 0,21,-1,0,-1 20,104,31 32,111,15 30,10C,1382 43,10D,14 46,104,31 29,111,14 23,20,103,-14,-18 0,21,-1,0,0 14,10,7412000 0,D,16 0,A,-3382281 0,B,15121947 0,C,54 69,10C,1371 41,10D,15 45,104,30 22,10,7412020 0,D,16 0,A,-3382282 0,B,15121946 0,C,54 41,111,15 20,20,123,-17,-14 0,21,-1,0,1 23,10C,1339 44,10D,15 50,104,31 22,10,7412040 0,D,16 0,A,-3382282 0,B,15121945 0,C,54 41,111,15 29,20,98,-21,-12 0,21,-1,0,0 19,10C,1335 44,10D,15 50,104,32 22,10,7412060 0,D,17 0,A,-3382282 0,B,15121944 0,C,54 40,111,15 29,20,102,-17,-10 0,21,-1,-1,0 19,10C,1289 44,10D,16 47,10,7412080 0,D,17 0,A,-3382283 0,B,15121943 0,C,54 40,104,34 29,111,15 21,20,100,-17,-17 0,21,-1,-1,0 20,10C,1191 44,10D,16 47,10,7412100 0,D,17 0,A,-3382283 0,B,15121942 0,C,54 40,104,36 31,111,15 23,20,102,-17,-12 0,21,-1,0,0 19,10C,1199 49,10D,16 61,104,37 34,111,15 30,10C,1207 34,20,105,-17,-17 0,21,-2,-1,0 20,10D,16 46,104,38 23,10,7412140 0,D,18 0,A,-3382283 0,B,15121940 0,C,54 42,111,16 28,10C,1203 44,20,105,-22,-19 0,21,-1,-1,-1 20,10D,17 47,104,40 22,10,7412160 0,D,18 0,A,-3382284 0,B,15121939 0,C,54 40,111,15 29,10C,1203 43,10D,17 37,20,103,-17,-16 0,21,-2,0,0 19,104,40 29,111,16 31,10C,1191 43,10D,17 56,104,40 25,20,99,-17,-13 0,21,-2,0,0 18,111,15 30,10C,1199 44,10D,17 49,104,40 34,111,15 33,20,102,-18,-18 0,21,-1,0,0 21,10C,1199 37,10,7412220 0,D,19 0,A,-3382284 0,B,15121935 0,C,54 41,10D,18 43,104,40 30,111,15 28,20,102,-23,-14 0,21,-1,0,0 20,10C,1203 33,10,7412240 0,D,20 0,A,-3382285 0,B,15121934 0,C,54 44,10D,18 44,104,38 39,111,15 22,20,102,-15,-19 0,21,0,1,0 20,10C,1218 33,10,7412260 0,D,20 0,A,-3382285 0,B,15121933 0,C,54 43,10D,18 48,104,37 30,111,15 28,20,102,-17,-14 0,21,0,2,-1 21,10C,1238 33,10,7412280 0,D,20 0,A,-3382285 0,B,15121932 0,C,54 43,10D,18 44,104,37 29,111,15 32,10C,1273 35,20,96,-18,-14 0,21,0,2,0 25,10D,19 44,104,36 29,111,15 34,10C,1269 41,10D,19 38,20,95,-19,-15 0,21,0,1,0 17,10,7412320 0,D,20 0,A,-3382286 0,B,15121929 0,C,54 66,104,34 32,111,15 35,10C,1234 45,10D,19 36,20,100,-11,1 0,21,0,0,0 18,10,7412340 0,D,20 0,A,-3382286 0,B,15121928 0,C,56 64,104,34 41,111,14 40,10C,1187 37,10,7412360 0,D,20 0,A,-3382286 0,B,15121927 0,C,56 39,10D,20 36,20,109,-16,-11 0,21,-1,0,0 19,104,29 27,111,12 31,10C,1179 44,10D,20 46,104,24 29,111,12 22,20,97,-22,-8 0,21,0,0,0 19,10C,1183 45,10D,20 52,104,20 33,111,12 34,10C,1171 34,20,100,-23,-8 0,21,-1,0,0 19,10D,20 46,104,17 29,111,11 35,10C,1121 43,10D,20 37,20,98,-25,-14 0,21,-1,0,0 20,104,17 28,111,12 34,10C,1035 47,10D,20 49,104,20 31,20,102,-24,-14 0,21,-1,0,0 20,111,11 29,10C,992 42,10D,20 57,104,18 30,111,11 26,20,101,-25,-14 0,21,-1,-1,0 17,10,7412480 0,D,20 0,A,-3382288 0,B,15121920 0,C,56 65,10C,964 40,10D,20 47,104,17 28,111,12 22,20,100,-22,-10 0,21,-2,0,0 20,10C,890 44,10D,19 50,104,20 30,111,11 32,10C,875 34,20,102,-21,-10 0,21,-2,0,0 21,10D,19 44,104,20 34,111,11 30,10C,871 51,10D,19 38,20,103,-23,-13 0,21,-2,0,0 15,10,7412540 0,D,19 0,A,-3382289 0,B,15121916 0,C,56 67,104,20 27,111,13 32,10C,859 53,10D,19 38,20,99,-26,-16 0,21,-2,0,0 20,104,29 27,111,13 34,10C,964 41,10D,18 40,10,7412580 0,D,18 0,A,-3382290 0,B,15121914 0,C,56 39,104,29 32,20,104,-20,-11 0,21,-1,0,0 19,111,14 32,10C,1191 46,10D,18 38,10,7412600 0,D,18 0,A,-3382290 0,B,15121913 0,C,56 39,104,27 28,20,107,-16,-17 0,21,-1,0,0 20,111,14 28,10C,1292 47,10D,18 37,10,7412620 0,D,18 0,A,-3382290 0,B,15121912 0,C,56 44,104,25 27,111,14 22,20,106,-17,-11 0,21,-2,0,0 19,10C,1285 43,10D,18 40,10,7412640 0,D,18 0,A,-3382290 0,B,15121911 0,C,56 39,104,25 28,111,14 33,10C,1273 35,20,103,-18,-13 0,21,-1,0,0 20,10D,18 57,104,25 34,111,14 31,10C,1285 46,10D,18 36,20,102,-23,-8 0,21,-2,0,0 21,104,25 29,111,14 33,10C,1292 43,10D,18 50,104,26 25,20,104,-20,-10 0,21,-1,0,0 18,10,7412700 0,D,17 0,A,-3382291 0,B,15121908 0,C,56 64,111,14 29,10C,1312 43,10D,18 44,104,27 32,20,100,-22,-11 0,21,-2,0,0 20,111,14 32,10C,1332 47,10D,18 45,104,28 29,111,14 23,10,7412740 0,D,17 0,A,-3382291 0,B,15121906 0,C,56 39,10C,1351 33,20,106,-18,-17 0,21,-1,0,0 19,10D,18 47,104,28 29,111,14 31,10C,1359 56,10D,18 38,20,106,-19,-12 0,21,-1,0,-1 20,104,28 31,111,14 32,10C,1359 37,10,7412780 0,D,18 0,A,-3382291 0,B,15121904 0,C,56 39,10D,18 44,20,99,-22,-11 0,21,-1,0,0 19,104,26 28,111,12 33,10C,1355 35,10,7412800 0,D,18 0,A,-3382291 0,B,15121903 0,C,56 40,10D,18 48,104,22 21,20,100,-24,-11 0,21,-2,0,0 19,111,12 30,10C,1257 44,10D,18 66,104,20 29,111,12 22,20,99,-25,-11 0,21,-1,0,0 19,10C,1210 38,10,7412840 0,D,18 0,A,-3382292 0,B,15121900 0,C,56 39,10D,18 48,104,18 34,111,11 22,20,97,-26,-11 0,21,-1,0,0 19,10C,1187 38,10,7412860 0,D,18 0,A,-3382292 0,B,15121899 0,C,56 39,10D,18 57,104,16 31,111,12 21,20,99,-29,-9 0,21,0,0,0 19,10C,1093 46,10D,18 46,104,17 31,111,12 29,10C,1039 43,20,97,-31,-5 0,21,0,-1,1 20,10D,18 45,104,17 34,111,11 29,10C,996 47,10D,18 37,20,107,-22,-9 0,21,0,0,0 20,104,17 33,111,11 33,10C,945 47,10D,17 49,104,18 21,20,101,-23,-6 0,21,0,0,0 24,111,11 20,10,7412940 0,D,16 0,A,-3382292 0,B,15121895 0,C,56 51,10C,925 41,10D,17 62,104,28 21,20,102,-23,-14 0,21,-1,-1,-1 21,111,14 27,10C,996 57,10D,17 49,104,34 32,111,16 21,20,99,-25,-3 0,21,-1,0,0 21,10C,1250 41,10D,17 50,104,36 29,111,17 32,10C,1363 35,20,101,-21,-2 0,21,0,0,0 21,10D,16 47,104,45 30,111,19 30,10C,1511 45,10D,16 37,20,105,-12,-7 0,21,-1,0,-1 21,104,48 32,111,17 30,10C,1691 47,10D,16 49,104,36 22,20,103,-12,-15 0,21,-1,0,0 15,10,7413040 0,D,15 0,A,-3382293 0,B,15121891 0,C,56 67,111,14 31,10C,1539 42,10D,16 47,104,25 22,20,102,-20,-9 0,21,-1,0,0 19,111,14 38,10C,1359 46,10D,16 56,104,29 21,10,7413080 0,D,16 0,A,-3382293 0,B,15121889 0,C,56 39,111,18 20,20,102,-19,-10 0,21,0,0,0 20,10C,1355 44,10D,16 49,104,43 23,10,7413100 0,D,16 0,A,-3382293 0,B,15121888 0,C,56 39,111,18 27,10C,1535 35,20,103,-17,-6 0,21,0,0,0 20,10D,16 47,104,45 30,111,18 35,10C,1625 43,10D,16 38,20,104,-12,-16 0,21,0,0,0 20,104,44 26,111,17 31,10C,1640 47,10D,16 50,104,41 27,20,110,-14,-9 0,21,0,0,0 22,111,16 30,10C,1621 55,10D,16 50,104,30 39,111,14 22,20,96,-23,-12 0,21,0,0,1 19,10C,1484 45,10D,16 47,104,26 31,111,13 30,10C,1351 35,20,100,-22,-8 0,21,0,0,0 18,10D,16 49,104,24 34,111,13 30,10C,1234 43,10D,17 38,20,92,-30,-10 0,21,-1,0,0 19,104,24 29,111,13 23,10,7413220 0,D,16 0,A,-3382295 0,B,15121882 0,C,55 39,10C,1226 54,10D,17 36,20,97,-24,-10 0,21,-1,0,0 20,104,25 29,111,14 30,10C,1250 43,10D,17 46,104,25 28,111,14 21,20,100,-19,-3 0,21,-1,0,0 22,10C,1261 45,10D,17 50,104,26 39,111,14 32,10C,1246 41,20,88,-25,-6 0,21,-1,0,0 20,10D,18 48,104,25 34,111,12 34,10C,1250 55,10D,18 38,20,102,-23,-6 0,21,0,0,0 21,104,21 31,111,12 31,10C,1183 42,10D,18 47,104,20 24,10,7413320 0,D,16 0,A,-3382296 0,B,15121876 0,C,55 40,111,11 19,20,99,-21,-5 0,21,-1,0,0 20,10C,1148 41,10D,18 46,104,16 31,111,12 34,10C,1082 35,20,100,-28,-10 0,21,0,0,0 19,10D,17 48,104,17 34,111,12 35,10C,1023 43,10D,17 38,20,103,-24,-3 0,21,0,0,0 20,104,18 38,111,11 35,10C,992 37,10,7413380 0,D,16 0,A,-3382297 0,B,15121873 0,C,55 39,10D,17 40,20,104,-23,-13 0,21,-1,0,0 19,104,17 30,111,12 35,10C,929 36,10,7413400 0,D,16 0,A,-3382298 0,B,15121872 0,C,55 40,10D,17 40,20,96,-24,-5 0,21,-1,0,0 18,104,24 31,111,14 31,10C,960 53,10D,16 50,104,31 22,20,102,-20,-7 0,21,0,0,0 19,111,15 30,10C,1136 37,10,7413440 0,D,16 0,A,-3382298 0,B,15121870 0,C,55 38,10D,16 49,104,33 29,111,16 22,20,106,-19,-10 0,21,-1,0,0 18,10C,1281 46,10D,16 50,104,36 34,111,16 30,10C,1386 35,20,85,-15,-9 0,21,0,1,0 20,10D,16 45,10,7413480 0,D,15 0,A,-3382299 0,B,15121868 0,C,55 43,104,34 28,111,14 30,10C,1433 34,20,116,-41,-10 0,21,-1,1,6 20,10D,16 48,10,7413500 0,D,16 0,A,-3382299 0,B,15121867 0,C,55 39,104,29 28,111,14 30,10C,1394 38,20,108,-23,-1 0,21,-1,-1,-1 21,10D,16 36,10,7413520 0,D,16 0,A,-3382299 0,B,15121866 0,C,55 38,104,24 33,111,13 34,10C,1292 38,20,93,-25,-8 0,21,0,2,-2 20,10D,16 36,10,7413540 0,D,16 0,A,-3382299 0,B,15121865 0,C,55 39,104,22 32,111,13 31,10C,1265 45,10D,16 38,20,103,-24,0 0,21,-1,0,1 20,104,24 32,111,18 34,10C,1277 43,10D,16 51,10,7413580 0,D,16 0,A,-3382300 0,B,15121864 0,C,55 43,104,42 28,20,100,-11,-13 0,21,-1,0,2 21,111,18 28,10C,1496 46,10D,16 51,104,48 35,111,18 21,20,80,-14,-8 0,21,0,0,0 20,10C,1664 41,10D,16 45,104,46 30,111,17 31,10C,1722 35,20,115,-12,-12 0,21,-1,0,-3 20,10D,16 44,104,41 32,111,17 31,10,7413640 0,D,16 0,A,-3382301 0,B,15121861 0,C,55 40,10C,1683 33,20,87,0,-10 0,21,-1,-2,-2 19,10D,16 48,104,40 32,111,16 46,10C,1636 37,10,7413660 0,D,16 0,A,-3382301 0,B,15121860 0,C,56 39,10D,16 36,20,91,-29,-12 0,21,0,1,-1 19,104,34 34,111,16 23,10,7413680 0,D,18 0,A,-3382301 0,B,15121859 0,C,56 40,10C,1542 51,10D,16 37,20,145,-13,-1 0,21,0,-3,5 20,104,33 26,111,18 31,10C,1480 44,10D,17 46,104,43 31,111,18 22,20,105,-12,-12 0,21,0,0,0 19,10C,1566 45,10D,17 47,104,40 30,111,16 31,10C,1589 34,20,100,-22,-13 0,21,0,3,-3 20,10D,17 45,104,35 30,111,16 33,10C,1527 43,10D,17 38,20,102,-21,-10 0,21,-1,-1,0 20,104,34 32,111,16 24,10,7413760 0,D,18 0,A,-3382302 0,B,15121854 0,C,55 39,10C,1476 41,10D,19 45,104,34 23,20,105,-14,-5 0,21,0,0,-1 20,111,16 42,10C,1460 56,10D,19 49,104,34 29,111,16 23,20,99,-22,-19 0,21,0,0,0 16,10,7413800 0,D,20 0,A,-3382303 0,B,15121852 0,C,55 65,10C,1460 40,10D,19 46,104,35 30,111,16 23,20,96,-18,-18 0,21,0,0,-1 20,10C,1417 41,10D,19 46,104,37 29,111,16 31,10C,1347 35,20,111,-9,-8 0,21,0,0,0 15,10,7413840 0,D,20 0,A,-3382304 0,B,15121850 0,C,55 66,10D,20 59,104,40 31,111,16 30,10C,1285 35,20,106,-10,-15 0,21,0,0,0 21,10D,20 44,104,41 28,111,16 34,10C,1261 35,10,7413880 0,D,21 0,A,-3382304 0,B,15121847 0,C,55 39,10D,20 49,20,105,-17,-5 0,21,0,0,0 19,104,42 30,111,17 32,10,7413900 0,D,21 0,A,-3382305 0,B,15121846 0,C,55 39,10C,1230 45,10D,20 38,20,109,-11,-11 0,21,-1,0,0 19,104,47 30,111,17 27,10,7413920 0,D,21 0,A,-3382305 0,B,15121845 0,C,55 40,10C,1226 50,10D,20 37,20,97,-14,-13 0,21,-1,-1,0 20,104,48 27,111,17 27,10,7413940 0,D,21 0,A,-3382305 0,B,15121844 0,C,55 39,10C,1230 45,10D,20 42,20,100,-15,-8 0,21,-1,0,0 21,104,49 25,111,18 28,10,7413960 0,D,22 0,A,-3382306 0,B,15121842 0,C,55 39,10C,1226 45,10D,20 43,20,98,-19,1 0,21,0,-1,3 23,104,57 26,111,19 32,10C,1238 47,10D,21 46,104,61 31,20,94,-20,-12 0,21,0,0,-1 20,111,19 33,10C,1253 44,10D,21 50,104,61 34,111,19 21,20,107,-20,-9 0,21,0,0,0 20,10C,1250 45,10D,21 38,10,7414020 0,D,23 0,A,-3382307 0,B,15121838 0,C,55 39,104,61 41,111,19 21,20,109,-9,-15 0,21,0,0,-1 20,10C,1250 41,10D,21 37,10,7414040 0,D,24 0,A,-3382307 0,B,15121837 0,C,55 39,104,61 32,111,19 30,10C,1238 35,20,105,-13,-3 0,21,0,-1,0 19,10D,23 37,10,7414060 0,D,24 0,A,-3382308 0,B,15121836 0,C,55 40,104,62 35,111,19 34,10C,1238 38,20,102,-19,-15 0,21,-1,-1,0 20,10D,23 37,10,7414080 0,D,25 0,A,-3382308 0,B,15121834 0,C,55 39,104,62 31,111,19 40,10C,1269 34,20,106,-12,-6 0,21,-1,-1,1 21,10D,23 35,10,7414100 0,D,25 0,A,-3382309 0,B,15121833 0,C,55 40,104,60 28,111,19 34,10C,1285 42,10D,23 38,20,111,-22,-15 0,21,-1,-1,0 20,104,60 32,111,19 31,10C,1281 46,10D,25 48,104,60 23,10,7414140 0,D,26 0,A,-3382310 0,B,15121830 0,C,55 40,111,19 20,20,108,0,-8 0,21,-1,-1,-1 20,10C,1277 41,10D,25 45,104,60 41,111,18 30,10C,1277 39,20,104,-3,-22 0,21,-1,0,0 19,10D,25 47,104,57 29,111,18 31,10C,1250 44,10D,25 38,20,103,-14,-16 0,21,-1,0,-1 19,104,55 37,111,17 32,10C,1218 59,10D,27 46,104,54 22,20,95,-21,-8 0,21,-2,0,1 19,111,17 35,10C,1210 44,10D,27 50,104,53 34,111,17 22,20,111,-10,-11 0,21,-1,0,0 20,10C,1210 43,10D,27 51,104,50 34,111,15 30,10C,1210 35,20,103,-15,-9 0,21,-1,0,0 19,10D,27 47,104,43 23,10,7414260 0,D,29 0,A,-3382313 0,B,15121820 0,C,55 39,111,14 31,10C,1199 43,20,98,-27,-7 0,21,-1,0,-2 20,10D,28 48,104,35 21,10,7414280 0,D,29 0,A,-3382313 0,B,15121818 0,C,55 43,111,14 32,10C,1210 40,20,92,-37,-14 0,21,-1,0,0 18,10D,28 55,104,29 30,111,13 30,10C,1210 43,10D,28 38,20,82,-23,-8 0,21,-1,1,0 20,104,25 27,111,12 23,10,7414320 0,D,30 0,A,-3382314 0,B,15121815 0,C,55 39,10C,1203 41,10D,28 49,104,23 21,20,77,-34,-22 0,21,-1,0,4 20,111,14 20,10,7414340 0,D,29 0,A,-3382315 0,B,15121813 0,C,55 54,10C,1164 47,10D,28 49,104,25 21,20,131,-9,-19 0,21,-2,0,0 21,111,14 19,10,7414360 0,D,29 0,A,-3382315 0,B,15121812 0,C,55 54,10C,1210 49,10D,28 49,104,27 21,20,105,-24,-2 0,21,-2,1,0 22,111,14 28,10C,1222 43,10D,28 62,104,27 32,111,14 31,20,101,-25,-6 0,21,-1,2,0 21,10C,1214 41,10D,28 49,104,29 30,111,14 32,10C,1195 34,20,118,-9,-11 0,21,-2,0,1 22,10D,28 47,104,29 30,111,14 30,10C,1207 45,10D,28 38,20,114,-21,-5 0,21,-2,2,0 16,10,7414440 0,D,28 0,A,-3382317 0,B,15121805 0,C,55 66,104,30 28,111,14 32,10C,1210 43,10D,28 38,20,95,-29,-18 0,21,-1,2,-1 21,104,31 32,111,14 30,10C,1210 45,10D,28 51,104,31 22,20,91,-30,-38 0,21,-2,0,-1 19,111,14 32,10C,1226 46,10D,28 50,104,31 31,10,7414500 0,D,28 0,A,-3382318 0,B,15121800 0,C,55 39,111,14 21,20,95,-26,-18 0,21,-2,2,0 19,10C,1230 44,10D,28 56,104,31 35,111,14 34,10C,1242 35,20,97,-25,-24 0,21,-3,0,-1 19,10D,28 46,104,30 35,111,14 35,10C,1253 54,10D,28 38,20,98,-20,-16 0,21,-2,1,0 20,104,32 30,111,15 24,10,7414560 0,D,28 0,A,-3382319 0,B,15121795 0,C,55 40,10C,1281 44,10D,28 43,20,96,-21,-23 0,21,-3,0,-1 18,104,32 31,111,15 23,10,7414580 0,D,28 0,A,-3382320 0,B,15121794 0,C,55 39,10C,1296 41,10D,28 50,104,32 21,20,118,0,-5 0,21,-2,0,-2 19,111,15 28,10C,1300 58,10D,28 50,104,32 32,111,15 59,20,106,-29,-8 0,21,-1,1,0 21,10C,1304 41,10D,28 49,104,33 30,111,15 33,10C,1281 34,20,97,-25,-26 0,21,-2,0,0 21,10D,28 47,104,33 31,111,15 30,10C,1265 45,10D,28 38,20,103,-13,-3 0,21,-2,0,0 16,10,7414660 0,D,29 0,A,-3382321 0,B,15121787 0,C,55 66,104,37 27,111,18 33,10C,1316 43,10D,28 38,20,74,-20,-26 0,21,-2,0,7 20,104,47 29,111,18 30,10C,1367 46,10D,28 47,104,49 31,20,94,-21,-4 0,21,-2,-2,0 19,111,18 32,10C,1289 50,10D,28 46,10,7414720 0,D,29 0,A,-3382322 0,B,15121782 0,C,55 40,104,51 20,20,95,-56,-35 0,21,-1,3,0 19,111,17 29,10C,1257 46,10D,28 43,10,7414740 0,D,30 0,A,-3382322 0,B,15121780 0,C,55 39,104,50 24,20,60,-38,-13 0,21,-1,-1,2 20,111,16 28,10C,1250 54,10D,28 47,104,49 35,111,17 21,20,106,-14,9 0,21,-1,0,4 19,10C,1246 41,10D,29 47,104,48 30,111,17 31,10C,1218 35,20,102,-18,-4 0,21,0,-2,1 19,10D,29 44,104,48 29,111,17 34,10C,1218 35,10,7414800 0,D,30 0,A,-3382323 0,B,15121775 0,C,55 39,10D,29 46,20,114,5,38 0,21,-1,1,-2 23,104,48 30,111,17 27,10,7414820 0,D,31 0,A,-3382324 0,B,15121773 0,C,55 39,10C,1230 41,10D,29 43,20,98,-20,-11 0,21,0,0,3 20,104,49 29,111,17 28,10,7414840 0,D,31 0,A,-3382324 0,B,15121771 0,C,55 39,10C,1226 42,10D,30 42,20,107,-10,-7 0,21,0,0,0 19,104,49 30,111,17 28,10,7414860 0,D,31 0,A,-3382324 0,B,15121769 0,C,55 39,10C,1226 42,10D,30 42,20,91,-15,-23 0,21,0,0,-1 19,104,45 30,111,14 27,10,7414880 0,D,32 0,A,-3382324 0,B,15121767 0,C,55 40,10C,1226 55,10D,30 38,20,109,-19,-2 0,21,0,0,0 22,104,36 34,111,14 46,10C,1242 43,10D,31 55,20,98,-32,-17 0,21,0,0,1 20,104,30 29,111,13 31,10C,1242 44,10D,31 50,104,25 27,20,106,-27,12 0,21,2,-1,0 19,111,12 30,10C,1230 44,10D,31 50,104,23 30,111,12 27,20,81,-44,-10 0,21,2,-1,0 19,10C,1218 44,10D,31 38,10,7414960 0,D,33 0,A,-3382326 0,B,15121760 0,C,55 39,104,25 29,111,15 34,20,89,-24,14 0,21,1,0,0 19,10C,1261 41,10D,32 39,10,7414980 0,D,33 0,A,-3382327 0,B,15121758 0,C,55 39,104,31 27,111,15 34,10C,1265 35,20,117,7,7 0,21,0,1,0 18,10D,32 48,104,34 35,111,16 30,10C,1265 55,10D,32 38,20,115,-4,0 0,21,0,0,-2 21,104,38 28,111,16 34,10C,1285 43,10D,32 49,104,40 26,20,95,-31,0 0,21,0,-3,7 16,10,7415040 0,D,32 0,A,-3382328 0,B,15121752 0,C,55 66,111,16 28,10C,1273 43,10D,32 46,104,44 21,20,81,-31,1 0,21,-1,0,0 16,10,7415060 0,D,33 0,A,-3382329 0,B,15121750 0,C,55 66,111,17 28,10C,1265 46,10D,32 47,104,47 21,20,116,0,-10 0,21,-1,0,2 21,111,17 32,10C,1238 43,10D,32 48,104,49 31,111,17 27,20,103,-15,-21 0,21,-1,0,1 20,10C,1214 41,10D,32 55,104,50 32,111,17 35,10,7415120 0,D,33 0,A,-3382331 0,B,15121745 0,C,55 43,10C,1230 33,20,102,-23,-9 0,21,-2,0,0 20,10D,33 43,104,49 28,111,17 24,10,7415140 0,D,34 0,A,-3382331 0,B,15121743 0,C,55 39,10C,1242 45,10D,33 38,20,116,-6,-30 0,21,-3,0,4 19,104,49 26,111,16 31,10C,1250 44,10D,33 46,104,46 30,111,16 22,20,116,0,-28 0,21,-3,1,0 19,10C,1250 45,10D,34 47,104,45 30,111,16 34,10C,1250 35,20,125,-13,-27 0,21,-3,0,3 19,10D,34 45,104,43 34,111,16 30,10C,1261 47,10D,34 46,20,127,0,-28 0,21,-2,-3,1 20,104,41 32,111,16 31,10C,1308 50,10D,34 49,104,38 22,20,127,-6,-26 0,21,-2,0,1 20,111,15 53,10C,1328 43,10D,34 46,104,36 29,111,14 22,20,111,-29,-6 0,21,-2,0,0 20,10C,1308 45,10D,35 49,104,30 30,111,13 32,10C,1261 35,20,114,-13,-4 0,21,-2,0,0 20,10D,35 48,104,26 30,111,12 31,10C,1210 44,10D,35 38,20,97,-32,-28 0,21,-2,-2,0 20,104,22 32,111,12 40,10C,1207 43,10D,35 55,104,20 21,20,88,-24,-30 0,21,-2,0,0 22,111,11 28,10C,1199 47,10D,36 48,104,16 28,10,7415340 0,D,36 0,A,-3382337 0,B,15121722 0,C,55 38,111,11 20,20,114,0,-21 0,21,-2,-1,0 24,10C,1207 44,10D,36 47,104,14 26,10,7415360 0,D,36 0,A,-3382338 0,B,15121720 0,C,55 40,111,11 20,20,74,-35,2 0,21,-2,-2,-1 19,10C,1207 45,10D,36 49,104,13 28,10,7415380 0,D,36 0,A,-3382338 0,B,15121718 0,C,55 39,111,11 24,20,105,-16,-6 0,21,-1,-1,-2 20,10C,1203 45,10D,36 49,104,13 31,111,11 35,10C,1187 33,20,81,-45,-3 0,21,-1,-1,2 21,10D,35 44,104,13 32,111,11 44,10C,1214 35,10,7415420 0,D,36 0,A,-3382339 0,B,15121714 0,C,55 41,10D,35 36,20,102,-24,-14 0,21,-1,1,-3 20,104,13 25,111,11 32,10C,1222 43,10D,35 62,104,12 21,20,60,-42,-13 0,21,-1,1,-5 21,111,11 29,10C,1210 44,10D,35 50,104,13 42,111,12 23,20,58,-49,-6 0,21,0,0,-2 18,10C,1234 39,10,7415480 0,D,35 0,A,-3382341 0,B,15121708 0,C,55 40,10D,34 48,104,14 34,111,11 23,20,90,-16,0 0,21,0,0,1 18,10C,1210 39,10,7415500 0,D,34 0,A,-3382341 0,B,15121706 0,C,55 40,10D,34 44,104,14 31,111,11 29,10C,1191 35,20,101,-25,-4 0,21,-1,0,-2 21,10D,34 45,10,7415520 0,D,33 0,A,-3382341 0,B,15121704 0,C,55 40,104,13 28,111,11 34,10C,1253 34,20,80,-38,-8 0,21,0,0,0 20,10D,34 50,104,12 33,111,11 30,10C,1250 46,10D,34 38,20,98,-20,-7 0,21,-1,0,1 21,104,12 31,111,11 34,10C,1246 43,10D,34 46,104,12 27,20,98,-23,-18 0,21,-1,-1,0 20,111,11 29,10C,1210 47,10D,34 56,104,12 40,111,11 22,20,93,-17,-21 0,21,-1,-1,0 16,10,7415600 0,D,32 0,A,-3382343 0,B,15121696 0,C,55 68,10C,1179 41,10D,34 44,104,13 23,10,7415620 0,D,33 0,A,-3382343 0,B,15121694 0,C,55 41,111,11 29,20,118,-13,-10 0,21,-1,-1,0 19,10C,1210 42,10D,34 44,104,13 24,10,7415640 0,D,34 0,A,-3382344 0,B,15121692 0,C,55 41,111,11 30,20,92,-30,-13 0,21,-2,0,0 19,10C,1222 44,10D,34 48,104,13 33,10,7415660 0,D,33 0,A,-3382344 0,B,15121690 0,C,55 40,111,11 19,20,90,-31,-19 0,21,-1,0,0 21,10C,1218 44,10D,34 50,104,12 22,10,7415680 0,D,33 0,A,-3382345 0,B,15121688 0,C,55 41,111,11 24,20,101,-28,-10 0,21,-1,0,1 20,10C,1214 41,10D,33 45,104,12 23,10,7415700 0,D,33 0,A,-3382345 0,B,15121686 0,C,55 40,111,11 28,10C,1222 35,20,108,-10,-8 0,21,-1,-1,-1 20,10D,33 46,104,12 35,111,11 23,10,7415720 0,D,33 0,A,-3382345 0,B,15121684 0,C,56 40,10C,1218 46,20,97,-32,-13 0,21,-1,0,0 21,10D,33 42,104,13 23,10,7415740 0,D,32 0,A,-3382346 0,B,15121682 0,C,56 40,111,11 32,10C,1218 44,20,84,-24,-14 0,21,-1,0,0 20,10D,32 47,104,13 22,10,7415760 0,D,32 0,A,-3382346 0,B,15121680 0,C,56 40,111,11 28,10C,1214 44,10D,32 37,20,103,-23,-23 0,21,-1,0,-2 19,104,13 29,111,14 32,10C,1253 43,10D,32 46,104,22 29,111,14 22,20,71,-22,-36 0,21,-2,2,3 20,10C,1246 41,10D,32 47,104,25 30,111,14 30,10C,1265 35,20,138,-6,-22 0,21,-1,0,0 20,10D,31 45,104,26 30,111,13 39,10C,1246 51,10D,31 49,20,96,-28,-26 0,21,-1,-2,-1 22,104,26 27,111,12 31,10C,1207 46,10D,31 49,104,23 23,10,7415860 0,D,31 0,A,-3382348 0,B,15121671 0,C,56 40,111,12 20,20,131,-5,-11 0,21,-1,0,0 20,10C,1199 41,10D,31 45,104,20 30,111,11 32,10C,1246 34,20,93,-25,-35 0,21,-1,0,-4 20,10D,30 44,104,15 32,111,11 35,10C,1250 44,10D,30 38,20,91,-45,19 0,21,0,1,0 19,104,14 28,111,11 30,10C,1246 43,10D,30 47,104,13 31,111,11 30,20,92,-29,-14 0,21,0,0,1 20,10C,1234 44,10D,30 50,104,13 31,111,11 33,10C,1179 47,20,93,-29,-1 0,21,0,-1,3 23,10D,30 54,104,13 31,111,11 31,10C,1152 43,10D,29 38,20,106,-34,6 0,21,0,0,0 18,104,15 26,10,7415980 0,D,29 0,A,-3382351 0,B,15121660 0,C,56 52,111,14 32,10C,1210 43,10D,29 38,20,115,-16,21 0,21,0,0,-2 19,104,25 41,111,16 34,10C,1253 46,10D,29 49,104,34 22,20,83,-20,-32 0,21,0,1,4 20,111,16 21,10,7420020 0,D,28 0,A,-3382351 0,B,15121657 0,C,56 55,10C,1269 41,10D,28 54,104,36 22,20,117,-26,-3 0,21,0,0,-4 21,111,14 28,10C,1214 47,10D,28 50,104,33 32,111,13 27,20,117,-17,-16 0,21,0,0,3 16,10,7420060 0,D,28 0,A,-3382352 0,B,15121654 0,C,56 67,10C,1210 41,10D,28 49,104,27 27,20,159,0,0 0,21,0,0,1 15,10,7420080 0,D,28 0,A,-3382353 0,B,15121652 0,C,56 68,111,12 32,10C,1230 43,10D,28 43,20,111,-20,-5 0,21,-1,-2,-4 15,10,7420100 0,D,29 0,A,-3382353 0,B,15121650 0,C,56 68,104,32 28,111,15 30,10C,1281 45,10D,28 38,20,75,-17,-2 0,21,-1,0,0 20,104,35 28,111,15 31,10C,1289 43,10D,28 55,104,37 27,20,71,-38,-32 0,21,0,0,0 20,111,15 28,10C,1281 47,10D,28 49,104,37 28,10,7420160 0,D,28 0,A,-3382355 0,B,15121645 0,C,56 44,111,15 20,20,117,-21,-25 0,21,-1,-1,0 20,10C,1265 41,10D,28 46,104,36 30,111,15 22,10,7420180 0,D,28 0,A,-3382355 0,B,15121644 0,C,56 40,10C,1238 33,20,114,-15,-24 0,21,-1,1,0 20,10D,28 47,104,37 34,111,15 22,10,7420200 0,D,28 0,A,-3382356 0,B,15121642 0,C,56 41,10C,1222 45,20,96,-18,-26 0,21,-2,-1,-1 19,10D,28 47,104,38 31,111,16 21,10,7420220 0,D,28 0,A,-3382356 0,B,15121640 0,C,56 41,10C,1199 41,10D,28 38,20,95,-16,-6 0,21,0,0,3 20,104,47 37,111,19 22,10,7420240 0,D,27 0,A,-3382357 0,B,15121639 0,C,56 44,10C,1269 46,10D,28 37,20,88,-7,0 0,21,-1,0,2 20,104,58 31,111,19 23,10,7420260 0,D,27 0,A,-3382357 0,B,15121637 0,C,56 40,10C,1289 42,10D,28 45,104,60 21,20,129,3,-30 0,21,0,-2,6 20,111,18 21,10,7420280 0,D,28 0,A,-3382358 0,B,15121636 0,C,56 56,10C,1265 40,10D,28 47,104,60 21,20,88,-19,-27 0,21,-1,0,2 20,111,18 21,10,7420300 0,D,27 0,A,-3382358 0,B,15121634 0,C,56 54,10C,1269 45,10D,28 50,104,52 21,20,100,-12,-6 0,21,0,-1,1 22,111,16 31,10C,1253 44,10D,28 46,104,45 30,111,14 34,20,105,-20,-4 0,21,-1,0,0 24,10C,1238 61,10D,28 46,104,36 30,111,14 32,10C,1230 34,20,107,-28,-12 0,21,-1,0,1 18,10,7420360 0,D,29 0,A,-3382359 0,B,15121629 0,C,56 66,10D,28 55,104,29 33,111,13 23,10,7420380 0,D,29 0,A,-3382360 0,B,15121627 0,C,56 41,10C,1207 32,20,111,-20,-29 0,21,-1,0,0 20,10D,28 44,104,28 32,111,15 35,10C,1187 36,10,7420400 0,D,29 0,A,-3382360 0,B,15121625 0,C,58 40,10D,28 36,20,74,-47,-21 0,21,-1,0,2 20,104,31 26,111,14 31,10C,1265 44,10D,28 46,104,32 30,111,14 22,20,125,-20,-2 0,21,-1,0,1 19,10C,1285 42,10D,28 51,104,30 40,111,14 30,10C,1273 34,20,108,-11,20 0,21,0,2,-3 20,10D,28 48,104,30 34,111,14 29,10C,1253 43,10D,28 38,20,101,-4,-20 0,21,0,0,0 21,104,29 28,111,14 30,10C,1242 43,10D,28 46,104,29 32,111,14 22,20,103,-29,-5 0,21,0,0,1 20,10C,1226 41,10D,28 50,104,29 30,111,14 33,10C,1210 34,20,99,-24,6 0,21,-1,2,3 21,10D,28 48,104,30 30,111,15 29,10C,1207 46,10D,28 38,20,117,-9,16 0,21,-1,2,0 17,10,7420540 0,D,28 0,A,-3382363 0,B,15121613 0,C,58 66,104,32 39,111,15 35,10C,1230 44,10D,28 38,20,109,-19,-29 0,21,-3,-1,0 24,104,33 27,111,15 45,10C,1265 41,10,7420580 0,D,28 0,A,-3382364 0,B,15121610 0,C,58 40,10D,28 36,20,96,-17,-9 0,21,-2,0,0 20,104,35 28,111,16 30,10C,1300 47,10D,28 38,10,7420600 0,D,27 0,A,-3382365 0,B,15121609 0,C,58 41,104,36 19,20,109,-12,-1 0,21,-2,0,-2 20,111,16 31,10C,1304 42,10D,28 40,10,7420620 0,D,27 0,A,-3382365 0,B,15121607 0,C,58 40,104,36 29,20,112,-9,-12 0,21,-2,0,-1 19,111,15 29,10C,1292 46,10D,28 39,10,7420640 0,D,27 0,A,-3382366 0,B,15121605 0,C,58 40,104,36 29,111,15 21,20,118,-23,-18 0,21,-2,0,-1 24,10C,1289 51,10D,28 38,10,7420660 0,D,28 0,A,-3382366 0,B,15121604 0,C,58 41,104,37 32,111,15 21,20,113,-20,-29 0,21,-3,1,1 20,10C,1292 45,10D,28 37,10,7420680 0,D,28 0,A,-3382367 0,B,15121602 0,C,58 41,104,36 28,111,16 31,10C,1296 35,20,88,-30,-26 0,21,-3,0,2 19,10D,28 37,10,7420700 0,D,27 0,A,-3382367 0,B,15121601 0,C,58 41,104,40 43,111,16 40,10C,1316 34,20,101,-31,-24 0,21,-3,-1,-3 21,10D,28 36,10,7420720 0,D,27 0,A,-3382367 0,B,15121599 0,C,58 40,104,41 37,111,16 35,10C,1304 37,20,113,1,-2 0,21,-3,4,-1 22,10D,28 48,104,41 34,111,16 31,10C,1265 46,10D,28 47,20,101,-24,-14 0,21,-4,0,-1 20,104,41 32,111,16 34,10C,1261 44,10D,28 44,104,41 24,10,7420780 0,D,27 0,A,-3382368 0,B,15121594 0,C,58 41,111,16 20,20,107,-26,-35 0,21,-3,0,2 20,10C,1242 41,10D,28 45,104,40 31,111,16 35,10C,1230 35,20,123,-2,-2 0,21,-2,2,1 20,10D,28 44,104,40 32,111,16 35,10C,1238 44,10D,28 38,20,113,-17,-6 0,21,-3,0,0 20,104,38 32,111,16 32,10C,1250 44,10D,28 50,104,38 26,20,129,11,13 0,21,-3,1,-1 21,111,15 31,10C,1250 44,10D,28 48,10,7420860 0,D,27 0,A,-3382369 0,B,15121587 0,C,58 41,104,33 19,20,118,-11,-26 0,21,-2,0,-1 21,111,12 27,10C,1214 46,10D,28 39,10,7420880 0,D,27 0,A,-3382369 0,B,15121586 0,C,58 40,104,27 28,111,12 22,20,107,-22,-13 0,21,-2,-2,0 20,10C,1226 43,10D,28 40,10,7420900 0,D,27 0,A,-3382369 0,B,15121584 0,C,58 41,104,21 32,111,11 26,20,99,-22,0 0,21,-2,1,0 20,10C,1191 43,10D,28 40,10,7420920 0,D,26 0,A,-3382369 0,B,15121582 0,C,58 40,104,17 28,111,11 30,10C,1199 35,20,116,-15,-41 0,21,-2,0,0 23,10D,28 49,104,14 42,111,12 31,10C,1203 47,10D,28 37,20,83,-40,-32 0,21,-3,0,0 21,104,15 42,111,12 34,10C,1199 43,10D,28 45,104,16 23,20,107,-23,-5 0,21,-4,3,5 20,111,12 28,10C,1132 44,10D,28 46,104,17 29,111,12 34,10C,1101 36,20,64,-74,0 0,21,-1,1,2 15,10,7421000 0,D,26 0,A,-3382369 0,B,15121576 0,C,58 67,10D,28 43,104,18 30,111,12 24,10,7421020 0,D,26 0,A,-3382369 0,B,15121574 0,C,58 40,10C,1140 32,20,139,12,-31 0,21,-4,0,1 20,10D,27 44,104,18 32,111,12 34,10C,1191 46,10D,27 37,20,107,-25,-3 0,21,-4,0,0 24,104,17 28,111,12 31,10C,1191 45,10D,27 59,104,18 51,20,99,-16,-14 0,21,-3,0,-1 19,111,12 30,10C,1203 44,10D,27 50,104,16 31,111,11 27,20,96,-29,-3 0,21,-4,2,-1 18,10C,1183 45,10D,25 38,10,7421100 0,D,25 0,A,-3382369 0,B,15121568 0,C,58 41,104,14 28,111,11 30,20,87,-27,-4 0,21,-3,0,2 20,10C,1207 38,10,7421120 0,D,25 0,A,-3382369 0,B,15121566 0,C,58 41,10D,25 44,104,13 34,111,11 26,20,110,-15,-2 0,21,-3,0,0 19,10C,1222 37,10,7421140 0,D,25 0,A,-3382369 0,B,15121565 0,C,58 41,10D,25 49,104,12 33,111,11 22,20,99,-18,5 0,21,-4,1,1 17,10C,1230 42,10,7421160 0,D,24 0,A,-3382369 0,B,15121563 0,C,58 41,10D,24 58,104,12 29,111,11 23,20,123,-15,-25 0,21,-3,-1,0 19,10C,1136 45,10D,24 47,104,16 31,111,13 30,10C,878 35,20,105,-12,-8 0,21,-2,1,-4 19,10D,24 45,104,22 31,111,11 31,10C,933 43,10D,24 37,20,109,-13,-23 0,21,-3,-2,1 20,104,20 28,111,11 31,10C,984 42,10D,24 47,104,20 29,111,11 23,20,94,-29,0 0,21,-1,1,-2 20,10C,964 41,10D,23 46,104,18 31,111,11 30,10C,949 33,20,101,-33,-6 0,21,-1,0,2 22,10D,23 44,104,17 40,111,11 38,10C,929 42,10D,23 38,20,87,-31,-34 0,21,0,2,0 20,104,17 29,111,11 33,10C,902 47,10D,23 59,104,20 21,20,100,-31,9 0,21,0,0,-1 21,111,11 28,10C,871 43,10D,21 46,104,20 31,111,11 32,20,112,-18,-51 0,21,-3,-1,-2 21,10C,835 41,10D,21 46,104,20 33,111,11 33,10C,832 35,20,104,-26,-22 0,21,-1,-2,0 16,10,7421340 0,D,21 0,A,-3382368 0,B,15121551 0,C,58 67,10D,21 44,104,20 32,111,11 35,10C,828 34,20,98,-34,-13 0,21,0,0,0 21,10D,21 53,104,21 30,111,11 32,10C,808 44,10D,19 38,20,55,-56,-32 0,21,-1,0,-1 20,104,21 32,111,11 34,10C,808 46,10D,19 37,10,7421400 0,D,19 0,A,-3382367 0,B,15121548 0,C,58 41,104,21 20,20,160,-2,-22 0,21,0,-2,0 20,111,11 32,10C,808 48,10,7421420 0,D,18 0,A,-3382367 0,B,15121547 0,C,58 41,10D,19 53,104,21 34,20,116,-21,-14 0,21,2,0,0 20,111,11 29,10C,800 44,10D,17 51,104,21 33,111,11 27,20,72,-51,0 0,21,1,-3,2 19,10C,804 45,10D,17 37,10,7421460 0,D,17 0,A,-3382367 0,B,15121545 0,C,58 41,104,23 41,111,11 22,20,103,-22,11 0,21,2,1,2 19,10C,812 45,10D,17 38,10,7421480 0,D,17 0,A,-3382367 0,B,15121544 0,C,58 44,104,22 33,111,12 22,20,104,-29,-9 0,21,3,-1,0 19,10C,820 44,10D,17 38,10,7421500 0,D,16 0,A,-3382367 0,B,15121543 0,C,58 41,104,27 32,111,14 26,20,92,-34,-1 0,21,3,-1,1 20,10C,882 44,10D,15 38,10,7421520 0,D,16 0,A,-3382367 0,B,15121542 0,C,58 41,104,32 27,111,15 31,20,100,-20,-4 0,21,2,-1,0 19,10C,1144 40,10D,15 39,10,7421540 0,D,15 0,A,-3382367 0,B,15121541 0,C,58 40,104,33 32,111,16 31,10C,1308 34,20,100,-18,-1 0,21,3,-1,0 20,10D,15 45,104,38 30,111,17 30,10C,1386 56,10D,15 37,20,104,-18,-1 0,21,3,-1,0 25,104,40 33,111,16 34,10C,1511 43,10D,14 46,104,38 21,20,99,-11,-9 0,21,3,-1,0 21,111,16 28,10C,1562 44,10D,14 47,104,33 29,111,15 33,10C,1531 35,20,97,-18,-2 0,21,3,-1,-1 16,10,7421620 0,D,15 0,A,-3382368 0,B,15121537 0,C,58 67,10D,14 44,104,30 32,111,15 24,10,7421640 0,D,16 0,A,-3382368 0,B,15121536 0,C,58 41,10C,1433 33,20,104,-16,-16 0,21,0,-1,0 19,10D,14 44,104,31 32,111,15 32,10C,1382 56,10D,15 38,20,103,-21,-14 0,21,0,0,0 20,104,32 40,111,15 34,10C,1375 35,10,7421680 0,D,16 0,A,-3382368 0,B,15121534 0,C,58 45,10D,15 36,20,96,-24,-28 0,21,-2,-1,-1 19,104,33 28,111,16 34,10C,1390 35,10,7421700 0,D,16 0,A,-3382369 0,B,15121533 0,C,58 41,10D,15 44,20,110,-17,-29 0,21,-4,0,0 19,104,34 28,111,16 34,10C,1410 34,10,7421720 0,D,16 0,A,-3382369 0,B,15121532 0,C,58 41,10D,16 44,20,100,-18,-33 0,21,-6,0,0 20,104,40 27,111,17 30,10C,1484 36,10,7421740 0,D,16 0,A,-3382369 0,B,15121531 0,C,58 40,10D,16 44,104,40 21,20,104,-15,-26 0,21,-8,2,-1 21,111,16 30,10C,1390 37,10,7421760 0,D,16 0,A,-3382369 0,B,15121530 0,C,58 44,10D,16 48,104,41 22,20,103,-16,-23 0,21,-11,2,0 20,111,15 43,10,7421780 0,D,17 0,A,-3382369 0,B,15121529 0,C,58 41,10C,1234 44,10D,16 50,104,38 21,20,93,-34,-44 0,21,-13,2,0 20,111,15 25,10,7421800 0,D,17 0,A,-3382369 0,B,15121528 0,C,58 52,10C,1179 50,10D,16 78,20,103,-29,-49 0,21,-13,3,0 20,104,36 28,111,15 35,10C,1167 43,10D,16 46,104,38 28,20,101,-30,-45 0,21,-15,3,0 21,111,15 33,10C,1257 43,10D,16 50,104,38 29,111,16 25,20,100,-24,-44 0,21,-16,3,1 22,10C,1335 45,10D,17 50,104,36 34,111,15 33,10C,1363 44,20,93,-35,-58 0,21,-17,2,0 21,10D,17 48,104,33 34,111,15 29,10C,1347 46,10D,17 37,20,107,-24,-29 0,21,-18,4,0 18,10,7421900 0,D,16 0,A,-3382367 0,B,15121523 0,C,58 66,104,33 28,111,18 30,10C,1359 40,10,7421920 0,D,15 0,A,-3382367 0,B,15121522 0,C,58 41,10D,17 35,20,97,-26,-39 0,21,-18,3,0 20,104,45 29,111,18 29,10C,1523 43,10,7421940 0,D,15 0,A,-3382366 0,B,15121522 0,C,58 41,10D,17 41,20,75,-35,-54 0,21,-18,6,0 20,104,47 31,111,18 33,10C,1644 48,10D,17 47,104,45 22,20,104,-31,-44 0,21,-20,5,0 24,111,18 32,10C,1667 42,10D,17 57,104,42 29,111,16 23,20,97,-16,-56 0,21,-20,1,3 19,10C,1656 41,10D,17 46,104,38 23,10,7422000 0,D,15 0,A,-3382364 0,B,15121521 0,C,58 40,111,17 27,10C,1582 35,20,102,-27,-34 0,21,-21,3,1 21,10D,16 43,104,36 23,10,7422020 0,D,16 0,A,-3382363 0,B,15121521 0,C,58 40,111,16 29,10C,1531 43,10D,16 37,20,89,-40,-27 0,21,-21,4,-1 20,104,34 29,111,14 46,10C,1476 43,10D,16 47,104,29 22,20,97,-20,-30 0,21,-23,5,2 18,111,14 21,10,7422060 0,D,16 0,A,-3382361 0,B,15121521 0,C,58 60,10C,1343 51,10D,16 46,104,27 22,20,116,-23,-36 0,21,-22,4,1 21,111,14 38,10C,1265 47,10D,16 50,104,31 32,111,16 22,20,124,5,-19 0,21,-21,5,1 21,10C,1250 44,10D,16 50,104,40 34,111,16 36,10C,1386 35,20,93,-23,-52 0,21,-22,2,0 17,10,7422120 0,D,15 0,A,-3382359 0,B,15121522 0,C,58 66,10D,16 44,104,44 32,111,18 45,10C,1511 34,20,131,-23,-65 0,21,-22,6,5 21,10D,16 44,104,45 30,111,18 31,10C,1609 44,10D,16 38,20,99,-28,-23 0,21,-24,4,-1 21,104,45 31,111,18 39,10C,1648 56,10D,16 56,104,44 21,20,75,-41,-49 0,21,-24,4,2 25,111,18 28,10C,1652 46,10D,16 39,10,7422200 0,D,15 0,A,-3382358 0,B,15121525 0,C,58 41,104,43 24,20,110,-17,-35 0,21,-22,6,2 20,111,18 31,10C,1640 42,10D,17 40,10,7422220 0,D,14 0,A,-3382358 0,B,15121526 0,C,58 40,104,44 29,20,91,-20,-35 0,21,-21,4,2 20,111,18 31,10C,1648 46,10D,17 39,10,7422240 0,D,15 0,A,-3382358 0,B,15121527 0,C,58 41,104,45 25,20,110,-15,-34 0,21,-19,5,0 19,111,19 32,10C,1667 42,10D,17 40,10,7422260 0,D,15 0,A,-3382358 0,B,15121528 0,C,58 40,104,49 27,20,103,0,-21 0,21,-18,3,-1 25,111,19 32,10C,1718 43,10D,17 38,10,7422280 0,D,17 0,A,-3382358 0,B,15121529 0,C,58 41,104,49 28,20,75,-25,-29 0,21,-15,3,4 20,111,19 31,10C,1746 48,10D,19 37,10,7422300 0,D,18 0,A,-3382358 0,B,15121531 0,C,58 40,104,49 25,20,111,-5,-7 0,21,-13,1,6 20,111,19 31,10C,1707 43,10D,19 39,10,7422320 0,D,19 0,A,-3382359 0,B,15121532 0,C,58 40,104,52 29,111,21 21,20,71,-29,-14 0,21,-9,1,-2 21,10C,1671 43,10D,19 39,10,7422340 0,D,20 0,A,-3382359 0,B,15121533 0,C,58 41,104,60 27,111,20 31,10C,1714 35,20,118,0,-13 0,21,-6,0,0 22,10D,19 49,104,60 34,111,20 30,10C,1691 44,10D,22 37,20,112,-17,-40 0,21,-4,-5,1 20,104,60 29,111,20 31,10C,1644 43,10D,22 55,104,61 25,20,101,0,-16 0,21,-2,-3,0 20,111,20 20,10,7422400 0,D,22 0,A,-3382360 0,B,15121536 0,C,58 55,10C,1601 42,10D,22 49,104,62 34,20,135,1,-4 0,21,-1,0,-4 20,111,21 32,10C,1531 44,10D,22 50,104,64 29,111,21 26,20,99,-34,-18 0,21,-2,-1,-2 21,10C,1468 45,10D,26 50,104,66 34,111,21 32,10C,1429 34,20,107,-8,-13 0,21,0,0,-3 21,10D,26 48,104,67 34,111,21 30,10C,1347 46,10D,26 37,20,106,-19,0 0,21,0,1,1 15,10,7422480 0,D,28 0,A,-3382363 0,B,15121542 0,C,58 67,104,69 38,111,21 42,10C,1316 36,10,7422500 0,D,29 0,A,-3382363 0,B,15121544 0,C,58 40,10D,29 36,20,115,-4,3 0,21,0,0,0 19,104,64 28,111,16 32,10C,1304 37,10,7422520 0,D,30 0,A,-3382364 0,B,15121546 0,C,58 41,10D,29 44,104,47 21,20,87,-21,-9 0,21,0,0,0 20,111,15 29,10C,1316 44,10D,29 46,104,40 40,111,14 23,20,95,-25,-2 0,21,0,0,0 19,10C,1308 51,10,7422560 0,D,32 0,A,-3382365 0,B,15121549 0,C,58 40,10D,29 48,104,32 30,111,14 26,20,111,-32,0 0,21,1,0,-1 19,10C,1300 46,10D,31 48,104,29 29,111,13 31,10C,1273 43,20,81,-43,-5 0,21,1,0,-2 19,10D,31 50,104,25 33,111,12 30,10C,1261 43,10D,31 38,20,98,-15,-4 0,21,1,0,-1 19,104,23 28,111,12 34,10C,1238 44,10D,31 49,104,20 26,20,91,-43,-16 0,21,1,0,1 19,111,12 21,10,7422640 0,D,32 0,A,-3382367 0,B,15121557 0,C,58 55,10C,1191 45,10D,32 49,104,16 22,20,77,-47,0 0,21,0,0,0 20,111,11 29,10C,1171 43,10D,32 46,104,15 34,111,11 28,20,113,-30,-1 0,21,0,0,0 21,10C,1140 41,10D,32 50,104,15 35,111,11 42,10C,1121 35,20,106,-48,11 0,21,0,0,0 20,10D,32 48,104,14 30,111,11 31,10C,1109 45,10D,30 37,20,100,-48,-2 0,21,1,-1,0 22,104,14 32,111,11 34,10C,1105 43,10D,30 45,104,14 22,10,7422740 0,D,29 0,A,-3382369 0,B,15121566 0,C,58 41,111,11 20,20,106,-33,7 0,21,2,-1,0 19,10C,1113 45,10D,30 49,104,14 23,10,7422760 0,D,28 0,A,-3382369 0,B,15121568 0,C,58 41,111,11 23,20,91,-42,2 0,21,1,-1,0 21,10C,1171 41,10D,30 58,104,13 23,10,7422780 0,D,26 0,A,-3382370 0,B,15121569 0,C,58 40,111,11 20,20,103,-40,4 0,21,2,-1,0 24,10C,1179 45,10D,26 52,10,7422800 0,D,25 0,A,-3382370 0,B,15121571 0,C,58 40,104,13 28,111,11 22,20,91,-41,-7 0,21,2,0,0 19,10C,1175 44,10D,26 48,10,7422820 0,D,23 0,A,-3382370 0,B,15121572 0,C,58 39,104,13 33,111,12 22,20,87,-45,17 0,21,3,0,0 19,10C,1003 44,10D,26 51,104,20 35,111,12 38,10C,988 35,20,103,-39,18 0,21,5,-2,1 19,10D,26 46,104,21 35,111,11 25,10,7422860 0,D,23 0,A,-3382370 0,B,15121575 0,C,55 40,10C,984 37,20,91,-41,20 0,21,6,-2,0 20,10D,22 42,104,20 32,111,12 31,10C,937 43,10D,22 42,20,92,-48,12 0,21,5,-1,0 19,104,20 39,111,12 24,10,7422900 0,D,18 0,A,-3382370 0,B,15121577 0,C,55 40,10C,902 40,10D,22 48,20,89,-47,11 0,21,6,0,0 19,104,23 27,111,11 34,10,7422920 0,D,17 0,A,-3382370 0,B,15121578 0,C,55 41,10C,898 40,10D,18 43,20,93,-49,10 0,21,7,-1,-1 19,104,22 31,111,11 22,10,7422940 0,D,16 0,A,-3382370 0,B,15121579 0,C,55 41,10C,882 40,10D,18 50,104,22 22,20,97,-31,5 0,21,7,-2,0 18,111,12 33,10C,875 36,10,7422960 0,D,16 0,A,-3382370 0,B,15121580 0,C,55 40,10D,18 44,104,23 29,20,104,-28,5 0,21,7,-2,-1 24,111,12 20,10,7422980 0,D,14 0,A,-3382370 0,B,15121581 0,C,55 53,10C,878 39,10D,18 47,104,24 30,20,95,-39,16 0,21,8,-1,0 21,111,12 19,10,7423000 0,D,14 0,A,-3382369 0,B,15121581 0,C,55 55,10C,898 46,10D,15 49,104,24 21,20,103,-28,2 0,21,8,-3,-1 21,111,12 32,10C,910 43,10D,15 47,104,26 29,111,13 30,10C,953 35,20,111,-13,2 0,21,7,-3,0 15,10,7423040 0,D,13 0,A,-3382369 0,B,15121583 0,C,55 68,10D,15 43,104,31 28,111,15 24,10,7423060 0,D,12 0,A,-3382368 0,B,15121583 0,C,55 42,10C,1164 33,20,111,-18,-3 0,21,4,-1,0 23,10D,13 44,104,34 32,111,16 35,10C,1312 37,10,7423080 0,D,12 0,A,-3382368 0,B,15121584 0,C,54 40,10D,13 35,20,102,-22,-32 0,21,0,0,-1 20,104,40 30,111,17 41,10C,1441 46,10D,13 50,104,41 21,20,100,-17,-36 0,21,-2,0,0 20,111,17 31,10C,1511 36,10,7423120 0,D,12 0,A,-3382367 0,B,15121585 0,C,54 40,10D,13 44,104,40 30,111,18 22,20,100,-18,-10 0,21,-4,1,1 19,10C,1566 42,10D,13 50,104,42 34,111,17 30,10C,1585 47,20,106,-15,-12 0,21,-5,0,0 20,10D,13 48,104,41 30,111,18 34,10C,1574 46,10D,13 42,20,90,-18,-20 0,21,-7,1,2 20,104,43 32,111,18 31,10C,1589 43,10D,13 45,104,44 31,20,120,6,-15 0,21,-8,2,2 20,111,17 41,10C,1621 43,10D,15 46,104,42 29,111,18 21,20,106,-9,-19 0,21,-8,0,0 18,10,7423220 0,D,15 0,A,-3382366 0,B,15121589 0,C,54 65,10C,1593 41,10D,15 45,104,43 31,111,18 23,20,110,-12,-29 0,21,-8,2,0 20,10C,1585 41,10D,15 50,104,42 29,111,17 34,10C,1589 34,20,101,-21,-30 0,21,-8,1,0 16,10,7423260 0,D,16 0,A,-3382365 0,B,15121591 0,C,54 67,10D,15 44,104,43 30,111,18 23,10,7423280 0,D,17 0,A,-3382365 0,B,15121592 0,C,54 44,10C,1535 43,20,86,-28,-38 0,21,-7,1,0 19,10D,17 47,104,43 46,111,18 35,10C,1468 52,10D,17 38,20,103,-16,-32 0,21,-7,0,1 20,104,45 29,111,18 24,10,7423320 0,D,19 0,A,-3382365 0,B,15121594 0,C,54 42,10C,1421 44,10D,17 43,20,103,-6,-41 0,21,-6,1,0 18,104,47 27,111,17 24,10,7423340 0,D,19 0,A,-3382365 0,B,15121596 0,C,54 42,10C,1343 41,10D,19 49,104,49 21,20,105,-16,-19 0,21,-4,1,0 20,111,17 31,10C,1273 49,10D,19 50,104,51 33,111,17 22,20,103,-23,-16 0,21,-4,0,1 18,10C,1253 35,10,7423380 0,D,21 0,A,-3382365 0,B,15121598 0,C,54 44,10D,19 48,104,52 34,111,17 22,20,99,-7,-20 0,21,-2,0,0 18,10C,1234 35,10,7423400 0,D,21 0,A,-3382365 0,B,15121600 0,C,54 43,10D,19 57,104,54 34,111,18 22,20,116,-12,4 0,21,-1,1,0 19,10C,1218 34,10,7423420 0,D,21 0,A,-3382364 0,B,15121601 0,C,54 43,10D,22 48,104,55 33,111,18 25,20,69,-25,-11 0,21,0,1,-2 21,10C,1218 45,10D,22 50,104,55 34,111,18 33,10C,1234 34,20,130,-14,30 0,21,1,0,1 21,10D,22 48,104,53 30,111,18 34,10C,1230 46,10D,22 37,20,52,-47,22 0,21,3,2,3 25,104,53 33,111,17 30,10C,1242 43,10D,25 45,104,51 22,10,7423500 0,D,25 0,A,-3382364 0,B,15121607 0,C,54 41,111,14 20,20,113,-5,-8 0,21,2,1,-2 19,10C,1226 54,10D,25 49,104,37 23,10,7423520 0,D,25 0,A,-3382364 0,B,15121608 0,C,54 40,111,13 32,20,94,-26,0 0,21,2,-1,-4 20,10C,1226 40,10D,25 46,104,29 23,10,7423540 0,D,25 0,A,-3382363 0,B,15121610 0,C,54 40,111,13 31,10C,1230 35,20,148,7,-1 0,21,0,0,-2 20,10D,25 46,104,31 32,10,7423560 0,D,26 0,A,-3382363 0,B,15121611 0,C,54 40,111,17 32,10C,1250 35,20,132,-5,-15 0,21,1,0,0 24,10D,26 48,104,46 21,10,7423580 0,D,26 0,A,-3382363 0,B,15121613 0,C,54 41,111,18 32,10C,1343 35,20,94,-18,1 0,21,0,1,-3 19,10D,26 43,104,51 24,10,7423600 0,D,26 0,A,-3382362 0,B,15121615 0,C,54 40,111,18 27,10C,1281 47,10D,26 46,20,104,-26,0 0,21,0,-1,0 21,104,55 32,111,18 30,10C,1226 43,10D,26 46,104,58 28,20,70,-33,-5 0,21,-1,2,2 21,111,18 20,10,7423640 0,D,27 0,A,-3382361 0,B,15121618 0,C,54 55,10C,1242 41,10D,27 49,104,58 22,20,108,-28,-21 0,21,-1,0,3 20,111,18 39,10C,1242 43,10D,27 62,104,60 32,111,18 21,20,101,-21,-10 0,21,-1,0,0 21,10C,1250 41,10D,27 50,104,60 29,111,18 33,10C,1242 35,20,93,-22,-4 0,21,0,-1,0 20,10D,29 48,104,58 30,111,18 30,10C,1234 55,10D,29 38,20,95,-20,-17 0,21,-1,2,-1 17,10,7423720 0,D,30 0,A,-3382360 0,B,15121625 0,C,54 66,104,58 29,111,18 28,10C,1238 49,10D,29 36,20,109,-14,-13 0,21,0,-1,0 17,10,7423740 0,D,30 0,A,-3382359 0,B,15121627 0,C,51 67,104,57 31,111,18 27,10,7423760 0,D,31 0,A,-3382359 0,B,15121628 0,C,51 41,10C,1234 32,20,126,-16,-10 0,21,0,-2,-2 21,10D,29 54,104,57 32,111,18 32,10,7423780 0,D,31 0,A,-3382358 0,B,15121630 0,C,51 42,10C,1261 32,20,109,-6,-2 0,21,0,-1,0 20,10D,31 47,104,56 29,111,18 31,10C,1281 44,10D,31 38,20,94,-24,-2 0,21,0,-1,1 20,104,56 27,111,18 42,10C,1277 44,10D,31 51,104,56 21,20,97,-15,-17 0,21,-1,0,-4 21,111,18 27,10C,1269 43,10D,31 39,10,7423840 0,D,33 0,A,-3382357 0,B,15121636 0,C,51 40,104,56 32,111,18 22,20,126,7,-25 0,21,0,2,0 20,10C,1269 43,10D,33 40,10,7423860 0,D,33 0,A,-3382356 0,B,15121638 0,C,51 40,104,56 32,111,18 26,20,80,-40,-10 0,21,-1,1,-1 20,10C,1269 43,10D,33 40,10,7423880 0,D,34 0,A,-3382355 0,B,15121640 0,C,51 36,10,7423880 0,D,34 0,A,-3382355 0,B,15121640 0,C,51 56,104,56 19,20,106,-29,-19 0,21,-2,-1,-2 21,111,18 29,10C,1269 44,10D,33 51,104,56 42,111,18 22,20,145,7,-17 0,21,-2,-1,-2 19,10C,1257 52,10D,35 47,104,56 42,111,18 34,10C,1261 34,20,109,-19,-29 0,21,-1,2,2 21,10D,35 44,104,56 31,111,18 29,10C,1265 44,10D,35 37,20,63,-57,4 0,21,-2,-1,1 21,104,54 28,111,18 31,10C,1253 43,10D,35 46,104,55 29,111,18 25,20,103,-21,9 0,21,-2,0,0 21,10C,1261 45,10D,36 50,104,51 30,111,16 33,10C,1230 34,20,116,3,-37 0,21,-1,-2,0 21,10D,36 48,104,45 34,111,15 30,10C,1222 46,10D,36 47,20,109,-22,-13 0,21,-2,0,3 16,10,7424020 0,D,37 0,A,-3382351 0,B,15121655 0,C,51 67,104,40 37,111,14 33,10C,1222 47,20,115,-6,-29 0,21,-2,-1,-6 17,10,7424040 0,D,37 0,A,-3382350 0,B,15121657 0,C,51 66,10D,36 47,104,35 28,10,7424060 0,D,37 0,A,-3382350 0,B,15121659 0,C,51 41,111,14 20,20,95,-21,-16 0,21,-1,1,0 20,10C,1214 41,10D,37 45,104,33 31,111,13 26,10,7424080 0,D,38 0,A,-3382349 0,B,15121662 0,C,51 40,10C,1214 33,20,82,-40,-16 0,21,-1,-1,0 21,10D,37 47,104,26 33,111,12 22,10,7424100 0,D,38 0,A,-3382348 0,B,15121664 0,C,51 41,10C,1199 38,20,89,-23,-15 0,21,-2,0,1 19,10D,37 44,104,20 30,111,11 23,10,7424120 0,D,38 0,A,-3382348 0,B,15121666 0,C,51 40,10C,1183 47,20,110,-10,-5 0,21,0,0,-1 20,10D,37 47,104,16 34,111,11 21,10,7424140 0,D,38 0,A,-3382347 0,B,15121668 0,C,51 41,10C,1191 38,20,89,-25,1 0,21,-1,0,-1 20,10D,37 44,104,14 29,111,11 23,10,7424160 0,D,38 0,A,-3382347 0,B,15121671 0,C,51 44,10C,1195 42,10D,37 38,20,91,-38,-40 0,21,-1,1,0 19,104,13 31,111,11 23,10,7424180 0,D,38 0,A,-3382346 0,B,15121673 0,C,51 41,10C,1195 45,10D,37 42,20,99,-36,0 0,21,-2,2,0 18,104,13 31,111,11 23,10,7424200 0,D,37 0,A,-3382345 0,B,15121675 0,C,51 40,10C,1214 45,10D,36 43,20,118,-25,-45 0,21,-2,3,-2 19,104,12 26,111,11 31,10C,1222 44,10D,36 56,104,13 27,20,112,-7,-8 0,21,-2,1,0 18,111,11 31,10C,1222 36,10,7424240 0,D,37 0,A,-3382344 0,B,15121679 0,C,51 41,10D,36 48,104,12 27,20,94,-28,-37 0,21,-1,3,0 18,111,11 32,10C,1222 35,10,7424260 0,D,36 0,A,-3382344 0,B,15121681 0,C,51 41,10D,36 48,104,12 26,20,96,-27,-33 0,21,-1,0,1 19,111,11 31,10C,1226 35,10,7424280 0,D,36 0,A,-3382343 0,B,15121684 0,C,51 41,10D,35 66,104,12 21,20,94,-49,-14 0,21,-1,-1,2 19,111,11 33,10C,1226 48,10D,35 50,104,12 34,111,11 21,20,91,-45,-16 0,21,-1,1,-1 20,10C,1230 34,10,7424320 0,D,35 0,A,-3382342 0,B,15121688 0,C,51 44,10D,35 56,104,12 31,111,11 21,20,103,-38,-43 0,21,-2,2,-2 20,10C,1238 37,10,7424340 0,D,35 0,A,-3382342 0,B,15121690 0,C,51 41,10D,34 44,104,12 30,111,11 29,20,102,-1,20 0,21,-2,5,-3 19,10C,1230 34,10,7424360 0,D,34 0,A,-3382341 0,B,15121692 0,C,51 44,10D,34 44,104,12 30,111,11 32,10C,1250 34,20,69,-82,-17 0,21,0,0,-1 22,10D,34 48,104,12 34,111,11 29,10C,1242 46,10D,34 37,20,112,-36,-23 0,21,0,0,6 18,10,7424400 0,D,33 0,A,-3382340 0,B,15121696 0,C,51 65,104,12 29,111,14 33,10C,1269 44,10D,33 47,20,111,-9,6 0,21,0,1,-2 20,104,23 41,111,14 46,10C,1261 44,10D,33 51,104,29 22,20,111,-15,-7 0,21,-1,1,-3 24,111,16 28,10C,1289 45,10D,33 52,104,33 33,111,15 22,20,129,2,-11 0,21,0,1,-1 20,10C,1257 44,10D,33 47,10,7424480 0,D,32 0,A,-3382338 0,B,15121703 0,C,51 41,104,35 31,111,14 23,20,96,-23,8 0,21,0,0,0 19,10C,1214 41,10D,32 46,104,34 22,10,7424500 0,D,32 0,A,-3382338 0,B,15121705 0,C,51 41,111,14 28,10C,1218 35,20,99,-19,-9 0,21,0,-1,0 20,10D,32 43,104,33 22,10,7424520 0,D,32 0,A,-3382337 0,B,15121707 0,C,51 41,111,14 28,10C,1218 49,20,101,-14,-5 0,21,-1,0,-1 19,10D,32 48,104,29 22,10,7424540 0,D,32 0,A,-3382337 0,B,15121709 0,C,51 38,111,12 29,10C,1210 47,10D,31 37,20,96,-21,-19 0,21,-1,0,0 20,104,24 32,111,13 35,10C,1214 43,10D,31 46,104,24 24,20,117,-10,-16 0,21,-1,-1,0 21,111,13 20,10,7424580 0,D,31 0,A,-3382336 0,B,15121713 0,C,51 56,10C,1277 44,10D,31 49,104,24 21,20,114,-10,12 0,21,-1,1,-2 22,111,13 28,10C,1304 43,10D,31 47,104,24 33,111,13 29,20,101,-29,-27 0,21,-2,0,2 17,10,7424620 0,D,31 0,A,-3382335 0,B,15121716 0,C,51 66,10C,1292 42,10D,30 58,104,24 22,20,97,-22,-11 0,21,-1,1,1 24,111,14 34,10C,1261 43,10D,30 54,104,25 32,111,14 23,20,118,-15,15 0,21,-1,0,1 20,10C,1246 57,10D,30 50,104,27 29,111,14 33,10C,1207 35,20,108,-12,-23 0,21,-1,0,1 16,10,7424680 0,D,31 0,A,-3382333 0,B,15121722 0,C,51 67,10D,30 43,104,27 33,111,14 35,10C,1199 34,20,105,-17,-13 0,21,-1,-2,0 18,10,7424700 0,D,31 0,A,-3382333 0,B,15121724 0,C,55 64,10D,30 47,104,27 31,111,13 35,10C,1203 35,20,106,-12,-29 0,21,-2,0,-1 20,10D,30 44,104,24 41,111,12 24,10,7424740 0,D,30 0,A,-3382332 0,B,15121727 0,C,55 40,10C,1195 37,20,107,-14,6 0,21,-1,0,0 19,10D,30 47,104,20 33,111,11 23,10,7424760 0,D,30 0,A,-3382332 0,B,15121729 0,C,55 40,10C,1273 38,20,77,-30,6 0,21,-1,-1,0 20,10D,30 47,104,15 28,111,11 24,10,7424780 0,D,30 0,A,-3382331 0,B,15121731 0,C,55 41,10C,1253 41,10D,30 38,20,116,-13,24 0,21,0,2,-1 19,104,13 30,111,11 35,10C,1261 54,10D,30 50,104,12 22,20,100,-33,-16 0,21,-1,-1,-1 19,111,11 43,10C,1242 36,10,7424820 0,D,29 0,A,-3382330 0,B,15121734 0,C,55 39,10D,30 44,104,12 23,20,92,-32,-21 0,21,-1,-2,-1 19,111,11 39,10,7424840 0,D,28 0,A,-3382330 0,B,15121736 0,C,55 39,10C,1207 41,10D,29 50,104,12 21,20,108,-22,-5 0,21,0,0,0 20,111,11 29,10C,1191 34,10,7424860 0,D,28 0,A,-3382330 0,B,15121737 0,C,55 40,10D,29 44,104,13 30,111,11 22,20,96,-34,-13 0,21,-1,-2,1 19,10C,1207 34,10,7424880 0,D,27 0,A,-3382329 0,B,15121739 0,C,55 42,10D,29 45,104,13 30,111,11 32,10C,1191 34,20,70,-43,22 0,21,0,0,-1 22,10D,29 47,104,13 35,111,11 29,10C,1179 45,10D,26 38,20,106,-32,-16 0,21,0,0,0 22,104,13 31,111,11 34,10C,1171 46,10D,26 56,104,13 30,20,95,-30,-10 0,21,-1,0,0 21,111,11 32,10C,1156 44,10D,26 45,104,13 30,111,11 28,20,79,-45,-25 0,21,-1,0,0 19,10C,1097 42,10D,26 46,104,15 32,111,12 35,10C,1074 35,20,94,-35,12 0,21,-1,0,-1 20,10D,23 48,104,16 31,111,11 28,10C,1011 48,10D,23 46,20,106,-25,-16 0,21,-1,0,0 17,10,7425000 0,D,27 0,A,-3382327 0,B,15121748 0,C,55 67,104,17 27,111,12 31,10C,925 44,10D,23 38,20,117,-20,-19 0,21,-1,0,0 20,104,20 27,111,11 45,10C,906 44,10D,23 56,104,20 21,20,88,-37,-20 0,21,-1,-1,2 21,111,11 30,10C,875 45,10,7425060 0,D,20 0,A,-3382326 0,B,15121751 0,C,55 40,10D,20 45,104,20 21,20,85,-46,-6 0,21,0,0,0 21,111,11 27,10C,847 43,10D,20 38,10,7425080 0,D,19 0,A,-3382326 0,B,15121752 0,C,55 41,104,21 28,111,11 21,20,90,-39,-10 0,21,-1,0,0 20,10C,816 43,10D,20 40,10,7425100 0,D,18 0,A,-3382326 0,B,15121753 0,C,55 39,104,21 32,111,11 27,20,96,-36,-9 0,21,-1,0,0 19,10C,796 43,10D,17 40,10,7425120 0,D,17 0,A,-3382325 0,B,15121754 0,C,55 40,104,22 28,111,11 31,20,98,-27,-13 0,21,0,0,0 19,10C,785 43,10D,17 39,10,7425140 0,D,16 0,A,-3382325 0,B,15121755 0,C,55 45,104,22 41,111,11 21,20,96,-33,-17 0,21,-1,0,0 21,10C,792 40,10D,17 38,10,7425160 0,D,15 0,A,-3382325 0,B,15121756 0,C,55 41,104,22 27,111,11 36,20,102,-36,-20 0,21,-1,0,0 20,10C,792 40,10D,17 39,10,7425180 0,D,15 0,A,-3382325 0,B,15121757 0,C,55 40,104,22 65,20,94,-33,-5 0,21,0,0,0 18,111,11 31,10C,808 36,10,7425200 0,D,14 0,A,-3382324 0,B,15121758 0,C,55 40,10D,14 45,104,22 30,111,11 21,20,91,-32,-13 0,21,-1,0,0 19,10C,804 46,10D,14 50,104,22 34,111,11 29,10C,812 38,20,99,-25,-4 0,21,-1,0,0 22,10D,14 36,10,7425240 0,D,12 0,A,-3382324 0,B,15121759 0,C,55 40,104,21 40,111,11 34,10C,824 34,20,109,-24,-7 0,21,-1,0,0 21,10D,12 45,104,21 30,111,12 30,10C,828 46,10D,12 38,20,99,-27,-17 0,21,-2,0,0 20,104,23 32,111,12 34,10C,839 47,10D,12 48,104,24 22,20,100,-29,-23 0,21,-1,0,0 21,111,12 32,10C,878 46,10D,12 49,104,25 36,111,12 23,20,93,-28,-15 0,21,-1,0,0 16,10,7425320 0,D,10 0,A,-3382324 0,B,15121762 0,C,55 67,10C,929 44,10D,11 48,104,25 27,20,101,-26,-9 0,21,-1,0,0 25,111,12 28,10C,980 47,10D,11 58,104,25 30,111,13 21,20,89,-28,-8 0,21,-2,0,0 17,10,7425360 0,D,10 0,A,-3382323 0,B,15121763 0,C,55 66,10C,1019 51,10D,11 50,104,26 21,20,102,-24,-1 0,21,-1,0,0 15,10,7425380 0,D,9 0,A,-3382323 0,B,15121764 0,C,55 68,111,13 32,10C,1066 42,10D,9 43,20,107,-13,-15 0,21,-2,0,-1 20,104,26 28,111,13 31,10C,1117 43,10D,9 48,104,25 33,20,92,-34,-16 0,21,-1,0,0 18,10,7425420 0,D,9 0,A,-3382323 0,B,15121765 0,C,55 65,111,13 32,10C,1148 45,10D,9 43,20,96,-26,-23 0,21,-1,0,0 21,104,25 36,111,13 30,10C,1171 55,10D,9 51,104,24 21,20,93,-23,-15 0,21,-1,0,0 17,10,7425460 0,D,9 0,A,-3382323 0,B,15121766 0,C,56 66,111,12 31,10C,1156 43,10D,8 38,10,7425480 0,D,9 0,A,-3382323 0,B,15121766 0,C,56 41,104,20 19,20,98,-30,-8 0,21,-1,-1,0 20,111,12 28,10C,1031 45,10D,8 39,10,7425500 0,D,8 0,A,-3382323 0,B,15121767 0,C,56 41,104,20 28,111,11 21,20,106,-31,-17 0,21,-2,0,0 21,10C,976 39,10D,8 46,104,20 35,111,12 29,10C,937 35,20,89,-32,-7 0,21,-1,1,0 20,10D,8 45,104,22 36,111,12 23,10,7425540 0,D,8 0,A,-3382323 0,B,15121768 0,C,55 44,10C,917 33,20,96,-40,-10 0,21,-1,0,-1 19,10D,8 53,104,24 31,10,7425560 0,D,7 0,A,-3382323 0,B,15121768 0,C,55 41,111,12 28,10C,871 35,20,100,-32,-11 0,21,-1,0,0 19,10D,8 52,10,7425580 0,D,6 0,A,-3382322 0,B,15121769 0,C,55 40,104,25 29,111,12 31,10C,832 34,20,101,-32,-13 0,21,-1,0,0 19,10D,8 47,104,26 23,10,7425600 0,D,5 0,A,-3382322 0,B,15121769 0,C,55 40,111,12 31,10C,753 40,20,101,-39,-11 0,21,-1,0,0 20,10D,6 47,104,30 21,10,7425620 0,D,4 0,A,-3382322 0,B,15121769 0,C,55 45,111,12 32,10C,738 35,20,98,-39,-15 0,21,-1,0,0 19,10D,6 48,104,29 21,10,7425640 0,D,2 0,A,-3382322 0,B,15121769 0,C,55 41,111,12 32,10C,734 39,20,99,-37,-12 0,21,-1,0,0 19,10D,6 46,10,7425660 0,D,1 0,A,-3382322 0,B,15121769 0,C,55 41,104,29 28,111,12 31,10C,726 38,20,101,-29,-13 0,21,-1,0,0 19,10D,6 44,104,30 21,10,7425680 0,D,0 0,A,-3382322 0,B,15121770 0,C,55 41,111,12 32,10C,718 43,10D,2 37,20,96,-21,-17 0,21,-1,-1,0 18,104,37 22,10,7425700 0,D,0 0,A,-3382322 0,B,15121770 0,C,55 55,111,13 32,10C,722 47,10D,2 37,20,98,-25,-13 0,21,-1,0,0 20,104,41 29,111,13 34,10C,851 47,10D,2 48,104,36 22,20,104,-18,-9 0,21,-1,0,0 21,111,13 37,10C,968 47,10D,2 49,104,32 32,111,12 32,20,100,-22,-16 0,21,-1,0,0 20,10C,1015 45,10D,0 49,104,30 30,111,13 32,10C,941 35,20,95,-31,-20 0,21,-1,0,0 20,10D,0 44,104,34 30,111,13 34,10C,828 45,10D,0 49,20,97,-26,-12 0,21,-2,0,0 17,10,7425800 0,D,0 0,A,-3382322 0,B,15121770 0,C,55 66,104,38 27,111,13 32,10C,804 44,10D,0 38,20,90,-34,-16 0,21,-2,0,0 20,104,40 27,111,13 31,10C,835 44,10D,0 51,104,37 27,20,101,-20,-17 0,21,-3,0,-1 20,111,12 32,10C,839 45,10D,0 43,10,7425860 0,D,1 0,A,-3382322 0,B,15121769 0,C,55 41,104,37 29,20,96,-35,13 0,21,-2,0,0 20,111,12 32,10C,812 45,10D,0 50,104,36 24,10,7425880 0,D,1 0,A,-3382322 0,B,15121769 0,C,56 41,111,12 19,20,102,-18,-11 0,21,-3,0,0 20,10C,777 41,10D,0 42,10,7425900 0,D,1 0,A,-3382322 0,B,15121769 0,C,56 41,104,36 31,111,12 27,20,96,-23,-13 0,21,-3,0,0 19,10C,761 44,10D,0 51,104,37 34,111,12 34,10C,800 35,20,108,-16,-11 0,21,-4,0,0 19,10D,0 62,104,34 22,10,7425940 0,D,1 0,A,-3382322 0,B,15121769 0,C,56 40,111,12 32,10C,851 46,20,108,-18,-13 0,21,-4,0,0 20,10D,0 44,104,31 21,10,7425960 0,D,1 0,A,-3382322 0,B,15121769 0,C,56 41,111,12 37,10C,847 39,20,97,-24,-14 0,21,-3,0,0 19,10D,0 40,10,7425980 0,D,1 0,A,-3382322 0,B,15121769 0,C,56 41,104,29 32,111,12 30,10C,812 40,20,102,-21,-11 0,21,-4,0,0 18,10D,0 40,10,7430000 0,D,1 0,A,-3382322 0,B,15121769 0,C,56 41,104,30 32,111,14 33,10C,789 39,20,100,-26,-10 0,21,-4,0,0 19,10D,0 44,104,36 35,111,12 34,10C,800 42,10D,0 38,20,100,-23,-7 0,21,-3,0,-1 20,104,36 28,111,12 31,10C,839 47,10D,1 49,104,34 26,20,103,-22,-12 0,21,-3,0,0 18,111,12 29,10C,839 44,10D,1 46,104,33 39,111,12 26,20,98,-21,-8 0,21,-2,0,0 18,10C,847 41,10D,1 46,104,29 31,111,12 42,10C,816 34,20,99,-19,-8 0,21,-2,0,0 20,10D,1 36,10,7430100 0,D,2 0,A,-3382323 0,B,15121768 0,C,56 41,104,29 32,111,12 29,10C,769 42,20,101,-16,-12 0,21,-1,0,0 21,10D,2 36,10,7430120 0,D,2 0,A,-3382323 0,B,15121768 0,C,56 40,104,29 31,111,12 31,10C,722 41,20,98,-17,-12 0,21,-1,0,1 25,10D,2 49,104,29 30,111,12 29,10C,691 46,10D,2 37,20,102,-22,-10 0,21,0,0,0 21,104,30 31,111,12 35,10C,683 55,10D,2 54,104,30 21,20,98,-24,-12 0,21,0,0,0 17,10,7430180 0,D,1 0,A,-3382323 0,B,15121768 0,C,56 66,111,12 32,10C,703 42,10D,2 43,20,100,-23,-11 0,21,1,0,0 21,104,31 28,111,12 30,10C,726 47,10D,2 47,104,29 28,20,103,-18,-12 0,21,1,0,0 21,111,11 32,10C,761 46,10D,2 49,104,27 29,111,11 23,10,7430240 0,D,2 0,A,-3382322 0,B,15121768 0,C,56 40,10C,746 33,20,106,-14,-16 0,21,1,-1,0 24,10D,2 47,104,26 36,111,11 34,10C,703 36,10,7430260 0,D,2 0,A,-3382322 0,B,15121767 0,C,57 40,10D,2 36,20,105,-22,-16 0,21,0,-1,0 19,104,26 36,111,13 24,10,7430280 0,D,2 0,A,-3382322 0,B,15121767 0,C,57 41,10C,671 41,10D,2 42,20,97,-22,-16 0,21,0,0,0 19,104,32 30,111,12 35,10C,667 46,10,7430300 0,D,2 0,A,-3382322 0,B,15121767 0,C,57 40,10D,2 36,20,102,-18,-15 0,21,0,0,0 19,104,32 27,111,12 34,10,7430320 0,D,1 0,A,-3382322 0,B,15121767 0,C,57 40,10C,753 41,10D,2 42,20,101,-16,-13 0,21,0,0,0 19,104,30 32,111,12 26,10,7430340 0,D,2 0,A,-3382322 0,B,15121767 0,C,57 40,10C,753 41,10D,2 42,20,102,-18,-17 0,21,-1,0,0 18,104,29 31,111,12 23,10,7430360 0,D,2 0,A,-3382322 0,B,15121767 0,C,57 40,10C,750 41,10D,2 46,104,29 21,20,101,-16,-12 0,21,-1,0,0 19,111,11 42,10C,757 42,10D,2 46,104,27 33,111,11 22,20,104,-16,-13 0,21,-1,0,0 18,10C,746 34,10,7430400 0,D,2 0,A,-3382322 0,B,15121766 0,C,57 44,10D,2 48,104,26 30,111,11 29,10C,707 34,20,99,-19,-12 0,21,-1,0,0 20,10D,2 48,104,29 34,111,12 30,10C,664 45,10D,2 37,20,99,-22,-9 0,21,-1,0,0 21,10,7430440 0,D,1 0,A,-3382322 0,B,15121766 0,C,57 62,104,31 38,111,12 32,10C,734 43,10D,2 37,20,107,-17,-12 0,21,0,0,0 17,10,7430460 0,D,1 0,A,-3382322 0,B,15121766 0,C,57 67,104,31 31,111,12 29,10C,738 44,10,7430480 0,D,2 0,A,-3382322 0,B,15121766 0,C,57 41,10D,2 35,20,100,-18,-10 0,21,0,0,0 20,104,30 30,111,12 31,10C,738 34,10,7430500 0,D,1 0,A,-3382322 0,B,15121766 0,C,57 41,10D,2 44,104,29 21,20,106,-11,-15 0,21,0,0,0 20,111,11 31,10C,769 35,10,7430520 0,D,2 0,A,-3382322 0,B,15121766 0,C,57 44,10D,2 49,104,26 21,20,107,-10,-16 0,21,0,0,0 20,111,11 29,10C,761 37,10,7430540 0,D,1 0,A,-3382322 0,B,15121766 0,C,57 40,10D,1 47,104,25 27,20,104,-10,-14 0,21,0,0,0 18,111,11 41,10,7430560 0,D,1 0,A,-3382322 0,B,15121766 0,C,57 41,10C,718 41,10D,1 46,104,25 22,20,99,-24,-48 0,21,-1,-2,1 19,111,11 32,10C,671 43,10,7430580 0,D,0 0,A,-3382322 0,B,15121765 0,C,57 41,10D,1 44,104,29 21,20,99,-61,-20 0,21,-1,0,1 20,111,13 32,10C,632 33,10,7430600 0,D,0 0,A,-3382322 0,B,15121765 0,C,57 41,10D,0 47,104,35 27,20,100,-24,-11 0,21,-1,0,0 19,111,12 28,10C,695 35,10,7430620 0,D,0 0,A,-3382322 0,B,15121765 0,C,57 41,10D,0 44,104,36 30,111,13 21,20,102,-18,-19 0,21,-1,0,0 19,10C,738 33,10,7430640 0,D,0 0,A,-3382322 0,B,15121765 0,C,57 44,10D,0 44,104,40 30,111,13 29,10C,792 34,20,101,-18,-15 0,21,-1,0,1 21,10D,0 47,104,38 34,111,12 30,10C,820 45,10D,0 37,20,91,-23,-14 0,21,-1,0,0 21,104,37 37,111,12 40,10C,804 46,10D,0 42,10,7430700 0,D,0 0,A,-3382322 0,B,15121765 0,C,57 41,104,36 31,20,92,-25,-10 0,21,0,0,0 23,111,12 33,10C,804 42,10D,0 46,104,36 31,111,12 26,20,102,-14,-14 0,21,0,0,0 21,10C,796 40,10D,0 45,104,36 23,10,7430740 0,D,1 0,A,-3382322 0,B,15121765 0,C,57 41,111,12 32,10C,828 35,20,105,-10,-12 0,21,0,0,-1 19,10D,0 46,104,32 28,10,7430760 0,D,1 0,A,-3382322 0,B,15121765 0,C,57 41,111,12 32,10C,812 35,20,101,-16,-12 0,21,0,0,0 19,10D,0 46,104,32 28,10,7430780 0,D,2 0,A,-3382322 0,B,15121766 0,C,57 40,111,14 42,10C,789 34,20,95,-21,-15 0,21,0,0,0 19,10D,0 46,104,37 31,111,12 35,10C,839 43,10D,0 36,20,109,-12,-13 0,21,0,0,0 33,104,34 31,111,12 23,10,7430820 0,D,2 0,A,-3382322 0,B,15121766 0,C,57 40,10C,851 41,10D,1 37,20,105,-16,-16 0,21,0,0,1 20,104,32 29,111,11 32,10C,843 43,10D,1 46,104,29 30,20,95,-27,-12 0,21,-1,0,0 19,111,11 30,10C,808 44,10D,1 45,104,26 31,111,11 30,10C,769 33,20,101,-24,-13 0,21,-1,0,0 20,10D,1 49,104,25 34,111,11 39,10C,726 46,10D,2 37,20,99,-22,-12 0,21,-1,0,0 20,104,25 33,111,11 34,10C,691 46,10D,2 49,104,25 34,20,102,-19,-11 0,21,-1,0,0 20,111,11 32,10C,671 43,10D,2 45,104,25 36,111,11 26,20,98,-19,-14 0,21,-1,0,0 22,10C,660 41,10D,2 45,104,26 31,111,11 28,10C,652 34,20,107,-15,-16 0,21,-1,0,0 22,10D,2 43,104,26 30,111,11 34,10C,652 41,10D,2 38,20,99,-21,-14 0,21,-1,0,0 21,104,27 28,111,11 30,10C,652 55,10D,2 49,104,27 23,20,102,-20,-12 0,21,-1,0,0 15,10,7431000 0,D,2 0,A,-3382322 0,B,15121767 0,C,57 68,111,11 28,10C,660 46,10D,2 43,20,99,-22,-11 0,21,-1,0,0 20,104,27 28,111,11 33,10C,667 48,10D,2 49,104,26 30,20,99,-23,-11 0,21,-1,0,0 17,10,7431040 0,D,2 0,A,-3382321 0,B,15121768 0,C,57 66,111,11 33,10C,660 41,10D,2 49,20,101,-22,-17 0,21,-1,0,0 22,104,26 32,111,11 33,10C,656 46,10D,2 51,104,26 21,20,102,-22,-13 0,21,-1,0,0 17,10,7431080 0,D,2 0,A,-3382321 0,B,15121768 0,C,58 67,111,11 38,10C,656 40,10,7431100 0,D,2 0,A,-3382321 0,B,15121768 0,C,58 40,10D,2 36,20,100,-20,-11 0,21,-1,0,0 19,104,26 29,111,11 33,10C,664 39,10,7431120 0,D,2 0,A,-3382321 0,B,15121768 0,C,58 41,10D,2 40,20,103,-17,-12 0,21,-1,0,0 21,104,26 32,111,11 29,10C,656 39,10,7431140 0,D,1 0,A,-3382321 0,B,15121768 0,C,58 45,10D,2 36,20,101,-22,-8 0,21,-1,0,0 20,104,26 31,111,11 37,10C,656 43,10D,2 40,10,7431160 0,D,1 0,A,-3382321 0,B,15121768 0,C,58 39,104,27 29,20,97,-27,-11 0,21,0,0,0 20,111,11 33,10C,660 44,10D,2 49,104,26 34,111,11 22,20,103,-18,-13 0,21,-1,0,0 20,10C,667 50,10D,2 38,10,7431200 0,D,1 0,A,-3382321 0,B,15121769 0,C,58 39,104,26 32,111,11 21,20,99,-22,-12 0,21,0,0,0 21,10C,667 42,10D,2 38,10,7431220 0,D,1 0,A,-3382321 0,B,15121769 0,C,58 40,104,26 28,111,11 31,20,101,-23,-12 0,21,-1,0,0 19,10C,671 43,10D,1 39,10,7431240 0,D,1 0,A,-3382321 0,B,15121769 0,C,58 40,104,26 28,111,11 29,10C,675 35,20,101,-25,-11 0,21,-1,0,0 20,10D,1 44,104,26 30,111,11 30,10C,679 47,10D,1 37,20,101,-28,-13 0,21,-1,0,0 20,104,26 21,10,7431280 0,D,1 0,A,-3382321 0,B,15121769 0,C,58 53,111,11 28,10C,683 43,10D,1 49,20,99,-30,-15 0,21,-1,0,0 22,104,26 38,111,11 33,10C,683 43,10D,0 45,104,25 22,20,103,-15,-13 0,21,-1,0,0 20,111,11 30,10C,679 43,10D,0 45,104,25 30,111,11 33,10C,667 33,20,101,-22,-11 0,21,-1,0,0 18,10,7431340 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 64,10D,0 47,104,25 29,111,12 32,10C,652 34,20,103,-19,-34 0,21,-1,-1,0 21,10D,0 43,104,28 31,111,12 32,10C,621 44,10D,0 36,20,105,-10,40 0,21,0,0,0 18,10,7431380 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 64,104,29 31,111,11 31,10C,640 35,10,7431400 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 39,10D,0 45,20,102,-19,-13 0,21,-1,0,0 19,104,29 31,111,11 30,10C,683 34,10,7431420 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 40,10D,0 49,20,104,-20,-16 0,21,-1,0,0 20,104,27 31,111,11 30,10,7431440 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 54,10C,722 41,10D,0 37,20,103,-21,-13 0,21,-1,0,0 20,104,24 30,111,11 34,10C,757 37,10,7431460 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 39,10D,0 40,20,102,-19,-15 0,21,-1,0,0 20,104,23 49,10,7431480 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 134,20,102,-21,-11 0,21,-1,0,0 67,10,7431500 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 133,20,100,-22,-12 0,21,-1,0,0 67,10,7431520 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 136,20,100,-24,-12 0,21,-1,0,0 68,10,7431540 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 135,20,100,-22,-12 0,21,-1,0,0 65,10,7431560 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 135,20,100,-24,0 0,21,-1,0,0 64,10,7431580 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 140,20,99,-23,-15 0,21,-1,0,0 60,10,7431600 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 142,20,98,-23,-14 0,21,-1,0,0 54,10,7431620 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 147,20,101,-21,-12 0,21,-1,0,0 56,10,7431640 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 144,20,101,-20,-13 0,21,-1,0,0 56,10,7431660 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 146,20,101,-20,-13 0,21,-1,0,0 54,10,7431680 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 146,20,101,-21,-13 0,21,-1,0,0 53,10,7431700 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 148,20,100,-21,-13 0,21,-1,0,0 49,10,7431720 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 154,20,101,-21,-13 0,21,-1,0,0 50,10,7431740 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 153,20,101,-21,-12 0,21,-1,0,0 46,10,7431760 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 154,20,101,-20,-12 0,21,-1,0,0 46,10,7431780 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 157,20,102,-20,-12 0,21,-1,0,0 43,10,7431800 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 159,20,101,-20,-12 0,21,-1,0,0 39,10,7431820 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 163,20,102,-21,-12 0,21,-1,0,0 37,10,7431840 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 166,20,101,-20,-13 0,21,-1,0,0 39,10,7431860 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 163,20,101,-21,-14 0,21,-1,0,0 36,10,7431880 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 166,20,102,-20,-13 0,21,-1,0,0 32,10,7431900 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 170,20,102,-18,-16 0,21,-1,0,0 36,10,7431920 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 166,20,99,-22,-15 0,21,-1,0,0 26,10,7431940 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 176,20,101,-20,-14 0,21,-1,0,0 25,10,7431960 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 176,20,102,-21,-13 0,21,-1,0,0 26,10,7431980 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 175,20,101,-21,-13 0,21,-1,0,0 26,10,7432000 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 176,20,101,-20,-13 0,21,-1,0,0 22,10,7432020 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 178,20,101,-21,-13 0,21,-1,0,0 23,10,7432040 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 179,20,98,-22,-9 0,21,-1,0,0 19,10,7432060 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 182,20,100,-25,-9 0,21,-1,0,0 22,10,7432080 0,D,0 0,A,-3382321 0,B,15121769 0,C,58 179,20,98,-22,-20 0,21,-1,0,0 22,10,7432100 0,D,0 0,A,-3382321 0,B,15121770 0,C,58 179,20,101,-21,-13 0,21,-1,0,0 19,10,7432120 0,D,0 0,A,-3382321 0,B,15121770 0,C,58 182,20,101,-20,-14 0,21,-1,0,0 23,10,7432140 0,D,0 0,A,-3382321 0,B,15121770 0,C,58 179,20,101,-22,-12 0,21,-1,0,0 45,10,7432160 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 159,20,101,-21,-14 0,21,-1,0,0 15,10,7432180 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 185,20,101,-20,-13 0,21,-1,0,0 15,10,7432200 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 189,20,102,-20,-13 0,21,-1,0,0 34,10,7432220 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 167,20,101,-21,-13 0,21,-1,0,0 14,10,7432240 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 186,20,101,-21,-12 0,21,-1,0,0 15,10,7432260 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 187,20,101,-21,-12 0,21,-1,0,0 13,10,7432280 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 187,20,102,-20,-13 0,21,-1,0,0 14,10,7432300 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 188,20,97,-20,-11 0,21,-1,0,0 13,10,7432320 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 190,20,100,-21,-12 0,21,0,0,0 14,10,7432340 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 188,20,102,-20,-11 0,21,-1,0,0 13,10,7432360 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 189,20,100,-21,-14 0,21,-1,0,0 13,10,7432380 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 185,10,7432400 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 40,20,101,-21,-13 0,21,-1,0,0 163,10,7432420 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 37,20,101,-21,-13 0,21,-1,0,0 160,10,7432440 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 41,20,101,-20,-11 0,21,-1,0,0 163,10,7432460 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 41,20,102,-20,-13 0,21,-1,0,0 158,10,7432480 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 42,20,101,-21,-13 0,21,-1,0,0 159,10,7432500 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 41,20,101,-20,-13 0,21,-1,0,0 159,10,7432520 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 41,20,100,-21,-14 0,21,-1,0,0 158,10,7432540 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 42,20,101,-21,-12 0,21,-1,0,0 159,10,7432560 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 42,20,101,-20,-12 0,21,-1,0,0 155,10,7432580 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 45,20,101,-22,-14 0,21,-1,0,0 155,10,7432600 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 45,20,101,-20,-11 0,21,-1,0,0 152,10,7432620 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 49,20,101,-20,-13 0,21,-1,0,0 155,10,7432640 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 45,20,101,-20,-12 0,21,-1,0,0 154,10,7432660 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 50,20,101,-20,-13 0,21,-1,0,0 150,10,7432680 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 53,20,100,-21,-12 0,21,-1,0,0 151,10,7432700 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 49,20,101,-21,-13 0,21,-1,0,0 149,10,7432720 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 52,20,101,-21,-13 0,21,-1,0,0 147,10,7432740 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 53,20,101,-21,-14 0,21,-1,0,0 148,10,7432760 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 52,20,99,-24,-14 0,21,-1,0,0 147,10,7432780 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 53,20,101,-20,-12 0,21,-1,0,0 150,10,7432800 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 54,20,101,-21,-13 0,21,-1,0,0 147,10,7432820 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 56,20,93,-35,-30 0,21,-1,-1,1 144,10,7432840 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 57,20,102,-18,-13 0,21,-1,0,0 143,10,7432860 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 57,20,102,-21,-13 0,21,-1,0,0 140,10,7432880 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 60,20,101,-21,-13 0,21,-1,0,0 143,10,7432900 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 57,20,101,-20,-12 0,21,-1,0,0 143,10,7432920 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 57,20,101,-20,-13 0,21,-1,0,0 144,10,7432940 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 57,20,101,-20,-13 0,21,-1,0,0 203,20,101,-20,-12 0,21,-1,0,0 140,10,7432980 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 60,20,102,-21,-12 0,21,-1,0,0 139,10,7433000 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 61,20,101,-20,-13 0,21,-1,0,0 140,10,7433020 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 63,20,101,-20,-13 0,21,-1,0,0 137,10,7433040 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 63,20,102,-21,-12 0,21,-1,0,0 133,10,7433060 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 68,20,101,-21,-14 0,21,-1,0,0 132,10,7433080 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 69,20,102,-20,-12 0,21,-1,0,0 132,10,7433100 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 71,20,101,-20,-14 0,21,-1,0,0 132,10,7433120 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 68,20,102,-21,-13 0,21,-1,0,0 129,10,7433140 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 72,20,101,-20,-12 0,21,-1,0,0 128,10,7433160 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 75,20,102,-21,-11 0,21,-1,0,0 125,10,7433180 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 75,20,101,-20,-13 0,21,-1,0,0 125,10,7433200 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 76,20,105,-21,-7 0,21,-1,0,0 125,10,7433220 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 76,20,103,-18,-13 0,21,-1,0,0 128,10,7433240 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 74,20,101,-20,-14 0,21,-1,0,0 125,10,7433260 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 76,20,101,-20,-13 0,21,-1,0,0 124,10,7433280 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 76,20,100,-20,-11 0,21,-1,0,0 121,10,7433300 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 82,20,102,-20,-13 0,21,-1,0,0 117,10,7433320 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 83,20,102,-20,-12 0,21,-1,0,0 121,10,7433340 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 80,20,101,-21,-12 0,21,-1,0,0 121,10,7433360 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 79,20,101,-21,-10 0,21,-1,0,0 120,10,7433380 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 80,20,103,-20,-12 0,21,-1,0,0 120,10,7433400 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 83,20,101,-21,-13 0,21,-1,0,0 114,10,7433420 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 87,20,101,-20,-13 0,21,-1,0,0 116,10,7433440 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 87,20,101,-20,-12 0,21,-1,0,0 114,10,7433460 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 86,20,101,-20,-13 0,21,-1,0,0 110,10,7433480 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 91,20,102,-20,-15 0,21,-1,0,0 114,10,7433500 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 86,20,101,-20,-12 0,21,-1,0,0 113,10,7433520 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 89,20,101,-20,-12 0,21,-1,0,0 107,10,7433540 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 94,20,102,-21,-13 0,21,-1,0,0 114,10,7433560 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 86,20,102,-19,-14 0,21,-1,0,0 110,10,7433580 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 90,20,102,-20,-12 0,21,-1,0,0 110,10,7433600 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 90,20,101,-20,-13 0,21,-1,0,0 107,10,7433620 0,D,0 0,A,-3382321 0,B,15121770 0,C,60 94,20,100,-21,-12 0,21,-1,0,0 106,10,7433640 0,D,0 0,A,-3382321 0,B,15121769 0,C,60 98,20,101,-20,-12 0,21,-1,0,0 102,10,7433660 0,D,0 0,A,-3382321 0,B,15121769 0,C,60 101,20,101,-20,-12 0,21,-1,0,0 103,10,7433680 0,D,0 0,A,-3382322 0,B,15121769 0,C,60 97,20,98,-21,-14 0,21,-1,0,0 \ No newline at end of file diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.cpp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.cpp deleted file mode 100644 index 4aff0e5..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.cpp +++ /dev/null @@ -1,461 +0,0 @@ -/************************************************************************* -* Data2Kml - Converting OBD-II/GPS logger data to KML (Google Earth) -* Distributed under GPL v2.0 -* (c)2013 Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "logdata.h" - -typedef struct { - uint32_t timestamp; - float lat; - float lng; - uint16_t speed; - uint16_t speedgps; - uint16_t rpm; - uint16_t throttle; - int16_t coolant; - int16_t intake; - uint16_t load; - uint16_t absload; - int16_t alt; - int16_t acc[3]; -} DATASET; - -typedef struct { - int state; - FILE* fp; - HEADER hdr; - char buffer[256]; - int bufbytes; - DATASET* dataset; - int datacount; - float startLat; - float startLng; - uint32_t curDate; - uint32_t curTime; - uint32_t ts; - uint32_t lastts; - float lastLat; - float lastLng; - uint32_t lastTime; - DATASET datas; -} KML_DATA; - -uint16_t hex2uint16(const char *p) -{ - char c = *p; - uint16_t i = 0; - for (char n = 0; c && n < 4; c = *(++p)) { - if (c >= 'A' && c <= 'F') { - c -= 7; - } - else if (c >= 'a' && c <= 'f') { - c -= 39; - } - else if (c == ' ') { - continue; - } - else if (c < '0' || c > '9') { - break; - } - i = (i << 4) | (c & 0xF); - n++; - } - return i; -} - -static int isFloat(const char* s) -{ - while (*s && *s != ',') { - if (*s == '.') - return 1; - s++; - } - return 0; -} - -void WriteKMLData(KML_DATA* kd, uint32_t timestamp, uint16_t pid, const char* value) -{ - kd->ts = timestamp; - switch (pid) { - case PID_GPS_LATITUDE: - kd->datas.lat = isFloat(value) ? (float)atof(value) : (float)atoi(value) / 1000000; - if (!kd->startLat) { - kd->startLat = kd->datas.lat; - } - if (kd->datacount > 0) { - float diff = kd->datas.lat - kd->dataset[kd->datacount - 1].lat; - if (diff > 0.1 || diff < -0.1) - kd->datas.lat = 0; - } - break; - case PID_GPS_LONGITUDE: - kd->datas.lng = isFloat(value) ? (float)atof(value) : (float)atoi(value) / 1000000; - if (!kd->startLng) { - kd->startLng = kd->datas.lng; - } - if (kd->datacount > 0) { - float diff = kd->datas.lng - kd->dataset[kd->datacount - 1].lng; - if (diff > 0.1 || diff < -0.1) - kd->datas.lng = 0; - } - break; - case PID_GPS_ALTITUDE: - kd->datas.alt = atoi(value); - break; - case PID_SPEED: - kd->datas.speed = (uint16_t)atoi(value); - break; - case PID_RPM: - kd->datas.rpm = (uint16_t)atoi(value); - break; - case PID_THROTTLE: - kd->datas.throttle = (uint16_t)atoi(value); - break; - case PID_COOLANT_TEMP: - kd->datas.coolant = (int16_t)atoi(value); - break; - case PID_INTAKE_TEMP: - kd->datas.intake = (int16_t)atoi(value); - break; - case PID_ENGINE_LOAD: - kd->datas.load = (uint16_t)atoi(value); - break; - case PID_ABS_ENGINE_LOAD: - kd->datas.absload = (uint16_t)atoi(value); - break; - case PID_GPS_SPEED: - kd->datas.speedgps = (uint16_t)atoi(value); - break; - case PID_ACC: - { - const char *p = value; - kd->datas.acc[0] = atoi(p); - if (!(p = strchr(p, ','))) break; - kd->datas.acc[1] = atoi(++p); - if (!(p = strchr(p, ','))) break; - kd->datas.acc[2] = atoi(++p); - } - break; - case PID_GPS_DATE: - kd->curDate = (uint32_t)atoi(value); - break; - case PID_GPS_TIME: - kd->curTime = (uint32_t)atoi(value); - break; - } - if (kd->curTime != kd->lastTime && kd->datas.lat && kd->datas.lng) { - fprintf(kd->fp, ""); - if (kd->curDate) { - fprintf(kd->fp, "%04u-%02u-%02u", 2000 + (kd->curDate % 100), (kd->curDate / 100) % 100, kd->curDate / 10000); - } else { - time_t yesterday = time(0) - 86400; - struct tm *btm = localtime(&yesterday); - fprintf(kd->fp, "%04d-%02d-%02d", 1900+btm->tm_year, btm->tm_mon + 1, btm->tm_mday); - } - - if (kd->curTime) { - fprintf(kd->fp, "T%02u:%02u:%02u.%03uZ", kd->curTime / 1000000, (kd->curTime / 10000) % 100, (kd->curTime / 100) % 100, (kd->curTime % 100) * 10); - } - fprintf(kd->fp, ""); - fprintf(kd->fp, "%f %f %d", kd->datas.lng, kd->datas.lat, kd->datas.alt); - - kd->datas.timestamp = timestamp; - kd->dataset = (DATASET*)realloc(kd->dataset, sizeof(DATASET) * (kd->datacount + 1)); - memcpy(kd->dataset + kd->datacount, &kd->datas, sizeof(DATASET)); - kd->datacount++; - - kd->lastLat = kd->datas.lat; - kd->lastLng = kd->datas.lng; - kd->lastTime = kd->curTime; - } -} - -void AppendFile(FILE* fp, char* filename) -{ - int uint8_ts; - char buffer[256]; - FILE* fpHeader = fopen(filename, "rb"); - if (!fpHeader) return; - while ((uint8_ts = fread(buffer, 1, sizeof(buffer), fpHeader)) > 0) { - fwrite(buffer, 1, uint8_ts, fp); - } - fclose(fpHeader); -} - -void WriteKMLTail(KML_DATA* kd) -{ - int i; - int lowThrottle = 50; - printf("Generating extended data\n"); - - fprintf(kd->fp, ""); - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].speed); - } - fprintf(kd->fp, ""); - /* - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].speedgps); - } - fprintf(kd->fp, ""); - */ - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].rpm); - } - fprintf(kd->fp, ""); - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].speed ? kd->dataset[i].rpm / kd->dataset[i].speed : 1); - } - fprintf(kd->fp, ""); - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].coolant); - } - fprintf(kd->fp, ""); - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].intake); - } - fprintf(kd->fp, ""); - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].load); - } - fprintf(kd->fp, ""); - - /* - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].absload); - } - fprintf(kd->fp, ""); - */ - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].throttle); - if (kd->dataset[i].speed == 0) - lowThrottle = kd->dataset[i].throttle; - } - fprintf(kd->fp, ""); - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].alt); - } - fprintf(kd->fp, ""); - - /* - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%d", kd->dataset[i].sats); - } - fprintf(kd->fp, ""); - */ - - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "X:%d Y:%d Z:%d", kd->dataset[i].acc[0], kd->dataset[i].acc[1], kd->dataset[i].acc[2]); - } - fprintf(kd->fp, ""); - fprintf(kd->fp, ""); - for (i = 0; i < kd->datacount; i++) { - fprintf(kd->fp, "%u", kd->dataset[i].timestamp); - } - fprintf(kd->fp, ""); - fprintf(kd->fp, "\r\n"); - - int n = 0; - for (i = 0; i < kd->datacount - 1; i++) { - if (kd->dataset[i].speed < 25) { - continue; - } - if (kd->dataset[i].throttle > lowThrottle + 2) { - // throttle pedal is still down - continue; - } - float g = 0; - if (kd->dataset[i + 1].speed < kd->dataset[i].speed) - g = (((float)kd->dataset[i + 1].speed - kd->dataset[i].speed) * 1000 / (kd->dataset[i + 1].timestamp - kd->dataset[i].timestamp) / 3.6) / 9.8f; - else if (kd->dataset[i].speed < kd->dataset[i - 1].speed) - g = (((float)kd->dataset[i].speed - kd->dataset[i - 1].speed) * 1000 / (kd->dataset[i].timestamp - kd->dataset[i - 1].timestamp) / 3.6) / 9.8f; - else - continue; - - // determine brake point - if (g <= -0.2f) { - n++; - fprintf(kd->fp, "#%d %u:%02u", n, kd->dataset[i].timestamp / 60000, (kd->dataset[i].timestamp / 1000) % 60); - fprintf(kd->fp, "#brakepoint%f,%f", kd->dataset[i].lng, kd->dataset[i].lat); - fprintf(kd->fp, ""); - fprintf(kd->fp, "%d", kd->dataset[i].speed); - fprintf(kd->fp, "%d", kd->dataset[i].rpm); - fprintf(kd->fp, "%.2fG", g); - fprintf(kd->fp, ""); - fprintf(kd->fp, "\r\n"); - uint32_t t = kd->dataset[i].timestamp + 500; - while (kd->dataset[++i].timestamp < t); - } - } - fprintf(kd->fp, ""); - -} - -void CleanupKml(KML_DATA* kd) -{ - if (kd->dataset) free(kd->dataset); - if (kd->fp) fclose(kd->fp); - free(kd); -} - -int ReadLine(FILE* fp, char* buf, int bufsize) -{ - int c; - int n = 0; - for (;;) { - c = fgetc(fp); - if (c == -1) break; - if (c == '\r' || c == '\n') { - if (n == 0) - continue; - else - break; - } - if (n == bufsize - 1) break; - buf[n++] = c; - } - buf[n] = 0; - return n; -} - -int ConvertToKML(const char* logfile, const char* kmlfile, uint32_t startpos, uint32_t endpos) -{ - FILE* fp = fopen(logfile, "r"); - if (!fp) { - printf("Error opening file - %s\n", logfile); - return -1; - } - - uint32_t ts = 0; - KML_DATA* kd = (KML_DATA*)calloc(1, sizeof(KML_DATA)); - - int elapsed; - int pid; - int count = 0; - - char buf[1024]; - while (ReadLine(fp, buf, sizeof(buf)) > 0) { - if (buf[0] == '#') { - // absolute timestamp - ts = atoi(buf + 1); - } - else { - ts += atoi(buf); - } - char *p = strchr(buf, ','); - if (!p++) continue; - pid = 0; - if (*(p + 3) == ',') { - if (!memcmp(p, "DTE", 3)) - pid = PID_GPS_DATE; - else if (!memcmp(p, "UTC", 3)) - pid = PID_GPS_TIME; - else if (!memcmp(p, "UTC", 3)) - pid = PID_GPS_TIME; - else if (!memcmp(p, "LAT", 3)) - pid = PID_GPS_LATITUDE; - else if (!memcmp(p, "LNG", 3)) - pid = PID_GPS_LONGITUDE; - else if (!memcmp(p, "ALT", 3)) - pid = PID_GPS_ALTITUDE; - else if (!memcmp(p, "SPD", 3)) - pid = PID_GPS_SPEED; - else if (!memcmp(p, "CRS", 3)) - pid = PID_GPS_HEADING; - else if (!memcmp(p, "SAT", 3)) - pid = PID_GPS_SAT_COUNT; - else if (!memcmp(p, "ACC", 3)) - pid = PID_ACC; - else if (!memcmp(p, "GYR", 3)) - pid = PID_GYRO; - else if (!memcmp(p, "MAG", 3)) - pid = PID_COMPASS; - else if (!memcmp(p, "BAT", 3)) - pid = PID_BATTERY_VOLTAGE; - } - if (pid == 0) - pid = hex2uint16(p); - - p = strchr(p, ','); - if (!p++) continue; - - char* value = p; - printf("Time=%02u:%02u.%03u %X=%s\t\t\r", ts / 60000, (ts % 60000) / 1000, ts % 1000, pid, value); - if (!kd->fp) { - kd->fp = fopen(kmlfile, "w"); - //fprintf(kd->fp, "%s", kmlhead); - AppendFile(kd->fp, "kmlhead.txt"); - } - - WriteKMLData(kd, ts, pid, value); - count++; - - if (endpos && ts > endpos) - break; - } - - if (kd->fp) { - WriteKMLTail(kd); - CleanupKml(kd); - } - else { - printf("No GPS data available in this file. KML not created.\n"); - } - - return 0; -} - -int main(int argc, const char* argv[]) -{ - int startpos = 0; - int endpos = 0; - char outfile[256]; - - printf("Data2KML (C)2013-16 Written by Stanley Huang \n\n"); - if (argc <= 1) { - printf("Usage: %s [Input file] [Output file] [Start Pos] [End Pos]\n\n", argv[0]); - printf("Description about the arguments:\n\n\ -Input file: path to logged CSV file\n\ -Output file: path to KML file (output in the input directory if unspecified)\n\ -Start Pos: start time (seconds) for processing\n\ -End Pos: end time (seconds) for processing\n"); - return -1; - } - - if (argc > 3) - startpos = (uint32_t)atoi(argv[3]) * 1000; - if (argc > 4) - endpos = (uint32_t)atoi(argv[4]) * 1000; - - _snprintf(outfile, sizeof(outfile), "%s.kml", argv[1]); - - ConvertToKML(argv[1], argc > 2 ? argv[2] : outfile, startpos, endpos); - - return 0; -} diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj deleted file mode 100644 index 96245bb..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj +++ /dev/null @@ -1,93 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E4ED3BCD-0D31-4960-BD22-399FB53D760F} - Win32Proj - data2kmz - - - - Application - true - v140 - MultiByte - - - Application - false - v140_xp - true - MultiByte - - - - - - - - - - - - - true - $(ProjectDir)\ - - - false - $(ProjectDir)\ - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreaded - - - Console - true - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj.filters b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj.filters deleted file mode 100644 index 6ee7fbb..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/data2kml.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - - - - - - Header Files - - - \ No newline at end of file diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/kmlhead.txt b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/kmlhead.txt deleted file mode 100644 index 6a93e82..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/kmlhead.txt +++ /dev/null @@ -1,159 +0,0 @@ - - - -Freematics Vehicle Data Logger - - - - - - - - normal - #track_n - - - highlight - #track_h - - - - - - - - - normal - #multiTrack_n - - - highlight - #multiTrack_h - - - - - - - - - normal - #waypoint_n - - - highlight - #waypoint_h - - - - - - Speed (km/h) - - - - Engine RPM - - - Acceleration - - - Gear Ratio - - - Coolant Temperature (°C) - - - Intake Temperature (°C) - - - Engine Load (%) - - - - Throttle Position (%) - - - Altitude (m) - - - Timestamp (ms) - - - - Tracks - - Main Route - #multiTrack - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/logdata.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/logdata.h deleted file mode 100644 index f9ff772..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/data2kml/logdata.h +++ /dev/null @@ -1,85 +0,0 @@ -#define PID_RPM 0x10C -#define PID_SPEED 0x10D -#define PID_THROTTLE 0x111 -#define PID_ENGINE_LOAD 0x104 -#define PID_COOLANT_TEMP 0x105 -#define PID_INTAKE_TEMP 0x10F -#define PID_MAF_FLOW 0x110 -#define PID_ABS_ENGINE_LOAD 0x143 -#define PID_AMBIENT_TEMP 0x146 -#define PID_FUEL_PRESSURE 0x10A -#define PID_INTAKE_PRESSURE 0x10B -#define PID_BAROMETRIC 0x133 -#define PID_TIMING_ADVANCE 0x10E -#define PID_FUEL_LEVEL 0x12F -#define PID_RUNTIME 0x11F -#define PID_DISTANCE 0x131 - -#define PID_STAT_0_60 0xF100 -#define PID_STAT_0_100 0xF101 -#define PID_STAT_0_160 0xF102 -#define PID_STAT_0_400 0xF103 -#define PID_STAT_CUR_LAP 0xF110 -#define PID_STAT_LAST_LAP 0xF111 -#define PID_STAT_BEST_LAP 0xF112 -#define PID_STAT_LAP_PROGRESS 0xF113 - -#define PID_COMMAND 0xFFFE -#define PID_SYNC 0xFFFF - -enum { - PID_STAT_DISTANCE = 0xF200, - PID_STAT_TRIP_TIME, - PID_STAT_WAIT_TIME, - PID_STAT_SPEED_MAX, - PID_STAT_SPEED_AVG, - PID_STAT_RPM_MAX, - PID_STAT_RPM_MIN, - PID_STAT_RPM_AVG, - PID_STAT_INTAKE_MAX, - PID_STAT_INTAKE_MIN, - PID_STAT_INTAKE_SUM, - PID_STAT_ACC_FORWARD, - PID_STAT_ACC_BACKWARD, -}; - -#define PID_GPS_LATITUDE 0xA -#define PID_GPS_LONGITUDE 0xB -#define PID_GPS_ALTITUDE 0xC -#define PID_GPS_SPEED 0xD -#define PID_GPS_HEADING 0xE -#define PID_GPS_SAT_COUNT 0xF -#define PID_GPS_TIME 0x10 -#define PID_GPS_DATE 0x11 - -#define PID_ACC 0x20 -#define PID_GYRO 0x21 -#define PID_COMPASS 0x22 -#define PID_MEMS_TEMP 0x23 -#define PID_BATTERY_VOLTAGE 0x24 - -typedef struct { - uint32_t time; - uint16_t pid; - uint16_t flags; - uint32_t value; -} LOG_DATA; - -typedef struct { - uint32_t id; //4 - uint32_t dataOffset; //4 - uint8_t ver; //1 - uint8_t ununsed; //1 - uint16_t flags; //2 - uint32_t date; - uint32_t time; - uint32_t startTick; - uint32_t unused[2]; - uint64_t devid; //8 - uint8_t ununsed2[20]; - uint8_t vin[32]; //32 - int32_t videoOffset; //4 - uint8_t stats[84]; //84 - uint8_t reserved[72]; //72 - uint32_t tail; //4 -} HEADER; //256 diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/config.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/config.h deleted file mode 100644 index 8b166fe..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/config.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef CONFIG_H_INCLUDED -#define CONFIG_H_INCLUDED - -/************************************** -* OBD-II options -**************************************/ -#define OBD_MODEL OBD_MODEL_UART -#define OBD_PROTOCOL 0 /* 0 for auto */ - -/************************************** -* Data logging/streaming out -**************************************/ -#define ENABLE_DATA_OUT 1 -#define ENABLE_DATA_LOG 0 -#define USE_SOFTSERIAL 1 -//this defines the format of log file -#define LOG_FORMAT FORMAT_CSV - -/************************************** -* Default working mode -**************************************/ -#define MODE_DEFAULT MODE_LOGGER /* MODE_LOGGER/MODE_TIMER */ -//#define MODE_SWITCH_PIN 8 - -/************************************** -* Choose SD pin here -**************************************/ -//#define SD_CS_PIN SS // generic -//#define SD_CS_PIN 4 // ethernet shield -//#define SD_CS_PIN 7 // microduino -#define SD_CS_PIN 10 // SD breakout - -/************************************** -* Config GPS here -**************************************/ -#define USE_GPS 0 -#define GPS_BAUDRATE 38400 /* bps */ -//#define GPS_OPEN_BAUDRATE 4800 /* bps */ - -/************************************** -* Choose LCD model here -**************************************/ -LCD_ILI9341 lcd; -//LCD_SSD1306 lcd; -//LCD_Null lcd; - -/************************************** -* Other options -**************************************/ -#define USE_MPU6050 0 -#define GPS_DATA_TIMEOUT 2000 /* ms */ -//#define DEBUG Serial -#define DEBUG_BAUDRATE 9600 - -#endif // CONFIG_H_INCLUDED diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/datalogger.h b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/datalogger.h deleted file mode 100644 index 467131f..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/datalogger.h +++ /dev/null @@ -1,340 +0,0 @@ -typedef enum { - LOG_TYPE_DEFAULT = 0, - LOG_TYPE_0_60, - LOG_TYPE_0_100, - LOG_TYPE_100_200, - LOG_TYPE_400M, - LOG_TYPE_LAPS, - LOG_TYPE_ROUTE, -} LOG_TYPES; - -#define FLAG_CAR 0x1 -#define FLAG_CYCLING 0x2 -#define FLAG_OBD 0x10 -#define FLAG_GPS 0x20 -#define FLAG_ACC 0x40 - -#define FORMAT_BIN 0 -#define FORMAT_CSV 1 - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value; -} LOG_DATA; - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t flags; - uint8_t checksum; - float value[3]; -} LOG_DATA_COMM; - -typedef struct { - uint32_t time; /* e.g. 1307281259 */ - uint16_t pid; - uint8_t message; - uint8_t checksum; - uint16_t fileIndex; - uint16_t fileSize; /* KB */ - uint16_t logFlags; - uint8_t logType; - uint8_t data[5]; -} LOG_DATA_FILE_INFO; - -typedef struct { - uint32_t time; - uint16_t pid; - uint8_t message; - uint8_t checksum; - uint8_t data[12]; -} LOG_DATA_COMMAND; - -typedef struct { - uint32_t id; - uint32_t dataOffset; - uint8_t ver; - uint8_t logType; - uint16_t flags; - uint32_t dateTime; //4, YYMMDDHHMM, e.g. 1305291359 - /* - uint8_t devid[8]; - uint8_t vin[24]; - uint8_t unused[84]; - */ -} HEADER; - -#define HEADER_LEN 128 /* bytes */ - -#define PID_GPS_COORDINATES 0xF00A -#define PID_GPS_ALTITUDE 0xF00C -#define PID_GPS_SPEED 0xF00D -#define PID_GPS_HEADING 0xF00E -#define PID_GPS_SAT_COUNT 0xF00F -#define PID_GPS_TIME 0xF010 - -#define PID_ACC 0xF020 -#define PID_GYRO 0xF021 - -#define PID_MESSAGE 0xFE00 -#define PID_HEART_BEAT 0xFFEE - -#define MSG_FILE_LIST_BEGIN 0x1 -#define MSG_FILE_LIST_END 0x2 -#define MSG_FILE_INFO 0x3 -#define MSG_FILE_REQUEST 0x4 - -#if LOG_FORMAT == FORMAT_BIN -#define FILE_NAME_FORMAT "/DAT%05d.LOG" -#else -#define FILE_NAME_FORMAT "/DAT%05d.CSV" -#endif - -#if ENABLE_DATA_OUT -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) - SoftwareSerial mySerial(A8, A9); /* for BLE Shield on MEGA*/ -#elif defined(__AVR_ATmega644P__) - SoftwareSerial mySerial(9, 10); /* for Microduino */ -#else - SoftwareSerial mySerial(A2, A3); /* for BLE Shield on UNO*/ -#endif -#endif - -class CDataLogger { -public: - void initSender() - { -#if ENABLE_DATA_OUT - mySerial.begin(9600); -#endif -#if ENABLE_DATA_LOG && LOG_FORMAT == FORMAT_CSV - m_lastDataTime = 0; -#endif - } -#if ENABLE_DATA_OUT - void sendFileInfo(File& file) - { - if (file.size() < HEADER_LEN) return; - - LOG_DATA_FILE_INFO info = {0}; - info.fileIndex = atol(file.name() + 3); - if (info.fileIndex == 0) return; - - HEADER hdr; - if (file.readBytes((char*)&hdr, sizeof(hdr)) != sizeof(hdr)) return; - - info.pid = PID_MESSAGE; - info.message = MSG_FILE_INFO; - info.fileSize = file.size(); - info.time = hdr.dateTime; - info.logType = hdr.logType; - info.logFlags = hdr.flags; - info.checksum = getChecksum((char*)&info, sizeof(info)); - mySerial.write((uint8_t*)&info, sizeof(info)); - } - void sendCommand(byte message, void* data = 0, byte bytes = 0) - { - LOG_DATA_COMMAND msg = {0, PID_MESSAGE, message}; - if (data) memcpy(msg.data, data, bytes); - msg.checksum = getChecksum((char*)&msg, sizeof(msg)); - mySerial.write((uint8_t*)&msg, sizeof(msg)); - } - bool receiveCommand(LOG_DATA_COMMAND& msg) - { - if (!mySerial.available()) - return false; - - if (mySerial.readBytes((char*)&msg, sizeof(msg)) != sizeof(msg)) - return false; - - uint8_t checksum = msg.checksum; - msg.checksum = 0; - if (getChecksum((char*)&msg, sizeof(msg)) != msg.checksum) { - return false; - } - return true; - } -#endif - void logData(uint16_t pid, int value) - { - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); -#if ENABLE_DATA_OUT - mySerial.write((uint8_t*)&ld, 12); -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 12); - dataSize += 12; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, float value) - { - LOG_DATA_COMM ld = {dataTime, pid, 1, 0, value}; - ld.checksum = getChecksum((char*)&ld, 12); -#if ENABLE_DATA_OUT - mySerial.write((uint8_t*)&ld, 12); -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 12); - dataSize += 12; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, float value1, float value2) - { - LOG_DATA_COMM ld = {dataTime, pid, 2, 0, {value1, value2}}; - ld.checksum = getChecksum((char*)&ld, 16); -#if ENABLE_DATA_OUT - mySerial.write((uint8_t*)&ld, 16); -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 16); - dataSize += 16; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value1, 6); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value2, 6); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, uint32_t value1, uint32_t value2) - { - LOG_DATA_COMM ld = {dataTime, pid, 2, 0, {value1, value2}}; - ld.checksum = getChecksum((char*)&ld, 16); -#if ENABLE_DATA_OUT - mySerial.write((uint8_t*)&ld, 16); -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 16); - dataSize += 16; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value1); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value2); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } - void logData(uint16_t pid, int value1, int value2, int value3) - { - LOG_DATA_COMM ld = {dataTime, pid, 3, 0, {value1, value2, value3}}; - ld.checksum = getChecksum((char*)&ld, 20); -#if ENABLE_DATA_OUT - mySerial.write((uint8_t*)&ld, 20); -#endif -#if ENABLE_DATA_LOG -#if LOG_FORMAT == FORMAT_BIN - sdfile.write((uint8_t*)&ld, 20); - dataSize += 20; -#else - dataSize += sdfile.print(dataTime - m_lastDataTime); - dataSize += sdfile.write(','); - dataSize += sdfile.print(pid, HEX); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value1); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value2); - dataSize += sdfile.write(','); - dataSize += sdfile.print(value3); - dataSize += sdfile.write('\n'); - m_lastDataTime = dataTime; -#endif -#endif - } -#if ENABLE_DATA_LOG - uint16_t openFile(LOG_TYPES logType, uint16_t logFlags = 0, uint32_t dateTime = 0) - { - uint16_t fileIndex; - char filename[24] = "/FRMATICS"; - - if (SD.exists(filename)) { - for (fileIndex = 1; fileIndex; fileIndex++) { - sprintf(filename + 9, FILE_NAME_FORMAT, fileIndex); - if (!SD.exists(filename)) { - break; - } - } - if (fileIndex == 0) - return 0; - } else { - SD.mkdir(filename); - fileIndex = 1; - sprintf(filename + 9, FILE_NAME_FORMAT, 1); - } - - sdfile = SD.open(filename, FILE_WRITE); - if (!sdfile) { - return 0; - } - -#if LOG_FORMAT == FORMAT_BIN - HEADER hdr = {'UDUS', HEADER_LEN, 1, logType, logFlags, dateTime}; - sdfile.write((uint8_t*)&hdr, sizeof(hdr)); - for (byte i = 0; i < HEADER_LEN - sizeof(hdr); i++) - sdfile.write((uint8_t)0); - dataSize = HEADER_LEN; -#endif - return fileIndex; - } - void closeFile() - { - sdfile.close(); - } - void flushFile() - { - sdfile.flush(); - } -#endif - uint32_t dataTime; - uint32_t dataSize; -private: - static byte getChecksum(char* buffer, byte len) - { - uint8_t checksum = 0; - for (byte i = 0; i < len; i++) { - checksum ^= buffer[i]; - } - return checksum; - } -#if ENABLE_DATA_LOG - File sdfile; -#if LOG_FORMAT == FORMAT_CSV - uint32_t m_lastDataTime; -#endif -#endif -}; diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.cbp b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.cbp deleted file mode 100644 index 662f664..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.cbp +++ /dev/null @@ -1,666 +0,0 @@ - - - - - - diff --git a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.ino b/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.ino deleted file mode 100644 index 2e7e1f7..0000000 --- a/Libraries/ArduinoOBD-master/ArduinoOBD-master/utilities/dataplayer/dataplayer.ino +++ /dev/null @@ -1,401 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include "config.h" -#include "datalogger.h" - -CDataLogger sender; - -#define LOG_DATA_LEN sizeof(LOG_DATA) -#define REPLAY_SPEED 1 - -/////////////////////////////////////////////////////////////////////////// -#define PID_GPS_LATITUDE 0xF00A -#define PID_GPS_LONGITUDE 0xF00B -#define PID_GPS_ALTITUDE 0xF00C -#define PID_GPS_SPEED 0xF00D - -void sendLogFile(File logfile, byte noWait); -// -//unsigned int hex2uint16(const char *p) -//{ -// char c = *p; -// unsigned int i = 0; -// for (char n = 0; c && n < 4; c = *(++p)) { -// if (c >= 'A' && c <= 'F') { -// c -= 7; -// } else if (c>='a' && c<='f') { -// c -= 39; -// } else if (c == ' ') { -// continue; -// } else if (c < '0' || c > '9') { -// break; -// } -// i = (i << 4) | (c & 0xF); -// n++; -// } -// return i; -//} - -void initScreen() -{ - lcd.clear(); - lcd.backlight(true); - lcd.setFont(FONT_SIZE_SMALL); - lcd.setTextColor(RGB16_CYAN); - lcd.setCursor(4, 0); - lcd.print("ENGINE RPM"); - lcd.setCursor(104, 0); - lcd.print("SPEED"); - lcd.setCursor(164, 0); - lcd.print("ENGINE LOAD"); - lcd.setCursor(248, 0); - lcd.print("INTAKE TEMP"); - - lcd.setCursor(4, 7); - lcd.print("COOLANT TEMP"); - lcd.setCursor(104, 7); - lcd.print("DISTANCE"); - lcd.setCursor(164, 7); - lcd.print("INTAKE MAP"); - - lcd.setCursor(260, 7); - lcd.print("ELAPSED"); - lcd.setCursor(260, 10); - lcd.print("LOG SIZE"); - - lcd.setTextColor(RGB16_YELLOW); - lcd.setCursor(24, 5); - lcd.print("rpm"); - lcd.setCursor(110, 5); - lcd.print("km/h"); - lcd.setCursor(216, 4); - lcd.print("%"); - lcd.setCursor(304, 4); - lcd.print("C"); - lcd.setCursor(64, 11); - lcd.print("C"); - lcd.setCursor(110, 12); - lcd.print("km"); - lcd.setCursor(200, 12); - lcd.print("kpa"); - lcd.setCursor(296, 12); - lcd.print("KB"); - - lcd.setTextColor(RGB16_WHITE); - - - //lcd.setCursor(0, 5); - //lcd.print("THR: %"); - //lcd.setCursor(80, 5); - //lcd.print("AIR: C"); -} - -void showChart(int value) -{ - static uint16_t pos = 0; - if (value < 500) return; - byte n = (value - 600) / 30; - lcd.fill(pos, pos, 239 - n, 239, RGB16_CYAN); - pos = (pos + 1) % 320; - lcd.fill(pos, pos, 120, 239); -} - -void showData(byte pid, int value) -{ - switch (pid) { - case PID_RPM: - lcd.setCursor(0, 2); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - showChart(value); - break; - case PID_SPEED: - lcd.setCursor(90, 2); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - break; - case PID_ENGINE_LOAD: - lcd.setCursor(164, 2); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt(value % 100, 3); - break; - case PID_INTAKE_TEMP: - if ((uint16_t)value < 1000) { - lcd.setCursor(248, 2); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt(value, 3); - } - break; - case PID_INTAKE_MAP: - lcd.setCursor(164, 9); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt((uint16_t)value % 1000, 3); - break; - case PID_COOLANT_TEMP: - lcd.setCursor(8, 9); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt((uint16_t)value % 1000, 3); - break; - case PID_DISTANCE: - lcd.setFont(FONT_SIZE_XLARGE); - lcd.setCursor(90, 9); - lcd.printInt((uint16_t)value % 1000, 3); - break; - } -} - -/////////////////////////////////////////////////////////////////////////// - -void setup() -{ - // Open serial communications and wait for port to open: - Serial.begin(115200); - - lcd.begin(); - lcd.clear(); - sender.initSender(); - - // On the Ethernet Shield, CS is pin 4. It's set as an output by default. - // Note that even if it's not used as the CS pin, the hardware SS pin - // (10 on Arduino Uno boards, 53 on the Mega) must be left as an output - // or the SD library functions will not work. - pinMode(SD_CS_PIN, OUTPUT); - - Sd2Card card; - - if (card.init(SPI_FULL_SPEED, SD_CS_PIN)) { - SdVolume volume; -#if 0 - char buf[20]; - if (!volume.init(card)) { - Serial.println("No FAT!"); - } else { - uint32_t volumesize = volume.blocksPerCluster(); - volumesize >>= 1; // 512 bytes per block - volumesize *= volume.clusterCount(); - volumesize >>= 10; - - sprintf(buf, "%dGB", (int)((volumesize + 511) / 1000)); - Serial.println(buf); - lcd.print("SD "); - lcd.println(buf); - } -#endif - if (!SD.begin(SD_CS_PIN)) { - Serial.println("SD error"); - } - } else { - lcd.print("No SD"); - Serial.println("No SD"); - } -} - -/////////////////////////////////////////////////////////////////////////// -#if 0 -void ShowSensorData(uint16_t pid, float data) -{ - uint16_t value; - Serial.print('['); - Serial.print(pid, HEX); - Serial.print("]="); - if (pid < 0xf000) { - value = (uint16_t)data; - Serial.print(value); - } - - char buf[16]; - switch (pid) { - case PID_RPM: - lcd.setCursor(64, 0); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt(value, 4); - break; - case PID_SPEED: - lcd.setCursor(0, 0); - lcd.setFont(FONT_SIZE_XLARGE); - lcd.printInt(value, 3); - break; - case PID_THROTTLE: - lcd.setCursor(24, 5); - lcd.setFont(FONT_SIZE_SMALL); - lcd.printInt(value, 3); - break; - case PID_INTAKE_TEMP: - lcd.setCursor(104, 5); - lcd.setFont(FONT_SIZE_SMALL); - lcd.printInt(value, 3); - break; - case PID_DISTANCE: - sprintf(buf, "%5ukm", value); - lcd.setFont(FONT_SIZE_SMALL); - lcd.setCursor(86, 6); - lcd.print(buf); - break; - case PID_GPS_LATITUDE: { - int32_t lat = (int32_t)(data * 100000); - sprintf(buf, "LAT:%d.%05ld ", (int)(lat / 100000), lat % 100000); - lcd.setFont(FONT_SIZE_SMALL); - lcd.setCursor(0, 6); - lcd.print(buf); - //Serial.print(buf); - break; - } - case PID_GPS_LONGITUDE: { - int32_t lon = (int32_t)(data * 100000); - sprintf(buf, "LON:%d.%05ld ", (int)(lon / 100000), lon % 100000); - lcd.setFont(FONT_SIZE_SMALL); - lcd.setCursor(0, 7); - lcd.print(buf); - //Serial.print(buf); - break; - } - } -} -#endif - -/////////////////////////////////////////////////////////////////////////// -uint8_t getDataInt8(LOG_DATA_COMMAND& msg, int offset = 0) -{ - return msg.data[offset]; -} - -uint16_t getDataInt16(LOG_DATA_COMMAND& msg, int offset = 0) -{ - return *(uint16_t *)(&msg.data[offset]); -} - -uint32_t getDataInt32(LOG_DATA_COMMAND& msg, int offset = 0) -{ - return *(uint32_t *)(&msg.data[offset]); -} - -void sendLogFile(File logfile, byte noWait = 0) -{ - uint32_t timestamp = 0; - uint32_t dataSize = 0; - int value; - int pid; - char buf[64]; - byte n = 0; - - Serial.println("Start"); - while (logfile.available()) { - byte c = logfile.read(); - dataSize++; - if (c <= 13) { - // process one line - if (n > 0) do { - buf[n] = 0; - n = 0; - // TODO: parse line - int t = atoi(buf); - char *p = strchr(buf, ','); - if (!p++) break; - Serial.print(p); - Serial.write('\n'); - int pid = hex2uint16(p); - p = strchr(p, ','); - if (!p++) break; - int value = atoi(p); - timestamp += t; - showData((byte)pid, value); - if (Serial.available()) { - lcd.setCursor(0, 20); - do { - lcd.write(Serial.read()); - } while (Serial.available()); - } - if (!noWait && t > 0) delay(t / REPLAY_SPEED); - } while(0); - - // show time elapsed - uint16_t elapsed = timestamp / 1000; - lcd.setFont(FONT_SIZE_MEDIUM); - lcd.setCursor(260, 8); - lcd.printInt(elapsed / 60, 2); - lcd.write(':'); - lcd.setFlags(FLAG_PAD_ZERO); - lcd.printInt(elapsed % 60, 2); - lcd.setFlags(0); - - lcd.setCursor(260, 11); - lcd.printInt(dataSize >> 10, 4); - - continue; - } - if (n >= sizeof(buf) - 1) continue; - buf[n++] = c; - - //Show on LCD: - - //Serial.print(" T:"); - //Serial.print(ld.time); - //Serial.print(" F:"); - //Serial.print(ld.flags); - - // display KB counter -#if 0 - lcd.setCursor(96, 7); - lcd.setFont(FONT_SIZE_SMALL); - byte percent = (byte)(dataSendLen * 100 / logsize); - lcd.printInt(percent, 3); - - Serial.print(' '); - Serial.print(percent); - Serial.println('%'); -#endif - //checkReceiveCommand(); - } while (logfile.available()); -} - -void enumDirectoryAndSend(File dir) -{ - // Begin at the start of the directory - dir.rewindDirectory(); - - while(true) { - File entry = dir.openNextFile(); - if (! entry) { - // no more files - //Serial.println("**nomorefiles**"); - break; - } - - if (entry.isDirectory()) { - enumDirectoryAndSend(entry); - } else { - lcd.clear(); - lcd.setFont(FONT_SIZE_MEDIUM); - lcd.print(entry.name()); - delay(1000); - initScreen(); - sendLogFile(entry); - } - entry.close(); - } -} - -void loop() -{ -#if 0 - if (!checkReceiveCommand()) { - delay(100); - } -#else - File root = SD.open("/FRMATICS"); - if (!root || !root.isDirectory()) { - lcd.println("NO LOG"); - Serial.println("NO LOG"); - } else { - enumDirectoryAndSend(root); - root.close(); - } - delay(5000); -#endif - -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.cpp deleted file mode 100644 index a602b18..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.cpp +++ /dev/null @@ -1,657 +0,0 @@ -/************************************************************************* -* Arduino Text Display Library for Multiple LCDs -* Distributed under GPL v2.0 -* Copyright (c) 2013 Stanley Huang -* All rights reserved. -*************************************************************************/ - -#include -#include -#include "MicroLCD.h" - -// fonts data -const PROGMEM unsigned char digits16x24[][48] = { -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"0",0*/ -{0x00,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,0x00,0xFC,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/ -{0x00,0x00,0x00,0xF8,0x00,0xE0,0xFC,0x00,0xF8,0xFE,0x00,0xFE,0xFE,0x80,0xFF,0xFF,0xC0,0xFF,0x07,0xF0,0xFF,0x07,0xFC,0xFF,0x07,0xFF,0xEF,0xFF,0xFF,0xE3,0xFF,0xFF,0xE1,0xFE,0x7F,0xE0,0xFE,0x3F,0xE0,0xFC,0x0F,0xE0,0xF0,0x03,0x00,0x00,0x00,0x00},/*"2",2*/ -{0x00,0x00,0x00,0xF8,0x80,0x1F,0xFE,0x80,0x3F,0xFE,0x80,0x7F,0xFF,0x80,0x7F,0xFF,0x80,0xFF,0xFF,0x9C,0xFF,0xFF,0x9C,0xFF,0x07,0x1C,0xE0,0x07,0x3E,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"3",3*/ -{0x00,0xF0,0x0F,0x00,0xFE,0x0F,0x80,0xFF,0x0F,0xE0,0xFF,0x0F,0xFC,0xBF,0x0F,0xFF,0x87,0x0F,0xFF,0x81,0x0F,0x3F,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x0F,0x00,0x80,0x0F},/*"4",4*/ -{0x00,0x00,0x00,0xFF,0xC7,0x0F,0xFF,0xC7,0x3F,0xFF,0xC7,0x7F,0xFF,0xC7,0x7F,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x87,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0xFF,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x7F,0x87,0xFF,0x7F,0x87,0xFF,0x3F,0x07,0xFE,0x1F},/*"5",5*/ -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x06,0xE0,0x07,0x07,0xE0,0x07,0x07,0xE0,0x3F,0xFF,0xFF,0x3F,0xFF,0xFF,0x3E,0xFF,0x7F,0x3E,0xFE,0x7F,0x3C,0xFE,0x3F,0x38,0xF8,0x1F},/*"6",6*/ -{0x00,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0xC0,0x07,0x00,0xF8,0x07,0x00,0xFF,0x07,0xE0,0xFF,0x07,0xFE,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x07,0xFF,0xFF,0x00,0xFF,0x0F,0x00,0xFF,0x01,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"7",1*/ -{0x00,0x00,0x00,0xF0,0xE3,0x1F,0xFC,0xF7,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"8",8*/ -{0x00,0x00,0x00,0xF8,0x1F,0x1C,0xFC,0x7F,0x3C,0xFE,0x7F,0x7C,0xFE,0xFF,0x7C,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0x07,0xE0,0xE0,0x07,0xE0,0xE0,0x07,0x60,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"9",9*/ -}; - -const PROGMEM unsigned char digits8x8[][8] = { -{0x3C,0x7E,0x83,0x81,0x81,0x7E,0x3C,0x00},/*0*/ -{0x84,0x84,0x82,0xFF,0xFF,0x80,0x80,0x00},/*1*/ -{0x84,0xC6,0xE1,0xA1,0xB1,0x9F,0x8E,0x00},/*2*/ -{0x42,0xC3,0x81,0x89,0x89,0xFF,0x76,0x00},/*3*/ -{0x20,0x38,0x24,0x22,0xFF,0xFF,0x20,0x00},/*4*/ -{0x5F,0xDF,0x99,0x89,0x89,0xF9,0x70,0x00},/*5*/ -{0x3C,0x7E,0x89,0x89,0x89,0xFB,0x72,0x00},/*6*/ -{0x01,0x01,0xE1,0xF9,0x1D,0x07,0x01,0x00},/*7*/ -{0x6E,0xFF,0x89,0x89,0x99,0xFF,0x76,0x00},/*8*/ -{0x4E,0xDF,0x91,0x91,0x91,0x7F,0x3E,0x00},/*9*/ -}; - -// The 7-bit ASCII character set... -const PROGMEM unsigned char font5x8[][5] = { - { 0x00, 0x00, 0x5f, 0x00, 0x00 }, // 21 ! - { 0x00, 0x07, 0x00, 0x07, 0x00 }, // 22 " - { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // 23 # - { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // 24 $ - { 0x23, 0x13, 0x08, 0x64, 0x62 }, // 25 % - { 0x36, 0x49, 0x55, 0x22, 0x50 }, // 26 & - { 0x00, 0x05, 0x03, 0x00, 0x00 }, // 27 ' - { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // 28 ( - { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // 29 ) - { 0x14, 0x08, 0x3e, 0x08, 0x14 }, // 2a * - { 0x08, 0x08, 0x3e, 0x08, 0x08 }, // 2b + - { 0x00, 0x50, 0x30, 0x00, 0x00 }, // 2c , - { 0x08, 0x08, 0x08, 0x08, 0x08 }, // 2d - - { 0x00, 0x60, 0x60, 0x00, 0x00 }, // 2e . - { 0x20, 0x10, 0x08, 0x04, 0x02 }, // 2f / - { 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 30 0 - { 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 31 1 - { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 32 2 - { 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 33 3 - { 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 34 4 - { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 35 5 - { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 36 6 - { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 37 7 - { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 38 8 - { 0x06, 0x49, 0x49, 0x29, 0x1e }, // 39 9 - { 0x00, 0x36, 0x36, 0x00, 0x00 }, // 3a : - { 0x00, 0x56, 0x36, 0x00, 0x00 }, // 3b ; - { 0x08, 0x14, 0x22, 0x41, 0x00 }, // 3c < - { 0x14, 0x14, 0x14, 0x14, 0x14 }, // 3d = - { 0x00, 0x41, 0x22, 0x14, 0x08 }, // 3e > - { 0x02, 0x01, 0x51, 0x09, 0x06 }, // 3f ? - { 0x32, 0x49, 0x79, 0x41, 0x3e }, // 40 @ - { 0x7e, 0x11, 0x11, 0x11, 0x7e }, // 41 A - { 0x7f, 0x49, 0x49, 0x49, 0x36 }, // 42 B - { 0x3e, 0x41, 0x41, 0x41, 0x22 }, // 43 C - { 0x7f, 0x41, 0x41, 0x22, 0x1c }, // 44 D - { 0x7f, 0x49, 0x49, 0x49, 0x41 }, // 45 E - { 0x7f, 0x09, 0x09, 0x09, 0x01 }, // 46 F - { 0x3e, 0x41, 0x49, 0x49, 0x7a }, // 47 G - { 0x7f, 0x08, 0x08, 0x08, 0x7f }, // 48 H - { 0x00, 0x41, 0x7f, 0x41, 0x00 }, // 49 I - { 0x20, 0x40, 0x41, 0x3f, 0x01 }, // 4a J - { 0x7f, 0x08, 0x14, 0x22, 0x41 }, // 4b K - { 0x7f, 0x40, 0x40, 0x40, 0x40 }, // 4c L - { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // 4d M - { 0x7f, 0x04, 0x08, 0x10, 0x7f }, // 4e N - { 0x3e, 0x41, 0x41, 0x41, 0x3e }, // 4f O - { 0x7f, 0x09, 0x09, 0x09, 0x06 }, // 50 P - { 0x3e, 0x41, 0x51, 0x21, 0x5e }, // 51 Q - { 0x7f, 0x09, 0x19, 0x29, 0x46 }, // 52 R - { 0x46, 0x49, 0x49, 0x49, 0x31 }, // 53 S - { 0x01, 0x01, 0x7f, 0x01, 0x01 }, // 54 T - { 0x3f, 0x40, 0x40, 0x40, 0x3f }, // 55 U - { 0x1f, 0x20, 0x40, 0x20, 0x1f }, // 56 V - { 0x3f, 0x40, 0x38, 0x40, 0x3f }, // 57 W - { 0x63, 0x14, 0x08, 0x14, 0x63 }, // 58 X - { 0x07, 0x08, 0x70, 0x08, 0x07 }, // 59 Y - { 0x61, 0x51, 0x49, 0x45, 0x43 }, // 5a Z - { 0x00, 0x7f, 0x41, 0x41, 0x00 }, // 5b [ - { 0x02, 0x04, 0x08, 0x10, 0x20 }, // 5c backslash - { 0x00, 0x41, 0x41, 0x7f, 0x00 }, // 5d ] - { 0x04, 0x02, 0x01, 0x02, 0x04 }, // 5e ^ - { 0x40, 0x40, 0x40, 0x40, 0x40 }, // 5f _ - { 0x00, 0x01, 0x02, 0x04, 0x00 }, // 60 ` - { 0x20, 0x54, 0x54, 0x54, 0x78 }, // 61 a - { 0x7f, 0x48, 0x44, 0x44, 0x38 }, // 62 b - { 0x38, 0x44, 0x44, 0x44, 0x20 }, // 63 c - { 0x38, 0x44, 0x44, 0x48, 0x7f }, // 64 d - { 0x38, 0x54, 0x54, 0x54, 0x18 }, // 65 e - { 0x08, 0x7e, 0x09, 0x01, 0x02 }, // 66 f - { 0x0c, 0x52, 0x52, 0x52, 0x3e }, // 67 g - { 0x7f, 0x08, 0x04, 0x04, 0x78 }, // 68 h - { 0x00, 0x44, 0x7d, 0x40, 0x00 }, // 69 i - { 0x20, 0x40, 0x44, 0x3d, 0x00 }, // 6a j - { 0x7f, 0x10, 0x28, 0x44, 0x00 }, // 6b k - { 0x00, 0x41, 0x7f, 0x40, 0x00 }, // 6c l - { 0x7c, 0x04, 0x18, 0x04, 0x78 }, // 6d m - { 0x7c, 0x08, 0x04, 0x04, 0x78 }, // 6e n - { 0x38, 0x44, 0x44, 0x44, 0x38 }, // 6f o - { 0x7c, 0x14, 0x14, 0x14, 0x08 }, // 70 p - { 0x08, 0x14, 0x14, 0x18, 0x7c }, // 71 q - { 0x7c, 0x08, 0x04, 0x04, 0x08 }, // 72 r - { 0x48, 0x54, 0x54, 0x54, 0x20 }, // 73 s - { 0x04, 0x3f, 0x44, 0x40, 0x20 }, // 74 t - { 0x3c, 0x40, 0x40, 0x20, 0x7c }, // 75 u - { 0x1c, 0x20, 0x40, 0x20, 0x1c }, // 76 v - { 0x3c, 0x40, 0x30, 0x40, 0x3c }, // 77 w - { 0x44, 0x28, 0x10, 0x28, 0x44 }, // 78 x - { 0x0c, 0x50, 0x50, 0x50, 0x3c }, // 79 y - { 0x44, 0x64, 0x54, 0x4c, 0x44 }, // 7a z - { 0x00, 0x08, 0x36, 0x41, 0x00 }, // 7b { - { 0x00, 0x00, 0x7f, 0x00, 0x00 }, // 7c | - { 0x00, 0x41, 0x36, 0x08, 0x00 }, // 7d } - { 0x10, 0x08, 0x08, 0x10, 0x08 }, // 7e ~ -}; - -#ifndef MEMORY_SAVING -const PROGMEM unsigned char digits16x16[][32] = { -{0x00,0xE0,0xF8,0xFC,0xFE,0x1E,0x07,0x07,0x07,0x07,0x1E,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x3F,0x3F,0x7C,0x70,0x70,0x70,0x70,0x7C,0x3F,0x1F,0x1F,0x07,0x00},/*0*/ -{0x00,0x00,0x00,0x06,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},/*1*/ -{0x00,0x38,0x3C,0x3E,0x3E,0x0F,0x07,0x07,0x07,0xCF,0xFF,0xFE,0xFE,0x38,0x00,0x00,0x00,0x40,0x40,0x60,0x70,0x78,0x7C,0x7E,0x7F,0x77,0x73,0x71,0x70,0x70,0x00,0x00},/*2*/ -{0x00,0x18,0x1C,0x1E,0x1E,0x0F,0xC7,0xC7,0xE7,0xFF,0xFE,0xBE,0x9C,0x00,0x00,0x00,0x00,0x0C,0x1C,0x3C,0x3C,0x78,0x70,0x70,0x70,0x79,0x7F,0x3F,0x1F,0x0F,0x00,0x00},/*3*/ -{0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x7F,0x7F,0x7F,0x7F,0x06,0x06,0x00},/*4*/ -{0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xE7,0xE7,0xE7,0xE7,0xC7,0x87,0x00,0x00,0x00,0x00,0x38,0x78,0x71,0x70,0x70,0x70,0x70,0x70,0x39,0x3F,0x3F,0x1F,0x0F,0x00},/*5*/ -{0x00,0x80,0xE0,0xF0,0xF8,0xFC,0x7F,0x7F,0x6F,0x67,0xE1,0xE1,0xC0,0x80,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x3F,0x78,0x70,0x70,0x70,0x70,0x78,0x3F,0x3F,0x1F,0x0F,0x00},/*6*/ -{0x00,0x07,0x07,0x07,0x07,0x07,0xC7,0xE7,0xF7,0xFF,0x7F,0x3F,0x1F,0x07,0x03,0x01,0x00,0x20,0x38,0x7C,0x7E,0x3F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*7*/ -{0x00,0x00,0x00,0x1C,0xBE,0xFE,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFE,0xBE,0x1C,0x00,0x00,0x00,0x0E,0x3F,0x3F,0x7F,0x71,0x60,0x60,0x60,0x71,0x7F,0x3F,0x3F,0x0F,0x00},/*8*/ -{0x00,0x78,0xFC,0xFE,0xFE,0x8F,0x07,0x07,0x07,0x07,0x8F,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0x00,0x00,0x01,0x43,0x43,0x73,0x7B,0x7F,0x7F,0x1F,0x0F,0x07,0x03,0x00,0x00},/*9*/ -}; - -const PROGMEM unsigned char font8x16_terminal[][16] = { -{0x00,0x00,0x00,0x00,0x7C,0x00,0xFE,0x1B,0xFE,0x1B,0x7C,0x00,0x00,0x00,0x00,0x00},/*"!",0*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00},/*""",1*/ -{0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01,0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01},/*"#",2*/ -{0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0xFF,0x3F,0x84,0x08,0x8C,0x0F,0x18,0x07},/*"$",3*/ -{0x1C,0x18,0x14,0x1E,0x9C,0x07,0xE0,0x01,0x78,0x1C,0x1E,0x14,0x06,0x1C,0x00,0x00},/*"%",4*/ -{0xBC,0x1F,0xFE,0x10,0x42,0x10,0xC2,0x10,0xFE,0x1F,0x3C,0x0F,0x80,0x19,0x80,0x10},/*"&",5*/ -{0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ -{0x00,0x00,0x00,0x00,0xF0,0x07,0xFC,0x1F,0x0E,0x38,0x02,0x20,0x00,0x00,0x00,0x00},/*"(",7*/ -{0x00,0x00,0x00,0x00,0x02,0x20,0x0E,0x38,0xFC,0x1F,0xF0,0x07,0x00,0x00,0x00,0x00},/*")",8*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"*",9*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+",10*/ -{0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00},/*",",11*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-",12*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},/*".",13*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",14*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0xC2,0x10,0xC2,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"0",15*/ -{0x00,0x00,0x08,0x10,0x0C,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"1",16*/ -{0x04,0x1C,0x06,0x1E,0x02,0x13,0x82,0x11,0xC2,0x10,0x62,0x10,0x3E,0x18,0x1C,0x18},/*"2",17*/ -{0x04,0x08,0x06,0x18,0x02,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"3",18*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x01,0x0C,0x11,0xFE,0x1F,0xFE,0x1F,0x00,0x11},/*"4",19*/ -{0x7E,0x08,0x7E,0x18,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC2,0x1F,0x82,0x0F},/*"5",20*/ -{0xF8,0x0F,0xFC,0x1F,0x46,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC0,0x1F,0x80,0x0F},/*"6",21*/ -{0x06,0x00,0x06,0x00,0x02,0x00,0x02,0x1F,0xC2,0x1F,0xF2,0x00,0x3E,0x00,0x0E,0x00},/*"7",22*/ -{0xBC,0x0F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"8",23*/ -{0x3C,0x00,0x7E,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x18,0xFE,0x0F,0xFC,0x07},/*"9",24*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x3C,0x60,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x0C,0x18,0x04,0x10,0x00,0x00},/*"<",28*/ -{0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02},/*"=",29*/ -{0x04,0x10,0x0C,0x18,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00,0x00,0x00},/*">",30*/ -{0x04,0x00,0x06,0x00,0x02,0x00,0x82,0x1B,0xC2,0x1B,0x62,0x00,0x3E,0x00,0x1C,0x00},/*"?",31*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x82,0x11,0xC2,0x13,0xE2,0x13,0xFE,0x13,0xFC,0x03},/*"@",32*/ -{0xF0,0x1F,0xF8,0x1F,0x0C,0x01,0x06,0x01,0x06,0x01,0x0C,0x01,0xF8,0x1F,0xF0,0x1F},/*"A",33*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"B",34*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x02,0x10,0x02,0x10,0x06,0x18,0x0C,0x0C},/*"C",35*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"D",36*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0xE2,0x10,0x06,0x18,0x06,0x18},/*"E",37*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0xE2,0x00,0x06,0x00,0x06,0x00},/*"F",38*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x82,0x10,0x82,0x10,0x86,0x0F,0x8C,0x1F},/*"G",39*/ -{0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFE,0x1F,0xFE,0x1F},/*"H",40*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00},/*"I",41*/ -{0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x02,0x00},/*"J",42*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0xE0,0x00,0xB0,0x01,0x18,0x03,0x0E,0x1E,0x06,0x1C},/*"K",43*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x18},/*"L",44*/ -{0xFE,0x1F,0xFE,0x1F,0x18,0x00,0xF0,0x00,0xF0,0x00,0x18,0x00,0xFE,0x1F,0xFE,0x1F},/*"M",45*/ -{0xFE,0x1F,0xFE,0x1F,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0xFE,0x1F,0xFE,0x1F},/*"N",46*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFC,0x0F},/*"O",47*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0x42,0x00,0x7E,0x00,0x3C,0x00},/*"P",48*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x1C,0x02,0x38,0x02,0x70,0xFE,0x5F,0xFC,0x0F},/*"Q",49*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x00,0x42,0x00,0xC2,0x00,0xFE,0x1F,0x3C,0x1F},/*"R",50*/ -{0x1C,0x0C,0x3E,0x1C,0x62,0x10,0x42,0x10,0x42,0x10,0xC2,0x10,0x8E,0x1F,0x0C,0x0F},/*"S",51*/ -{0x06,0x00,0x06,0x00,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x06,0x00,0x06,0x00},/*"T",52*/ -{0xFE,0x0F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0xFE,0x1F,0xFE,0x0F},/*"U",53*/ -{0xFE,0x03,0xFE,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xFE,0x07,0xFE,0x03},/*"V",54*/ -{0xFE,0x07,0xFE,0x1F,0x00,0x1C,0xC0,0x07,0xC0,0x07,0x00,0x1C,0xFE,0x1F,0xFE,0x07},/*"W",55*/ -{0x0E,0x1C,0x1E,0x1E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1E,0x1E,0x0E,0x1C},/*"X",56*/ -{0x1E,0x00,0x3E,0x00,0x60,0x10,0xC0,0x1F,0xC0,0x1F,0x60,0x10,0x3E,0x00,0x1E,0x00},/*"Y",57*/ -{0x06,0x1E,0x06,0x1F,0x82,0x11,0xC2,0x10,0x62,0x10,0x32,0x10,0x1E,0x18,0x0E,0x18},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x20,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,0x00},/*"^",62*/ -{0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x0E,0x20,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x0F,0xC0,0x1F,0x00,0x10},/*"a",65*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x20,0x10,0x20,0x10,0x60,0x10,0xC0,0x1F,0x80,0x0F},/*"b",66*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x60,0x18,0x40,0x08},/*"c",67*/ -{0x80,0x0F,0xC0,0x1F,0x60,0x10,0x20,0x10,0x22,0x10,0xFE,0x0F,0xFE,0x1F,0x00,0x10},/*"d",68*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x19,0xC0,0x09},/*"e",69*/ -{0x00,0x00,0x20,0x10,0xFC,0x1F,0xFE,0x1F,0x22,0x10,0x22,0x00,0x06,0x00,0x04,0x00},/*"f",70*/ -{0xC0,0x4F,0xE0,0xDF,0x20,0x90,0x20,0x90,0x20,0x90,0xC0,0xFF,0xE0,0x7F,0x20,0x00},/*"g",71*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"h",72*/ -{0x00,0x00,0x20,0x10,0x20,0x10,0xEC,0x1F,0xEC,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"i",73*/ -{0x00,0x60,0x00,0xC0,0x20,0x80,0x20,0x80,0xEC,0xFF,0xEC,0x7F,0x00,0x00,0x00,0x00},/*"j",74*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x80,0x01,0x80,0x03,0xC0,0x06,0x60,0x1C,0x20,0x18},/*"k",75*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"l",76*/ -{0xE0,0x1F,0xE0,0x1F,0x60,0x00,0xC0,0x0F,0xC0,0x0F,0x60,0x00,0xE0,0x1F,0xC0,0x1F},/*"m",77*/ -{0x20,0x00,0xE0,0x1F,0xC0,0x1F,0x20,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"n",78*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"o",79*/ -{0x20,0x80,0xE0,0xFF,0xC0,0xFF,0x20,0x90,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"p",80*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x90,0xC0,0xFF,0xE0,0xFF,0x20,0x80},/*"q",81*/ -{0x20,0x10,0xE0,0x1F,0xC0,0x1F,0x60,0x10,0x20,0x00,0x20,0x00,0x60,0x00,0x40,0x00},/*"r",82*/ -{0xC0,0x08,0xE0,0x19,0x20,0x11,0x20,0x11,0x20,0x13,0x20,0x12,0x60,0x1E,0x40,0x0C},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xFC,0x0F,0xFE,0x1F,0x20,0x10,0x20,0x18,0x00,0x08,0x00,0x00},/*"t",84*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0xE0,0x0F,0xE0,0x1F,0x00,0x10},/*"u",85*/ -{0xE0,0x03,0xE0,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xE0,0x07,0xE0,0x03},/*"v",86*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x18,0x00,0x0F,0x00,0x0F,0x00,0x18,0xE0,0x1F,0xE0,0x0F},/*"w",87*/ -{0x20,0x10,0x60,0x18,0xC0,0x0C,0x80,0x07,0x80,0x07,0xC0,0x0C,0x60,0x18,0x20,0x10},/*"x",88*/ -{0xE0,0x8F,0xE0,0x9F,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xD0,0xE0,0x7F,0xE0,0x3F},/*"y",89*/ -{0x60,0x18,0x60,0x1C,0x20,0x16,0x20,0x13,0xA0,0x11,0xE0,0x10,0x60,0x18,0x20,0x18},/*"z",90*/ -{0x00,0x00,0x00,0x00,0x80,0x00,0xFC,0x1F,0x7E,0x3F,0x02,0x20,0x02,0x20,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3E,0x7C,0x3E,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x02,0x20,0x02,0x20,0x7E,0x3F,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,0x00},/*"}",93*/ -}; -#endif - -void LCD_Common::printInt(uint16_t value, int8_t padding) -{ - uint16_t den = 10000; - for (int8_t i = 5; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_Common::printLong(uint32_t value, int8_t padding) -{ - uint32_t den = 1000000000; - for (int8_t i = 10; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_SSD1306::setCursor(byte column, byte line) -{ - m_col = column; - m_row = line; - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address -} - -size_t LCD_SSD1306::write(uint8_t c) -{ - if (c == '\n') { - setCursor(0, m_row + ((m_font == FONT_SIZE_SMALL) ? 1 : 2)); - return 1; - } else if (c == '\r') { - m_col = 0; - return 1; - } -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - for (byte i = 0; i < 5; i++) { - byte d = pgm_read_byte(&font5x8[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.write(0); - } else { - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; i > 0; i--) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; - if (m_col >= 128) { - m_col = 0; - m_row ++; - } -#ifndef MEMORY_SAVING - } else { - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = 0; i <= 14; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = 1; i <= 15; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 17 : 9; - if (m_col >= 128) { - m_col = 0; - m_row += 2; - } - } -#endif -#ifdef TWBR - TWBR = twbrbackup; -#endif - return 1; -} - -void LCD_SSD1306::writeDigit(byte n) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - if (m_font == FONT_SIZE_SMALL) { - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - if (n <= 9) { - n += '0' - 0x21; - for (byte i = 0; i < 5; i++) { - Wire.write(pgm_read_byte(&font5x8[n][i])); - } - Wire.write(0); - } else { - for (byte i = 0; i < 6; i++) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += 6; - } else if (m_font == FONT_SIZE_MEDIUM) { - write(n <= 9 ? ('0' + n) : ' '); -#ifndef MEMORY_SAVING - } else if (m_font == FONT_SIZE_LARGE) { - if (n <= 9) { - byte i; - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (; i < 32; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; -#endif - } else { - if (n <= 9) { - byte i; - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 1]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 2);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 2]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - ssd1306_command(0xB0 + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 1);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - ssd1306_command(0xB0 + m_row + 2);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SSD1306::draw(const PROGMEM byte* buffer, byte width, byte height) -{ - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - - const PROGMEM byte *p = buffer; - height >>= 3; - width >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i + m_row);//set page address - ssd1306_command(m_col & 0xf);//set lower column address - ssd1306_command(0x10 | (m_col >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < width; k++, p++) { - Wire.write(pgm_read_byte(p)); - } - Wire.endTransmission(); - } - } - m_col += width; -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SSD1306::clearLine(byte line) -{ - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - - // send a bunch of data in one xmission - ssd1306_command(0xB0 + line);//set page address - ssd1306_command(0);//set lower column address - ssd1306_command(0x10);//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < 16; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SSD1306::clear(byte x, byte y, byte width, byte height) -{ - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - - height >>= 3; - width >>= 3; - y >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i + y);//set page address - ssd1306_command(x & 0xf);//set lower column address - ssd1306_command(0x10 | (x >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < width; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - setCursor(0, 0); -} - -void LCD_SSD1306::setContrast(byte Contrast) -{ - ssd1306_command(SSD1306_SETCONTRAST); - ssd1306_command(Contrast); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.h b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.h deleted file mode 100644 index 51781ab..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/MicroLCD.h +++ /dev/null @@ -1,119 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for multiple models of monochrome LCD display -* Distributed under GPL v2.0 -* Copyright (c) 2013-2014 Stanley Huang -* All rights reserved. -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include - -//#define MEMORY_SAVING - -typedef enum { - FONT_SIZE_SMALL = 0, - FONT_SIZE_MEDIUM, - FONT_SIZE_LARGE, - FONT_SIZE_XLARGE -} FONT_SIZE; - -#define FLAG_PAD_ZERO 1 -#define FLAG_PIXEL_DOUBLE_H 2 -#define FLAG_PIXEL_DOUBLE_V 4 -#define FLAG_PIXEL_DOUBLE (FLAG_PIXEL_DOUBLE_H | FLAG_PIXEL_DOUBLE_V) - -extern const PROGMEM unsigned char font5x8[][5]; -extern const PROGMEM unsigned char digits8x8[][8] ; -extern const PROGMEM unsigned char digits16x16[][32]; -extern const PROGMEM unsigned char digits16x24[][48]; -extern const PROGMEM unsigned char font8x16_doslike[][16]; -extern const PROGMEM unsigned char font8x16_terminal[][16]; - -class LCD_Common -{ -public: - LCD_Common():m_font(FONT_SIZE_SMALL),m_flags(0) {} - void setFontSize(FONT_SIZE size) { m_font = size; } - void setFlags(byte flags) { m_flags = flags; } - virtual void backlight(bool on) {} - virtual void draw(const PROGMEM byte* buffer, byte width, byte height) {} - void printInt(uint16_t value, int8_t padding = -1); - void printLong(uint32_t value, int8_t padding = -1); -protected: - virtual void writeDigit(byte n) {} - byte m_font; - byte m_flags; -}; - -class LCD_Null : public LCD_Common, public Print -{ -public: - byte getLines() { return 0; } - byte getCols() { return 0; } - void clearLine(byte line) {} - void clear() {} - void begin() {} - void setCursor(byte column, byte line) {} - size_t write(uint8_t c) { return 0; } -}; - -#include "SSD1306.h" - -class LCD_SSD1306 : public LCD_Common, public SSD1306, public Print -{ -public: - void setCursor(byte column, byte line); - void setContrast(byte Contrast); - void draw(const PROGMEM byte* buffer, byte width, byte height); - size_t write(uint8_t c); - void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64); - void clearLine(byte line); - byte getLines() { return 21; } - byte getCols() { return 8; } -private: - void writeDigit(byte n); - byte m_col; - byte m_row; -}; - -class LCD_SH1106 : public LCD_Common, public Print -{ -public: - void begin(); - void setCursor(byte column, byte line); - void draw(const PROGMEM byte* buffer, byte width, byte height); - size_t write(uint8_t c); - void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64); - void clearLine(byte line); - byte getLines() { return 21; } - byte getCols() { return 8; } -private: - void WriteCommand(unsigned char ins); - void WriteData(unsigned char dat); - void writeDigit(byte n); - byte m_col; - byte m_row; -}; - -#include "PCD8544.h" - -class LCD_PCD8544 : public LCD_Common, public PCD8544 -{ -public: - byte getLines() { return 6; } - byte getCols() { return 14; } - void backlight(bool on) - { - pinMode(7, OUTPUT); - digitalWrite(7, on ? HIGH : LOW); - } - void clearLine(byte line) - { - setCursor(0, line); - for (byte i = 14; i > 0; i--) write(' '); - } - void draw(const PROGMEM byte* buffer, byte width, byte height); -private: - void writeDigit(byte n); -}; - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.cpp deleted file mode 100644 index 6b339fe..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.cpp +++ /dev/null @@ -1,316 +0,0 @@ -/* - * PCD8544 - Interface with Philips PCD8544 (or compatible) LCDs. - * - * Copyright (c) 2010 Carlos Rodrigues - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - - -#include "PCD8544.h" - -#include -#include - -extern const PROGMEM unsigned char font5x8[][5]; - -/* - * If this was a ".h", it would get added to sketches when using - * the "Sketch -> Import Library..." menu on the Arduino IDE... - */ - -PCD8544::PCD8544(unsigned char sclk, unsigned char sdin, - unsigned char dc, unsigned char reset, - unsigned char sce): - pin_sclk(sclk), - pin_sdin(sdin), - pin_dc(dc), - pin_reset(reset), - pin_sce(sce) -{} - - -void PCD8544::begin(unsigned char model) -{ - this->column = 0; - this->line = 0; - - // Sanitize the custom glyphs... - memset(this->custom, 0, sizeof(this->custom)); - - // All pins are outputs (these displays cannot be read)... - pinMode(this->pin_sclk, OUTPUT); - pinMode(this->pin_sdin, OUTPUT); - pinMode(this->pin_dc, OUTPUT); - pinMode(this->pin_reset, OUTPUT); - pinMode(this->pin_sce, OUTPUT); - - // Reset the controller state... - digitalWrite(this->pin_reset, HIGH); - digitalWrite(this->pin_sce, HIGH); - digitalWrite(this->pin_reset, LOW); - delay(100); - digitalWrite(this->pin_reset, HIGH); - - // Set the LCD parameters... - this->send(PCD8544_CMD, 0x21); // extended instruction set control (H=1) - this->send(PCD8544_CMD, 0x13); // bias system (1:48) - - if (model == CHIP_ST7576) { - this->send(PCD8544_CMD, 0xe0); // higher Vop, too faint at default - this->send(PCD8544_CMD, 0x05); // partial display mode - } else { - this->send(PCD8544_CMD, 0xc2); // default Vop (3.06 + 66 * 0.06 = 7V) - } - - this->send(PCD8544_CMD, 0x20); // extended instruction set control (H=0) - this->send(PCD8544_CMD, 0x09); // all display segments on - - // Clear RAM contents... - this->clear(); - - // Activate LCD... - this->send(PCD8544_CMD, 0x08); // display blank - this->send(PCD8544_CMD, 0x0c); // normal mode (0x0d = inverse mode) - delay(100); - - // Place the cursor at the origin... - this->send(PCD8544_CMD, 0x80); - this->send(PCD8544_CMD, 0x40); -} - - -void PCD8544::stop() -{ - this->clear(); - this->setPower(false); -} - - -void PCD8544::clear() -{ - this->setCursor(0, 0); - - for (unsigned short i = 0; i < PCD8544_WIDTH * (PCD8544_HEIGHT/8); i++) { - this->send(PCD8544_DATA, 0x00); - } - - this->setCursor(0, 0); -} - - -void PCD8544::clearLine() -{ - this->setCursor(0, this->line); - - for (unsigned char i = 0; i < PCD8544_WIDTH; i++) { - this->send(PCD8544_DATA, 0x00); - } - - this->setCursor(0, this->line); -} - - -void PCD8544::setPower(bool on) -{ - this->send(PCD8544_CMD, on ? 0x20 : 0x24); -} - - -inline void PCD8544::display() -{ - this->setPower(true); -} - - -inline void PCD8544::noDisplay() -{ - this->setPower(false); -} - - -void PCD8544::setInverse(bool inverse) -{ - this->send(PCD8544_CMD, inverse ? 0x0d : 0x0c); -} - - -void PCD8544::home() -{ - this->setCursor(0, this->line); -} - - -void PCD8544::setCursor(unsigned char column, unsigned char line) -{ - if (column > PCD8544_WIDTH) { - column = 0; - line++; - } - if (line > PCD8544_HEIGHT / 8) - line = 0; - - this->column = column; - this->line = line; - - this->send(PCD8544_CMD, 0x80 | column); - this->send(PCD8544_CMD, 0x40 | line); -} - - -void PCD8544::createChar(unsigned char chr, const unsigned char *glyph) -{ - // ASCII 0-31 only... - if (chr >= ' ') { - return; - } - - this->custom[chr] = glyph; -} - - -size_t PCD8544::write(uint8_t chr) -{ - // ASCII 7-bit only... - if (chr >= 0x7f) { - return 0; - } - - if (chr == '\n') { - column = 0; - line = (line + 1) % (PCD8544_HEIGHT/9 + 1); - return 0; - } else if (chr == '\r') { - column = 0; - return 0; - } - - const unsigned char *glyph; - unsigned char pgm_buffer[5]; - - if (chr >= ' ') { - // Regular ASCII characters are kept in flash to save RAM... - memcpy_P(pgm_buffer, &font5x8[chr - ' '], sizeof(pgm_buffer)); - glyph = pgm_buffer; - } else { - // Custom glyphs, on the other hand, are stored in RAM... - if (custom[chr]) { - glyph = custom[chr]; - } else { - // Default to a space character if unset... - memcpy_P(pgm_buffer, &font5x8[0], sizeof(pgm_buffer)); - glyph = pgm_buffer; - } - } - - // Output one column at a time... - for (unsigned char i = 0; i < 5; i++) { - this->send(PCD8544_DATA, glyph[i]); - } - - // One column between characters... - this->send(PCD8544_DATA, 0x00); - - // Update the cursor position... - this->column = (this->column + 6) % PCD8544_WIDTH; - - if (this->column == 0) { - this->line = (this->line + 1) % (PCD8544_HEIGHT/9 + 1); - } - -#if ARDUINO >= 100 - return 1; -#endif -} - -void PCD8544::draw8x8(const unsigned char *data) -{ - // Output one column at a time... - for (unsigned char i = 0; i < 8; i++) { - this->send(PCD8544_DATA, data[i]); - } - this->setCursor(column + 8, line); -} - -void PCD8544::draw16x16(const unsigned char *data) -{ - unsigned char scolumn = this->column; - unsigned char sline = this->line; - // Output one column at a time... - for (unsigned char i = 0; i < 16; i++) { - this->send(PCD8544_DATA, data[i]); - } - this->setCursor(scolumn, sline + 1); - for (unsigned char i = 0; i < 16; i++) { - this->send(PCD8544_DATA, data[i + 16]); - } - // Update the cursor position... - this->setCursor(scolumn + 16, sline); -} - -void PCD8544::drawColumn(unsigned char lines, unsigned char value) -{ - unsigned char scolumn = this->column; - unsigned char sline = this->line; - - // Keep "value" within range... - if (value > lines*8) { - value = lines*8; - } - - // Find the line where "value" resides... - unsigned char mark = (lines*8 - 1 - value)/8; - - // Clear the lines above the mark... - for (unsigned char line = 0; line < mark; line++) { - this->setCursor(scolumn, sline + line); - this->send(PCD8544_DATA, 0x00); - } - - // Compute the byte to draw at the "mark" line... - unsigned char b = 0xff; - for (unsigned char i = 0; i < lines*8 - mark*8 - value; i++) { - b <<= 1; - } - - this->setCursor(scolumn, sline + mark); - this->send(PCD8544_DATA, b); - - // Fill the lines below the mark... - for (unsigned char line = mark + 1; line < lines; line++) { - this->setCursor(scolumn, sline + line); - this->send(PCD8544_DATA, 0xff); - } - - // Leave the cursor in a consistent position... - this->setCursor(scolumn + 1, sline); -} - - -void PCD8544::send(unsigned char type, unsigned char data) -{ - digitalWrite(this->pin_dc, type); - - digitalWrite(this->pin_sce, LOW); - shiftOut(this->pin_sdin, this->pin_sclk, MSBFIRST, data); - digitalWrite(this->pin_sce, HIGH); -} - - -/* vim: set expandtab ts=4 sw=4: */ diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.h b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.h deleted file mode 100644 index c96bc7e..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/PCD8544.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * PCD8544 - Interface with Philips PCD8544 (or compatible) LCDs. - * - * Copyright (c) 2010 Carlos Rodrigues - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - - -#ifndef PCD8544_H -#define PCD8544_H - - -#if ARDUINO < 100 -#include -#else -#include -#endif - -// Chip variants supported... -#define CHIP_PCD8544 0 -#define CHIP_ST7576 1 - -#define PCD8544_WIDTH 84 -#define PCD8544_HEIGHT 48 - -#define PCD8544_CMD LOW -#define PCD8544_DATA HIGH - -class PCD8544: public Print { - public: - // All the pins can be changed from the default values... - PCD8544(unsigned char sclk = 2, /* clock (display pin 2) */ - unsigned char sdin = 3, /* data-in (display pin 3) */ - unsigned char dc = 4, /* data select (display pin 4) */ - unsigned char reset = 6, /* reset (display pin 8) */ - unsigned char sce = 5); /* enable (display pin 5) */ - - // Display initialization (dimensions in pixels)... - void begin(unsigned char model=CHIP_PCD8544); - void stop(); - - // Erase everything on the display... - void clear(); - void clearLine(); // ...or just the current line - - // Control the display's power state... - void setPower(bool on); - - // For compatibility with the LiquidCrystal library... - void display(); - void noDisplay(); - - // Activate white-on-black mode (whole display)... - void setInverse(bool inverse); - - // Place the cursor at the start of the current line... - void home(); - - // Place the cursor at position (column, line)... - void setCursor(unsigned char column, unsigned char line); - - // Assign a user-defined glyph (5x8) to an ASCII character (0-31)... - void createChar(unsigned char chr, const unsigned char *glyph); - - // Write an ASCII character at the current cursor position (7-bit)... -#if ARDUINO < 100 - virtual void write(uint8_t chr); -#else - virtual size_t write(uint8_t chr); -#endif - - // Draw a chart element at the current cursor position... - void drawColumn(unsigned char lines, unsigned char value); - - void draw8x8(const unsigned char *data); - void draw16x16(const unsigned char *data); - - protected: - // Current cursor position... - unsigned char column; - unsigned char line; - // Send a command or data to the display... - void send(unsigned char type, unsigned char data); - - private: - unsigned char pin_sclk; - unsigned char pin_sdin; - unsigned char pin_dc; - unsigned char pin_reset; - unsigned char pin_sce; - - // User-defined glyphs (below the ASCII space character)... - const unsigned char *custom[' ']; -}; - - -#endif /* PCD8544_H */ - - -/* vim: set expandtab ts=4 sw=4: */ diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SH1106.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SH1106.cpp deleted file mode 100644 index a46c821..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SH1106.cpp +++ /dev/null @@ -1,413 +0,0 @@ -#include -#include -#include "MicroLCD.h" - -#define I2C_ADDR 0x78 >> 1 - -void LCD_SH1106::WriteCommand(unsigned char ins) -{ - Wire.beginTransmission(I2C_ADDR);//0x78 >> 1 - Wire.write(0x00);//0x00 - Wire.write(ins); - Wire.endTransmission(); -} - -void LCD_SH1106::WriteData(unsigned char dat) -{ - Wire.beginTransmission(I2C_ADDR);//0x78 >> 1 - Wire.write(0x40);//0x40 - Wire.write(dat); - Wire.endTransmission(); -} - -void LCD_SH1106::setCursor(unsigned char x, unsigned char y) -{ - m_col = x + 2; - m_row = y; - WriteCommand(0xb0 + m_row); - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address -} - -void LCD_SH1106::clear(byte x, byte y, byte width, byte height) -{ - WriteCommand(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - WriteCommand(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - WriteCommand(SSD1306_SETSTARTLINE | 0x0); // line #0 - - height >>= 3; - width >>= 3; - y >>= 3; -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - WriteCommand(0xB0 + i + y);//set page address - WriteCommand((x + 2) & 0xf);//set lower column address - WriteCommand(0x10 | (x >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte k = 0; k < width; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - setCursor(0, 0); -} - -size_t LCD_SH1106::write(uint8_t c) -{ - if (c == '\n') { - setCursor(0, m_row + ((m_font == FONT_SIZE_SMALL) ? 1 : 2)); - return 1; - } else if (c == '\r') { - m_col = 0; - return 1; - } - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - for (byte i = 0; i < 5; i++) { - byte d = pgm_read_byte(&font5x8[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.write(0); - } else { - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; i > 0; i--) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 11 : 6; - if (m_col >= 128) { - m_col = 0; - m_row ++; - } -#ifndef MEMORY_SAVING - } else { - if (c > 0x20 && c < 0x7f) { - c -= 0x21; - - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = 0; i <= 14; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = 1; i <= 15; i += 2) { - byte d = pgm_read_byte(&font8x16_terminal[c][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 16 : 8; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 17 : 9; - if (m_col >= 128) { - m_col = 0; - m_row += 2; - } - } -#endif -#ifdef TWBR - TWBR = twbrbackup; -#endif - return 1; -} - -void LCD_SH1106::writeDigit(byte n) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - if (m_font == FONT_SIZE_SMALL) { - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - if (n <= 9) { - n += '0' - 0x21; - for (byte i = 0; i < 5; i++) { - Wire.write(pgm_read_byte(&font5x8[n][i])); - } - Wire.write(0); - } else { - for (byte i = 0; i < 6; i++) { - Wire.write(0); - } - } - Wire.endTransmission(); - m_col += 6; - } else if (m_font == FONT_SIZE_MEDIUM) { - write(n <= 9 ? ('0' + n) : ' '); -#ifndef MEMORY_SAVING - } else if (m_font == FONT_SIZE_LARGE) { - if (n <= 9) { - byte i; - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (; i < 32; i ++) { - byte d = pgm_read_byte(&digits16x16[n][i]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; -#endif - } else { - if (n <= 9) { - byte i; - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 1]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 2);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (i = 0; i < 16; i ++) { - byte d = pgm_read_byte(&digits16x24[n][i * 3 + 2]); - Wire.write(d); - if (m_flags & FLAG_PIXEL_DOUBLE_H) Wire.write(d); - } - Wire.endTransmission(); - } else { - WriteCommand(0xB0 + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 1);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - - WriteCommand(0xB0 + m_row + 2);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte i = (m_flags & FLAG_PIXEL_DOUBLE_H) ? 32 : 16; i > 0; i--) { - Wire.write(0); - } - Wire.endTransmission(); - } - m_col += (m_flags & FLAG_PIXEL_DOUBLE_H) ? 30 : 16; - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void LCD_SH1106::draw(const PROGMEM byte* buffer, byte width, byte height) -{ -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - - WriteCommand(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - WriteCommand(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - WriteCommand(SSD1306_SETSTARTLINE | 0x0); // line #0 - - const PROGMEM byte *p = buffer; - height >>= 3; - width >>= 3; - for (byte i = 0; i < height; i++) { - // send a bunch of data in one xmission - WriteCommand(0xB0 + i + m_row);//set page address - WriteCommand(m_col & 0xf);//set lower column address - WriteCommand(0x10 | (m_col >> 4));//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(I2C_ADDR); - Wire.write(0x40); - for (byte k = 0; k < width; k++, p++) { - Wire.write(pgm_read_byte(p)); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif - m_col += width; -} - -void LCD_SH1106::begin() -{ - Wire.begin(); - - WriteCommand(0xAE); /*display off*/ - - WriteCommand(0x02); /*set lower column address*/ - WriteCommand(0x10); /*set higher column address*/ - - WriteCommand(0x40); /*set display start line*/ - - WriteCommand(0xB0); /*set page address*/ - - WriteCommand(0x81); /*contract control*/ - WriteCommand(0x80); /*128*/ - - WriteCommand(0xA1); /*set segment remap*/ - - WriteCommand(0xA6); /*normal / reverse*/ - - WriteCommand(0xA8); /*multiplex ratio*/ - WriteCommand(0x3F); /*duty = 1/32*/ - - WriteCommand(0xad); /*set charge pump enable*/ - WriteCommand(0x8b); /*external VCC */ - - WriteCommand(0x30); /*0X30---0X33 set VPP 9V liangdu!!!!*/ - - WriteCommand(0xC8); /*Com scan direction*/ - - WriteCommand(0xD3); /*set display offset*/ - WriteCommand(0x00); /* 0x20 */ - - WriteCommand(0xD5); /*set osc division*/ - WriteCommand(0x80); - - WriteCommand(0xD9); /*set pre-charge period*/ - WriteCommand(0x1f); /*0x22*/ - - WriteCommand(0xDA); /*set COM pins*/ - WriteCommand(0x12); - - WriteCommand(0xdb); /*set vcomh*/ - WriteCommand(0x40); - - WriteCommand(0xAF); /*display ON*/ - - clear(); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.cpp deleted file mode 100644 index 75662e8..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.cpp +++ /dev/null @@ -1,277 +0,0 @@ -#include -//#include -#include -#include -#include "SSD1306.h" - -SSD1306::SSD1306(int8_t SCLK, int8_t DC, int8_t RST, int8_t CS) { - cs = CS; - rst = RST; - dc = DC; - sclk = SCLK; -} - -// initializer for I2C - we only indicate the reset pin! - SSD1306::SSD1306(int8_t reset) { - sclk = dc = cs = -1; - rst = reset; -} - - -void SSD1306::begin(uint8_t vccstate, uint8_t i2caddr) { - _i2caddr = i2caddr; - - - // set pin directions - // I2C Init - Wire.begin(); // Is this the right place for this? - - // Setup reset pin direction (used by both SPI and I2C) - pinMode(rst, OUTPUT); - digitalWrite(rst, HIGH); - // VDD (3.3V) goes high at start, lets just chill for a ms - delay(1); - // bring reset low - digitalWrite(rst, LOW); - // wait 10ms - delay(10); - // bring out of reset - digitalWrite(rst, HIGH); - // turn on VCC (9V?) - #if defined SSD1306_128_32 - // Init sequence for 128x32 OLED module - ssd1306_command(SSD1306_DISPLAYOFF); // 0xAE - ssd1306_command(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5 - ssd1306_command(0x80); // the suggested ratio 0x80 - ssd1306_command(SSD1306_SETMULTIPLEX); // 0xA8 - ssd1306_command(0x1F); - ssd1306_command(SSD1306_SETDISPLAYOFFSET); // 0xD3 - ssd1306_command(0x0); // no offset - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - ssd1306_command(SSD1306_CHARGEPUMP); // 0x8D - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x10); } - else - { ssd1306_command(0x14); } - ssd1306_command(SSD1306_MEMORYMODE); // 0x20 - ssd1306_command(0x00); // 0x0 act like ks0108 - ssd1306_command(SSD1306_SEGREMAP | 0x1); - ssd1306_command(SSD1306_COMSCANDEC); - ssd1306_command(SSD1306_SETCOMPINS); // 0xDA - ssd1306_command(0x02); - ssd1306_command(SSD1306_SETCONTRAST); // 0x81 - ssd1306_command(0x8F); - ssd1306_command(SSD1306_SETPRECHARGE); // 0xd9 - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x22); } - else - { ssd1306_command(0xF1); } - ssd1306_command(SSD1306_SETVCOMDETECT); // 0xDB - ssd1306_command(0x40); - ssd1306_command(SSD1306_DISPLAYALLON_RESUME); // 0xA4 - ssd1306_command(SSD1306_NORMALDISPLAY); // 0xA6 - #endif - - #if defined SSD1306_128_64 - // Init sequence for 128x64 OLED module - ssd1306_command(SSD1306_DISPLAYOFF); // 0xAE - ssd1306_command(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5 - ssd1306_command(0x80); // the suggested ratio 0x80 - ssd1306_command(SSD1306_SETMULTIPLEX); // 0xA8 - ssd1306_command(0x3F); - ssd1306_command(SSD1306_SETDISPLAYOFFSET); // 0xD3 - ssd1306_command(0x0); // no offset - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - ssd1306_command(SSD1306_CHARGEPUMP); // 0x8D - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x10); } - else - { ssd1306_command(0x14); } - ssd1306_command(SSD1306_MEMORYMODE); // 0x20 - ssd1306_command(0x00); // 0x0 act like ks0108 - ssd1306_command(SSD1306_SEGREMAP | 0x1); - ssd1306_command(SSD1306_COMSCANDEC); - ssd1306_command(SSD1306_SETCOMPINS); // 0xDA - ssd1306_command(0x12); - ssd1306_command(SSD1306_SETCONTRAST); // 0x81 - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x9F); } - else - { ssd1306_command(0xCF); } - ssd1306_command(SSD1306_SETPRECHARGE); // 0xd9 - if (vccstate == SSD1306_EXTERNALVCC) - { ssd1306_command(0x22); } - else - { ssd1306_command(0xF1); } - ssd1306_command(SSD1306_SETVCOMDETECT); // 0xDB - ssd1306_command(0x40); - ssd1306_command(SSD1306_DISPLAYALLON_RESUME); // 0xA4 - ssd1306_command(SSD1306_NORMALDISPLAY); // 0xA6 - #endif - - ssd1306_command(SSD1306_DISPLAYON);//--turn on oled panel - - // clear screen - delay(5); - - ssd1306_command(SSD1306_SETLOWCOLUMN | 0x0); // low col = 0 - ssd1306_command(SSD1306_SETHIGHCOLUMN | 0x0); // hi col = 0 - ssd1306_command(SSD1306_SETSTARTLINE | 0x0); // line #0 - - for (byte i = 0; i < SSD1306_LCDHEIGHT / 8; i++) { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i);//set page address - ssd1306_command(0);//set lower column address - ssd1306_command(0x10);//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < SSD1306_LCDWIDTH / 8; k++) { - Wire.write(0); - } - Wire.endTransmission(); - } - } -} - - -void SSD1306::invertDisplay(uint8_t i) { - if (i) { - ssd1306_command(SSD1306_INVERTDISPLAY); - } else { - ssd1306_command(SSD1306_NORMALDISPLAY); - } -} - -void SSD1306::ssd1306_command(uint8_t c) { - // I2C - uint8_t control = 0x00; // Co = 0, D/C = 0 - Wire.beginTransmission(_i2caddr); - Wire.write(control); - Wire.write(c); - Wire.endTransmission(); -} - -// startscrollright -// Activate a right handed scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrollright(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_RIGHT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(0XFF); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -// startscrollleft -// Activate a right handed scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrollleft(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_LEFT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(0XFF); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -// startscrolldiagright -// Activate a diagonal scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrolldiagright(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_SET_VERTICAL_SCROLL_AREA); - ssd1306_command(0X00); - ssd1306_command(SSD1306_LCDHEIGHT); - ssd1306_command(SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -// startscrolldiagleft -// Activate a diagonal scroll for rows start through stop -// Hint, the display is 16 rows tall. To scroll the whole display, run: -// display.scrollright(0x00, 0x0F) -void SSD1306::startscrolldiagleft(uint8_t start, uint8_t stop){ - ssd1306_command(SSD1306_SET_VERTICAL_SCROLL_AREA); - ssd1306_command(0X00); - ssd1306_command(SSD1306_LCDHEIGHT); - ssd1306_command(SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL); - ssd1306_command(0X00); - ssd1306_command(start); - ssd1306_command(0X00); - ssd1306_command(stop); - ssd1306_command(0X01); - ssd1306_command(SSD1306_ACTIVATE_SCROLL); -} - -void SSD1306::stopscroll(void){ - ssd1306_command(SSD1306_DEACTIVATE_SCROLL); -} - -void SSD1306::ssd1306_data(uint8_t c) { - // I2C - uint8_t control = 0x40; // Co = 0, D/C = 1 - Wire.beginTransmission(_i2caddr); - Wire.write(control); - Wire.write(c); - Wire.endTransmission(); -} - -void SSD1306::fill(unsigned char dat) -{ - unsigned char i,j; - - ssd1306_command(0x00);//set lower column address - ssd1306_command(0x10);//set higher column address - ssd1306_command(0xB0);//set page address - -#ifdef TWBR - uint8_t twbrbackup = TWBR; - TWBR = 18; // upgrade to 400KHz! -#endif - for (byte i=0; i<(SSD1306_LCDHEIGHT/8); i++) - { - // send a bunch of data in one xmission - ssd1306_command(0xB0 + i);//set page address - ssd1306_command(0);//set lower column address - ssd1306_command(0x10);//set higher column address - - for(byte j = 0; j < 8; j++){ - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - for (byte k = 0; k < 16; k++) { - Wire.write(dat); - } - Wire.endTransmission(); - } - } -#ifdef TWBR - TWBR = twbrbackup; -#endif -} - -void SSD1306::draw8x8(byte* buffer, uint8_t x, uint8_t y) -{ - // send a bunch of data in one xmission - ssd1306_command(0xB0 + y);//set page address - ssd1306_command(x & 0xf);//set lower column address - ssd1306_command(0x10 | (x >> 4));//set higher column address - - Wire.beginTransmission(_i2caddr); - Wire.write(0x40); - Wire.write(buffer, 8); - Wire.endTransmission(); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.h b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.h deleted file mode 100644 index ae7f339..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/SSD1306.h +++ /dev/null @@ -1,112 +0,0 @@ -#include "Arduino.h" - -#define SSD1306_I2C_ADDRESS 0x3C // 011110+SA0+RW - 0x3C or 0x3D -// Address for 128x32 is 0x3C -// Address for 128x32 is 0x3D (default) or 0x3C (if SA0 is grounded) - -/*========================================================================= - SSD1306 Displays - ----------------------------------------------------------------------- - The driver is used in multiple displays (128x64, 128x32, etc.). - Select the appropriate display below to create an appropriately - sized framebuffer, etc. - - SSD1306_128_64 128x64 pixel display - - SSD1306_128_32 128x32 pixel display - - You also need to set the LCDWIDTH and LCDHEIGHT defines to an - appropriate size - - -----------------------------------------------------------------------*/ - #define SSD1306_128_64 -// #define SSD1306_128_32 -/*=========================================================================*/ - -#if defined SSD1306_128_64 && defined SSD1306_128_32 - #error "Only one SSD1306 display can be specified at once in SSD1306.h" -#endif -#if !defined SSD1306_128_64 && !defined SSD1306_128_32 - #error "At least one SSD1306 display must be specified in SSD1306.h" -#endif - -#if defined SSD1306_128_64 - #define SSD1306_LCDWIDTH 128 - #define SSD1306_LCDHEIGHT 64 -#endif -#if defined SSD1306_128_32 - #define SSD1306_LCDWIDTH 128 - #define SSD1306_LCDHEIGHT 32 -#endif - -#define SSD1306_SETCONTRAST 0x81 -#define SSD1306_DISPLAYALLON_RESUME 0xA4 -#define SSD1306_DISPLAYALLON 0xA5 -#define SSD1306_NORMALDISPLAY 0xA6 -#define SSD1306_INVERTDISPLAY 0xA7 -#define SSD1306_DISPLAYOFF 0xAE -#define SSD1306_DISPLAYON 0xAF - -#define SSD1306_SETDISPLAYOFFSET 0xD3 -#define SSD1306_SETCOMPINS 0xDA - -#define SSD1306_SETVCOMDETECT 0xDB - -#define SSD1306_SETDISPLAYCLOCKDIV 0xD5 -#define SSD1306_SETPRECHARGE 0xD9 - -#define SSD1306_SETMULTIPLEX 0xA8 - -#define SSD1306_SETLOWCOLUMN 0x00 -#define SSD1306_SETHIGHCOLUMN 0x10 - -#define SSD1306_SETSTARTLINE 0x40 - -#define SSD1306_MEMORYMODE 0x20 - -#define SSD1306_COMSCANINC 0xC0 -#define SSD1306_COMSCANDEC 0xC8 - -#define SSD1306_SEGREMAP 0xA0 - -#define SSD1306_CHARGEPUMP 0x8D - -#define SSD1306_EXTERNALVCC 0x1 -#define SSD1306_SWITCHCAPVCC 0x2 - -// Scrolling #defines -#define SSD1306_ACTIVATE_SCROLL 0x2F -#define SSD1306_DEACTIVATE_SCROLL 0x2E -#define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3 -#define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26 -#define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27 -#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29 -#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A - -class SSD1306 { -public: - SSD1306(int8_t SCLK, int8_t DC, int8_t RST, int8_t CS); - SSD1306(int8_t RST = 4); - - void begin(uint8_t switchvcc = SSD1306_SWITCHCAPVCC, uint8_t i2caddr = SSD1306_I2C_ADDRESS); - void ssd1306_command(uint8_t c); - void ssd1306_data(uint8_t c); - - void invertDisplay(uint8_t i); - void draw8x8(byte* buffer, byte x, byte y); - - void startscrollright(uint8_t start, uint8_t stop); - void startscrollleft(uint8_t start, uint8_t stop); - - void startscrolldiagright(uint8_t start, uint8_t stop); - void startscrolldiagleft(uint8_t start, uint8_t stop); - void stopscroll(void); - - void fill(unsigned char dat); - void clearBuffer(); - -protected: - uint8_t _i2caddr; -private: - int8_t sclk, dc, rst, cs; -}; diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/examples/lcdhello/lcdhello.ino b/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/examples/lcdhello/lcdhello.ino deleted file mode 100644 index 198775b..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MicroLCD/examples/lcdhello/lcdhello.ino +++ /dev/null @@ -1,80 +0,0 @@ -/************************************************************************* -* Demo sketch for MicroLCD library -* Distributed under GPL v2.0 -* Copyright (c) 2013-2014 Stanley Huang -* All rights reserved. -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include -#include - -//LCD_SH1106 lcd; /* for SH1106 OLED module */ -LCD_SSD1306 lcd; /* for SSD1306 OLED module */ - -const PROGMEM uint8_t smile[48 * 48 / 8] = { -0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xC0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x00, -0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE, -0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x30,0xF8,0xF8,0xF8,0xF8,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF8,0xF8,0xFC,0xF8,0x30,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F, -0x00,0x03,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE1,0xC7,0x87,0x0F,0x1F,0x3F,0x3F,0x3E,0x7E,0x7C,0x7C,0x7C,0x78,0x78,0x7C,0x7C,0x7C,0x7E,0x3E,0x3F,0x3F,0x1F,0x0F,0x87,0xC7,0xE1,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0x7F,0x3F,0x0F,0x03,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -}; - -const PROGMEM uint8_t tick[16 * 16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -const PROGMEM uint8_t cross[16 * 16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; - -void setup() -{ - lcd.begin(); -} - -void loop() -{ - lcd.clear(); - lcd.setCursor(40, 1); - lcd.draw(smile, 48, 48); - delay(1000); - - lcd.clear(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.println("Hello, world!"); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.println("Hello, world!"); - delay(1000); - - lcd.setCursor(40, 6); - lcd.draw(tick, 16, 16); - lcd.setCursor(72, 6); - lcd.draw(cross, 16, 16); - delay(1000); - - lcd.clear(); - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.printLong(12345678); - delay(1000); - - lcd.clear(); - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printLong(12345678); - delay(1000); - - lcd.clear(); - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_LARGE); - lcd.printLong(12345678); - delay(1000); - - lcd.clear(); - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printLong(12345678); - delay(1000); -} - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9325D.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9325D.cpp deleted file mode 100644 index 375ad21..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9325D.cpp +++ /dev/null @@ -1,454 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" - -/********************************************** -Define zone -**********************************************/ - -#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) - -#define RS 59 -#define WR 58 -#define CS 57 -#define RST 56 - -#define T_CLK 55 -#define T_CS 60 -#define T_DIN 54 -#define T_DOUT 8 -#define T_IRQ 9 - -#define X_CONST 240 -#define Y_CONST 320 - -#define PREC_TOUCH_CONST 10 - -#define PixSizeX 13.78 -#define PixOffsX 411 - -#define PixSizeY 11.01 -#define PixOffsY 378 - -#define WINDOW_XADDR_START 0x0050 // Horizontal Start Address Set -#define WINDOW_XADDR_END 0x0051 // Horizontal End Address Set -#define WINDOW_YADDR_START 0x0052 // Vertical Start Address Set -#define WINDOW_YADDR_END 0x0053 // Vertical End Address Set -#define GRAM_XADDR 0x0020 // GRAM Horizontal Address Set -#define GRAM_YADDR 0x0021 // GRAM Vertical Address Set -#define GRAMWR 0x0022 // memory write - -/* LCD color */ -#define White 0xFFFF -#define Black 0x0000 -#define Blue 0x001F -#define Blue2 0x051F -#define Red 0xF800 -#define Magenta 0xF81F -#define Green 0x07E0 -#define Cyan 0x7FFF -#define Yellow 0xFFE0 - -/********************************************** -Standard C functions zone -**********************************************/ -void LCD_ILI9325D::Enable() { digitalWrite(CS,LOW); } -void LCD_ILI9325D::Disable() { digitalWrite(CS,HIGH); } - -void LCD_ILI9325D::SetCommandMode() -{ - digitalWrite(CS,HIGH); - digitalWrite(RS, LOW); - digitalWrite(CS,LOW); -} - -void LCD_ILI9325D::SetDataMode() -{ - digitalWrite(CS,HIGH); - digitalWrite(RS, HIGH); - digitalWrite(CS,LOW); -} - -void LCD_ILI9325D::WriteData(byte l, byte h) -{ - if (h != lastData) { - PORTE = (h & 0x3) | ((h & 0xC) << 2) | ((h & 0x20) >> 2); - PORTG = (h & 0x10) << 1; - PORTH = (h & 0xC0) >> 3; - lastData = h; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - - if (l != lastData) { - PORTE = (l & 0x3) | ((l & 0xC) << 2) | ((l & 0x20) >> 2); - PORTG = (l & 0x10) << 1; - PORTH = (l & 0xC0) >> 3; - lastData = l; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; -} - -void LCD_ILI9325D::WriteData(uint16_t c) -{ - byte value = *((unsigned char*)&c + 1); - if (value != lastData) { - PORTE = (value & 0x3) | ((value & 0xC) << 2) | ((value & 0x20) >> 2); - PORTG = (value & 0x10) << 1; - PORTH = (value & 0xC0) >> 3; - lastData = value; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - - value = (unsigned char)c; - if (value != lastData) { - PORTE = (value & 0x3) | ((value & 0xC) << 2) | ((value & 0x20) >> 2); - PORTG = (value & 0x10) << 1; - PORTH = (value & 0xC0) >> 3; - lastData = value; - } - - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; -} - -void LCD_ILI9325D::WriteCommandData(uint16_t cmd,uint16_t dat) -{ - SetCommandMode(); - WriteData(cmd); - SetDataMode(); - WriteData(dat); -} - -void LCD_ILI9325D::begin() -{ - pinMode(RS,OUTPUT); - pinMode(WR,OUTPUT); - pinMode(CS,OUTPUT); - pinMode(RST,OUTPUT); - - //DDRD = 0xFF; - for(int a=0;a < 8;a++) - { - pinMode(a,OUTPUT); - digitalWrite(a, LOW); - } - - digitalWrite(RST,HIGH); - delay(5); - digitalWrite(RST,LOW); - delay(5); - - digitalWrite(RST,HIGH); - digitalWrite(CS,HIGH); - digitalWrite(WR,HIGH); - delay(50); - - PORTE = 0; - PORTG = 0; - PORTH = 0; - lastData = 0; - - WriteCommandData(0x00E5, 0x78F0); // set SRAM internal timing - WriteCommandData(0x0001, 0x0100); // set Driver Output Control - WriteCommandData(0x0002, 0x0200); // set 1 line inversion - WriteCommandData(0x0003, 0x1030); // set GRAM write direction and BGR=1. - WriteCommandData(0x0004, 0x0000); // Resize register - WriteCommandData(0x0008, 0x0207); // set the back porch and front porch - WriteCommandData(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0] - WriteCommandData(0x000A, 0x0000); // FMARK function - WriteCommandData(0x000C, 0x0000); // RGB interface setting - WriteCommandData(0x000D, 0x0000); // Frame marker Position - WriteCommandData(0x000F, 0x0000); // RGB interface polarity - //*************Power 00On sequence ****************// - WriteCommandData(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB - WriteCommandData(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0] - WriteCommandData(0x0012, 0x0000); // VREG1OUT voltage - WriteCommandData(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude - WriteCommandData(0x0007, 0x0001); - delay(200); // Dis-ch00arge capacitor power voltage - WriteCommandData(0x0010, 0x1690); // SAP, BT[3:0], AP, DSTB, SLP, STB - WriteCommandData(0x0011, 0x0227); // Set DC1[2:0], DC0[2:0], VC[2:0] - delay(50); // Delay 50ms - WriteCommandData(0x0012, 0x000D); // 0012 - delay(50); // Delay 50ms - WriteCommandData(0x0013, 0x1200); // VDV[4:0] for VCOM amplitude - WriteCommandData(0x0029, 0x000A); // 04 VCM[5:0] for VCOMH - WriteCommandData(0x002B, 0x000D); // Set Frame Rate - delay(50); // Delay 50ms - WriteCommandData(0x0020, 0x0000); // GRAM horizontal Address - WriteCommandData(0x0021, 0x0000); // GRAM Vertical Address - // ----------- Adjust00 the Gamma Curve ----------// - WriteCommandData(0x0030, 0x0000); - WriteCommandData(0x0031, 0x0404); - WriteCommandData(0x0032, 0x0003); - WriteCommandData(0x0035, 0x0405); - WriteCommandData(0x0036, 0x0808); - WriteCommandData(0x0037, 0x0407); - WriteCommandData(0x0038, 0x0303); - WriteCommandData(0x0039, 0x0707); - WriteCommandData(0x003C, 0x0504); - WriteCommandData(0x003D, 0x0808); - //------------------ 00Set GRAM area ---------------// - WriteCommandData(0x0050, 0x0000); // Horizontal GRAM Start Address - WriteCommandData(0x0051, 0x00EF); // Horizontal GRAM End Address - WriteCommandData(0x0052, 0x0000); // Vertical GRAM Start Address - WriteCommandData(0x0053, 0x013F); // Vertical GRAM Start Address - WriteCommandData(0x0060, 0xA700); // Gate Scan Line - WriteCommandData(0x0061, 0x0001); // NDL,VLE, REV - WriteCommandData(0x006A, 0x0000); // set scrolling line - //-------------- Part00ial Display Control ---------// - WriteCommandData(0x0080, 0x0000); - WriteCommandData(0x0081, 0x0000); - WriteCommandData(0x0082, 0x0000); - WriteCommandData(0x0083, 0x0000); - WriteCommandData(0x0084, 0x0000); - WriteCommandData(0x0085, 0x0000); - //-------------- Pane00l Control -------------------// - WriteCommandData(0x0090, 0x0010); - WriteCommandData(0x0092, 0x0000); - WriteCommandData(0x0007, 0x0133); - - Disable(); - - m_color[0] = 0; - m_color[1] = 0xffff; - clear(); -} - -void LCD_ILI9325D::setXY(uint16_t x0,uint16_t x1,uint16_t y1,uint16_t y0) -{ - y1 = 319 - y1; - y0 = 319 - y0; - - WriteCommandData(WINDOW_XADDR_START,x0); - WriteCommandData(WINDOW_XADDR_END,x1); - WriteCommandData(WINDOW_YADDR_START,y0); - WriteCommandData(WINDOW_YADDR_END,y1); - WriteCommandData(GRAM_XADDR,x0); - WriteCommandData(GRAM_YADDR,y0); - SetCommandMode(); - WriteData(0x0022);//LCD_WriteCMD(GRAMWR); - SetDataMode(); -} - -void LCD_ILI9325D::clearPixels(uint16_t pixels) -{ - digitalWrite(RS,HIGH);//LCD_RS=0; - digitalWrite(CS,LOW);//LCD_CS =0; - PORTE = 0; - PORTG = 0; - PORTH = 0; - lastData = 0; - do { - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - } while (--pixels); - digitalWrite(CS,HIGH);//LCD_CS =0; -} - -void LCD_ILI9325D::clear(uint16_t x, uint16_t y, uint16_t width, uint16_t height) -{ - unsigned long count = (unsigned long)width * height; - setXY(y, y + height - 1, x, x + width - 1); - - digitalWrite(RS,HIGH);//LCD_RS=0; - digitalWrite(CS,LOW);//LCD_CS =0; - PORTE = 0; - PORTG = 0; - PORTH = 0; - lastData = 0; - do { - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - digitalWrite(WR,LOW);//LCD_WR=0; - digitalWrite(WR,HIGH);//LCD_WR=1; - } while (--count); - digitalWrite(CS,HIGH);//LCD_CS =0; - m_x = x; - m_y = y; -} - -size_t LCD_ILI9325D::write(uint8_t c) -{ - if (c == '\n') { - m_x += (m_font + 1) << 3; - return 0; - } else if (c == '\r') { - setXY(m_x, m_x + 7, m_y, 319); - clearPixels((320 - m_y) * 8); - m_y = 0; - return 0; - } - - if (m_font == FONT_SIZE_SMALL) { - setXY(m_x, m_x + 7, m_y, m_y + 4); - m_y += 6; - if (m_y >= 320) { - m_x += (m_font + 1) << 3; - m_y = 0; - if (m_x >= 240) { - m_x = 0; - } - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[5]; - memcpy_P(pgm_buffer, &font5x8[c - 0x21], 5); - byte i = 4; - do { - unsigned char d = pgm_buffer[i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } while (i--); - } else { - clearPixels(5 * 8); - } - } else { - setXY(m_x, m_x + 15, m_y, m_y + 7); - m_y += 9; - if (m_y >= 320) { - m_x += (m_font + 1) << 3; - m_y = 0; - if (m_x >= 240) { - m_x = 0; - } - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - for (byte i = 0; i < 16; i += 2) { - unsigned char d = pgm_buffer[14 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } else { - clearPixels(8 * 16); - } - } -} - -void LCD_ILI9325D::writeDigit(byte n) -{ - if (m_font == FONT_SIZE_LARGE) { - setXY(m_x, m_x + 15, m_y, m_y + 15); - m_y += 16; - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - for (byte i = 0; i < 16; i++) { - unsigned char d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[31 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } else { - clearPixels(16 * 16); - } - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_x, m_x + 23, m_y, m_y + 15); - m_y += 18; - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - for (int i = 0; i < 48; i += 3) { - unsigned char d = pgm_buffer[45 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[46 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - d = pgm_buffer[47 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } else { - clearPixels(16 * 24); - } - } else { - write(n <= 9 ? ('0' + n) : ' '); - } -} - -void LCD_ILI9325D::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - setXY(m_x, m_x + height - 1, m_y, m_y + width - 1); - uint16_t i = width - 1; - do { - for (uint8_t h = 0; h < rows; h++) { - byte d = pgm_read_byte_far(buffer + i + width * h); - for (byte j = 0; j < 8; j++, d >>= 1) { - WriteData(m_color[d & 1]); - } - } - } while (i--); - m_y += width; -} - -void LCD_ILI9325D::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY) -{ - byte rows = height >> 3; - if (scaleY == 0) scaleY = scaleX; - setXY(m_x, m_x + height - 1, m_y, m_y + width - 1); - uint16_t i = width - 1; - do { - for (byte n = 0; n < scaleX; n++) { - for (uint8_t h = 0; h < rows; h++) { - byte d = pgm_read_byte_far(buffer + i + width * h); - for (byte j = 0; j < 8; j++, d >>= 1) { - for (byte m = 0; m < scaleY; m++) { - WriteData(m_color[d & 1]); - } - } - } - } - } while (i--); - m_y += width * scaleX; -} - -void LCD_ILI9325D::draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - char buf[240]; - setXY(m_x, m_x + height * 2 - 1, m_y, m_y + width * 2- 1); - uint16_t i = width - 1; - do { - memcpy_P(buf, buffer + i * height * 2, height * 2); - for (byte j = 0; j < height * 2; j += 2) { - WriteData(buf[j], buf[j + 1]); - WriteData(buf[j], buf[j + 1]); - } - for (byte j = 0; j < height * 2; j += 2) { - WriteData(buf[j], buf[j + 1]); - WriteData(buf[j], buf[j + 1]); - } - } while (i--); - m_y += width * 2; -} - -#endif diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9341.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9341.cpp deleted file mode 100644 index 4f8b64c..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/ILI9341.cpp +++ /dev/null @@ -1,526 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include -#include "MultiLCD.h" - -/* Pins -D4 : RESET -D5 : CS -D6 : D/C -D7 : LED -D11 : MOSI -D12 : MISO -D13 : SCK -*/ - -#define PIN_RESET 4 -#define PIN_CS 5 -#define PIN_DC 6 -#define PIN_LED 7 - -//Basic Colors -#define RED 0xf800 -#define GREEN 0x07e0 -#define BLUE 0x001f -#define BLACK 0x0000 -#define YELLOW 0xffe0 -#define WHITE 0xffff - -//Other Colors -#define CYAN 0x07ff -#define BRIGHT_RED 0xf810 -#define GRAY1 0x8410 -#define GRAY2 0x4208 - -//TFT resolution 240*320 -#define MIN_X 0 -#define MIN_Y 0 -#define MAX_X 239 -#define MAX_Y 319 - -#define TFT_CS_LOW digitalWrite(PIN_CS, LOW) -#define TFT_CS_HIGH digitalWrite(PIN_CS, HIGH) -#define TFT_DC_LOW digitalWrite(PIN_DC, LOW) -#define TFT_DC_HIGH digitalWrite(PIN_DC, HIGH) -#define TFT_RST_OFF digitalWrite(PIN_RESET, HIGH) -#define TFT_RST_ON digitalWrite(PIN_RESET, LOW) - - -#define YP A2 // must be an analog pin, use "An" notation! -#define XM A1 // must be an analog pin, use "An" notation! -#define YM 14 // can be a digital pin, this is A0 -#define XP 17 // can be a digital pin, this is A3 - -#define TS_MINX 116*2 -#define TS_MAXX 890*2 -#define TS_MINY 83*2 -#define TS_MAXY 913*2 - -void LCD_ILI9341::sendCMD(uint8_t index) -{ - TFT_DC_LOW; - TFT_CS_LOW; - SPI.transfer(index); - TFT_CS_HIGH; -} - -void LCD_ILI9341::WRITE_DATA(uint8_t data) -{ - TFT_DC_HIGH; - TFT_CS_LOW; - SPI.transfer(data); - TFT_CS_HIGH; -} - -void LCD_ILI9341::sendData(uint16_t data) -{ - uint8_t data1 = data>>8; - uint8_t data2 = data&0xff; - TFT_DC_HIGH; - TFT_CS_LOW; - SPI.transfer(data1); - SPI.transfer(data2); - TFT_CS_HIGH; -} - -void LCD_ILI9341::WRITE_Package(uint16_t *data, uint8_t howmany) -{ - uint16_t data1 = 0; - uint8_t data2 = 0; - - TFT_DC_HIGH; - TFT_CS_LOW; - uint8_t count=0; - for(count=0;count>8; - data2 = data[count]&0xff; - SPI.transfer(data1); - SPI.transfer(data2); - } - TFT_CS_HIGH; -} - -uint8_t LCD_ILI9341::Read_Register(uint8_t Addr, uint8_t xParameter) -{ - uint8_t data=0; - sendCMD(0xd9); /* ext command */ - WRITE_DATA(0x10+xParameter); /* 0x11 is the first Parameter */ - TFT_DC_LOW; - TFT_CS_LOW; - SPI.transfer(Addr); - TFT_DC_HIGH; - data = SPI.transfer(0); - TFT_CS_HIGH; - return data; -} - -void LCD_ILI9341::begin (void) -{ - pinMode(PIN_CS, OUTPUT); - pinMode(PIN_DC, OUTPUT); - pinMode(PIN_LED, OUTPUT); - pinMode(PIN_RESET, OUTPUT); - - SPI.begin(); - TFT_CS_HIGH; - TFT_DC_HIGH; - uint8_t i=0, TFTDriver=0; - - TFT_RST_ON; - delay(10); - TFT_RST_OFF; - - for(i=0;i<3;i++) - { - TFTDriver = readID(); - } - - sendCMD(0xCB); - WRITE_DATA(0x39); - WRITE_DATA(0x2C); - WRITE_DATA(0x00); - WRITE_DATA(0x34); - WRITE_DATA(0x02); - - sendCMD(0xCF); - WRITE_DATA(0x00); - WRITE_DATA(0XC1); - WRITE_DATA(0X30); - - sendCMD(0xE8); - WRITE_DATA(0x85); - WRITE_DATA(0x00); - WRITE_DATA(0x78); - - sendCMD(0xEA); - WRITE_DATA(0x00); - WRITE_DATA(0x00); - - sendCMD(0xED); - WRITE_DATA(0x64); - WRITE_DATA(0x03); - WRITE_DATA(0X12); - WRITE_DATA(0X81); - - sendCMD(0xF7); - WRITE_DATA(0x20); - - sendCMD(0xC0); //Power control - WRITE_DATA(0x23); //VRH[5:0] - - sendCMD(0xC1); //Power control - WRITE_DATA(0x10); //SAP[2:0];BT[3:0] - - sendCMD(0xC5); //VCM control - WRITE_DATA(0x3e); //Contrast - WRITE_DATA(0x28); - - sendCMD(0xC7); //VCM control2 - WRITE_DATA(0x86); //-- - - sendCMD(0x36); // Memory Access Control - WRITE_DATA(0x48); //C8 - - sendCMD(0x3A); - WRITE_DATA(0x55); - - sendCMD(0xB1); - WRITE_DATA(0x00); - WRITE_DATA(0x18); - - sendCMD(0xB6); // Display Function Control - WRITE_DATA(0x08); - WRITE_DATA(0x82); - WRITE_DATA(0x27); - - sendCMD(0xF2); // 3Gamma Function Disable - WRITE_DATA(0x00); - - sendCMD(0x26); //Gamma curve selected - WRITE_DATA(0x01); - - sendCMD(0xE0); //Set Gamma - WRITE_DATA(0x0F); - WRITE_DATA(0x31); - WRITE_DATA(0x2B); - WRITE_DATA(0x0C); - WRITE_DATA(0x0E); - WRITE_DATA(0x08); - WRITE_DATA(0x4E); - WRITE_DATA(0xF1); - WRITE_DATA(0x37); - WRITE_DATA(0x07); - WRITE_DATA(0x10); - WRITE_DATA(0x03); - WRITE_DATA(0x0E); - WRITE_DATA(0x09); - WRITE_DATA(0x00); - - sendCMD(0XE1); //Set Gamma - WRITE_DATA(0x00); - WRITE_DATA(0x0E); - WRITE_DATA(0x14); - WRITE_DATA(0x03); - WRITE_DATA(0x11); - WRITE_DATA(0x07); - WRITE_DATA(0x31); - WRITE_DATA(0xC1); - WRITE_DATA(0x48); - WRITE_DATA(0x08); - WRITE_DATA(0x0F); - WRITE_DATA(0x0C); - WRITE_DATA(0x31); - WRITE_DATA(0x36); - WRITE_DATA(0x0F); - - sendCMD(0x11); //Exit Sleep - delay(120); - - sendCMD(0x29); //Display on - sendCMD(0x2c); - clear(); - - setBackLight(255); - setColor(0xffff); - setBackColor(0); -} - -uint8_t LCD_ILI9341::readID(void) -{ - uint8_t i=0; - uint8_t data[3] ; - uint8_t ID[3] = {0x00, 0x93, 0x41}; - uint8_t ToF=1; - for(i=0;i<3;i++) - { - data[i]=Read_Register(0xd3,i+1); - if(data[i] != ID[i]) - { - ToF=0; - } - } - if(!ToF) /* data!=ID */ - { -#if 0 - Serial.print("Read TFT ID failed, ID should be 0x09341, but read ID = 0x"); - for(i=0;i<3;i++) - { - Serial.print(data[i],HEX); - } - Serial.println(); -#endif - } - return ToF; -} - -void LCD_ILI9341::setCol(uint16_t StartCol,uint16_t EndCol) -{ - sendCMD(0x2A); /* Column Command address */ - sendData(StartCol); - sendData(EndCol); -} - -void LCD_ILI9341::setPage(uint16_t StartPage,uint16_t EndPage) -{ - sendCMD(0x2B); /* Column Command address */ - sendData(StartPage); - sendData(EndPage); -} - -void LCD_ILI9341::fill(uint16_t x0, uint16_t x1, uint16_t y0, uint16_t y1, uint16_t color) -{ - uint8_t Hcolor = color>>8; - uint8_t Lcolor = color&0xff; - - setCol(239 - y1, 239 - y0); - setPage(x0, x1); - sendCMD(0x2c); /* start to write to display ra */ - /* m */ - TFT_DC_HIGH; - TFT_CS_LOW; - for(uint16_t n = (x1-x0+1) * (y1-y0+1); n > 0; n--) - { - SPI.transfer(Hcolor); - SPI.transfer(Lcolor); - } - TFT_CS_HIGH; -} - -void LCD_ILI9341::clear(void) -{ - setCol(0, 239); - setPage(0, 319); - sendCMD(0x2c); /* start to write to display ra */ - /* m */ - - TFT_DC_HIGH; - TFT_CS_LOW; - for(uint16_t i=0; i<38400; i++) - { - SPI.transfer(0); - SPI.transfer(0); - SPI.transfer(0); - SPI.transfer(0); - } - TFT_CS_HIGH; - - m_x = 0; - m_y = 0; -} - - -void LCD_ILI9341::setXY(uint16_t x0, uint16_t x1, uint16_t y0, uint16_t y1) -{ - setCol(239 - x1, 239 - x0); - setPage(y0, y1); - sendCMD(0x2c); -} - -void LCD_ILI9341::setPixel(uint16_t poX, uint16_t poY,uint16_t color) -{ - setXY(poY, poY, poX, poX); - sendData(color); -} - -void LCD_ILI9341::setBackLight(byte brightness) -{ - digitalWrite(PIN_LED, brightness ? HIGH : LOW); -} - -void LCD_ILI9341::clearPixels(uint16_t pixels) -{ - TFT_DC_HIGH; - TFT_CS_LOW; - for(uint16_t i = 0; i < pixels; i++) - { - SPI.transfer(0); - SPI.transfer(0); - } - TFT_CS_HIGH; -} - -void LCD_ILI9341::sendPixelData(byte d) -{ - for (byte j = 0; j < 8; j++, d <<= 1) { - if (d & 0x80) { - SPI.transfer(m_color[1][1]); - SPI.transfer(m_color[1][0]); - } else { - SPI.transfer(m_color[0][1]); - SPI.transfer(m_color[0][0]); - } - } -} - -size_t LCD_ILI9341::write(uint8_t c) -{ - if (c == '\n') { - m_y += (m_font + 1) << 3; - return 1; - } else if (c == '\r') { - m_x = 0; - return 1; - } - -#ifndef MEMORY_SAVING - if (m_font == FONT_SIZE_SMALL) { -#endif - setXY(m_y, m_y + 7, m_x, m_x + 4); - m_x += 6; - if (m_x >= 320) { - m_y += 8; - m_x = 0; - if (m_y >= 240) m_y = 0; - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[5]; - memcpy_P(pgm_buffer, &font5x8[c - 0x21], 5); - TFT_DC_HIGH; - TFT_CS_LOW; - for (byte i = 0; i < 5; i++) { - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(5 * 8); - } -#ifndef MEMORY_SAVING - } else { - setXY(m_y, m_y + 15, m_x, m_x + 7); - m_x += 9; - if (m_x >= 320) { - m_y += 16; - m_x = 0; - if (m_y >= 240) m_y = 0; - } - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - TFT_DC_HIGH; - TFT_CS_LOW; - for (byte i = 0; i < 16; i += 2) { - sendPixelData(pgm_buffer[i + 1]); - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(8 * 16); - } - } -#endif - return 1; -} - -void LCD_ILI9341::writeDigit(byte n) -{ - if (m_font == FONT_SIZE_LARGE) { - setXY(m_y, m_y + 15, m_x, m_x + 15); - m_x += 16; - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - TFT_DC_HIGH; - TFT_CS_LOW; - for (byte i = 0; i < 16; i++) { - sendPixelData(pgm_buffer[16 + i]); - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(16 * 16); - } - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_y, m_y + 23, m_x, m_x + 15); - m_x += 17; - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - TFT_DC_HIGH; - TFT_CS_LOW; - for (int i = 0; i < 48; i += 3) { - sendPixelData(pgm_buffer[i + 2]); - sendPixelData(pgm_buffer[i + 1]); - sendPixelData(pgm_buffer[i]); - } - TFT_CS_HIGH; - } else { - clearPixels(16 * 24); - } - } else { - write(n <= 9 ? ('0' + n) : ' '); - } -} - -void LCD_ILI9341::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - setXY(m_y, m_y + height - 1, m_x, m_x + width - 1); - uint16_t i = width - 1; - TFT_DC_HIGH; - TFT_CS_LOW; - for (uint16_t i = 0; i < width; i++) { - for (int8_t h = rows - 1; h >= 0; h--) { - byte d = pgm_read_byte(buffer + i + width * h); - sendPixelData(d); - } - } - TFT_CS_HIGH; - m_x += width; -} - -void LCD_ILI9341::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte ScaleY) -{ - byte rows = height >> 3; - setXY(m_y, m_y + height * 2 - 1, m_x, m_x + width * 2 - 1); - uint16_t i = width - 1; - uint16_t w = width << 1; - TFT_DC_HIGH; - TFT_CS_LOW; - for (uint16_t i = 0; i < w; i++) { - for (int8_t h = rows - 1; h >= 0; h--) { - byte d = pgm_read_byte(buffer + (i >> 1) + width * h); - for (byte j = 0; j < 8; j++, d <<= 1) { - if (d & 0x80) { - SPI.transfer(m_color[1][1]); - SPI.transfer(m_color[1][0]); - SPI.transfer(m_color[1][1]); - SPI.transfer(m_color[1][0]); - } else { - SPI.transfer(m_color[0][1]); - SPI.transfer(m_color[0][0]); - SPI.transfer(m_color[0][1]); - SPI.transfer(m_color[0][0]); - } - } - } - }; - TFT_CS_HIGH; - m_x += (width << 1); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.cpp deleted file mode 100644 index e60e773..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" -#include "fonts.h" - -void LCD_Common::printInt(uint16_t value, int8_t padding) -{ - uint16_t den = 10000; - for (int8_t i = 5; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} - -void LCD_Common::printLong(uint32_t value, int8_t padding) -{ - uint32_t den = 1000000000; - for (int8_t i = 10; i > 0; i--) { - byte v = (byte)(value / den); - value -= v * den; - den /= 10; - if (v == 0 && padding && den) { - if (padding >= i) { - writeDigit((m_flags & FLAG_PAD_ZERO) ? 0 : -1); - } - continue; - } - padding = 0; - writeDigit(v); - } -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.h deleted file mode 100644 index 620023c..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/MultiLCD.h +++ /dev/null @@ -1,326 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include - -#if defined(__AVR_ATmega168P__) -#define MEMORY_SAVING -#endif - -#ifdef __arm__ -#define PROGMEM -#endif - -typedef enum { - FONT_SIZE_SMALL = 0, - FONT_SIZE_MEDIUM, - FONT_SIZE_LARGE, - FONT_SIZE_XLARGE -} FONT_SIZE; - -#define FLAG_PAD_ZERO 1 -#define FLAG_PIXEL_DOUBLE_H 2 -#define FLAG_PIXEL_DOUBLE_V 4 -#define FLAG_PIXEL_DOUBLE (FLAG_PIXEL_DOUBLE_H | FLAG_PIXEL_DOUBLE_V) - -#define RGB16(r,g,b) (((uint16_t)(r >> 3) << 11) | ((uint16_t)(g >> 2) << 5) | (b >> 3)) - -#define RGB16_RED 0xF800 -#define RGB16_GREEN 0x7E0 -#define RGB16_BLUE 0x1F -#define RGB16_YELLOW 0xFFE0 -#define RGB16_CYAN 0x7FF -#define RGB16_PINK 0xF81F -#define RGB16_WHITE 0xFFFF - - -extern const PROGMEM unsigned char font5x8[][5]; -extern const PROGMEM unsigned char digits8x8[][8] ; -extern const PROGMEM unsigned char digits16x16[][32]; -extern const PROGMEM unsigned char digits16x24[][48]; -extern const PROGMEM unsigned char font8x16_doslike[][16]; -extern const PROGMEM unsigned char font8x16_terminal[][16]; - -class LCD_Common -{ -public: - LCD_Common():m_font(FONT_SIZE_SMALL),m_flags(0) {} - void setFontSize(FONT_SIZE size) { m_font = size; } - void setFlags(byte flags) { m_flags = flags; } - virtual void setBackLight(byte brightness) {} - virtual void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) {} - virtual void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0) {} - virtual void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height) {} - virtual size_t write(uint8_t c) { return 0; } - virtual byte getLines() { return 0; } - virtual byte getCols() { return 0; } - virtual void clearLine(byte line) {} - virtual void clear() {} - virtual void begin() {} - virtual void setCursor(byte column, byte line) {} - virtual byte readTouchData(int& x, int& y) { return 0; } - virtual int getScreenWidth() { return 320; } - virtual int getScreenHeight() { return 240; } - void printInt(uint16_t value, int8_t padding = -1); - void printLong(uint32_t value, int8_t padding = -1); - void printSpace(byte n) - { - for (byte m = 0; m < n; m++) write(' '); - } -protected: - virtual void writeDigit(byte n) {} - byte m_font; - byte m_flags; - uint16_t m_x; - uint16_t m_y; -}; - -#define TFT_LINE_HEIGHT 8 - -class LCD_ILI9325D : public LCD_Common, public Print -{ -public: - LCD_ILI9325D() { m_font = FONT_SIZE_MEDIUM; } - void setCursor(uint16_t column, uint8_t line) - { - m_y = column; - m_x = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_y = x; - m_x = y; - } - void setColor(uint16_t color) - { - m_color[1] = color; - } - void setColor(uint8_t R, uint8_t G, uint8_t B) - { - m_color[1] = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - } - void setBackColor(uint16_t color) - { - m_color[0] = color; - } - void setBackColor(uint8_t R, uint8_t G, uint8_t B) - { - m_color[0] = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - } - void begin(); - void clear(uint16_t x = 0, uint16_t y = 0, uint16_t width = 320, uint16_t height = 240); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); - void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - size_t write(uint8_t); - void clearLine(byte line) - { - clear(0, line * TFT_LINE_HEIGHT, 320, 8); - } - byte getLines() { return 53; } - byte getCols() { return 30; } -private: - void setXY(uint16_t x0,uint16_t x1,uint16_t y0,uint16_t y1); - void writeDigit(byte n); - void clearPixels(uint16_t pixels); - void WriteData(uint16_t c); - void WriteData(byte l, byte h); - void WriteCommandData(uint16_t cmd,uint16_t dat); - void Enable(); - void Disable(); - void SetCommandMode(); - void SetDataMode(); - uint16_t m_x; - uint16_t m_y; - uint16_t m_color[2]; - byte lastData; -}; - -class LCD_ILI9341 : public LCD_Common, public Print -{ -public: - LCD_ILI9341() { m_font = FONT_SIZE_MEDIUM; } - void setCursor(uint16_t column, uint8_t line) - { - m_x = column; - m_y = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_x = x; - m_y = y; - } - void setColor(uint16_t color) - { - m_color[1][0] = color & 0xff; - m_color[1][1] = color >> 8; - } - void setColor(uint8_t R, uint8_t G, uint8_t B) - { - uint16_t color = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - m_color[1][0] = color & 0xff; - m_color[1][1] = color >> 8; - } - void setBackColor(uint16_t color) - { - m_color[0][0] = color & 0xff; - m_color[0][1] = color >> 8; - } - void setBackColor(uint8_t R, uint8_t G, uint8_t B) - { - uint16_t color = ((uint16_t)R << 11) | ((uint16_t)G << 5) | B; - m_color[0][0] = color & 0xff; - m_color[0][1] = color >> 8; - } - void clearLine(byte line) - { - fill(0, line * TFT_LINE_HEIGHT, 320, 8); - } - void begin (void); - void setPixel(uint16_t poX, uint16_t poY,uint16_t color); - void fill(uint16_t XL,uint16_t XR,uint16_t YU,uint16_t YD,uint16_t color = 0); - void clear(void); - size_t write(uint8_t); - void setBackLight(byte brightness); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); -private: - void setXY(uint16_t x0, uint16_t x1, uint16_t y0, uint16_t y1); - void sendPixelData(byte d); - void writeDigit(byte n); - void clearPixels(uint16_t pixels); - void setCol(uint16_t StartCol,uint16_t EndCol); - void setPage(uint16_t StartPage,uint16_t EndPage); - void sendCMD(uint8_t index); - void WRITE_Package(uint16_t *data,uint8_t howmany); - void WRITE_DATA(uint8_t data); - void sendData(uint16_t data); - uint8_t Read_Register(uint8_t Addr,uint8_t xParameter); - uint8_t readID(void); - uint8_t m_color[2][2]; -}; - -class LCD_SSD1289 : public UTFT, public LCD_Common, public Print -{ -public: - LCD_SSD1289() - { - m_font = FONT_SIZE_MEDIUM; - disp_x_size = 239; - disp_y_size = 319; - orient = LANDSCAPE; - display_transfer_mode = 16; - display_model = ITDB32S; - __p1 = 38; - __p2 = 39; - __p3 = 40; - __p4 = 41; - __p5 = 0; - - P_RS = portOutputRegister(digitalPinToPort(38)); - B_RS = digitalPinToBitMask(38); - P_WR = portOutputRegister(digitalPinToPort(39)); - B_WR = digitalPinToBitMask(39); - P_CS = portOutputRegister(digitalPinToPort(40)); - B_CS = digitalPinToBitMask(40); - P_RST = portOutputRegister(digitalPinToPort(41)); - B_RST = digitalPinToBitMask(41); - } - void setCursor(uint16_t column, uint8_t line) - { - m_x = column; - m_y = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_x = x; - m_y = y; - } - void begin(); - void clear(uint16_t x = 0, uint16_t y = 0, uint16_t width = 319, uint16_t height = 239); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); - void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - size_t write(uint8_t); - void clearLine(byte line) - { - clear(0, line * TFT_LINE_HEIGHT, disp_y_size, 8); - } - void setBackLight(byte brightness); - void drawPixel(uint16_t poX, uint16_t poY, uint16_t color); - byte getTouchData(int& x, int& y); -private: - void setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2); - void writeDigit(byte n); - void clearPixels(uint32_t pixels); - void Enable(); - void Disable(); - void shiftOutTouchData(unsigned char data); - unsigned int shiftInTouchData(); -}; - -class LCD_R61581 : public UTFT, public LCD_Common, public Print -{ -public: - LCD_R61581() - { - m_font = FONT_SIZE_MEDIUM; - disp_x_size = 319; - disp_y_size = 479; - orient = LANDSCAPE; - display_transfer_mode = 16; - display_model = CTE35IPS; - __p1 = 38; - __p2 = 39; - __p3 = 40; - __p4 = 41; - __p5 = 0; - - P_RS = portOutputRegister(digitalPinToPort(38)); - B_RS = digitalPinToBitMask(38); - P_WR = portOutputRegister(digitalPinToPort(39)); - B_WR = digitalPinToBitMask(39); - P_CS = portOutputRegister(digitalPinToPort(40)); - B_CS = digitalPinToBitMask(40); - P_RST = portOutputRegister(digitalPinToPort(41)); - B_RST = digitalPinToBitMask(41); - } - void setCursor(uint16_t column, uint8_t line) - { - m_x = column; - m_y = (uint16_t)line * TFT_LINE_HEIGHT; - } - void setXY(uint16_t x, uint16_t y) - { - m_x = x; - m_y = y; - } - void begin(); - void clear(uint16_t x = 0, uint16_t y = 0, uint16_t width = 479, uint16_t height = 319); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - void draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY = 0); - void draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height); - size_t write(uint8_t); - void clearLine(byte line) - { - clear(0, line * TFT_LINE_HEIGHT, disp_y_size, 8); - } - void setBackLight(byte brightness); - void drawPixel(uint16_t poX, uint16_t poY, uint16_t color); - byte getTouchData(int& x, int& y); - int getScreenWidth() { return 480; } - int getScreenHeight() { return 320; } -private: - void setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2); - void writeDigit(byte n); - void clearPixels(uint32_t pixels); - void Enable(); - void Disable(); - void shiftOutTouchData(unsigned char data); - unsigned int shiftInTouchData(); -}; - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/R61581.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/R61581.cpp deleted file mode 100644 index 6e50506..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/R61581.cpp +++ /dev/null @@ -1,517 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" - -/********************************************** -Define zone -**********************************************/ - -#define PIN_CLK 6 -#define PIN_CS 5 -#define PIN_DIN 4 -#define PIN_DOUT 3 -#define PIN_IRQ 2 - -#define PIN_BACKLIGHT 8 - -#define PixSizeX 1143 -#define PixOffsX 1780 - -#define PixSizeY 793 -#define PixOffsY 1380 - -/********************************************** -Standard C functions zone -**********************************************/ -void LCD_R61581::begin() -{ - digitalWrite(PIN_BACKLIGHT, LOW); - delay(50); - pinMode(__p1,OUTPUT); - pinMode(__p2,OUTPUT); - pinMode(__p3,OUTPUT); - if (__p4 != NOTINUSE) - pinMode(__p4,OUTPUT); - if ((display_transfer_mode==LATCHED_16) or ((display_transfer_mode==1) and (display_serial_mode==SERIAL_5PIN))) - pinMode(__p5,OUTPUT); - if (display_transfer_mode!=1) - _set_direction_registers(display_transfer_mode); - - _hw_special_init(); - - sbi(P_RST, B_RST); - delay(5); - cbi(P_RST, B_RST); - delay(15); - sbi(P_RST, B_RST); - delay(15); - - setColor(0xffff); - setBackColor(0); - _transparent = false; - - cbi(P_CS, B_CS); - - LCD_Write_COM(0xB0); - LCD_Write_DATA(0x1E); - - LCD_Write_COM(0xB0); - LCD_Write_DATA(0x00); - - LCD_Write_COM(0xB3); - LCD_Write_DATA(0x02); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x10); - - LCD_Write_COM(0xB4); - LCD_Write_DATA(0x00);//0X10 - -// LCD_Write_COM(0xB9); //PWM Settings for Brightness Control -// LCD_Write_DATA(0x01);// Disabled by default. -// LCD_Write_DATA(0xFF); //0xFF = Max brightness -// LCD_Write_DATA(0xFF); -// LCD_Write_DATA(0x18); - - LCD_Write_COM(0xC0); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x3B);// - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x01); - LCD_Write_DATA(0x00);//NW - LCD_Write_DATA(0x43); - - LCD_Write_COM(0xC1); - LCD_Write_DATA(0x08); - LCD_Write_DATA(0x15);//CLOCK - LCD_Write_DATA(0x08); - LCD_Write_DATA(0x08); - - LCD_Write_COM(0xC4); - LCD_Write_DATA(0x15); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x01); - - LCD_Write_COM(0xC6); - LCD_Write_DATA(0x02); - - LCD_Write_COM(0xC8); - LCD_Write_DATA(0x0c); - LCD_Write_DATA(0x05); - LCD_Write_DATA(0x0A);//0X12 - LCD_Write_DATA(0x6B);//0x7D - LCD_Write_DATA(0x04); - LCD_Write_DATA(0x06);//0x08 - LCD_Write_DATA(0x15);//0x0A - LCD_Write_DATA(0x10); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x60);//0x23 - - LCD_Write_COM(0x36); - LCD_Write_DATA(0x8A); - - LCD_Write_COM(0x0C); - LCD_Write_DATA(0x55); - - LCD_Write_COM(0x3A); - LCD_Write_DATA(0x55); - - LCD_Write_COM(0x38); - - LCD_Write_COM(0xD0); - LCD_Write_DATA(0x07); - LCD_Write_DATA(0x07);//VCI1 - LCD_Write_DATA(0x14);//VRH 0x1D - LCD_Write_DATA(0xA2);//BT 0x06 - - LCD_Write_COM(0xD1); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x5A);//VCM 0x5A - LCD_Write_DATA(0x10);//VDV - - LCD_Write_COM(0xD2); - LCD_Write_DATA(0x03); - LCD_Write_DATA(0x04);//0x24 - LCD_Write_DATA(0x04); - - LCD_Write_COM(0x11); - delay(150); - - LCD_Write_COM(0x2A); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x01); - LCD_Write_DATA(0xDF);//320 - - LCD_Write_COM(0x2B); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x00); - LCD_Write_DATA(0x01); - LCD_Write_DATA(0x3F);//480 - - - delay(100); - - LCD_Write_COM(0x29); - delay(30); - - LCD_Write_COM(0x2C); - delay(30); - - sbi (P_CS, B_CS); - - clear(); - - pinMode(PIN_BACKLIGHT, OUTPUT); - digitalWrite(PIN_BACKLIGHT, HIGH); - - // init pins for touch controller - pinMode(PIN_CLK, OUTPUT); - pinMode(PIN_CS, OUTPUT); - pinMode(PIN_DIN, OUTPUT); - pinMode(PIN_DOUT, INPUT); - pinMode(PIN_IRQ, INPUT_PULLUP); - - digitalWrite(PIN_CS, HIGH); - digitalWrite(PIN_CLK, HIGH); - digitalWrite(PIN_DIN, HIGH); - digitalWrite(PIN_CLK, HIGH); -} - -void LCD_R61581::setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) -{ - swap(word, x1, y1); - swap(word, x2, y2) - y1=disp_y_size-y1; - y2=disp_y_size-y2; - swap(word, y1, y2) - // begin hardware specific code - LCD_Write_COM(0x2a); - LCD_Write_DATA(x1>>8); - LCD_Write_DATA(x1); - LCD_Write_DATA(x2>>8); - LCD_Write_DATA(x2); - LCD_Write_COM(0x2b); - LCD_Write_DATA(y1>>8); - LCD_Write_DATA(y1); - LCD_Write_DATA(y2>>8); - LCD_Write_DATA(y2); - LCD_Write_COM(0x2c); -} - -void LCD_R61581::setBackLight(byte brightness) -{ - analogWrite(PIN_BACKLIGHT, brightness); -} - -void LCD_R61581::Enable() -{ - cbi(P_CS, B_CS); -} -void LCD_R61581::Disable() -{ - sbi(P_CS, B_CS); -} - -void LCD_R61581::drawPixel(uint16_t poX, uint16_t poY,uint16_t color) -{ - Enable(); - setXY(poX, poY, poX, poY); - setPixel(color); - Disable(); -} - -void LCD_R61581::clearPixels(uint32_t pixels) -{ - Enable(); - do { - setPixel(bch, bcl); - } while(--pixels); - Disable(); -} - -void LCD_R61581::clear(uint16_t x, uint16_t y, uint16_t width, uint16_t height) -{ - setColor(0); - fillRect(x, y, x + width, y + height); - setColor(0xffff); - m_x = 0; - m_y = 0; -} - -size_t LCD_R61581::write(uint8_t c) -{ - if (c == '\n') { - m_x = 0; - m_y += m_font == 0 ? 8 : 16; - return 1; - } - if (m_x > disp_y_size) return 0; - Enable(); - if (m_font == FONT_SIZE_SMALL) { - setXY(m_x, m_y, m_x + 4, m_y + 7); - if (c > 0x20 && c < 0x7f) { - byte i = 4; - do { - unsigned char d = pgm_read_byte(&font5x8[c - 0x21][i]); - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } while(i--); - } else { - clearPixels(5 * 8); - } - m_x += 6; - } else { - setXY(m_x, m_y, m_x + 7, m_y + 15); - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - for (byte i = 0; i < 16; i += 2) { - unsigned char d = pgm_buffer[14 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 8); - } - m_x += 9; - } - Disable(); - return 1; -} - -void LCD_R61581::writeDigit(byte n) -{ - Enable(); - if (m_font == FONT_SIZE_LARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 15); - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - for (byte i = 0; i < 16; i++) { - unsigned char d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[31 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 16); - } - m_x += 16; - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 23); - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - for (int i = 0; i < 48; i += 3) { - unsigned char d = pgm_buffer[45 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[46 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[47 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 24); - } - m_x += 18; - } else { - write(n <= 9 ? ('0' + n) : ' '); - } - Disable(); -} - -void LCD_R61581::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - Enable(); - setXY(m_x, m_y, m_x + width - 1, m_y + height - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - setPixel(fch, fcl); - } else { - setPixel(bch, bcl); - } - } - } - } - Disable(); - m_x += width; -} - -void LCD_R61581::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY) -{ - byte rows = height >> 3; - if (scaleY == 0) scaleY = scaleX; - Enable(); - setXY(m_x, m_y, m_x + width * scaleX - 1, m_y + height * scaleY - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (byte n = 0; n < scaleX; n++) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - for (byte m = 0; m < scaleY; m++) { - setPixel(fch, fcl); - } - } else { - for (byte m = 0; m < scaleY; m++) { - setPixel(bch, bcl); - } - } - } - } - } - } - Disable(); - m_x += width * scaleX; -} - -void LCD_R61581::draw2x(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - char buf[240]; - Enable(); - setXY(m_x, m_y, m_x + width * 2 - 1, m_y + height * 2 - 1); - uint16_t i = width - 1; - do { - memcpy_P(buf, buffer + i * height * 2, height * 2); - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - } while (i--); - Disable(); - m_x += width * 2; -} - -void LCD_R61581::shiftOutTouchData(unsigned char data) -{ - unsigned char nop; - unsigned char count; - - digitalWrite(PIN_CLK,LOW); - - for(count=0; count<8; count++) - { - digitalWrite(PIN_DIN, data & 0x80 ? HIGH : LOW); - digitalWrite(PIN_CLK, LOW); - nop++; - digitalWrite(PIN_CLK, HIGH); - data <<= 1; - //nop++; - } -} - -unsigned int LCD_R61581::shiftInTouchData() -{ - unsigned char nop; - unsigned int data = 0; - unsigned char count; - for(count=0; count<12; count++) - { - data <<= 1; - digitalWrite(PIN_CLK, HIGH); - nop++; - digitalWrite(PIN_CLK, LOW); - //nop++; - data |= digitalRead(PIN_DOUT); - } - return data; -} - -byte LCD_R61581::getTouchData(int& x, int& y) -{ - unsigned long tx = 0; - unsigned long ty = 0; - - if (digitalRead(PIN_IRQ) == HIGH) - return 0; - - digitalWrite(PIN_CS,LOW); - for (int i=0; i < 10; i++) - { - shiftOutTouchData(0x90); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - int d = shiftInTouchData(); - if (d >= 3600) { - digitalWrite(PIN_CS,HIGH); - return 0; - } - ty += d; - - shiftOutTouchData(0xD0); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - tx+=shiftInTouchData(); - } - digitalWrite(PIN_CS,HIGH); - x = 480 - (ty - PixOffsY) * 10 / PixSizeY; - y = (tx - PixOffsX) * 10 / PixSizeX; - return 1; -} - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/SSD1289.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/SSD1289.cpp deleted file mode 100644 index dab0b32..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/SSD1289.cpp +++ /dev/null @@ -1,446 +0,0 @@ -/************************************************************************* -* Arduino Text & Bitmap Display Library for color LCDs -* Distributed under GPL v2.0 -* Developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include "MultiLCD.h" - -/********************************************** -Define zone -**********************************************/ - -#define PIN_BACKLIGHT 8 - -#define PIN_CLK 6 -#define PIN_CS 5 -#define PIN_DIN 4 -#define PIN_DOUT 3 -#define PIN_IRQ 2 - -#define PREC_TOUCH_CONST 10 - -#define PixSizeX 136 -#define PixOffsX 425 - -#define PixSizeY 106 -#define PixOffsY 366 - - -/********************************************** -Standard C functions zone -**********************************************/ -void LCD_SSD1289::begin() -{ - _hw_special_init(); - - pinMode(__p1,OUTPUT); - pinMode(__p2,OUTPUT); - pinMode(__p3,OUTPUT); - if (__p4 != NOTINUSE) - pinMode(__p4,OUTPUT); - if ((display_transfer_mode==LATCHED_16) or ((display_transfer_mode==1) and (display_serial_mode==SERIAL_5PIN))) - pinMode(__p5,OUTPUT); - if (display_transfer_mode!=1) - _set_direction_registers(display_transfer_mode); - - sbi(P_RST, B_RST); - delay(5); - cbi(P_RST, B_RST); - delay(15); - sbi(P_RST, B_RST); - delay(15); - - setColor(0xffff); - setBackColor(0); - _transparent = false; - - cbi(P_CS, B_CS); - - LCD_Write_COM_DATA(0x00,0x0001); - LCD_Write_COM_DATA(0x03,0xA8A4); - LCD_Write_COM_DATA(0x0C,0x0000); - LCD_Write_COM_DATA(0x0D,0x080C); - LCD_Write_COM_DATA(0x0E,0x2B00); - LCD_Write_COM_DATA(0x1E,0x00B7); - LCD_Write_COM_DATA(0x01,0x2B3F); - LCD_Write_COM_DATA(0x02,0x0600); - LCD_Write_COM_DATA(0x10,0x0000); - LCD_Write_COM_DATA(0x11,0x6070); - LCD_Write_COM_DATA(0x05,0x0000); - LCD_Write_COM_DATA(0x06,0x0000); - LCD_Write_COM_DATA(0x16,0xEF1C); - LCD_Write_COM_DATA(0x17,0x0003); - LCD_Write_COM_DATA(0x07,0x0233); - LCD_Write_COM_DATA(0x0B,0x0000); - LCD_Write_COM_DATA(0x0F,0x0000); - LCD_Write_COM_DATA(0x41,0x0000); - LCD_Write_COM_DATA(0x42,0x0000); - LCD_Write_COM_DATA(0x48,0x0000); - LCD_Write_COM_DATA(0x49,0x013F); - LCD_Write_COM_DATA(0x4A,0x0000); - LCD_Write_COM_DATA(0x4B,0x0000); - LCD_Write_COM_DATA(0x44,0xEF00); - LCD_Write_COM_DATA(0x45,0x0000); - LCD_Write_COM_DATA(0x46,0x013F); - LCD_Write_COM_DATA(0x30,0x0707); - LCD_Write_COM_DATA(0x31,0x0204); - LCD_Write_COM_DATA(0x32,0x0204); - LCD_Write_COM_DATA(0x33,0x0502); - LCD_Write_COM_DATA(0x34,0x0507); - LCD_Write_COM_DATA(0x35,0x0204); - LCD_Write_COM_DATA(0x36,0x0204); - LCD_Write_COM_DATA(0x37,0x0502); - LCD_Write_COM_DATA(0x3A,0x0302); - LCD_Write_COM_DATA(0x3B,0x0302); - LCD_Write_COM_DATA(0x23,0x0000); - LCD_Write_COM_DATA(0x24,0x0000); - LCD_Write_COM_DATA(0x25,0x8000); - LCD_Write_COM_DATA(0x4f,0x0000); - LCD_Write_COM_DATA(0x4e,0x0000); - LCD_Write_COM(0x22); - - sbi (P_CS, B_CS); - - clear(); - - pinMode(PIN_BACKLIGHT, OUTPUT); - digitalWrite(PIN_BACKLIGHT, HIGH); - - // set up pins for touch controller - pinMode(PIN_CLK, OUTPUT); - pinMode(PIN_CS, OUTPUT); - pinMode(PIN_DIN, OUTPUT); - pinMode(PIN_DOUT, INPUT); - pinMode(PIN_IRQ, INPUT); - - digitalWrite(PIN_CS, HIGH); - digitalWrite(PIN_CLK, HIGH); - digitalWrite(PIN_DIN, HIGH); - digitalWrite(PIN_CLK, HIGH); - -} - -void LCD_SSD1289::setXY(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) -{ - swap(word, x1, y1); - swap(word, x2, y2) - y1=disp_y_size-y1; - y2=disp_y_size-y2; - swap(word, y1, y2) - // begin hardware specific code - LCD_Write_COM_DATA(0x44,(x2<<8)+x1); - LCD_Write_COM_DATA(0x45,y1); - LCD_Write_COM_DATA(0x46,y2); - LCD_Write_COM_DATA(0x4e,x1); - LCD_Write_COM_DATA(0x4f,y1); - LCD_Write_COM(0x22); -} - -void LCD_SSD1289::setBackLight(byte brightness) -{ - analogWrite(PIN_BACKLIGHT, brightness); -} - -void LCD_SSD1289::Enable() -{ - cbi(P_CS, B_CS); -} -void LCD_SSD1289::Disable() -{ - sbi(P_CS, B_CS); -} - -void LCD_SSD1289::drawPixel(uint16_t poX, uint16_t poY,uint16_t color) -{ - Enable(); - setXY(poX, poY, poX, poY); - setPixel(color); - Disable(); -} - -void LCD_SSD1289::clearPixels(uint32_t pixels) -{ - Enable(); - do { - setPixel(bch, bcl); - } while(--pixels); - Disable(); -} - -void LCD_SSD1289::clear(uint16_t x, uint16_t y, uint16_t width, uint16_t height) -{ - setColor(0); - fillRect(x, y, x + width, y + height); - setColor(0xffff); - m_x = 0; - m_y = 0; -} - -size_t LCD_SSD1289::write(uint8_t c) -{ - if (c == '\n') { - m_y += (m_font + 1) << 3; - return 0; - } else if (c == '\r') { - m_x = 0; - return 0; - } - if (m_x > disp_y_size) return 0; - Enable(); - if (m_font == FONT_SIZE_SMALL) { - setXY(m_x, m_y, m_x + 4, m_y + 7); - if (c > 0x20 && c < 0x7f) { - byte i = 4; - do { - unsigned char d = pgm_read_byte(&font5x8[c - 0x21][i]); - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } while(i--); - } else { - clearPixels(5 * 8); - } - m_x += 6; - } else { - setXY(m_x, m_y, m_x + 7, m_y + 15); - if (c > 0x20 && c < 0x7f) { - byte pgm_buffer[16]; - memcpy_P(pgm_buffer, &font8x16_terminal[c - 0x21], 16); - for (byte i = 0; i < 16; i += 2) { - unsigned char d = pgm_buffer[14 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 8); - } - m_x += 9; - } - Disable(); -} - -void LCD_SSD1289::writeDigit(byte n) -{ - Enable(); - if (m_font == FONT_SIZE_LARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 15); - if (n <= 9) { - byte pgm_buffer[32]; - memcpy_P(pgm_buffer, &digits16x16[n], sizeof(pgm_buffer)); - for (byte i = 0; i < 16; i++) { - unsigned char d = pgm_buffer[15 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[31 - i]; - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 16); - } - m_x += 16; - } else if (m_font == FONT_SIZE_XLARGE) { - setXY(m_x, m_y, m_x + 15, m_y + 23); - if (n <= 9) { - byte pgm_buffer[48]; - memcpy_P(pgm_buffer, &digits16x24[n], sizeof(pgm_buffer)); - for (int i = 0; i < 48; i += 3) { - unsigned char d = pgm_buffer[45 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[46 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - d = pgm_buffer[47 - i]; - for (int j = 0; j < 8; j++, d >>= 1) { - if (d & 1) - setPixel(fch, fcl); - else - setPixel(bch, bcl); - } - } - } else { - clearPixels(16 * 24); - } - m_x += 18; - } else { - write(n <= 9 ? ('0' + n) : ' '); - } - Disable(); -} - -void LCD_SSD1289::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - byte rows = height >> 3; - Enable(); - setXY(m_x, m_y, m_x + width - 1, m_y + height - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - setPixel(fch, fcl); - } else { - setPixel(bch, bcl); - } - } - } - } - Disable(); - m_x += width; -} - -void LCD_SSD1289::draw(const PROGMEM byte* buffer, uint16_t width, uint16_t height, byte scaleX, byte scaleY) -{ - byte rows = height >> 3; - if (scaleY == 0) scaleY = scaleX; - Enable(); - setXY(m_x, m_y, m_x + width * scaleX - 1, m_y + height * scaleY - 1); - for (int16_t i = width - 1; i >= 0; i--) { - for (byte n = 0; n < scaleX; n++) { - for (uint8_t h = 0; h < rows; h++) { -#ifndef __arm__ - byte d = pgm_read_byte(buffer + i + width * h); -#else - byte d = buffer[i + width * h]; -#endif - for (byte j = 0; j < 8; j++, d >>= 1) { - if (d & 1) { - for (byte m = 0; m < scaleY; m++) { - setPixel(fch, fcl); - } - } else { - for (byte m = 0; m < scaleY; m++) { - setPixel(bch, bcl); - } - } - } - } - } - } - Disable(); - m_x += width * scaleX; -} - -void LCD_SSD1289::draw4bpp(const PROGMEM byte* buffer, uint16_t width, uint16_t height) -{ - char buf[240]; - Enable(); - setXY(m_x, m_y, m_x + width * 2 - 1, m_y + height * 2 - 1); - uint16_t i = width - 1; - do { - memcpy_P(buf, buffer + i * height * 2, height * 2); - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - for (byte j = 0; j < height * 2; j += 2) { - setPixel(buf[j + 1], buf[j]); - setPixel(buf[j + 1], buf[j]); - } - } while (i--); - Disable(); - m_x += width * 2; -} - -void LCD_SSD1289::shiftOutTouchData(unsigned char data) -{ - unsigned char nop; - unsigned char count; - - digitalWrite(PIN_CLK,LOW); - - for(count=0; count<8; count++) - { - digitalWrite(PIN_DIN, data & 0x80 ? HIGH : LOW); - digitalWrite(PIN_CLK, LOW); - nop++; - digitalWrite(PIN_CLK, HIGH); - data <<= 1; - //nop++; - } -} - -unsigned int LCD_SSD1289::shiftInTouchData() -{ - unsigned char nop; - unsigned int data = 0; - unsigned char count; - for(count=0; count<12; count++) - { - data <<= 1; - digitalWrite(PIN_CLK, HIGH); - nop++; - digitalWrite(PIN_CLK, LOW); - //nop++; - data |= digitalRead(PIN_DOUT); - } - return data; -} - -byte LCD_SSD1289::getTouchData(int& x, int& y) -{ - long tx = 0; - long ty = 0; - - if (digitalRead(PIN_IRQ) == HIGH) - return 0; - - digitalWrite(PIN_CS,LOW); - for (int i=0; i < PREC_TOUCH_CONST; i++) - { - shiftOutTouchData(0x90); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - int d = shiftInTouchData(); - if (d < PixOffsY) return 0; - ty += d; - - shiftOutTouchData(0xD0); - digitalWrite(PIN_CLK,HIGH); - digitalWrite(PIN_CLK,LOW); - tx+=shiftInTouchData(); - } - digitalWrite(PIN_CS,HIGH); - y = (tx - PixOffsX * PREC_TOUCH_CONST) / PixSizeX; - x = (ty - PixOffsY * PREC_TOUCH_CONST) / PixSizeY; - return 1; -} - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.cpp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.cpp deleted file mode 100644 index c46561e..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.cpp +++ /dev/null @@ -1,1129 +0,0 @@ -/* - UTFT.cpp - Multi-Platform library support for Color TFT LCD Boards - Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved - - This library is the continuation of my ITDB02_Graph, ITDB02_Graph16 - and RGB_GLCD libraries for Arduino and chipKit. As the number of - supported display modules and controllers started to increase I felt - it was time to make a single, universal library as it will be much - easier to maintain in the future. - - Basic functionality of this library was origianlly based on the - demo-code provided by ITead studio (for the ITDB02 modules) and - NKC Electronics (for the RGB GLCD module/shield). - - This library supports a number of 8bit, 16bit and serial graphic - displays, and will work with both Arduino, chipKit boards and select - TI LaunchPads. For a full list of tested display modules and controllers, - see the document UTFT_Supported_display_modules_&_controllers.pdf. - - When using 8bit and 16bit display modules there are some - requirements you must adhere to. These requirements can be found - in the document UTFT_Requirements.pdf. - There are no special requirements when using serial displays. - - You can find the latest version of the library at - http://www.RinkyDinkElectronics.com/ - - This library is free software; you can redistribute it and/or - modify it under the terms of the CC BY-NC-SA 3.0 license. - Please see the included documents for further information. - - Commercial use of this library requires you to buy a license that - will allow commercial use. This includes using the library, - modified or not, as a tool to sell products. - - The license applies to all part of the library including the - examples and tools supplied with the library. -*/ - -#include "UTFT.h" - -// Include hardware-specific functions for the correct MCU -#if defined(__AVR__) - #include - #include "hardware/avr/HW_AVR.h" - #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - #include "hardware/avr/HW_ATmega1280.h" - #elif defined(__AVR_ATmega328P__) - #include "hardware/avr/HW_ATmega328P.h" - #elif defined(__AVR_ATmega32U4__) - #include "hardware/avr/HW_ATmega32U4.h" - #elif defined(__AVR_ATmega168__) - #error "ATmega168 MCUs are not supported because they have too little flash memory!" - #elif defined(__AVR_ATmega1284P__) - #include "hardware/avr/HW_ATmega1284P.h" - #else - #error "Unsupported AVR MCU!" - #endif -#elif defined(__PIC32MX__) - #include "hardware/pic32/HW_PIC32.h" - #if defined(__32MX320F128H__) - #pragma message("Compiling for chipKIT UNO32 (PIC32MX320F128H)") - #include "hardware/pic32/HW_PIC32MX320F128H.h" - #elif defined(__32MX340F512H__) - #pragma message("Compiling for chipKIT uC32 (PIC32MX340F512H)") - #include "hardware/pic32/HW_PIC32MX340F512H.h" - #elif defined(__32MX795F512L__) - #pragma message("Compiling for chipKIT MAX32 (PIC32MX795F512L)") - #include "hardware/pic32/HW_PIC32MX795F512L.h" - #else - #error "Unsupported PIC32 MCU!" - #endif -#elif defined(__arm__) - #include "hardware/arm/HW_ARM.h" - #if defined(__SAM3X8E__) - #pragma message("Compiling for Arduino Due (AT91SAM3X8E)...") - #include "hardware/arm/HW_SAM3X8E.h" - #elif defined(__MK20DX128__) || defined(__MK20DX256__) - #pragma message("Compiling for Teensy 3.x (MK20DX128VLH7 / MK20DX256VLH7)...") - #include "hardware/arm/HW_MX20DX256.h" - #elif defined(__CC3200R1M1RGC__) - #pragma message("Compiling for TI CC3200 LaunchPad...") - #include "hardware/arm/HW_CC3200.h" - #else - #error "Unsupported ARM MCU!" - #endif -#endif -#include "memorysaver.h" - -UTFT::UTFT() -{ -} - -UTFT::UTFT(byte model, int RS, int WR, int CS, int RST, int SER) -{ - word dsx[] = {239, 239, 239, 239, 239, 239, 175, 175, 239, 127, 127, 239, 271, 479, 239, 239, 239, 0, 0, 239, 479, 319, 239, 175, 127, 239, 239, 319, 319, 799, 127, 127}; - word dsy[] = {319, 399, 319, 319, 319, 319, 219, 219, 399, 159, 127, 319, 479, 799, 319, 319, 319, 0, 0, 319, 799, 479, 319, 219, 159, 319, 319, 479, 479, 479, 159, 159}; - byte dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 16, SERIAL_5PIN, SERIAL_5PIN, 16, 16, 16, 8, 16, LATCHED_16, 0, 0, 8, 16, 16, 16, 8, SERIAL_5PIN, SERIAL_5PIN, SERIAL_4PIN, 16, 16, 16, SERIAL_5PIN, SERIAL_5PIN}; - - disp_x_size = dsx[model]; - disp_y_size = dsy[model]; - display_transfer_mode = dtm[model]; - display_model = model; - - __p1 = RS; - __p2 = WR; - __p3 = CS; - __p4 = RST; - __p5 = SER; - - if (display_transfer_mode == SERIAL_4PIN) - { - display_transfer_mode=1; - display_serial_mode=SERIAL_4PIN; - } - if (display_transfer_mode == SERIAL_5PIN) - { - display_transfer_mode=1; - display_serial_mode=SERIAL_5PIN; - } - - if (display_transfer_mode!=1) - { - _set_direction_registers(display_transfer_mode); - P_RS = portOutputRegister(digitalPinToPort(RS)); - B_RS = digitalPinToBitMask(RS); - P_WR = portOutputRegister(digitalPinToPort(WR)); - B_WR = digitalPinToBitMask(WR); - P_CS = portOutputRegister(digitalPinToPort(CS)); - B_CS = digitalPinToBitMask(CS); - P_RST = portOutputRegister(digitalPinToPort(RST)); - B_RST = digitalPinToBitMask(RST); - if (display_transfer_mode==LATCHED_16) - { - P_ALE = portOutputRegister(digitalPinToPort(SER)); - B_ALE = digitalPinToBitMask(SER); - cbi(P_ALE, B_ALE); - pinMode(8,OUTPUT); - digitalWrite(8, LOW); - } - } - else - { - P_SDA = portOutputRegister(digitalPinToPort(RS)); - B_SDA = digitalPinToBitMask(RS); - P_SCL = portOutputRegister(digitalPinToPort(WR)); - B_SCL = digitalPinToBitMask(WR); - P_CS = portOutputRegister(digitalPinToPort(CS)); - B_CS = digitalPinToBitMask(CS); - if (RST != NOTINUSE) - { - P_RST = portOutputRegister(digitalPinToPort(RST)); - B_RST = digitalPinToBitMask(RST); - } - if (display_serial_mode!=SERIAL_4PIN) - { - P_RS = portOutputRegister(digitalPinToPort(SER)); - B_RS = digitalPinToBitMask(SER); - } - } -} - -void UTFT::LCD_Write_COM(char VL) -{ - if (display_transfer_mode!=1) - { - cbi(P_RS, B_RS); - LCD_Writ_Bus(0x00,VL,display_transfer_mode); - } - else - LCD_Writ_Bus(0x00,VL,display_transfer_mode); -} - -void UTFT::LCD_Write_DATA(char VH,char VL) -{ - if (display_transfer_mode!=1) - { - sbi(P_RS, B_RS); - LCD_Writ_Bus(VH,VL,display_transfer_mode); - } - else - { - LCD_Writ_Bus(0x01,VH,display_transfer_mode); - LCD_Writ_Bus(0x01,VL,display_transfer_mode); - } -} - -void UTFT::LCD_Write_DATA(char VL) -{ - if (display_transfer_mode!=1) - { - sbi(P_RS, B_RS); - LCD_Writ_Bus(0x00,VL,display_transfer_mode); - } - else - LCD_Writ_Bus(0x01,VL,display_transfer_mode); -} - -void UTFT::LCD_Write_COM_DATA(char com1,int dat1) -{ - LCD_Write_COM(com1); - LCD_Write_DATA(dat1>>8,dat1); -} - -void UTFT::clrXY() -{ - if (orient==PORTRAIT) - setXY(0,0,disp_x_size,disp_y_size); - else - setXY(0,0,disp_y_size,disp_x_size); -} - -void UTFT::drawRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - - drawHLine(x1, y1, x2-x1); - drawHLine(x1, y2, x2-x1); - drawVLine(x1, y1, y2-y1); - drawVLine(x2, y1, y2-y1); -} - -void UTFT::drawRoundRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - if ((x2-x1)>4 && (y2-y1)>4) - { - drawPixel(x1+1,y1+1); - drawPixel(x2-1,y1+1); - drawPixel(x1+1,y2-1); - drawPixel(x2-1,y2-1); - drawHLine(x1+2, y1, x2-x1-4); - drawHLine(x1+2, y2, x2-x1-4); - drawVLine(x1, y1+2, y2-y1-4); - drawVLine(x2, y1+2, y2-y1-4); - } -} - -void UTFT::fillRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - if (display_transfer_mode==16) - { - cbi(P_CS, B_CS); - setXY(x1, y1, x2, y2); - sbi(P_RS, B_RS); - _fast_fill_16(fch,fcl,((long(x2-x1)+1)*(long(y2-y1)+1))); - sbi(P_CS, B_CS); - } - else if ((display_transfer_mode==8) and (fch==fcl)) - { - cbi(P_CS, B_CS); - setXY(x1, y1, x2, y2); - sbi(P_RS, B_RS); - _fast_fill_8(fch,((long(x2-x1)+1)*(long(y2-y1)+1))); - sbi(P_CS, B_CS); - } - else - { - if (orient==PORTRAIT) - { - for (int i=0; i<((y2-y1)/2)+1; i++) - { - drawHLine(x1, y1+i, x2-x1); - drawHLine(x1, y2-i, x2-x1); - } - } - else - { - for (int i=0; i<((x2-x1)/2)+1; i++) - { - drawVLine(x1+i, y1, y2-y1); - drawVLine(x2-i, y1, y2-y1); - } - } - } -} - -void UTFT::fillRoundRect(int x1, int y1, int x2, int y2) -{ - if (x1>x2) - { - swap(int, x1, x2); - } - if (y1>y2) - { - swap(int, y1, y2); - } - - if ((x2-x1)>4 && (y2-y1)>4) - { - for (int i=0; i<((y2-y1)/2)+1; i++) - { - switch(i) - { - case 0: - drawHLine(x1+2, y1+i, x2-x1-4); - drawHLine(x1+2, y2-i, x2-x1-4); - break; - case 1: - drawHLine(x1+1, y1+i, x2-x1-2); - drawHLine(x1+1, y2-i, x2-x1-2); - break; - default: - drawHLine(x1, y1+i, x2-x1); - drawHLine(x1, y2-i, x2-x1); - } - } - } -} - -void UTFT::drawCircle(int x, int y, int radius) -{ - int f = 1 - radius; - int ddF_x = 1; - int ddF_y = -2 * radius; - int x1 = 0; - int y1 = radius; - - cbi(P_CS, B_CS); - setXY(x, y + radius, x, y + radius); - LCD_Write_DATA(fch,fcl); - setXY(x, y - radius, x, y - radius); - LCD_Write_DATA(fch,fcl); - setXY(x + radius, y, x + radius, y); - LCD_Write_DATA(fch,fcl); - setXY(x - radius, y, x - radius, y); - LCD_Write_DATA(fch,fcl); - - while(x1 < y1) - { - if(f >= 0) - { - y1--; - ddF_y += 2; - f += ddF_y; - } - x1++; - ddF_x += 2; - f += ddF_x; - setXY(x + x1, y + y1, x + x1, y + y1); - LCD_Write_DATA(fch,fcl); - setXY(x - x1, y + y1, x - x1, y + y1); - LCD_Write_DATA(fch,fcl); - setXY(x + x1, y - y1, x + x1, y - y1); - LCD_Write_DATA(fch,fcl); - setXY(x - x1, y - y1, x - x1, y - y1); - LCD_Write_DATA(fch,fcl); - setXY(x + y1, y + x1, x + y1, y + x1); - LCD_Write_DATA(fch,fcl); - setXY(x - y1, y + x1, x - y1, y + x1); - LCD_Write_DATA(fch,fcl); - setXY(x + y1, y - x1, x + y1, y - x1); - LCD_Write_DATA(fch,fcl); - setXY(x - y1, y - x1, x - y1, y - x1); - LCD_Write_DATA(fch,fcl); - } - sbi(P_CS, B_CS); - clrXY(); -} - -void UTFT::fillCircle(int x, int y, int radius) -{ - for(int y1=-radius; y1<=0; y1++) - for(int x1=-radius; x1<=0; x1++) - if(x1*x1+y1*y1 <= radius*radius) - { - drawHLine(x+x1, y+y1, 2*(-x1)); - drawHLine(x+x1, y-y1, 2*(-x1)); - break; - } -} - -void UTFT::clrScr() -{ - long i; - - cbi(P_CS, B_CS); - clrXY(); - if (display_transfer_mode!=1) - sbi(P_RS, B_RS); - if (display_transfer_mode==16) - _fast_fill_16(0,0,((disp_x_size+1)*(disp_y_size+1))); - else if (display_transfer_mode==8) - _fast_fill_8(0,((disp_x_size+1)*(disp_y_size+1))); - else - { - for (i=0; i<((disp_x_size+1)*(disp_y_size+1)); i++) - { - if (display_transfer_mode!=1) - LCD_Writ_Bus(0,0,display_transfer_mode); - else - { - LCD_Writ_Bus(1,0,display_transfer_mode); - LCD_Writ_Bus(1,0,display_transfer_mode); - } - } - } - sbi(P_CS, B_CS); -} - -void UTFT::fillScr(byte r, byte g, byte b) -{ - word color = ((r&248)<<8 | (g&252)<<3 | (b&248)>>3); - fillScr(color); -} - -void UTFT::fillScr(word color) -{ - long i; - char ch, cl; - - ch=byte(color>>8); - cl=byte(color & 0xFF); - - cbi(P_CS, B_CS); - clrXY(); - if (display_transfer_mode!=1) - sbi(P_RS, B_RS); - if (display_transfer_mode==16) - _fast_fill_16(ch,cl,((disp_x_size+1)*(disp_y_size+1))); - else if ((display_transfer_mode==8) and (ch==cl)) - _fast_fill_8(ch,((disp_x_size+1)*(disp_y_size+1))); - else - { - for (i=0; i<((disp_x_size+1)*(disp_y_size+1)); i++) - { - if (display_transfer_mode!=1) - LCD_Writ_Bus(ch,cl,display_transfer_mode); - else - { - LCD_Writ_Bus(1,ch,display_transfer_mode); - LCD_Writ_Bus(1,cl,display_transfer_mode); - } - } - } - sbi(P_CS, B_CS); -} - -void UTFT::setColor(byte r, byte g, byte b) -{ - fch=((r&248)|g>>5); - fcl=((g&28)<<3|b>>3); -} - -void UTFT::setColor(word color) -{ - fch=byte(color>>8); - fcl=byte(color & 0xFF); -} - -word UTFT::getColor() -{ - return (fch<<8) | fcl; -} - -void UTFT::setBackColor(byte r, byte g, byte b) -{ - bch=((r&248)|g>>5); - bcl=((g&28)<<3|b>>3); - _transparent=false; -} - -void UTFT::setBackColor(uint32_t color) -{ - if (color==VGA_TRANSPARENT) - _transparent=true; - else - { - bch=byte(color>>8); - bcl=byte(color & 0xFF); - _transparent=false; - } -} - -word UTFT::getBackColor() -{ - return (bch<<8) | bcl; -} - -void UTFT::setPixel(word color) -{ - LCD_Write_DATA((color>>8),(color&0xFF)); // rrrrrggggggbbbbb -} - -void UTFT::setPixel(byte h, byte l) -{ - LCD_Write_DATA(h, l); // rrrrrggggggbbbbb -} - -void UTFT::drawPixel(int x, int y) -{ - cbi(P_CS, B_CS); - setXY(x, y, x, y); - setPixel((fch<<8)|fcl); - sbi(P_CS, B_CS); - clrXY(); -} - -void UTFT::drawLine(int x1, int y1, int x2, int y2) -{ - if (y1==y2) - drawHLine(x1, y1, x2-x1); - else if (x1==x2) - drawVLine(x1, y1, y2-y1); - else - { - unsigned int dx = (x2 > x1 ? x2 - x1 : x1 - x2); - short xstep = x2 > x1 ? 1 : -1; - unsigned int dy = (y2 > y1 ? y2 - y1 : y1 - y2); - short ystep = y2 > y1 ? 1 : -1; - int col = x1, row = y1; - - cbi(P_CS, B_CS); - if (dx < dy) - { - int t = - (dy >> 1); - while (true) - { - setXY (col, row, col, row); - LCD_Write_DATA (fch, fcl); - if (row == y2) - return; - row += ystep; - t += dx; - if (t >= 0) - { - col += xstep; - t -= dy; - } - } - } - else - { - int t = - (dx >> 1); - while (true) - { - setXY (col, row, col, row); - LCD_Write_DATA (fch, fcl); - if (col == x2) - return; - col += xstep; - t += dy; - if (t >= 0) - { - row += ystep; - t -= dx; - } - } - } - sbi(P_CS, B_CS); - } - clrXY(); -} - -void UTFT::drawHLine(int x, int y, int l) -{ - if (l<0) - { - l = -l; - x -= l; - } - cbi(P_CS, B_CS); - setXY(x, y, x+l, y); - if (display_transfer_mode == 16) - { - sbi(P_RS, B_RS); - _fast_fill_16(fch,fcl,l); - } - else if ((display_transfer_mode==8) and (fch==fcl)) - { - sbi(P_RS, B_RS); - _fast_fill_8(fch,l); - } - else - { - for (int i=0; i=0; zz--) - { - ch=pgm_read_byte(&cfont.font[temp+zz]); - for(i=0;i<8;i++) - { - if((ch&(1<0) - { - buf[c]=48+(num % 10); - c++; - num=(num-(num % 10))/10; - } - buf[c]=0; - - if (neg) - { - st[0]=45; - } - - if (length>(c+neg)) - { - for (int i=0; i<(length-c-neg); i++) - { - st[i+neg]=filler; - f++; - } - } - - for (int i=0; i5) - dec=5; - - if (num<0) - neg = true; - - _convert_float(st, num, length, dec); - - if (divider != '.') - { - for (int i=0; i>8,col & 0xff); - } - sbi(P_CS, B_CS); - } - else - { - cbi(P_CS, B_CS); - for (ty=0; ty=0; tx--) - { - col=pgm_read_word(&data[(ty*sx)+tx]); - LCD_Write_DATA(col>>8,col & 0xff); - } - } - sbi(P_CS, B_CS); - } - } - else - { - if (orient==PORTRAIT) - { - cbi(P_CS, B_CS); - for (ty=0; ty>8,col & 0xff); - } - } - sbi(P_CS, B_CS); - } - else - { - cbi(P_CS, B_CS); - for (ty=0; ty=0; tx--) - { - col=pgm_read_word(&data[(ty*sx)+tx]); - for (tsx=0; tsx>8,col & 0xff); - } - } - } - sbi(P_CS, B_CS); - } - } - clrXY(); -} - -void UTFT::drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy) -{ - unsigned int col; - int tx, ty, newx, newy; - double radian; - radian=deg*0.0175; - - if (deg==0) - drawBitmap(x, y, sx, sy, data); - else - { - cbi(P_CS, B_CS); - for (ty=0; ty>8,col & 0xff); - } - sbi(P_CS, B_CS); - } - clrXY(); -} - -void UTFT::lcdOff() -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case PCF8833: - LCD_Write_COM(0x28); - break; - case CPLD: - LCD_Write_COM_DATA(0x01,0x0000); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::lcdOn() -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case PCF8833: - LCD_Write_COM(0x29); - break; - case CPLD: - LCD_Write_COM_DATA(0x01,0x0010); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::setContrast(char c) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case PCF8833: - if (c>64) c=64; - LCD_Write_COM(0x25); - LCD_Write_DATA(c); - break; - } - sbi(P_CS, B_CS); -} - -int UTFT::getDisplayXSize() -{ - if (orient==PORTRAIT) - return disp_x_size+1; - else - return disp_y_size+1; -} - -int UTFT::getDisplayYSize() -{ - if (orient==PORTRAIT) - return disp_y_size+1; - else - return disp_x_size+1; -} - -void UTFT::setBrightness(byte br) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case CPLD: - if (br>16) br=16; - LCD_Write_COM_DATA(0x01,br); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::setDisplayPage(byte page) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case CPLD: - if (page>7) page=7; - LCD_Write_COM_DATA(0x04,page); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} - -void UTFT::setWritePage(byte page) -{ - cbi(P_CS, B_CS); - switch (display_model) - { - case CPLD: - if (page>7) page=7; - LCD_Write_COM_DATA(0x05,page); - LCD_Write_COM(0x0F); - break; - } - sbi(P_CS, B_CS); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.h deleted file mode 100644 index 2db39a2..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/UTFT.h +++ /dev/null @@ -1,276 +0,0 @@ -/* - UTFT.h - Multi-Platform library support for Color TFT LCD Boards - Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved - - This library is the continuation of my ITDB02_Graph, ITDB02_Graph16 - and RGB_GLCD libraries for Arduino and chipKit. As the number of - supported display modules and controllers started to increase I felt - it was time to make a single, universal library as it will be much - easier to maintain in the future. - - Basic functionality of this library was origianlly based on the - demo-code provided by ITead studio (for the ITDB02 modules) and - NKC Electronics (for the RGB GLCD module/shield). - - This library supports a number of 8bit, 16bit and serial graphic - displays, and will work with both Arduino, chipKit boards and select - TI LaunchPads. For a full list of tested display modules and controllers, - see the document UTFT_Supported_display_modules_&_controllers.pdf. - - When using 8bit and 16bit display modules there are some - requirements you must adhere to. These requirements can be found - in the document UTFT_Requirements.pdf. - There are no special requirements when using serial displays. - - You can find the latest version of the library at - http://www.RinkyDinkElectronics.com/ - - This library is free software; you can redistribute it and/or - modify it under the terms of the CC BY-NC-SA 3.0 license. - Please see the included documents for further information. - - Commercial use of this library requires you to buy a license that - will allow commercial use. This includes using the library, - modified or not, as a tool to sell products. - - The license applies to all part of the library including the - examples and tools supplied with the library. -*/ - -#ifndef UTFT_h -#define UTFT_h - -#define UTFT_VERSION 281 - -#define LEFT 0 -#define RIGHT 9999 -#define CENTER 9998 - -#define PORTRAIT 0 -#define LANDSCAPE 1 - -#define HX8347A 0 -#define ILI9327 1 -#define SSD1289 2 -#define ILI9325C 3 -#define ILI9325D_8 4 -#define ILI9325D_16 5 -#define HX8340B_8 6 -#define HX8340B_S 7 -#define HX8352A 8 -#define ST7735 9 -#define PCF8833 10 -#define S1D19122 11 -#define SSD1963_480 12 -#define SSD1963_800 13 -#define S6D1121_8 14 -#define S6D1121_16 15 -#define SSD1289LATCHED 16 -//#define NOT_IN_USE 17 -//#define NOT_IN_USE 18 -#define SSD1289_8 19 -#define SSD1963_800ALT 20 -#define ILI9481 21 -#define ILI9325D_16ALT 22 -#define S6D0164 23 -#define ST7735S 24 -#define ILI9341_S5P 25 -#define ILI9341_S4P 26 -#define R61581 27 -#define ILI9486 28 -#define CPLD 29 -#define HX8353C 30 -#define ST7735_ALT 31 - -#define ITDB32 0 // HX8347-A (16bit) -#define ITDB32WC 1 // ILI9327 (16bit) -#define TFT01_32W 1 // ILI9327 (16bit) -#define ITDB32S 2 // SSD1289 (16bit) -#define TFT01_32 2 // SSD1289 (16bit) -#define CTE32 2 // SSD1289 (16bit) -#define ITDB24 3 // ILI9325C (8bit) -#define ITDB24D 4 // ILI9325D (8bit) -#define ITDB24DWOT 4 // ILI9325D (8bit) -#define ITDB28 4 // ILI9325D (8bit) -#define TFT01_24_8 4 // ILI9325D (8bit) -#define DMTFT24104 4 // ILI9325D (8bit) -#define DMTFT28103 4 // ILI9325D (8bit) -#define TFT01_24_16 5 // ILI9325D (16bit) -#define ITDB22 6 // HX8340-B (8bit) -#define ITDB22SP 7 // HX8340-B (Serial 4Pin) -#define ITDB32WD 8 // HX8352-A (16bit) -#define TFT01_32WD 8 // HX8352-A (16bit) -#define CTE32W 8 // HX8352-A (16bit) -#define ITDB18SP 9 // ST7735 (Serial 5Pin) -#define LPH9135 10 // PCF8833 (Serial 5Pin) -#define ITDB25H 11 // S1D19122 (16bit) -#define ITDB43 12 // SSD1963 (16bit) 480x272 -#define TFT01_43 12 // SSD1963 (16bit) 480x272 -#define ITDB50 13 // SSD1963 (16bit) 800x480 -#define TFT01_50 13 // SSD1963 (16bit) 800x480 -#define CTE50 13 // SSD1963 (16bit) 800x480 -#define EHOUSE50 13 // SSD1963 (16bit) 800x480 -#define ITDB24E_8 14 // S6D1121 (8bit) -#define TFT01_24R2 14 // S6D1121 (8bit) -#define ITDB24E_16 15 // S6D1121 (16bit) -#define INFINIT32 16 // SSD1289 (Latched 16bit) -- Legacy, will be removed later -#define ELEE32_REVA 16 // SSD1289 (Latched 16bit) -//#define NOT_IN_USE 17 -//#define NOT_IN_USE 18 -#define ELEE32_REVB 19 // SSD1289 (8bit) -#define TFT01_70 20 // SSD1963 (16bit) 800x480 Alternative Init -#define CTE70 20 // SSD1963 (16bit) 800x480 Alternative Init -#define EHOUSE70 20 // SSD1963 (16bit) 800x480 Alternative Init -#define CTE32HR 21 // ILI9481 (16bit) -#define CTE28 22 // ILI9325D (16bit) Alternative Init -#define TFT01_28 22 // ILI9325D (16bit) Alternative Init -#define CTE22 23 // S6D0164 (8bit) -#define TFT01_22 23 // S6D0164 (8bit) -#define DMTFT22102 23 // S6D0164 (8bit) -#define TFT01_18SP 24 // ST7735S (Serial 5Pin) -#define TFT01_22SP 25 // ILI9341 (Serial 5Pin) -#define TFT01_24SP 25 // ILI9341 (Serial 5Pin) -#define TFT22SHLD 25 // ILI9341 (Serial 5Pin) -#define DMTFT28105 25 // ILI9341 (Serial 5Pin) -#define MI0283QT9 26 // ILI9341 (Serial 4Pin) -#define CTE35IPS 27 // R61581 (16bit) -#define CTE40 28 // ILI9486 (16bit) -#define EHOUSE50CPLD 29 // CPLD (16bit) -#define CTE50CPLD 29 // CPLD (16bit) -#define CTE70CPLD 29 // CPLD (16bit) -#define DMTFT18101 30 // HX8353C (Serial 5Pin) -#define TFT18SHLD 31 // ST7735 (Serial 5Pin) Alternative Init - -#define SERIAL_4PIN 4 -#define SERIAL_5PIN 5 -#define LATCHED_16 17 - -#define NOTINUSE 255 - -//********************************* -// COLORS -//********************************* -// VGA color palette -#define VGA_BLACK 0x0000 -#define VGA_WHITE 0xFFFF -#define VGA_RED 0xF800 -#define VGA_GREEN 0x0400 -#define VGA_BLUE 0x001F -#define VGA_SILVER 0xC618 -#define VGA_GRAY 0x8410 -#define VGA_MAROON 0x8000 -#define VGA_YELLOW 0xFFE0 -#define VGA_OLIVE 0x8400 -#define VGA_LIME 0x07E0 -#define VGA_AQUA 0x07FF -#define VGA_TEAL 0x0410 -#define VGA_NAVY 0x0010 -#define VGA_FUCHSIA 0xF81F -#define VGA_PURPLE 0x8010 -#define VGA_TRANSPARENT 0xFFFFFFFF - -#if defined(__AVR__) - #include "Arduino.h" - #include "hardware/avr/HW_AVR_defines.h" -#elif defined(__PIC32MX__) - #include "WProgram.h" - #include "hardware/pic32/HW_PIC32_defines.h" -#elif defined(__arm__) - #include "Arduino.h" // This will include energia.h where appropriate - #include "hardware/arm/HW_ARM_defines.h" -#endif - -struct _current_font -{ - uint8_t* font; - uint8_t x_size; - uint8_t y_size; - uint8_t offset; - uint8_t numchars; -}; - -class UTFT -{ - public: - UTFT(); - UTFT(byte model, int RS, int WR, int CS, int RST, int SER=0); - void InitLCD(byte orientation=LANDSCAPE); - void clrScr(); - void drawPixel(int x, int y); - void drawLine(int x1, int y1, int x2, int y2); - void fillScr(byte r, byte g, byte b); - void fillScr(word color); - void drawRect(int x1, int y1, int x2, int y2); - void drawRoundRect(int x1, int y1, int x2, int y2); - void fillRect(int x1, int y1, int x2, int y2); - void fillRoundRect(int x1, int y1, int x2, int y2); - void drawCircle(int x, int y, int radius); - void fillCircle(int x, int y, int radius); - void setColor(byte r, byte g, byte b); - void setColor(word color); - word getColor(); - void setBackColor(byte r, byte g, byte b); - void setBackColor(uint32_t color); - word getBackColor(); - void print2(char *st, int x, int y, int deg=0); - void print2(String st, int x, int y, int deg=0); - void printNumI(long num, int x, int y, int length=0, char filler=' '); - void printNumF(double num, byte dec, int x, int y, char divider='.', int length=0, char filler=' '); - void setFont(uint8_t* font); - uint8_t* getFont(); - uint8_t getFontXsize(); - uint8_t getFontYsize(); - void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1); - void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy); - void lcdOff(); - void lcdOn(); - void setContrast(char c); - int getDisplayXSize(); - int getDisplayYSize(); - void setBrightness(byte br); - void setDisplayPage(byte page); - void setWritePage(byte page); - -/* - The functions and variables below should not normally be used. - They have been left publicly available for use in add-on libraries - that might need access to the lower level functions of UTFT. - - Please note that these functions and variables are not documented - and I do not provide support on how to use them. -*/ - byte fch, fcl, bch, bcl; - byte orient; - long disp_x_size, disp_y_size; - byte display_model, display_transfer_mode, display_serial_mode; - regtype *P_RS, *P_WR, *P_CS, *P_RST, *P_SDA, *P_SCL, *P_ALE; - regsize B_RS, B_WR, B_CS, B_RST, B_SDA, B_SCL, B_ALE; - byte __p1, __p2, __p3, __p4, __p5; - _current_font cfont; - boolean _transparent; - - void LCD_Writ_Bus(char VH,char VL, byte mode); - void LCD_Write_COM(char VL); - void LCD_Write_DATA(char VH,char VL); - void LCD_Write_DATA(char VL); - void LCD_Write_COM_DATA(char com1,int dat1); - void _hw_special_init(); - void setPixel(word color); - void setPixel(byte h, byte l); - void drawHLine(int x, int y, int l); - void drawVLine(int x, int y, int l); - void printChar(byte c, int x, int y); - virtual void setXY(word x1, word y1, word x2, word y2) {} - void clrXY(); - void rotateChar(byte c, int x, int y, int pos, int deg); - void _set_direction_registers(byte mode); - void _fast_fill_16(int ch, int cl, long pix); - void _fast_fill_8(int ch, long pix); - void _convert_float(char *buf, double num, int width, byte prec); - -#if defined(ENERGIA) - volatile uint32_t* portOutputRegister(int value); -#endif -}; - -#endif diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/AnalogInput/AnalogInput.ino b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/AnalogInput/AnalogInput.ino deleted file mode 100644 index 08fcffc..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/AnalogInput/AnalogInput.ino +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include - -LCD_ILI9341 lcd; /* for 2.2" SPI TFT module */ - -#define ANALOG_PIN A3 -#define BUTTON_PIN 8 - -const PROGMEM uint8_t tick[16 *16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -const PROGMEM uint8_t cross[16 *16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; - -void setup() { - // set up LCD display - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Analog input:"); - lcd.setCursor(160, 0); - lcd.print("Button:"); - lcd.setFontSize(FONT_SIZE_XLARGE); - // set up pin mode - pinMode(ANALOG_PIN, INPUT); - pinMode(BUTTON_PIN, INPUT); - // set up serial port baudrate - Serial.begin(115200); -} - -void loop() { - // display analog input value - int value = analogRead(ANALOG_PIN); - lcd.setColor(RGB16_YELLOW); - lcd.setCursor(0, 3); - lcd.printInt(value, 4); - - // draw tick (when button is pressed) or cross (when button is not pressed) - int btn = digitalRead(BUTTON_PIN); - lcd.setXY(160, 20); - if (!btn) { - lcd.setColor(RGB16_GREEN); - lcd.draw(tick, 16, 16, 2); - // reset button state - digitalWrite(BUTTON_PIN, HIGH); - } else { - lcd.setColor(RGB16_RED); - lcd.draw(cross, 16, 16, 2); - } - - // output analog value via serial UART - Serial.println(value); - - delay(50); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/SDInfo/SDInfo.ino b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/SDInfo/SDInfo.ino deleted file mode 100644 index 4549b7f..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/SDInfo/SDInfo.ino +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include - -// set up variables using the SD utility library functions: -Sd2Card card; -SdVolume volume; -SdFile root; - -const int chipSelect = 10; - -// set up access to LCD screen -LCD_ILI9341 lcd; - -void setup() -{ - lcd.begin(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setColor(RGB16_YELLOW); - lcd.println("Initializing SD card..."); - - pinMode(chipSelect, OUTPUT); - - // we'll use the initialization code from the utility libraries - // since we're just testing if the card is working! - if (!card.init(SPI_FULL_SPEED, chipSelect)) { - lcd.setColor(RGB16_RED); - lcd.println("\nInitialization failed. Things to check:"); - lcd.setColor(RGB16_WHITE); - lcd.println("* Is a card is inserted?"); - lcd.println("* Is your wiring correct?"); - lcd.println("* Does the chipSelect pin match your shield?"); - return; - } else { - lcd.setColor(RGB16_CYAN); - lcd.println("Wiring is correct and a card is present."); - } - - // print the type of card - lcd.setColor(RGB16_GREEN); - lcd.print("\nCard Type: "); - switch(card.type()) { - case SD_CARD_TYPE_SD1: - lcd.println("SD1"); - break; - case SD_CARD_TYPE_SD2: - lcd.println("SD2"); - break; - case SD_CARD_TYPE_SDHC: - lcd.println("SDHC"); - break; - default: - lcd.println("Unknown"); - } - - lcd.setColor(RGB16_WHITE); - // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32 - if (!volume.init(card)) { - lcd.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card"); - return; - } - - // print the type and size of the first FAT-type volume - uint32_t volumesize; - lcd.print("\nVolume Type: FAT"); - lcd.println(volume.fatType(), DEC); - lcd.println(); - - volumesize = volume.blocksPerCluster(); // clusters are collections of blocks - volumesize *= volume.clusterCount(); // we'll have a lot of clusters - volumesize *= 512; // SD card blocks are always 512 bytes - lcd.print("Volume size: "); - lcd.print(volumesize); - lcd.print(" bytes ("); - lcd.print(volumesize >> 20); - lcd.println("MB)"); - - lcd.println("\nFiles found on SD (name, date and size in bytes)"); - root.openRoot(volume); - - // list all files in the card with date and size - root.ls(LS_R | LS_DATE | LS_SIZE); -} - - -void loop(void) -{ -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/tfthello/tfthello.ino b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/tfthello/tfthello.ino deleted file mode 100644 index a1cc0fb..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/examples/tfthello/tfthello.ino +++ /dev/null @@ -1,79 +0,0 @@ -/************************************************************************* -* Demo sketch for MultiLCD library -* Distributed under GPL v2.0 -* (C)2013-2015 developed by Stanley Huang -* For more information, please visit http://arduinodev.com -*************************************************************************/ - -#include -#include -#include - -//LCD_ILI9341 lcd; /* for 2.2" SPI LCD */ -//LCD_ILI9325D lcd; /* for 2.8" LCD */ -LCD_SSD1289 lcd; /* for 3.2" LCD */ -//LCD_R61581 lcd; /* for 3.5" LCD */ - -static const PROGMEM uint8_t smile[48 * 48 / 8] = { -0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xC0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x00, -0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE, -0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x30,0xF8,0xF8,0xF8,0xF8,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF8,0xF8,0xFC,0xF8,0x30,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F, -0x00,0x03,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE1,0xC7,0x87,0x0F,0x1F,0x3F,0x3F,0x3E,0x7E,0x7C,0x7C,0x7C,0x78,0x78,0x7C,0x7C,0x7C,0x7E,0x3E,0x3F,0x3F,0x1F,0x0F,0x87,0xC7,0xE1,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0x7F,0x3F,0x0F,0x03,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -}; - -static const PROGMEM uint8_t tick[16 * 16 / 8] = -{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; - -static const PROGMEM uint8_t cross[16 * 16 / 8] = -{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; - -void setup() -{ - lcd.begin(); - lcd.clear(); - lcd.setColor(255, 0, 255); - lcd.setXY(40, 10); - lcd.draw(smile, 48, 48); - - lcd.setColor(255, 255, 255); - lcd.setCursor(0, 10); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print("Hello, world!"); - - lcd.setColor(255, 255, 0); - lcd.setCursor(0, 11); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Hello, world!"); - - lcd.setColor(255, 0, 0); - lcd.setCursor(0, 13); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.printLong(1234567890); - - lcd.setColor(0, 255, 0); - lcd.setCursor(0, 14); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printLong(1234567890); - - lcd.setColor(0, 0, 255); - lcd.setCursor(0, 16); - lcd.setFontSize(FONT_SIZE_LARGE); - lcd.printLong(12345678); - - lcd.setColor(0, 255, 255); - lcd.setCursor(0, 18); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printLong(12345678); - - lcd.setXY(30, 200); - lcd.setColor(0, 255, 0); - lcd.draw(tick, 16, 16, 2); - lcd.setColor(255, 0, 0); - lcd.draw(cross, 16, 16, 2); -} - -void loop() -{ -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/fonts.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/fonts.h deleted file mode 100644 index ab83ba3..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/fonts.h +++ /dev/null @@ -1,331 +0,0 @@ -// The 7-bit ASCII character set... -const unsigned char font5x8[][5] PROGMEM = { - { 0x00, 0x00, 0x5f, 0x00, 0x00 }, // 21 ! - { 0x00, 0x07, 0x00, 0x07, 0x00 }, // 22 " - { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // 23 # - { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // 24 $ - { 0x23, 0x13, 0x08, 0x64, 0x62 }, // 25 % - { 0x36, 0x49, 0x55, 0x22, 0x50 }, // 26 & - { 0x00, 0x05, 0x03, 0x00, 0x00 }, // 27 ' - { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // 28 ( - { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // 29 ) - { 0x14, 0x08, 0x3e, 0x08, 0x14 }, // 2a * - { 0x08, 0x08, 0x3e, 0x08, 0x08 }, // 2b + - { 0x00, 0x50, 0x30, 0x00, 0x00 }, // 2c , - { 0x08, 0x08, 0x08, 0x08, 0x08 }, // 2d - - { 0x00, 0x60, 0x60, 0x00, 0x00 }, // 2e . - { 0x20, 0x10, 0x08, 0x04, 0x02 }, // 2f / - { 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 30 0 - { 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 31 1 - { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 32 2 - { 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 33 3 - { 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 34 4 - { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 35 5 - { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 36 6 - { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 37 7 - { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 38 8 - { 0x06, 0x49, 0x49, 0x29, 0x1e }, // 39 9 - { 0x00, 0x36, 0x36, 0x00, 0x00 }, // 3a : - { 0x00, 0x56, 0x36, 0x00, 0x00 }, // 3b ; - { 0x08, 0x14, 0x22, 0x41, 0x00 }, // 3c < - { 0x14, 0x14, 0x14, 0x14, 0x14 }, // 3d = - { 0x00, 0x41, 0x22, 0x14, 0x08 }, // 3e > - { 0x02, 0x01, 0x51, 0x09, 0x06 }, // 3f ? - { 0x32, 0x49, 0x79, 0x41, 0x3e }, // 40 @ - { 0x7e, 0x11, 0x11, 0x11, 0x7e }, // 41 A - { 0x7f, 0x49, 0x49, 0x49, 0x36 }, // 42 B - { 0x3e, 0x41, 0x41, 0x41, 0x22 }, // 43 C - { 0x7f, 0x41, 0x41, 0x22, 0x1c }, // 44 D - { 0x7f, 0x49, 0x49, 0x49, 0x41 }, // 45 E - { 0x7f, 0x09, 0x09, 0x09, 0x01 }, // 46 F - { 0x3e, 0x41, 0x49, 0x49, 0x7a }, // 47 G - { 0x7f, 0x08, 0x08, 0x08, 0x7f }, // 48 H - { 0x00, 0x41, 0x7f, 0x41, 0x00 }, // 49 I - { 0x20, 0x40, 0x41, 0x3f, 0x01 }, // 4a J - { 0x7f, 0x08, 0x14, 0x22, 0x41 }, // 4b K - { 0x7f, 0x40, 0x40, 0x40, 0x40 }, // 4c L - { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // 4d M - { 0x7f, 0x04, 0x08, 0x10, 0x7f }, // 4e N - { 0x3e, 0x41, 0x41, 0x41, 0x3e }, // 4f O - { 0x7f, 0x09, 0x09, 0x09, 0x06 }, // 50 P - { 0x3e, 0x41, 0x51, 0x21, 0x5e }, // 51 Q - { 0x7f, 0x09, 0x19, 0x29, 0x46 }, // 52 R - { 0x46, 0x49, 0x49, 0x49, 0x31 }, // 53 S - { 0x01, 0x01, 0x7f, 0x01, 0x01 }, // 54 T - { 0x3f, 0x40, 0x40, 0x40, 0x3f }, // 55 U - { 0x1f, 0x20, 0x40, 0x20, 0x1f }, // 56 V - { 0x3f, 0x40, 0x38, 0x40, 0x3f }, // 57 W - { 0x63, 0x14, 0x08, 0x14, 0x63 }, // 58 X - { 0x07, 0x08, 0x70, 0x08, 0x07 }, // 59 Y - { 0x61, 0x51, 0x49, 0x45, 0x43 }, // 5a Z - { 0x00, 0x7f, 0x41, 0x41, 0x00 }, // 5b [ - { 0x02, 0x04, 0x08, 0x10, 0x20 }, // 5c backslash - { 0x00, 0x41, 0x41, 0x7f, 0x00 }, // 5d ] - { 0x04, 0x02, 0x01, 0x02, 0x04 }, // 5e ^ - { 0x40, 0x40, 0x40, 0x40, 0x40 }, // 5f _ - { 0x00, 0x01, 0x02, 0x04, 0x00 }, // 60 ` - { 0x20, 0x54, 0x54, 0x54, 0x78 }, // 61 a - { 0x7f, 0x48, 0x44, 0x44, 0x38 }, // 62 b - { 0x38, 0x44, 0x44, 0x44, 0x20 }, // 63 c - { 0x38, 0x44, 0x44, 0x48, 0x7f }, // 64 d - { 0x38, 0x54, 0x54, 0x54, 0x18 }, // 65 e - { 0x08, 0x7e, 0x09, 0x01, 0x02 }, // 66 f - { 0x0c, 0x52, 0x52, 0x52, 0x3e }, // 67 g - { 0x7f, 0x08, 0x04, 0x04, 0x78 }, // 68 h - { 0x00, 0x44, 0x7d, 0x40, 0x00 }, // 69 i - { 0x20, 0x40, 0x44, 0x3d, 0x00 }, // 6a j - { 0x7f, 0x10, 0x28, 0x44, 0x00 }, // 6b k - { 0x00, 0x41, 0x7f, 0x40, 0x00 }, // 6c l - { 0x7c, 0x04, 0x18, 0x04, 0x78 }, // 6d m - { 0x7c, 0x08, 0x04, 0x04, 0x78 }, // 6e n - { 0x38, 0x44, 0x44, 0x44, 0x38 }, // 6f o - { 0x7c, 0x14, 0x14, 0x14, 0x08 }, // 70 p - { 0x08, 0x14, 0x14, 0x18, 0x7c }, // 71 q - { 0x7c, 0x08, 0x04, 0x04, 0x08 }, // 72 r - { 0x48, 0x54, 0x54, 0x54, 0x20 }, // 73 s - { 0x04, 0x3f, 0x44, 0x40, 0x20 }, // 74 t - { 0x3c, 0x40, 0x40, 0x20, 0x7c }, // 75 u - { 0x1c, 0x20, 0x40, 0x20, 0x1c }, // 76 v - { 0x3c, 0x40, 0x30, 0x40, 0x3c }, // 77 w - { 0x44, 0x28, 0x10, 0x28, 0x44 }, // 78 x - { 0x0c, 0x50, 0x50, 0x50, 0x3c }, // 79 y - { 0x44, 0x64, 0x54, 0x4c, 0x44 }, // 7a z - { 0x00, 0x08, 0x36, 0x41, 0x00 }, // 7b { - { 0x00, 0x00, 0x7f, 0x00, 0x00 }, // 7c | - { 0x00, 0x41, 0x36, 0x08, 0x00 }, // 7d } - { 0x10, 0x08, 0x08, 0x10, 0x08 }, // 7e ~ -}; - -const unsigned char digits16x24[][48] PROGMEM = { -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"0",0*/ -{0x00,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,0x00,0xFC,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/ -{0x00,0x00,0x00,0xF8,0x00,0xE0,0xFC,0x00,0xF8,0xFE,0x00,0xFE,0xFE,0x80,0xFF,0xFF,0xC0,0xFF,0x07,0xF0,0xFF,0x07,0xFC,0xFF,0x07,0xFF,0xEF,0xFF,0xFF,0xE3,0xFF,0xFF,0xE1,0xFE,0x7F,0xE0,0xFE,0x3F,0xE0,0xFC,0x0F,0xE0,0xF0,0x03,0x00,0x00,0x00,0x00},/*"2",2*/ -{0x00,0x00,0x00,0xF8,0x80,0x1F,0xFE,0x80,0x3F,0xFE,0x80,0x7F,0xFF,0x80,0x7F,0xFF,0x80,0xFF,0xFF,0x9C,0xFF,0xFF,0x9C,0xFF,0x07,0x1C,0xE0,0x07,0x3E,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"3",3*/ -{0x00,0xF0,0x0F,0x00,0xFE,0x0F,0x80,0xFF,0x0F,0xE0,0xFF,0x0F,0xFC,0xBF,0x0F,0xFF,0x87,0x0F,0xFF,0x81,0x0F,0x3F,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x0F,0x00,0x80,0x0F},/*"4",4*/ -{0x00,0x00,0x00,0xFF,0xC7,0x0F,0xFF,0xC7,0x3F,0xFF,0xC7,0x7F,0xFF,0xC7,0x7F,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x87,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0x01,0xE0,0xC7,0xFF,0xFF,0xC7,0xFF,0xFF,0xC7,0xFF,0x7F,0x87,0xFF,0x7F,0x87,0xFF,0x3F,0x07,0xFE,0x1F},/*"5",5*/ -{0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFC,0xFF,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x06,0xE0,0x07,0x07,0xE0,0x07,0x07,0xE0,0x3F,0xFF,0xFF,0x3F,0xFF,0xFF,0x3E,0xFF,0x7F,0x3E,0xFE,0x7F,0x3C,0xFE,0x3F,0x38,0xF8,0x1F},/*"6",6*/ -{0x00,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0xC0,0x07,0x00,0xF8,0x07,0x00,0xFF,0x07,0xE0,0xFF,0x07,0xFE,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x07,0xFF,0xFF,0x00,0xFF,0x0F,0x00,0xFF,0x01,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"7",1*/ -{0x00,0x00,0x00,0xF0,0xE3,0x1F,0xFC,0xF7,0x3F,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0x07,0x1C,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xF7,0x7F,0xFC,0xF7,0x3F,0xF0,0xE3,0x1F},/*"8",8*/ -{0x00,0x00,0x00,0xF8,0x1F,0x1C,0xFC,0x7F,0x3C,0xFE,0x7F,0x7C,0xFE,0xFF,0x7C,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0x07,0xE0,0xE0,0x07,0xE0,0xE0,0x07,0x60,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xFC,0xFF,0x3F,0xF0,0xFF,0x0F},/*"9",9*/ -}; - -const unsigned char digits16x16[][32] PROGMEM = { -{0x00,0xE0,0xF8,0xFC,0xFE,0x1E,0x07,0x07,0x07,0x07,0x1E,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x3F,0x3F,0x7C,0x70,0x70,0x70,0x70,0x7C,0x3F,0x1F,0x1F,0x07,0x00},/*0*/ -{0x00,0x00,0x00,0x06,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},/*1*/ -{0x00,0x38,0x3C,0x3E,0x3E,0x0F,0x07,0x07,0x07,0xCF,0xFF,0xFE,0xFE,0x38,0x00,0x00,0x00,0x40,0x40,0x60,0x70,0x78,0x7C,0x7E,0x7F,0x77,0x73,0x71,0x70,0x70,0x00,0x00},/*2*/ -{0x00,0x18,0x1C,0x1E,0x1E,0x0F,0xC7,0xC7,0xE7,0xFF,0xFE,0xBE,0x9C,0x00,0x00,0x00,0x00,0x0C,0x1C,0x3C,0x3C,0x78,0x70,0x70,0x70,0x79,0x7F,0x3F,0x1F,0x0F,0x00,0x00},/*3*/ -{0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x7F,0x7F,0x7F,0x7F,0x06,0x06,0x00},/*4*/ -{0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xE7,0xE7,0xE7,0xE7,0xC7,0x87,0x00,0x00,0x00,0x00,0x38,0x78,0x71,0x70,0x70,0x70,0x70,0x70,0x39,0x3F,0x3F,0x1F,0x0F,0x00},/*5*/ -{0x00,0x80,0xE0,0xF0,0xF8,0xFC,0x7F,0x7F,0x6F,0x67,0xE1,0xE1,0xC0,0x80,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x3F,0x78,0x70,0x70,0x70,0x70,0x78,0x3F,0x3F,0x1F,0x0F,0x00},/*6*/ -{0x00,0x07,0x07,0x07,0x07,0x07,0xC7,0xE7,0xF7,0xFF,0x7F,0x3F,0x1F,0x07,0x03,0x01,0x00,0x20,0x38,0x7C,0x7E,0x3F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*7*/ -{0x00,0x00,0x00,0x1C,0xBE,0xFE,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFE,0xBE,0x1C,0x00,0x00,0x00,0x0E,0x3F,0x3F,0x7F,0x71,0x60,0x60,0x60,0x71,0x7F,0x3F,0x3F,0x0F,0x00},/*8*/ -{0x00,0x78,0xFC,0xFE,0xFE,0x8F,0x07,0x07,0x07,0x07,0x8F,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0x00,0x00,0x01,0x43,0x43,0x73,0x7B,0x7F,0x7F,0x1F,0x0F,0x07,0x03,0x00,0x00},/*9*/ -}; - -const unsigned char digits8x8[][8] PROGMEM = { -{0x3C,0x7E,0x83,0x81,0x81,0x7E,0x3C,0x00},/*0*/ -{0x84,0x84,0x82,0xFF,0xFF,0x80,0x80,0x00},/*1*/ -{0x84,0xC6,0xE1,0xA1,0xB1,0x9F,0x8E,0x00},/*2*/ -{0x42,0xC3,0x81,0x89,0x89,0xFF,0x76,0x00},/*3*/ -{0x20,0x38,0x24,0x22,0xFF,0xFF,0x20,0x00},/*4*/ -{0x5F,0xDF,0x99,0x89,0x89,0xF9,0x70,0x00},/*5*/ -{0x3C,0x7E,0x89,0x89,0x89,0xFB,0x72,0x00},/*6*/ -{0x01,0x01,0xE1,0xF9,0x1D,0x07,0x01,0x00},/*7*/ -{0x6E,0xFF,0x89,0x89,0x99,0xFF,0x76,0x00},/*8*/ -{0x4E,0xDF,0x91,0x91,0x91,0x7F,0x3E,0x00},/*9*/ -}; - -#ifndef MEMORY_SAVING -const PROGMEM unsigned char font8x16_doslike[][16] = { -{0x00,0x00,0x00,0x00,0x78,0x00,0xFC,0x09,0xFC,0x09,0x78,0x00,0x00,0x00,0x00,0x00},/*"!*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00},/*""*/ -{0x20,0x02,0xF8,0x1F,0xF8,0x1F,0x20,0x02,0x20,0x02,0xF8,0x1F,0xF8,0x1F,0x20,0x02},/*"#*/ -{0x00,0x00,0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0x47,0x38,0xCC,0x0F,0x98,0x07},/*"$*/ -{0x10,0x08,0x38,0x0C,0x28,0x06,0x38,0x03,0x90,0x05,0xC0,0x0E,0x60,0x0A,0x30,0x0E},/*"%*/ -{0x80,0x07,0xD8,0x0F,0x7C,0x08,0x64,0x08,0xE4,0x08,0xBC,0x07,0x18,0x0F,0x80,0x09},/*"&*/ -{0x00,0x00,0x10,0x00,0x1C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'*/ -{0x00,0x00,0x00,0x00,0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x00,0x00,0x00,0x00},/*"(*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03,0x00,0x00},/*")*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"**/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+0*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*",*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*".*/ -{0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00},/*"/*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0xC4,0x08,0xC4,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03},/*"0*/ -{0x00,0x00,0x10,0x08,0x18,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x00},/*"1*/ -{0x08,0x0E,0x0C,0x0F,0x84,0x09,0xC4,0x08,0x64,0x08,0x3C,0x0C,0x18,0x0C,0x00,0x00},/*"2*/ -{0x08,0x04,0x0C,0x0C,0x04,0x08,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"3*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x09,0xFC,0x0F,0xFC,0x0F,0x00,0x09,0x00,0x00},/*"4*/ -{0x7C,0x04,0x7C,0x0C,0x44,0x08,0x44,0x08,0x44,0x08,0xC4,0x0F,0x84,0x07,0x00,0x00},/*"5*/ -{0xF0,0x07,0xF8,0x0F,0x4C,0x08,0x44,0x08,0x44,0x08,0xC4,0x0F,0x80,0x07,0x00,0x00},/*"6*/ -{0x0C,0x00,0x0C,0x00,0x84,0x0F,0xC4,0x0F,0x64,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00},/*"7*/ -{0xB8,0x07,0xFC,0x0F,0x44,0x08,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"8*/ -{0x38,0x00,0x7C,0x08,0x44,0x08,0x44,0x08,0x44,0x0C,0xFC,0x07,0xF8,0x03,0x00,0x00},/*"9*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x06,0x30,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*":*/ -{0x00,0x00,0x00,0x00,0x00,0x10,0x60,0x1C,0x60,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x00,0x00,0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x08,0x08,0x00,0x00},/*"<",28*/ -{0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x00,0x00},/*"=",29*/ -{0x00,0x00,0x00,0x00,0x08,0x08,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00},/*">",30*/ -{0x08,0x00,0x0C,0x00,0x04,0x00,0x84,0x0D,0xC4,0x0D,0x7C,0x00,0x38,0x00,0x00,0x00},/*"?",31*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x84,0x09,0xC4,0x09,0xFC,0x09,0xF8,0x00,0x00,0x00},/*"@",32*/ -{0xE0,0x0F,0xF0,0x0F,0x98,0x00,0x8C,0x00,0x98,0x00,0xF0,0x0F,0xE0,0x0F,0x00,0x00},/*"A",33*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0x44,0x08,0xFC,0x0F,0xB8,0x07,0x00,0x00},/*"B",34*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x04,0x08,0x0C,0x0C,0x18,0x06,0x00,0x00},/*"C",35*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x0C,0x0C,0xF8,0x07,0xF0,0x03,0x00,0x00},/*"D",36*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0xE4,0x08,0x0C,0x0C,0x0C,0x0C,0x00,0x00},/*"E",37*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x08,0xE4,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00},/*"F",38*/ -{0xF0,0x03,0xF8,0x07,0x0C,0x0C,0x04,0x08,0x84,0x08,0x8C,0x07,0x98,0x0F,0x00,0x00},/*"G",39*/ -{0xFC,0x0F,0xFC,0x0F,0x40,0x00,0x40,0x00,0x40,0x00,0xFC,0x0F,0xFC,0x0F,0x00,0x00},/*"H",40*/ -{0x00,0x00,0x04,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00},/*"I",41*/ -{0x00,0x06,0x00,0x0E,0x00,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x07,0x04,0x00,0x00,0x00},/*"J",42*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0xE0,0x00,0xB0,0x01,0x1C,0x0F,0x0C,0x0E,0x00,0x00},/*"K",43*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x00,0x08,0x00,0x0C,0x00,0x0C,0x00,0x00},/*"L",44*/ -{0xFC,0x0F,0xFC,0x0F,0x30,0x00,0xE0,0x00,0xE0,0x00,0x30,0x00,0xFC,0x0F,0xFC,0x0F},/*"M",45*/ -{0xFC,0x0F,0xFC,0x0F,0x30,0x00,0x60,0x00,0xC0,0x00,0xFC,0x0F,0xFC,0x0F,0x00,0x00},/*"N",46*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0xF8,0x07,0x00,0x00},/*"O",47*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x84,0x08,0x84,0x00,0xFC,0x00,0x78,0x00,0x00,0x00},/*"P",48*/ -{0xF8,0x07,0xFC,0x0F,0x04,0x08,0x04,0x0C,0x04,0x18,0xFC,0x3F,0xF8,0x27,0x00,0x00},/*"Q",49*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x44,0x00,0xC4,0x00,0xFC,0x0F,0x38,0x0F,0x00,0x00},/*"R",50*/ -{0x18,0x04,0x3C,0x0C,0x64,0x08,0x44,0x08,0xC4,0x08,0x8C,0x0F,0x08,0x07,0x00,0x00},/*"S",51*/ -{0x0C,0x00,0x0C,0x00,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x0C,0x00,0x0C,0x00},/*"T",52*/ -{0xFC,0x07,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0xFC,0x0F,0xFC,0x07,0x00,0x00},/*"U",53*/ -{0xFC,0x01,0xFC,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x06,0xFC,0x03,0xFC,0x01},/*"V",54*/ -{0xFC,0x03,0xFC,0x0F,0x00,0x0E,0x80,0x03,0x80,0x03,0x00,0x0E,0xFC,0x0F,0xFC,0x03},/*"W",55*/ -{0x0C,0x0C,0x1C,0x0E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1C,0x0E,0x0C,0x0C},/*"X",56*/ -{0x1C,0x00,0x3C,0x00,0x60,0x08,0xC0,0x0F,0xC0,0x0F,0x60,0x08,0x3C,0x00,0x1C,0x00},/*"Y",57*/ -{0x0C,0x0E,0x0C,0x0F,0x84,0x09,0xC4,0x08,0x64,0x08,0x34,0x08,0x1C,0x0C,0x0C,0x0C},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFC,0x0F,0xFC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x04,0x08,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x00,0x00,0x10,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x10,0x00},/*"^",62*/ -{0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x08,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x07,0xA0,0x0F,0xA0,0x08,0xA0,0x08,0xE0,0x07,0xC0,0x0F,0x00,0x08,0x00,0x00},/*"a",65*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x07,0x20,0x08,0x60,0x08,0xC0,0x0F,0x80,0x07,0x00,0x00},/*"b",66*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x08,0x20,0x08,0x60,0x0C,0x40,0x04,0x00,0x00},/*"c",67*/ -{0x80,0x07,0xC0,0x0F,0x60,0x08,0x24,0x08,0xFC,0x07,0xFC,0x0F,0x00,0x08,0x00,0x00},/*"d",68*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x09,0x20,0x09,0x20,0x09,0xE0,0x0D,0xC0,0x05,0x00,0x00},/*"e",69*/ -{0x00,0x00,0x40,0x08,0xF8,0x0F,0xFC,0x0F,0x44,0x08,0x4C,0x00,0x08,0x00,0x00,0x00},/*"f",70*/ -{0xC0,0x27,0xE0,0x6F,0x20,0x48,0x20,0x48,0xC0,0x7F,0xE0,0x3F,0x20,0x00,0x00,0x00},/*"g",71*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x40,0x00,0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x00,0x00},/*"h",72*/ -{0x00,0x00,0x00,0x00,0x20,0x08,0xEC,0x0F,0xEC,0x0F,0x00,0x08,0x00,0x00,0x00,0x00},/*"i",73*/ -{0x00,0x00,0x00,0x20,0x00,0x60,0x00,0x40,0x20,0x40,0xEC,0x7F,0xEC,0x3F,0x00,0x00},/*"j",74*/ -{0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x80,0x01,0xC0,0x03,0x60,0x0E,0x20,0x0C,0x00,0x00},/*"k",75*/ -{0x00,0x00,0x00,0x00,0x04,0x08,0xFC,0x0F,0xFC,0x0F,0x00,0x08,0x00,0x00,0x00,0x00},/*"l",76*/ -{0xE0,0x0F,0xE0,0x0F,0x60,0x00,0xC0,0x07,0xC0,0x07,0x60,0x00,0xE0,0x0F,0xC0,0x0F},/*"m",77*/ -{0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x20,0x00,0x20,0x00,0xE0,0x0F,0xC0,0x0F,0x00,0x00},/*"n",78*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x08,0x20,0x08,0xE0,0x0F,0xC0,0x07,0x00,0x00},/*"o",79*/ -{0x20,0x40,0xE0,0x7F,0xC0,0x7F,0x20,0x48,0x20,0x08,0xE0,0x0F,0xC0,0x07,0x00,0x00},/*"p",80*/ -{0xC0,0x07,0xE0,0x0F,0x20,0x08,0x20,0x48,0xC0,0x7F,0xE0,0x7F,0x20,0x40,0x00,0x00},/*"q",81*/ -{0x20,0x08,0xE0,0x0F,0xC0,0x0F,0x60,0x08,0x20,0x00,0x60,0x00,0x40,0x00,0x00,0x00},/*"r",82*/ -{0xC0,0x04,0xE0,0x0D,0x20,0x09,0x20,0x09,0x20,0x09,0x60,0x0F,0x40,0x06,0x00,0x00},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xF8,0x07,0xFC,0x0F,0x20,0x08,0x20,0x0C,0x00,0x04,0x00,0x00},/*"t",84*/ -{0xE0,0x07,0xE0,0x0F,0x00,0x08,0x00,0x08,0xE0,0x07,0xE0,0x0F,0x00,0x08,0x00,0x00},/*"u",85*/ -{0xE0,0x01,0xE0,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x06,0xE0,0x03,0xE0,0x01},/*"v",86*/ -{0xE0,0x07,0xE0,0x0F,0x00,0x0C,0x00,0x07,0x00,0x07,0x00,0x0C,0xE0,0x0F,0xE0,0x07},/*"w",87*/ -{0x20,0x08,0x60,0x0C,0xC0,0x06,0x80,0x03,0x80,0x03,0xC0,0x06,0x60,0x0C,0x20,0x08},/*"x",88*/ -{0xE0,0x47,0xE0,0x4F,0x00,0x48,0x00,0x48,0x00,0x68,0xE0,0x3F,0xE0,0x1F,0x00,0x00},/*"y",89*/ -{0x60,0x0C,0x60,0x0E,0x20,0x0B,0xA0,0x09,0xE0,0x08,0x60,0x0C,0x20,0x0C,0x00,0x00},/*"z",90*/ -{0x00,0x00,0x40,0x00,0x40,0x00,0xF8,0x07,0xBC,0x0F,0x04,0x08,0x04,0x08,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x7C,0x1F,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x04,0x08,0x04,0x08,0xBC,0x0F,0xF8,0x07,0x40,0x00,0x40,0x00,0x00,0x00},/*"}",93*/ -}; - -const PROGMEM unsigned char font8x16_terminal[][16] = { -{0x00,0x00,0x00,0x00,0x7C,0x00,0xFE,0x1B,0xFE,0x1B,0x7C,0x00,0x00,0x00,0x00,0x00},/*"!",0*/ -{0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00},/*""",1*/ -{0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01,0x20,0x01,0xFC,0x0F,0xFC,0x0F,0x20,0x01},/*"#",2*/ -{0x38,0x06,0x7C,0x0C,0x44,0x08,0xFF,0x3F,0xFF,0x3F,0x84,0x08,0x8C,0x0F,0x18,0x07},/*"$",3*/ -{0x1C,0x18,0x14,0x1E,0x9C,0x07,0xE0,0x01,0x78,0x1C,0x1E,0x14,0x06,0x1C,0x00,0x00},/*"%",4*/ -{0xBC,0x1F,0xFE,0x10,0x42,0x10,0xC2,0x10,0xFE,0x1F,0x3C,0x0F,0x80,0x19,0x80,0x10},/*"&",5*/ -{0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ -{0x00,0x00,0x00,0x00,0xF0,0x07,0xFC,0x1F,0x0E,0x38,0x02,0x20,0x00,0x00,0x00,0x00},/*"(",7*/ -{0x00,0x00,0x00,0x00,0x02,0x20,0x0E,0x38,0xFC,0x1F,0xF0,0x07,0x00,0x00,0x00,0x00},/*")",8*/ -{0x80,0x00,0xA0,0x02,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xE0,0x03,0xA0,0x02,0x80,0x00},/*"*",9*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x03,0xE0,0x03,0x80,0x00,0x80,0x00,0x80,0x00},/*"+",10*/ -{0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00},/*",",11*/ -{0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00},/*"-",12*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},/*".",13*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",14*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0xC2,0x10,0xC2,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"0",15*/ -{0x00,0x00,0x08,0x10,0x0C,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"1",16*/ -{0x04,0x1C,0x06,0x1E,0x02,0x13,0x82,0x11,0xC2,0x10,0x62,0x10,0x3E,0x18,0x1C,0x18},/*"2",17*/ -{0x04,0x08,0x06,0x18,0x02,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"3",18*/ -{0xC0,0x01,0xE0,0x01,0x30,0x01,0x18,0x01,0x0C,0x11,0xFE,0x1F,0xFE,0x1F,0x00,0x11},/*"4",19*/ -{0x7E,0x08,0x7E,0x18,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC2,0x1F,0x82,0x0F},/*"5",20*/ -{0xF8,0x0F,0xFC,0x1F,0x46,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xC0,0x1F,0x80,0x0F},/*"6",21*/ -{0x06,0x00,0x06,0x00,0x02,0x00,0x02,0x1F,0xC2,0x1F,0xF2,0x00,0x3E,0x00,0x0E,0x00},/*"7",22*/ -{0xBC,0x0F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"8",23*/ -{0x3C,0x00,0x7E,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x18,0xFE,0x0F,0xFC,0x07},/*"9",24*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ -{0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x3C,0x60,0x1C,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x80,0x00,0xC0,0x01,0x60,0x03,0x30,0x06,0x18,0x0C,0x0C,0x18,0x04,0x10,0x00,0x00},/*"<",28*/ -{0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02},/*"=",29*/ -{0x04,0x10,0x0C,0x18,0x18,0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,0x00,0x00,0x00},/*">",30*/ -{0x04,0x00,0x06,0x00,0x02,0x00,0x82,0x1B,0xC2,0x1B,0x62,0x00,0x3E,0x00,0x1C,0x00},/*"?",31*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x82,0x11,0xC2,0x13,0xE2,0x13,0xFE,0x13,0xFC,0x03},/*"@",32*/ -{0xF0,0x1F,0xF8,0x1F,0x0C,0x01,0x06,0x01,0x06,0x01,0x0C,0x01,0xF8,0x1F,0xF0,0x1F},/*"A",33*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x1F,0xBC,0x0F},/*"B",34*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x02,0x10,0x02,0x10,0x06,0x18,0x0C,0x0C},/*"C",35*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x06,0x18,0xFC,0x0F,0xF8,0x07},/*"D",36*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x10,0xE2,0x10,0x06,0x18,0x06,0x18},/*"E",37*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0xE2,0x00,0x06,0x00,0x06,0x00},/*"F",38*/ -{0xF8,0x07,0xFC,0x0F,0x06,0x18,0x02,0x10,0x82,0x10,0x82,0x10,0x86,0x0F,0x8C,0x1F},/*"G",39*/ -{0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFE,0x1F,0xFE,0x1F},/*"H",40*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00},/*"I",41*/ -{0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x02,0x00},/*"J",42*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0xE0,0x00,0xB0,0x01,0x18,0x03,0x0E,0x1E,0x06,0x1C},/*"K",43*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x18},/*"L",44*/ -{0xFE,0x1F,0xFE,0x1F,0x18,0x00,0xF0,0x00,0xF0,0x00,0x18,0x00,0xFE,0x1F,0xFE,0x1F},/*"M",45*/ -{0xFE,0x1F,0xFE,0x1F,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0xFE,0x1F,0xFE,0x1F},/*"N",46*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFC,0x0F},/*"O",47*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x10,0x42,0x00,0x42,0x00,0x7E,0x00,0x3C,0x00},/*"P",48*/ -{0xFC,0x0F,0xFE,0x1F,0x02,0x10,0x02,0x1C,0x02,0x38,0x02,0x70,0xFE,0x5F,0xFC,0x0F},/*"Q",49*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x42,0x00,0x42,0x00,0xC2,0x00,0xFE,0x1F,0x3C,0x1F},/*"R",50*/ -{0x1C,0x0C,0x3E,0x1C,0x62,0x10,0x42,0x10,0x42,0x10,0xC2,0x10,0x8E,0x1F,0x0C,0x0F},/*"S",51*/ -{0x06,0x00,0x06,0x00,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x06,0x00,0x06,0x00},/*"T",52*/ -{0xFE,0x0F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0xFE,0x1F,0xFE,0x0F},/*"U",53*/ -{0xFE,0x03,0xFE,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xFE,0x07,0xFE,0x03},/*"V",54*/ -{0xFE,0x07,0xFE,0x1F,0x00,0x1C,0xC0,0x07,0xC0,0x07,0x00,0x1C,0xFE,0x1F,0xFE,0x07},/*"W",55*/ -{0x0E,0x1C,0x1E,0x1E,0x30,0x03,0xE0,0x01,0xE0,0x01,0x30,0x03,0x1E,0x1E,0x0E,0x1C},/*"X",56*/ -{0x1E,0x00,0x3E,0x00,0x60,0x10,0xC0,0x1F,0xC0,0x1F,0x60,0x10,0x3E,0x00,0x1E,0x00},/*"Y",57*/ -{0x06,0x1E,0x06,0x1F,0x82,0x11,0xC2,0x10,0x62,0x10,0x32,0x10,0x1E,0x18,0x0E,0x18},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0xFE,0x1F,0xFE,0x1F,0x02,0x10,0x02,0x10,0x00,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x18,0x00,0x1E,0x80,0x07,0xE0,0x01,0x78,0x00,0x1E,0x00,0x06,0x00,0x00,0x00},/*"/",60*/ -{0x00,0x00,0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x20,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,0x00},/*"^",62*/ -{0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x0E,0x20,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x0F,0xC0,0x1F,0x00,0x10},/*"a",65*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x0F,0x20,0x10,0x20,0x10,0x60,0x10,0xC0,0x1F,0x80,0x0F},/*"b",66*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x60,0x18,0x40,0x08},/*"c",67*/ -{0x80,0x0F,0xC0,0x1F,0x60,0x10,0x20,0x10,0x22,0x10,0xFE,0x0F,0xFE,0x1F,0x00,0x10},/*"d",68*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x11,0x20,0x11,0x20,0x11,0x20,0x11,0xE0,0x19,0xC0,0x09},/*"e",69*/ -{0x00,0x00,0x20,0x10,0xFC,0x1F,0xFE,0x1F,0x22,0x10,0x22,0x00,0x06,0x00,0x04,0x00},/*"f",70*/ -{0xC0,0x4F,0xE0,0xDF,0x20,0x90,0x20,0x90,0x20,0x90,0xC0,0xFF,0xE0,0x7F,0x20,0x00},/*"g",71*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x40,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"h",72*/ -{0x00,0x00,0x20,0x10,0x20,0x10,0xEC,0x1F,0xEC,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"i",73*/ -{0x00,0x60,0x00,0xC0,0x20,0x80,0x20,0x80,0xEC,0xFF,0xEC,0x7F,0x00,0x00,0x00,0x00},/*"j",74*/ -{0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x80,0x01,0x80,0x03,0xC0,0x06,0x60,0x1C,0x20,0x18},/*"k",75*/ -{0x00,0x00,0x02,0x10,0x02,0x10,0xFE,0x1F,0xFE,0x1F,0x00,0x10,0x00,0x10,0x00,0x00},/*"l",76*/ -{0xE0,0x1F,0xE0,0x1F,0x60,0x00,0xC0,0x0F,0xC0,0x0F,0x60,0x00,0xE0,0x1F,0xC0,0x1F},/*"m",77*/ -{0x20,0x00,0xE0,0x1F,0xC0,0x1F,0x20,0x00,0x20,0x00,0x20,0x00,0xE0,0x1F,0xC0,0x1F},/*"n",78*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"o",79*/ -{0x20,0x80,0xE0,0xFF,0xC0,0xFF,0x20,0x90,0x20,0x10,0x20,0x10,0xE0,0x1F,0xC0,0x0F},/*"p",80*/ -{0xC0,0x0F,0xE0,0x1F,0x20,0x10,0x20,0x10,0x20,0x90,0xC0,0xFF,0xE0,0xFF,0x20,0x80},/*"q",81*/ -{0x20,0x10,0xE0,0x1F,0xC0,0x1F,0x60,0x10,0x20,0x00,0x20,0x00,0x60,0x00,0x40,0x00},/*"r",82*/ -{0xC0,0x08,0xE0,0x19,0x20,0x11,0x20,0x11,0x20,0x13,0x20,0x12,0x60,0x1E,0x40,0x0C},/*"s",83*/ -{0x20,0x00,0x20,0x00,0xFC,0x0F,0xFE,0x1F,0x20,0x10,0x20,0x18,0x00,0x08,0x00,0x00},/*"t",84*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x10,0x00,0x10,0x00,0x10,0xE0,0x0F,0xE0,0x1F,0x00,0x10},/*"u",85*/ -{0xE0,0x03,0xE0,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x0C,0xE0,0x07,0xE0,0x03},/*"v",86*/ -{0xE0,0x0F,0xE0,0x1F,0x00,0x18,0x00,0x0F,0x00,0x0F,0x00,0x18,0xE0,0x1F,0xE0,0x0F},/*"w",87*/ -{0x20,0x10,0x60,0x18,0xC0,0x0C,0x80,0x07,0x80,0x07,0xC0,0x0C,0x60,0x18,0x20,0x10},/*"x",88*/ -{0xE0,0x8F,0xE0,0x9F,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xD0,0xE0,0x7F,0xE0,0x3F},/*"y",89*/ -{0x60,0x18,0x60,0x1C,0x20,0x16,0x20,0x13,0xA0,0x11,0xE0,0x10,0x60,0x18,0x20,0x18},/*"z",90*/ -{0x00,0x00,0x00,0x00,0x80,0x00,0xFC,0x1F,0x7E,0x3F,0x02,0x20,0x02,0x20,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3E,0x7C,0x3E,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x02,0x20,0x02,0x20,0x7E,0x3F,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,0x00},/*"}",93*/ -}; - -#endif diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM.h deleted file mode 100644 index c71a5ff..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM.h +++ /dev/null @@ -1,7 +0,0 @@ -void UTFT::_convert_float(char *buf, double num, int width, byte prec) -{ - char format[10]; - - sprintf(format, "%%%i.%if", width, prec); - sprintf(buf, format, num); -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM_defines.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM_defines.h deleted file mode 100644 index 8df5f97..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_ARM_defines.h +++ /dev/null @@ -1,45 +0,0 @@ -// CTE TFT LCD/SD Shield for Arduino Due -// ------------------------------------- -// Uncomment the following line if you are using this shield -//#define CTE_DUE_SHIELD 1 -// -// For this shield: RS=25, WR=26, CS=27, RST=28 -//******************************************************************** - -// ElecHouse TFT LCD/SD Shield for Arduino Due -// ------------------------------------- -// Uncomment the following line if you are using this shield -//#define EHOUSE_DUE_SHIELD 1 -// -// For this shield: RS=22, WR=23, CS=31, RST=33 -//******************************************************************** - -// *** Hardwarespecific defines *** -#if defined(ENERGIA) - #define cbi(reg, bitmask) HWREG((uint32_t)reg + 0x3FC) &= ~bitmask - #define sbi(reg, bitmask) HWREG((uint32_t)reg + 0x3FC) |= bitmask -#else - #define cbi(reg, bitmask) *reg &= ~bitmask - #define sbi(reg, bitmask) *reg |= bitmask -#endif -#define pulse_high(reg, bitmask) sbi(reg, bitmask); cbi(reg, bitmask); -#define pulse_low(reg, bitmask) cbi(reg, bitmask); sbi(reg, bitmask); - -#define cport(port, data) port &= data -#define sport(port, data) port |= data - -#define swap(type, i, j) {type t = i; i = j; j = t;} - -#define fontbyte(x) cfont.font[x] - -#define pgm_read_word(data) *data -#define pgm_read_byte(data) *data -#define bitmapdatatype unsigned short* - -#if defined(TEENSYDUINO) && TEENSYDUINO >= 117 - #define regtype volatile uint8_t - #define regsize uint8_t -#else - #define regtype volatile uint32_t - #define regsize uint32_t -#endif diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_MX20DX256.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_MX20DX256.h deleted file mode 100644 index 93df980..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/hardware/arm/HW_MX20DX256.h +++ /dev/null @@ -1,188 +0,0 @@ -/** - * - * This file is a modified version of the HW_Teensy3.h created by Paul Stoffregen. - * - * Teensy 3.x pin definitions created by Dawnmist - * http://forum.pjrc.com/threads/18002-Teensy-3-0-driving-an-SSD1289-with-utft?p=34719&viewfull=1#post34719 - * - * This file only supports the B and D ports as defined by Dawnmist for 8-bit and 16-bit display modules. - * Serial display modules are also supported. - * - * NOTE: This file has only been tested on a Teensy 3.1 - * -**/ - -// *** Hardware specific functions *** -void UTFT::_hw_special_init() -{ -} - -void UTFT::LCD_Writ_Bus(char VH,char VL, byte mode) -{ - switch (mode) - { - case 1: - if (display_serial_mode==SERIAL_4PIN) - { - if (VH==1) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - } - else - { - if (VH==1) - sbi(P_RS, B_RS); - else - cbi(P_RS, B_RS); - } - - if (VL & 0x80) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x40) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x20) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x10) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x08) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x04) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x02) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - if (VL & 0x01) - sbi(P_SDA, B_SDA); - else - cbi(P_SDA, B_SDA); - pulse_low(P_SCL, B_SCL); - break; - case 8: - *(volatile uint8_t *)(&GPIOD_PDOR) = VH; - pulse_low(P_WR, B_WR); - *(volatile uint8_t *)(&GPIOD_PDOR) = VL; - pulse_low(P_WR, B_WR); - break; - case 16: - *(volatile uint8_t *)(&GPIOD_PDOR) = VH; - GPIOB_PCOR = 0x000F000F; // clear data lines B0-3,B16-19 - GPIOB_PSOR = (0x0F & VL) | ((VL >> 4) << 16); // set data lines 0-3,16-19 if set in cl - pulse_low(P_WR, B_WR); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - GPIOD_PDDR |= 0xFF; - PORTD_PCR0 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR1 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR2 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR3 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR4 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR5 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR6 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTD_PCR7 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - - if (mode == 16) - { - GPIOB_PDDR |= 0x000F000F; - PORTB_PCR0 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR1 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR2 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR3 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR16 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR17 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR18 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - PORTB_PCR19 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1); - } -} -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - *(volatile uint8_t *)(&GPIOD_PDOR) = ch; - GPIOB_PCOR = 0x000F000F; // clear data lines B0-3,B16-19 - GPIOB_PSOR = (0x0F & cl) | ((cl >> 4) << 16); // set data lines 0-3,16-19 if set in cl - - blocks = pix/16; - for (int i=0; i>3) | ((VH & 0x80)>>1); - pulse_low(P_WR, B_WR); - - REG_PIOA_CODR=0x0000C000; - REG_PIOD_CODR=0x0000064F; - REG_PIOA_SODR=(VL & 0x06)<<13; - (VL & 0x01) ? REG_PIOB_SODR = 0x4000000 : REG_PIOB_CODR = 0x4000000; - REG_PIOD_SODR=((VL & 0x78)>>3) | ((VL & 0x80)>>1); - pulse_low(P_WR, B_WR); -#endif - break; - case 16: -#if defined(CTE_DUE_SHIELD) - REG_PIOC_CODR=0xFF1FE; - REG_PIOC_SODR=(VL<<1) & 0x1FE; - REG_PIOC_SODR=(VH<<12) & 0xFF000; -#elif defined(EHOUSE_DUE_SHIELD) - PIOC->PIO_ODSR = ((PIOC->PIO_ODSR&(~0x000FF3FC)) | ((((uint32_t)VL)<<2) | (((uint32_t)VH)<<12))); -#else - REG_PIOA_CODR=0x0000C080; - REG_PIOC_CODR=0x0000003E; - REG_PIOD_CODR=0x0000064F; - REG_PIOA_SODR=((VH & 0x06)<<13) | ((VL & 0x40)<<1); - (VH & 0x01) ? REG_PIOB_SODR = 0x4000000 : REG_PIOB_CODR = 0x4000000; - REG_PIOC_SODR=((VL & 0x01)<<5) | ((VL & 0x02)<<3) | ((VL & 0x04)<<1) | ((VL & 0x08)>>1) | ((VL & 0x10)>>3); - REG_PIOD_SODR=((VH & 0x78)>>3) | ((VH & 0x80)>>1) | ((VL & 0x20)<<5) | ((VL & 0x80)<<2); -#endif - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - asm("nop"); // Mode is unsupported - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - if (mode!=LATCHED_16) - { -#if defined(CTE_DUE_SHIELD) - if (mode==16) - { - REG_PIOC_OER=0x000FF1FE; - } - else - REG_PIOC_OER=0x000FF000; -#elif defined(EHOUSE_DUE_SHIELD) - if (mode==16) - { - REG_PIOC_OER=0x000FF3FC; - REG_PIOC_OWER=0x000FF3FC; - } - else - REG_PIOC_OER=0x000FF000; -#else - REG_PIOA_OER=0x0000c000; //PA14,PA15 enable - REG_PIOB_OER=0x04000000; //PB26 enable - REG_PIOD_OER=0x0000064f; //PD0-3,PD6,PD9-10 enable - if (mode==16) - { - REG_PIOA_OER=0x00000080; //PA7 enable - REG_PIOC_OER=0x0000003e; //PC1 - PC5 enable - } -#endif - } - else - { - asm("nop"); // Mode is unsupported - } -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - -#if defined(CTE_DUE_SHIELD) - REG_PIOC_CODR=0xFF1FE; - REG_PIOC_SODR=(cl<<1) & 0x1FE; - REG_PIOC_SODR=(ch<<12) & 0xFF000; -#elif defined(EHOUSE_DUE_SHIELD) - PIOC->PIO_ODSR = ((PIOC->PIO_ODSR&(~0x000FF3FC)) | ((((uint32_t)cl)<<2) | (((uint32_t)ch)<<12))); -#else - REG_PIOA_CODR=0x0000C080; - REG_PIOC_CODR=0x0000003E; - REG_PIOD_CODR=0x0000064F; - REG_PIOA_SODR=((ch & 0x06)<<13) | ((cl & 0x40)<<1); - (ch & 0x01) ? REG_PIOB_SODR = 0x4000000 : REG_PIOB_CODR = 0x4000000; - REG_PIOC_SODR=((cl & 0x01)<<5) | ((cl & 0x02)<<3) | ((cl & 0x04)<<1) | ((cl & 0x08)>>1) | ((cl & 0x10)>>3); - REG_PIOD_SODR=((ch & 0x78)>>3) | ((ch & 0x80)>>1) | ((cl & 0x20)<<5) | ((cl & 0x80)<<2); -#endif - - blocks = pix/16; - for (int i=0; i>3) | ((ch & 0x80)>>1); -#endif - - blocks = pix/16; - for (int i=0; i>3; - PORTE &= ~0x3B; - PORTE |= (VH & 0x03) + ((VH & 0x0C)<<2) + ((VH & 0x20)>>2); - pulse_low(P_WR, B_WR); - PORTG &= ~0x20; - PORTG |= (VL & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (VL & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (VL & 0x03) + ((VL & 0x0C)<<2) + ((VL & 0x20)>>2); - pulse_low(P_WR, B_WR); -#else - PORTA = VH; - pulse_low(P_WR, B_WR); - PORTA = VL; - pulse_low(P_WR, B_WR); -#endif - break; - case 16: - PORTA = VH; - PORTC = VL; - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - PORTG &= ~0x20; - PORTG |= (VH & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (VH & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (VH & 0x03) + ((VH & 0x0C)<<2) + ((VH & 0x20)>>2); - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - PORTG &= ~0x20; - PORTG |= (VL & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (VL & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (VL & 0x03) + ((VL & 0x0C)<<2) + ((VL & 0x20)>>2); - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ -#if defined(USE_UNO_SHIELD_ON_MEGA) - DDRH = 0x18; - DDRG = 0x20; - DDRE = 0x3B; -#else - if (mode!=LATCHED_16) - { - DDRA = 0xFF; - if (mode==16) - DDRC = 0xFF; - } - else - { - DDRH = 0x18; - DDRG = 0x20; - DDRE = 0x3B; - } -#endif -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ -#if defined(USE_UNO_SHIELD_ON_MEGA) - if (ch==cl) - _fast_fill_8(ch, pix); - else - { - for (int i=0; i>3; - PORTE &= ~0x3B; - PORTE |= (ch & 0x03) + ((ch & 0x0C)<<2) + ((ch & 0x20)>>2); - pulse_low(P_WR, B_WR); - PORTG &= ~0x20; - PORTG |= (cl & 0x10)<<1; - PORTH &= ~0x18; - PORTH |= (cl & 0xC0)>>3; - PORTE &= ~0x3B; - PORTE |= (cl & 0x03) + ((cl & 0x0C)<<2) + ((cl & 0x20)>>2); - pulse_low(P_WR, B_WR); - } - } -#else - long blocks; - - PORTA = ch; - PORTC = cl; - - blocks = pix/16; - for (int i=0; i>3; - PORTE &= ~0x3B; - PORTE |= (ch & 0x03) + ((ch & 0x0C)<<2) + ((ch & 0x20)>>2); -#else - PORTA = ch; -#endif - - blocks = pix/16; - for (int i=0; i>4); - pulse_low(P_WR, B_WR); - cport (PORTD, 0xF0); - sport (PORTD, (VL & 0x0F)); - cport (PORTB, 0xF0); - sport (PORTB, (VL & 0xF0)>>4); - pulse_low(P_WR, B_WR); - break; - case 16: - cport (PORTD, 0x90); - sport (PORTD, (VH & 0x0F) | ((VL & 0x03)<<5)); - PORTB = ((VH & 0xF0)>>4) | ((VL & 0x3C)<<2); - cport (PORTA, 0x3F); - sport (PORTA, ((VL & 0x40)<<1) | ((VL & 0x80)>>1)); - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - cport (PORTD, 0xF0); - sport (PORTD, (VH & 0x0F)); - cport (PORTB, 0xF0); - sport (PORTB, (VH & 0xF0)>>4); - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - cport (PORTD, 0xF0); - sport (PORTD, (VL & 0x0F)); - cport (PORTB, 0xF0); - sport (PORTB, (VL & 0xF0)>>4); - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - DDRB |= 0x0F; - DDRD |= 0x0F; - if (mode==16) - { - DDRB = 0xFF; - DDRD |= 0x6F; - DDRA |= 0xC0; - } - -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - cport (PORTD, 0x90); - sport (PORTD, (ch & 0x0F) | ((cl & 0x03)<<5)); - PORTB = ((ch & 0xF0)>>4) | ((cl & 0x3C)<<2); - cport (PORTA, 0x3F); - sport (PORTA, ((cl & 0x40)<<1) | ((cl & 0x80)>>1)); - - blocks = pix/16; - for (int i=0; i>4); - - blocks = pix/16; - for (int i=0; i>6) & 0x03); - PORTB = VL & 0x3F; - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - PORTD = VH; - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - PORTD = VL; - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - DDRD = 0xFF; - if (mode==16) - { - DDRB |= 0x3F; - DDRC |= 0x03; - } - -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - PORTD = ch; - cport(PORTC, 0xFC); - sport(PORTC, (cl>>6) & 0x03); - PORTB = cl & 0x3F; - - blocks = pix/16; - for (int i=0; i>3) + ((VH & 0x04)>>1) + ((VH & 0x03)<<2); - PORTE += ((VH & 0x80)>>1); - pulse_low(P_WR, B_WR); - - cport(PORTC, 0xBF); - cport(PORTD, 0x60); - cport(PORTE, 0xBF); - PORTC += ((VL & 0x20)<<1); - PORTD += ((VL & 0x40)<<1) + (VL & 0x10) + ((VL & 0x08)>>3) + ((VL & 0x04)>>1) + ((VL & 0x03)<<2); - PORTE += ((VL & 0x80)>>1); - pulse_low(P_WR, B_WR); - break; - case 16: - cport(PORTB, 0x0F); - cport(PORTC, 0x3F); - cport(PORTD, 0x20); - cport(PORTE, 0xBF); - cport(PORTF, 0x3F); - - PORTB |= ((VL & 0x0F)<<4); - PORTC |= ((VL & 0x20)<<2) + ((VH & 0x20)<<1); - PORTD |= ((VH & 0x40)<<1) + (VH & 0x10) + ((VH & 0x08)>>3) + ((VH & 0x04)>>1) + ((VH & 0x03)<<2) + ((VL & 0x10)<<2); - PORTE |= ((VH & 0x80)>>1); - PORTF |= ((VL & 0x80)>>1) + ((VL & 0x40)<<1); - - pulse_low(P_WR, B_WR); - break; - case LATCHED_16: - cport(PORTC, 0xBF); - cport(PORTD, 0x60); - cport(PORTE, 0xBF); - PORTC += ((VH & 0x20)<<1); - PORTD += ((VH & 0x40)<<1) + (VH & 0x10) + ((VH & 0x08)>>3) + ((VH & 0x04)>>1) + ((VH & 0x03)<<2); - PORTE += ((VH & 0x80)>>1); - cbi(P_ALE, B_ALE); - pulse_high(P_ALE, B_ALE); - cbi(P_CS, B_CS); - cport(PORTC, 0xBF); - cport(PORTD, 0x60); - cport(PORTE, 0xBF); - PORTC += ((VL & 0x20)<<1); - PORTD += ((VL & 0x40)<<1) + (VL & 0x10) + ((VL & 0x08)>>3) + ((VL & 0x04)>>1) + ((VL & 0x03)<<2); - PORTE += ((VL & 0x80)>>1); - pulse_low(P_WR, B_WR); - sbi(P_CS, B_CS); - break; - } -} - -void UTFT::_set_direction_registers(byte mode) -{ - switch (mode) - { - case 8: - case LATCHED_16: - DDRC |= 0x40; - DDRD |= 0x9F; - DDRE |= 0x40; - break; - case 16: - DDRB |= 0xF0; - DDRC |= 0xC0; - DDRD |= 0xDF; - DDRE |= 0x40; - DDRF |= 0xC0; - break; - } -} - -void UTFT::_fast_fill_16(int ch, int cl, long pix) -{ - long blocks; - - cport(PORTB, 0x0F); - cport(PORTC, 0x3F); - cport(PORTD, 0x20); - cport(PORTE, 0xBF); - cport(PORTF, 0x3F); - - PORTB |= ((cl & 0x0F)<<4); - PORTC |= ((cl & 0x20)<<2) + ((ch & 0x20)<<1); - PORTD |= ((ch & 0x40)<<1) + (ch & 0x10) + ((ch & 0x08)>>3) + ((ch & 0x04)>>1) + ((ch & 0x03)<<2) + ((cl & 0x10)<<2); - PORTE |= ((ch & 0x80)>>1); - PORTF |= ((cl & 0x80)>>1) + ((cl & 0x40)<<1); - - blocks = pix/16; - for (int i=0; i>3) + ((ch & 0x04)>>1) + ((ch & 0x03)<<2); - PORTE |= ((ch & 0x80)>>1); - - blocks = pix/16; - for (int i=0; i - - - - - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/memorysaver.h b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/memorysaver.h deleted file mode 100644 index fafed8b..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/memorysaver.h +++ /dev/null @@ -1,46 +0,0 @@ -// UTFT Memory Saver -// ----------------- -// -// Since most people have only one or possibly two different display modules a lot -// of memory has been wasted to keep support for many unneeded controller chips. -// You now have the option to remove this unneeded code from the library with -// this file. -// By disabling the controllers you don't need you can reduce the memory footprint -// of the library by several Kb. -// -// Uncomment the lines for the displaycontrollers that you don't use to save -// some flash memory by not including the init code for that particular -// controller. - -#define DISABLE_CPLD 1 // EHOUSE50CPLD - -#define DISABLE_HX8340B_8 1 // ITDB22 8bit mode / GEEE22 -#define DISABLE_HX8340B_S 1 // ITDB22 Serial mode -#define DISABLE_HX8347A 1 // ITDB32 -#define DISABLE_HX8352A 1 // ITDB32WD / TFT01_32WD / CTE32W -#define DISABLE_HX8353C 1 // DMTFT18101 - -#define DISABLE_ILI9320 1 // GEEE24 / GEEE28 - This single define will disable both 8bit and 16bit mode for this controller -#define DISABLE_ILI9325C 1 // ITDB24 -#define DISABLE_ILI9325D 1 // ITDB24D / ITDB24DWOT / ITDB28 / TFT01_24_8 / TFT01_24_16 / DMTFT24104 / DMTFT28103 - This single define will disable both 8bit and 16bit mode for this controller -#define DISABLE_ILI9325D_ALT 1 // CTE28 -#define DISABLE_ILI9327 1 // ITDB32WC / TFT01_32W -#define DISABLE_ILI9341_S4P 1 // MI0283QT9 -#define DISABLE_ILI9341_S5P 1 // TFT01_22SP / DMTFT28105 -#define DISABLE_ILI9481 1 // CTE32HR -#define DISABLE_ILI9486 1 // CTE40 - -#define DISABLE_PCF8833 1 // LPH9135 - -//#define DISABLE_R61581 1 // CTE35IPS - -#define DISABLE_S1D19122 1 // ITDB25H -#define DISABLE_S6D0164 1 // CTE22 / DMTFT22102 -#define DISABLE_S6D1121 1 // ITDB24E - This single define will disable both 8bit and 16bit mode for this controller -#define DISABLE_SSD1289 1 // ITDB32S / TFT01_32 / GEEE32 / ELEE32_REVA / ELEE32_REVB / CTE32 - This single define will disable both 8bit, 16bit and latched mode for this controller -#define DISABLE_SSD1963_480 1 // ITDB43 / TFT01_43 -#define DISABLE_SSD1963_800 1 // ITDB50 / TFT01_50 / CTE50 / EHOUSE50 -#define DISABLE_SSD1963_800_ALT 1 // TFT01_70 / CTE70 / EHOUSE70 -#define DISABLE_ST7735 1 // ITDB18SP -#define DISABLE_ST7735S 1 // TFT01_18SP -#define DISABLE_ST7735_ALT 1 \ No newline at end of file diff --git a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/tfthello.cbp b/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/tfthello.cbp deleted file mode 100644 index 161446f..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/MultiLCD/tfthello.cbp +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - diff --git a/Libraries/MultiLCD-master/MultiLCD-master/README.md b/Libraries/MultiLCD-master/MultiLCD-master/README.md deleted file mode 100644 index 7787322..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/README.md +++ /dev/null @@ -1,140 +0,0 @@ -MultiLCD Library for Arduino -============================ - -_Written by Stanley Huang, distributed under GPL._ - -MultiLCD is an Arduino library designed for displaying characters and bitmaps on different models of Arduino LCD display shields/modules with easy-to-use and unified API. It is developed with performance in the first priority. For supporting a wide range of devices and providing additional rendering APIs, the new implementation inherits a modified version of UTFT library. That means most APIs of UTFT are accessible via MultiLCD library. - -The library embeds 2 types of font for ASCII characters (5x7, 8x16) and 4 types of fonts for digits (8x8, 8x16, 16x16, 16x24). It is extremely simple for display texts and numbers on desired position on a LCD screen with the library, while very little change in code is needed to switch from one LCD module to another. For more sophisticated drawing and rendering features, UTFT APIs can be used. - -MultiLCD supports several color TFT LCD display shields/modules including: - - Freematics 3.2" TFT LCD shield (320x240@16bpp) - Freematics 2.2" TFT LCD shield (320x240@16bpp) - IteadStudio 2.8" TFT LCD shield (320x240@16bpp) - All SSD1289 based TFT LCD - All ILI9341 based TFT LCD (SPI) - All ILI9325D based TFT LCD - -MultiLCD has dumped support for monochrome LCD and OLED display since a while ago since starting to inherit UTFT library APIs. The support has been moved to MicroLCD library which shares the same APIs except for the UTFT APIs. It is also more optimized for Arduino with smaller program memory (Arduino Micro, Arduino Nano, Arduino Mini etc.). MicroLCD supports following monochrome display shields/modules: - - DFRobot LCD4884 shield (84x48) - IteadStudio 0.96" OLED module (128x64) - Freematics 1.3" OLED module (132x64) - All Nokia 3310/5100 compatible LCD module (84x48) - All SSD1306 based OLED module (128x64) - All SH1106 based OLED module (132x64) - -Usage ------ - -You need to include library header at the beginning of the sketch. - -```C++ -#include -``` - -And use one of following declarations before your code: - -Model | Code ------------------------ | ------------------------ -```LCD_SSD1289 lcd;``` | SSD1289 based TFT LCD -```LCD_ILI9325D lcd;``` | ILI9325D based TFT LCD -```LCD_ILI9341 lcd;``` | ILI9341 based TFT LCD -```LCD_PCD8544 lcd;``` | PCD8544 based LCD -```LCD_SH1106 lcd;``` | SH1106 based OLED -```LCD_SSD1306 lcd;``` | SSD1306 based OLED - -The library class inherits the Print class of Arduino, so that you can display texts on LCD with standard Arduino functions like this: - -```C++ -lcd.print("Hello, World!";) -lcd.print(foo, DEC); -lcd.print(bar, HEX); -lcd.print(1.23) // gives "1.23" -lcd.print(1.23456, 2); // gives "1.23" -``` - -Besides, it provides unified APIs for initializing and controlling the LCD, as well as some convenient operations. - -```C++ -void begin(); /* initializing */ -void clear(); /* clear screen */ -void setCursor(byte column, byte line); /* set current cursor, column is in pixel */ -void setFontSize(FONT_SIZE size); /* set font size */ -void setColor(byte r, byte g, byte b); /* set text color, not available in MicroLCD */ -void setBackColor(byte r, byte g, byte b); /* set background color, not available in MicroLCD */ -void printInt(uint16_t value, int8_t padding = -1); /* display a integer number */ -void printLong(uint32_t value, int8_t padding = -1); /* display a long number */ -void draw(const PROGMEM byte* buffer, byte width, byte height); /* draw monochrome bitmap */ -``` - -Example -------- - -```C++ -#include -#include - -LCD_SSD1306 lcd; /* for SSD1306 OLED module */ - -static const PROGMEM uint8_t smile[48 * 48 / 8] = { -0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xC0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x00, -0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE, -0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x30,0xF8,0xF8,0xF8,0xF8,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF8,0xF8,0xFC,0xF8,0x30,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F, -0x00,0x03,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE1,0xC7,0x87,0x0F,0x1F,0x3F,0x3F,0x3E,0x7E,0x7C,0x7C,0x7C,0x78,0x78,0x7C,0x7C,0x7C,0x7E,0x3E,0x3F,0x3F,0x1F,0x0F,0x87,0xC7,0xE1,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0x7F,0x3F,0x0F,0x03,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -}; - -void setup() -{ - lcd.begin(); -} - -void loop() -{ - lcd.clear(); - lcd.draw(smile, 48, 48); - delay(2000); - - lcd.clear(); - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print("Hello, world!"); - - lcd.setCursor(0, 1); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Hello, world!"); - - lcd.setCursor(0, 3); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.printLong(12345678); - - lcd.setCursor(64, 3); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printLong(12345678); - - lcd.setCursor(0, 4); - lcd.setFontSize(FONT_SIZE_LARGE); - lcd.printLong(12345678); - - lcd.setCursor(0, 6); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printLong(12345678); - - delay(3000); -} -``` - -Result: - -![Drawing bitmap on SSD1306 OLED](http://arduinodev.com/wp-content/uploads/2013/05/oled_smile-300x247.jpg) - -The following shows the real example of using MultiLCD library on a SSD1289 based 3.2" TFT LCD display. -![Freematics TFT LCD touch shield](http://freematics.com/pages/wp-content/uploads/2014/06/DSC04120.jpg) -Learn more: http://freematics.com/pages/products/obd-kit3/ - -Support -------- -Please use this forum for discussion or getting support - http://freematics.com/forum/viewforum.php?f=8 diff --git a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.c b/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.c deleted file mode 100644 index 1a3384f..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.c +++ /dev/null @@ -1,573 +0,0 @@ -#include -#include -#include "RGBMatrix.h" - -byte pageIndex = 0; // the index of buffer -char xoff ,xmask, yoff, ymask; - -#ifndef RAINBOW -/***************************** -define the operate commands -*****************************/ - -/***************************** -define the status -*****************************/ - -/***************************** -define the IO -*****************************/ -#define RST_BIT 0x04 -#define LAT_BIT 0x02 -#define SLB_BIT 0x01 -#define SCL_BIT 0x40 -#define SDA_BIT 0x80 - -#define RST PORTC -#define LAT PORTC -#define SLB PORTC -#define SDA PORTD -#define SCL PORTD - -#define open_line0 {PORTB=0x01;} -#define open_line1 {PORTB=0x02;} -#define open_line2 {PORTB=0x04;} -#define open_line3 {PORTB=0x08;} -#define open_line4 {PORTB=0x10;} -#define open_line5 {PORTB=0x20;} -#define open_line6 {PORTD=0x08;} -#define open_line7 {PORTD=0x10;} -#define close_all_line {PORTD=0x00;PORTB=0x00;} - -/******************************************* -define the data zone -*******************************************/ -byte dots[2][8][8][3]; -//dots matrix -//[2]:Page:one for display, one for receive data -//[8]:Row:8 row in LED plane -//[8]:Column:8 column in one row -//[3]:Color:RGB data: 0 for Red; 1 for green, 2 for Blue -byte gammaValues[3] = {15,63,63}; -//Gamma correctly value, every LED plane is different.value range is 0~63 -//[3]:RGB data, 0 for Red; 1 for green, 2 for Blue -byte row = 0;//the value of row in LED plane, from 0~7 -byte column = 0;//the value of every row, from 0~7 -byte color = 0;//the value of every dots, 0 is Red, 1 is Green, 2 is Blue -byte line = 0; - -/*************************************************** -all parts inition functions zone -***************************************************/ -void LED_RST(byte temp); -void LED_Delay(byte i); -void run(byte k); -void open_line(byte x); -void SetGamma(); - -void LED_Delay(byte i) -{ - unsigned int y; - y = i * 10; - while(y--); -} - -void _IO_Init() -{ - DDRD = 0xff; // set all pins direction of PortD - DDRC = 0xff; // set all pins direction of PortC - DDRB = 0xff; // set all pins direction of PortB - - PORTD = 0x00; // set all pins output is low of PortD - PORTC = 0x00; // set all pins output is low of PortC - PORTB = 0x00; // set all pins output is low of PortB -} -void _LED_Init() -{ - LED_RST(1); - LED_Delay(1); - LED_RST(0); - LED_Delay(1); - LED_RST(1); - LED_Delay(1); - - SetGamma(); - line = 0; - -} -void _TC2_Init() -{ - TCCR2A |= (1 << WGM21) | (1 << WGM20); - TCCR2B |= ((1< 0 ;i--) - { - temp = gammaValues[i-1]<<2; - for(j = 0;j<6;j++) - { - if(temp &0x80) - LED_SDA(1); - else - LED_SDA(0); - - temp =temp << 1; - LED_SCL(0); - LED_SCL(1); - } - } - LED_SLB(1); -} -void run(byte k) -{ - byte i = 0; - byte j = 0; - byte p = 0; - byte temp = 0; - LED_SLB(1); - LED_LAT(0); - for(i = 0;i<8;i++) - { - - for(j=0;j<3;j++) - { - temp = dots[pageIndex][k][i][j]; - for(p=0;p<8;p++) - { - if(temp & 0x80) - LED_SDA(1); - else - LED_SDA(0); - - temp = temp<<1; - LED_SCL(0); - LED_SCL(1); - } - } - } - LED_LAT(1); - LED_LAT(0); -} -void open_line(byte x) -{ - switch (x) - { - case 0 :open_line0; - break; - case 1 :open_line1; - break; - case 2 :open_line2; - break; - case 3 :open_line3; - break; - case 4 :open_line4; - break; - case 5 :open_line5; - break; - case 6 :open_line6; - break; - case 7 :open_line7; - break; - default: close_all_line; - break; - } -} - -void SetMirrorMode(byte mirrorX, byte mirrorY) -{ - if (mirrorX) { - xmask = 0xff; - xoff = 8; - } else { - xmask = 0; - xoff = 0; - } - if (mirrorY) { - ymask = 0xff; - yoff = 8; - } else { - ymask = 0; - yoff = 0; - } -} - -void SetPixel(byte x, byte y, byte color[]) -{ - byte page = 1 - pageIndex; - x = ((char)x ^ xmask) + xoff; - y = ((char)y ^ ymask) + yoff; - dots[page][y][x][2] = color[0]; - dots[page][y][x][1] = color[1]; - dots[page][y][x][0] = color[2]; -} - -void SetPixelCurPage(byte x, byte y, byte color[]) -{ - byte page = pageIndex; - x = ((char)x ^ xmask) + xoff; - y = ((char)y ^ ymask) + yoff; - dots[page][y][x][2] = color[0]; - dots[page][y][x][1] = color[1]; - dots[page][y][x][0] = color[2]; -} - -void ClearPixel(byte x, byte y) -{ - byte page = 1 - pageIndex; - x = ((char)x ^ xmask) + xoff; - y = ((char)y ^ ymask) + yoff; - dots[page][y][x][2] = 0; - dots[page][y][x][1] = 0; - dots[page][y][x][0] = 0; -} - -void InitLED() -{ - _IO_Init(); //Init IO - _LED_Init(); //Init LED Hardware - _TC2_Init(); //Init Timer/Count2 - BlankLED(1); -} - -/**************************************************** -the timer2 operate functions zone -****************************************************/ -ISR(TIMER2_OVF_vect) //Timer2 Service -{ - cli(); - TCNT2 = 0x64; //flash a led matrix frequency is 100.3Hz,period is 9.97ms - //TCNT2 = 0x63; //flash a led matrix frequency is 99.66Hz,period is 10.034ms - close_all_line; - run(line); - open_line(line); - line = (line + 1) & 0x7; - sei(); -} - -#else - -//============================================= -//MBI5168 -#define SH_DIR_OE DDRC -#define SH_DIR_SDI DDRC -#define SH_DIR_CLK DDRC -#define SH_DIR_LE DDRC - -#define SH_BIT_OE 0x08 -#define SH_BIT_SDI 0x01 -#define SH_BIT_CLK 0x02 -#define SH_BIT_LE 0x04 - -#define SH_PORT_OE PORTC -#define SH_PORT_SDI PORTC -#define SH_PORT_CLK PORTC -#define SH_PORT_LE PORTC -//============================================ -#define clk_rising {SH_PORT_CLK&=~SH_BIT_CLK;SH_PORT_CLK|=SH_BIT_CLK;} -#define le_high {SH_PORT_LE|=SH_BIT_LE;} -#define le_low {SH_PORT_LE&=~SH_BIT_LE;} -#define enable_oe {SH_PORT_OE&=~SH_BIT_OE;} -#define disable_oe {SH_PORT_OE|=SH_BIT_OE;} - -#define shift_data_1 {SH_PORT_SDI|=SH_BIT_SDI;} -#define shift_data_0 {SH_PORT_SDI&=~SH_BIT_SDI;} -//============================================ -#define open_line0 {PORTB=0x04;} -#define open_line1 {PORTB=0x02;} -#define open_line2 {PORTB=0x01;} -#define open_line3 {PORTD=0x80;} -#define open_line4 {PORTD=0x40;} -#define open_line5 {PORTD=0x20;} -#define open_line6 {PORTD=0x10;} -#define open_line7 {PORTD=0x08;} -#define close_all_line {PORTD&=~0xf8;PORTB&=~0x07;} -//============================================ - -#define CheckRequest (g8Flag1&0x01) -#define SetRequest (g8Flag1|=0x01) -#define ClrRequest (g8Flag1&=~0x01) - -//============================================== -#define waitingcmd 0x00 -#define processing 0x01 -#define checking 0x02 - -#define showPrefabnicatel 0x01 -#define showChar 0x02 -#define showColor 0x03 - -/* -const unsigned char GammaTab[16]= -{0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7}; -*/ -#define GAMMA 0xE7 - -//======================================================== -unsigned char dots[2][3][8][4]; - -//============================================================= -unsigned char line,level; -unsigned char State=0; - -void SetMirrorMode(byte mirrorX, byte mirrorY) -{ - if (mirrorX) { - xmask = 0xff; - xoff = 8; - } else { - xmask = 0; - xoff = 0; - } - if (mirrorY) { - ymask = 0; - yoff = 0; - } else { - ymask = 0xff; - yoff = 8; - } -} - -void SetPixel(byte x, byte y, byte color[]) -{ - x = (char)(x ^ xmask) + xoff; - y = (char)(y ^ ymask) + yoff; - byte page = 1 - pageIndex; - if ((x & 1)) { - x >>= 1; - dots[page][0][y][x] = (color[1] >> 4) | (dots[page][0][y][x] & 0xF0); - dots[page][1][y][x] = (color[0] >> 4) | (dots[page][1][y][x] & 0xF0); - dots[page][2][y][x] = (color[2] >> 4) | (dots[page][2][y][x] & 0xF0); - } else { - x >>= 1; - dots[page][0][y][x] = (color[1] & 0xF0) | (dots[page][0][y][x] & 0x0F); - dots[page][1][y][x] = (color[0] & 0xF0) | (dots[page][1][y][x] & 0x0F); - dots[page][2][y][x] = (color[2] & 0xF0) | (dots[page][2][y][x] & 0x0F); - } -} - -void SetPixelCurPage(byte x, byte y, byte color[]) -{ - x = (char)(x ^ xmask) + xoff; - y = (char)(y ^ ymask) + yoff; - byte page = pageIndex; - if ((x & 1)) { - x >>= 1; - dots[page][0][y][x] = (color[1] >> 4) | (dots[page][0][y][x] & 0xF0); - dots[page][1][y][x] = (color[0] >> 4) | (dots[page][1][y][x] & 0xF0); - dots[page][2][y][x] = (color[2] >> 4) | (dots[page][2][y][x] & 0xF0); - } else { - x >>= 1; - dots[page][0][y][x] = (color[1] & 0xF0) | (dots[page][0][y][x] & 0x0F); - dots[page][1][y][x] = (color[0] & 0xF0) | (dots[page][1][y][x] & 0x0F); - dots[page][2][y][x] = (color[2] & 0xF0) | (dots[page][2][y][x] & 0x0F); - } -} - -void ClearPixel(byte x, byte y) -{ - x = (char)(x ^ xmask) + xoff; - y = (char)(y ^ ymask) + yoff; - byte page = 1 - pageIndex; - if ((x & 1)) { - x >>= 1; - dots[page][0][y][x] &= 0xF0; - dots[page][1][y][x] &= 0xF0; - dots[page][2][y][x] &= 0xF0; - } else { - x >>= 1; - dots[page][0][y][x] &= 0x0F; - dots[page][1][y][x] &= 0x0F; - dots[page][2][y][x] &= 0x0F; - } -} - -#ifndef RAINBOW_REMOTE -void init_timer2(void) -{ - TCCR2A |= (1 << WGM21) | (1 << WGM20); - TCCR2B |= (1<>4; - - //gray scale,0x0f aways light - shift_1_bit(data0 > level ? 1 : 0); - shift_1_bit(data1 > level ? 1 : 0); - } - } - le_low; -} - - -//============================================================== -void open_line(unsigned char line) // open the scaning line -{ - switch(line) - { - case 0: open_line0; break; - case 1: open_line1; break; - case 2: open_line2; break; - case 3: open_line3; break; - case 4: open_line4; break; - case 5: open_line5; break; - case 6: open_line6; break; - case 7: open_line7; break; - } -} - -//============================================================== -void flash_next_line(unsigned char line,unsigned char level) // scan one line -{ - disable_oe; - close_all_line; - open_line(line); - shift_24_bit(line,level); - enable_oe; -} - -ISR(TIMER2_OVF_vect) //Timer2 Service -{ -#ifdef GAMMA - TCNT2 = GAMMA; -#else - TCNT2 = GammaTab[level]; // Reset a scanning time by gamma value table -#endif - - flash_next_line(line,level); // scan the next line in LED matrix level by level. - // when have scaned all LEC the back to line 0 and add the level - if(++line>7) { - line=0; - /* - level++; - if(level>15) level=0; - */ - level = (level + 1) & 0xf; - } -} - -void InitLED() -{ - DDRD=0xff; - DDRC=0xff; - DDRB=0xff; - PORTD=0; - PORTB=0; - BlankLED(1); - init_timer2(); // initial the timer for scanning the LED matrix -} -#endif - -#endif - -#ifndef RAINBOW_REMOTE -void Draw() -{ - pageIndex = 1 - pageIndex; -} -#endif - -void BlankLED(char allPages) -{ - if (allPages) { - memset(dots, 0, sizeof(dots)); - } else { - memset(&dots[1 - pageIndex], 0, sizeof(dots[0])); - } -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.h b/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.h deleted file mode 100644 index da309ae..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/RGBMatrix.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef RGBLED_h -#define RGBLED_h - -#ifndef RAINBOW -//#define RAINBOW -#endif - -void InitLED(); -void SetPixel(byte x, byte y, byte color[]); -void SetPixelCurPage(byte x, byte y, byte color[]); -void ClearPixel(byte x, byte y); -void Draw(); -void BlankLED(char allPages); -void SetMirrorMode(byte mirrorX, byte mirrorY); - -#endif diff --git a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.c b/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.c deleted file mode 100644 index f4c121b..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.c +++ /dev/null @@ -1,486 +0,0 @@ -#include -#include -#include -#include "obdhud.h" -#include "RGBLED.h" - -/************************************************** -define the extern data zone -**************************************************/ -extern byte font5_8[][5]; -//extern byte pic[4][8][8][3]; -extern CONFIG_DATA cfgdata; -extern uint16_t EEMEM eepColorData[][16]; -extern CONTEXT ctx; - -/******************************************************** -Name:DispShowChar -Function:Display a English latter in LED matrix -Parameter:chr :the latter want to show - R: the value of RED. Range:RED 0~255 - G: the value of GREEN. Range:RED 0~255 - B: the value of BLUE. Range:RED 0~255 - bias: the bias of a letter in LED Matrix.Range -7~7 -********************************************************/ -void display(char c, char bias_x, char bias_y, byte color[]) -{ - byte i; - byte to; - byte mask; - int offset = c - '0'; - if (bias_x <= 0) { - i = 0; - to = bias_x +5; - } else { - i = bias_x; - to = min(bias_x +5, 8); - } - mask = offset >= 0 ? 0xff : 0; - for (; i < to; i++) { - byte j = 0; - byte temp = pgm_read_byte(&(font5_8[offset][i - bias_x])) & mask; - if (bias_y < 0) { - temp <<= (-bias_y); - } else { - for (; j < bias_y; j++) { - ClearPixel(i, j); - } - } - for(;j < 8;j++) { - if(temp & 0x80) { - SetPixel(i, j, color); - } else { - ClearPixel(i, j); - } - temp <<= 1; - } - } -} - -/******************************************************** -Name:DispShowColor -Function:Fill a color in LED matrix -Parameter:R: the value of RED. Range:RED 0~255 - G: the value of GREEN. Range:RED 0~255 - B: the value of BLUE. Range:RED 0~255 -******************************.**************************/ -void DispShowColor(byte color[]) -{ - byte i,j; - for (i = 0;i<8;i++) { - for(j = 0;j<8;j++) { - SetPixel(i, j, color); - } - } -} - -#define COLOR12_R(c) ((uint8_t)(c >> 4) | 0xf) -#define COLOR12_G(c) ((uint8_t)c | 0xf) -#define COLOR12_B(c) (((uint8_t)c << 4) | 0xf) - -uint8_t limit8(int val) -{ - uint8_t v; - if (val < 0) - v = 0; - else if (val > 255) - v = 255; - else - v = (uint8_t)val; - return v; -} - -uint8_t* GetColor(uint8_t index, uint8_t offset, uint8_t color[]) -{ - uint16_t c = eeprom_read_word(&eepColorData[index][offset]); - color[0] = COLOR12_R(c); - color[1] = COLOR12_G(c); - color[2] = COLOR12_B(c); - return color; -} - -void GetRGB8(uint8_t index, uint8_t val, uint8_t color[]) -{ - byte offset = val >> 4; - byte n = val & 0xf; - GetColor(index, offset, color); - if (offset == 15) - return; - - byte color2[3]; - GetColor(index, offset + 1, color2); - color[0] = ((uint16_t)color[0] * (0xf - n) + (uint16_t)color2[0] * n) >> 4; - color[1] = ((uint16_t)color[1] * (0xf - n) + (uint16_t)color2[1] * n) >> 4; - color[2] = ((uint16_t)color[2] * (0xf - n) + (uint16_t)color2[2] * n) >> 4; -} - -void GetRGB(uint8_t index, uint16_t val, uint8_t color[]) -{ - uint16_t offset = val >> 12; - uint16_t n = (val >> 4) & 0xff; - - GetColor(index, offset, color); - if (offset == 15) - return; - - byte color2[3]; - GetColor(index, offset + 1, color2); - color[0] = ((uint16_t)color[0] * (0xff - n) + (uint16_t)color2[0] * n) >> 8; - color[1] = ((uint16_t)color[1] * (0xff - n) + (uint16_t)color2[1] * n) >> 8; - color[2] = ((uint16_t)color[2] * (0xff - n) + (uint16_t)color2[2] * n) >> 8; -} - -#if 0 -void GetRGB(int val, uint8_t color[]) -{ - COLOR_INDEX cur; - COLOR_INDEX last; - uint8_t i = 1; - GetDigitColor(&last, 0); - for (;;) { - GetDigitColor(&cur, i); - if (val < cur.value) { - int range = cur.value - last.value; - int value = val - last.value; - color[0] = COLOR12_R(last.color); - color[1] = COLOR12_G(last.color); - color[2] = COLOR12_B(last.color); - color[0] = ((int)COLOR12_R(cur.color) - color[0]) * value / range + color[0]; - color[1] = ((int)COLOR12_G(cur.color) - color[1]) * value / range + color[1]; - color[2] = ((int)COLOR12_B(cur.color) - color[2]) * value / range + color[2]; - return; - } - if (++i == MAX_COLOR_ENTRIES) { - color[0] = COLOR12_R(cur.color); - color[1] = COLOR12_G(cur.color); - color[2] = COLOR12_B(cur.color); - return; - } - last.color = cur.color; - last.value = cur.value; - } -} -#endif - -void SetFadePixel(uint8_t x, uint8_t y, uint8_t color[], uint8_t shift) -{ - byte fadecolor[] = {color[0] >> shift, color[1] >> shift, color[2] >> shift}; - SetPixel(x, y, fadecolor); -} - -void SetCrossFadePixel(uint8_t x, uint8_t y, uint8_t color[], uint8_t color2[], uint8_t shift) -{ - byte fadecolor[] = { - (color[0] >> shift) + (color2[0] >> (8 - shift)), - (color[1] >> shift) + (color2[1] >> (8 - shift)), - (color[2] >> shift) + (color2[2] >> (8 - shift)) - }; - SetPixel(x, y, fadecolor); -} - -void displayVBar(uint8_t val, uint8_t x) -{ - uint8_t y; - if (val == 0) { - for (y = 0; y < 8; y++) { - ClearPixel(x, y); - } - } else { - uint8_t m = 8 - ((val & 0xf) >> 1); /* 8~1 */ - uint8_t n = (val & 0x7f) >> 4; - uint8_t offset = (val & 0x80) >> 4; - byte color[3]; - for (y = 0; y < n; y++) { - GetColor(cfgdata.barColorIndex, y + offset, color); - SetPixel(x, y, color); - } - if (offset) { - byte colorbg[3]; - GetColor(cfgdata.barColorIndex, y + offset, color); - GetColor(cfgdata.barColorIndex, y, colorbg); - SetCrossFadePixel(x, y, color, colorbg, m); - while (++y < 8) { - SetPixel(x, y, colorbg); - } - } else { - GetColor(cfgdata.barColorIndex, y + offset, color); - SetFadePixel(x, y, color, m); - while (++y < 8) { - ClearPixel(x, y); - } - } - } -} - -void displayHBar(uint8_t val, uint8_t y, uint8_t style) -{ - uint8_t xmask = 0; - int8_t xoff = 0; - int8_t x; - uint8_t m, n, offset; - byte color[3]; - byte colorbg[3]; - - if (val == 0) { - for (x = 0; x < 8; x++) { - ClearPixel(x, y); - } - return; - } - - switch (style) { - case BAR_CENTER: - m = 8 - ((val & 0x1f) >> 2); /* 8~1 */ - n = (val & 0x7f) >> 5; - offset = (val & 0x80) >> 4; - for (x = 0; x < n; x++) { - SetPixel(3 - x, y, GetColor(cfgdata.barColorIndex, offset + 3 - x, color)); - SetPixel(4 + x, y, GetColor(cfgdata.barColorIndex, offset + 4 + x, color)); - } - if (offset) { - SetCrossFadePixel(3 - x, y, GetColor(cfgdata.barColorIndex, offset + 3 - x, color), GetColor(cfgdata.barColorIndex, 3 - x, colorbg), m); - SetCrossFadePixel(4 + x, y, GetColor(cfgdata.barColorIndex, offset + 4 + x, color), GetColor(cfgdata.barColorIndex, 4 + x, colorbg), m); - while (++x < 4) { - SetPixel(3 - x, y, GetColor(cfgdata.barColorIndex, 3 - x, color)); - SetPixel(4 + x, y, GetColor(cfgdata.barColorIndex, 4 + x, color)); - } - } else { - SetFadePixel(3 - x, y, GetColor(cfgdata.barColorIndex, offset + 3 - x, color), m); - SetFadePixel(4 + x, y, GetColor(cfgdata.barColorIndex, offset + 4 + x, color), m); - while (++x < 4) { - ClearPixel(3 - x, y); - ClearPixel(4 + x, y); - } - } - break; - case BAR_RIGHT: - // mirror - xmask = 0xff; - xoff = 8; - case BAR_LEFT: - m = 8 - ((val & 0xf) >> 1); /* 8~1 */ - n = (val & 0x7f) >> 4; - offset = (val & 0x80) >> 4; - for (x = 0; x < n; x++) { - SetPixel((x ^ xmask) + xoff, y, GetColor(cfgdata.barColorIndex, x + offset, color)); - } - if (offset) { - SetCrossFadePixel((x ^ xmask) + xoff, y, - GetColor(cfgdata.barColorIndex, x + offset, color), GetColor(cfgdata.barColorIndex, x, colorbg), m); - while (++x < 8) { - SetPixel((x ^ xmask) + xoff, y, GetColor(cfgdata.barColorIndex, x, color)); - } - } else { - SetFadePixel((x ^ xmask) + xoff, y, GetColor(cfgdata.barColorIndex, x + offset, color), m); - while (++x < 8) { - ClearPixel((x ^ xmask) + xoff, y); - } - } - break; - case BAR_ZERO_CENTER: - if (val >= 128) { - val -= 128; - m = 8 - ((val & 0x1f) >> 2); /* 8~1 */ - n = val >> 5; - for (x = 0; x < n; x++) { - SetPixel(4 + x, y, GetColor(cfgdata.barColorIndex, 4 + x, color)); - } - SetFadePixel(4 + x, y, GetColor(cfgdata.barColorIndex, 4 + x, color), m); - while (++x < 4) ClearPixel(4 + x, y); - } else { - val = 128 - val; - m = 8 - ((val & 0x1f) >> 2); /* 8~1 */ - n = val >> 5; - for (x = 0; x < n; x++) { - SetPixel(3 - x, y, GetColor(cfgdata.barColorIndex, 3 - x, color)); - } - SetFadePixel(3 - x, y, GetColor(cfgdata.barColorIndex, 3 - x, color), m); - while (++x < 4) ClearPixel(3 - x, y); - } - break; - } -} - -#if 0 -void display20(uint8_t val, int8_t bais_y, uint8_t color[]) -{ - char c; - if (val >= 10) { - if (val > 19) - c = '?'; - else - c = '0' + (val - 10); - val = 1; - } else { - c = '0' + val; - val = 0; - } - - display(val ? '1' : 0, -1, bais_y, color); - display(c, 3, bais_y, color); -} -#endif - -void DrawLineH(byte x, byte y, byte len, byte color[]) -{ - byte i; - for (i = 0; i < len; i++) { - SetPixel(x + i, y, color); - } -} - -void DrawLineV(byte x, byte y, byte len, byte color[]) -{ - byte i; - for (i = 0; i < len; i++) { - SetPixel(x, y + i, color); - } -} - -void displayDigit3x5(byte val, char bias_x, char bias_y, byte color[]) -{ - switch (val) { - case 0: - SetPixel(bias_x + 1, bias_y, color); - SetPixel(bias_x + 1, bias_y + 4, color); - DrawLineV(bias_x, bias_y, 5, color); - DrawLineV(bias_x + 2, bias_y, 5, color); - break; - case 1: - DrawLineV(bias_x + 1, bias_y, 5, color); - break; - case 2: - DrawLineH(bias_x, bias_y, 3, color); - DrawLineH(bias_x, bias_y + 2, 3, color); - DrawLineH(bias_x, bias_y + 4, 3, color); - SetPixel(bias_x, bias_y + 1, color); - SetPixel(bias_x + 2, bias_y + 3, color); - break; - case 3: - DrawLineV(bias_x + 2, bias_y, 5, color); - DrawLineH(bias_x, bias_y, 2, color); - DrawLineH(bias_x, bias_y + 2, 2, color); - DrawLineH(bias_x, bias_y + 4, 2, color); - break; - case 4: - DrawLineV(bias_x, bias_y + 2, 3, color); - DrawLineV(bias_x + 2, bias_y, 5, color); - SetPixel(bias_x + 1, bias_y + 2, color); - break; - case 5: - DrawLineH(bias_x, bias_y, 3, color); - DrawLineH(bias_x, bias_y + 2, 3, color); - DrawLineH(bias_x, bias_y + 4, 3, color); - SetPixel(bias_x + 2, bias_y + 1, color); - SetPixel(bias_x, bias_y + 3, color); - break; - case 6: - DrawLineV(bias_x, bias_y, 5, color); - DrawLineV(bias_x + 2, bias_y, 3, color); - SetPixel(bias_x + 1, bias_y, color); - SetPixel(bias_x + 1, bias_y + 2, color); - DrawLineH(bias_x + 1, bias_y + 4, 2, color); - break; - case 7: - DrawLineV(bias_x + 2, bias_y, 5, color); - DrawLineH(bias_x, bias_y + 4, 2, color); - break; - case 8: - DrawLineV(bias_x, bias_y, 5, color); - DrawLineV(bias_x + 2, bias_y, 5, color); - SetPixel(bias_x + 1, bias_y, color); - SetPixel(bias_x + 1, bias_y + 2, color); - SetPixel(bias_x + 1, bias_y + 4, color); - break; - case 9: - DrawLineV(bias_x + 2, bias_y, 5, color); - DrawLineV(bias_x, bias_y + 2, 3, color); - SetPixel(bias_x + 1, bias_y + 4, color); - SetPixel(bias_x + 1, bias_y + 2, color); - DrawLineH(bias_x, bias_y, 2, color); - break; - } -} - -void displayDigit3x7(byte val, char bias_x, char bias_y, byte color[]) -{ - switch (val) { - case 0: - SetPixel(bias_x + 1, bias_y, color); - SetPixel(bias_x + 1, bias_y + 6, color); - DrawLineV(bias_x, bias_y, 7, color); - DrawLineV(bias_x + 2, bias_y, 7, color); - break; - case 1: - DrawLineV(bias_x + 1, bias_y, 7, color); - break; - case 2: - DrawLineH(bias_x, bias_y, 3, color); - DrawLineH(bias_x, bias_y + 3, 3, color); - DrawLineH(bias_x, bias_y + 6, 3, color); - DrawLineV(bias_x, bias_y + 1, 2, color); - DrawLineV(bias_x + 2, bias_y + 4, 2, color); - break; - case 3: - DrawLineV(bias_x + 2, bias_y, 7, color); - DrawLineH(bias_x, bias_y, 2, color); - DrawLineH(bias_x, bias_y + 3, 2, color); - DrawLineH(bias_x, bias_y + 6, 2, color); - break; - case 4: - DrawLineV(bias_x, bias_y + 3, 4, color); - DrawLineV(bias_x + 2, bias_y, 7, color); - SetPixel(bias_x + 1, bias_y + 3, color); - break; - case 5: - DrawLineH(bias_x, bias_y, 3, color); - DrawLineH(bias_x, bias_y + 3, 3, color); - DrawLineH(bias_x, bias_y + 6, 3, color); - DrawLineV(bias_x + 2, bias_y + 1, 2, color); - DrawLineV(bias_x, bias_y + 4, 2, color); - break; - case 6: - DrawLineV(bias_x, bias_y, 7, color); - DrawLineV(bias_x + 2, bias_y, 4, color); - SetPixel(bias_x + 1, bias_y, color); - SetPixel(bias_x + 1, bias_y + 3, color); - DrawLineH(bias_x + 1, bias_y + 6, 2, color); - break; - case 7: - DrawLineV(bias_x + 2, bias_y, 7, color); - DrawLineH(bias_x, bias_y + 6, 2, color); - SetPixel(bias_x, bias_y + 5, color); - break; - case 8: - DrawLineV(bias_x, bias_y, 7, color); - DrawLineV(bias_x + 2, bias_y, 7, color); - SetPixel(bias_x + 1, bias_y, color); - SetPixel(bias_x + 1, bias_y + 3, color); - SetPixel(bias_x + 1, bias_y + 6, color); - break; - case 9: - DrawLineV(bias_x + 2, bias_y, 7, color); - DrawLineV(bias_x, bias_y + 3, 4, color); - SetPixel(bias_x + 1, bias_y + 6, color); - SetPixel(bias_x + 1, bias_y + 3, color); - DrawLineH(bias_x, bias_y, 2, color); - break; - } -} - -void FillUp(byte value, byte color[], char mirrored) -{ - byte n = value % 8; - byte m = value >> 3; - byte x; - byte y = 0; - - for (y = 0; y < m; y++) { - for (x = 0; x < 8; x++) { - SetPixel(x, y, color); - } - } - for (x = 0; x < n; x++) { - SetPixel(mirrored ? 7 - x : x, y, color); - } -} diff --git a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.h b/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.h deleted file mode 100644 index 55f1f46..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/draw.h +++ /dev/null @@ -1,14 +0,0 @@ -void DispShowChar(char chr, byte rgb[3],char bias); -void DispShowColor(byte color[]); -void DispShowPic(byte Index); -void display(char c, char bias_x, char bias_y, byte color[]); -void displayDigit3x5(byte val, char bias_x, char bias_y, byte color[]); -void displayDigit3x7(byte val, char bias_x, char bias_y, byte color[]); -void displayVBar(uint8_t val, uint8_t x); -void displayHBar(uint8_t val, uint8_t y, uint8_t style); -void FillUp(byte value, byte color[], char mirrored); -void SetFadePixel(uint8_t x, uint8_t y, uint8_t color[], uint8_t shift); -void GetRGB8(uint8_t index, uint8_t val, uint8_t color[]); -void GetRGB(uint8_t index, uint16_t val, uint8_t color[]); -uint8_t* GetColor(uint8_t index, uint8_t offset, uint8_t color[]); -uint8_t limit8(int val); diff --git a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/font.c b/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/font.c deleted file mode 100644 index 495ba3a..0000000 --- a/Libraries/MultiLCD-master/MultiLCD-master/RGBMatrix/font.c +++ /dev/null @@ -1,48 +0,0 @@ -#include -//Font -unsigned char font5_8[][5] PROGMEM = -{ - { 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 - { 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 - { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 - { 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 - { 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 - { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 - { 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 - { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 - { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 - { 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 - { 0x00, 0x36, 0x36, 0x00, 0x00 }, // : - { 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; - { 0x08, 0x14, 0x22, 0x41, 0x00 }, // < - { 0x14, 0x14, 0x14, 0x14, 0x14 }, // = - { 0x00, 0x41, 0x22, 0x14, 0x08 }, // > - { 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? - { 0x32, 0x49, 0x59, 0x51, 0x3E }, // @ - { 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A - { 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B - { 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C - { 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D - { 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E - { 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F - { 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G - { 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H - { 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I - { 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J - { 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K - { 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L - { 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M - { 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N - { 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O - { 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P - { 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q - { 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R - { 0x46, 0x49, 0x49, 0x49, 0x31 }, // S - { 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T - { 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U - { 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V - { 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W - { 0x63, 0x14, 0x08, 0x14, 0x63 }, // X - { 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y - { 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z -}; diff --git a/OBD_Gauge.ino b/OBD_Gauge.ino new file mode 100644 index 0000000..27a10ca --- /dev/null +++ b/OBD_Gauge.ino @@ -0,0 +1,222 @@ +/************************************************************************* +* OBD Data Display +* Works with any Arduino board connected with SH1106 128*64 I2C OLED and +* Freematics OBD-II UART Adapter - https://freematics.com/products +* Author: Morgan Chumbley +*************************************************************************/ + +// LIBRARIES +#include +#include +#include +#include "bitmaps.h" + +// CONSTS +#define PID_AIR_FUEL_RATIO 0x34 +#define BTN_LOW_VALUE 200 +#define BTN_HIGH_VALUE 270 +#define BUFFER_SIZE 130 +#define N_PIDS 5 +//#define TEST 1 +//#define DEBUG 1 + +// GLOBALS +int buttonV ; // Create button +LCD_SH1106 lcd ; // Create display +COBD obd ; // Create obd member + +// FORWARD DECLARATIONS +static void reconnect( void ); +static void showData ( byte pid, int value ); +static void drawIcon ( byte pid ); + +void setup() +{ + // initialize button + pinMode(A0, INPUT_PULLUP); + + // Start screen + lcd.begin(); +#ifdef DEBUG + Serial.begin(9600); + Serial.println("OBD Gauge"); +#endif + // Draw intro screen + lcd.draw(wywh, 128, 64); + delay(5000); + + // Clear and set font size + lcd.clear(); + lcd.setFontSize(FONT_SIZE_MEDIUM); + + // Initialize OBD communitcation + delay(500); + obd.begin(); + + // Print a connecting screen while waiting for connection + lcd.println("\nConnecting..."); +#ifndef TEST + while (!obd.init()); +#endif + lcd.clear(); +} // end setup() + + +void loop( void ) +{ + static byte pids[N_PIDS]= {PID_AIR_FUEL_RATIO, PID_BATTERY_VOLTAGE, PID_ENGINE_OIL_TEMP, PID_COOLANT_TEMP, PID_INTAKE_TEMP}; + static byte index = 0; + byte pid = pids[index]; + int value; + char data[BUFFER_SIZE]; + + // Get the reading of our mode button + buttonV = analogRead(A0); + + // While mode button is not pressed (my button is ~227) + while ( (analogRead(A0) <= BTN_LOW_VALUE) || (analogRead(A0) >= BTN_HIGH_VALUE) ) + { + buttonV = analogRead(A0); + drawIcon(pid); + + // Send a query to OBD adapter for specified OBD-II pid + if ( PID_ENGINE_OIL_TEMP == pid ) + { + if ( obd.sendCommand("2101\r", data, BUFFER_SIZE) ) + { + value = ((float)strtol(&data[BUFFER_SIZE-1], 0, 16)); + showData(pid, value); + } + } + else if ( obd.readPID(pid, value) ) + { + showData(pid, value); + } +#ifndef TEST + // Error checking + if ( obd.errors >= 2 ) + { + reconnect(); + setup(); + } +#endif + } + + // When mode button is pressed + while ( (analogRead(A0) >= BTN_LOW_VALUE) && (analogRead(A0) <= BTN_HIGH_VALUE) ); + + // Increment mode + lcd.clear(); + index = (index + 1) % N_PIDS; +#ifdef DEBUG + Serial.print("Current mode: "); + Serial.println(index); +#endif +} // end loop() + + +static void reconnect( void ) +{ + lcd.clear(); + lcd.setFontSize(FONT_SIZE_MEDIUM); + lcd.print("Reconnecting"); + //digitalWrite(SD_CS_PIN, LOW); + for ( uint16_t i = 0; !obd.init(); i++ ) + { + if ( 5 == i ) + lcd.clear(); + delay(3000); + } +} // end reconnect() + + +static void showData( byte pid, int value ) +{ + switch ( pid ) + { + case PID_AIR_FUEL_RATIO: + lcd.setCursor(55, 3); + lcd.setFontSize(10); + lcd.print((float)value*256/32768*14.7, 2); + break; + case PID_BATTERY_VOLTAGE: + lcd.setCursor(55, 3); + lcd.setFontSize(FONT_SIZE_XLARGE); + lcd.print((float)value/10, 2); + break; + case PID_ENGINE_OIL_TEMP: + lcd.setCursor(55, 3); + lcd.setFontSize(FONT_SIZE_XLARGE); + lcd.print((value-40)*1.8+32, 2); + break; + case PID_COOLANT_TEMP: + lcd.setCursor(55, 3); + lcd.setFontSize(FONT_SIZE_XLARGE); + lcd.printInt(value*1.8+32, 3); + break; + case PID_INTAKE_TEMP: + lcd.setCursor(55, 3); + lcd.setFontSize(FONT_SIZE_XLARGE); + lcd.printInt(value*1.8+32, 3); + break; + // +++TODO: Add a screen to display all four values below at once + // +++left here as placeholder + // lcd.setFontSize(FONT_SIZE_SMALL); + // lcd.setCursor(24, 3); + // lcd.print("km/h"); + // lcd.setCursor(110, 3); + // lcd.print("rpm"); + // lcd.setCursor(0, 7); + // lcd.print("ENGINE LOAD"); + // lcd.setCursor(80, 7); + // lcd.print("THROTTLE"); + case PID_RPM: + lcd.setCursor(64, 0); + lcd.setFontSize(FONT_SIZE_XLARGE); + lcd.printInt((unsigned int)value % 10000, 4); + break; + case PID_SPEED: + lcd.setCursor(0, 0); + lcd.setFontSize(FONT_SIZE_XLARGE); + lcd.printInt((unsigned int)value % 1000, 3); + break; + case PID_THROTTLE: + lcd.setCursor(88, 5); + lcd.setFontSize(FONT_SIZE_MEDIUM); + lcd.printInt((int)value % 100, 3); + lcd.setFontSize(FONT_SIZE_SMALL); + lcd.print(" %"); + break; + case PID_ENGINE_LOAD: + lcd.setCursor(12, 5); + lcd.setFontSize(FONT_SIZE_MEDIUM); + lcd.printInt((int)value, 3); + lcd.setFontSize(FONT_SIZE_SMALL); + lcd.print(" %"); + break; + } +} // end showData() + + +static void drawIcon( byte pid ) +{ + lcd.setCursor(2, 2); + switch ( pid ) + { + case PID_AIR_FUEL_RATIO: + lcd.draw(o2_bits, 32, 32); + break; + case PID_BATTERY_VOLTAGE: + lcd.draw(batt_bits, 32, 32); + break; + case PID_ENGINE_OIL_TEMP: + lcd.draw(oil_bits, 32, 32); + break; + case PID_COOLANT_TEMP: + lcd.draw(coolant_bits, 32, 32); + break; + case PID_INTAKE_TEMP: + lcd.draw(intake_bits, 32, 32); + break; + } +} // end drawIcon() diff --git a/OLED128x64_ada/OLED128x64_ada.ino b/OLED128x64_ada/OLED128x64_ada.ino deleted file mode 100644 index cf2a570..0000000 --- a/OLED128x64_ada/OLED128x64_ada.ino +++ /dev/null @@ -1,240 +0,0 @@ -#include "bitmaps.h" -#include -#include -#include -#include - -#define OLED_RESET 4 -#define buttonPin 8 - -typedef enum {AFR, OilTemp, Battery, CoolantTemp, IntakeTemp} modes; - -Adafruit_SH1106 display(OLED_RESET); // Create display - -COBD obd; // Create obd member - -double previousReading[] = {0,0,0,0,0}; -double curValue[] = {0,215,0,150,100}; -static byte pids[] = {PID_ENGINE_OIL_TEMP, PID_AIR_FUEL_EQUIV_RATIO, PID_HYBRID_BATTERY_PERCENTAGE, - PID_COOLANT_TEMP, PID_INTAKE_TEMP}; -modes mode = AFR; -int modeNum = 0; -bool buttonPressed = false; - -// Function declarations -void getVal(); -void updateVal(); -void drawIcon(); -void updateMode(); - -void setup() -{ - delay(100); - display.begin(SH1106_SWITCHCAPVCC, 0x3C); - display.clearDisplay(); - display.setTextSize(3); - display.setTextColor(WHITE); - display.display(); - - // start communication with OBD-II adapter - obd.begin(); - - // init button mode - pinMode(buttonPin, INPUT_PULLUP);\ - - // Draw the first mode - drawIcon(); - //getVal(); - //updateVal(); -} - -void loop() -{ -// display.setCursor(20 , 22); -// display.print(" 14.7"); -// display.display(); - - //display the value here - //only print if it changes to avoid flickering - //getVal(); - if (abs(curValue[mode] - previousReading[mode]) > 0 ) - { - updateVal(); - } - - // State Machine for debounced button press - while (digitalRead(buttonPin) == HIGH){ - buttonPressed = true; - } - if(buttonPressed){ - // When a button is pressed, change the mode once - updateMode(); - buttonPressed = false; - } - - // draws the current mode icon - drawIcon(); - - //getVal(); - updateVal(); //if you don't update here and the value hasn't changed you get blank value -} - -///////////////////////////////////////////////////////////////////////////////////////// -// -// Helper Functions -// -///////////////////////////////////////////////////////////////////////////////////////// - -void updateMode(){ - if(modeNum == 4) - modeNum = 0; - else - modeNum++; - - switch(mode){ - case AFR: - mode = OilTemp; - break; - case OilTemp: - mode = Battery; - break; - case Battery: - mode = CoolantTemp; - break; - case CoolantTemp: - mode = IntakeTemp; - break; - case IntakeTemp: - mode = AFR; - break; - } -} - -// Gets the value by reading the PID corresponding to the current mode -void getVal(){ - switch(mode){ - case AFR: - obd.readPID(PID_AIR_FUEL_EQUIV_RATIO, curValue[mode]); - break; - case OilTemp: - obd.readPID(PID_ENGINE_OIL_TEMP, curValue[mode]); - break; - case Battery: - obd.readPID(PID_HYBRID_BATTERY_PERCENTAGE, curValue[mode]); - break; - case CoolantTemp: - obd.readPID(PID_COOLANT_TEMP, curValue[mode]); - break; - case IntakeTemp: - obd.readPID(PID_INTAKE_TEMP, curValue[mode]); - break; - } -} - - // -void updateVal(){ - //draw old value - display.setTextColor(BLACK); - display.setCursor(40, 22); - display.print(previousReading[modeNum]); - display.display(); - //draw new value - display.setTextColor(WHITE); - display.setCursor(40, 22); - if ( (modeNum == 0) || (modeNum == 2) ){ //AFR should show the decimal (others could be added to this list) - display.print((double)curValue[modeNum]); - } - else { //everything else should print an int value - display.print(curValue[modeNum]); - } - display.display(); - previousReading[modeNum] = curValue[modeNum]; - return; -} - -void drawIcon(){ - - display.clearDisplay(); - - switch(mode){ - case AFR: - display.drawBitmap(2, 16, o2_bits, 32, 32, 1); - display.display(); - break; - case OilTemp: - display.drawBitmap(2, 16, oil_bits, 32, 32, 1); - display.display(); - break; - case Battery: - display.drawBitmap(2, 16, batt_bits, 32, 32, 1); - display.display(); - break; - case CoolantTemp: - display.drawBitmap(2, 16, coolant_bits, 32, 32, 1); - display.display(); - break; - case IntakeTemp: - display.drawBitmap(2, 16, intake_bits, 32, 32, 1); - display.display(); - break; - } -} - -void reconnect() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; !obd.init(); i++) { - if (i == 5) { - lcd.clear(); - } - delay(3000); - } -} - -void showData(byte pid, double value) -{ - switch (pid) { - case PID_RPM: - lcd.setCursor(64, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - break; - case PID_SPEED: - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - break; - case PID_THROTTLE: - lcd.setCursor(88, 5); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printInt((int)value % 100, 3); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(" %"); - break; - case PID_ENGINE_LOAD: - lcd.setCursor(12, 5); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printInt((int)value, 3); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(" %"); - break; - } -} - -void initScreen() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 3); - lcd.print("km/h"); - lcd.setCursor(110, 3); - lcd.print("rpm"); - lcd.setCursor(0, 7); - lcd.print("ENGINE LOAD"); - lcd.setCursor(80, 7); - lcd.print("THROTTLE"); -} - diff --git a/OLED128x64_ada/bitmaps.h b/OLED128x64_ada/bitmaps.h deleted file mode 100644 index 3fcf1c3..0000000 --- a/OLED128x64_ada/bitmaps.h +++ /dev/null @@ -1,152 +0,0 @@ -#include - -static const unsigned char o2_bits [] PROGMEM = { - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000001, 0b11111000, 0b00000000, 0b00000000, // ###### - 0b00000011, 0b11111110, 0b00000000, 0b00000000, // ######### - 0b00000111, 0b00000111, 0b00000000, 0b00000000, // ### ### - 0b00001100, 0b00000011, 0b00000000, 0b00000000, // ## ## - 0b00001100, 0b00000011, 0b00000000, 0b00000000, // ## ## - 0b00011000, 0b00000001, 0b10000000, 0b00000000, // ## ## - 0b00011000, 0b00000001, 0b11111000, 0b00000000, // ## ###### - 0b00011000, 0b00000001, 0b11111100, 0b00000000, // ## ####### - 0b00011000, 0b00000001, 0b10001110, 0b00000000, // ## ## ### - 0b00011000, 0b00000001, 0b10000110, 0b00000000, // ## ## ## - 0b00001100, 0b00000011, 0b00000110, 0b00000000, // ## ## ## - 0b00001100, 0b00000011, 0b00000110, 0b00000000, // ## ## ## - 0b00001110, 0b00001110, 0b00000100, 0b00000000, // ### ### # - 0b00000111, 0b11111100, 0b00001100, 0b00000000, // ######### ## - 0b00000001, 0b11111000, 0b00011000, 0b00000000, // ###### ## - 0b00000000, 0b00000000, 0b00110000, 0b00000000, // ## - 0b00000000, 0b00000000, 0b01100000, 0b00000000, // ## - 0b00000000, 0b00000000, 0b11000000, 0b00000000, // ## - 0b00000000, 0b00000001, 0b10000000, 0b00000000, // ## - 0b00000000, 0b00000011, 0b11111111, 0b00000000, // ########## - 0b00000000, 0b00000011, 0b11111111, 0b00000000, // ########## - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // -}; - -static const unsigned char batt_bits [] PROGMEM = { - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000001, 0b11110000, 0b00011111, 0b00000000, // ##### ##### - 0b00000010, 0b00001000, 0b00100000, 0b10000000, // # # # # - 0b00000010, 0b00001000, 0b00100000, 0b10000000, // # # # # - 0b00000010, 0b00001000, 0b00100000, 0b10000000, // # # # # - 0b00000010, 0b00001000, 0b00100000, 0b10000000, // # # # # - 0b00000010, 0b00001000, 0b00100000, 0b10000000, // # # # # - 0b00011111, 0b11111111, 0b11111111, 0b11110000, // ######################### - 0b00011110, 0b00000000, 0b00000000, 0b11110000, // #### #### - 0b00011110, 0b00000000, 0b00000000, 0b11110000, // #### #### - 0b00011110, 0b00000000, 0b00000000, 0b11110000, // #### #### - 0b00010000, 0b01000000, 0b00000000, 0b00010000, // # # # - 0b00010000, 0b01000000, 0b00000000, 0b00010000, // # # # - 0b00010000, 0b01000000, 0b00000000, 0b00010000, // # # # - 0b00010011, 0b11111000, 0b00111111, 0b10010000, // # ####### ####### # - 0b00010000, 0b01000000, 0b00000000, 0b00010000, // # # # - 0b00010000, 0b01000000, 0b00000000, 0b00010000, // # # # - 0b00010000, 0b01000000, 0b00000000, 0b00010000, // # # # - 0b00010000, 0b00000000, 0b00000000, 0b00010000, // # # - 0b00011110, 0b00000000, 0b00000000, 0b11110000, // #### #### - 0b00011110, 0b00000000, 0b00000000, 0b11110000, // #### #### - 0b00011110, 0b00000000, 0b00000000, 0b11110000, // #### #### - 0b00011111, 0b11111111, 0b11111111, 0b11110000, // ######################### - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // -}; - -static const unsigned char oil_bits [] PROGMEM = { -0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b01000000, 0b00001110, 0b00000000, 0b00000000, // # ### - 0b01100000, 0b00011111, 0b00000000, 0b11100000, // ## ##### ### - 0b01111000, 0b00001110, 0b00000011, 0b10000000, // #### ### ### - 0b01111100, 0b00000100, 0b00001101, 0b00000000, // ##### # ## # - 0b01111111, 0b11111111, 0b11111110, 0b01000000, // ###################### # - 0b00010111, 0b11111111, 0b11111110, 0b00010000, // # ################## # - 0b00001111, 0b11111111, 0b11111100, 0b00010000, // ################## # - 0b00001111, 0b11111111, 0b11111100, 0b00011000, // ################## ## - 0b00000111, 0b11111111, 0b11111000, 0b00111100, // ################ #### - 0b00000111, 0b11111111, 0b11110000, 0b00111100, // ############### #### - 0b00000111, 0b11111111, 0b11110000, 0b00111100, // ############### #### - 0b00000111, 0b11111111, 0b11100000, 0b00011000, // ############## ## - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b11011111, 0b11100000, 0b00000000, // ## ######## - 0b00000000, 0b11011111, 0b11100000, 0b00000000, // ## ######## - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011111, 0b11000000, 0b00000000, // ####### - 0b00000000, 0b00011111, 0b11000000, 0b00000000, // ####### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### - 0b00000000, 0b00011100, 0b00000000, 0b00000000, // ### -}; - -static const unsigned char coolant_bits [] PROGMEM = { - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00111111, 0b10000000, 0b00000000, 0b00000000, // ####### - 0b00111000, 0b00000011, 0b10000000, 0b00000000, // ### ### - 0b00111000, 0b00000011, 0b10000000, 0b00000000, // ### ### - 0b00111000, 0b00000011, 0b11111110, 0b00000000, // ### ######### - 0b00111111, 0b00000011, 0b11111110, 0b00000000, // ###### ######### - 0b00111000, 0b00000011, 0b11111110, 0b00000000, // ### ######### - 0b00111000, 0b00000011, 0b10000000, 0b00000000, // ### ### - 0b00111000, 0b00000011, 0b10000000, 0b00000000, // ### ### - 0b00111000, 0b00000011, 0b11111110, 0b00000000, // ### ######### - 0b00000000, 0b00000011, 0b11111110, 0b00000000, // ######### - 0b00000000, 0b00000011, 0b11111110, 0b00000000, // ######### - 0b00000000, 0b00000011, 0b10000000, 0b00000000, // ### - 0b00000000, 0b00000011, 0b10000000, 0b00000000, // ### - 0b00000000, 0b00000011, 0b10000000, 0b00000000, // ### - 0b00000000, 0b00000011, 0b10000111, 0b11110000, // ### ####### - 0b00000111, 0b11110011, 0b10011100, 0b00011100, // ####### ### ### ### - 0b00011100, 0b00011111, 0b11110000, 0b00000110, // ### ######### ## - 0b01110000, 0b00000111, 0b11100000, 0b00000011, // ### ###### ## - 0b11000000, 0b00000011, 0b10000000, 0b00000001, // ## ### # - 0b10000000, 0b00000111, 0b11000000, 0b00000000, // # ##### - 0b00000000, 0b00000111, 0b11000000, 0b00000000, // ##### - 0b00000000, 0b00000111, 0b11000000, 0b00000000, // ##### - 0b00000000, 0b00000111, 0b11000000, 0b00000000, // ##### - 0b00000111, 0b11110011, 0b10000111, 0b11110000, // ####### ### ####### - 0b00011100, 0b00011100, 0b00011100, 0b00011100, // ### ### ### ### - 0b01110000, 0b00000110, 0b01110000, 0b00000110, // ### ## ### ## - 0b11000000, 0b00000011, 0b11000000, 0b00000011, // ## #### ## - 0b10000000, 0b00000001, 0b10000000, 0b00000001, // # ## # - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // - 0b00000000, 0b00000000, 0b00000000, 0b00000000, // -}; - -static const unsigned char intake_bits [] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x6f, 0x80, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x10, 0x00, - 0x0f, 0x00, 0x38, 0x00, 0x0c, 0x00, 0x38, 0x00, 0x0c, 0x00, 0x3f, 0xe0, 0x0c, 0x00, 0x3f, 0xe0, - 0x0c, 0xe0, 0x3f, 0xe0, 0x01, 0x10, 0x38, 0x00, 0x00, 0x10, 0x38, 0x00, 0x00, 0x10, 0x3f, 0xe0, - 0x7f, 0xf3, 0x3f, 0xe0, 0x7f, 0xe4, 0xbf, 0xe0, 0x00, 0x00, 0xb8, 0x00, 0x1f, 0xff, 0xb8, 0x00, - 0x1f, 0xff, 0x3f, 0xe0, 0x00, 0x00, 0x3f, 0xe0, 0x7f, 0xfe, 0x3f, 0xe0, 0x7f, 0xff, 0x38, 0x00, - 0x00, 0x01, 0x38, 0x00, 0x00, 0x09, 0x7c, 0x00, 0x00, 0x06, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0x00, - 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; diff --git a/README.md b/README.md index e4cd184..5191e1d 100644 --- a/README.md +++ b/README.md @@ -1 +1,28 @@ # OBD_Gauge +A simple Arduino-powered automotive gauge to display readings from various car sensors. +The readings that are currently implemented are: +- Air/Fuel Ratio (AFR) +- Battery Voltage +- Oil Temperature (in F) +- Coolant Temperature (in F) +- Air Intake Temperature (in F) + +This project was developed for and tested on a 2013 Scion FR-S, other vehicles may have different sensor setups and ECU calculations for readings. + +# DEPENDENCIES +- [ArduinoOBD](https://github.com/stanleyhuangyc/ArduinoOBD) + + +# HARDWARE +This project uses an Arduino Nano, a 128*64 I2C OLED, and a [Freematics OBD-II UART Adapter](https://freematics.com/products). + +> Pin A0 -> Button -> 10k resistor -> GND \ +> Pin A4 -> SDA on OLED (10k pullup resistor) \ +> Pin A5 -> SCL on OLED (10k pullup resistor) \ +> Pin TX1 -> RX on OBD-II UART Adapter \ +> Pin RX0 -> TX on OBD-II UART Adapter \ +> 5V and GND is provided from OBD-II UART Adapter for Arduino and OLED + +# REFERENCES +- A user named robot on the FT86CLUB forums inspired this project with his [post](https://www.ft86club.com/forums/showthread.php?t=75181&highlight=arduino) and his [code](https://github.com/stirobot/arduinoModularTFTgauges/blob/master/oledOBDgaugesSmallIrvinedLib/oledOBDgaugesSmallIrvinedLib.ino). +- https://github.com/wonho-maker/Adafruit_SH1106 \ No newline at end of file diff --git a/batt_bits.bmp b/assets/batt_bits.bmp similarity index 100% rename from batt_bits.bmp rename to assets/batt_bits.bmp diff --git a/coolant_bits.bmp b/assets/coolant_bits.bmp similarity index 100% rename from coolant_bits.bmp rename to assets/coolant_bits.bmp diff --git a/intake.bmp b/assets/intake_bits.bmp similarity index 100% rename from intake.bmp rename to assets/intake_bits.bmp diff --git a/beep.bmp b/assets/its_okay.bmp similarity index 100% rename from beep.bmp rename to assets/its_okay.bmp diff --git a/o2_bits.bmp b/assets/o2_bits.bmp similarity index 100% rename from o2_bits.bmp rename to assets/o2_bits.bmp diff --git a/oil_bits.bmp b/assets/oil_bits.bmp similarity index 100% rename from oil_bits.bmp rename to assets/oil_bits.bmp diff --git a/wywh.bmp b/assets/wywh.bmp similarity index 100% rename from wywh.bmp rename to assets/wywh.bmp diff --git a/Car_Gauge/bitmaps.h b/bitmaps.h similarity index 97% rename from Car_Gauge/bitmaps.h rename to bitmaps.h index e2ab39d..10d8e4f 100644 --- a/Car_Gauge/bitmaps.h +++ b/bitmaps.h @@ -1,8 +1,10 @@ -#include -#include -#include +/************************************************************************* +* Bitmaps for OBD Data Display +* Converted *.bmp files to hex. Copy/pasted into arrays here. +* Author: Morgan Chumbley +*************************************************************************/ -const unsigned char okay [] PROGMEM = { +const unsigned char its_okay [] PROGMEM = { // 128x21px 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0xf8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x18, 0x10, 0xd0, 0xe0, 0x20, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x60, 0x60, 0xe0, 0x00, 0x00, 0x00, 0x80, diff --git a/newGauge/bitmaps.h b/newGauge/bitmaps.h deleted file mode 100644 index 2472211..0000000 --- a/newGauge/bitmaps.h +++ /dev/null @@ -1,156 +0,0 @@ -#include -#include -#include - -const unsigned char okay [] PROGMEM = { - // 'beep, 128x21px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x30, 0x00, - 0x03, 0x87, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x80, 0x78, 0x00, - 0x03, 0x04, 0x38, 0x70, 0x10, 0x00, 0x01, 0xf8, 0x0c, 0x00, 0x01, 0x80, 0xe0, 0x80, 0xfc, 0x60, - 0x03, 0x00, 0x6c, 0x70, 0xf8, 0x00, 0x03, 0x86, 0x07, 0x80, 0x01, 0x80, 0x61, 0x01, 0xff, 0xf8, - 0x03, 0x00, 0x66, 0x11, 0x08, 0x00, 0x07, 0x02, 0x07, 0x1e, 0x03, 0xc0, 0x31, 0x01, 0xff, 0xf8, - 0x03, 0x00, 0xc0, 0x21, 0x04, 0x00, 0x06, 0x03, 0x06, 0x18, 0x06, 0xc0, 0x1b, 0x01, 0xff, 0xfc, - 0x03, 0x00, 0xc0, 0x41, 0x00, 0x00, 0x06, 0x03, 0x06, 0x20, 0x04, 0xc0, 0x0e, 0x01, 0xff, 0xfc, - 0x06, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x0c, 0x03, 0x06, 0x40, 0x00, 0xc0, 0x06, 0x00, 0xff, 0xf8, - 0x06, 0x01, 0x80, 0x00, 0xff, 0x00, 0x0c, 0x03, 0x07, 0x80, 0x0f, 0xe0, 0x06, 0x00, 0xff, 0xf8, - 0x06, 0x03, 0x00, 0x00, 0x3f, 0x00, 0x04, 0x07, 0x0d, 0x80, 0x10, 0x60, 0x03, 0x00, 0x7f, 0xf0, - 0x0e, 0x03, 0x00, 0x00, 0x01, 0x80, 0x04, 0x06, 0x0c, 0xc0, 0x10, 0x60, 0x03, 0x00, 0x7f, 0xe0, - 0x1e, 0x0e, 0x00, 0x00, 0x01, 0x80, 0x04, 0x0e, 0x0c, 0xe0, 0x70, 0x70, 0x07, 0xc0, 0x3f, 0x80, - 0x01, 0x03, 0x00, 0x00, 0x41, 0x00, 0x03, 0x3c, 0x0c, 0x60, 0x18, 0x70, 0x00, 0x00, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0xf0, 0x3c, 0x30, 0x00, 0x78, 0x00, 0x00, 0x1c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x06, 0x70, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const unsigned char o2_bits [] PROGMEM = { - // 'o2_bits, 32x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0xf8, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x00, - 0x0c, 0x03, 0x00, 0x00, 0x18, 0x01, 0x80, 0x00, 0x18, 0x01, 0xf8, 0x00, 0x18, 0x01, 0xfc, 0x00, - 0x18, 0x01, 0x8e, 0x00, 0x18, 0x01, 0x86, 0x00, 0x0c, 0x03, 0x06, 0x00, 0x0c, 0x03, 0x06, 0x00, - 0x0e, 0x0e, 0x04, 0x00, 0x07, 0xfc, 0x0c, 0x00, 0x01, 0xf8, 0x18, 0x00, 0x00, 0x00, 0x30, 0x00, - 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0xff, 0x00, - 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const unsigned char batt_bits [] PROGMEM = { - // 'batt_bits, 32x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x1f, 0x00, 0x02, 0x08, 0x20, 0x80, 0x02, 0xa8, 0x2a, 0x80, - 0x02, 0xa8, 0x2a, 0x80, 0x02, 0x08, 0x20, 0x80, 0x02, 0x08, 0x20, 0x80, 0x1f, 0xff, 0xff, 0xf0, - 0x1e, 0x00, 0x00, 0xf0, 0x1e, 0x00, 0x00, 0xf0, 0x1e, 0x00, 0x00, 0xf0, 0x10, 0x40, 0x00, 0x10, - 0x10, 0x40, 0x00, 0x10, 0x10, 0x40, 0x00, 0x10, 0x13, 0xf8, 0x3f, 0x90, 0x10, 0x40, 0x00, 0x10, - 0x10, 0x40, 0x00, 0x10, 0x10, 0x40, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x1e, 0x00, 0x00, 0xf0, - 0x1e, 0x00, 0x00, 0xf0, 0x1e, 0x00, 0x00, 0xf0, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const unsigned char coolant_bits [] PROGMEM = { - // 'coolant_bits, 32x32px - 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x38, 0x03, 0x80, 0x00, 0x38, 0x03, 0x80, 0x00, - 0x38, 0x03, 0xfe, 0x00, 0x3f, 0x03, 0xfe, 0x00, 0x38, 0x03, 0xfe, 0x00, 0x38, 0x03, 0x80, 0x00, - 0x38, 0x03, 0x80, 0x00, 0x38, 0x03, 0xfe, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x03, 0xfe, 0x00, - 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0x87, 0xf0, - 0x07, 0xf3, 0x9c, 0x1c, 0x1c, 0x1f, 0xf0, 0x06, 0x70, 0x07, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x01, - 0x80, 0x07, 0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, - 0x07, 0xf3, 0x87, 0xf0, 0x1c, 0x1c, 0x1c, 0x1c, 0x70, 0x06, 0x70, 0x06, 0xc0, 0x03, 0xc0, 0x03, - 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const unsigned char oil_bits [] PROGMEM = { - // 'oil_bits, 32x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x0e, 0x00, 0x00, 0x60, 0x1f, 0x00, 0xe0, 0x78, 0x0e, 0x03, 0x80, 0x4c, 0x04, 0x0f, 0x10, - 0x7f, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xfe, 0x10, 0x0f, 0xff, 0xfc, 0x10, 0x0f, 0xff, 0xfc, 0x18, - 0x07, 0xff, 0xf8, 0x3c, 0x07, 0xff, 0xf0, 0x3c, 0x07, 0xff, 0xf0, 0x3c, 0x07, 0xff, 0xe0, 0x18, - 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xdf, 0xe0, 0x00, 0x00, 0xdf, 0xe0, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, - 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x1c, 0x00, 0x00, - 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00 -}; - -const unsigned char intake_bits [] PROGMEM = { - // 'intake, 32x32px - 0x00, 0x00, 0x00, 0x00, 0x6f, 0x80, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x10, 0x00, - 0x0f, 0x00, 0x38, 0x00, 0x0c, 0x00, 0x38, 0x00, 0x0c, 0x00, 0x3f, 0xe0, 0x0c, 0x00, 0x3f, 0xe0, - 0x0c, 0xe0, 0x3f, 0xe0, 0x01, 0x10, 0x38, 0x00, 0x00, 0x10, 0x38, 0x00, 0x00, 0x10, 0x3f, 0xe0, - 0x7f, 0xf3, 0x3f, 0xe0, 0x7f, 0xe4, 0xbf, 0xe0, 0x00, 0x00, 0xb8, 0x00, 0x1f, 0xff, 0xb8, 0x00, - 0x1f, 0xff, 0x3f, 0xe0, 0x00, 0x00, 0x3f, 0xe0, 0x7f, 0xfe, 0x3f, 0xe0, 0x7f, 0xff, 0x38, 0x00, - 0x00, 0x01, 0x38, 0x00, 0x00, 0x09, 0x7c, 0x00, 0x00, 0x06, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0x00, - 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const unsigned char wywh [] PROGMEM = { - // 'wywh, 128x64px - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x06, 0x0e, 0x0c, 0x7e, 0x0f, 0x38, 0x7f, 0xe0, 0xf0, 0xf8, 0x3e, 0x1c, 0x3f, 0xff, 0xff, - 0xff, 0x8f, 0x1f, 0x38, 0x79, 0xcf, 0x24, 0x7f, 0xf9, 0xf9, 0xf7, 0x9f, 0x1f, 0x3f, 0xff, 0xff, - 0xff, 0xcf, 0x9f, 0x7c, 0x79, 0xef, 0x1e, 0x3f, 0xf9, 0xfb, 0xe7, 0xcf, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xe7, 0x9f, 0x7e, 0x79, 0xff, 0x3f, 0x3f, 0xfc, 0xfb, 0xcf, 0xc7, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xe7, 0x8f, 0x7e, 0x78, 0xff, 0x3f, 0x3f, 0xfc, 0xf7, 0xcf, 0xc7, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xe3, 0x4e, 0xfe, 0x7c, 0x3f, 0x3f, 0x3f, 0xfc, 0x77, 0xcf, 0xe7, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xf3, 0x66, 0xfe, 0x7e, 0x0f, 0x3f, 0x3f, 0xfe, 0x6f, 0xcf, 0xe7, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xf3, 0x65, 0xfe, 0x7f, 0x8f, 0x3f, 0x3f, 0xfe, 0x2f, 0xcf, 0xe7, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xf8, 0xe1, 0xfe, 0x77, 0xcf, 0x3f, 0x3f, 0xff, 0x0f, 0xc7, 0xe7, 0x9f, 0x3f, 0xff, 0xff, - 0xff, 0xf8, 0xf1, 0xfc, 0x73, 0xcf, 0x3f, 0x3f, 0xff, 0x1f, 0xe7, 0xcf, 0x9e, 0x1f, 0xff, 0xff, - 0xff, 0xf9, 0xf3, 0xfc, 0x73, 0xcf, 0x3e, 0x3f, 0xff, 0x9f, 0xe3, 0x9f, 0x8c, 0x0f, 0xff, 0xff, - 0xff, 0xfd, 0xfb, 0xf8, 0x10, 0x3c, 0x0c, 0x0f, 0xff, 0xbf, 0xf8, 0x3f, 0xc3, 0x3f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x06, 0x0e, 0x0f, 0x0f, 0xcc, 0x7c, 0x3f, 0xfe, 0x61, 0xfe, 0x0f, 0x98, 0xf8, 0x3f, 0xff, - 0xff, 0x8f, 0x1f, 0x3e, 0xe3, 0x80, 0x7b, 0x8f, 0xfe, 0x48, 0xfd, 0xe7, 0x00, 0xf7, 0x9f, 0xff, - 0xff, 0xcf, 0x9f, 0x7d, 0xf3, 0xc3, 0x77, 0xcf, 0xfe, 0x3c, 0xf9, 0xe7, 0x86, 0xe7, 0x9f, 0xff, - 0xff, 0xe7, 0x9f, 0x79, 0xf3, 0xc7, 0xe7, 0xcf, 0xfe, 0x7c, 0x73, 0xe3, 0x8f, 0xcf, 0x8f, 0xff, - 0xff, 0xe7, 0x8f, 0x78, 0x03, 0xc7, 0xe0, 0x0f, 0xfe, 0x7c, 0x70, 0x03, 0x8f, 0xc0, 0x0f, 0xff, - 0xff, 0xe3, 0x4e, 0xf9, 0xff, 0xc7, 0xe7, 0xff, 0xfe, 0x7c, 0x73, 0xff, 0x8f, 0xcf, 0xff, 0xff, - 0xff, 0xf3, 0x66, 0xf9, 0xff, 0xc7, 0xe7, 0xff, 0xfe, 0x7c, 0x73, 0xff, 0x8f, 0xcf, 0xff, 0xff, - 0xff, 0xf3, 0x65, 0xf9, 0xff, 0xc7, 0xe7, 0xff, 0xfe, 0x7c, 0x73, 0xff, 0x8f, 0xcf, 0xff, 0xff, - 0xff, 0xf8, 0xe1, 0xf8, 0xff, 0xc7, 0xe3, 0xff, 0xfe, 0x7c, 0x71, 0xff, 0x8f, 0xc7, 0xff, 0xff, - 0xff, 0xf8, 0xf1, 0xf8, 0xff, 0xc7, 0xe3, 0xff, 0xfe, 0x7c, 0x78, 0xff, 0x8f, 0xe3, 0xfe, 0xff, - 0xff, 0xf9, 0xf3, 0xfc, 0x33, 0xc7, 0xf0, 0xcf, 0xfc, 0x7c, 0x78, 0x67, 0x8f, 0xe1, 0x9c, 0x7f, - 0xff, 0xfd, 0xfb, 0xfe, 0x0f, 0x01, 0xf8, 0x3f, 0xf8, 0x38, 0x3e, 0x1e, 0x03, 0xf8, 0x7c, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -}; diff --git a/newGauge/newGauge.ino b/ref/reference.ino similarity index 100% rename from newGauge/newGauge.ino rename to ref/reference.ino diff --git a/simple_obd_display/simple_obd_display.ino b/simple_obd_display/simple_obd_display.ino deleted file mode 100644 index 46d8cf7..0000000 --- a/simple_obd_display/simple_obd_display.ino +++ /dev/null @@ -1,103 +0,0 @@ -/************************************************************************* -* Simple OBD Data Display -* Works with any Arduino board connected with SH1106 128*64 I2C OLED and -* Freematics OBD-II UART Adapter - https://freematics.com/products -* Distributed under public domain -* Written by Stanley Huang -*************************************************************************/ - -#include -#include -#include - -LCD_SH1106 lcd; -COBD obd; - -void reconnect() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.print("Reconnecting"); - //digitalWrite(SD_CS_PIN, LOW); - for (uint16_t i = 0; !obd.init(); i++) { - if (i == 5) { - lcd.clear(); - } - delay(3000); - } -} - -void showData(byte pid, int value) -{ - switch (pid) { - case PID_RPM: - lcd.setCursor(64, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 10000, 4); - break; - case PID_BATTERY_VOLTAGE: - lcd.setCursor(0, 0); - lcd.setFontSize(FONT_SIZE_XLARGE); - lcd.printInt((unsigned int)value % 1000, 3); - break; - case PID_INTAKE_TEMP: - lcd.setCursor(88, 5); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printInt(value % 100, 3); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.print(" F"); - break; - case PID_AIR_FUEL_EQUIV_RATIO: - lcd.setCursor(12, 5); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.printInt((unsigned int)value % 1000, 2); - break; - } -} - -void initScreen() -{ - lcd.clear(); - lcd.setFontSize(FONT_SIZE_SMALL); - lcd.setCursor(24, 3); - lcd.print("VOLTS"); - lcd.setCursor(110, 3); - lcd.print("RPM"); - lcd.setCursor(10, 7); - lcd.print("AFR"); - lcd.setCursor(70, 7); - lcd.print("IN. TEMP"); -} - -void setup() -{ - lcd.begin(); - lcd.setFontSize(FONT_SIZE_MEDIUM); - lcd.println("OBD DISPLAY"); - - delay(500); - obd.begin(); - - lcd.println(); - lcd.println("Connecting..."); - while (!obd.init()); - initScreen(); -} - -void loop() -{ - static byte pids[]= {PID_RPM, PID_BATTERY_VOLTAGE, PID_AIR_FUEL_EQUIV_RATIO, PID_INTAKE_TEMP}; - static byte index = 0; - byte pid = pids[index]; - int value; - // send a query to OBD adapter for specified OBD-II pid - if (obd.readPID(pid, value)) { - showData(pid, value); - } - index = (index + 1) % sizeof(pids); - - if (obd.errors >= 2) { - reconnect(); - setup(); - } -}