diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/Voting_Device.iml b/.idea/Voting_Device.iml
new file mode 100644
index 0000000..bc2cd87
--- /dev/null
+++ b/.idea/Voting_Device.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..64723db
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Display_code/.idea/.gitignore b/Display_code/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/Display_code/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/Display_code/.idea/Display_code.iml b/Display_code/.idea/Display_code.iml
new file mode 100644
index 0000000..bc2cd87
--- /dev/null
+++ b/Display_code/.idea/Display_code.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Display_code/.idea/modules.xml b/Display_code/.idea/modules.xml
new file mode 100644
index 0000000..ad21d56
--- /dev/null
+++ b/Display_code/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Display_code/.idea/vcs.xml b/Display_code/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/Display_code/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Display_code/epd1in54_V2/epd1in54_V2.cpp b/Display_code/epd1in54_V2/epd1in54_V2.cpp
new file mode 100644
index 0000000..7df047b
--- /dev/null
+++ b/Display_code/epd1in54_V2/epd1in54_V2.cpp
@@ -0,0 +1,576 @@
+/*****************************************************************************
+* | File : epd1in54_V2.cpp
+* | Author : Waveshare team
+* | Function : 1.54inch e-paper V2
+* | Info :
+*----------------
+* | This version: V1.0
+* | Date : 2019-06-24
+* | Info :
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation 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
+# furished 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 OR 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 "epd1in54_V2.h"
+
+
+// waveform full refresh
+unsigned char WF_Full_1IN54[159] =
+{
+0x80, 0x48, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x40, 0x48, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x80, 0x48, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x40, 0x48, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x8, 0x1, 0x0, 0x8, 0x1, 0x0, 0x2,
+0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0,
+0x22, 0x17, 0x41, 0x0, 0x32, 0x20
+};
+
+// waveform partial refresh(fast)
+unsigned char WF_PARTIAL_1IN54_0[159] =
+{
+0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0xF,0x0,0x0,0x0,0x0,0x0,0x0,
+0x1,0x1,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0,
+0x02,0x17,0x41,0xB0,0x32,0x28,
+};
+
+Epd::~Epd()
+{
+};
+
+Epd::Epd()
+{
+ reset_pin = RST_PIN;
+ dc_pin = DC_PIN;
+ cs_pin = CS_PIN;
+ busy_pin = BUSY_PIN;
+ width = EPD_WIDTH;
+ height = EPD_HEIGHT;
+};
+
+/**
+ * @brief: basic function for sending commands
+ */
+void Epd::SendCommand(unsigned char command)
+{
+ DigitalWrite(dc_pin, LOW);
+ SpiTransfer(command);
+}
+
+/**
+ * @brief: basic function for sending data
+ */
+void Epd::SendData(unsigned char data)
+{
+ DigitalWrite(dc_pin, HIGH);
+ SpiTransfer(data);
+}
+
+/**
+ * @brief: Wait until the busy_pin goes HIGH
+ */
+void Epd::WaitUntilIdle(void)
+{
+ while(DigitalRead(busy_pin) == 1) { //LOW: idle, HIGH: busy
+ DelayMs(100);
+ }
+ DelayMs(200);
+}
+
+void Epd::Lut(unsigned char* lut)
+{
+ SendCommand(0x32);
+ for(unsigned char i=0; i<153; i++)
+ SendData(lut[i]);
+ WaitUntilIdle();
+}
+
+void Epd::SetLut(unsigned char* lut)
+{
+ Lut(lut);
+
+ SendCommand(0x3f);
+ SendData(lut[153]);
+
+ SendCommand(0x03);
+ SendData(lut[154]);
+
+ SendCommand(0x04);
+ SendData(lut[155]);
+ SendData(lut[156]);
+ SendData(lut[157]);
+
+ SendCommand(0x2c);
+ SendData(lut[158]);
+}
+
+// High Direction
+int Epd::HDirInit(void)
+{
+ /* this calls the peripheral hardware interface, see epdif */
+ if (IfInit() != 0) {
+ return -1;
+ }
+ /* EPD hardware init start */
+ Reset();
+
+ WaitUntilIdle();
+ SendCommand(0x12); //SWRESET
+ WaitUntilIdle();
+
+ SendCommand(0x01); //Driver output control
+ SendData(0xC7);
+ SendData(0x00);
+ SendData(0x01);
+
+ SendCommand(0x11); //data entry mode
+ SendData(0x01);
+
+ SendCommand(0x44); //set Ram-X address start/end position
+ SendData(0x00);
+ SendData(0x18); //0x0C-->(18+1)*8=200
+
+ SendCommand(0x45); //set Ram-Y address start/end position
+ SendData(0xC7); //0xC7-->(199+1)=200
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+
+ SendCommand(0x3C); //BorderWavefrom
+ SendData(0x01);
+
+ SendCommand(0x18);
+ SendData(0x80);
+
+ SendCommand(0x22); // //Load Temperature and waveform setting.
+ SendData(0XB1);
+ SendCommand(0x20);
+
+ SendCommand(0x4E); // set RAM x address count to 0;
+ SendData(0x00);
+ SendCommand(0x4F); // set RAM y address count to 0X199;
+ SendData(0xC7);
+ SendData(0x00);
+ WaitUntilIdle();
+
+ SetLut(WF_Full_1IN54);
+ /* EPD hardware init end */
+
+ return 0;
+}
+
+// Low Direction
+int Epd::LDirInit(void)
+{
+ /* this calls the peripheral hardware interface, see epdif */
+ if (IfInit() != 0) {
+ return -1;
+ }
+ /* EPD hardware init start */
+ Reset();
+
+ WaitUntilIdle();
+ SendCommand(0x12); //SWRESET
+ WaitUntilIdle();
+
+ SendCommand(0x01); //Driver output control
+ SendData(0xC7);
+ SendData(0x00);
+ SendData(0x00);
+
+ SendCommand(0x11); //data entry mode
+ SendData(0x03);
+
+ SendCommand(0x44);
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ SendData((0 >> 3) & 0xFF);
+ SendData((199 >> 3) & 0xFF);
+ SendCommand(0x45);
+ SendData(0 & 0xFF);
+ SendData((0 >> 8) & 0xFF);
+ SendData(199 & 0xFF);
+ SendData((199 >> 8) & 0xFF);
+
+ SendCommand(0x3C); //BorderWavefrom
+ SendData(0x01);
+
+ SendCommand(0x18);
+ SendData(0x80);
+
+ SendCommand(0x22); // //Load Temperature and waveform setting.
+ SendData(0XB1);
+ SendCommand(0x20);
+
+ SendCommand(0x4E); // set RAM x address count to 0;
+ SendData(0x00);
+ SendCommand(0x4F); // set RAM y address count to 0X199;
+ SendData(0xC7);
+ SendData(0x00);
+ WaitUntilIdle();
+
+ SetLut(WF_Full_1IN54);
+ /* EPD hardware init end */
+
+ return 0;
+}
+
+
+/**
+ * @brief: module reset.
+ * often used to awaken the module in deep sleep,
+ * see Epd::Sleep();
+ */
+void Epd::Reset(void)
+{
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(20);
+ DigitalWrite(reset_pin, LOW); //module reset
+ DelayMs(5);
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(20);
+}
+
+void Epd::Clear(void)
+{
+ int w, h;
+ w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ h = EPD_HEIGHT;
+
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+ SendCommand(0x26);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+
+void Epd::Display(const unsigned char* frame_buffer)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ if (frame_buffer != NULL) {
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+ }
+
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+
+void Epd::DisplayPartBaseImage(const unsigned char* frame_buffer)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ if (frame_buffer != NULL) {
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+
+ SendCommand(0x26);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+ }
+
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+void Epd::DisplayPartBaseWhiteImage(void)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+
+ SendCommand(0x26);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+
+
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+
+
+void Epd::DisplayPart(const unsigned char* frame_buffer)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ if (frame_buffer != NULL) {
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+ }
+
+ //DISPLAY REFRESH
+ DisplayPartFrame();
+}
+
+
+/**
+ * @brief: private function to specify the memory area for data R/W
+ */
+void Epd::SetMemoryArea(int x_start, int y_start, int x_end, int y_end)
+{
+ SendCommand(0x44);
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ SendData((x_start >> 3) & 0xFF);
+ SendData((x_end >> 3) & 0xFF);
+ SendCommand(0x45);
+ SendData(y_start & 0xFF);
+ SendData((y_start >> 8) & 0xFF);
+ SendData(y_end & 0xFF);
+ SendData((y_end >> 8) & 0xFF);
+}
+
+/**
+ * @brief: private function to specify the start point for data R/W
+ */
+void Epd::SetMemoryPointer(int x, int y)
+{
+ SendCommand(0x4e);
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ SendData((x >> 3) & 0xFF);
+ SendCommand(0x4F);
+ SendData(y & 0xFF);
+ SendData((y >> 8) & 0xFF);
+ WaitUntilIdle();
+}
+
+
+/**
+ * @brief: update the display
+ * there are 2 memory areas embedded in the e-paper display
+ * but once this function is called,
+ * the the next action of SetFrameMemory or ClearFrame will
+ * set the other memory area.
+ */
+void Epd::DisplayFrame(void)
+{
+ //DISPLAY REFRESH
+ SendCommand(0x22);
+ SendData(0xc7);
+ SendCommand(0x20);
+ WaitUntilIdle();
+}
+
+void Epd::DisplayPartFrame(void)
+{
+ SendCommand(0x22);
+ SendData(0xcF);
+ SendCommand(0x20);
+ WaitUntilIdle();
+}
+
+
+void Epd::SetFrameMemory(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+)
+{
+ int x_end;
+ int y_end;
+
+ DigitalWrite(reset_pin, LOW); //module reset
+ DelayMs(2);
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(2);
+ SendCommand(0x3c);
+ SendData(0x80);
+
+ if (
+ image_buffer == NULL ||
+ x < 0 || image_width < 0 ||
+ y < 0 || image_height < 0
+ ) {
+ return;
+ }
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ x &= 0xF8;
+ image_width &= 0xF8;
+ if (x + image_width >= this->width) {
+ x_end = this->width - 1;
+ } else {
+ x_end = x + image_width - 1;
+ }
+ if (y + image_height >= this->height) {
+ y_end = this->height - 1;
+ } else {
+ y_end = y + image_height - 1;
+ }
+ SetMemoryArea(x, y, x_end, y_end);
+ SetMemoryPointer(x, y);
+ SendCommand(0x24);
+ /* send the image data */
+ for (int j = 0; j < y_end - y + 1; j++) {
+ for (int i = 0; i < (x_end - x + 1) / 8; i++) {
+ SendData(image_buffer[i + j * (image_width / 8)]);
+ }
+ }
+}
+
+void Epd::SetFrameMemoryPartial(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+)
+{
+ int x_end;
+ int y_end;
+
+ DigitalWrite(reset_pin, LOW); //module reset
+ DelayMs(2);
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(2);
+
+ SetLut(WF_PARTIAL_1IN54_0);
+ SendCommand(0x37);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x40);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+
+ SendCommand(0x3c);
+ SendData(0x80);
+
+ SendCommand(0x22);
+ SendData(0xc0);
+ SendCommand(0x20);
+ WaitUntilIdle();
+
+ if (
+ image_buffer == NULL ||
+ x < 0 || image_width < 0 ||
+ y < 0 || image_height < 0
+ ) {
+ return;
+ }
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ x &= 0xF8;
+ image_width &= 0xF8;
+ if (x + image_width >= this->width) {
+ x_end = this->width - 1;
+ } else {
+ x_end = x + image_width - 1;
+ }
+ if (y + image_height >= this->height) {
+ y_end = this->height - 1;
+ } else {
+ y_end = y + image_height - 1;
+ }
+ SetMemoryArea(x, y, x_end, y_end);
+ SetMemoryPointer(x, y);
+ SendCommand(0x24);
+ /* send the image data */
+ for (int j = 0; j < y_end - y + 1; j++) {
+ for (int i = 0; i < (x_end - x + 1) / 8; i++) {
+ SendData(image_buffer[i + j * (image_width / 8)]);
+ }
+ }
+}
+
+/**
+ * @brief: After this command is transmitted, the chip would enter the
+ * deep-sleep mode to save power.
+ * The deep sleep mode would return to standby by hardware reset.
+ * The only one parameter is a check code, the command would be
+ * executed if check code = 0xA5.
+ * You can use Epd::Init() to awaken
+ */
+void Epd::Sleep()
+{
+ SendCommand(0x10); //enter deep sleep
+ SendData(0x01);
+ DelayMs(200);
+
+ DigitalWrite(reset_pin, LOW);
+}
+
+/* END OF FILE */
diff --git a/Display_code/epd1in54_V2/epd1in54_V2.h b/Display_code/epd1in54_V2/epd1in54_V2.h
new file mode 100644
index 0000000..42682c1
--- /dev/null
+++ b/Display_code/epd1in54_V2/epd1in54_V2.h
@@ -0,0 +1,92 @@
+/*****************************************************************************
+* | File : epd1in54_V2.h
+* | Author : Waveshare team
+* | Function : 1.54inch e-paper V2
+* | Info :
+*----------------
+* | This version: V1.0
+* | Date : 2019-06-24
+* | Info :
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation 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
+# furished 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 OR 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 epd1in54_V2_H
+#define epd1in54_V2_H
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH 200
+#define EPD_HEIGHT 200
+
+class Epd : EpdIf
+{
+public:
+ unsigned long width;
+ unsigned long height;
+
+ Epd();
+ ~Epd();
+ // int Init(void);
+ int LDirInit(void);
+ int HDirInit(void);
+ void SendCommand(unsigned char command);
+ void SendData(unsigned char data);
+ void WaitUntilIdle(void);
+ void Reset(void);
+ void Clear(void);
+ void Display(const unsigned char* frame_buffer);
+ void DisplayPartBaseImage(const unsigned char* frame_buffer);
+ void DisplayPartBaseWhiteImage(void);
+ void DisplayPart(const unsigned char* frame_buffer);
+ void SetFrameMemory(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+ );
+ void SetFrameMemoryPartial(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+ );
+ void DisplayFrame(void);
+ void DisplayPartFrame(void);
+
+ void Sleep(void);
+private:
+ unsigned int reset_pin;
+ unsigned int dc_pin;
+ unsigned int cs_pin;
+ unsigned int busy_pin;
+
+ void Lut(unsigned char* lut);
+ void SetLut(unsigned char* lut);
+ void SetMemoryArea(int x_start, int y_start, int x_end, int y_end);
+ void SetMemoryPointer(int x, int y);
+};
+
+#endif /* EPD1IN54B_H */
+
+/* END OF FILE */
diff --git a/Display_code/epd1in54_V2/epd1in54_V2.ino b/Display_code/epd1in54_V2/epd1in54_V2.ino
new file mode 100644
index 0000000..4bc79c5
--- /dev/null
+++ b/Display_code/epd1in54_V2/epd1in54_V2.ino
@@ -0,0 +1,364 @@
+#include
+#include "epd1in54_V2.h"
+#include "imagedata.h"
+#include "epdpaint.h"
+#include
+
+Epd epd;
+unsigned char image[1024];
+Paint paint(image, 0, 0);
+
+#define COLORED 0
+#define UNCOLORED 1
+
+const unsigned char wifilogo[] PROGMEM = {
+// 'imresizer-1702234655501', 35x35px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff,
+0xf0, 0x00, 0x07, 0xf0, 0x01, 0xfc, 0x00, 0x0f, 0x80, 0x00, 0x3e, 0x00, 0x1f, 0x00, 0x00, 0x1f,
+0x00, 0x1c, 0x0f, 0xfe, 0x07, 0x00, 0x08, 0x3f, 0xff, 0x82, 0x00, 0x00, 0x7f, 0x9f, 0xc0, 0x00,
+0x01, 0xf8, 0x01, 0xf0, 0x00, 0x01, 0xe0, 0x00, 0xf0, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x00,
+0x07, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1c,
+0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
+0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 thankyoulogo[] PROGMEM = {
+// 'imresizer-1702236559618', 200x180px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
+0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3e, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x3c, 0x78, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xbf, 0xf3, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1f, 0xbf, 0xf0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x79, 0x7f, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f, 0xf0,
+0x30, 0x00, 0x00, 0x00, 0x00, 0x41, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0xe0, 0x30, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xff,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
+0x8f, 0xc3, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x78, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x10, 0x90, 0x00, 0x00, 0x06, 0x78, 0x5f, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x01, 0xff, 0xff, 0xe3, 0xf0,
+0x60, 0x00, 0x00, 0x06, 0x10, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x89, 0x05, 0x61, 0xff, 0xff, 0xe1, 0xe0, 0x30, 0x00, 0x00, 0x02, 0x78, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x05, 0x61, 0xff, 0xff,
+0xe0, 0xc3, 0xf0, 0x00, 0x00, 0x06, 0x78, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x78,
+0x6f, 0x00, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0xff, 0xff, 0xe3, 0xf0, 0x10, 0x00, 0x00, 0x06, 0x20, 0x5b, 0x04, 0x20, 0xa0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00,
+0x06, 0x00, 0x5b, 0x04, 0x20, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x06, 0x00, 0x7f, 0x0a, 0xa2, 0x80, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0f, 0xff, 0xe3, 0xe3, 0xf0,
+0x00, 0x00, 0x07, 0x30, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+0x00, 0x00, 0x00, 0x28, 0x0f, 0xff, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x07, 0x78, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x10, 0xc0, 0xc2, 0x06, 0x28, 0x1f, 0xff, 0xe0,
+0xc0, 0x10, 0x02, 0x30, 0xa2, 0x78, 0x3e, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x71, 0x51, 0x81, 0x66, 0x1c, 0x20, 0x1f, 0xff, 0xe1, 0x80, 0xf0, 0x92, 0x2a, 0x26, 0x79, 0x7f,
+0x2a, 0xa9, 0x29, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x82, 0x42, 0x44, 0x12, 0x20, 0x3f,
+0xff, 0xe3, 0xf0, 0x00, 0x92, 0x21, 0x24, 0x01, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0xbb, 0x84, 0xc6, 0x04, 0x26, 0x1c, 0x3f, 0xff, 0xe3, 0xe0, 0xb0, 0x0a, 0x30, 0xa6,
+0x78, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x0c, 0xc4, 0x08, 0x66,
+0x30, 0x38, 0x70, 0x60, 0x00, 0x00, 0x4a, 0x28, 0xa6, 0x31, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x03, 0x53, 0x09, 0x84, 0x08, 0x5c, 0x30, 0x38, 0x70, 0x60, 0x30, 0x01, 0x4a,
+0x28, 0x26, 0xf9, 0x7f, 0x00, 0x04, 0x48, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xb3, 0x0e, 0x8c,
+0x18, 0xf4, 0x50, 0x3f, 0xbf, 0xf0, 0xe1, 0xf0, 0x00, 0x00, 0x02, 0xf8, 0x3e, 0x38, 0x04, 0x40,
+0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x32, 0x08, 0xd7, 0xef, 0xc6, 0xf0, 0x3f, 0xbf, 0xf3, 0xe0,
+0x00, 0x00, 0x00, 0x06, 0x08, 0x01, 0x00, 0x04, 0xf0, 0x51, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x60,
+0x00, 0x60, 0x00, 0x03, 0x00, 0x1f, 0xbf, 0xf3, 0xe0, 0x00, 0x00, 0x00, 0x36, 0x78, 0x6f, 0x1e,
+0x24, 0x14, 0x62, 0x20, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f,
+0xe1, 0xe0, 0x00, 0x01, 0x00, 0x00, 0x70, 0x7f, 0x25, 0x04, 0x80, 0x80, 0x20, 0x00, 0x00, 0x00,
+0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0xe0, 0x72, 0x0c, 0x31, 0xc3, 0x20, 0x78,
+0x3c, 0x09, 0x04, 0x91, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00,
+0x07, 0x8f, 0xc0, 0x02, 0xfc, 0x79, 0xc7, 0xa0, 0x79, 0xff, 0x19, 0x08, 0x91, 0x00, 0x40, 0x00,
+0x00, 0x00, 0x01, 0x40, 0x31, 0x21, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xe4, 0xca, 0x8c,
+0xa0, 0x39, 0xff, 0x02, 0x11, 0x60, 0xb0, 0x80, 0x00, 0x00, 0x00, 0x03, 0x40, 0x20, 0x90, 0x1c,
+0x01, 0x00, 0x3f, 0x00, 0x03, 0xe3, 0x24, 0xfa, 0x88, 0x20, 0x79, 0xff, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x30, 0xc0, 0x00, 0x11, 0x00, 0x3f, 0xf8, 0x02, 0x22, 0x64,
+0xf2, 0x98, 0x64, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x30,
+0x00, 0x00, 0x1f, 0xe0, 0x1f, 0xff, 0xe2, 0x32, 0x65, 0xc4, 0x98, 0x64, 0x78, 0x00, 0x00, 0x03,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x30, 0x00, 0x00, 0x03, 0xe0, 0x3f, 0xff, 0xe3,
+0xf2, 0x67, 0x7c, 0xe7, 0xb8, 0x01, 0x9b, 0x35, 0x54, 0xb0, 0xcc, 0xcd, 0x48, 0x00, 0x00, 0x03,
+0x00, 0x31, 0xc0, 0xfc, 0x01, 0x00, 0x1f, 0xff, 0xe3, 0xf2, 0x00, 0x30, 0x43, 0x10, 0xf8, 0x22,
+0x04, 0x64, 0x88, 0x82, 0x95, 0x78, 0x00, 0x00, 0x02, 0x00, 0x17, 0x07, 0xc6, 0x13, 0x00, 0x07,
+0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x31, 0x26, 0x64, 0xb0, 0xc2, 0xdd, 0x48, 0x00,
+0x00, 0x00, 0x00, 0x1c, 0x04, 0x02, 0x32, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x78, 0x20, 0x85, 0x50, 0x80, 0x92, 0x95, 0x48, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x03, 0x32,
+0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1b, 0x30, 0x43, 0x00, 0xc8, 0xc0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x01, 0x1f, 0xe6, 0x1f, 0xff, 0xe3, 0xc6, 0x0c, 0x78,
+0xc0, 0x80, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+0x03, 0x02, 0x02, 0x3f, 0xff, 0xe3, 0xc4, 0x0c, 0x78, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x3f, 0xff, 0xe0, 0x1f,
+0x8c, 0x01, 0xf0, 0x80, 0x78, 0x27, 0x28, 0xeb, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x02, 0x02, 0x03, 0x1f, 0xff, 0x05, 0x89, 0x8c, 0xb5, 0x30, 0x80, 0xf9, 0xd5, 0x5a,
+0x2b, 0xe4, 0x2a, 0x1a, 0x04, 0x50, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x02, 0x02, 0x1f, 0x80,
+0x07, 0xd9, 0x0c, 0xfd, 0x10, 0x80, 0x78, 0xa9, 0x2b, 0xeb, 0xe0, 0x03, 0x51, 0x10, 0x80, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x02, 0x10, 0x00, 0x00, 0x0f, 0xbc, 0x01, 0xf5, 0xc0, 0x78,
+0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x40, 0x38, 0x01, 0x8e,
+0x00, 0x00, 0x00, 0x1f, 0xfe, 0x01, 0xff, 0xc0, 0x78, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0xe0, 0x00, 0xfc, 0x1f, 0xff, 0xe3, 0xd9, 0x8c, 0x79, 0x10,
+0x8f, 0xf8, 0xfe, 0x3f, 0xf1, 0xef, 0x8f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0xff, 0xe0, 0x19, 0x0c, 0x01, 0x30, 0x8f, 0xf9, 0xff, 0x3f, 0xf1, 0xef, 0x9f,
+0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x0f, 0xac,
+0x01, 0xf4, 0x9f, 0xf9, 0xff, 0x3f, 0xf9, 0xef, 0xbf, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xc9, 0xac, 0x79, 0x14, 0x9f, 0xf9, 0xef, 0xbf, 0xf9,
+0xef, 0xbe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
+0x19, 0xac, 0x01, 0x34, 0x9f, 0x79, 0xe7, 0x9e, 0xf9, 0xff, 0x3c, 0xf0, 0x00, 0x00, 0x08, 0x1f,
+0x0f, 0x07, 0x01, 0x07, 0xe1, 0xc0, 0x3f, 0xff, 0xe0, 0x1f, 0xac, 0x01, 0xf4, 0x9e, 0x78, 0x1f,
+0x9e, 0xf9, 0xfe, 0x3f, 0xf0, 0x00, 0x00, 0x18, 0x1f, 0x0f, 0x1f, 0x81, 0x87, 0xe3, 0xf0, 0x18,
+0x00, 0x03, 0xdf, 0x2c, 0x7b, 0xf6, 0x9e, 0x78, 0xff, 0x9e, 0x79, 0xfe, 0x3f, 0xf0, 0x00, 0x00,
+0x1c, 0x19, 0x86, 0x19, 0xc1, 0x81, 0x87, 0x30, 0x1c, 0x00, 0x02, 0x43, 0xac, 0x48, 0x72, 0x9e,
+0x79, 0xff, 0x9e, 0x79, 0xfe, 0x3f, 0xf0, 0x00, 0x00, 0x1c, 0x19, 0x86, 0x18, 0x03, 0xc1, 0x86,
+0x19, 0xff, 0xff, 0xe2, 0x47, 0x8c, 0x48, 0xd0, 0x9e, 0x79, 0xff, 0x9e, 0xf9, 0xff, 0x3c, 0x00,
+0x00, 0x00, 0x34, 0x1f, 0x86, 0x1b, 0xc3, 0xc1, 0x86, 0x19, 0xff, 0xff, 0xe2, 0x4d, 0x8c, 0x49,
+0x90, 0x9f, 0x79, 0xef, 0x9e, 0xf9, 0xef, 0x3c, 0xf0, 0x00, 0x00, 0x36, 0x1f, 0x06, 0x1b, 0xc6,
+0xc1, 0x86, 0x19, 0xff, 0xff, 0xe2, 0x59, 0x8c, 0x4b, 0x10, 0x9f, 0xf9, 0xff, 0xbe, 0x7b, 0xef,
+0xbe, 0xf0, 0x00, 0x00, 0x7e, 0x1b, 0x06, 0x18, 0xc7, 0xe1, 0x87, 0x31, 0xff, 0xff, 0xe2, 0x71,
+0x0c, 0x4e, 0x10, 0x9f, 0xfd, 0xff, 0xbe, 0x7b, 0xff, 0xbf, 0xf0, 0x00, 0x00, 0x7f, 0x1b, 0x8f,
+0x1f, 0x87, 0xe1, 0x83, 0xf1, 0xff, 0xff, 0xe3, 0xc1, 0x8c, 0x78, 0x31, 0x8f, 0xfd, 0xff, 0xbe,
+0x7b, 0xf7, 0x9f, 0xf0, 0x00, 0x00, 0x63, 0x19, 0x8f, 0x0f, 0x0c, 0x21, 0x81, 0xe1, 0xff, 0xff,
+0xe2, 0x07, 0x38, 0x40, 0xe7, 0x0f, 0xfc, 0xf7, 0xbe, 0x7b, 0xe7, 0x8f, 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, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc,
+0x7e, 0x7f, 0x07, 0xfe, 0x07, 0xc3, 0xf3, 0xf0, 0xfc, 0x0f, 0x03, 0xc0, 0xfe, 0x07, 0xe3, 0xb1,
+0xa0, 0x00, 0x40, 0x00, 0xba, 0x8a, 0xa9, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3,
+0xf9, 0xfc, 0x0f, 0xc7, 0xe3, 0xff, 0x87, 0xf3, 0xf9, 0xb6, 0xb6, 0xdb, 0x04, 0x80, 0x88, 0xb1,
+0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xe7, 0xff, 0xc7,
+0xf3, 0xf9, 0xb6, 0xb6, 0x5b, 0x00, 0x02, 0x90, 0x99, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07,
+0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xe7, 0xff, 0xc7, 0xf3, 0xf1, 0xb6, 0xb6, 0xdb, 0x00, 0x12,
+0xa2, 0xa1, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xcf,
+0xff, 0xc7, 0xf3, 0xf9, 0xb6, 0xb7, 0xfb, 0x03, 0xb2, 0xab, 0x11, 0xff, 0xfc, 0xfe, 0x7f, 0x07,
+0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf8, 0x07, 0xcf, 0xcf, 0xef, 0xe7, 0xf3, 0xf0, 0x00, 0x05, 0x10,
+0x04, 0x80, 0x00, 0x01, 0xff, 0xfc, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf0, 0x07,
+0xef, 0xcf, 0xcf, 0xe7, 0xf3, 0xf0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe,
+0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf0, 0x07, 0xef, 0xcf, 0xcf, 0xe7, 0xf3, 0xf8, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb,
+0xf0, 0x07, 0xef, 0xcf, 0xc7, 0xe7, 0xf3, 0xf9, 0xf9, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x1f,
+0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xfb, 0xf3, 0xff, 0xe0, 0x03, 0xef, 0x8f, 0xc7, 0xe7, 0xf3,
+0xf8, 0x61, 0x84, 0x80, 0x00, 0x00, 0x01, 0x10, 0x9f, 0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xfb,
+0xf3, 0xff, 0xe0, 0x03, 0xef, 0x8f, 0xcf, 0xe7, 0xf3, 0xf0, 0x41, 0x84, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x0f, 0xdf, 0x07, 0xfb, 0xf3, 0xff, 0xe0, 0x03, 0xff, 0x8f, 0xcf,
+0xe7, 0xf3, 0xf8, 0x42, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0xdf,
+0x07, 0xff, 0xf3, 0xff, 0xe0, 0x03, 0xff, 0x8f, 0xc7, 0xe7, 0xf3, 0xf0, 0x42, 0x46, 0x00, 0x00,
+0x40, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0xdf, 0x87, 0xff, 0xf3, 0xff, 0xc0, 0x01, 0xff,
+0x0f, 0xc7, 0xe7, 0xf3, 0xf8, 0x42, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff,
+0x0f, 0xdf, 0x87, 0xff, 0xf3, 0xff, 0xc0, 0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x43, 0xc6,
+0x00, 0x00, 0x04, 0x00, 0x20, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xc0,
+0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x67, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1f, 0xc0,
+0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xe0, 0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8,
+0x44, 0x25, 0x00, 0x00, 0x00, 0x00, 0x24, 0x1f, 0xc0, 0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3,
+0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x44, 0x24, 0x80, 0x00, 0x40, 0x20, 0x04,
+0x1f, 0xc0, 0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7,
+0xf3, 0xf8, 0x4c, 0x14, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0x9f, 0x87,
+0xff, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x68, 0x14, 0x40, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0x9f, 0x87, 0xdf, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f,
+0xcf, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f,
+0xff, 0x87, 0xdf, 0xf3, 0xff, 0xf0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0xff, 0xc7, 0xdf, 0xf3, 0xff, 0xf0, 0x00,
+0xfe, 0x0f, 0xc7, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe,
+0x7f, 0x1f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb, 0xf0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf0, 0x22,
+0x78, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb,
+0xf8, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf0, 0x24, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x1f,
+0xc0, 0xfe, 0x7f, 0x3f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3,
+0xf0, 0x20, 0x00, 0x70, 0x38, 0x00, 0x00, 0x05, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x9f, 0xc7, 0xcf,
+0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xef, 0xe7, 0xf3, 0xf0, 0x2c, 0xfc, 0xa0, 0x02, 0x22, 0x24,
+0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xc7, 0xc7, 0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xff,
+0xe7, 0xff, 0xf0, 0x30, 0x84, 0x20, 0x12, 0x26, 0x24, 0x20, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f,
+0xc7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe, 0x07, 0xff, 0xc3, 0xff, 0xf0, 0x40, 0x04, 0xf0, 0x02,
+0x24, 0x04, 0x20, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xe7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe,
+0x07, 0xff, 0xc3, 0xff, 0xe0, 0x80, 0x04, 0x42, 0x02, 0x24, 0x04, 0x44, 0x1f, 0xc0, 0xfe, 0x7f,
+0x3f, 0x8f, 0xe7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe, 0x03, 0xff, 0x81, 0xff, 0xe0, 0x80, 0x04,
+0x02, 0x03, 0xe1, 0x14, 0xc2, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xe7, 0xc3, 0xf3, 0xf9, 0xfc,
+0x00, 0xfe, 0x01, 0xff, 0x00, 0xff, 0xc0, 0x80, 0x18, 0x22, 0x12, 0x21, 0x04, 0x01, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x00,
+0x7c, 0x20, 0x1c, 0x02, 0x2f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x28, 0x0c, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x80, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x02, 0x20,
+0x04, 0x01, 0x1f, 0xf8, 0x60, 0x10, 0x67, 0xfc, 0x00, 0x07, 0x80, 0x03, 0xe6, 0x84, 0x22, 0x85,
+0x51, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x60, 0x30, 0xc7,
+0xfc, 0x00, 0x07, 0x80, 0x03, 0xe6, 0x94, 0xa2, 0xb5, 0x53, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x70, 0x30, 0x87, 0xfc, 0x00, 0x07, 0x80, 0x03, 0xe0, 0x00,
+0x02, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xf0,
+0x31, 0x82, 0x60, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f,
+0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xd0, 0x33, 0x03, 0xfc, 0x3e, 0xf7, 0x87, 0xe3,
+0xe3, 0xf1, 0xe7, 0x00, 0x3d, 0xe1, 0xf0, 0xf7, 0x8f, 0xbc, 0x00, 0x01, 0x94, 0x28, 0x91, 0x91,
+0x80, 0x90, 0x33, 0x03, 0xfc, 0x7e, 0xf7, 0x8f, 0xf3, 0xe7, 0xf9, 0xff, 0x80, 0x3f, 0xe7, 0xfc,
+0xff, 0xcf, 0xbe, 0x00, 0x02, 0x14, 0x20, 0x09, 0x09, 0x80, 0x98, 0x36, 0x01, 0xdc, 0x7e, 0xf7,
+0x9f, 0xfb, 0xef, 0xfd, 0xff, 0x80, 0x7f, 0xe7, 0xfc, 0xff, 0xcf, 0xbe, 0x00, 0x00, 0x14, 0x28,
+0xf1, 0x09, 0x81, 0x88, 0x3c, 0x00, 0x00, 0x3c, 0xf7, 0xde, 0xfb, 0xef, 0x3d, 0xff, 0xc0, 0x7f,
+0xe7, 0xbc, 0xff, 0xcf, 0xfc, 0x00, 0x04, 0x14, 0x21, 0x0d, 0x09, 0x81, 0x08, 0x38, 0x03, 0xfc,
+0x3c, 0xf7, 0x9e, 0x7b, 0xef, 0x3c, 0xf7, 0xc0, 0x79, 0xe7, 0xbe, 0xfb, 0xcf, 0xfc, 0x00, 0x04,
+0x14, 0x20, 0x05, 0x09, 0x81, 0x0c, 0x38, 0x07, 0xfe, 0x3e, 0xe7, 0x9f, 0xfb, 0xef, 0xfc, 0xf7,
+0xc0, 0x79, 0xe0, 0x7e, 0xfb, 0xcf, 0xf8, 0x00, 0x04, 0x14, 0x22, 0x05, 0x09, 0x83, 0x0c, 0x38,
+0x07, 0xfc, 0x1e, 0xe7, 0x9f, 0xfb, 0xef, 0xfc, 0xf7, 0xc0, 0x79, 0xe1, 0xfe, 0x7b, 0xcf, 0xf8,
+0x00, 0x04, 0x14, 0x2a, 0x05, 0x09, 0x83, 0xfc, 0x3c, 0x02, 0x04, 0x1f, 0xe7, 0x9f, 0xfb, 0xef,
+0xfc, 0xf7, 0xc0, 0x79, 0xe7, 0xfe, 0xfb, 0xcf, 0xf8, 0x00, 0x04, 0x14, 0x28, 0x05, 0x09, 0x82,
+0x06, 0x36, 0x07, 0xff, 0x1f, 0xe7, 0x9e, 0x03, 0xef, 0x00, 0xf7, 0xc0, 0x79, 0xe7, 0xbc, 0x7b,
+0xcf, 0xf8, 0x00, 0x00, 0x14, 0x20, 0x05, 0x09, 0x86, 0x06, 0x36, 0x07, 0xff, 0x1f, 0xc7, 0x9e,
+0x7b, 0xef, 0x3c, 0xf7, 0xc0, 0x79, 0xef, 0xbe, 0x7b, 0xcf, 0xfc, 0x00, 0x02, 0x12, 0x29, 0x0d,
+0x09, 0x86, 0x06, 0x33, 0x03, 0xfe, 0x0f, 0xc7, 0xde, 0xfb, 0xef, 0x3d, 0xf7, 0xc0, 0x7f, 0xef,
+0xfe, 0xfb, 0xef, 0xbc, 0x00, 0x00, 0xf1, 0xa8, 0xf5, 0x09, 0x84, 0x02, 0x31, 0x80, 0x00, 0x0f,
+0xc7, 0xdf, 0xfb, 0xef, 0xfd, 0xf7, 0xc0, 0x7f, 0xff, 0xfe, 0xfb, 0xef, 0xbe, 0x00, 0x00, 0x10,
+0x08, 0x00, 0x01, 0x84, 0x03, 0x31, 0x83, 0xfc, 0x0f, 0xc7, 0xcf, 0xfb, 0xe7, 0xfd, 0xf7, 0xc0,
+0x3f, 0xf7, 0xfe, 0xfb, 0xef, 0x9e, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x8c, 0x03, 0x30, 0xc3,
+0xfc, 0x0f, 0x87, 0xc7, 0xe3, 0xe3, 0xf1, 0xf3, 0xc0, 0x3d, 0xe3, 0xfe, 0xfb, 0xef, 0x9e, 0x00,
+0x00, 0x10, 0x10, 0x00, 0x01, 0x8c, 0x01, 0x30, 0x67, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00, 0x88, 0x01,
+0x10, 0x66, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x20, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80,
+0x00, 0x00, 0x00, 0x03, 0xbc, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x40, 0x00, 0x01, 0x98, 0x0e, 0x70,
+0x0c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x3f, 0x20, 0x12, 0x58, 0x48, 0x89, 0x82, 0x00, 0x81, 0x40,
+0x01, 0x81, 0x11, 0x54, 0x00, 0xc0, 0x0f, 0x08, 0x70, 0x1c, 0x0e, 0x00, 0xc0, 0x00, 0x00, 0x3f,
+0x32, 0x1a, 0x7a, 0x49, 0xab, 0xce, 0x00, 0x21, 0x05, 0x1f, 0x82, 0x00, 0xc0, 0x00, 0xc7, 0xff,
+0x10, 0xbc, 0x30, 0x0a, 0x31, 0x80, 0x00, 0x20, 0x7f, 0x36, 0x92, 0x32, 0x4f, 0xa0, 0x48, 0x00,
+0x01, 0x10, 0x82, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x11, 0x9c, 0x30, 0x06, 0x31, 0x80, 0x00,
+0x20, 0x3f, 0x3e, 0x9a, 0x32, 0x6f, 0xa2, 0x58, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78,
+0x07, 0xfc, 0x31, 0x8c, 0x66, 0x26, 0x33, 0x04, 0x00, 0x00, 0x1e, 0x2a, 0x1a, 0x32, 0x4e, 0xa3,
+0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0x07, 0x0c, 0x33, 0x8c, 0x66, 0x2e, 0x33,
+0xc4, 0x00, 0x00, 0x00, 0x22, 0x82, 0x12, 0x48, 0xb9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x8c,
+0xfd, 0xcc, 0xc3, 0xfc, 0x31, 0x8c, 0x6e, 0x5f, 0x35, 0x80, 0x00, 0x00, 0xbf, 0x22, 0x92, 0x32,
+0x48, 0xb8, 0xd0, 0x00, 0x00, 0x03, 0x9d, 0x99, 0xdc, 0xcf, 0xc0, 0xc7, 0xfc, 0x3d, 0x8c, 0xee,
+0x43, 0x39, 0x88, 0x00, 0x00, 0xbf, 0x22, 0x9a, 0x32, 0x58, 0xa2, 0x50, 0x00, 0x00, 0x03, 0x9f,
+0x9b, 0xfd, 0xc6, 0xc0, 0xc0, 0x7f, 0x39, 0x8c, 0xfe, 0x41, 0xb1, 0xf0, 0x00, 0x00, 0xe1, 0x22,
+0x52, 0x32, 0x58, 0xa2, 0x58, 0x00, 0x00, 0x03, 0x87, 0x1f, 0xfd, 0x86, 0xe0, 0xc0, 0x0f, 0x01,
+0x8d, 0x33, 0xc1, 0xb0, 0x60, 0x00, 0x00, 0xff, 0x22, 0x10, 0x30, 0x58, 0xa3, 0x4e, 0x00, 0x00,
+0x03, 0x86, 0x1f, 0xfd, 0xbe, 0x78, 0xc0, 0x00, 0x01, 0x8d, 0x03, 0x80, 0x80, 0x00, 0x00, 0x00,
+0x7e, 0x22, 0x62, 0x91, 0x88, 0xb9, 0xc6, 0x00, 0x00, 0x02, 0x9f, 0x9e, 0xed, 0xfe, 0x3c, 0xc3,
+0xfc, 0x01, 0x8e, 0x01, 0x00, 0x88, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0x9f, 0x9c, 0xed, 0xf0, 0x0c, 0xc3, 0xfc, 0x01, 0x84, 0x00, 0x00, 0xbc, 0x08,
+0x18, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x1c, 0xed, 0x80,
+0x8e, 0xc7, 0xfe, 0x01, 0xf8, 0x00, 0x00, 0xbd, 0xdc, 0xc9, 0x9c, 0x3f, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0x9c, 0xcd, 0xc4, 0xce, 0xc6, 0x06, 0x01, 0x8b, 0xaa, 0x80,
+0xb5, 0xfd, 0xfb, 0xdc, 0x1c, 0x06, 0x06, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x88,
+0xcc, 0xfc, 0xfe, 0xc7, 0xfc, 0x03, 0x89, 0x6f, 0x00, 0xb1, 0xf5, 0xeb, 0xd4, 0x0f, 0x0f, 0xc0,
+0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x00, 0x44, 0x78, 0x7c, 0x83, 0xfc, 0x04, 0x81,
+0x6b, 0x21, 0x3d, 0x9d, 0x9b, 0xd8, 0x3f, 0x14, 0x80, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+0x86, 0x00, 0x00, 0x00, 0x30, 0x01, 0xf8, 0x0c, 0x81, 0x6b, 0x31, 0x35, 0xbd, 0xbb, 0x4e, 0x3f,
+0x07, 0x04, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+0x09, 0x81, 0x6f, 0x23, 0x35, 0xb5, 0xbb, 0xd6, 0x00, 0x02, 0x82, 0xa4, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x03, 0x9f, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x01, 0x4e, 0xa2, 0x3d, 0xbd, 0xfb,
+0xdc, 0x37, 0x19, 0xe6, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9f, 0x80, 0x00, 0x00, 0x09,
+0xe7, 0xfc, 0x0f, 0x00, 0x00, 0x1c, 0x10, 0x10, 0x00, 0x88, 0x23, 0x26, 0x20, 0xa4, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x08, 0x40, 0x87, 0xfc, 0x0e, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x7f, 0x08, 0x27, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00,
+0x08, 0x08, 0xe3, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x45, 0x64,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x80, 0x01, 0x08, 0x08, 0xa0, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x01, 0x84, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f,
+0x00, 0x00, 0x40, 0x08, 0x23, 0xfc, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06,
+0x07, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9d, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xfc, 0x24,
+0x48, 0x00, 0x08, 0x22, 0x23, 0x02, 0x06, 0x3f, 0x18, 0x04, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x8f, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xfc, 0x24, 0x88, 0x44, 0x2a, 0x20, 0xa0, 0x0a, 0x0e,
+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x80, 0x00, 0x00, 0x00, 0x06,
+0x64, 0x26, 0x6c, 0xcc, 0x2c, 0x30, 0xb3, 0x14, 0x06, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x80, 0x80, 0x00, 0x00, 0x00, 0xe7, 0xfe, 0x24, 0x28, 0x40, 0xa8, 0x22, 0xa1,
+0x10, 0x06, 0x3f, 0x30, 0x41, 0xde, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xe3, 0xbc, 0x06, 0x48, 0x00, 0x40, 0x12, 0x20, 0x00, 0x06, 0x36, 0x30, 0x82, 0x12, 0x94,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0xe1, 0xbc, 0x00, 0x40, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x02, 0x00, 0x28, 0xa2, 0x50, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80,
+0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3f, 0x25, 0xa2,
+0x52, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0xe7, 0xfc, 0x00, 0x00,
+0x00, 0x00, 0x35, 0xd5, 0xd6, 0xa7, 0x3f, 0x25, 0x21, 0xcc, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x18, 0x80, 0x00, 0x00, 0x01, 0xe7, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfd, 0xdb, 0xe6, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x27, 0xfc,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x90, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x06, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x37, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0e, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3f, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfc, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
+0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00
+};
+
+void drawImage(int x, int y, int width, int height, const unsigned char *image) {
+ int byteWidth = (width + 7) / 8; // Number of bytes in a row
+ for (int j = 0; j < height; j++) {
+ for (int i = 0; i < width; i++) {
+ if (pgm_read_byte(image + j * byteWidth + i / 8) & (128 >> (i % 8))) {
+ paint.DrawPixel(x + i, y + j, COLORED);
+ } else {
+ paint.DrawPixel(x + i, y + j, UNCOLORED);
+ }
+ }
+ }
+}
+
+void setup() {
+ Serial.begin(115200);
+
+ epd.LDirInit();
+ epd.Clear(); // clears whole screen to white
+ paint.SetRotate(ROTATE_270); //rotate screen
+ paint.SetWidth(200);
+ paint.SetHeight(40);
+ //wifilogo
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 200, 180, thankyoulogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, 200-40, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 200, 180, thankyoulogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, 200-80, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 200, 180, thankyoulogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, 200-120, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 200, 180, thankyoulogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, 200-160, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 200, 180, thankyoulogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, 200, paint.GetWidth(), paint.GetHeight());
+
+ epd.DisplayFrame();
+}
+
+
+void loop()
+{
+
+}
\ No newline at end of file
diff --git a/Display_code/epd1in54_V2/epdif.cpp b/Display_code/epd1in54_V2/epdif.cpp
new file mode 100644
index 0000000..b1f89c9
--- /dev/null
+++ b/Display_code/epd1in54_V2/epdif.cpp
@@ -0,0 +1,68 @@
+/**
+ * @filename : epdif.cpp
+ * @brief : Implements EPD interface functions
+ * Users have to implement all the functions in epdif.cpp
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare August 10 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 "epdif.h"
+#include
+
+EpdIf::EpdIf() {
+};
+
+EpdIf::~EpdIf() {
+};
+
+void EpdIf::DigitalWrite(int pin, int value) {
+ digitalWrite(pin, value);
+}
+
+int EpdIf::DigitalRead(int pin) {
+ return digitalRead(pin);
+}
+
+void EpdIf::DelayMs(unsigned int delaytime) {
+ delay(delaytime);
+}
+
+void EpdIf::SpiTransfer(unsigned char data) {
+ digitalWrite(CS_PIN, LOW);
+ SPI.transfer(data);
+ digitalWrite(CS_PIN, HIGH);
+}
+
+int EpdIf::IfInit(void) {
+ pinMode(CS_PIN, OUTPUT);
+ pinMode(RST_PIN, OUTPUT);
+ pinMode(DC_PIN, OUTPUT);
+ pinMode(BUSY_PIN, INPUT);
+
+ pinMode(PWR_PIN, OUTPUT);
+ DigitalWrite(PWR_PIN, 1);
+
+ SPI.begin();
+ SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+ return 0;
+}
+
diff --git a/Display_code/epd1in54_V2/epdif.h b/Display_code/epd1in54_V2/epdif.h
new file mode 100644
index 0000000..be06092
--- /dev/null
+++ b/Display_code/epd1in54_V2/epdif.h
@@ -0,0 +1,52 @@
+/**
+ * @filename : epdif.h
+ * @brief : Header file of epdif.cpp providing EPD interface functions
+ * Users have to implement all the functions in epdif.cpp
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare August 10 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 EPDIF_H
+#define EPDIF_H
+
+#include
+
+// Pin definition
+#define RST_PIN D2
+#define DC_PIN D0
+#define CS_PIN D8
+#define BUSY_PIN D7
+#define PWR_PIN D5
+
+class EpdIf {
+public:
+ EpdIf(void);
+ ~EpdIf(void);
+
+ static int IfInit(void);
+ static void DigitalWrite(int pin, int value);
+ static int DigitalRead(int pin);
+ static void DelayMs(unsigned int delaytime);
+ static void SpiTransfer(unsigned char data);
+};
+
+#endif
diff --git a/Display_code/epd1in54_V2/epdpaint.cpp b/Display_code/epd1in54_V2/epdpaint.cpp
new file mode 100644
index 0000000..1dfe0d7
--- /dev/null
+++ b/Display_code/epd1in54_V2/epdpaint.cpp
@@ -0,0 +1,319 @@
+/**
+ * @filename : epdpaint.cpp
+ * @brief : Paint tools
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare September 9 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 "epdpaint.h"
+
+Paint::Paint(unsigned char* image, int width, int height) {
+ this->rotate = ROTATE_0;
+ this->image = image;
+ /* 1 byte = 8 pixels, so the width should be the multiple of 8 */
+ this->width = width % 8 ? width + 8 - (width % 8) : width;
+ this->height = height;
+}
+
+Paint::~Paint() {
+}
+
+/**
+ * @brief: clear the image
+ */
+void Paint::Clear(int colored) {
+ for (int x = 0; x < this->width; x++) {
+ for (int y = 0; y < this->height; y++) {
+ DrawAbsolutePixel(x, y, colored);
+ }
+ }
+}
+
+/**
+ * @brief: this draws a pixel by absolute coordinates.
+ * this function won't be affected by the rotate parameter.
+ */
+void Paint::DrawAbsolutePixel(int x, int y, int colored) {
+ if (x < 0 || x >= this->width || y < 0 || y >= this->height) {
+ return;
+ }
+ if (IF_INVERT_COLOR) {
+ if (colored) {
+ image[(x + y * this->width) / 8] |= 0x80 >> (x % 8);
+ } else {
+ image[(x + y * this->width) / 8] &= ~(0x80 >> (x % 8));
+ }
+ } else {
+ if (colored) {
+ image[(x + y * this->width) / 8] &= ~(0x80 >> (x % 8));
+ } else {
+ image[(x + y * this->width) / 8] |= 0x80 >> (x % 8);
+ }
+ }
+}
+
+/**
+ * @brief: Getters and Setters
+ */
+unsigned char* Paint::GetImage(void) {
+ return this->image;
+}
+
+int Paint::GetWidth(void) {
+ return this->width;
+}
+
+void Paint::SetWidth(int width) {
+ this->width = width % 8 ? width + 8 - (width % 8) : width;
+}
+
+int Paint::GetHeight(void) {
+ return this->height;
+}
+
+void Paint::SetHeight(int height) {
+ this->height = height;
+}
+
+int Paint::GetRotate(void) {
+ return this->rotate;
+}
+
+void Paint::SetRotate(int rotate){
+ this->rotate = rotate;
+}
+
+/**
+ * @brief: this draws a pixel by the coordinates
+ */
+void Paint::DrawPixel(int x, int y, int colored) {
+ int point_temp;
+ if (this->rotate == ROTATE_0) {
+ if(x < 0 || x >= this->width || y < 0 || y >= this->height) {
+ return;
+ }
+ DrawAbsolutePixel(x, y, colored);
+ } else if (this->rotate == ROTATE_90) {
+ if(x < 0 || x >= this->height || y < 0 || y >= this->width) {
+ return;
+ }
+ point_temp = x;
+ x = this->width - y;
+ y = point_temp;
+ DrawAbsolutePixel(x, y, colored);
+ } else if (this->rotate == ROTATE_180) {
+ if(x < 0 || x >= this->width || y < 0 || y >= this->height) {
+ return;
+ }
+ x = this->width - x;
+ y = this->height - y;
+ DrawAbsolutePixel(x, y, colored);
+ } else if (this->rotate == ROTATE_270) {
+ if(x < 0 || x >= this->height || y < 0 || y >= this->width) {
+ return;
+ }
+ point_temp = x;
+ x = y;
+ y = this->height - point_temp;
+ DrawAbsolutePixel(x, y, colored);
+ }
+}
+
+/**
+ * @brief: this draws a charactor on the frame buffer but not refresh
+ */
+void Paint::DrawCharAt(int x, int y, char ascii_char, sFONT* font, int colored) {
+ int i, j;
+ unsigned int char_offset = (ascii_char - ' ') * font->Height * (font->Width / 8 + (font->Width % 8 ? 1 : 0));
+ const unsigned char* ptr = &font->table[char_offset];
+
+ for (j = 0; j < font->Height; j++) {
+ for (i = 0; i < font->Width; i++) {
+ if (pgm_read_byte(ptr) & (0x80 >> (i % 8))) {
+ DrawPixel(x + i, y + j, colored);
+ }
+ if (i % 8 == 7) {
+ ptr++;
+ }
+ }
+ if (font->Width % 8 != 0) {
+ ptr++;
+ }
+ }
+}
+
+/**
+* @brief: this displays a string on the frame buffer but not refresh
+*/
+void Paint::DrawStringAt(int x, int y, const char* text, sFONT* font, int colored) {
+ const char* p_text = text;
+ unsigned int counter = 0;
+ int refcolumn = x;
+
+ /* Send the string character by character on EPD */
+ while (*p_text != 0) {
+ /* Display one character on EPD */
+ DrawCharAt(refcolumn, y, *p_text, font, colored);
+ /* Decrement the column position by 16 */
+ refcolumn += font->Width;
+ /* Point on the next character */
+ p_text++;
+ counter++;
+ }
+}
+
+/**
+* @brief: this draws a line on the frame buffer
+*/
+void Paint::DrawLine(int x0, int y0, int x1, int y1, int colored) {
+ /* Bresenham algorithm */
+ int dx = x1 - x0 >= 0 ? x1 - x0 : x0 - x1;
+ int sx = x0 < x1 ? 1 : -1;
+ int dy = y1 - y0 <= 0 ? y1 - y0 : y0 - y1;
+ int sy = y0 < y1 ? 1 : -1;
+ int err = dx + dy;
+
+ while((x0 != x1) && (y0 != y1)) {
+ DrawPixel(x0, y0 , colored);
+ if (2 * err >= dy) {
+ err += dy;
+ x0 += sx;
+ }
+ if (2 * err <= dx) {
+ err += dx;
+ y0 += sy;
+ }
+ }
+}
+
+/**
+* @brief: this draws a horizontal line on the frame buffer
+*/
+void Paint::DrawHorizontalLine(int x, int y, int line_width, int colored) {
+ int i;
+ for (i = x; i < x + line_width; i++) {
+ DrawPixel(i, y, colored);
+ }
+}
+
+/**
+* @brief: this draws a vertical line on the frame buffer
+*/
+void Paint::DrawVerticalLine(int x, int y, int line_height, int colored) {
+ int i;
+ for (i = y; i < y + line_height; i++) {
+ DrawPixel(x, i, colored);
+ }
+}
+
+/**
+* @brief: this draws a rectangle
+*/
+void Paint::DrawRectangle(int x0, int y0, int x1, int y1, int colored) {
+ int min_x, min_y, max_x, max_y;
+ min_x = x1 > x0 ? x0 : x1;
+ max_x = x1 > x0 ? x1 : x0;
+ min_y = y1 > y0 ? y0 : y1;
+ max_y = y1 > y0 ? y1 : y0;
+
+ DrawHorizontalLine(min_x, min_y, max_x - min_x + 1, colored);
+ DrawHorizontalLine(min_x, max_y, max_x - min_x + 1, colored);
+ DrawVerticalLine(min_x, min_y, max_y - min_y + 1, colored);
+ DrawVerticalLine(max_x, min_y, max_y - min_y + 1, colored);
+}
+
+/**
+* @brief: this draws a filled rectangle
+*/
+void Paint::DrawFilledRectangle(int x0, int y0, int x1, int y1, int colored) {
+ int min_x, min_y, max_x, max_y;
+ int i;
+ min_x = x1 > x0 ? x0 : x1;
+ max_x = x1 > x0 ? x1 : x0;
+ min_y = y1 > y0 ? y0 : y1;
+ max_y = y1 > y0 ? y1 : y0;
+
+ for (i = min_x; i <= max_x; i++) {
+ DrawVerticalLine(i, min_y, max_y - min_y + 1, colored);
+ }
+}
+
+/**
+* @brief: this draws a circle
+*/
+void Paint::DrawCircle(int x, int y, int radius, int colored) {
+ /* Bresenham algorithm */
+ int x_pos = -radius;
+ int y_pos = 0;
+ int err = 2 - 2 * radius;
+ int e2;
+
+ do {
+ DrawPixel(x - x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y - y_pos, colored);
+ DrawPixel(x - x_pos, y - y_pos, colored);
+ e2 = err;
+ if (e2 <= y_pos) {
+ err += ++y_pos * 2 + 1;
+ if(-x_pos == y_pos && e2 <= x_pos) {
+ e2 = 0;
+ }
+ }
+ if (e2 > x_pos) {
+ err += ++x_pos * 2 + 1;
+ }
+ } while (x_pos <= 0);
+}
+
+/**
+* @brief: this draws a filled circle
+*/
+void Paint::DrawFilledCircle(int x, int y, int radius, int colored) {
+ /* Bresenham algorithm */
+ int x_pos = -radius;
+ int y_pos = 0;
+ int err = 2 - 2 * radius;
+ int e2;
+
+ do {
+ DrawPixel(x - x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y - y_pos, colored);
+ DrawPixel(x - x_pos, y - y_pos, colored);
+ DrawHorizontalLine(x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored);
+ DrawHorizontalLine(x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored);
+ e2 = err;
+ if (e2 <= y_pos) {
+ err += ++y_pos * 2 + 1;
+ if(-x_pos == y_pos && e2 <= x_pos) {
+ e2 = 0;
+ }
+ }
+ if(e2 > x_pos) {
+ err += ++x_pos * 2 + 1;
+ }
+ } while(x_pos <= 0);
+}
+
+/* END OF FILE */
diff --git a/Display_code/epd1in54_V2/epdpaint.h b/Display_code/epd1in54_V2/epdpaint.h
new file mode 100644
index 0000000..17b366f
--- /dev/null
+++ b/Display_code/epd1in54_V2/epdpaint.h
@@ -0,0 +1,75 @@
+/**
+ * @filename : epdpaint.h
+ * @brief : Header file for epdpaint.cpp
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare July 28 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 EPDPAINT_H
+#define EPDPAINT_H
+
+// Display orientation
+#define ROTATE_0 0
+#define ROTATE_90 1
+#define ROTATE_180 2
+#define ROTATE_270 3
+
+// Color inverse. 1 or 0 = set or reset a bit if set a colored pixel
+#define IF_INVERT_COLOR 1
+
+#include "fonts.h"
+
+class Paint {
+public:
+ Paint(unsigned char* image, int width, int height);
+ ~Paint();
+ void Clear(int colored);
+ int GetWidth(void);
+ void SetWidth(int width);
+ int GetHeight(void);
+ void SetHeight(int height);
+ int GetRotate(void);
+ void SetRotate(int rotate);
+ unsigned char* GetImage(void);
+ void DrawAbsolutePixel(int x, int y, int colored);
+ void DrawPixel(int x, int y, int colored);
+ void DrawCharAt(int x, int y, char ascii_char, sFONT* font, int colored);
+ void DrawStringAt(int x, int y, const char* text, sFONT* font, int colored);
+ void DrawLine(int x0, int y0, int x1, int y1, int colored);
+ void DrawHorizontalLine(int x, int y, int width, int colored);
+ void DrawVerticalLine(int x, int y, int height, int colored);
+ void DrawRectangle(int x0, int y0, int x1, int y1, int colored);
+ void DrawFilledRectangle(int x0, int y0, int x1, int y1, int colored);
+ void DrawCircle(int x, int y, int radius, int colored);
+ void DrawFilledCircle(int x, int y, int radius, int colored);
+
+private:
+ unsigned char* image;
+ int width;
+ int height;
+ int rotate;
+};
+
+#endif
+
+/* END OF FILE */
+
diff --git a/Display_code/epd1in54_V2/font12.c b/Display_code/epd1in54_V2/font12.c
new file mode 100644
index 0000000..9963fe3
--- /dev/null
+++ b/Display_code/epd1in54_V2/font12.c
@@ -0,0 +1,1385 @@
+/**
+ ******************************************************************************
+ * @file Font12.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text Font12 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+//
+// Font data for Courier New 12pt
+//
+
+const uint8_t Font12_Table[] PROGMEM =
+{
+ // @0 ' ' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @12 '!' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @24 '"' (7 pixels wide)
+ 0x00, //
+ 0x6C, // ## ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @36 '#' (7 pixels wide)
+ 0x00, //
+ 0x14, // # #
+ 0x14, // # #
+ 0x28, // # #
+ 0x7C, // #####
+ 0x28, // # #
+ 0x7C, // #####
+ 0x28, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+
+ // @48 '$' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x38, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x38, // ###
+ 0x48, // # #
+ 0x70, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @60 '%' (7 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x0C, // ##
+ 0x70, // ###
+ 0x08, // #
+ 0x14, // # #
+ 0x08, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @72 '&' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x54, // # # #
+ 0x48, // # #
+ 0x34, // ## #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @84 ''' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @96 '(' (7 pixels wide)
+ 0x00, //
+ 0x08, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x08, // #
+ 0x00, //
+
+ // @108 ')' (7 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+
+ // @120 '*' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x7C, // #####
+ 0x10, // #
+ 0x28, // # #
+ 0x28, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @132 '+' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0xFE, // #######
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @144 ',' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x10, // #
+ 0x30, // ##
+ 0x20, // #
+ 0x00, //
+
+ // @156 '-' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @168 '.' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @180 '/' (7 pixels wide)
+ 0x00, //
+ 0x04, // #
+ 0x04, // #
+ 0x08, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+ 0x00, //
+
+ // @192 '0' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @204 '1' (7 pixels wide)
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @216 '2' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x04, // #
+ 0x08, // #
+ 0x10, // #
+ 0x20, // #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @228 '3' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x04, // #
+ 0x18, // ##
+ 0x04, // #
+ 0x04, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @240 '4' (7 pixels wide)
+ 0x00, //
+ 0x0C, // ##
+ 0x14, // # #
+ 0x14, // # #
+ 0x24, // # #
+ 0x44, // # #
+ 0x7E, // ######
+ 0x04, // #
+ 0x0E, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @252 '5' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x20, // #
+ 0x20, // #
+ 0x38, // ###
+ 0x04, // #
+ 0x04, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @264 '6' (7 pixels wide)
+ 0x00, //
+ 0x1C, // ###
+ 0x20, // #
+ 0x40, // #
+ 0x78, // ####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @276 '7' (7 pixels wide)
+ 0x00, //
+ 0x7C, // #####
+ 0x44, // # #
+ 0x04, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @288 '8' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @300 '9' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3C, // ####
+ 0x04, // #
+ 0x08, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @312 ':' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @324 ';' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x18, // ##
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x30, // ##
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @336 '<' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x0C, // ##
+ 0x10, // #
+ 0x60, // ##
+ 0x80, // #
+ 0x60, // ##
+ 0x10, // #
+ 0x0C, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @348 '=' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x7C, // #####
+ 0x00, //
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @360 '>' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xC0, // ##
+ 0x20, // #
+ 0x18, // ##
+ 0x04, // #
+ 0x18, // ##
+ 0x20, // #
+ 0xC0, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @372 '?' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x24, // # #
+ 0x04, // #
+ 0x08, // #
+ 0x10, // #
+ 0x00, //
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @384 '@' (7 pixels wide)
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x4C, // # ##
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x4C, // # ##
+ 0x40, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @396 'A' (7 pixels wide)
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x28, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x7C, // #####
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @408 'B' (7 pixels wide)
+ 0x00, //
+ 0xF8, // #####
+ 0x44, // # #
+ 0x44, // # #
+ 0x78, // ####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @420 'C' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @432 'D' (7 pixels wide)
+ 0x00, //
+ 0xF0, // ####
+ 0x48, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @444 'E' (7 pixels wide)
+ 0x00, //
+ 0xFC, // ######
+ 0x44, // # #
+ 0x50, // # #
+ 0x70, // ###
+ 0x50, // # #
+ 0x40, // #
+ 0x44, // # #
+ 0xFC, // ######
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @456 'F' (7 pixels wide)
+ 0x00, //
+ 0x7E, // ######
+ 0x22, // # #
+ 0x28, // # #
+ 0x38, // ###
+ 0x28, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @468 'G' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x4E, // # ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @480 'H' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @492 'I' (7 pixels wide)
+ 0x00, //
+ 0x7C, // #####
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @504 'J' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @516 'K' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x48, // # #
+ 0x50, // # #
+ 0x70, // ###
+ 0x48, // # #
+ 0x44, // # #
+ 0xE6, // ### ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @528 'L' (7 pixels wide)
+ 0x00, //
+ 0x70, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x24, // # #
+ 0x24, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @540 'M' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x6C, // ## ##
+ 0x6C, // ## ##
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @552 'N' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x64, // ## #
+ 0x64, // ## #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x4C, // # ##
+ 0xEC, // ### ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @564 'O' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @576 'P' (7 pixels wide)
+ 0x00, //
+ 0x78, // ####
+ 0x24, // # #
+ 0x24, // # #
+ 0x24, // # #
+ 0x38, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @588 'Q' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x1C, // ###
+ 0x00, //
+ 0x00, //
+
+ // @600 'R' (7 pixels wide)
+ 0x00, //
+ 0xF8, // #####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x78, // ####
+ 0x48, // # #
+ 0x44, // # #
+ 0xE2, // ### #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @612 'S' (7 pixels wide)
+ 0x00, //
+ 0x34, // ## #
+ 0x4C, // # ##
+ 0x40, // #
+ 0x38, // ###
+ 0x04, // #
+ 0x04, // #
+ 0x64, // ## #
+ 0x58, // # ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @624 'T' (7 pixels wide)
+ 0x00, //
+ 0xFE, // #######
+ 0x92, // # # #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @636 'U' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @648 'V' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @660 'W' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x28, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @672 'X' (7 pixels wide)
+ 0x00, //
+ 0xC6, // ## ##
+ 0x44, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x10, // #
+ 0x28, // # #
+ 0x44, // # #
+ 0xC6, // ## ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @684 'Y' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @696 'Z' (7 pixels wide)
+ 0x00, //
+ 0x7C, // #####
+ 0x44, // # #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @708 '[' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @720 '\' (7 pixels wide)
+ 0x00, //
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x00, //
+ 0x00, //
+
+ // @732 ']' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @744 '^' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x28, // # #
+ 0x44, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @756 '_' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xFE, // #######
+
+ // @768 '`' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x08, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @780 'a' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x3C, // ####
+ 0x44, // # #
+ 0x44, // # #
+ 0x3E, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @792 'b' (7 pixels wide)
+ 0x00, //
+ 0xC0, // ##
+ 0x40, // #
+ 0x58, // # ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @804 'c' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @816 'd' (7 pixels wide)
+ 0x00, //
+ 0x0C, // ##
+ 0x04, // #
+ 0x34, // ## #
+ 0x4C, // # ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3E, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @828 'e' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x7C, // #####
+ 0x40, // #
+ 0x40, // #
+ 0x3C, // ####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @840 'f' (7 pixels wide)
+ 0x00, //
+ 0x1C, // ###
+ 0x20, // #
+ 0x7C, // #####
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @852 'g' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x36, // ## ##
+ 0x4C, // # ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3C, // ####
+ 0x04, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @864 'h' (7 pixels wide)
+ 0x00, //
+ 0xC0, // ##
+ 0x40, // #
+ 0x58, // # ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @876 'i' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x70, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @888 'j' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x78, // ####
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x70, // ###
+ 0x00, //
+
+ // @900 'k' (7 pixels wide)
+ 0x00, //
+ 0xC0, // ##
+ 0x40, // #
+ 0x5C, // # ###
+ 0x48, // # #
+ 0x70, // ###
+ 0x50, // # #
+ 0x48, // # #
+ 0xDC, // ## ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @912 'l' (7 pixels wide)
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @924 'm' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xE8, // ### #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0xFE, // #######
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @936 'n' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @948 'o' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @960 'p' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x78, // ####
+ 0x40, // #
+ 0xE0, // ###
+ 0x00, //
+
+ // @972 'q' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x36, // ## ##
+ 0x4C, // # ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3C, // ####
+ 0x04, // #
+ 0x0E, // ###
+ 0x00, //
+
+ // @984 'r' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x6C, // ## ##
+ 0x30, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @996 's' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x38, // ###
+ 0x04, // #
+ 0x44, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1008 't' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x7C, // #####
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x22, // # #
+ 0x1C, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1020 'u' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xCC, // ## ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x4C, // # ##
+ 0x36, // ## ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1032 'v' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1044 'w' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x28, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1056 'x' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xCC, // ## ##
+ 0x48, // # #
+ 0x30, // ##
+ 0x30, // ##
+ 0x48, // # #
+ 0xCC, // ## ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1068 'y' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x24, // # #
+ 0x28, // # #
+ 0x18, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x78, // ####
+ 0x00, //
+
+ // @1080 'z' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x7C, // #####
+ 0x48, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1092 '{' (7 pixels wide)
+ 0x00, //
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x00, //
+
+ // @1104 '|' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @1116 '}' (7 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x00, //
+
+ // @1128 '~' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x24, // # #
+ 0x58, // # ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+};
+
+sFONT Font12 = {
+ Font12_Table,
+ 7, /* Width */
+ 12, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Display_code/epd1in54_V2/font16.c b/Display_code/epd1in54_V2/font16.c
new file mode 100644
index 0000000..a36db6e
--- /dev/null
+++ b/Display_code/epd1in54_V2/font16.c
@@ -0,0 +1,1765 @@
+/**
+ ******************************************************************************
+ * @file font16.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text font16 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+//
+// Font data for Courier New 12pt
+//
+
+const uint8_t Font16_Table[] PROGMEM =
+{
+ // @0 ' ' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @32 '!' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @64 '"' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1D, 0xC0, // ### ###
+ 0x1D, 0xC0, // ### ###
+ 0x08, 0x80, // # #
+ 0x08, 0x80, // # #
+ 0x08, 0x80, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @96 '#' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x3F, 0xC0, // ########
+ 0x1B, 0x00, // ## ##
+ 0x3F, 0xC0, // ########
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @128 '$' (11 pixels wide)
+ 0x04, 0x00, // #
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x38, 0x00, // ###
+ 0x1E, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x03, 0x80, // ###
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @160 '%' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x24, 0x00, // # #
+ 0x24, 0x00, // # #
+ 0x18, 0xC0, // ## ##
+ 0x07, 0x80, // ####
+ 0x1E, 0x00, // ####
+ 0x31, 0x80, // ## ##
+ 0x02, 0x40, // # #
+ 0x02, 0x40, // # #
+ 0x01, 0x80, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @192 '&' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x1D, 0x80, // ### ##
+ 0x37, 0x00, // ## ###
+ 0x33, 0x00, // ## ##
+ 0x1D, 0x80, // ### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @224 ''' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x02, 0x00, // #
+ 0x02, 0x00, // #
+ 0x02, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @256 '(' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0E, 0x00, // ###
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0E, 0x00, // ###
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @288 ')' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x1C, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @320 '*' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xC0, // ########
+ 0x0F, 0x00, // ####
+ 0x1F, 0x80, // ######
+ 0x19, 0x80, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @352 '+' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x3F, 0x80, // #######
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @384 ',' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x0C, 0x00, // ##
+ 0x08, 0x00, // #
+ 0x08, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @416 '-' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @448 '.' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @480 '/' (11 pixels wide)
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @512 '0' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0E, 0x00, // ###
+ 0x1B, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @544 '1' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x3E, 0x00, // #####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @576 '2' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x19, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @608 '3' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x61, 0x80, // ## ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x03, 0x80, // ###
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x61, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @640 '4' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x0F, 0x00, // ####
+ 0x0B, 0x00, // # ##
+ 0x1B, 0x00, // ## ##
+ 0x13, 0x00, // # ##
+ 0x33, 0x00, // ## ##
+ 0x3F, 0x80, // #######
+ 0x03, 0x00, // ##
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @672 '5' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x11, 0x80, // # ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x21, 0x80, // # ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @704 '6' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x1C, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x00, // ## ###
+ 0x39, 0x80, // ### ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x0F, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @736 '7' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x43, 0x00, // # ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @768 '8' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @800 '9' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x33, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0x80, // ### ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x07, 0x00, // ###
+ 0x3C, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @832 ':' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @864 ';' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x08, 0x00, // #
+ 0x08, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @896 '<' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0xC0, // ##
+ 0x03, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x18, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x03, 0x00, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @928 '=' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xC0, // #########
+ 0x00, 0x00, //
+ 0x7F, 0xC0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @960 '>' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x60, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x03, 0x00, // ##
+ 0x00, 0xC0, // ##
+ 0x03, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x18, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @992 '?' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x01, 0x80, // ##
+ 0x07, 0x00, // ###
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1024 '@' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0E, 0x00, // ###
+ 0x11, 0x00, // # #
+ 0x21, 0x00, // # #
+ 0x21, 0x00, // # #
+ 0x27, 0x00, // # ###
+ 0x29, 0x00, // # # #
+ 0x29, 0x00, // # # #
+ 0x27, 0x00, // # ###
+ 0x20, 0x00, // #
+ 0x11, 0x00, // # #
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1056 'A' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x0F, 0x00, // ####
+ 0x09, 0x00, // # #
+ 0x19, 0x80, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x1F, 0x80, // ######
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x79, 0xE0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1088 'B' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1120 'C' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x40, // ##### #
+ 0x30, 0xC0, // ## ##
+ 0x60, 0x40, // ## #
+ 0x60, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x60, 0x40, // ## #
+ 0x30, 0x80, // ## #
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1152 'D' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1184 'E' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x30, 0x80, // ## #
+ 0x30, 0x80, // ## #
+ 0x32, 0x00, // ## #
+ 0x3E, 0x00, // #####
+ 0x32, 0x00, // ## #
+ 0x30, 0x80, // ## #
+ 0x30, 0x80, // ## #
+ 0x7F, 0x80, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1216 'F' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xC0, // #########
+ 0x30, 0x40, // ## #
+ 0x30, 0x40, // ## #
+ 0x32, 0x00, // ## #
+ 0x3E, 0x00, // #####
+ 0x32, 0x00, // ## #
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7C, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1248 'G' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1E, 0x80, // #### #
+ 0x31, 0x80, // ## ##
+ 0x60, 0x80, // ## #
+ 0x60, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x67, 0xC0, // ## #####
+ 0x61, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1280 'H' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x80, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1312 'I' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xC0, // ########
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1344 'J' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xC0, // #######
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x63, 0x00, // ## ##
+ 0x63, 0x00, // ## ##
+ 0x63, 0x00, // ## ##
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1376 'K' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x33, 0x00, // ## ##
+ 0x36, 0x00, // ## ##
+ 0x3C, 0x00, // ####
+ 0x3E, 0x00, // #####
+ 0x33, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x79, 0xC0, // #### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1408 'L' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7E, 0x00, // ######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x40, // ## #
+ 0x18, 0x40, // ## #
+ 0x18, 0x40, // ## #
+ 0x7F, 0xC0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1440 'M' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xE0, 0xE0, // ### ###
+ 0x60, 0xC0, // ## ##
+ 0x71, 0xC0, // ### ###
+ 0x7B, 0xC0, // #### ####
+ 0x6A, 0xC0, // ## # # ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x64, 0xC0, // ## # ##
+ 0x60, 0xC0, // ## ##
+ 0xFB, 0xE0, // ##### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1472 'N' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x73, 0xC0, // ### ####
+ 0x31, 0x80, // ## ##
+ 0x39, 0x80, // ### ##
+ 0x3D, 0x80, // #### ##
+ 0x35, 0x80, // ## # ##
+ 0x37, 0x80, // ## ####
+ 0x33, 0x80, // ## ###
+ 0x31, 0x80, // ## ##
+ 0x79, 0x80, // #### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1504 'O' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1536 'P' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7E, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1568 'Q' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x0C, 0xC0, // ## ##
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1600 'R' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3E, 0x00, // #####
+ 0x33, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7C, 0xE0, // ##### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1632 'S' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x38, 0x00, // ###
+ 0x1F, 0x00, // #####
+ 0x03, 0x80, // ###
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1664 'T' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x4C, 0x80, // # ## #
+ 0x4C, 0x80, // # ## #
+ 0x4C, 0x80, // # ## #
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1696 'U' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1728 'V' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0A, 0x00, // # #
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1760 'W' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xFB, 0xE0, // ##### #####
+ 0x60, 0xC0, // ## ##
+ 0x64, 0xC0, // ## # ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x2A, 0x80, // # # # #
+ 0x3B, 0x80, // ### ###
+ 0x3B, 0x80, // ### ###
+ 0x31, 0x80, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1792 'X' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x1B, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1824 'Y' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x79, 0xE0, // #### ####
+ 0x30, 0xC0, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x0F, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1856 'Z' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x21, 0x80, // # ##
+ 0x23, 0x00, // # ##
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x0C, 0x00, // ##
+ 0x18, 0x80, // ## #
+ 0x30, 0x80, // ## #
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1888 '[' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1920 '\' (11 pixels wide)
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1952 ']' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1E, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1984 '^' (11 pixels wide)
+ 0x04, 0x00, // #
+ 0x0A, 0x00, // # #
+ 0x0A, 0x00, // # #
+ 0x11, 0x00, // # #
+ 0x20, 0x80, // # #
+ 0x20, 0x80, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2016 '_' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xFF, 0xE0, // ###########
+
+ // @2048 '`' (11 pixels wide)
+ 0x08, 0x00, // #
+ 0x04, 0x00, // #
+ 0x02, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2080 'a' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0xC0, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2112 'b' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x00, // ## ###
+ 0x39, 0x80, // ### ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x39, 0x80, // ### ##
+ 0x77, 0x00, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2144 'c' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1E, 0x80, // #### #
+ 0x31, 0x80, // ## ##
+ 0x60, 0x80, // ## #
+ 0x60, 0x00, // ##
+ 0x60, 0x80, // ## #
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2176 'd' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x1D, 0x80, // ### ##
+ 0x33, 0x80, // ## ###
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0xC0, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2208 'e' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x7F, 0xC0, // #########
+ 0x60, 0x00, // ##
+ 0x30, 0xC0, // ## ##
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2240 'f' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0xE0, // ######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0x80, // #######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2272 'g' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1D, 0xC0, // ### ###
+ 0x33, 0x80, // ## ###
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0x80, // ### ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2304 'h' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x00, // ## ###
+ 0x39, 0x80, // ### ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2336 'i' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2368 'j' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2400 'k' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x80, // ## ####
+ 0x36, 0x00, // ## ##
+ 0x3C, 0x00, // ####
+ 0x3C, 0x00, // ####
+ 0x36, 0x00, // ## ##
+ 0x33, 0x00, // ## ##
+ 0x77, 0xC0, // ### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2432 'l' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2464 'm' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x76, 0xE0, // ### ## ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2496 'n' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x77, 0x00, // ### ###
+ 0x39, 0x80, // ### ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2528 'o' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2560 'p' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x77, 0x00, // ### ###
+ 0x39, 0x80, // ### ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x39, 0x80, // ### ##
+ 0x37, 0x00, // ## ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7C, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2592 'q' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1D, 0xC0, // ### ###
+ 0x33, 0x80, // ## ###
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0x80, // ### ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2624 'r' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0x80, // #### ###
+ 0x1C, 0xC0, // ### ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2656 's' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x3C, 0x00, // ####
+ 0x1F, 0x00, // #####
+ 0x03, 0x80, // ###
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2688 't' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x7F, 0x00, // #######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x80, // ## #
+ 0x0F, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2720 'u' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x73, 0x80, // ### ###
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0xC0, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2752 'v' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2784 'w' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xF1, 0xE0, // #### ####
+ 0x60, 0xC0, // ## ##
+ 0x64, 0xC0, // ## # ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x3B, 0x80, // ### ###
+ 0x3B, 0x80, // ### ###
+ 0x31, 0x80, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2816 'x' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x1B, 0x00, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2848 'y' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x79, 0xE0, // #### ####
+ 0x30, 0xC0, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x0B, 0x00, // # ##
+ 0x0F, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2880 'z' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x21, 0x80, // # ##
+ 0x03, 0x00, // ##
+ 0x0E, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x30, 0x80, // ## #
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2912 '{' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2944 '|' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2976 '}' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3008 '~' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x24, 0x80, // # # #
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+};
+
+sFONT Font16 = {
+ Font16_Table,
+ 11, /* Width */
+ 16, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Display_code/epd1in54_V2/font20.c b/Display_code/epd1in54_V2/font20.c
new file mode 100644
index 0000000..49c8e14
--- /dev/null
+++ b/Display_code/epd1in54_V2/font20.c
@@ -0,0 +1,2143 @@
+/**
+ ******************************************************************************
+ * @file font20.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text font20 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+// Character bitmaps for Courier New 15pt
+const uint8_t Font20_Table[] PROGMEM =
+{
+ // @0 ' ' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @40 '!' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x02, 0x00, // #
+ 0x02, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @80 '"' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1C, 0xE0, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x08, 0x40, // # #
+ 0x08, 0x40, // # #
+ 0x08, 0x40, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @120 '#' (14 pixels wide)
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @160 '$' (14 pixels wide)
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x07, 0xE0, // ######
+ 0x0F, 0xE0, // #######
+ 0x18, 0x60, // ## ##
+ 0x18, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x0F, 0xC0, // ######
+ 0x00, 0xE0, // ###
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xC0, // #######
+ 0x1F, 0x80, // ######
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @200 '%' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1C, 0x00, // ###
+ 0x22, 0x00, // # #
+ 0x22, 0x00, // # #
+ 0x22, 0x00, // # #
+ 0x1C, 0x60, // ### ##
+ 0x01, 0xE0, // ####
+ 0x0F, 0x80, // #####
+ 0x3C, 0x00, // ####
+ 0x31, 0xC0, // ## ###
+ 0x02, 0x20, // # #
+ 0x02, 0x20, // # #
+ 0x02, 0x20, // # #
+ 0x01, 0xC0, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @240 '&' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0xE0, // #####
+ 0x0F, 0xE0, // #######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0F, 0x30, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x19, 0xE0, // ## ####
+ 0x18, 0xC0, // ## ##
+ 0x1F, 0xF0, // #########
+ 0x07, 0xB0, // #### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @280 ''' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x01, 0x00, // #
+ 0x01, 0x00, // #
+ 0x01, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @320 '(' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @360 ')' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @400 '*' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1B, 0x60, // ## ## ##
+ 0x1F, 0xE0, // ########
+ 0x07, 0x80, // ####
+ 0x07, 0x80, // ####
+ 0x0F, 0xC0, // ######
+ 0x0C, 0xC0, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @440 '+' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @480 ',' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @520 '-' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @560 '.' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @600 '/' (14 pixels wide)
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @640 '0' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x18, 0xC0, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x1F, 0xC0, // #######
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @680 '1' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x1F, 0x00, // #####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @720 '2' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x00, 0x60, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @760 '3' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x3F, 0xC0, // ########
+ 0x30, 0xE0, // ## ###
+ 0x00, 0x60, // ##
+ 0x00, 0xE0, // ###
+ 0x07, 0xC0, // #####
+ 0x07, 0xC0, // #####
+ 0x00, 0xE0, // ###
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x60, 0xE0, // ## ###
+ 0x7F, 0xC0, // #########
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @800 '4' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x01, 0xC0, // ###
+ 0x03, 0xC0, // ####
+ 0x03, 0xC0, // ####
+ 0x06, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x00, 0xC0, // ##
+ 0x03, 0xE0, // #####
+ 0x03, 0xE0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @840 '5' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xC0, // #######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1F, 0x80, // ######
+ 0x1F, 0xC0, // #######
+ 0x18, 0xE0, // ## ###
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x30, 0xE0, // ## ###
+ 0x3F, 0xC0, // ########
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @880 '6' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0xE0, // #####
+ 0x0F, 0xE0, // #######
+ 0x1E, 0x00, // ####
+ 0x18, 0x00, // ##
+ 0x38, 0x00, // ###
+ 0x37, 0x80, // ## ####
+ 0x3F, 0xC0, // ########
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x18, 0xE0, // ## ###
+ 0x1F, 0xC0, // #######
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @920 '7' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x30, 0x60, // ## ##
+ 0x00, 0x60, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @960 '8' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x38, 0xE0, // ### ###
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xC0, // #######
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x38, 0xE0, // ### ###
+ 0x1F, 0xC0, // #######
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1000 '9' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x1F, 0xC0, // #######
+ 0x38, 0xC0, // ### ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x38, 0xE0, // ### ###
+ 0x1F, 0xE0, // ########
+ 0x0F, 0x60, // #### ##
+ 0x00, 0xE0, // ###
+ 0x00, 0xC0, // ##
+ 0x03, 0xC0, // ####
+ 0x3F, 0x80, // #######
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1040 ':' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1080 ';' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x01, 0xC0, // ###
+ 0x01, 0xC0, // ###
+ 0x01, 0xC0, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1120 '<' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x30, // ##
+ 0x00, 0xF0, // ####
+ 0x03, 0xC0, // ####
+ 0x07, 0x00, // ###
+ 0x1C, 0x00, // ###
+ 0x78, 0x00, // ####
+ 0x1C, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x03, 0xC0, // ####
+ 0x00, 0xF0, // ####
+ 0x00, 0x30, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1160 '=' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xF0, // ###########
+ 0x7F, 0xF0, // ###########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xF0, // ###########
+ 0x7F, 0xF0, // ###########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1200 '>' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x30, 0x00, // ##
+ 0x3C, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x03, 0x80, // ###
+ 0x00, 0xE0, // ###
+ 0x00, 0x78, // ####
+ 0x00, 0xE0, // ###
+ 0x03, 0x80, // ###
+ 0x0F, 0x00, // ####
+ 0x3C, 0x00, // ####
+ 0x30, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1240 '?' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x00, 0x60, // ##
+ 0x01, 0xC0, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1280 '@' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x0C, 0x80, // ## #
+ 0x08, 0x40, // # #
+ 0x10, 0x40, // # #
+ 0x10, 0x40, // # #
+ 0x11, 0xC0, // # ###
+ 0x12, 0x40, // # # #
+ 0x12, 0x40, // # # #
+ 0x12, 0x40, // # # #
+ 0x11, 0xC0, // # ###
+ 0x10, 0x00, // #
+ 0x08, 0x00, // #
+ 0x08, 0x40, // # #
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1320 'A' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x1F, 0x80, // ######
+ 0x03, 0x80, // ###
+ 0x06, 0xC0, // ## ##
+ 0x06, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x30, 0x30, // ## ##
+ 0x78, 0x78, // #### ####
+ 0x78, 0x78, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1360 'B' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x3F, 0xC0, // ########
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0xE0, // ## ###
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xE0, // ########
+ 0x18, 0x70, // ## ###
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xE0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1400 'C' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB0, // #### ##
+ 0x0F, 0xF0, // ########
+ 0x1C, 0x70, // ### ###
+ 0x38, 0x30, // ### ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x38, 0x30, // ### ##
+ 0x1C, 0x70, // ### ###
+ 0x0F, 0xE0, // #######
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1440 'D' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x7F, 0xC0, // #########
+ 0x30, 0xE0, // ## ###
+ 0x30, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x70, // ## ###
+ 0x30, 0xE0, // ## ###
+ 0x7F, 0xC0, // #########
+ 0x7F, 0x80, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1480 'E' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x1F, 0x80, // ######
+ 0x1F, 0x80, // ######
+ 0x19, 0x80, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1520 'F' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x1F, 0x80, // ######
+ 0x1F, 0x80, // ######
+ 0x19, 0x80, // ## ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x3F, 0x00, // ######
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1560 'G' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB0, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x31, 0xF8, // ## ######
+ 0x31, 0xF8, // ## ######
+ 0x30, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x1F, 0xF0, // #########
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1600 'H' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1640 'I' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1680 'J' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0xF8, // #######
+ 0x03, 0xF8, // #######
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0xE0, // ## ###
+ 0x3F, 0xC0, // ########
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1720 'K' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3E, 0xF8, // ##### #####
+ 0x3E, 0xF8, // ##### #####
+ 0x18, 0xE0, // ## ###
+ 0x19, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1F, 0x00, // #####
+ 0x1D, 0x80, // ### ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3E, 0x78, // ##### ####
+ 0x3E, 0x38, // ##### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1760 'L' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x3F, 0x00, // ######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x30, // ## ##
+ 0x0C, 0x30, // ## ##
+ 0x0C, 0x30, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1800 'M' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0x78, // #### ####
+ 0x78, 0x78, // #### ####
+ 0x38, 0x70, // ### ###
+ 0x3C, 0xF0, // #### ####
+ 0x34, 0xB0, // ## # # ##
+ 0x37, 0xB0, // ## #### ##
+ 0x37, 0xB0, // ## #### ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x30, 0x30, // ## ##
+ 0x7C, 0xF8, // ##### #####
+ 0x7C, 0xF8, // ##### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1840 'N' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x39, 0xF0, // ### #####
+ 0x3D, 0xF0, // #### #####
+ 0x1C, 0x60, // ### ##
+ 0x1E, 0x60, // #### ##
+ 0x1E, 0x60, // #### ##
+ 0x1B, 0x60, // ## ## ##
+ 0x1B, 0x60, // ## ## ##
+ 0x19, 0xE0, // ## ####
+ 0x19, 0xE0, // ## ####
+ 0x18, 0xE0, // ## ###
+ 0x3E, 0xE0, // ##### ###
+ 0x3E, 0x60, // ##### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1880 'O' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x0F, 0xC0, // ######
+ 0x1C, 0xE0, // ### ###
+ 0x38, 0x70, // ### ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x0F, 0xC0, // ######
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1920 'P' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xE0, // #########
+ 0x18, 0x70, // ## ###
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xC0, // #######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x3F, 0x00, // ######
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1960 'Q' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x0F, 0xC0, // ######
+ 0x1C, 0xE0, // ### ###
+ 0x38, 0x70, // ### ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x0F, 0xC0, // ######
+ 0x07, 0x80, // ####
+ 0x07, 0xB0, // #### ##
+ 0x0F, 0xF0, // ########
+ 0x0C, 0xE0, // ## ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2000 'R' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xE0, // #########
+ 0x18, 0x70, // ## ###
+ 0x18, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xC0, // #######
+ 0x18, 0xE0, // ## ###
+ 0x18, 0x60, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x3E, 0x38, // ##### ###
+ 0x3E, 0x18, // ##### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2040 'S' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0xB0, // ##### ##
+ 0x1F, 0xF0, // #########
+ 0x38, 0x70, // ### ###
+ 0x30, 0x30, // ## ##
+ 0x38, 0x00, // ###
+ 0x1F, 0x80, // ######
+ 0x07, 0xE0, // ######
+ 0x00, 0x70, // ###
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x3F, 0xE0, // #########
+ 0x37, 0xC0, // ## #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2080 'T' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x0F, 0xC0, // ######
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2120 'U' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1C, 0xE0, // ### ###
+ 0x0F, 0xC0, // ######
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2160 'V' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2200 'W' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7C, 0x7C, // ##### #####
+ 0x7C, 0x7C, // ##### #####
+ 0x30, 0x18, // ## ##
+ 0x33, 0x98, // ## ### ##
+ 0x33, 0x98, // ## ### ##
+ 0x33, 0x98, // ## ### ##
+ 0x36, 0xD8, // ## ## ## ##
+ 0x16, 0xD0, // # ## ## #
+ 0x1C, 0x70, // ### ###
+ 0x1C, 0x70, // ### ###
+ 0x1C, 0x70, // ### ###
+ 0x18, 0x30, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2240 'X' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x0D, 0x80, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2280 'Y' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x18, 0x60, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x07, 0x80, // ####
+ 0x07, 0x80, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x0F, 0xC0, // ######
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2320 'Z' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2360 '[' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0xC0, // ####
+ 0x03, 0xC0, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0xC0, // ####
+ 0x03, 0xC0, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2400 '\' (14 pixels wide)
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2440 ']' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x0F, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2480 '^' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x02, 0x00, // #
+ 0x07, 0x00, // ###
+ 0x0D, 0x80, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x20, 0x20, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2520 '_' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xFF, 0xFC, // ##############
+ 0xFF, 0xFC, // ##############
+
+ // @2560 '`' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x04, 0x00, // #
+ 0x03, 0x00, // ##
+ 0x00, 0x80, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2600 'a' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0xC0, // ######
+ 0x1F, 0xE0, // ########
+ 0x00, 0x60, // ##
+ 0x0F, 0xE0, // #######
+ 0x1F, 0xE0, // ########
+ 0x38, 0x60, // ### ##
+ 0x30, 0xE0, // ## ###
+ 0x3F, 0xF0, // ##########
+ 0x1F, 0x70, // ##### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2640 'b' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x80, // ## ####
+ 0x3F, 0xE0, // #########
+ 0x38, 0x60, // ### ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x60, // ### ##
+ 0x7F, 0xE0, // ##########
+ 0x77, 0x80, // ### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2680 'c' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB0, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x18, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x38, 0x30, // ### ##
+ 0x1F, 0xF0, // #########
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2720 'd' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x70, // ###
+ 0x00, 0x70, // ###
+ 0x00, 0x30, // ##
+ 0x00, 0x30, // ##
+ 0x07, 0xB0, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x1F, 0xF8, // ##########
+ 0x07, 0xB8, // #### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2760 'e' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x30, 0x00, // ##
+ 0x18, 0x30, // ## ##
+ 0x1F, 0xF0, // #########
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2800 'f' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0xF0, // ######
+ 0x07, 0xF0, // #######
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2840 'g' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB8, // #### ###
+ 0x1F, 0xF8, // ##########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xF0, // #########
+ 0x07, 0xB0, // #### ##
+ 0x00, 0x30, // ##
+ 0x00, 0x70, // ###
+ 0x0F, 0xE0, // #######
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2880 'h' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x38, 0x00, // ###
+ 0x38, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1B, 0xC0, // ## ####
+ 0x1F, 0xE0, // ########
+ 0x1C, 0x60, // ### ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2920 'i' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x1F, 0x00, // #####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2960 'j' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xC0, // #######
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0xC0, // ###
+ 0x3F, 0x80, // #######
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3000 'k' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x38, 0x00, // ###
+ 0x38, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1B, 0xE0, // ## #####
+ 0x1B, 0xE0, // ## #####
+ 0x1B, 0x00, // ## ##
+ 0x1E, 0x00, // ####
+ 0x1E, 0x00, // ####
+ 0x1B, 0x00, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x39, 0xF0, // ### #####
+ 0x39, 0xF0, // ### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3040 'l' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x1F, 0x00, // #####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3080 'm' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7E, 0xE0, // ###### ###
+ 0x7F, 0xF0, // ###########
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x7B, 0xB8, // #### ### ###
+ 0x7B, 0xB8, // #### ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3120 'n' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3B, 0xC0, // ### ####
+ 0x3F, 0xE0, // #########
+ 0x1C, 0x60, // ### ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3160 'o' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3200 'p' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x77, 0x80, // ### ####
+ 0x7F, 0xE0, // ##########
+ 0x38, 0x60, // ### ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x60, // ### ##
+ 0x3F, 0xE0, // #########
+ 0x37, 0x80, // ## ####
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7C, 0x00, // #####
+ 0x7C, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3240 'q' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB8, // #### ###
+ 0x1F, 0xF8, // ##########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xF0, // #########
+ 0x07, 0xB0, // #### ##
+ 0x00, 0x30, // ##
+ 0x00, 0x30, // ##
+ 0x00, 0xF8, // #####
+ 0x00, 0xF8, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3280 'r' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xE0, // #### ###
+ 0x3D, 0xF0, // #### #####
+ 0x0F, 0x30, // #### ##
+ 0x0E, 0x00, // ###
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3320 's' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xE0, // ######
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x1E, 0x00, // ####
+ 0x0F, 0xC0, // ######
+ 0x01, 0xE0, // ####
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3360 't' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x30, // ## ##
+ 0x0F, 0xF0, // ########
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3400 'u' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x38, 0xE0, // ### ###
+ 0x38, 0xE0, // ### ###
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0xE0, // ## ###
+ 0x1F, 0xF0, // #########
+ 0x0F, 0x70, // #### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3440 'v' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3480 'w' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x32, 0x60, // ## # ##
+ 0x32, 0x60, // ## # ##
+ 0x37, 0xE0, // ## ######
+ 0x1D, 0xC0, // ### ###
+ 0x1D, 0xC0, // ### ###
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3520 'x' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x0C, 0xC0, // ## ##
+ 0x07, 0x80, // ####
+ 0x03, 0x00, // ##
+ 0x07, 0x80, // ####
+ 0x0C, 0xC0, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3560 'y' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0F, 0x80, // #####
+ 0x07, 0x00, // ###
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x7F, 0x00, // #######
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3600 'z' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x18, 0xC0, // ## ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3640 '{' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x01, 0xC0, // ###
+ 0x03, 0xC0, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x07, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0xC0, // ####
+ 0x01, 0xC0, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3680 '|' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3720 '}' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1C, 0x00, // ###
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x07, 0x00, // ###
+ 0x03, 0x80, // ###
+ 0x07, 0x00, // ###
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1E, 0x00, // ####
+ 0x1C, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3760 '~' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0E, 0x00, // ###
+ 0x3F, 0x30, // ###### ##
+ 0x33, 0xF0, // ## ######
+ 0x01, 0xE0, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+};
+
+
+sFONT Font20 = {
+ Font20_Table,
+ 14, /* Width */
+ 20, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Display_code/epd1in54_V2/font24.c b/Display_code/epd1in54_V2/font24.c
new file mode 100644
index 0000000..735f487
--- /dev/null
+++ b/Display_code/epd1in54_V2/font24.c
@@ -0,0 +1,2521 @@
+/**
+ ******************************************************************************
+ * @file font24.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text font24 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+const uint8_t Font24_Table [] PROGMEM =
+{
+ // @0 ' ' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @72 '!' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @144 '"' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0E, 0x70, 0x00, // ### ###
+ 0x0E, 0x70, 0x00, // ### ###
+ 0x0E, 0x70, 0x00, // ### ###
+ 0x04, 0x20, 0x00, // # #
+ 0x04, 0x20, 0x00, // # #
+ 0x04, 0x20, 0x00, // # #
+ 0x04, 0x20, 0x00, // # #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @216 '#' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @288 '$' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x07, 0xB0, 0x00, // #### ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x70, 0x00, // ## ###
+ 0x1C, 0x00, 0x00, // ###
+ 0x0F, 0x80, 0x00, // #####
+ 0x07, 0xE0, 0x00, // ######
+ 0x00, 0xF0, 0x00, // ####
+ 0x18, 0x30, 0x00, // ## ##
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x1C, 0x70, 0x00, // ### ###
+ 0x1F, 0xE0, 0x00, // ########
+ 0x1B, 0xC0, 0x00, // ## ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @360 '%' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0x80, 0x00, // ####
+ 0x0F, 0xC0, 0x00, // ######
+ 0x1C, 0xE0, 0x00, // ### ###
+ 0x18, 0x60, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x1C, 0xE0, 0x00, // ### ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x07, 0xE0, 0x00, // ######
+ 0x1F, 0xF0, 0x00, // #########
+ 0x07, 0x38, 0x00, // ### ###
+ 0x06, 0x18, 0x00, // ## ##
+ 0x06, 0x18, 0x00, // ## ##
+ 0x07, 0x38, 0x00, // ### ###
+ 0x03, 0xF0, 0x00, // ######
+ 0x01, 0xE0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @432 '&' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xF0, 0x00, // ######
+ 0x07, 0xF0, 0x00, // #######
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x07, 0x00, 0x00, // ###
+ 0x0F, 0x9C, 0x00, // ##### ###
+ 0x1D, 0xFC, 0x00, // ### #######
+ 0x18, 0xF0, 0x00, // ## ####
+ 0x18, 0x70, 0x00, // ## ###
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x07, 0xDC, 0x00, // ##### ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @504 ''' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @576 '(' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @648 ')' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x18, 0x00, 0x00, // ##
+ 0x1C, 0x00, 0x00, // ###
+ 0x0E, 0x00, 0x00, // ###
+ 0x0E, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x0F, 0x00, 0x00, // ####
+ 0x0E, 0x00, 0x00, // ###
+ 0x1C, 0x00, 0x00, // ###
+ 0x18, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @720 '*' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x1D, 0xB8, 0x00, // ### ## ###
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x07, 0xE0, 0x00, // ######
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @792 '+' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @864 ',' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @936 '-' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1008 '.' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1080 '/' (17 pixels wide)
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x0E, 0x00, 0x00, // ###
+ 0x0C, 0x00, 0x00, // ##
+ 0x1C, 0x00, 0x00, // ###
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1152 '0' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x07, 0xE0, 0x00, // ######
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x07, 0xE0, 0x00, // ######
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1224 '1' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x80, 0x00, // #
+ 0x07, 0x80, 0x00, // ####
+ 0x1F, 0x80, 0x00, // ######
+ 0x1D, 0x80, 0x00, // ### ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1296 '2' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xC0, 0x00, // #####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x38, 0x30, 0x00, // ### ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x06, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1368 '3' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xE0, 0x00, // #######
+ 0x0C, 0x70, 0x00, // ## ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xE0, 0x00, // #####
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x0F, 0xC0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1440 '4' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xE0, 0x00, // ####
+ 0x01, 0xE0, 0x00, // ####
+ 0x03, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x30, 0x60, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x00, 0x60, 0x00, // ##
+ 0x03, 0xF8, 0x00, // #######
+ 0x03, 0xF8, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1512 '5' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xF0, 0x00, // #########
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xC0, 0x00, // ## ####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x0F, 0xC0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1584 '6' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xF8, 0x00, // #####
+ 0x03, 0xF8, 0x00, // #######
+ 0x07, 0x00, 0x00, // ###
+ 0x0E, 0x00, 0x00, // ###
+ 0x0C, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xC0, 0x00, // ## ####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x38, 0x00, // ## ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xE0, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1656 '7' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1728 '8' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xE0, 0x00, // ######
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x07, 0xE0, 0x00, // ######
+ 0x07, 0xE0, 0x00, // ######
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x07, 0xE0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1800 '9' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xC0, 0x00, // #####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x38, 0x00, // ## ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x03, 0xD8, 0x00, // #### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x1F, 0xC0, 0x00, // #######
+ 0x1F, 0x00, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1872 ':' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1944 ';' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x02, 0x00, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2016 '<' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x1C, 0x00, // ###
+ 0x00, 0x3C, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0x00, 0x00, // ####
+ 0x3C, 0x00, 0x00, // ####
+ 0xF0, 0x00, 0x00, // ####
+ 0x3C, 0x00, 0x00, // ####
+ 0x0F, 0x00, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0x3C, 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, //
+
+ // @2088 '=' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xFC, 0x00, // #############
+ 0x7F, 0xFC, 0x00, // #############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xFC, 0x00, // #############
+ 0x7F, 0xFC, 0x00, // #############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2160 '>' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x70, 0x00, 0x00, // ###
+ 0x78, 0x00, 0x00, // ####
+ 0x1E, 0x00, 0x00, // ####
+ 0x07, 0x80, 0x00, // ####
+ 0x01, 0xE0, 0x00, // ####
+ 0x00, 0x78, 0x00, // ####
+ 0x00, 0x1E, 0x00, // ####
+ 0x00, 0x78, 0x00, // ####
+ 0x01, 0xE0, 0x00, // ####
+ 0x07, 0x80, 0x00, // ####
+ 0x1E, 0x00, 0x00, // ####
+ 0x78, 0x00, 0x00, // ####
+ 0x70, 0x00, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2232 '?' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xC0, 0x00, // #####
+ 0x0F, 0xE0, 0x00, // #######
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x30, 0x00, // ## ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2304 '@' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xE0, 0x00, // #####
+ 0x07, 0xF0, 0x00, // #######
+ 0x0E, 0x38, 0x00, // ### ###
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x18, 0x78, 0x00, // ## ####
+ 0x18, 0xF8, 0x00, // ## #####
+ 0x19, 0xD8, 0x00, // ## ### ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x18, 0xF8, 0x00, // ## #####
+ 0x18, 0x78, 0x00, // ## ####
+ 0x18, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0E, 0x18, 0x00, // ### ##
+ 0x07, 0xF8, 0x00, // ########
+ 0x03, 0xE0, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2376 'A' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0xC0, 0x00, // #######
+ 0x01, 0xC0, 0x00, // ###
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0F, 0xF8, 0x00, // #########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0xFC, 0x7F, 0x00, // ###### #######
+ 0xFC, 0x7F, 0x00, // ###### #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2448 'B' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xE0, 0x00, // ##########
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x1C, 0x00, // ## ###
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2520 'C' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xEC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2592 'D' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xC0, 0x00, // #########
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x7F, 0xE0, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2664 'E' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7F, 0xF8, 0x00, // ############
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x19, 0x80, 0x00, // ## ##
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0x80, 0x00, // ######
+ 0x19, 0x80, 0x00, // ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7F, 0xF8, 0x00, // ############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2736 'F' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0xCC, 0x00, // ## ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0F, 0xC0, 0x00, // ######
+ 0x0F, 0xC0, 0x00, // ######
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x3F, 0xC0, 0x00, // ########
+ 0x3F, 0xC0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2808 'G' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xEC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0xFE, 0x00, // ## #######
+ 0x30, 0xFE, 0x00, // ## #######
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x0C, 0x00, // ### ##
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2880 'H' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2952 'I' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3024 'J' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xFE, 0x00, // ##########
+ 0x07, 0xFE, 0x00, // ##########
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x60, 0x00, // ## ##
+ 0x3F, 0xE0, 0x00, // #########
+ 0x0F, 0x80, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3096 'K' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0x3E, 0x00, // ####### #####
+ 0x7F, 0x3E, 0x00, // ####### #####
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x18, 0xC0, 0x00, // ## ##
+ 0x19, 0x80, 0x00, // ## ##
+ 0x1B, 0x80, 0x00, // ## ###
+ 0x1F, 0xC0, 0x00, // #######
+ 0x1C, 0xE0, 0x00, // ### ###
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0x1F, 0x00, // ####### #####
+ 0x7F, 0x1F, 0x00, // ####### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3168 'L' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0x80, 0x00, // ########
+ 0x7F, 0x80, 0x00, // ########
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x7F, 0xFC, 0x00, // #############
+ 0x7F, 0xFC, 0x00, // #############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3240 'M' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xF0, 0x0F, 0x00, // #### ####
+ 0xF8, 0x1F, 0x00, // ##### #####
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x3C, 0x3C, 0x00, // #### ####
+ 0x3C, 0x3C, 0x00, // #### ####
+ 0x36, 0x6C, 0x00, // ## ## ## ##
+ 0x36, 0x6C, 0x00, // ## ## ## ##
+ 0x33, 0xCC, 0x00, // ## #### ##
+ 0x33, 0xCC, 0x00, // ## #### ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0xFE, 0x7F, 0x00, // ####### #######
+ 0xFE, 0x7F, 0x00, // ####### #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3312 'N' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0xFE, 0x00, // #### #######
+ 0x78, 0xFE, 0x00, // #### #######
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x1E, 0x18, 0x00, // #### ##
+ 0x1F, 0x18, 0x00, // ##### ##
+ 0x1B, 0x18, 0x00, // ## ## ##
+ 0x1B, 0x98, 0x00, // ## ### ##
+ 0x19, 0xD8, 0x00, // ## ### ##
+ 0x18, 0xD8, 0x00, // ## ## ##
+ 0x18, 0xF8, 0x00, // ## #####
+ 0x18, 0x78, 0x00, // ## ####
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0x18, 0x00, // ####### ##
+ 0x7F, 0x18, 0x00, // ####### ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3384 'O' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3456 'P' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x0C, 0x1C, 0x00, // ## ###
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0F, 0xF8, 0x00, // #########
+ 0x0F, 0xE0, 0x00, // #######
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x3F, 0xC0, 0x00, // ########
+ 0x3F, 0xC0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3528 'Q' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x07, 0xC0, 0x00, // #####
+ 0x07, 0xCC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x0C, 0x38, 0x00, // ## ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3600 'R' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xE0, 0x00, // ##########
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xC0, 0x00, // #######
+ 0x18, 0xE0, 0x00, // ## ###
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0x1E, 0x00, // ####### ####
+ 0x7F, 0x0E, 0x00, // ####### ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3672 'S' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x0F, 0xF8, 0x00, // #########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1E, 0x00, 0x00, // ####
+ 0x0F, 0xC0, 0x00, // ######
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x78, 0x00, // ####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3744 'T' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x0F, 0xF0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3816 'U' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3888 'V' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0x7F, 0x00, // ####### #######
+ 0x7F, 0x7F, 0x00, // ####### #######
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0x80, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3960 'W' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xFE, 0x3F, 0x80, // ####### #######
+ 0xFE, 0x3F, 0x80, // ####### #######
+ 0x30, 0x06, 0x00, // ## ##
+ 0x30, 0x06, 0x00, // ## ##
+ 0x30, 0x86, 0x00, // ## # ##
+ 0x19, 0xCC, 0x00, // ## ### ##
+ 0x19, 0xCC, 0x00, // ## ### ##
+ 0x1B, 0x6C, 0x00, // ## ## ## ##
+ 0x1B, 0x6C, 0x00, // ## ## ## ##
+ 0x1E, 0x7C, 0x00, // #### #####
+ 0x0E, 0x38, 0x00, // ### ###
+ 0x0E, 0x38, 0x00, // ### ###
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4032 'X' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4104 'Y' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7C, 0x7E, 0x00, // ##### ######
+ 0x7C, 0x7E, 0x00, // ##### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x0F, 0xF0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4176 'Z' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x18, 0xC0, 0x00, // ## ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x06, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4248 '[' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0xF0, 0x00, // #####
+ 0x01, 0xF0, 0x00, // #####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0xF0, 0x00, // #####
+ 0x01, 0xF0, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4320 '\' (17 pixels wide)
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1C, 0x00, 0x00, // ###
+ 0x0C, 0x00, 0x00, // ##
+ 0x0E, 0x00, 0x00, // ###
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4392 ']' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0F, 0x80, 0x00, // #####
+ 0x0F, 0x80, 0x00, // #####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x0F, 0x80, 0x00, // #####
+ 0x0F, 0x80, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4464 '^' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x80, 0x00, // #
+ 0x01, 0xC0, 0x00, // ###
+ 0x03, 0xE0, 0x00, // #####
+ 0x07, 0x70, 0x00, // ### ###
+ 0x06, 0x30, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x10, 0x04, 0x00, // # #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4536 '_' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xFF, 0xFF, 0x00, // ################
+ 0xFF, 0xFF, 0x00, // ################
+
+ // @4608 '`' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x80, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4680 'a' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0F, 0xC0, 0x00, // ######
+ 0x1F, 0xE0, 0x00, // ########
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x07, 0xF0, 0x00, // #######
+ 0x1F, 0xF0, 0x00, // #########
+ 0x38, 0x30, 0x00, // ### ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x70, 0x00, // ## ###
+ 0x1F, 0xFC, 0x00, // ###########
+ 0x0F, 0xBC, 0x00, // ##### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4752 'b' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x00, 0x00, // ####
+ 0x78, 0x00, 0x00, // ####
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7B, 0xE0, 0x00, // #### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4824 'c' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xEC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x38, 0x0C, 0x00, // ### ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x38, 0x0C, 0x00, // ### ##
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4896 'd' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x78, 0x00, // ####
+ 0x00, 0x78, 0x00, // ####
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xFE, 0x00, // ############
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4968 'e' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xE0, 0x00, // ######
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1F, 0xFC, 0x00, // ###########
+ 0x07, 0xF0, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5040 'f' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0xFC, 0x00, // #######
+ 0x03, 0xFC, 0x00, // ########
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5112 'g' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x1F, 0xFE, 0x00, // ############
+ 0x18, 0x38, 0x00, // ## ###
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x0F, 0xC0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5184 'h' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x00, 0x00, // ####
+ 0x78, 0x00, 0x00, // ####
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5256 'i' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0x80, 0x00, // ######
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5328 'j' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xF0, 0x00, // #########
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x1F, 0xE0, 0x00, // ########
+ 0x1F, 0x80, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5400 'k' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3C, 0x00, 0x00, // ####
+ 0x3C, 0x00, 0x00, // ####
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0xF8, 0x00, // ## #####
+ 0x0C, 0xF8, 0x00, // ## #####
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0D, 0x80, 0x00, // ## ##
+ 0x0F, 0x80, 0x00, // #####
+ 0x0F, 0x00, 0x00, // ####
+ 0x0F, 0x80, 0x00, // #####
+ 0x0D, 0xC0, 0x00, // ## ###
+ 0x0C, 0xE0, 0x00, // ## ###
+ 0x3C, 0x7C, 0x00, // #### #####
+ 0x3C, 0x7C, 0x00, // #### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5472 'l' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0x80, 0x00, // ######
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5544 'm' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xF7, 0x78, 0x00, // #### ### ####
+ 0xFF, 0xFC, 0x00, // ##############
+ 0x39, 0xCC, 0x00, // ### ### ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0xFD, 0xEF, 0x00, // ###### #### ####
+ 0xFD, 0xEF, 0x00, // ###### #### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5616 'n' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7B, 0xE0, 0x00, // #### #####
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5688 'o' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5760 'p' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7B, 0xE0, 0x00, // #### #####
+ 0x7F, 0xF8, 0x00, // ############
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x7F, 0x00, 0x00, // #######
+ 0x7F, 0x00, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5832 'q' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x1F, 0xFE, 0x00, // ############
+ 0x18, 0x38, 0x00, // ## ###
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0xFE, 0x00, // #######
+ 0x00, 0xFE, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5904 'r' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3E, 0x78, 0x00, // ##### ####
+ 0x3E, 0xFC, 0x00, // ##### ######
+ 0x07, 0xCC, 0x00, // ##### ##
+ 0x07, 0x00, 0x00, // ###
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5976 's' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xF8, 0x00, // ########
+ 0x0F, 0xF8, 0x00, // #########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1F, 0x80, 0x00, // ######
+ 0x0F, 0xF0, 0x00, // ########
+ 0x00, 0xF8, 0x00, // #####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xE0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6048 't' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x1C, 0x00, // ## ###
+ 0x07, 0xFC, 0x00, // #########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6120 'u' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x78, 0x00, // #### ####
+ 0x78, 0x78, 0x00, // #### ####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x0F, 0xFE, 0x00, // ###########
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6192 'v' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7C, 0x3E, 0x00, // ##### #####
+ 0x7C, 0x3E, 0x00, // ##### #####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x07, 0xE0, 0x00, // ######
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6264 'w' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x3C, 0x00, // #### ####
+ 0x78, 0x3C, 0x00, // #### ####
+ 0x31, 0x18, 0x00, // ## # ##
+ 0x33, 0x98, 0x00, // ## ### ##
+ 0x33, 0x98, 0x00, // ## ### ##
+ 0x1A, 0xB0, 0x00, // ## # # ##
+ 0x1E, 0xF0, 0x00, // #### ####
+ 0x1E, 0xF0, 0x00, // #### ####
+ 0x1C, 0x60, 0x00, // ### ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6336 'x' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6408 'y' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x1F, 0x00, // ###### #####
+ 0x7E, 0x1F, 0x00, // ###### #####
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0xE0, 0x00, // #####
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x3F, 0xC0, 0x00, // ########
+ 0x3F, 0xC0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6480 'z' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x06, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6552 '{' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xE0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x80, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0xE0, 0x00, // ####
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6624 '|' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6696 '}' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x80, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x07, 0x80, 0x00, // ####
+ 0x07, 0x00, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6768 '~' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0E, 0x00, 0x00, // ###
+ 0x1F, 0x18, 0x00, // ##### ##
+ 0x3B, 0xB8, 0x00, // ### ### ###
+ 0x31, 0xF0, 0x00, // ## #####
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+};
+
+sFONT Font24 = {
+ Font24_Table,
+ 17, /* Width */
+ 24, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Display_code/epd1in54_V2/font8.c b/Display_code/epd1in54_V2/font8.c
new file mode 100644
index 0000000..1b0d2ab
--- /dev/null
+++ b/Display_code/epd1in54_V2/font8.c
@@ -0,0 +1,1005 @@
+/**
+ ******************************************************************************
+ * @file Font8.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text Font8 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+//
+// Font data for Courier New 12pt
+//
+
+const uint8_t Font8_Table[] PROGMEM =
+{
+ // @0 ' ' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @8 '!' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @16 '"' (5 pixels wide)
+ 0x50, // # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @24 '#' (5 pixels wide)
+ 0x28, // # #
+ 0x50, // # #
+ 0xF8, // #####
+ 0x50, // # #
+ 0xF8, // #####
+ 0x50, // # #
+ 0xA0, // # #
+ 0x00, //
+
+ // @32 '$' (5 pixels wide)
+ 0x20, // #
+ 0x30, // ##
+ 0x60, // ##
+ 0x30, // ##
+ 0x10, // #
+ 0x60, // ##
+ 0x20, // #
+ 0x00, //
+
+ // @40 '%' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x18, // ##
+ 0x60, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @48 '&' (5 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x20, // #
+ 0x60, // ##
+ 0x50, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @56 ''' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @64 '(' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+
+ // @72 ')' (5 pixels wide)
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+
+ // @80 '*' (5 pixels wide)
+ 0x20, // #
+ 0x70, // ###
+ 0x20, // #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @88 '+' (5 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x20, // #
+ 0xF8, // #####
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @96 ',' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+
+ // @104 '-' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @112 '.' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @120 '/' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x40, // #
+ 0x80, // #
+ 0x00, //
+
+ // @128 '0' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @136 '1' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+
+ // @144 '2' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @152 '3' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x10, // #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @160 '4' (5 pixels wide)
+ 0x10, // #
+ 0x30, // ##
+ 0x50, // # #
+ 0x78, // ####
+ 0x10, // #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @168 '5' (5 pixels wide)
+ 0x70, // ###
+ 0x40, // #
+ 0x60, // ##
+ 0x10, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @176 '6' (5 pixels wide)
+ 0x30, // ##
+ 0x40, // #
+ 0x60, // ##
+ 0x50, // # #
+ 0x50, // # #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @184 '7' (5 pixels wide)
+ 0x70, // ###
+ 0x50, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @192 '8' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @200 '9' (5 pixels wide)
+ 0x30, // ##
+ 0x50, // # #
+ 0x50, // # #
+ 0x30, // ##
+ 0x10, // #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @208 ':' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @216 ';' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x10, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @224 '<' (5 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x20, // #
+ 0xC0, // ##
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @232 '=' (5 pixels wide)
+ 0x00, //
+ 0x70, // ###
+ 0x00, //
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @240 '>' (5 pixels wide)
+ 0x00, //
+ 0x40, // #
+ 0x20, // #
+ 0x18, // ##
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+ 0x00, //
+
+ // @248 '?' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @256 '@' (5 pixels wide)
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x58, // # ##
+ 0x48, // # #
+ 0x40, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @264 'A' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x50, // # #
+ 0x70, // ###
+ 0x88, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @272 'B' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x70, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+
+ // @280 'C' (5 pixels wide)
+ 0x70, // ###
+ 0x50, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @288 'D' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+
+ // @296 'E' (5 pixels wide)
+ 0xF8, // #####
+ 0x48, // # #
+ 0x60, // ##
+ 0x40, // #
+ 0x48, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+
+ // @304 'F' (5 pixels wide)
+ 0xF8, // #####
+ 0x48, // # #
+ 0x60, // ##
+ 0x40, // #
+ 0x40, // #
+ 0xE0, // ###
+ 0x00, //
+ 0x00, //
+
+ // @312 'G' (5 pixels wide)
+ 0x70, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x58, // # ##
+ 0x50, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @320 'H' (5 pixels wide)
+ 0xE8, // ### #
+ 0x48, // # #
+ 0x78, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @328 'I' (5 pixels wide)
+ 0x70, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @336 'J' (5 pixels wide)
+ 0x38, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @344 'K' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x50, // # #
+ 0x60, // ##
+ 0x70, // ###
+ 0x50, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @352 'L' (5 pixels wide)
+ 0xE0, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x48, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+
+ // @360 'M' (5 pixels wide)
+ 0xD8, // ## ##
+ 0xD8, // ## ##
+ 0xD8, // ## ##
+ 0xA8, // # # #
+ 0x88, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @368 'N' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x68, // ## #
+ 0x68, // ## #
+ 0x58, // # ##
+ 0x58, // # ##
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @376 'O' (5 pixels wide)
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @384 'P' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x70, // ###
+ 0x40, // #
+ 0xE0, // ###
+ 0x00, //
+ 0x00, //
+
+ // @392 'Q' (5 pixels wide)
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x18, // ##
+ 0x00, //
+
+ // @400 'R' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x70, // ###
+ 0x48, // # #
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @408 'S' (5 pixels wide)
+ 0x70, // ###
+ 0x50, // # #
+ 0x20, // #
+ 0x10, // #
+ 0x50, // # #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @416 'T' (5 pixels wide)
+ 0xF8, // #####
+ 0xA8, // # # #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @424 'U' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @432 'V' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x88, // # #
+ 0x48, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @440 'W' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x88, // # #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+
+ // @448 'X' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x50, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @456 'Y' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x88, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @464 'Z' (5 pixels wide)
+ 0x78, // ####
+ 0x48, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x48, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @472 '[' (5 pixels wide)
+ 0x30, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x30, // ##
+ 0x00, //
+
+ // @480 '\' (5 pixels wide)
+ 0x80, // #
+ 0x40, // #
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+
+ // @488 ']' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x60, // ##
+ 0x00, //
+
+ // @496 '^' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @504 '_' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xF8, // #####
+
+ // @512 '`' (5 pixels wide)
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @520 'a' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x70, // ###
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @528 'b' (5 pixels wide)
+ 0xC0, // ##
+ 0x40, // #
+ 0x70, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+
+ // @536 'c' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x70, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @544 'd' (5 pixels wide)
+ 0x18, // ##
+ 0x08, // #
+ 0x38, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @552 'e' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x70, // ###
+ 0x70, // ###
+ 0x40, // #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @560 'f' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @568 'g' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x08, // #
+ 0x30, // ##
+
+ // @576 'h' (5 pixels wide)
+ 0xC0, // ##
+ 0x40, // #
+ 0x70, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @584 'i' (5 pixels wide)
+ 0x20, // #
+ 0x00, //
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @592 'j' (5 pixels wide)
+ 0x20, // #
+ 0x00, //
+ 0x70, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x70, // ###
+
+ // @600 'k' (5 pixels wide)
+ 0xC0, // ##
+ 0x40, // #
+ 0x58, // # ##
+ 0x70, // ###
+ 0x50, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @608 'l' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @616 'm' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD0, // ## #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0x00, //
+ 0x00, //
+
+ // @624 'n' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0xC8, // ## #
+ 0x00, //
+ 0x00, //
+
+ // @632 'o' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @640 'p' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x70, // ###
+ 0x40, // #
+ 0xE0, // ###
+
+ // @648 'q' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x08, // #
+ 0x18, // ##
+
+ // @656 'r' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x78, // ####
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @664 's' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x20, // #
+ 0x10, // #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @672 't' (5 pixels wide)
+ 0x00, //
+ 0x40, // #
+ 0xF0, // ####
+ 0x40, // #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @680 'u' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @688 'v' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xC8, // ## #
+ 0x48, // # #
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @696 'w' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+
+ // @704 'x' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x48, // # #
+ 0x30, // ##
+ 0x30, // ##
+ 0x48, // # #
+ 0x00, //
+ 0x00, //
+
+ // @712 'y' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x60, // ##
+
+ // @720 'z' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x78, // ####
+ 0x50, // # #
+ 0x28, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @728 '{' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+
+ // @736 '|' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+
+ // @744 '}' (5 pixels wide)
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x30, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+
+ // @752 '~' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x28, // # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+};
+
+sFONT Font8 = {
+ Font8_Table,
+ 5, /* Width */
+ 8, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Display_code/epd1in54_V2/fonts.h b/Display_code/epd1in54_V2/fonts.h
new file mode 100644
index 0000000..4530308
--- /dev/null
+++ b/Display_code/epd1in54_V2/fonts.h
@@ -0,0 +1,75 @@
+/**
+ ******************************************************************************
+ * @file fonts.h
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief Header for fonts.c file
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __FONTS_H
+#define __FONTS_H
+
+/* Max size of bitmap will based on a font24 (17x24) */
+#define MAX_HEIGHT_FONT 24
+#define MAX_WIDTH_FONT 17
+#define OFFSET_BITMAP 54
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include
+
+typedef struct _tFont
+{
+ const uint8_t *table;
+ uint16_t Width;
+ uint16_t Height;
+
+} sFONT;
+
+extern sFONT Font24;
+extern sFONT Font20;
+extern sFONT Font16;
+extern sFONT Font12;
+extern sFONT Font8;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __FONTS_H */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Display_code/epd1in54_V2/imagedata.cpp b/Display_code/epd1in54_V2/imagedata.cpp
new file mode 100644
index 0000000..d5aef37
--- /dev/null
+++ b/Display_code/epd1in54_V2/imagedata.cpp
@@ -0,0 +1,344 @@
+/**
+ * @filename : imagedata.cpp
+ * @brief : data file for epd demo
+ *
+ * Copyright (C) Waveshare September 5 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 "imagedata.h"
+#include
+
+const unsigned char IMAGE_DATA[] PROGMEM = {
+/* 0X00,0X01,0XC8,0X00,0XC8,0X00, */
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0X01,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XF8,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XFF,
+0X3F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF0,0X00,
+0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE3,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE1,0XE3,0X00,0X00,0X00,0X00,0X01,
+0XFF,0XFF,0XE7,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XC3,0XF3,0X0F,0XFF,0XFF,0XFF,0XFC,0XFF,0XFF,0XE3,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XC3,0X3B,0X0F,0XFF,0XFF,
+0XFF,0XFE,0XFF,0XFF,0XE3,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XC3,0X0F,0X0F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XE1,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XC3,0X0F,0X0F,
+0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF0,0XFC,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE3,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XC3,0X87,0X0F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF0,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XF1,0XC1,
+0X03,0X0F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF8,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XE0,0X0F,0XFF,0XFF,0XFF,0XFF,0XF1,0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XFE,0XFF,
+0XFF,0XFE,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,0XF1,0XF0,0X00,0X3F,0XFF,0XFF,0XFF,
+0X7E,0XFF,0XFF,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XF0,0X1F,0XFF,
+0XFF,0XFF,0XF1,0XF8,0X00,0X7F,0XFF,0XFF,0XFC,0X3E,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0X00,0X1F,0XFF,0XFF,0XFF,0XF1,0XFE,0X00,0XFF,0XFF,
+0XFF,0XF0,0X3E,0XFF,0XFF,0XC6,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XF8,0X07,
+0X8F,0XFF,0XFF,0XFF,0XF1,0XFE,0X87,0XFF,0XFF,0XFF,0XE0,0XCE,0XFF,0XFF,0XCE,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE0,0X1F,0X8F,0XC0,0X07,0XFF,0XF1,0XFE,0XFF,
+0XFF,0XFF,0XFF,0X81,0X86,0XFF,0XFF,0XCE,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XE0,0XFF,0XCF,0X80,0X07,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0XFF,0XFF,
+0XC6,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE3,0XFF,0XEF,0X00,0X07,0XFF,0XF1,
+0XFE,0XFF,0XFF,0XFF,0XFE,0X0C,0X02,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFE,0X18,0X02,
+0XFF,0XFF,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,
+0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFE,0X20,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFE,0X01,0XFF,0X1F,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFE,
+0XC0,0X02,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XF0,0X01,0XFF,
+0X9F,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X00,0X02,0XFF,0XFF,0XF8,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE0,0X01,0XE0,0X80,0X0F,0XFF,0XF1,0XFE,0XFF,0XFF,
+0XFF,0XFF,0X00,0X02,0XFF,0XFF,0XF0,0X00,0X3F,0XFF,0XE7,0XFF,0XFF,0X8F,0XFF,0XE0,
+0X03,0XE0,0X00,0X07,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X80,0X06,0XFF,0XFF,0XE0,
+0XCC,0X1F,0XFF,0XE0,0XFF,0XFF,0X8F,0XFF,0XE2,0X71,0XE0,0X00,0X07,0XFF,0XF1,0XFE,
+0XFF,0XFF,0XFF,0XFF,0XC0,0X0E,0XFF,0XFF,0XE3,0XC7,0X1F,0XFF,0XE0,0X3F,0XFF,0X8F,
+0XFF,0XE7,0X39,0XE0,0X00,0X0F,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XC0,0X0E,0XFF,
+0XFF,0XE7,0XE7,0X8F,0XFF,0XF0,0X07,0XFF,0X8F,0XFF,0XE7,0X38,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X00,0X1E,0XFF,0XFF,0XE7,0XE7,0X8F,0XFF,0XFE,0X01,
+0XFF,0X8F,0XFF,0XE3,0X10,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFC,0X00,
+0X3E,0XFF,0XFF,0XE3,0XC7,0X8F,0XFF,0XFF,0XC0,0X7F,0X8F,0XFF,0XE3,0X01,0XFF,0X1F,
+0XC7,0XFF,0XF1,0XFE,0XFF,0X83,0XFF,0XF0,0X00,0X7E,0XFF,0XFF,0XE0,0X07,0X1F,0XFF,
+0XFF,0XF8,0X3F,0X8F,0XFF,0XF3,0X81,0XFF,0X1F,0XC7,0XFF,0XF1,0XFE,0XFC,0X01,0XFF,
+0XE0,0X00,0XFE,0XFF,0XFF,0XF0,0X0F,0X1F,0XFF,0XFF,0XC0,0X1F,0X8F,0XFF,0XFF,0XC7,
+0XFF,0X1F,0XC7,0XFF,0XF1,0XFE,0XF0,0X07,0XFF,0X80,0X01,0XFE,0XFF,0XFF,0XF8,0X1F,
+0XBF,0XFF,0XFE,0X00,0X0F,0X8F,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XFF,0XF1,0XFE,0XC0,
+0X18,0XFE,0X00,0X03,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X87,0X8F,0XFF,
+0XFF,0XFF,0XF8,0X00,0X0F,0XFF,0XF1,0XFE,0XC0,0XE0,0XF8,0X00,0X0F,0XFE,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XC7,0X8F,0XFF,0XFF,0XFF,0XF8,0X00,0X0F,0XFF,0XF1,
+0XFE,0XC7,0X00,0XE0,0X00,0X1F,0XFE,0XFF,0XFF,0XFF,0XFF,0X9F,0XFF,0XE0,0XFF,0XC7,
+0X8F,0XFE,0X00,0X01,0XFF,0X1E,0XFF,0XFF,0XF1,0XFE,0XDC,0X00,0XC0,0X00,0X3F,0XFE,
+0XFF,0XFF,0XF8,0X3F,0X1F,0XFF,0XE3,0XFF,0XC7,0X8F,0XFE,0X00,0X01,0XFF,0X1F,0XFF,
+0XFF,0XF1,0XFE,0XE0,0X00,0X00,0X00,0XFF,0XFE,0XFF,0XFF,0XF0,0X0F,0X1F,0XFF,0XFF,
+0XFF,0XC7,0X8F,0XFE,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0XC0,0X00,0X00,0X03,
+0XFF,0XFE,0XFF,0XFF,0XE0,0X03,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFE,0X03,0XFF,0XF8,
+0X7F,0XFF,0XFF,0XF1,0XFE,0XE0,0X00,0X00,0X07,0XFF,0XFE,0XFF,0XFF,0XE3,0XC1,0X9F,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XC0,0X7F,0XF8,0X1F,0XFF,0XFF,0XF1,0XFE,0XE0,0X00,
+0X00,0X1F,0XFF,0XFE,0XFF,0XFF,0XE7,0XE0,0X9F,0XFF,0XF8,0X00,0XFF,0X8F,0XFF,0XF8,
+0X1F,0XF8,0X07,0XFF,0XFF,0XF1,0XFE,0XF0,0X00,0X00,0XFF,0XFF,0XFE,0XFF,0XFF,0XE7,
+0XF8,0X1F,0XFF,0XF0,0X00,0XFF,0X8F,0XFF,0XFE,0X03,0XF8,0X01,0XFF,0XFF,0XF1,0XFE,
+0XF8,0X00,0X03,0XFF,0XFF,0XFE,0XFF,0XFF,0XE7,0XFC,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,
+0XFF,0XFF,0X83,0XF8,0XC0,0X7F,0XFF,0XF1,0XFE,0XFC,0X00,0X3F,0XFF,0XFF,0XFE,0XFF,
+0XFF,0XE3,0XFE,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFC,0X07,0XF8,0XF0,0X1F,0XFF,
+0XF1,0XFE,0XFF,0XB7,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF1,0XFF,0X1F,0XFF,0XE3,0X31,
+0XFF,0X8F,0XFF,0XE0,0X3F,0XF8,0XFC,0X07,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0XFF,0XFF,0XF3,0XFF,0X9F,0XFF,0XE3,0X38,0XFF,0X8F,0XFF,0X00,0XFF,0XF8,0XFF,
+0X03,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE3,0X38,0XFF,0X8F,0XFE,0X07,0XFF,0XF8,0XFF,0XC3,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0X18,0XFF,0X8F,0XFE,0X00,0X01,
+0XF8,0XFF,0XF3,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XDF,
+0XFF,0XFF,0XE3,0X00,0XFF,0X8F,0XFE,0X00,0X01,0XF8,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XE3,0X80,0XFF,0X8F,0XFE,
+0X00,0X01,0XF8,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,
+0XFF,0X87,0XFF,0XFF,0XF1,0X81,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XC3,0XFF,0XFF,0XFF,0XC3,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,
+0XFF,0XFF,0XFF,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFE,0X7F,0XFF,0XFF,0XFF,0XFF,0XFC,0XFF,0XFF,0XFF,0XF3,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0X00,0X00,0X00,0X00,
+0X00,0X01,0XFF,0XFF,0XFF,0XE3,0XFF,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0XFF,
+0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFF,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X87,0XFF,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XE3,0XF1,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X1F,0XFF,0XFF,0XE3,0XF9,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XE3,0XF8,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XE3,0XF8,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,
+0XE1,0XF0,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XF0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,
+0XFF,0XFF,0XF0,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XF8,0X01,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X87,0XFF,0XFF,0XFE,0X07,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,
+0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XFF,0XFF,0XF0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X70,0X3F,
+0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,
+0XFF,0XFA,0XFF,0XFF,0XFF,0XFF,0XF0,0X20,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XFF,0XFF,0XFF,0XE0,
+0X02,0X1F,0XFF,0XE3,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XE3,0X87,0X1F,0XFF,0XE3,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFE,0X00,0X07,0XFF,0XFF,
+0XFF,0XE7,0X8F,0X8F,0XFF,0XE3,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFE,0X00,0X02,0X7F,0XFF,0XFF,0XE7,0XCF,0X8F,0XFF,0XF0,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X7F,0XFF,0XFF,0XE7,0XCF,0X9F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,0XFF,0XE3,0XFF,0X1F,0XFF,
+0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF8,
+0X30,0X00,0XFF,0XFF,0XFF,0XF3,0XFE,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF8,0X30,0X00,0XFF,0XFF,0XFF,0XF7,0XFF,
+0X3F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0X90,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0X10,0X00,0X00,0XFF,
+0XFF,0XFF,0XF8,0X1F,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XFC,0X10,0X00,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0X1F,0XFF,0XE0,
+0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF8,0X18,0X30,
+0X00,0XFF,0XFF,0XFF,0XE0,0X03,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF8,0X08,0X38,0X00,0XFF,0XFF,0XFF,0XE3,0XC1,0X9F,
+0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF0,
+0X08,0X30,0X01,0XFF,0XFF,0XFF,0XE7,0XF0,0X9F,0XFF,0XFF,0XE1,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0X08,0X00,0X01,0XFF,0XFF,0XFF,0XE7,
+0XF8,0X1F,0XFF,0XFF,0XF9,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XE0,0XE4,0X00,0X01,0XFF,0XFF,0XFF,0XE7,0XFC,0X1F,0XFF,0XFF,0XF8,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0XE2,0X00,0X03,0XFF,0XFF,
+0XFF,0XE3,0XFE,0X1F,0XFF,0XFF,0XF8,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XC0,0XE2,0X00,0X07,0XFF,0XFF,0XFF,0XF1,0XFF,0X1F,0XFF,0XE0,0X00,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X41,0X00,0X0F,
+0XFF,0XFF,0XFF,0XF3,0XFF,0X9F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,0XC0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE0,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,
+0X30,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,0X07,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XC0,0X40,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XBF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0XE0,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0X87,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XE0,0XE0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0X1E,
+0X03,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0XE0,0X00,
+0X7F,0XFF,0XFF,0XFE,0XFF,0XBF,0XCF,0XFE,0X3E,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X3F,0XFF,0X8F,
+0XFE,0X3C,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF0,
+0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X3C,0X0F,0X9F,0XFE,0X3C,0X30,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF8,0X00,0X01,0X1F,0XFF,0XFF,0XFF,0XF0,
+0X03,0XFF,0XFE,0X3C,0X78,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XF8,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFE,0X38,0X78,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFC,0X00,0X07,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFE,0X18,0X78,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X7F,0XFE,0X00,0XF8,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0X80,0X3F,0XFF,
+0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0X00,0XF8,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,
+0X01,0XF0,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XC3,0XF1,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X00,0X00,
+0X31,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X00,0X00,0X31,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X7F,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X78,0X03,0XDF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,
+0X1F,0X8F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X7F,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0X00,0X00,
+0X00,0X01,0X7F,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFD,0X80,0X00,0X00,0X03,0X1F,0XFF,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF8,
+0X80,0X00,0X00,0X02,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X40,0X00,0X00,0X04,0X0F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X60,0X00,0X00,0X0C,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X20,0X00,0X00,0X08,0X07,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X30,0X00,0X00,0X10,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X10,0X00,0X00,
+0X30,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X18,0X00,0X00,0X20,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X08,
+0X00,0X00,0X60,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X04,0X00,0X00,0X40,0X07,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X06,0X00,0X00,0X80,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X02,0X00,0X01,0X80,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X03,0X00,0X01,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X01,0X00,0X02,0X00,
+0X07,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF0,0X01,0X80,0X06,0X00,0X07,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X80,
+0X04,0X00,0X07,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X40,0X08,0X00,0X07,0XFF,0XFF,0XFF,0XE0,
+0X00,0XFE,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,
+0X00,0X40,0X08,0X00,0X07,0XFF,0XFF,0XFF,0XC0,0X03,0XFF,0X80,0X00,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X20,0X10,0X00,0X07,0XFF,0XFF,
+0XFF,0X80,0X0F,0XFF,0XF8,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X00,0X30,0X30,0X00,0X07,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X00,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X10,0X20,0X00,0X07,
+0XFF,0XFF,0XFE,0X00,0XFF,0XE7,0XFE,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X00,0X18,0X40,0X00,0X07,0XFF,0XFF,0XFC,0X01,0XFF,0X81,0XFF,
+0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X08,0XC0,
+0X00,0X07,0XFF,0XFF,0XFC,0X01,0XFF,0X00,0X7F,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X04,0X80,0X00,0X07,0XFF,0XFF,0XF8,0X01,0XFF,
+0XC0,0X7F,0X80,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,
+0X05,0X00,0X00,0X07,0XFF,0XFF,0XF8,0X00,0XFF,0XF8,0X00,0X00,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X03,0X00,0X00,0X07,0XFF,0XFF,0XF0,
+0X00,0X1F,0XFE,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X00,0X03,0X00,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X07,0XFF,0X80,0X00,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X01,0X00,0X00,0X07,0XFF,
+0XFF,0XF1,0XFF,0X81,0XFF,0X80,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X00,0X01,0X80,0X00,0X07,0XFF,0XFF,0XE0,0XFF,0X00,0X7F,0X80,0X00,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X47,0X80,0X80,0X00,
+0X07,0XFF,0XFF,0XE0,0X7F,0XC1,0X3F,0X80,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF0,0X4F,0XC0,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X3F,0XF9,0X4F,
+0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X4C,0X40,
+0X40,0X00,0X07,0XFF,0XFF,0XE0,0X1F,0XFE,0X78,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X64,0XC0,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X0F,
+0XFF,0X80,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,
+0X7F,0XC0,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X05,0XFF,0XF0,0X00,0X00,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X1F,0X00,0XC0,0X00,0X07,0XFF,0XFF,
+0XE0,0X00,0X3F,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X00,0X00,0X80,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X0F,0XFF,0X00,0X00,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X01,0X00,0X00,0X07,
+0XFF,0XFF,0XE0,0X00,0X03,0XFF,0X80,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X00,0X01,0X00,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0X80,
+0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X02,0X00,
+0X00,0X07,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0X00,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X06,0X00,0X00,0X07,0XFF,0XFF,0XE0,0X00,0XFF,
+0XFC,0X00,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,
+0X05,0X00,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFF,0XE0,0X00,0X01,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X0D,0X80,0X00,0X07,0XFF,0XFF,0XE0,
+0X01,0XFF,0X00,0X00,0X03,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X00,0X08,0X80,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFF,0X80,0X00,0X03,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X10,0X40,0X00,0X07,0XFF,
+0XFF,0XE0,0X00,0XFF,0XF0,0X00,0X03,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X00,0X10,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X1F,0XFE,0X00,0X07,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X20,0X20,0X00,
+0X07,0XFF,0XFF,0XE0,0X00,0X03,0XFF,0X80,0X07,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X60,0X30,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X07,0XFF,
+0X80,0X0F,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X40,
+0X10,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0X80,0X1F,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0XC0,0X08,0X00,0X07,0XFF,0XFF,0XE0,0X01,
+0XFF,0XFF,0X00,0X1F,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,
+0X00,0X80,0X0C,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFF,0XF8,0X00,0X3F,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X01,0X80,0X04,0X00,0X07,0XFF,0XFF,
+0XE0,0X01,0XFF,0XE0,0X00,0X7F,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X01,0X00,0X02,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFE,0X00,0X00,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X02,0X00,0X03,0X00,0X07,
+0XFF,0XFF,0XE0,0X01,0XF0,0X00,0X03,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X06,0X00,0X01,0X00,0X07,0XFF,0XFF,0XE0,0X01,0X80,0X00,0X07,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X04,0X00,0X01,
+0X80,0X07,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X1F,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X0C,0X00,0X00,0X80,0X07,0XFF,0XFF,0XE0,0X00,0X00,
+0X00,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X08,
+0X00,0X00,0X40,0X07,0XFF,0XFF,0XE0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X18,0X00,0X00,0X60,0X07,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X10,0X00,0X00,0X20,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X20,0X00,0X00,0X10,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X60,0X00,0X00,0X18,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X40,0X00,0X00,0X08,
+0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF8,0XC0,0X00,0X00,0X04,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF8,0X80,0X00,
+0X00,0X04,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0X00,0X00,0X00,0X02,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+};
diff --git a/Display_code/epd1in54_V2/imagedata.h b/Display_code/epd1in54_V2/imagedata.h
new file mode 100644
index 0000000..2234ead
--- /dev/null
+++ b/Display_code/epd1in54_V2/imagedata.h
@@ -0,0 +1,30 @@
+/**
+ * @filename : imagedata.h
+ * @brief : head file for imagedata.cpp
+ *
+ * Copyright (C) Waveshare September 5 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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.
+ */
+
+extern const unsigned char IMAGE_DATA[];
+
+/* FILE END */
+
+
diff --git a/Display_code/epd1in54_V2/original.ino b/Display_code/epd1in54_V2/original.ino
new file mode 100644
index 0000000..6627719
--- /dev/null
+++ b/Display_code/epd1in54_V2/original.ino
@@ -0,0 +1,92 @@
+/*
+#include
+#include "epd1in54_V2.h"
+#include "imagedata.h"
+#include "epdpaint.h"
+#include
+
+Epd epd;
+unsigned char image[1024];
+Paint paint(image, 0, 0);
+
+unsigned long time_start_ms;
+unsigned long time_now_s;
+#define COLORED 0
+#define UNCOLORED 1
+
+void setup()
+{
+ // put your setup code here, to run once:
+ Serial.begin(115200);
+ Serial.println("e-Paper init and clear");
+ epd.LDirInit();
+ epd.Clear();
+
+ paint.SetWidth(200);
+ paint.SetHeight(24);
+
+ Serial.println("e-Paper paint");
+ paint.Clear(COLORED);
+ paint.DrawStringAt(30, 4, "Hello world!", &Font16, UNCOLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, 10, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawStringAt(30, 4, "e-Paper Demo", &Font16, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, 30, paint.GetWidth(), paint.GetHeight());
+
+ paint.SetWidth(64);
+ paint.SetHeight(64);
+
+ paint.Clear(UNCOLORED);
+ paint.DrawRectangle(0, 0, 40, 50, COLORED);
+ paint.DrawLine(0, 0, 40, 50, COLORED);
+ paint.DrawLine(40, 0, 0, 50, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 16, 60, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawCircle(32, 32, 30, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 120, 60, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawFilledRectangle(0, 0, 40, 50, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 16, 130, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawFilledCircle(32, 32, 30, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 120, 130, paint.GetWidth(), paint.GetHeight());
+ epd.DisplayFrame();
+ delay(2000);
+
+ Serial.println("e-Paper show pic");
+ epd.HDirInit();
+ // epd.Display(IMAGE_DATA);
+
+ //Part display
+ epd.HDirInit();
+ epd.DisplayPartBaseImage(IMAGE_DATA);
+
+ paint.SetWidth(50);
+ paint.SetHeight(60);
+ paint.Clear(UNCOLORED);
+
+ char i = 0;
+ char str[10][10] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
+ for (i = 0; i < 10; i++) {
+ paint.Clear(UNCOLORED);
+ paint.DrawStringAt(10, 10, str[i], &Font24, COLORED);
+ epd.SetFrameMemoryPartial(paint.GetImage(), 80, 70, paint.GetWidth(), paint.GetHeight());
+ epd.DisplayPartFrame();
+ delay(100);
+ }
+
+ Serial.println("e-Paper clear and goto sleep");
+ epd.HDirInit();
+ epd.Clear();
+ epd.Sleep();
+}
+
+void loop()
+{
+
+}
+*/
\ No newline at end of file
diff --git a/Display_code/epd1in54_V2/testing.ino b/Display_code/epd1in54_V2/testing.ino
new file mode 100644
index 0000000..6dbf815
--- /dev/null
+++ b/Display_code/epd1in54_V2/testing.ino
@@ -0,0 +1,530 @@
+/*
+#include
+#include "epd1in54_V2.h"
+#include "imagedata.h"
+#include "epdpaint.h"
+#include
+
+Epd epd;
+unsigned char image[1024];
+Paint paint(image, 0, 0);
+
+unsigned long time_start_ms;
+unsigned long time_now_s;
+#define COLORED 0
+#define UNCOLORED 1
+
+const unsigned char wifilogo[] PROGMEM = {
+// 'imresizer-1702234655501', 35x35px
+0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff,
+0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff,
+0xff, 0xff, 0xe0, 0xff, 0xf0, 0x01, 0xff, 0xe0, 0xff, 0x80, 0x00, 0x3f, 0xe0, 0xfe, 0x00, 0x00,
+0x0f, 0xe0, 0xf8, 0x0f, 0xfe, 0x03, 0xe0, 0xf0, 0x7f, 0xff, 0xc1, 0xe0, 0xe0, 0xff, 0xff, 0xe0,
+0xe0, 0xe3, 0xf0, 0x01, 0xf8, 0xe0, 0xf7, 0xc0, 0x00, 0x7d, 0xe0, 0xff, 0x80, 0x60, 0x3f, 0xe0,
+0xfe, 0x07, 0xfe, 0x0f, 0xe0, 0xfe, 0x1f, 0xff, 0x0f, 0xe0, 0xfe, 0x7f, 0xff, 0xcf, 0xe0, 0xff,
+0xf8, 0x03, 0xff, 0xe0, 0xff, 0xf0, 0x01, 0xff, 0xe0, 0xff, 0xe0, 0xe0, 0xff, 0xe0, 0xff, 0xe3,
+0xf8, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0x1f,
+0xff, 0xe0, 0xff, 0xfe, 0x0f, 0xff, 0xe0, 0xff, 0xfe, 0x0f, 0xff, 0xe0, 0xff, 0xff, 0x1f, 0xff,
+0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0,
+0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0
+};
+
+const unsigned char thankyoulogo[] PROGMEM = {
+// 'imresizer-1702236559618', 200x200px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
+0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3e, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x3c, 0x78, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xbf, 0xf3, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1f, 0xbf, 0xf0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x79, 0x7f, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f, 0xf0,
+0x30, 0x00, 0x00, 0x00, 0x00, 0x41, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0xe0, 0x30, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xff,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
+0x8f, 0xc3, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x78, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x10, 0x90, 0x00, 0x00, 0x06, 0x78, 0x5f, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x01, 0xff, 0xff, 0xe3, 0xf0,
+0x60, 0x00, 0x00, 0x06, 0x10, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x89, 0x05, 0x61, 0xff, 0xff, 0xe1, 0xe0, 0x30, 0x00, 0x00, 0x02, 0x78, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x05, 0x61, 0xff, 0xff,
+0xe0, 0xc3, 0xf0, 0x00, 0x00, 0x06, 0x78, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x78,
+0x6f, 0x00, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0xff, 0xff, 0xe3, 0xf0, 0x10, 0x00, 0x00, 0x06, 0x20, 0x5b, 0x04, 0x20, 0xa0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00,
+0x06, 0x00, 0x5b, 0x04, 0x20, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x06, 0x00, 0x7f, 0x0a, 0xa2, 0x80, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0f, 0xff, 0xe3, 0xe3, 0xf0,
+0x00, 0x00, 0x07, 0x30, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+0x00, 0x00, 0x00, 0x28, 0x0f, 0xff, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x07, 0x78, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x10, 0xc0, 0xc2, 0x06, 0x28, 0x1f, 0xff, 0xe0,
+0xc0, 0x10, 0x02, 0x30, 0xa2, 0x78, 0x3e, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x71, 0x51, 0x81, 0x66, 0x1c, 0x20, 0x1f, 0xff, 0xe1, 0x80, 0xf0, 0x92, 0x2a, 0x26, 0x79, 0x7f,
+0x2a, 0xa9, 0x29, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x82, 0x42, 0x44, 0x12, 0x20, 0x3f,
+0xff, 0xe3, 0xf0, 0x00, 0x92, 0x21, 0x24, 0x01, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0xbb, 0x84, 0xc6, 0x04, 0x26, 0x1c, 0x3f, 0xff, 0xe3, 0xe0, 0xb0, 0x0a, 0x30, 0xa6,
+0x78, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x0c, 0xc4, 0x08, 0x66,
+0x30, 0x38, 0x70, 0x60, 0x00, 0x00, 0x4a, 0x28, 0xa6, 0x31, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x03, 0x53, 0x09, 0x84, 0x08, 0x5c, 0x30, 0x38, 0x70, 0x60, 0x30, 0x01, 0x4a,
+0x28, 0x26, 0xf9, 0x7f, 0x00, 0x04, 0x48, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xb3, 0x0e, 0x8c,
+0x18, 0xf4, 0x50, 0x3f, 0xbf, 0xf0, 0xe1, 0xf0, 0x00, 0x00, 0x02, 0xf8, 0x3e, 0x38, 0x04, 0x40,
+0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x32, 0x08, 0xd7, 0xef, 0xc6, 0xf0, 0x3f, 0xbf, 0xf3, 0xe0,
+0x00, 0x00, 0x00, 0x06, 0x08, 0x01, 0x00, 0x04, 0xf0, 0x51, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x60,
+0x00, 0x60, 0x00, 0x03, 0x00, 0x1f, 0xbf, 0xf3, 0xe0, 0x00, 0x00, 0x00, 0x36, 0x78, 0x6f, 0x1e,
+0x24, 0x14, 0x62, 0x20, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f,
+0xe1, 0xe0, 0x00, 0x01, 0x00, 0x00, 0x70, 0x7f, 0x25, 0x04, 0x80, 0x80, 0x20, 0x00, 0x00, 0x00,
+0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0xe0, 0x72, 0x0c, 0x31, 0xc3, 0x20, 0x78,
+0x3c, 0x09, 0x04, 0x91, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00,
+0x07, 0x8f, 0xc0, 0x02, 0xfc, 0x79, 0xc7, 0xa0, 0x79, 0xff, 0x19, 0x08, 0x91, 0x00, 0x40, 0x00,
+0x00, 0x00, 0x01, 0x40, 0x31, 0x21, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xe4, 0xca, 0x8c,
+0xa0, 0x39, 0xff, 0x02, 0x11, 0x60, 0xb0, 0x80, 0x00, 0x00, 0x00, 0x03, 0x40, 0x20, 0x90, 0x1c,
+0x01, 0x00, 0x3f, 0x00, 0x03, 0xe3, 0x24, 0xfa, 0x88, 0x20, 0x79, 0xff, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x30, 0xc0, 0x00, 0x11, 0x00, 0x3f, 0xf8, 0x02, 0x22, 0x64,
+0xf2, 0x98, 0x64, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x30,
+0x00, 0x00, 0x1f, 0xe0, 0x1f, 0xff, 0xe2, 0x32, 0x65, 0xc4, 0x98, 0x64, 0x78, 0x00, 0x00, 0x03,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x30, 0x00, 0x00, 0x03, 0xe0, 0x3f, 0xff, 0xe3,
+0xf2, 0x67, 0x7c, 0xe7, 0xb8, 0x01, 0x9b, 0x35, 0x54, 0xb0, 0xcc, 0xcd, 0x48, 0x00, 0x00, 0x03,
+0x00, 0x31, 0xc0, 0xfc, 0x01, 0x00, 0x1f, 0xff, 0xe3, 0xf2, 0x00, 0x30, 0x43, 0x10, 0xf8, 0x22,
+0x04, 0x64, 0x88, 0x82, 0x95, 0x78, 0x00, 0x00, 0x02, 0x00, 0x17, 0x07, 0xc6, 0x13, 0x00, 0x07,
+0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x31, 0x26, 0x64, 0xb0, 0xc2, 0xdd, 0x48, 0x00,
+0x00, 0x00, 0x00, 0x1c, 0x04, 0x02, 0x32, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x78, 0x20, 0x85, 0x50, 0x80, 0x92, 0x95, 0x48, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x03, 0x32,
+0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1b, 0x30, 0x43, 0x00, 0xc8, 0xc0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x01, 0x1f, 0xe6, 0x1f, 0xff, 0xe3, 0xc6, 0x0c, 0x78,
+0xc0, 0x80, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+0x03, 0x02, 0x02, 0x3f, 0xff, 0xe3, 0xc4, 0x0c, 0x78, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x3f, 0xff, 0xe0, 0x1f,
+0x8c, 0x01, 0xf0, 0x80, 0x78, 0x27, 0x28, 0xeb, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x02, 0x02, 0x03, 0x1f, 0xff, 0x05, 0x89, 0x8c, 0xb5, 0x30, 0x80, 0xf9, 0xd5, 0x5a,
+0x2b, 0xe4, 0x2a, 0x1a, 0x04, 0x50, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x02, 0x02, 0x1f, 0x80,
+0x07, 0xd9, 0x0c, 0xfd, 0x10, 0x80, 0x78, 0xa9, 0x2b, 0xeb, 0xe0, 0x03, 0x51, 0x10, 0x80, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x02, 0x10, 0x00, 0x00, 0x0f, 0xbc, 0x01, 0xf5, 0xc0, 0x78,
+0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x40, 0x38, 0x01, 0x8e,
+0x00, 0x00, 0x00, 0x1f, 0xfe, 0x01, 0xff, 0xc0, 0x78, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0xe0, 0x00, 0xfc, 0x1f, 0xff, 0xe3, 0xd9, 0x8c, 0x79, 0x10,
+0x8f, 0xf8, 0xfe, 0x3f, 0xf1, 0xef, 0x8f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0xff, 0xe0, 0x19, 0x0c, 0x01, 0x30, 0x8f, 0xf9, 0xff, 0x3f, 0xf1, 0xef, 0x9f,
+0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x0f, 0xac,
+0x01, 0xf4, 0x9f, 0xf9, 0xff, 0x3f, 0xf9, 0xef, 0xbf, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xc9, 0xac, 0x79, 0x14, 0x9f, 0xf9, 0xef, 0xbf, 0xf9,
+0xef, 0xbe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
+0x19, 0xac, 0x01, 0x34, 0x9f, 0x79, 0xe7, 0x9e, 0xf9, 0xff, 0x3c, 0xf0, 0x00, 0x00, 0x08, 0x1f,
+0x0f, 0x07, 0x01, 0x07, 0xe1, 0xc0, 0x3f, 0xff, 0xe0, 0x1f, 0xac, 0x01, 0xf4, 0x9e, 0x78, 0x1f,
+0x9e, 0xf9, 0xfe, 0x3f, 0xf0, 0x00, 0x00, 0x18, 0x1f, 0x0f, 0x1f, 0x81, 0x87, 0xe3, 0xf0, 0x18,
+0x00, 0x03, 0xdf, 0x2c, 0x7b, 0xf6, 0x9e, 0x78, 0xff, 0x9e, 0x79, 0xfe, 0x3f, 0xf0, 0x00, 0x00,
+0x1c, 0x19, 0x86, 0x19, 0xc1, 0x81, 0x87, 0x30, 0x1c, 0x00, 0x02, 0x43, 0xac, 0x48, 0x72, 0x9e,
+0x79, 0xff, 0x9e, 0x79, 0xfe, 0x3f, 0xf0, 0x00, 0x00, 0x1c, 0x19, 0x86, 0x18, 0x03, 0xc1, 0x86,
+0x19, 0xff, 0xff, 0xe2, 0x47, 0x8c, 0x48, 0xd0, 0x9e, 0x79, 0xff, 0x9e, 0xf9, 0xff, 0x3c, 0x00,
+0x00, 0x00, 0x34, 0x1f, 0x86, 0x1b, 0xc3, 0xc1, 0x86, 0x19, 0xff, 0xff, 0xe2, 0x4d, 0x8c, 0x49,
+0x90, 0x9f, 0x79, 0xef, 0x9e, 0xf9, 0xef, 0x3c, 0xf0, 0x00, 0x00, 0x36, 0x1f, 0x06, 0x1b, 0xc6,
+0xc1, 0x86, 0x19, 0xff, 0xff, 0xe2, 0x59, 0x8c, 0x4b, 0x10, 0x9f, 0xf9, 0xff, 0xbe, 0x7b, 0xef,
+0xbe, 0xf0, 0x00, 0x00, 0x7e, 0x1b, 0x06, 0x18, 0xc7, 0xe1, 0x87, 0x31, 0xff, 0xff, 0xe2, 0x71,
+0x0c, 0x4e, 0x10, 0x9f, 0xfd, 0xff, 0xbe, 0x7b, 0xff, 0xbf, 0xf0, 0x00, 0x00, 0x7f, 0x1b, 0x8f,
+0x1f, 0x87, 0xe1, 0x83, 0xf1, 0xff, 0xff, 0xe3, 0xc1, 0x8c, 0x78, 0x31, 0x8f, 0xfd, 0xff, 0xbe,
+0x7b, 0xf7, 0x9f, 0xf0, 0x00, 0x00, 0x63, 0x19, 0x8f, 0x0f, 0x0c, 0x21, 0x81, 0xe1, 0xff, 0xff,
+0xe2, 0x07, 0x38, 0x40, 0xe7, 0x0f, 0xfc, 0xf7, 0xbe, 0x7b, 0xe7, 0x8f, 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, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc,
+0x7e, 0x7f, 0x07, 0xfe, 0x07, 0xc3, 0xf3, 0xf0, 0xfc, 0x0f, 0x03, 0xc0, 0xfe, 0x07, 0xe3, 0xb1,
+0xa0, 0x00, 0x40, 0x00, 0xba, 0x8a, 0xa9, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3,
+0xf9, 0xfc, 0x0f, 0xc7, 0xe3, 0xff, 0x87, 0xf3, 0xf9, 0xb6, 0xb6, 0xdb, 0x04, 0x80, 0x88, 0xb1,
+0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xe7, 0xff, 0xc7,
+0xf3, 0xf9, 0xb6, 0xb6, 0x5b, 0x00, 0x02, 0x90, 0x99, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07,
+0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xe7, 0xff, 0xc7, 0xf3, 0xf1, 0xb6, 0xb6, 0xdb, 0x00, 0x12,
+0xa2, 0xa1, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xcf,
+0xff, 0xc7, 0xf3, 0xf9, 0xb6, 0xb7, 0xfb, 0x03, 0xb2, 0xab, 0x11, 0xff, 0xfc, 0xfe, 0x7f, 0x07,
+0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf8, 0x07, 0xcf, 0xcf, 0xef, 0xe7, 0xf3, 0xf0, 0x00, 0x05, 0x10,
+0x04, 0x80, 0x00, 0x01, 0xff, 0xfc, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf0, 0x07,
+0xef, 0xcf, 0xcf, 0xe7, 0xf3, 0xf0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe,
+0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf0, 0x07, 0xef, 0xcf, 0xcf, 0xe7, 0xf3, 0xf8, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb,
+0xf0, 0x07, 0xef, 0xcf, 0xc7, 0xe7, 0xf3, 0xf9, 0xf9, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x1f,
+0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xfb, 0xf3, 0xff, 0xe0, 0x03, 0xef, 0x8f, 0xc7, 0xe7, 0xf3,
+0xf8, 0x61, 0x84, 0x80, 0x00, 0x00, 0x01, 0x10, 0x9f, 0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xfb,
+0xf3, 0xff, 0xe0, 0x03, 0xef, 0x8f, 0xcf, 0xe7, 0xf3, 0xf0, 0x41, 0x84, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x0f, 0xdf, 0x07, 0xfb, 0xf3, 0xff, 0xe0, 0x03, 0xff, 0x8f, 0xcf,
+0xe7, 0xf3, 0xf8, 0x42, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0xdf,
+0x07, 0xff, 0xf3, 0xff, 0xe0, 0x03, 0xff, 0x8f, 0xc7, 0xe7, 0xf3, 0xf0, 0x42, 0x46, 0x00, 0x00,
+0x40, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0xdf, 0x87, 0xff, 0xf3, 0xff, 0xc0, 0x01, 0xff,
+0x0f, 0xc7, 0xe7, 0xf3, 0xf8, 0x42, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff,
+0x0f, 0xdf, 0x87, 0xff, 0xf3, 0xff, 0xc0, 0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x43, 0xc6,
+0x00, 0x00, 0x04, 0x00, 0x20, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xc0,
+0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x67, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1f, 0xc0,
+0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xe0, 0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8,
+0x44, 0x25, 0x00, 0x00, 0x00, 0x00, 0x24, 0x1f, 0xc0, 0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3,
+0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x44, 0x24, 0x80, 0x00, 0x40, 0x20, 0x04,
+0x1f, 0xc0, 0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7,
+0xf3, 0xf8, 0x4c, 0x14, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0x9f, 0x87,
+0xff, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x68, 0x14, 0x40, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0x9f, 0x87, 0xdf, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f,
+0xcf, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f,
+0xff, 0x87, 0xdf, 0xf3, 0xff, 0xf0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0xff, 0xc7, 0xdf, 0xf3, 0xff, 0xf0, 0x00,
+0xfe, 0x0f, 0xc7, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe,
+0x7f, 0x1f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb, 0xf0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf0, 0x22,
+0x78, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb,
+0xf8, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf0, 0x24, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x1f,
+0xc0, 0xfe, 0x7f, 0x3f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3,
+0xf0, 0x20, 0x00, 0x70, 0x38, 0x00, 0x00, 0x05, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x9f, 0xc7, 0xcf,
+0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xef, 0xe7, 0xf3, 0xf0, 0x2c, 0xfc, 0xa0, 0x02, 0x22, 0x24,
+0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xc7, 0xc7, 0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xff,
+0xe7, 0xff, 0xf0, 0x30, 0x84, 0x20, 0x12, 0x26, 0x24, 0x20, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f,
+0xc7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe, 0x07, 0xff, 0xc3, 0xff, 0xf0, 0x40, 0x04, 0xf0, 0x02,
+0x24, 0x04, 0x20, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xe7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe,
+0x07, 0xff, 0xc3, 0xff, 0xe0, 0x80, 0x04, 0x42, 0x02, 0x24, 0x04, 0x44, 0x1f, 0xc0, 0xfe, 0x7f,
+0x3f, 0x8f, 0xe7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe, 0x03, 0xff, 0x81, 0xff, 0xe0, 0x80, 0x04,
+0x02, 0x03, 0xe1, 0x14, 0xc2, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xe7, 0xc3, 0xf3, 0xf9, 0xfc,
+0x00, 0xfe, 0x01, 0xff, 0x00, 0xff, 0xc0, 0x80, 0x18, 0x22, 0x12, 0x21, 0x04, 0x01, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x00,
+0x7c, 0x20, 0x1c, 0x02, 0x2f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x28, 0x0c, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x80, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x02, 0x20,
+0x04, 0x01, 0x1f, 0xf8, 0x60, 0x10, 0x67, 0xfc, 0x00, 0x07, 0x80, 0x03, 0xe6, 0x84, 0x22, 0x85,
+0x51, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x60, 0x30, 0xc7,
+0xfc, 0x00, 0x07, 0x80, 0x03, 0xe6, 0x94, 0xa2, 0xb5, 0x53, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x70, 0x30, 0x87, 0xfc, 0x00, 0x07, 0x80, 0x03, 0xe0, 0x00,
+0x02, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xf0,
+0x31, 0x82, 0x60, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f,
+0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xd0, 0x33, 0x03, 0xfc, 0x3e, 0xf7, 0x87, 0xe3,
+0xe3, 0xf1, 0xe7, 0x00, 0x3d, 0xe1, 0xf0, 0xf7, 0x8f, 0xbc, 0x00, 0x01, 0x94, 0x28, 0x91, 0x91,
+0x80, 0x90, 0x33, 0x03, 0xfc, 0x7e, 0xf7, 0x8f, 0xf3, 0xe7, 0xf9, 0xff, 0x80, 0x3f, 0xe7, 0xfc,
+0xff, 0xcf, 0xbe, 0x00, 0x02, 0x14, 0x20, 0x09, 0x09, 0x80, 0x98, 0x36, 0x01, 0xdc, 0x7e, 0xf7,
+0x9f, 0xfb, 0xef, 0xfd, 0xff, 0x80, 0x7f, 0xe7, 0xfc, 0xff, 0xcf, 0xbe, 0x00, 0x00, 0x14, 0x28,
+0xf1, 0x09, 0x81, 0x88, 0x3c, 0x00, 0x00, 0x3c, 0xf7, 0xde, 0xfb, 0xef, 0x3d, 0xff, 0xc0, 0x7f,
+0xe7, 0xbc, 0xff, 0xcf, 0xfc, 0x00, 0x04, 0x14, 0x21, 0x0d, 0x09, 0x81, 0x08, 0x38, 0x03, 0xfc,
+0x3c, 0xf7, 0x9e, 0x7b, 0xef, 0x3c, 0xf7, 0xc0, 0x79, 0xe7, 0xbe, 0xfb, 0xcf, 0xfc, 0x00, 0x04,
+0x14, 0x20, 0x05, 0x09, 0x81, 0x0c, 0x38, 0x07, 0xfe, 0x3e, 0xe7, 0x9f, 0xfb, 0xef, 0xfc, 0xf7,
+0xc0, 0x79, 0xe0, 0x7e, 0xfb, 0xcf, 0xf8, 0x00, 0x04, 0x14, 0x22, 0x05, 0x09, 0x83, 0x0c, 0x38,
+0x07, 0xfc, 0x1e, 0xe7, 0x9f, 0xfb, 0xef, 0xfc, 0xf7, 0xc0, 0x79, 0xe1, 0xfe, 0x7b, 0xcf, 0xf8,
+0x00, 0x04, 0x14, 0x2a, 0x05, 0x09, 0x83, 0xfc, 0x3c, 0x02, 0x04, 0x1f, 0xe7, 0x9f, 0xfb, 0xef,
+0xfc, 0xf7, 0xc0, 0x79, 0xe7, 0xfe, 0xfb, 0xcf, 0xf8, 0x00, 0x04, 0x14, 0x28, 0x05, 0x09, 0x82,
+0x06, 0x36, 0x07, 0xff, 0x1f, 0xe7, 0x9e, 0x03, 0xef, 0x00, 0xf7, 0xc0, 0x79, 0xe7, 0xbc, 0x7b,
+0xcf, 0xf8, 0x00, 0x00, 0x14, 0x20, 0x05, 0x09, 0x86, 0x06, 0x36, 0x07, 0xff, 0x1f, 0xc7, 0x9e,
+0x7b, 0xef, 0x3c, 0xf7, 0xc0, 0x79, 0xef, 0xbe, 0x7b, 0xcf, 0xfc, 0x00, 0x02, 0x12, 0x29, 0x0d,
+0x09, 0x86, 0x06, 0x33, 0x03, 0xfe, 0x0f, 0xc7, 0xde, 0xfb, 0xef, 0x3d, 0xf7, 0xc0, 0x7f, 0xef,
+0xfe, 0xfb, 0xef, 0xbc, 0x00, 0x00, 0xf1, 0xa8, 0xf5, 0x09, 0x84, 0x02, 0x31, 0x80, 0x00, 0x0f,
+0xc7, 0xdf, 0xfb, 0xef, 0xfd, 0xf7, 0xc0, 0x7f, 0xff, 0xfe, 0xfb, 0xef, 0xbe, 0x00, 0x00, 0x10,
+0x08, 0x00, 0x01, 0x84, 0x03, 0x31, 0x83, 0xfc, 0x0f, 0xc7, 0xcf, 0xfb, 0xe7, 0xfd, 0xf7, 0xc0,
+0x3f, 0xf7, 0xfe, 0xfb, 0xef, 0x9e, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x8c, 0x03, 0x30, 0xc3,
+0xfc, 0x0f, 0x87, 0xc7, 0xe3, 0xe3, 0xf1, 0xf3, 0xc0, 0x3d, 0xe3, 0xfe, 0xfb, 0xef, 0x9e, 0x00,
+0x00, 0x10, 0x10, 0x00, 0x01, 0x8c, 0x01, 0x30, 0x67, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00, 0x88, 0x01,
+0x10, 0x66, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x20, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80,
+0x00, 0x00, 0x00, 0x03, 0xbc, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x40, 0x00, 0x01, 0x98, 0x0e, 0x70,
+0x0c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x3f, 0x20, 0x12, 0x58, 0x48, 0x89, 0x82, 0x00, 0x81, 0x40,
+0x01, 0x81, 0x11, 0x54, 0x00, 0xc0, 0x0f, 0x08, 0x70, 0x1c, 0x0e, 0x00, 0xc0, 0x00, 0x00, 0x3f,
+0x32, 0x1a, 0x7a, 0x49, 0xab, 0xce, 0x00, 0x21, 0x05, 0x1f, 0x82, 0x00, 0xc0, 0x00, 0xc7, 0xff,
+0x10, 0xbc, 0x30, 0x0a, 0x31, 0x80, 0x00, 0x20, 0x7f, 0x36, 0x92, 0x32, 0x4f, 0xa0, 0x48, 0x00,
+0x01, 0x10, 0x82, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x11, 0x9c, 0x30, 0x06, 0x31, 0x80, 0x00,
+0x20, 0x3f, 0x3e, 0x9a, 0x32, 0x6f, 0xa2, 0x58, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78,
+0x07, 0xfc, 0x31, 0x8c, 0x66, 0x26, 0x33, 0x04, 0x00, 0x00, 0x1e, 0x2a, 0x1a, 0x32, 0x4e, 0xa3,
+0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0x07, 0x0c, 0x33, 0x8c, 0x66, 0x2e, 0x33,
+0xc4, 0x00, 0x00, 0x00, 0x22, 0x82, 0x12, 0x48, 0xb9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x8c,
+0xfd, 0xcc, 0xc3, 0xfc, 0x31, 0x8c, 0x6e, 0x5f, 0x35, 0x80, 0x00, 0x00, 0xbf, 0x22, 0x92, 0x32,
+0x48, 0xb8, 0xd0, 0x00, 0x00, 0x03, 0x9d, 0x99, 0xdc, 0xcf, 0xc0, 0xc7, 0xfc, 0x3d, 0x8c, 0xee,
+0x43, 0x39, 0x88, 0x00, 0x00, 0xbf, 0x22, 0x9a, 0x32, 0x58, 0xa2, 0x50, 0x00, 0x00, 0x03, 0x9f,
+0x9b, 0xfd, 0xc6, 0xc0, 0xc0, 0x7f, 0x39, 0x8c, 0xfe, 0x41, 0xb1, 0xf0, 0x00, 0x00, 0xe1, 0x22,
+0x52, 0x32, 0x58, 0xa2, 0x58, 0x00, 0x00, 0x03, 0x87, 0x1f, 0xfd, 0x86, 0xe0, 0xc0, 0x0f, 0x01,
+0x8d, 0x33, 0xc1, 0xb0, 0x60, 0x00, 0x00, 0xff, 0x22, 0x10, 0x30, 0x58, 0xa3, 0x4e, 0x00, 0x00,
+0x03, 0x86, 0x1f, 0xfd, 0xbe, 0x78, 0xc0, 0x00, 0x01, 0x8d, 0x03, 0x80, 0x80, 0x00, 0x00, 0x00,
+0x7e, 0x22, 0x62, 0x91, 0x88, 0xb9, 0xc6, 0x00, 0x00, 0x02, 0x9f, 0x9e, 0xed, 0xfe, 0x3c, 0xc3,
+0xfc, 0x01, 0x8e, 0x01, 0x00, 0x88, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0x9f, 0x9c, 0xed, 0xf0, 0x0c, 0xc3, 0xfc, 0x01, 0x84, 0x00, 0x00, 0xbc, 0x08,
+0x18, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x1c, 0xed, 0x80,
+0x8e, 0xc7, 0xfe, 0x01, 0xf8, 0x00, 0x00, 0xbd, 0xdc, 0xc9, 0x9c, 0x3f, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0x9c, 0xcd, 0xc4, 0xce, 0xc6, 0x06, 0x01, 0x8b, 0xaa, 0x80,
+0xb5, 0xfd, 0xfb, 0xdc, 0x1c, 0x06, 0x06, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x88,
+0xcc, 0xfc, 0xfe, 0xc7, 0xfc, 0x03, 0x89, 0x6f, 0x00, 0xb1, 0xf5, 0xeb, 0xd4, 0x0f, 0x0f, 0xc0,
+0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x00, 0x44, 0x78, 0x7c, 0x83, 0xfc, 0x04, 0x81,
+0x6b, 0x21, 0x3d, 0x9d, 0x9b, 0xd8, 0x3f, 0x14, 0x80, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+0x86, 0x00, 0x00, 0x00, 0x30, 0x01, 0xf8, 0x0c, 0x81, 0x6b, 0x31, 0x35, 0xbd, 0xbb, 0x4e, 0x3f,
+0x07, 0x04, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+0x09, 0x81, 0x6f, 0x23, 0x35, 0xb5, 0xbb, 0xd6, 0x00, 0x02, 0x82, 0xa4, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x03, 0x9f, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x01, 0x4e, 0xa2, 0x3d, 0xbd, 0xfb,
+0xdc, 0x37, 0x19, 0xe6, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9f, 0x80, 0x00, 0x00, 0x09,
+0xe7, 0xfc, 0x0f, 0x00, 0x00, 0x1c, 0x10, 0x10, 0x00, 0x88, 0x23, 0x26, 0x20, 0xa4, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x08, 0x40, 0x87, 0xfc, 0x0e, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x7f, 0x08, 0x27, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00,
+0x08, 0x08, 0xe3, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x45, 0x64,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x80, 0x01, 0x08, 0x08, 0xa0, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x01, 0x84, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f,
+0x00, 0x00, 0x40, 0x08, 0x23, 0xfc, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06,
+0x07, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9d, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xfc, 0x24,
+0x48, 0x00, 0x08, 0x22, 0x23, 0x02, 0x06, 0x3f, 0x18, 0x04, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x8f, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xfc, 0x24, 0x88, 0x44, 0x2a, 0x20, 0xa0, 0x0a, 0x0e,
+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x80, 0x00, 0x00, 0x00, 0x06,
+0x64, 0x26, 0x6c, 0xcc, 0x2c, 0x30, 0xb3, 0x14, 0x06, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x80, 0x80, 0x00, 0x00, 0x00, 0xe7, 0xfe, 0x24, 0x28, 0x40, 0xa8, 0x22, 0xa1,
+0x10, 0x06, 0x3f, 0x30, 0x41, 0xde, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xe3, 0xbc, 0x06, 0x48, 0x00, 0x40, 0x12, 0x20, 0x00, 0x06, 0x36, 0x30, 0x82, 0x12, 0x94,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0xe1, 0xbc, 0x00, 0x40, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x02, 0x00, 0x28, 0xa2, 0x50, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80,
+0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3f, 0x25, 0xa2,
+0x52, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0xe7, 0xfc, 0x00, 0x00,
+0x00, 0x00, 0x35, 0xd5, 0xd6, 0xa7, 0x3f, 0x25, 0x21, 0xcc, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x18, 0x80, 0x00, 0x00, 0x01, 0xe7, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfd, 0xdb, 0xe6, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x27, 0xfc,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x90, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x06, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x37, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0e, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3f, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfc, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
+0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+void setup()
+{
+ // put your setup code here, to run once:
+ Serial.begin(115200);
+ Serial.println("e-Paper init and clear");
+ epd.LDirInit(); //init in landscape mode? maybe low mode
+ epd.Clear(); //clear display
+
+ //set drawing area?
+ paint.SetWidth(200);
+ paint.SetHeight(24);
+
+ Serial.println("e-Paper paint");
+ paint.Clear(COLORED); //flashes 0/black only on paint area
+ paint.DrawStringAt(30, 4, "Hello world!", &Font16, UNCOLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, 10, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawStringAt(30, 4, "e-Paper Demo", &Font16, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, 30, paint.GetWidth(), paint.GetHeight());
+
+ paint.SetWidth(64);
+ paint.SetHeight(64);
+
+ paint.Clear(UNCOLORED);
+ paint.DrawRectangle(0, 0, 40, 50, COLORED);
+ paint.DrawLine(0, 0, 40, 50, COLORED);
+ paint.DrawLine(40, 0, 0, 50, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 16, 60, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawCircle(32, 32, 30, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 120, 60, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawFilledRectangle(0, 0, 40, 50, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 16, 130, paint.GetWidth(), paint.GetHeight());
+
+ paint.Clear(UNCOLORED);
+ paint.DrawFilledCircle(32, 32, 30, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 120, 130, paint.GetWidth(), paint.GetHeight());
+ epd.DisplayFrame();
+ delay(2000);
+
+ Serial.println("e-Paper show pic");
+ epd.HDirInit();
+ // epd.Display(IMAGE_DATA);
+
+ //Part display
+ epd.HDirInit();
+ epd.DisplayPartBaseImage(thankyoulogo);
+ //my code
+ epd.Clear(); //clear display
+
+ paint.SetWidth(35);
+ paint.SetHeight(35);
+
+ paint.Clear(COLORED);
+
+ epd.DisplayPartBaseImage(thankyoulogo);
+
+ epd.SetFrameMemory(paint.GetImage(), 0, 0, paint.GetWidth(), paint.GetHeight());
+
+ epd.DisplayFrame();
+ delay(100);
+
+ //end my code
+ paint.SetWidth(50);
+ paint.SetHeight(60);
+ paint.Clear(UNCOLORED);
+
+ char i = 0;
+ char str[10][10] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
+ for (i = 0; i < 10; i++) {
+ paint.Clear(UNCOLORED);
+ paint.DrawStringAt(10, 10, str[i], &Font24, COLORED);
+ epd.SetFrameMemoryPartial(paint.GetImage(), 80, 70, paint.GetWidth(), paint.GetHeight());
+ epd.DisplayPartFrame();
+ delay(100);
+ }
+
+ Serial.println("e-Paper clear and goto sleep");
+ epd.HDirInit();
+ epd.Clear();
+ epd.Sleep();
+}
+
+void loop()
+{
+
+}
+
+void setup() {
+ Serial.begin(115200);
+ epd.LDirInit();
+ epd.Clear(); // clears whole screen to white
+ paint.SetRotate(ROTATE_180); //rotate screen
+
+ paint.SetWidth(100);
+ paint.SetHeight(8);
+ paint.Clear(COLORED); //paints the height and width the given colour
+ paint.DrawStringAt(30, 2, "smallest", &Font8, UNCOLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 50, (150), paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+
+ paint.SetWidth(120);
+ paint.SetHeight(12);
+ paint.Clear(COLORED); //paints the height and width the given colour
+ paint.DrawStringAt(40, 2, "Smaller", &Font12, UNCOLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 40, (136), paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+
+ paint.SetWidth(140);
+ paint.SetHeight(14);
+ paint.Clear(COLORED); //paints the height and width the given colour
+ paint.DrawStringAt(10, 2, "Hello world!", &Font16, UNCOLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 30, (120), paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+
+ paint.SetWidth(160);
+ paint.SetHeight(18);
+ paint.Clear(COLORED); //paints the height and width the given colour
+ paint.DrawStringAt(40, 2, "BIGGER", &Font20, UNCOLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 20, (100), paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+
+ paint.SetWidth(180);
+ paint.SetHeight(20);
+ paint.Clear(COLORED); //paints the height and width the given colour
+ paint.DrawStringAt(30, 1, "BIGGEST!", &Font24, UNCOLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 10, (78), paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+
+ epd.DisplayFrame();
+}
+
+void setup() {
+ Serial.begin(115200);
+
+ epd.LDirInit();
+ epd.Clear(); // clears whole screen to white
+ paint.SetRotate(ROTATE_180); //rotate screen
+
+ paint.SetWidth(35);
+ paint.SetHeight(35);
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 35, 35, wifilogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 40, (200-35), paint.GetWidth(), paint.GetHeight());
+
+ paint.SetWidth(35);
+ paint.SetHeight(35);
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 35, 35, batterylogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, (200-35), paint.GetWidth(), paint.GetHeight());
+
+ paint.SetWidth(200);
+ paint.SetHeight(18);
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt(2, 2, "YES ABSTAIN NO", &Font20, COLORED); //moves text to co-ordinates with-in the set height and width
+ //paint.DrawStringAt(0, 2, "Yes Abstain No", &Font16, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, 0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+
+ epd.DisplayFrame();
+}
+
+void setup() {
+ // put your setup code here, to run once:
+ Serial.begin(115200);
+ epd.LDirInit();
+ paint.SetRotate(ROTATE_180); //rotate screen
+ epd.Clear();
+
+ paint.SetWidth(40);
+ paint.SetHeight(50);
+
+ paint.Clear(COLORED);
+ paint.DrawHorizontalLine(0, 24, 50, UNCOLORED); //co-ordinates to start followed by length of line
+ paint.DrawHorizontalLine(0, 25, 50, UNCOLORED);
+ paint.DrawHorizontalLine(0, 26, 50, UNCOLORED);
+
+ paint.DrawLine(40, 0, 0, 50, UNCOLORED);
+ paint.DrawLine(39, 0, 0, 49, UNCOLORED);
+ epd.SetFrameMemory(paint.GetImage(), 16, 60, paint.GetWidth(), paint.GetHeight());
+
+ epd.DisplayFrame();
+}
+
+*/
\ No newline at end of file
diff --git a/voting_device/Button_Class.cpp b/voting_device/Button_Class.cpp
new file mode 100644
index 0000000..18d5bf5
--- /dev/null
+++ b/voting_device/Button_Class.cpp
@@ -0,0 +1,15 @@
+#include "Button_Class.h"
+
+bool ButtonVote::getState(void){
+ bool temp =ButtonVote::State;
+ ButtonVote::resetState();
+ return temp;
+}
+
+void ButtonVote::setState(bool State){
+ ButtonVote::State = State;
+}
+
+void ButtonVote::resetState(void){
+ ButtonVote::State = false;
+}
\ No newline at end of file
diff --git a/voting_device/Button_Class.h b/voting_device/Button_Class.h
new file mode 100644
index 0000000..7127ea1
--- /dev/null
+++ b/voting_device/Button_Class.h
@@ -0,0 +1,14 @@
+#ifndef BUTTONCLASS
+#define BUTTONCLASS
+
+class ButtonVote{
+public:
+ bool getState(void);
+ void setState(bool);
+private:
+ bool State = false;
+ void resetState(void);
+};
+
+
+#endif
\ No newline at end of file
diff --git a/voting_device/button_interrupts.cpp b/voting_device/button_interrupts.cpp
new file mode 100644
index 0000000..ef148af
--- /dev/null
+++ b/voting_device/button_interrupts.cpp
@@ -0,0 +1,22 @@
+#include "button_interrupts.h"
+
+ButtonVote ButtonYes;
+ButtonVote ButtonNo;
+ButtonVote ButtonAbstain;
+
+ICACHE_RAM_ATTR void Isr_Btn_1(void){
+ delay(30);// Debounce
+ ButtonYes.setState(1);
+//todo send stuff if button 1 is pressed
+}
+ICACHE_RAM_ATTR void Isr_Btn_2(void){
+ delay(30);// Debounce
+ ButtonAbstain.setState(1);
+//todo send stuff if button 2 is pressed
+}
+ICACHE_RAM_ATTR void Isr_Btn_3(void){
+ delay(30);// Debounce
+ ButtonNo.setState(1);
+//todo send stuff if button 3 is pressed
+}
+
diff --git a/voting_device/button_interrupts.h b/voting_device/button_interrupts.h
new file mode 100644
index 0000000..b4e2b37
--- /dev/null
+++ b/voting_device/button_interrupts.h
@@ -0,0 +1,16 @@
+#ifndef BUTTON_ISR
+#define BUTTON_ISR
+#include
+
+#include "Button_Class.h"
+extern ButtonVote ButtonYes;
+extern ButtonVote ButtonNo;
+extern ButtonVote ButtonAbstain;
+
+
+ICACHE_RAM_ATTR void Isr_Btn_1(void);
+ICACHE_RAM_ATTR void Isr_Btn_2(void);
+ICACHE_RAM_ATTR void Isr_Btn_3(void);
+
+
+#endif
\ No newline at end of file
diff --git a/voting_device/config.h b/voting_device/config.h
index 59223fe..378799b 100644
--- a/voting_device/config.h
+++ b/voting_device/config.h
@@ -1,47 +1,49 @@
+#ifndef CONFIG_H
+#define CONFIG_H
#include
-#include // default wifi library
-#include //Mqtt library by Nick O'Leary
+#include
+#include
+
+#include "power.h"
+#include "display.h"
+
//#include
+#define STRINGSIZE 256
+#define BATTERY_PIN A0
+#define REFERENCE_VOLTAGE 3.3
+
+#include "mqtt.h"
//Definition of GPIOS for Buttons
-#define BUTTON_PIN_1 5 // GPIO 5 (entspricht D1) für Taster 1
-#define BUTTON_PIN_2 4 // GPIO 4 (entspricht D2) für Taster 2
-#define BUTTON_PIN_3 16 // GPIO 16 (entspricht D0) für Taster 3
-
-// WLAN-Settings
-const char* ssid = "RasPi-Netzwerk";
-const char* password = "";
-
-// MQTT-Server Settings
-const char* mqtt_server = "10.42.0.1";
-const int mqtt_port = 1883;
-const char* mqtt_user = "";
-const char* mqtt_password = "";
-// Mqtt topics to subscribe
-String topicInit = "/registration/esp/" + WiFi.macAddress();
-// Mqtt topics to publish
+#define BUTTON_PIN_1 0 // GPIO 5 (entspricht D1) für Taster 1
+#define BUTTON_PIN_2 2 // GPIO 4 (entspricht D2) für Taster 2
+#define BUTTON_PIN_3 12 // GPIO 16 (entspricht D0) für Taster 3
+
+#define BOOT 0
+#define QUESTION 1
+#define VOTE 2
+#define CONFIRM 3
+#define CLOSE_VOTE 4
+
+#define MQTTpubQos 1
+#define MQTTsubQos 1
//configuration of functionality
//#define ENCRYPTION
-#define STATUS_LEDS
-//#define E_PAPER
-#define DEBUG
-
//Includes according to config
-
#ifdef ENCRYPTION
#include //todo find encryption library
#endif
-#ifdef STATUS_LEDS
-#define LED_PIN_1 14 // GPIO 14 (entspricht D5) für LED 1
-#define LED_PIN_2 12 // GPIO 12 (entspricht D6) für LED 2
-#define LED_PIN_3 13 // GPIO 13 (entspricht D7) für LED 3
+#ifdef ISRS_FOR_BUTTONS
+#include "button_interrupts.h"
+void attachISR(void){
+ attachInterrupt(digitalPinToInterrupt(BUTTON_PIN_1), Isr_Btn_1, FALLING);
+ attachInterrupt(digitalPinToInterrupt(BUTTON_PIN_2), Isr_Btn_2, FALLING);
+ attachInterrupt(digitalPinToInterrupt(BUTTON_PIN_3), Isr_Btn_3, FALLING);
+}
+#endif
#endif
-
-#ifdef E_PAPER
-#include //todo find epaper library
-#endif
\ No newline at end of file
diff --git a/voting_device/display.cpp b/voting_device/display.cpp
new file mode 100644
index 0000000..1e4cfd2
--- /dev/null
+++ b/voting_device/display.cpp
@@ -0,0 +1,165 @@
+#include "display.h"
+#include "images.h"
+
+Epd epd;
+unsigned char image[5*1024];
+Paint paint(image, 0, 0);
+
+void initDisplay(){
+ //E-paper init
+ epd.LDirInit();
+ epd.Clear(); // clears whole screen to white
+ paint.SetRotate(ROTATE_270); //rotate screen
+}
+
+void startupScreen(int batteryLevel){
+ //wifilogo
+ paint.SetWidth(35);
+ paint.SetHeight(35);
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ drawImage(0, 0, 35, 35, wifilogo); // draw the image at (0, 0) coordinates
+ epd.SetFrameMemory(paint.GetImage(), 0, 0, paint.GetWidth(), paint.GetHeight());
+ //battery logo
+ paint.Clear(UNCOLORED);
+ drawImage(0, 0, 35, 35, batterylogo); // draw the image at (0, 0) coordinates
+ //battery status bar
+ paint.DrawFilledRectangle(4, 8, batteryLevel, 24, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, (200-35-3), paint.GetWidth(), paint.GetHeight());
+ //Welcome msg
+ char text[9] = "WELCOME!";
+ paint.SetWidth(30);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED); // paints the height and width with the given color
+ paint.DrawStringAt((200-strlen(text)*17)/2, 0, text, &Font24, COLORED); //moves text to co-ordinates with-in the set height and width
+ paint.DrawStringAt((200-strlen(text)*17)/2+1, 0, text, &Font24, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), 100, 0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+ epd.DisplayFrame();
+}
+
+static void clearQuestionArea(){
+ int offset = 36;
+ for (int i = 0; i < 3; i++){
+ paint.SetWidth(40);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED);
+ epd.SetFrameMemory(paint.GetImage(), offset, 0, paint.GetWidth(), paint.GetHeight());
+ offset += 40;
+ }
+ paint.SetWidth(23);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED);
+ epd.SetFrameMemory(paint.GetImage(), offset, 0, paint.GetWidth(), paint.GetHeight());
+}
+
+void paintVoteScreen(const char *question) { //battery level is a range between 4 and 28, ie. battery at 100% = 28, battery empty=4
+ //clear screen
+ clearQuestionArea();
+ //Bottom buttton bar
+ paint.SetWidth(22);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt(2, 6, "YES ABSTAIN NO", &Font20, COLORED); //moves text to co-ordinates with-in the set height and width
+ paint.DrawFilledRectangle(0, 0, 200, 3, COLORED);
+ paint.DrawFilledRectangle(48, 0, 50, 25, COLORED);
+ paint.DrawFilledRectangle(160, 0, 162, 25, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), (200-22), 0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+ //Question
+ int position = 0;
+ char line[16];
+ size_t sizeOfString = strlen(question); // Size of the string
+ if(sizeOfString <= 90){
+ display_question(question, line, &position);
+ }
+ else {
+ char stringMod[90]; // Including space for null terminator
+ strncpy(stringMod, question, 90);
+ stringMod[89] = '\0';
+ display_question(stringMod, line, &position); // Pass the modified string to display_question
+ }
+ epd.DisplayFrame();
+}
+
+void paintConfirmScreen(const char *response) {
+ //clear screen
+ clearQuestionArea();
+ //Bottom button bar
+ paint.SetWidth(22);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt(2, 6, "YES NO", &Font20, COLORED); //moves text to co-ordinates with-in the set height and width
+ paint.DrawFilledRectangle(0, 0, 200, 3, COLORED);
+ paint.DrawFilledRectangle(48, 0, 50, 25, COLORED);
+ paint.DrawFilledRectangle(160, 0, 162, 25, COLORED);
+ epd.SetFrameMemory(paint.GetImage(), (200-22), 0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+ //Confirmation question (Are you sure?)
+ paint.SetWidth(26);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt(20, 0, "You voted:", &Font20, COLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 40, 0, paint.GetWidth(), paint.GetHeight());
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt((200-strlen(response)*17)/2, 0, response, &Font24, COLORED); //moves text to co-ordinates with-in the set height and width
+ paint.DrawStringAt((200-strlen(response)*17)/2+1, 0, response, &Font24, COLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 80, 0, paint.GetWidth(), paint.GetHeight());
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt(10, 0, "Are you sure?", &Font20, COLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), 140, 0, paint.GetWidth(), paint.GetHeight());
+
+ epd.DisplayFrame();
+}
+
+void paintClosingScreen() {
+ paint.SetWidth(200);
+ paint.SetHeight(200);
+ paint.Clear(UNCOLORED);
+ epd.SetFrameMemory(paint.GetImage(), 0, 0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+ drawImage(0,0,200,180,thankyoulogo);
+ epd.SetFrameMemory(paint.GetImage(), 10, 0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinates
+ epd.DisplayFrame();
+}
+
+//helper functions
+void drawImage(int x, int y, int width, int height, const unsigned char *image) {
+ int byteWidth = (width + 7) / 8; // Number of bytes in a row
+ for (int j = 0; j < height; j++) {
+ for (int i = 0; i < width; i++) {
+ if (pgm_read_byte(image + j * byteWidth + i / 8) & (128 >> (i % 8))) {
+ paint.DrawPixel(x + i, y + j, COLORED);
+ } else {
+ paint.DrawPixel(x + i, y + j, UNCOLORED);
+ }
+ }
+ }
+}
+
+void display_question(const char *question, char *line, int *position) {
+ size_t sizeOfString = strlen(question);
+ paint.SetWidth(16);
+ paint.SetHeight(200);
+ int count = 0;
+ do {
+ strncpy(line, question + *position, 15);
+ line[15] = '\0';
+
+ int pos = 15;
+ int extra = 0;
+ while (pos >= 0 && line[pos] != ' ') {
+ pos--;
+ extra++;
+ }
+ line[pos] = '\0';
+
+ if (extra == 16) {
+ line[14] = '-';
+ *position -= 1; // Update position to after the '-'
+ } else {
+ *position -= extra; // Update position to the last space
+ *position += 1; // Update position to after the space
+ }
+ paint.Clear(UNCOLORED); //paints the height and width the given colour
+ paint.DrawStringAt(20, 0, line, &Font16, COLORED); //moves text to co-ordinates with-in the set height and width
+ epd.SetFrameMemory(paint.GetImage(), (40+(count*16)),0, paint.GetWidth(), paint.GetHeight()); //moves page to co-ordinate
+ *position += 15;
+ count++;
+ } while ((*position) < sizeOfString);
+}
diff --git a/voting_device/display.h b/voting_device/display.h
new file mode 100644
index 0000000..8e1ed26
--- /dev/null
+++ b/voting_device/display.h
@@ -0,0 +1,31 @@
+#ifndef DISPLAY_H
+#define DISPLAY_H
+#include
+#include "src/epd1in54_V2.h"
+#include "src/epdpaint.h"
+#include
+
+extern Epd epd;
+
+#define COLORED 0
+#define UNCOLORED 1
+
+//Display functions called in voting_device.ino
+void initDisplay();
+
+void paintThankyouScreen();
+
+void startupScreen(int batteryPercentage);
+
+void paintVoteScreen(const char *question);
+
+void paintConfirmScreen(const char *response);
+
+void paintClosingScreen();
+
+//Unused in voting_device.ino, could be removed from this .h file
+void display_question(const char *question, char *line, int *position);
+
+void drawImage(int x, int y, int width, int height, const unsigned char *image);
+
+#endif
\ No newline at end of file
diff --git a/voting_device/images.cpp b/voting_device/images.cpp
new file mode 100644
index 0000000..ad346d1
--- /dev/null
+++ b/voting_device/images.cpp
@@ -0,0 +1,317 @@
+#include "images.h"
+
+const unsigned char wifilogo[] PROGMEM = {
+// 'imresizer-1702234655501', 35x35px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff,
+0xf0, 0x00, 0x07, 0xf0, 0x01, 0xfc, 0x00, 0x0f, 0x80, 0x00, 0x3e, 0x00, 0x1f, 0x00, 0x00, 0x1f,
+0x00, 0x1c, 0x0f, 0xfe, 0x07, 0x00, 0x08, 0x3f, 0xff, 0x82, 0x00, 0x00, 0x7f, 0x9f, 0xc0, 0x00,
+0x01, 0xf8, 0x01, 0xf0, 0x00, 0x01, 0xe0, 0x00, 0xf0, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x00,
+0x07, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1c,
+0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
+0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 batterylogo[] PROGMEM = {
+// 'imresizer-1702234758351', 35x35px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff,
+0xfc, 0x00, 0x38, 0x00, 0x00, 0x1e, 0x00, 0x78, 0x00, 0x00, 0x0e, 0x00, 0x70, 0x00, 0x00, 0x0e,
+0x00, 0x70, 0x00, 0x00, 0x0f, 0x80, 0x70, 0x00, 0x00, 0x0f, 0x80, 0x70, 0x00, 0x00, 0x0f, 0xc0,
+0x70, 0x00, 0x00, 0x0f, 0xc0, 0x70, 0x00, 0x00, 0x0f, 0xc0, 0x70, 0x00, 0x00, 0x0f, 0xc0, 0x70,
+0x00, 0x00, 0x0f, 0xc0, 0x70, 0x00, 0x00, 0x0f, 0x80, 0x70, 0x00, 0x00, 0x0f, 0x80, 0x70, 0x00,
+0x00, 0x0e, 0x00, 0x70, 0x00, 0x00, 0x0e, 0x00, 0x38, 0x00, 0x00, 0x1e, 0x00, 0x3f, 0xff, 0xff,
+0xfc, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 thankyoulogo[] PROGMEM = {
+// 'imresizer-1702236559618', 200x180px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
+0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3e, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x3c, 0x78, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xbf, 0xf3, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1f, 0xbf, 0xf0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x79, 0x7f, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f, 0xf0,
+0x30, 0x00, 0x00, 0x00, 0x00, 0x41, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0xe0, 0x30, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xff,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
+0x8f, 0xc3, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x78, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x10, 0x90, 0x00, 0x00, 0x06, 0x78, 0x5f, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x01, 0xff, 0xff, 0xe3, 0xf0,
+0x60, 0x00, 0x00, 0x06, 0x10, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x89, 0x05, 0x61, 0xff, 0xff, 0xe1, 0xe0, 0x30, 0x00, 0x00, 0x02, 0x78, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x05, 0x61, 0xff, 0xff,
+0xe0, 0xc3, 0xf0, 0x00, 0x00, 0x06, 0x78, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x78,
+0x6f, 0x00, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0xff, 0xff, 0xe3, 0xf0, 0x10, 0x00, 0x00, 0x06, 0x20, 0x5b, 0x04, 0x20, 0xa0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00,
+0x06, 0x00, 0x5b, 0x04, 0x20, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x06, 0x00, 0x7f, 0x0a, 0xa2, 0x80, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0f, 0xff, 0xe3, 0xe3, 0xf0,
+0x00, 0x00, 0x07, 0x30, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+0x00, 0x00, 0x00, 0x28, 0x0f, 0xff, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x07, 0x78, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x10, 0xc0, 0xc2, 0x06, 0x28, 0x1f, 0xff, 0xe0,
+0xc0, 0x10, 0x02, 0x30, 0xa2, 0x78, 0x3e, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x71, 0x51, 0x81, 0x66, 0x1c, 0x20, 0x1f, 0xff, 0xe1, 0x80, 0xf0, 0x92, 0x2a, 0x26, 0x79, 0x7f,
+0x2a, 0xa9, 0x29, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x82, 0x42, 0x44, 0x12, 0x20, 0x3f,
+0xff, 0xe3, 0xf0, 0x00, 0x92, 0x21, 0x24, 0x01, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0xbb, 0x84, 0xc6, 0x04, 0x26, 0x1c, 0x3f, 0xff, 0xe3, 0xe0, 0xb0, 0x0a, 0x30, 0xa6,
+0x78, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x0c, 0xc4, 0x08, 0x66,
+0x30, 0x38, 0x70, 0x60, 0x00, 0x00, 0x4a, 0x28, 0xa6, 0x31, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x03, 0x53, 0x09, 0x84, 0x08, 0x5c, 0x30, 0x38, 0x70, 0x60, 0x30, 0x01, 0x4a,
+0x28, 0x26, 0xf9, 0x7f, 0x00, 0x04, 0x48, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xb3, 0x0e, 0x8c,
+0x18, 0xf4, 0x50, 0x3f, 0xbf, 0xf0, 0xe1, 0xf0, 0x00, 0x00, 0x02, 0xf8, 0x3e, 0x38, 0x04, 0x40,
+0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x32, 0x08, 0xd7, 0xef, 0xc6, 0xf0, 0x3f, 0xbf, 0xf3, 0xe0,
+0x00, 0x00, 0x00, 0x06, 0x08, 0x01, 0x00, 0x04, 0xf0, 0x51, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x60,
+0x00, 0x60, 0x00, 0x03, 0x00, 0x1f, 0xbf, 0xf3, 0xe0, 0x00, 0x00, 0x00, 0x36, 0x78, 0x6f, 0x1e,
+0x24, 0x14, 0x62, 0x20, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f,
+0xe1, 0xe0, 0x00, 0x01, 0x00, 0x00, 0x70, 0x7f, 0x25, 0x04, 0x80, 0x80, 0x20, 0x00, 0x00, 0x00,
+0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0xe0, 0x72, 0x0c, 0x31, 0xc3, 0x20, 0x78,
+0x3c, 0x09, 0x04, 0x91, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00,
+0x07, 0x8f, 0xc0, 0x02, 0xfc, 0x79, 0xc7, 0xa0, 0x79, 0xff, 0x19, 0x08, 0x91, 0x00, 0x40, 0x00,
+0x00, 0x00, 0x01, 0x40, 0x31, 0x21, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xe4, 0xca, 0x8c,
+0xa0, 0x39, 0xff, 0x02, 0x11, 0x60, 0xb0, 0x80, 0x00, 0x00, 0x00, 0x03, 0x40, 0x20, 0x90, 0x1c,
+0x01, 0x00, 0x3f, 0x00, 0x03, 0xe3, 0x24, 0xfa, 0x88, 0x20, 0x79, 0xff, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x30, 0xc0, 0x00, 0x11, 0x00, 0x3f, 0xf8, 0x02, 0x22, 0x64,
+0xf2, 0x98, 0x64, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x30,
+0x00, 0x00, 0x1f, 0xe0, 0x1f, 0xff, 0xe2, 0x32, 0x65, 0xc4, 0x98, 0x64, 0x78, 0x00, 0x00, 0x03,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x30, 0x00, 0x00, 0x03, 0xe0, 0x3f, 0xff, 0xe3,
+0xf2, 0x67, 0x7c, 0xe7, 0xb8, 0x01, 0x9b, 0x35, 0x54, 0xb0, 0xcc, 0xcd, 0x48, 0x00, 0x00, 0x03,
+0x00, 0x31, 0xc0, 0xfc, 0x01, 0x00, 0x1f, 0xff, 0xe3, 0xf2, 0x00, 0x30, 0x43, 0x10, 0xf8, 0x22,
+0x04, 0x64, 0x88, 0x82, 0x95, 0x78, 0x00, 0x00, 0x02, 0x00, 0x17, 0x07, 0xc6, 0x13, 0x00, 0x07,
+0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x31, 0x26, 0x64, 0xb0, 0xc2, 0xdd, 0x48, 0x00,
+0x00, 0x00, 0x00, 0x1c, 0x04, 0x02, 0x32, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x78, 0x20, 0x85, 0x50, 0x80, 0x92, 0x95, 0x48, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x03, 0x32,
+0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1b, 0x30, 0x43, 0x00, 0xc8, 0xc0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x01, 0x1f, 0xe6, 0x1f, 0xff, 0xe3, 0xc6, 0x0c, 0x78,
+0xc0, 0x80, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+0x03, 0x02, 0x02, 0x3f, 0xff, 0xe3, 0xc4, 0x0c, 0x78, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x3f, 0xff, 0xe0, 0x1f,
+0x8c, 0x01, 0xf0, 0x80, 0x78, 0x27, 0x28, 0xeb, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x02, 0x02, 0x03, 0x1f, 0xff, 0x05, 0x89, 0x8c, 0xb5, 0x30, 0x80, 0xf9, 0xd5, 0x5a,
+0x2b, 0xe4, 0x2a, 0x1a, 0x04, 0x50, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x02, 0x02, 0x1f, 0x80,
+0x07, 0xd9, 0x0c, 0xfd, 0x10, 0x80, 0x78, 0xa9, 0x2b, 0xeb, 0xe0, 0x03, 0x51, 0x10, 0x80, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x02, 0x10, 0x00, 0x00, 0x0f, 0xbc, 0x01, 0xf5, 0xc0, 0x78,
+0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x40, 0x38, 0x01, 0x8e,
+0x00, 0x00, 0x00, 0x1f, 0xfe, 0x01, 0xff, 0xc0, 0x78, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0xe0, 0x00, 0xfc, 0x1f, 0xff, 0xe3, 0xd9, 0x8c, 0x79, 0x10,
+0x8f, 0xf8, 0xfe, 0x3f, 0xf1, 0xef, 0x8f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0xff, 0xe0, 0x19, 0x0c, 0x01, 0x30, 0x8f, 0xf9, 0xff, 0x3f, 0xf1, 0xef, 0x9f,
+0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x0f, 0xac,
+0x01, 0xf4, 0x9f, 0xf9, 0xff, 0x3f, 0xf9, 0xef, 0xbf, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xc9, 0xac, 0x79, 0x14, 0x9f, 0xf9, 0xef, 0xbf, 0xf9,
+0xef, 0xbe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
+0x19, 0xac, 0x01, 0x34, 0x9f, 0x79, 0xe7, 0x9e, 0xf9, 0xff, 0x3c, 0xf0, 0x00, 0x00, 0x08, 0x1f,
+0x0f, 0x07, 0x01, 0x07, 0xe1, 0xc0, 0x3f, 0xff, 0xe0, 0x1f, 0xac, 0x01, 0xf4, 0x9e, 0x78, 0x1f,
+0x9e, 0xf9, 0xfe, 0x3f, 0xf0, 0x00, 0x00, 0x18, 0x1f, 0x0f, 0x1f, 0x81, 0x87, 0xe3, 0xf0, 0x18,
+0x00, 0x03, 0xdf, 0x2c, 0x7b, 0xf6, 0x9e, 0x78, 0xff, 0x9e, 0x79, 0xfe, 0x3f, 0xf0, 0x00, 0x00,
+0x1c, 0x19, 0x86, 0x19, 0xc1, 0x81, 0x87, 0x30, 0x1c, 0x00, 0x02, 0x43, 0xac, 0x48, 0x72, 0x9e,
+0x79, 0xff, 0x9e, 0x79, 0xfe, 0x3f, 0xf0, 0x00, 0x00, 0x1c, 0x19, 0x86, 0x18, 0x03, 0xc1, 0x86,
+0x19, 0xff, 0xff, 0xe2, 0x47, 0x8c, 0x48, 0xd0, 0x9e, 0x79, 0xff, 0x9e, 0xf9, 0xff, 0x3c, 0x00,
+0x00, 0x00, 0x34, 0x1f, 0x86, 0x1b, 0xc3, 0xc1, 0x86, 0x19, 0xff, 0xff, 0xe2, 0x4d, 0x8c, 0x49,
+0x90, 0x9f, 0x79, 0xef, 0x9e, 0xf9, 0xef, 0x3c, 0xf0, 0x00, 0x00, 0x36, 0x1f, 0x06, 0x1b, 0xc6,
+0xc1, 0x86, 0x19, 0xff, 0xff, 0xe2, 0x59, 0x8c, 0x4b, 0x10, 0x9f, 0xf9, 0xff, 0xbe, 0x7b, 0xef,
+0xbe, 0xf0, 0x00, 0x00, 0x7e, 0x1b, 0x06, 0x18, 0xc7, 0xe1, 0x87, 0x31, 0xff, 0xff, 0xe2, 0x71,
+0x0c, 0x4e, 0x10, 0x9f, 0xfd, 0xff, 0xbe, 0x7b, 0xff, 0xbf, 0xf0, 0x00, 0x00, 0x7f, 0x1b, 0x8f,
+0x1f, 0x87, 0xe1, 0x83, 0xf1, 0xff, 0xff, 0xe3, 0xc1, 0x8c, 0x78, 0x31, 0x8f, 0xfd, 0xff, 0xbe,
+0x7b, 0xf7, 0x9f, 0xf0, 0x00, 0x00, 0x63, 0x19, 0x8f, 0x0f, 0x0c, 0x21, 0x81, 0xe1, 0xff, 0xff,
+0xe2, 0x07, 0x38, 0x40, 0xe7, 0x0f, 0xfc, 0xf7, 0xbe, 0x7b, 0xe7, 0x8f, 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, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc,
+0x7e, 0x7f, 0x07, 0xfe, 0x07, 0xc3, 0xf3, 0xf0, 0xfc, 0x0f, 0x03, 0xc0, 0xfe, 0x07, 0xe3, 0xb1,
+0xa0, 0x00, 0x40, 0x00, 0xba, 0x8a, 0xa9, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3,
+0xf9, 0xfc, 0x0f, 0xc7, 0xe3, 0xff, 0x87, 0xf3, 0xf9, 0xb6, 0xb6, 0xdb, 0x04, 0x80, 0x88, 0xb1,
+0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xe7, 0xff, 0xc7,
+0xf3, 0xf9, 0xb6, 0xb6, 0x5b, 0x00, 0x02, 0x90, 0x99, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07,
+0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xe7, 0xff, 0xc7, 0xf3, 0xf1, 0xb6, 0xb6, 0xdb, 0x00, 0x12,
+0xa2, 0xa1, 0xff, 0xfc, 0xfe, 0x7f, 0x07, 0xfe, 0x07, 0xe3, 0xf3, 0xf9, 0xf8, 0x0f, 0xc7, 0xcf,
+0xff, 0xc7, 0xf3, 0xf9, 0xb6, 0xb7, 0xfb, 0x03, 0xb2, 0xab, 0x11, 0xff, 0xfc, 0xfe, 0x7f, 0x07,
+0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf8, 0x07, 0xcf, 0xcf, 0xef, 0xe7, 0xf3, 0xf0, 0x00, 0x05, 0x10,
+0x04, 0x80, 0x00, 0x01, 0xff, 0xfc, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf0, 0x07,
+0xef, 0xcf, 0xcf, 0xe7, 0xf3, 0xf0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe,
+0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb, 0xf0, 0x07, 0xef, 0xcf, 0xcf, 0xe7, 0xf3, 0xf8, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xf3, 0xf3, 0xfb,
+0xf0, 0x07, 0xef, 0xcf, 0xc7, 0xe7, 0xf3, 0xf9, 0xf9, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x1f,
+0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xfb, 0xf3, 0xff, 0xe0, 0x03, 0xef, 0x8f, 0xc7, 0xe7, 0xf3,
+0xf8, 0x61, 0x84, 0x80, 0x00, 0x00, 0x01, 0x10, 0x9f, 0xc0, 0xfe, 0x7f, 0x0f, 0xff, 0x07, 0xfb,
+0xf3, 0xff, 0xe0, 0x03, 0xef, 0x8f, 0xcf, 0xe7, 0xf3, 0xf0, 0x41, 0x84, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x0f, 0xdf, 0x07, 0xfb, 0xf3, 0xff, 0xe0, 0x03, 0xff, 0x8f, 0xcf,
+0xe7, 0xf3, 0xf8, 0x42, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0xdf,
+0x07, 0xff, 0xf3, 0xff, 0xe0, 0x03, 0xff, 0x8f, 0xc7, 0xe7, 0xf3, 0xf0, 0x42, 0x46, 0x00, 0x00,
+0x40, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0xdf, 0x87, 0xff, 0xf3, 0xff, 0xc0, 0x01, 0xff,
+0x0f, 0xc7, 0xe7, 0xf3, 0xf8, 0x42, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff,
+0x0f, 0xdf, 0x87, 0xff, 0xf3, 0xff, 0xc0, 0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x43, 0xc6,
+0x00, 0x00, 0x04, 0x00, 0x20, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xc0,
+0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x67, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1f, 0xc0,
+0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xe0, 0x01, 0xff, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8,
+0x44, 0x25, 0x00, 0x00, 0x00, 0x00, 0x24, 0x1f, 0xc0, 0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3,
+0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x44, 0x24, 0x80, 0x00, 0x40, 0x20, 0x04,
+0x1f, 0xc0, 0xff, 0xff, 0x1f, 0x9f, 0x87, 0xff, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7,
+0xf3, 0xf8, 0x4c, 0x14, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0x9f, 0x87,
+0xff, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x68, 0x14, 0x40, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0x9f, 0x87, 0xdf, 0xf3, 0xff, 0xe0, 0x00, 0xfe, 0x0f,
+0xcf, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f,
+0xff, 0x87, 0xdf, 0xf3, 0xff, 0xf0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x1f, 0xff, 0xc7, 0xdf, 0xf3, 0xff, 0xf0, 0x00,
+0xfe, 0x0f, 0xc7, 0xe7, 0xf3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe,
+0x7f, 0x1f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb, 0xf0, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf0, 0x22,
+0x78, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb,
+0xf8, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3, 0xf0, 0x24, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x1f,
+0xc0, 0xfe, 0x7f, 0x3f, 0xff, 0xc7, 0xcf, 0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xcf, 0xe7, 0xf3,
+0xf0, 0x20, 0x00, 0x70, 0x38, 0x00, 0x00, 0x05, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x9f, 0xc7, 0xcf,
+0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xef, 0xe7, 0xf3, 0xf0, 0x2c, 0xfc, 0xa0, 0x02, 0x22, 0x24,
+0x00, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xc7, 0xc7, 0xf3, 0xfb, 0xf8, 0x00, 0xfe, 0x0f, 0xff,
+0xe7, 0xff, 0xf0, 0x30, 0x84, 0x20, 0x12, 0x26, 0x24, 0x20, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f,
+0xc7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe, 0x07, 0xff, 0xc3, 0xff, 0xf0, 0x40, 0x04, 0xf0, 0x02,
+0x24, 0x04, 0x20, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xe7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe,
+0x07, 0xff, 0xc3, 0xff, 0xe0, 0x80, 0x04, 0x42, 0x02, 0x24, 0x04, 0x44, 0x1f, 0xc0, 0xfe, 0x7f,
+0x3f, 0x8f, 0xe7, 0xc7, 0xf3, 0xf9, 0xfc, 0x00, 0xfe, 0x03, 0xff, 0x81, 0xff, 0xe0, 0x80, 0x04,
+0x02, 0x03, 0xe1, 0x14, 0xc2, 0x1f, 0xc0, 0xfe, 0x7f, 0x3f, 0x8f, 0xe7, 0xc3, 0xf3, 0xf9, 0xfc,
+0x00, 0xfe, 0x01, 0xff, 0x00, 0xff, 0xc0, 0x80, 0x18, 0x22, 0x12, 0x21, 0x04, 0x01, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x00,
+0x7c, 0x20, 0x1c, 0x02, 0x2f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x28, 0x0c, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x80, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x02, 0x20,
+0x04, 0x01, 0x1f, 0xf8, 0x60, 0x10, 0x67, 0xfc, 0x00, 0x07, 0x80, 0x03, 0xe6, 0x84, 0x22, 0x85,
+0x51, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x60, 0x30, 0xc7,
+0xfc, 0x00, 0x07, 0x80, 0x03, 0xe6, 0x94, 0xa2, 0xb5, 0x53, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x70, 0x30, 0x87, 0xfc, 0x00, 0x07, 0x80, 0x03, 0xe0, 0x00,
+0x02, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xf0,
+0x31, 0x82, 0x60, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f,
+0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xd0, 0x33, 0x03, 0xfc, 0x3e, 0xf7, 0x87, 0xe3,
+0xe3, 0xf1, 0xe7, 0x00, 0x3d, 0xe1, 0xf0, 0xf7, 0x8f, 0xbc, 0x00, 0x01, 0x94, 0x28, 0x91, 0x91,
+0x80, 0x90, 0x33, 0x03, 0xfc, 0x7e, 0xf7, 0x8f, 0xf3, 0xe7, 0xf9, 0xff, 0x80, 0x3f, 0xe7, 0xfc,
+0xff, 0xcf, 0xbe, 0x00, 0x02, 0x14, 0x20, 0x09, 0x09, 0x80, 0x98, 0x36, 0x01, 0xdc, 0x7e, 0xf7,
+0x9f, 0xfb, 0xef, 0xfd, 0xff, 0x80, 0x7f, 0xe7, 0xfc, 0xff, 0xcf, 0xbe, 0x00, 0x00, 0x14, 0x28,
+0xf1, 0x09, 0x81, 0x88, 0x3c, 0x00, 0x00, 0x3c, 0xf7, 0xde, 0xfb, 0xef, 0x3d, 0xff, 0xc0, 0x7f,
+0xe7, 0xbc, 0xff, 0xcf, 0xfc, 0x00, 0x04, 0x14, 0x21, 0x0d, 0x09, 0x81, 0x08, 0x38, 0x03, 0xfc,
+0x3c, 0xf7, 0x9e, 0x7b, 0xef, 0x3c, 0xf7, 0xc0, 0x79, 0xe7, 0xbe, 0xfb, 0xcf, 0xfc, 0x00, 0x04,
+0x14, 0x20, 0x05, 0x09, 0x81, 0x0c, 0x38, 0x07, 0xfe, 0x3e, 0xe7, 0x9f, 0xfb, 0xef, 0xfc, 0xf7,
+0xc0, 0x79, 0xe0, 0x7e, 0xfb, 0xcf, 0xf8, 0x00, 0x04, 0x14, 0x22, 0x05, 0x09, 0x83, 0x0c, 0x38,
+0x07, 0xfc, 0x1e, 0xe7, 0x9f, 0xfb, 0xef, 0xfc, 0xf7, 0xc0, 0x79, 0xe1, 0xfe, 0x7b, 0xcf, 0xf8,
+0x00, 0x04, 0x14, 0x2a, 0x05, 0x09, 0x83, 0xfc, 0x3c, 0x02, 0x04, 0x1f, 0xe7, 0x9f, 0xfb, 0xef,
+0xfc, 0xf7, 0xc0, 0x79, 0xe7, 0xfe, 0xfb, 0xcf, 0xf8, 0x00, 0x04, 0x14, 0x28, 0x05, 0x09, 0x82,
+0x06, 0x36, 0x07, 0xff, 0x1f, 0xe7, 0x9e, 0x03, 0xef, 0x00, 0xf7, 0xc0, 0x79, 0xe7, 0xbc, 0x7b,
+0xcf, 0xf8, 0x00, 0x00, 0x14, 0x20, 0x05, 0x09, 0x86, 0x06, 0x36, 0x07, 0xff, 0x1f, 0xc7, 0x9e,
+0x7b, 0xef, 0x3c, 0xf7, 0xc0, 0x79, 0xef, 0xbe, 0x7b, 0xcf, 0xfc, 0x00, 0x02, 0x12, 0x29, 0x0d,
+0x09, 0x86, 0x06, 0x33, 0x03, 0xfe, 0x0f, 0xc7, 0xde, 0xfb, 0xef, 0x3d, 0xf7, 0xc0, 0x7f, 0xef,
+0xfe, 0xfb, 0xef, 0xbc, 0x00, 0x00, 0xf1, 0xa8, 0xf5, 0x09, 0x84, 0x02, 0x31, 0x80, 0x00, 0x0f,
+0xc7, 0xdf, 0xfb, 0xef, 0xfd, 0xf7, 0xc0, 0x7f, 0xff, 0xfe, 0xfb, 0xef, 0xbe, 0x00, 0x00, 0x10,
+0x08, 0x00, 0x01, 0x84, 0x03, 0x31, 0x83, 0xfc, 0x0f, 0xc7, 0xcf, 0xfb, 0xe7, 0xfd, 0xf7, 0xc0,
+0x3f, 0xf7, 0xfe, 0xfb, 0xef, 0x9e, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x8c, 0x03, 0x30, 0xc3,
+0xfc, 0x0f, 0x87, 0xc7, 0xe3, 0xe3, 0xf1, 0xf3, 0xc0, 0x3d, 0xe3, 0xfe, 0xfb, 0xef, 0x9e, 0x00,
+0x00, 0x10, 0x10, 0x00, 0x01, 0x8c, 0x01, 0x30, 0x67, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00, 0x88, 0x01,
+0x10, 0x66, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x20, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80,
+0x00, 0x00, 0x00, 0x03, 0xbc, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x40, 0x00, 0x01, 0x98, 0x0e, 0x70,
+0x0c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x3f, 0x20, 0x12, 0x58, 0x48, 0x89, 0x82, 0x00, 0x81, 0x40,
+0x01, 0x81, 0x11, 0x54, 0x00, 0xc0, 0x0f, 0x08, 0x70, 0x1c, 0x0e, 0x00, 0xc0, 0x00, 0x00, 0x3f,
+0x32, 0x1a, 0x7a, 0x49, 0xab, 0xce, 0x00, 0x21, 0x05, 0x1f, 0x82, 0x00, 0xc0, 0x00, 0xc7, 0xff,
+0x10, 0xbc, 0x30, 0x0a, 0x31, 0x80, 0x00, 0x20, 0x7f, 0x36, 0x92, 0x32, 0x4f, 0xa0, 0x48, 0x00,
+0x01, 0x10, 0x82, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x11, 0x9c, 0x30, 0x06, 0x31, 0x80, 0x00,
+0x20, 0x3f, 0x3e, 0x9a, 0x32, 0x6f, 0xa2, 0x58, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78,
+0x07, 0xfc, 0x31, 0x8c, 0x66, 0x26, 0x33, 0x04, 0x00, 0x00, 0x1e, 0x2a, 0x1a, 0x32, 0x4e, 0xa3,
+0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0x07, 0x0c, 0x33, 0x8c, 0x66, 0x2e, 0x33,
+0xc4, 0x00, 0x00, 0x00, 0x22, 0x82, 0x12, 0x48, 0xb9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x8c,
+0xfd, 0xcc, 0xc3, 0xfc, 0x31, 0x8c, 0x6e, 0x5f, 0x35, 0x80, 0x00, 0x00, 0xbf, 0x22, 0x92, 0x32,
+0x48, 0xb8, 0xd0, 0x00, 0x00, 0x03, 0x9d, 0x99, 0xdc, 0xcf, 0xc0, 0xc7, 0xfc, 0x3d, 0x8c, 0xee,
+0x43, 0x39, 0x88, 0x00, 0x00, 0xbf, 0x22, 0x9a, 0x32, 0x58, 0xa2, 0x50, 0x00, 0x00, 0x03, 0x9f,
+0x9b, 0xfd, 0xc6, 0xc0, 0xc0, 0x7f, 0x39, 0x8c, 0xfe, 0x41, 0xb1, 0xf0, 0x00, 0x00, 0xe1, 0x22,
+0x52, 0x32, 0x58, 0xa2, 0x58, 0x00, 0x00, 0x03, 0x87, 0x1f, 0xfd, 0x86, 0xe0, 0xc0, 0x0f, 0x01,
+0x8d, 0x33, 0xc1, 0xb0, 0x60, 0x00, 0x00, 0xff, 0x22, 0x10, 0x30, 0x58, 0xa3, 0x4e, 0x00, 0x00,
+0x03, 0x86, 0x1f, 0xfd, 0xbe, 0x78, 0xc0, 0x00, 0x01, 0x8d, 0x03, 0x80, 0x80, 0x00, 0x00, 0x00,
+0x7e, 0x22, 0x62, 0x91, 0x88, 0xb9, 0xc6, 0x00, 0x00, 0x02, 0x9f, 0x9e, 0xed, 0xfe, 0x3c, 0xc3,
+0xfc, 0x01, 0x8e, 0x01, 0x00, 0x88, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0x9f, 0x9c, 0xed, 0xf0, 0x0c, 0xc3, 0xfc, 0x01, 0x84, 0x00, 0x00, 0xbc, 0x08,
+0x18, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x1c, 0xed, 0x80,
+0x8e, 0xc7, 0xfe, 0x01, 0xf8, 0x00, 0x00, 0xbd, 0xdc, 0xc9, 0x9c, 0x3f, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0x9f, 0x9c, 0xcd, 0xc4, 0xce, 0xc6, 0x06, 0x01, 0x8b, 0xaa, 0x80,
+0xb5, 0xfd, 0xfb, 0xdc, 0x1c, 0x06, 0x06, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x88,
+0xcc, 0xfc, 0xfe, 0xc7, 0xfc, 0x03, 0x89, 0x6f, 0x00, 0xb1, 0xf5, 0xeb, 0xd4, 0x0f, 0x0f, 0xc0,
+0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x00, 0x44, 0x78, 0x7c, 0x83, 0xfc, 0x04, 0x81,
+0x6b, 0x21, 0x3d, 0x9d, 0x9b, 0xd8, 0x3f, 0x14, 0x80, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+0x86, 0x00, 0x00, 0x00, 0x30, 0x01, 0xf8, 0x0c, 0x81, 0x6b, 0x31, 0x35, 0xbd, 0xbb, 0x4e, 0x3f,
+0x07, 0x04, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+0x09, 0x81, 0x6f, 0x23, 0x35, 0xb5, 0xbb, 0xd6, 0x00, 0x02, 0x82, 0xa4, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x03, 0x9f, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x01, 0x4e, 0xa2, 0x3d, 0xbd, 0xfb,
+0xdc, 0x37, 0x19, 0xe6, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9f, 0x80, 0x00, 0x00, 0x09,
+0xe7, 0xfc, 0x0f, 0x00, 0x00, 0x1c, 0x10, 0x10, 0x00, 0x88, 0x23, 0x26, 0x20, 0xa4, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x08, 0x40, 0x87, 0xfc, 0x0e, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x7f, 0x08, 0x27, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00,
+0x08, 0x08, 0xe3, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x45, 0x64,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x80, 0x01, 0x08, 0x08, 0xa0, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x01, 0x84, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f,
+0x00, 0x00, 0x40, 0x08, 0x23, 0xfc, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06,
+0x07, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x9d, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xfc, 0x24,
+0x48, 0x00, 0x08, 0x22, 0x23, 0x02, 0x06, 0x3f, 0x18, 0x04, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x8f, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xfc, 0x24, 0x88, 0x44, 0x2a, 0x20, 0xa0, 0x0a, 0x0e,
+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x80, 0x00, 0x00, 0x00, 0x06,
+0x64, 0x26, 0x6c, 0xcc, 0x2c, 0x30, 0xb3, 0x14, 0x06, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x80, 0x80, 0x00, 0x00, 0x00, 0xe7, 0xfe, 0x24, 0x28, 0x40, 0xa8, 0x22, 0xa1,
+0x10, 0x06, 0x3f, 0x30, 0x41, 0xde, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xe3, 0xbc, 0x06, 0x48, 0x00, 0x40, 0x12, 0x20, 0x00, 0x06, 0x36, 0x30, 0x82, 0x12, 0x94,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0xe1, 0xbc, 0x00, 0x40, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x02, 0x00, 0x28, 0xa2, 0x50, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80,
+0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3f, 0x25, 0xa2,
+0x52, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0xe7, 0xfc, 0x00, 0x00,
+0x00, 0x00, 0x35, 0xd5, 0xd6, 0xa7, 0x3f, 0x25, 0x21, 0xcc, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x18, 0x80, 0x00, 0x00, 0x01, 0xe7, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfd, 0xdb, 0xe6, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x27, 0xfc,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x90, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x06, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x37, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0e, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3f, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfc, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
+0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00
+};
\ No newline at end of file
diff --git a/voting_device/images.h b/voting_device/images.h
new file mode 100644
index 0000000..fa65179
--- /dev/null
+++ b/voting_device/images.h
@@ -0,0 +1,12 @@
+#ifndef IMAGES_H
+#define IMAGES_H
+#include
+
+//Images
+extern const unsigned char wifilogo[] PROGMEM;
+
+extern const unsigned char batterylogo[] PROGMEM;
+
+extern const unsigned char thankyoulogo[] PROGMEM;
+
+#endif
\ No newline at end of file
diff --git a/voting_device/mqtt.cpp b/voting_device/mqtt.cpp
new file mode 100644
index 0000000..754a3d1
--- /dev/null
+++ b/voting_device/mqtt.cpp
@@ -0,0 +1,62 @@
+#include "mqtt.h"
+
+// MQTT-Server Settings
+ const char* mqtt_server = "10.42.0.1";
+ const int mqtt_port = 1883;
+ const char* mqtt_user = "";
+ const char* mqtt_password = "";
+
+// MQTT-Client erstellen
+ WiFiClient wifiClient;
+ PubSubClient mqttClient(wifiClient);
+ const size_t JSON_CAPACITY = 256;
+ char MQTTmsg[STRINGSIZE] = "";
+ bool MQTT_flag = 0;
+ char MQTTVotingId [STRINGSIZE]= "";
+ char MQTTVotingTitle [STRINGSIZE]= "";
+
+// MQTT Callback Function
+void callback(char* topic, byte* payload, unsigned int length) {
+ // Copy payload bytes to MQTTmsg
+ memcpy(MQTTmsg, payload, length);
+ MQTTmsg[length] = '\0'; // Ensure null-termination for string
+ Serial.println(MQTTmsg);
+ // Parse JSON
+ StaticJsonDocument doc;
+ DeserializationError error = deserializeJson(doc, MQTTmsg);
+
+ // If parsing succeeds, extract the necessary fields
+ if (!error) {
+ if (doc.containsKey("VotingID")) {
+ const char* votingID = doc["VotingID"];
+ Serial.print("Received Voting ID: ");
+ Serial.println(votingID);
+ memcpy(MQTTVotingId, votingID, strlen(votingID) + 1);
+ // Optionally, you can set a flag to indicate that a new ID has been received
+ MQTT_flag = true;
+ }
+
+ if (doc.containsKey("VoteTitle")) {
+ const char* voteTitle = doc["VoteTitle"];
+ Serial.print("Received Vote Title: ");
+ Serial.println(voteTitle);
+ memcpy(MQTTVotingTitle, voteTitle, strlen(voteTitle) + 1);
+ // Optionally, you can set a flag to indicate that a new title has been received
+ MQTT_flag = true;
+ }
+
+ // Add more conditions to extract other fields as needed
+ } else {
+ Serial.print("Failed to parse JSON: ");
+ Serial.println(error.c_str());
+ }
+}
+
+void connectToMQTT() {
+ while (!mqttClient.connected()) {
+ Serial.println("Connecting to the MQTT server");
+ mqttClient.connect(WiFi.macAddress().c_str(), mqtt_user, mqtt_password);
+ delay(500);
+ }
+ Serial.println("Connection to MQTT server established");
+}
\ No newline at end of file
diff --git a/voting_device/mqtt.h b/voting_device/mqtt.h
new file mode 100644
index 0000000..d59b658
--- /dev/null
+++ b/voting_device/mqtt.h
@@ -0,0 +1,29 @@
+#ifndef MQTT_H
+#define MQTT_H
+
+#include
+#include // default wifi library
+#include //Mqtt library by Nick O'Leary
+
+#include "config.h"
+
+// MQTT-Client erstellen
+ extern WiFiClient wifiClient;
+ extern PubSubClient mqttClient;
+ extern const size_t JSON_CAPACITY;
+ extern char MQTTmsg[STRINGSIZE];
+ extern bool MQTT_flag;
+ extern char MQTTVotingId [STRINGSIZE];
+ extern char MQTTVotingTitle [STRINGSIZE];
+
+ // MQTT-Server Settings
+ extern const char* mqtt_server;
+ extern const int mqtt_port;
+ extern const char* mqtt_user;
+ extern const char* mqtt_password;
+
+void callback(char* topic, byte* payload, unsigned int length);
+
+void connectToMQTT();
+
+#endif
\ No newline at end of file
diff --git a/voting_device/power.cpp b/voting_device/power.cpp
new file mode 100644
index 0000000..4a1ea09
--- /dev/null
+++ b/voting_device/power.cpp
@@ -0,0 +1,41 @@
+#include "power.h"
+
+uint32_t startTime;
+bool powerSW = false;
+
+void powerOff(){
+ if (!digitalRead(RX_PIN)){
+ delay(30); //debounce
+ if (!digitalRead(RX_PIN)){
+ if (!powerSW){
+ startTime = millis();
+ powerSW = true;
+ }
+ if (millis() - startTime > 3000){
+ digitalWrite(PWR_PIN, LOW); //turn device off
+ //write your code here to clear the epaper to notify the user know to release the button
+ epd.LDirInit();
+ epd.Clear(); // clears whole screen to white
+ while (!digitalRead(RX_PIN)){ //wait for button released
+ delay(100);
+ }
+ }
+ }
+ }
+ else{
+ powerSW = false;
+ }
+}
+#define ADC_FULL_BAT 780
+#define ADC_EMPTY_BAT 390
+int checkBatteryLevel(){
+ int adcValue = analogRead(BATTERY_PIN);
+ if (adcValue > ADC_FULL_BAT) {
+ return FULL_BATTERY;
+ }
+ int displayPercentage = ((adcValue-ADC_EMPTY_BAT)*24)/(ADC_FULL_BAT-ADC_EMPTY_BAT) + 4;
+ if (adcValue > ADC_EMPTY_BAT) {
+ return displayPercentage;
+ }
+ return EMPTY_BATTERY;
+}
\ No newline at end of file
diff --git a/voting_device/power.h b/voting_device/power.h
new file mode 100644
index 0000000..3f1de4c
--- /dev/null
+++ b/voting_device/power.h
@@ -0,0 +1,17 @@
+#ifndef POWER
+#define POWER
+#include
+#include "display.h"
+#include "config.h"
+#define RX_PIN 3
+#define PWR_PIN 5
+
+//Battery
+#define FULL_BATTERY 28
+#define EMPTY_BATTERY 4
+
+void powerOff();
+
+int checkBatteryLevel();
+
+#endif
\ No newline at end of file
diff --git a/voting_device/src/epd1in54_V2.cpp b/voting_device/src/epd1in54_V2.cpp
new file mode 100644
index 0000000..6e421a8
--- /dev/null
+++ b/voting_device/src/epd1in54_V2.cpp
@@ -0,0 +1,572 @@
+/*****************************************************************************
+* | File : epd1in54_V2.cpp
+* | Author : Waveshare team
+* | Function : 1.54inch e-paper V2
+* | Info :
+*----------------
+* | This version: V1.0
+* | Date : 2019-06-24
+* | Info :
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation 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
+# furished 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 OR 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 "epd1in54_V2.h"
+
+
+// waveform full refresh
+unsigned char WF_Full_1IN54[159] =
+{
+0x80, 0x48, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x40, 0x48, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x80, 0x48, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x40, 0x48, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x8, 0x1, 0x0, 0x8, 0x1, 0x0, 0x2,
+0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0,
+0x22, 0x17, 0x41, 0x0, 0x32, 0x20
+};
+
+// waveform partial refresh(fast)
+unsigned char WF_PARTIAL_1IN54_0[159] =
+{
+0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0xF,0x0,0x0,0x0,0x0,0x0,0x0,
+0x1,0x1,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0,
+0x02,0x17,0x41,0xB0,0x32,0x28,
+};
+
+Epd::~Epd()
+{
+};
+
+Epd::Epd()
+{
+ reset_pin = RST_PIN;
+ dc_pin = DC_PIN;
+ cs_pin = CS_PIN;
+ width = EPD_WIDTH;
+ height = EPD_HEIGHT;
+};
+
+/**
+ * @brief: basic function for sending commands
+ */
+void Epd::SendCommand(unsigned char command)
+{
+ DigitalWrite(dc_pin, LOW);
+ SpiTransfer(command);
+}
+
+/**
+ * @brief: basic function for sending data
+ */
+void Epd::SendData(unsigned char data)
+{
+ DigitalWrite(dc_pin, HIGH);
+ SpiTransfer(data);
+}
+
+/**
+ * @brief: Wait until the busy_pin goes HIGH
+ */
+void Epd::WaitUntilIdle(void)
+{
+ DelayMs(200);
+}
+
+void Epd::Lut(unsigned char* lut)
+{
+ SendCommand(0x32);
+ for(unsigned char i=0; i<153; i++)
+ SendData(lut[i]);
+ WaitUntilIdle();
+}
+
+void Epd::SetLut(unsigned char* lut)
+{
+ Lut(lut);
+
+ SendCommand(0x3f);
+ SendData(lut[153]);
+
+ SendCommand(0x03);
+ SendData(lut[154]);
+
+ SendCommand(0x04);
+ SendData(lut[155]);
+ SendData(lut[156]);
+ SendData(lut[157]);
+
+ SendCommand(0x2c);
+ SendData(lut[158]);
+}
+
+// High Direction
+int Epd::HDirInit(void)
+{
+ /* this calls the peripheral hardware interface, see epdif */
+ if (IfInit() != 0) {
+ return -1;
+ }
+ /* EPD hardware init start */
+ Reset();
+
+ WaitUntilIdle();
+ SendCommand(0x12); //SWRESET
+ WaitUntilIdle();
+
+ SendCommand(0x01); //Driver output control
+ SendData(0xC7);
+ SendData(0x00);
+ SendData(0x01);
+
+ SendCommand(0x11); //data entry mode
+ SendData(0x01);
+
+ SendCommand(0x44); //set Ram-X address start/end position
+ SendData(0x00);
+ SendData(0x18); //0x0C-->(18+1)*8=200
+
+ SendCommand(0x45); //set Ram-Y address start/end position
+ SendData(0xC7); //0xC7-->(199+1)=200
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+
+ SendCommand(0x3C); //BorderWavefrom
+ SendData(0x01);
+
+ SendCommand(0x18);
+ SendData(0x80);
+
+ SendCommand(0x22); // //Load Temperature and waveform setting.
+ SendData(0XB1);
+ SendCommand(0x20);
+
+ SendCommand(0x4E); // set RAM x address count to 0;
+ SendData(0x00);
+ SendCommand(0x4F); // set RAM y address count to 0X199;
+ SendData(0xC7);
+ SendData(0x00);
+ WaitUntilIdle();
+
+ SetLut(WF_Full_1IN54);
+ /* EPD hardware init end */
+
+ return 0;
+}
+
+// Low Direction
+int Epd::LDirInit(void)
+{
+ /* this calls the peripheral hardware interface, see epdif */
+ if (IfInit() != 0) {
+ return -1;
+ }
+ /* EPD hardware init start */
+ Reset();
+
+ WaitUntilIdle();
+ SendCommand(0x12); //SWRESET
+ WaitUntilIdle();
+
+ SendCommand(0x01); //Driver output control
+ SendData(0xC7);
+ SendData(0x00);
+ SendData(0x00);
+
+ SendCommand(0x11); //data entry mode
+ SendData(0x03);
+
+ SendCommand(0x44);
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ SendData((0 >> 3) & 0xFF);
+ SendData((199 >> 3) & 0xFF);
+ SendCommand(0x45);
+ SendData(0 & 0xFF);
+ SendData((0 >> 8) & 0xFF);
+ SendData(199 & 0xFF);
+ SendData((199 >> 8) & 0xFF);
+
+ SendCommand(0x3C); //BorderWavefrom
+ SendData(0x01);
+
+ SendCommand(0x18);
+ SendData(0x80);
+
+ SendCommand(0x22); // //Load Temperature and waveform setting.
+ SendData(0XB1);
+ SendCommand(0x20);
+
+ SendCommand(0x4E); // set RAM x address count to 0;
+ SendData(0x00);
+ SendCommand(0x4F); // set RAM y address count to 0X199;
+ SendData(0xC7);
+ SendData(0x00);
+ WaitUntilIdle();
+
+ SetLut(WF_Full_1IN54);
+ /* EPD hardware init end */
+
+ return 0;
+}
+
+
+/**
+ * @brief: module reset.
+ * often used to awaken the module in deep sleep,
+ * see Epd::Sleep();
+ */
+void Epd::Reset(void)
+{
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(20);
+ DigitalWrite(reset_pin, LOW); //module reset
+ DelayMs(5);
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(20);
+}
+
+void Epd::Clear(void)
+{
+ int w, h;
+ w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ h = EPD_HEIGHT;
+
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+ SendCommand(0x26);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+
+void Epd::Display(const unsigned char* frame_buffer)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ if (frame_buffer != NULL) {
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+ }
+
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+
+void Epd::DisplayPartBaseImage(const unsigned char* frame_buffer)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ if (frame_buffer != NULL) {
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+
+ SendCommand(0x26);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+ }
+
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+void Epd::DisplayPartBaseWhiteImage(void)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+
+ SendCommand(0x26);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(0xff);
+ }
+ }
+
+
+ //DISPLAY REFRESH
+ DisplayFrame();
+}
+
+
+void Epd::DisplayPart(const unsigned char* frame_buffer)
+{
+ int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
+ int h = EPD_HEIGHT;
+
+ if (frame_buffer != NULL) {
+ SendCommand(0x24);
+ for (int j = 0; j < h; j++) {
+ for (int i = 0; i < w; i++) {
+ SendData(pgm_read_byte(&frame_buffer[i + j * w]));
+ }
+ }
+ }
+
+ //DISPLAY REFRESH
+ DisplayPartFrame();
+}
+
+
+/**
+ * @brief: private function to specify the memory area for data R/W
+ */
+void Epd::SetMemoryArea(int x_start, int y_start, int x_end, int y_end)
+{
+ SendCommand(0x44);
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ SendData((x_start >> 3) & 0xFF);
+ SendData((x_end >> 3) & 0xFF);
+ SendCommand(0x45);
+ SendData(y_start & 0xFF);
+ SendData((y_start >> 8) & 0xFF);
+ SendData(y_end & 0xFF);
+ SendData((y_end >> 8) & 0xFF);
+}
+
+/**
+ * @brief: private function to specify the start point for data R/W
+ */
+void Epd::SetMemoryPointer(int x, int y)
+{
+ SendCommand(0x4e);
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ SendData((x >> 3) & 0xFF);
+ SendCommand(0x4F);
+ SendData(y & 0xFF);
+ SendData((y >> 8) & 0xFF);
+ WaitUntilIdle();
+}
+
+
+/**
+ * @brief: update the display
+ * there are 2 memory areas embedded in the e-paper display
+ * but once this function is called,
+ * the the next action of SetFrameMemory or ClearFrame will
+ * set the other memory area.
+ */
+void Epd::DisplayFrame(void)
+{
+ //DISPLAY REFRESH
+ SendCommand(0x22);
+ SendData(0xc7);
+ SendCommand(0x20);
+ WaitUntilIdle();
+}
+
+void Epd::DisplayPartFrame(void)
+{
+ SendCommand(0x22);
+ SendData(0xcF);
+ SendCommand(0x20);
+ WaitUntilIdle();
+}
+
+
+void Epd::SetFrameMemory(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+)
+{
+ int x_end;
+ int y_end;
+
+ DigitalWrite(reset_pin, LOW); //module reset
+ DelayMs(2);
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(2);
+ SendCommand(0x3c);
+ SendData(0x80);
+
+ if (
+ image_buffer == NULL ||
+ x < 0 || image_width < 0 ||
+ y < 0 || image_height < 0
+ ) {
+ return;
+ }
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ x &= 0xF8;
+ image_width &= 0xF8;
+ if (x + image_width >= this->width) {
+ x_end = this->width - 1;
+ } else {
+ x_end = x + image_width - 1;
+ }
+ if (y + image_height >= this->height) {
+ y_end = this->height - 1;
+ } else {
+ y_end = y + image_height - 1;
+ }
+ SetMemoryArea(x, y, x_end, y_end);
+ SetMemoryPointer(x, y);
+ SendCommand(0x24);
+ /* send the image data */
+ for (int j = 0; j < y_end - y + 1; j++) {
+ for (int i = 0; i < (x_end - x + 1) / 8; i++) {
+ SendData(image_buffer[i + j * (image_width / 8)]);
+ }
+ }
+}
+
+void Epd::SetFrameMemoryPartial(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+)
+{
+ int x_end;
+ int y_end;
+
+ DigitalWrite(reset_pin, LOW); //module reset
+ DelayMs(2);
+ DigitalWrite(reset_pin, HIGH);
+ DelayMs(2);
+
+ SetLut(WF_PARTIAL_1IN54_0);
+ SendCommand(0x37);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x40);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+ SendData(0x00);
+
+ SendCommand(0x3c);
+ SendData(0x80);
+
+ SendCommand(0x22);
+ SendData(0xc0);
+ SendCommand(0x20);
+ WaitUntilIdle();
+
+ if (
+ image_buffer == NULL ||
+ x < 0 || image_width < 0 ||
+ y < 0 || image_height < 0
+ ) {
+ return;
+ }
+ /* x point must be the multiple of 8 or the last 3 bits will be ignored */
+ x &= 0xF8;
+ image_width &= 0xF8;
+ if (x + image_width >= this->width) {
+ x_end = this->width - 1;
+ } else {
+ x_end = x + image_width - 1;
+ }
+ if (y + image_height >= this->height) {
+ y_end = this->height - 1;
+ } else {
+ y_end = y + image_height - 1;
+ }
+ SetMemoryArea(x, y, x_end, y_end);
+ SetMemoryPointer(x, y);
+ SendCommand(0x24);
+ /* send the image data */
+ for (int j = 0; j < y_end - y + 1; j++) {
+ for (int i = 0; i < (x_end - x + 1) / 8; i++) {
+ SendData(image_buffer[i + j * (image_width / 8)]);
+ }
+ }
+}
+
+/**
+ * @brief: After this command is transmitted, the chip would enter the
+ * deep-sleep mode to save power.
+ * The deep sleep mode would return to standby by hardware reset.
+ * The only one parameter is a check code, the command would be
+ * executed if check code = 0xA5.
+ * You can use Epd::Init() to awaken
+ */
+void Epd::Sleep()
+{
+ SendCommand(0x10); //enter deep sleep
+ SendData(0x01);
+ DelayMs(200);
+
+ DigitalWrite(reset_pin, LOW);
+}
+
+/* END OF FILE */
diff --git a/voting_device/src/epd1in54_V2.h b/voting_device/src/epd1in54_V2.h
new file mode 100644
index 0000000..42682c1
--- /dev/null
+++ b/voting_device/src/epd1in54_V2.h
@@ -0,0 +1,92 @@
+/*****************************************************************************
+* | File : epd1in54_V2.h
+* | Author : Waveshare team
+* | Function : 1.54inch e-paper V2
+* | Info :
+*----------------
+* | This version: V1.0
+* | Date : 2019-06-24
+* | Info :
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation 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
+# furished 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 OR 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 epd1in54_V2_H
+#define epd1in54_V2_H
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH 200
+#define EPD_HEIGHT 200
+
+class Epd : EpdIf
+{
+public:
+ unsigned long width;
+ unsigned long height;
+
+ Epd();
+ ~Epd();
+ // int Init(void);
+ int LDirInit(void);
+ int HDirInit(void);
+ void SendCommand(unsigned char command);
+ void SendData(unsigned char data);
+ void WaitUntilIdle(void);
+ void Reset(void);
+ void Clear(void);
+ void Display(const unsigned char* frame_buffer);
+ void DisplayPartBaseImage(const unsigned char* frame_buffer);
+ void DisplayPartBaseWhiteImage(void);
+ void DisplayPart(const unsigned char* frame_buffer);
+ void SetFrameMemory(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+ );
+ void SetFrameMemoryPartial(
+ const unsigned char* image_buffer,
+ int x,
+ int y,
+ int image_width,
+ int image_height
+ );
+ void DisplayFrame(void);
+ void DisplayPartFrame(void);
+
+ void Sleep(void);
+private:
+ unsigned int reset_pin;
+ unsigned int dc_pin;
+ unsigned int cs_pin;
+ unsigned int busy_pin;
+
+ void Lut(unsigned char* lut);
+ void SetLut(unsigned char* lut);
+ void SetMemoryArea(int x_start, int y_start, int x_end, int y_end);
+ void SetMemoryPointer(int x, int y);
+};
+
+#endif /* EPD1IN54B_H */
+
+/* END OF FILE */
diff --git a/voting_device/src/epdif.cpp b/voting_device/src/epdif.cpp
new file mode 100644
index 0000000..f4e5db2
--- /dev/null
+++ b/voting_device/src/epdif.cpp
@@ -0,0 +1,65 @@
+/**
+ * @filename : epdif.cpp
+ * @brief : Implements EPD interface functions
+ * Users have to implement all the functions in epdif.cpp
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare August 10 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 "epdif.h"
+#include
+
+EpdIf::EpdIf() {
+};
+
+EpdIf::~EpdIf() {
+};
+
+void EpdIf::DigitalWrite(int pin, int value) {
+ digitalWrite(pin, value);
+}
+
+int EpdIf::DigitalRead(int pin) {
+ return digitalRead(pin);
+}
+
+void EpdIf::DelayMs(unsigned int delaytime) {
+ delay(delaytime);
+}
+
+void EpdIf::SpiTransfer(unsigned char data) {
+ digitalWrite(CS_PIN, LOW);
+ SPI.transfer(data);
+ digitalWrite(CS_PIN, HIGH);
+}
+
+int EpdIf::IfInit(void) {
+ pinMode(CS_PIN, OUTPUT);
+ pinMode(RST_PIN, OUTPUT);
+ pinMode(DC_PIN, OUTPUT);
+
+ SPI.begin();
+ pinMode(MISO, INPUT_PULLUP);
+ SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+ return 0;
+}
+
diff --git a/voting_device/src/epdif.h b/voting_device/src/epdif.h
new file mode 100644
index 0000000..d36c726
--- /dev/null
+++ b/voting_device/src/epdif.h
@@ -0,0 +1,50 @@
+/**
+ * @filename : epdif.h
+ * @brief : Header file of epdif.cpp providing EPD interface functions
+ * Users have to implement all the functions in epdif.cpp
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare August 10 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 EPDIF_H
+#define EPDIF_H
+
+#include
+
+// Pin definition
+#define RST_PIN D2
+#define DC_PIN D0
+#define CS_PIN D8
+
+class EpdIf {
+public:
+ EpdIf(void);
+ ~EpdIf(void);
+
+ static int IfInit(void);
+ static void DigitalWrite(int pin, int value);
+ static int DigitalRead(int pin);
+ static void DelayMs(unsigned int delaytime);
+ static void SpiTransfer(unsigned char data);
+};
+
+#endif
diff --git a/voting_device/src/epdpaint.cpp b/voting_device/src/epdpaint.cpp
new file mode 100644
index 0000000..1dfe0d7
--- /dev/null
+++ b/voting_device/src/epdpaint.cpp
@@ -0,0 +1,319 @@
+/**
+ * @filename : epdpaint.cpp
+ * @brief : Paint tools
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare September 9 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 "epdpaint.h"
+
+Paint::Paint(unsigned char* image, int width, int height) {
+ this->rotate = ROTATE_0;
+ this->image = image;
+ /* 1 byte = 8 pixels, so the width should be the multiple of 8 */
+ this->width = width % 8 ? width + 8 - (width % 8) : width;
+ this->height = height;
+}
+
+Paint::~Paint() {
+}
+
+/**
+ * @brief: clear the image
+ */
+void Paint::Clear(int colored) {
+ for (int x = 0; x < this->width; x++) {
+ for (int y = 0; y < this->height; y++) {
+ DrawAbsolutePixel(x, y, colored);
+ }
+ }
+}
+
+/**
+ * @brief: this draws a pixel by absolute coordinates.
+ * this function won't be affected by the rotate parameter.
+ */
+void Paint::DrawAbsolutePixel(int x, int y, int colored) {
+ if (x < 0 || x >= this->width || y < 0 || y >= this->height) {
+ return;
+ }
+ if (IF_INVERT_COLOR) {
+ if (colored) {
+ image[(x + y * this->width) / 8] |= 0x80 >> (x % 8);
+ } else {
+ image[(x + y * this->width) / 8] &= ~(0x80 >> (x % 8));
+ }
+ } else {
+ if (colored) {
+ image[(x + y * this->width) / 8] &= ~(0x80 >> (x % 8));
+ } else {
+ image[(x + y * this->width) / 8] |= 0x80 >> (x % 8);
+ }
+ }
+}
+
+/**
+ * @brief: Getters and Setters
+ */
+unsigned char* Paint::GetImage(void) {
+ return this->image;
+}
+
+int Paint::GetWidth(void) {
+ return this->width;
+}
+
+void Paint::SetWidth(int width) {
+ this->width = width % 8 ? width + 8 - (width % 8) : width;
+}
+
+int Paint::GetHeight(void) {
+ return this->height;
+}
+
+void Paint::SetHeight(int height) {
+ this->height = height;
+}
+
+int Paint::GetRotate(void) {
+ return this->rotate;
+}
+
+void Paint::SetRotate(int rotate){
+ this->rotate = rotate;
+}
+
+/**
+ * @brief: this draws a pixel by the coordinates
+ */
+void Paint::DrawPixel(int x, int y, int colored) {
+ int point_temp;
+ if (this->rotate == ROTATE_0) {
+ if(x < 0 || x >= this->width || y < 0 || y >= this->height) {
+ return;
+ }
+ DrawAbsolutePixel(x, y, colored);
+ } else if (this->rotate == ROTATE_90) {
+ if(x < 0 || x >= this->height || y < 0 || y >= this->width) {
+ return;
+ }
+ point_temp = x;
+ x = this->width - y;
+ y = point_temp;
+ DrawAbsolutePixel(x, y, colored);
+ } else if (this->rotate == ROTATE_180) {
+ if(x < 0 || x >= this->width || y < 0 || y >= this->height) {
+ return;
+ }
+ x = this->width - x;
+ y = this->height - y;
+ DrawAbsolutePixel(x, y, colored);
+ } else if (this->rotate == ROTATE_270) {
+ if(x < 0 || x >= this->height || y < 0 || y >= this->width) {
+ return;
+ }
+ point_temp = x;
+ x = y;
+ y = this->height - point_temp;
+ DrawAbsolutePixel(x, y, colored);
+ }
+}
+
+/**
+ * @brief: this draws a charactor on the frame buffer but not refresh
+ */
+void Paint::DrawCharAt(int x, int y, char ascii_char, sFONT* font, int colored) {
+ int i, j;
+ unsigned int char_offset = (ascii_char - ' ') * font->Height * (font->Width / 8 + (font->Width % 8 ? 1 : 0));
+ const unsigned char* ptr = &font->table[char_offset];
+
+ for (j = 0; j < font->Height; j++) {
+ for (i = 0; i < font->Width; i++) {
+ if (pgm_read_byte(ptr) & (0x80 >> (i % 8))) {
+ DrawPixel(x + i, y + j, colored);
+ }
+ if (i % 8 == 7) {
+ ptr++;
+ }
+ }
+ if (font->Width % 8 != 0) {
+ ptr++;
+ }
+ }
+}
+
+/**
+* @brief: this displays a string on the frame buffer but not refresh
+*/
+void Paint::DrawStringAt(int x, int y, const char* text, sFONT* font, int colored) {
+ const char* p_text = text;
+ unsigned int counter = 0;
+ int refcolumn = x;
+
+ /* Send the string character by character on EPD */
+ while (*p_text != 0) {
+ /* Display one character on EPD */
+ DrawCharAt(refcolumn, y, *p_text, font, colored);
+ /* Decrement the column position by 16 */
+ refcolumn += font->Width;
+ /* Point on the next character */
+ p_text++;
+ counter++;
+ }
+}
+
+/**
+* @brief: this draws a line on the frame buffer
+*/
+void Paint::DrawLine(int x0, int y0, int x1, int y1, int colored) {
+ /* Bresenham algorithm */
+ int dx = x1 - x0 >= 0 ? x1 - x0 : x0 - x1;
+ int sx = x0 < x1 ? 1 : -1;
+ int dy = y1 - y0 <= 0 ? y1 - y0 : y0 - y1;
+ int sy = y0 < y1 ? 1 : -1;
+ int err = dx + dy;
+
+ while((x0 != x1) && (y0 != y1)) {
+ DrawPixel(x0, y0 , colored);
+ if (2 * err >= dy) {
+ err += dy;
+ x0 += sx;
+ }
+ if (2 * err <= dx) {
+ err += dx;
+ y0 += sy;
+ }
+ }
+}
+
+/**
+* @brief: this draws a horizontal line on the frame buffer
+*/
+void Paint::DrawHorizontalLine(int x, int y, int line_width, int colored) {
+ int i;
+ for (i = x; i < x + line_width; i++) {
+ DrawPixel(i, y, colored);
+ }
+}
+
+/**
+* @brief: this draws a vertical line on the frame buffer
+*/
+void Paint::DrawVerticalLine(int x, int y, int line_height, int colored) {
+ int i;
+ for (i = y; i < y + line_height; i++) {
+ DrawPixel(x, i, colored);
+ }
+}
+
+/**
+* @brief: this draws a rectangle
+*/
+void Paint::DrawRectangle(int x0, int y0, int x1, int y1, int colored) {
+ int min_x, min_y, max_x, max_y;
+ min_x = x1 > x0 ? x0 : x1;
+ max_x = x1 > x0 ? x1 : x0;
+ min_y = y1 > y0 ? y0 : y1;
+ max_y = y1 > y0 ? y1 : y0;
+
+ DrawHorizontalLine(min_x, min_y, max_x - min_x + 1, colored);
+ DrawHorizontalLine(min_x, max_y, max_x - min_x + 1, colored);
+ DrawVerticalLine(min_x, min_y, max_y - min_y + 1, colored);
+ DrawVerticalLine(max_x, min_y, max_y - min_y + 1, colored);
+}
+
+/**
+* @brief: this draws a filled rectangle
+*/
+void Paint::DrawFilledRectangle(int x0, int y0, int x1, int y1, int colored) {
+ int min_x, min_y, max_x, max_y;
+ int i;
+ min_x = x1 > x0 ? x0 : x1;
+ max_x = x1 > x0 ? x1 : x0;
+ min_y = y1 > y0 ? y0 : y1;
+ max_y = y1 > y0 ? y1 : y0;
+
+ for (i = min_x; i <= max_x; i++) {
+ DrawVerticalLine(i, min_y, max_y - min_y + 1, colored);
+ }
+}
+
+/**
+* @brief: this draws a circle
+*/
+void Paint::DrawCircle(int x, int y, int radius, int colored) {
+ /* Bresenham algorithm */
+ int x_pos = -radius;
+ int y_pos = 0;
+ int err = 2 - 2 * radius;
+ int e2;
+
+ do {
+ DrawPixel(x - x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y - y_pos, colored);
+ DrawPixel(x - x_pos, y - y_pos, colored);
+ e2 = err;
+ if (e2 <= y_pos) {
+ err += ++y_pos * 2 + 1;
+ if(-x_pos == y_pos && e2 <= x_pos) {
+ e2 = 0;
+ }
+ }
+ if (e2 > x_pos) {
+ err += ++x_pos * 2 + 1;
+ }
+ } while (x_pos <= 0);
+}
+
+/**
+* @brief: this draws a filled circle
+*/
+void Paint::DrawFilledCircle(int x, int y, int radius, int colored) {
+ /* Bresenham algorithm */
+ int x_pos = -radius;
+ int y_pos = 0;
+ int err = 2 - 2 * radius;
+ int e2;
+
+ do {
+ DrawPixel(x - x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y + y_pos, colored);
+ DrawPixel(x + x_pos, y - y_pos, colored);
+ DrawPixel(x - x_pos, y - y_pos, colored);
+ DrawHorizontalLine(x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored);
+ DrawHorizontalLine(x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored);
+ e2 = err;
+ if (e2 <= y_pos) {
+ err += ++y_pos * 2 + 1;
+ if(-x_pos == y_pos && e2 <= x_pos) {
+ e2 = 0;
+ }
+ }
+ if(e2 > x_pos) {
+ err += ++x_pos * 2 + 1;
+ }
+ } while(x_pos <= 0);
+}
+
+/* END OF FILE */
diff --git a/voting_device/src/epdpaint.h b/voting_device/src/epdpaint.h
new file mode 100644
index 0000000..17b366f
--- /dev/null
+++ b/voting_device/src/epdpaint.h
@@ -0,0 +1,75 @@
+/**
+ * @filename : epdpaint.h
+ * @brief : Header file for epdpaint.cpp
+ * @author : Yehui from Waveshare
+ *
+ * Copyright (C) Waveshare July 28 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 EPDPAINT_H
+#define EPDPAINT_H
+
+// Display orientation
+#define ROTATE_0 0
+#define ROTATE_90 1
+#define ROTATE_180 2
+#define ROTATE_270 3
+
+// Color inverse. 1 or 0 = set or reset a bit if set a colored pixel
+#define IF_INVERT_COLOR 1
+
+#include "fonts.h"
+
+class Paint {
+public:
+ Paint(unsigned char* image, int width, int height);
+ ~Paint();
+ void Clear(int colored);
+ int GetWidth(void);
+ void SetWidth(int width);
+ int GetHeight(void);
+ void SetHeight(int height);
+ int GetRotate(void);
+ void SetRotate(int rotate);
+ unsigned char* GetImage(void);
+ void DrawAbsolutePixel(int x, int y, int colored);
+ void DrawPixel(int x, int y, int colored);
+ void DrawCharAt(int x, int y, char ascii_char, sFONT* font, int colored);
+ void DrawStringAt(int x, int y, const char* text, sFONT* font, int colored);
+ void DrawLine(int x0, int y0, int x1, int y1, int colored);
+ void DrawHorizontalLine(int x, int y, int width, int colored);
+ void DrawVerticalLine(int x, int y, int height, int colored);
+ void DrawRectangle(int x0, int y0, int x1, int y1, int colored);
+ void DrawFilledRectangle(int x0, int y0, int x1, int y1, int colored);
+ void DrawCircle(int x, int y, int radius, int colored);
+ void DrawFilledCircle(int x, int y, int radius, int colored);
+
+private:
+ unsigned char* image;
+ int width;
+ int height;
+ int rotate;
+};
+
+#endif
+
+/* END OF FILE */
+
diff --git a/voting_device/src/font12.c b/voting_device/src/font12.c
new file mode 100644
index 0000000..9963fe3
--- /dev/null
+++ b/voting_device/src/font12.c
@@ -0,0 +1,1385 @@
+/**
+ ******************************************************************************
+ * @file Font12.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text Font12 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+//
+// Font data for Courier New 12pt
+//
+
+const uint8_t Font12_Table[] PROGMEM =
+{
+ // @0 ' ' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @12 '!' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @24 '"' (7 pixels wide)
+ 0x00, //
+ 0x6C, // ## ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @36 '#' (7 pixels wide)
+ 0x00, //
+ 0x14, // # #
+ 0x14, // # #
+ 0x28, // # #
+ 0x7C, // #####
+ 0x28, // # #
+ 0x7C, // #####
+ 0x28, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+
+ // @48 '$' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x38, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x38, // ###
+ 0x48, // # #
+ 0x70, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @60 '%' (7 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x0C, // ##
+ 0x70, // ###
+ 0x08, // #
+ 0x14, // # #
+ 0x08, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @72 '&' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x54, // # # #
+ 0x48, // # #
+ 0x34, // ## #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @84 ''' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @96 '(' (7 pixels wide)
+ 0x00, //
+ 0x08, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x08, // #
+ 0x00, //
+
+ // @108 ')' (7 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+
+ // @120 '*' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x7C, // #####
+ 0x10, // #
+ 0x28, // # #
+ 0x28, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @132 '+' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0xFE, // #######
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @144 ',' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x10, // #
+ 0x30, // ##
+ 0x20, // #
+ 0x00, //
+
+ // @156 '-' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @168 '.' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @180 '/' (7 pixels wide)
+ 0x00, //
+ 0x04, // #
+ 0x04, // #
+ 0x08, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+ 0x00, //
+
+ // @192 '0' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @204 '1' (7 pixels wide)
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @216 '2' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x04, // #
+ 0x08, // #
+ 0x10, // #
+ 0x20, // #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @228 '3' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x04, // #
+ 0x18, // ##
+ 0x04, // #
+ 0x04, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @240 '4' (7 pixels wide)
+ 0x00, //
+ 0x0C, // ##
+ 0x14, // # #
+ 0x14, // # #
+ 0x24, // # #
+ 0x44, // # #
+ 0x7E, // ######
+ 0x04, // #
+ 0x0E, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @252 '5' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x20, // #
+ 0x20, // #
+ 0x38, // ###
+ 0x04, // #
+ 0x04, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @264 '6' (7 pixels wide)
+ 0x00, //
+ 0x1C, // ###
+ 0x20, // #
+ 0x40, // #
+ 0x78, // ####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @276 '7' (7 pixels wide)
+ 0x00, //
+ 0x7C, // #####
+ 0x44, // # #
+ 0x04, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @288 '8' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @300 '9' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3C, // ####
+ 0x04, // #
+ 0x08, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @312 ':' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @324 ';' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x18, // ##
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x30, // ##
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @336 '<' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x0C, // ##
+ 0x10, // #
+ 0x60, // ##
+ 0x80, // #
+ 0x60, // ##
+ 0x10, // #
+ 0x0C, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @348 '=' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x7C, // #####
+ 0x00, //
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @360 '>' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xC0, // ##
+ 0x20, // #
+ 0x18, // ##
+ 0x04, // #
+ 0x18, // ##
+ 0x20, // #
+ 0xC0, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @372 '?' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x18, // ##
+ 0x24, // # #
+ 0x04, // #
+ 0x08, // #
+ 0x10, // #
+ 0x00, //
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @384 '@' (7 pixels wide)
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x4C, // # ##
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x4C, // # ##
+ 0x40, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @396 'A' (7 pixels wide)
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x28, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x7C, // #####
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @408 'B' (7 pixels wide)
+ 0x00, //
+ 0xF8, // #####
+ 0x44, // # #
+ 0x44, // # #
+ 0x78, // ####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @420 'C' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @432 'D' (7 pixels wide)
+ 0x00, //
+ 0xF0, // ####
+ 0x48, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @444 'E' (7 pixels wide)
+ 0x00, //
+ 0xFC, // ######
+ 0x44, // # #
+ 0x50, // # #
+ 0x70, // ###
+ 0x50, // # #
+ 0x40, // #
+ 0x44, // # #
+ 0xFC, // ######
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @456 'F' (7 pixels wide)
+ 0x00, //
+ 0x7E, // ######
+ 0x22, // # #
+ 0x28, // # #
+ 0x38, // ###
+ 0x28, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @468 'G' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x4E, // # ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @480 'H' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @492 'I' (7 pixels wide)
+ 0x00, //
+ 0x7C, // #####
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @504 'J' (7 pixels wide)
+ 0x00, //
+ 0x3C, // ####
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @516 'K' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x48, // # #
+ 0x50, // # #
+ 0x70, // ###
+ 0x48, // # #
+ 0x44, // # #
+ 0xE6, // ### ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @528 'L' (7 pixels wide)
+ 0x00, //
+ 0x70, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x24, // # #
+ 0x24, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @540 'M' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x6C, // ## ##
+ 0x6C, // ## ##
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @552 'N' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x64, // ## #
+ 0x64, // ## #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x4C, // # ##
+ 0xEC, // ### ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @564 'O' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @576 'P' (7 pixels wide)
+ 0x00, //
+ 0x78, // ####
+ 0x24, // # #
+ 0x24, // # #
+ 0x24, // # #
+ 0x38, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @588 'Q' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x1C, // ###
+ 0x00, //
+ 0x00, //
+
+ // @600 'R' (7 pixels wide)
+ 0x00, //
+ 0xF8, // #####
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x78, // ####
+ 0x48, // # #
+ 0x44, // # #
+ 0xE2, // ### #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @612 'S' (7 pixels wide)
+ 0x00, //
+ 0x34, // ## #
+ 0x4C, // # ##
+ 0x40, // #
+ 0x38, // ###
+ 0x04, // #
+ 0x04, // #
+ 0x64, // ## #
+ 0x58, // # ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @624 'T' (7 pixels wide)
+ 0x00, //
+ 0xFE, // #######
+ 0x92, // # # #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @636 'U' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @648 'V' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @660 'W' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x28, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @672 'X' (7 pixels wide)
+ 0x00, //
+ 0xC6, // ## ##
+ 0x44, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x10, // #
+ 0x28, // # #
+ 0x44, // # #
+ 0xC6, // ## ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @684 'Y' (7 pixels wide)
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @696 'Z' (7 pixels wide)
+ 0x00, //
+ 0x7C, // #####
+ 0x44, // # #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @708 '[' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @720 '\' (7 pixels wide)
+ 0x00, //
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x00, //
+ 0x00, //
+
+ // @732 ']' (7 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @744 '^' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x28, // # #
+ 0x44, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @756 '_' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xFE, // #######
+
+ // @768 '`' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x08, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @780 'a' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x3C, // ####
+ 0x44, // # #
+ 0x44, // # #
+ 0x3E, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @792 'b' (7 pixels wide)
+ 0x00, //
+ 0xC0, // ##
+ 0x40, // #
+ 0x58, // # ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @804 'c' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @816 'd' (7 pixels wide)
+ 0x00, //
+ 0x0C, // ##
+ 0x04, // #
+ 0x34, // ## #
+ 0x4C, // # ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3E, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @828 'e' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x7C, // #####
+ 0x40, // #
+ 0x40, // #
+ 0x3C, // ####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @840 'f' (7 pixels wide)
+ 0x00, //
+ 0x1C, // ###
+ 0x20, // #
+ 0x7C, // #####
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @852 'g' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x36, // ## ##
+ 0x4C, // # ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3C, // ####
+ 0x04, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @864 'h' (7 pixels wide)
+ 0x00, //
+ 0xC0, // ##
+ 0x40, // #
+ 0x58, // # ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @876 'i' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x70, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @888 'j' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x78, // ####
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x08, // #
+ 0x70, // ###
+ 0x00, //
+
+ // @900 'k' (7 pixels wide)
+ 0x00, //
+ 0xC0, // ##
+ 0x40, // #
+ 0x5C, // # ###
+ 0x48, // # #
+ 0x70, // ###
+ 0x50, // # #
+ 0x48, // # #
+ 0xDC, // ## ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @912 'l' (7 pixels wide)
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @924 'm' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xE8, // ### #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0xFE, // #######
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @936 'n' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0xEE, // ### ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @948 'o' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @960 'p' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x64, // ## #
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x78, // ####
+ 0x40, // #
+ 0xE0, // ###
+ 0x00, //
+
+ // @972 'q' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x36, // ## ##
+ 0x4C, // # ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x3C, // ####
+ 0x04, // #
+ 0x0E, // ###
+ 0x00, //
+
+ // @984 'r' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x6C, // ## ##
+ 0x30, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @996 's' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x3C, // ####
+ 0x44, // # #
+ 0x38, // ###
+ 0x04, // #
+ 0x44, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1008 't' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x7C, // #####
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x22, // # #
+ 0x1C, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1020 'u' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xCC, // ## ##
+ 0x44, // # #
+ 0x44, // # #
+ 0x44, // # #
+ 0x4C, // # ##
+ 0x36, // ## ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1032 'v' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x44, // # #
+ 0x28, // # #
+ 0x28, // # #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1044 'w' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x54, // # # #
+ 0x28, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1056 'x' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xCC, // ## ##
+ 0x48, // # #
+ 0x30, // ##
+ 0x30, // ##
+ 0x48, // # #
+ 0xCC, // ## ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1068 'y' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xEE, // ### ###
+ 0x44, // # #
+ 0x24, // # #
+ 0x28, // # #
+ 0x18, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x78, // ####
+ 0x00, //
+
+ // @1080 'z' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x7C, // #####
+ 0x48, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x44, // # #
+ 0x7C, // #####
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @1092 '{' (7 pixels wide)
+ 0x00, //
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x00, //
+
+ // @1104 '|' (7 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @1116 '}' (7 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x08, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x20, // #
+ 0x00, //
+
+ // @1128 '~' (7 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x24, // # #
+ 0x58, // # ##
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+};
+
+sFONT Font12 = {
+ Font12_Table,
+ 7, /* Width */
+ 12, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/voting_device/src/font16.c b/voting_device/src/font16.c
new file mode 100644
index 0000000..a36db6e
--- /dev/null
+++ b/voting_device/src/font16.c
@@ -0,0 +1,1765 @@
+/**
+ ******************************************************************************
+ * @file font16.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text font16 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+//
+// Font data for Courier New 12pt
+//
+
+const uint8_t Font16_Table[] PROGMEM =
+{
+ // @0 ' ' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @32 '!' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @64 '"' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1D, 0xC0, // ### ###
+ 0x1D, 0xC0, // ### ###
+ 0x08, 0x80, // # #
+ 0x08, 0x80, // # #
+ 0x08, 0x80, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @96 '#' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x3F, 0xC0, // ########
+ 0x1B, 0x00, // ## ##
+ 0x3F, 0xC0, // ########
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @128 '$' (11 pixels wide)
+ 0x04, 0x00, // #
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x38, 0x00, // ###
+ 0x1E, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x03, 0x80, // ###
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @160 '%' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x24, 0x00, // # #
+ 0x24, 0x00, // # #
+ 0x18, 0xC0, // ## ##
+ 0x07, 0x80, // ####
+ 0x1E, 0x00, // ####
+ 0x31, 0x80, // ## ##
+ 0x02, 0x40, // # #
+ 0x02, 0x40, // # #
+ 0x01, 0x80, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @192 '&' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x1D, 0x80, // ### ##
+ 0x37, 0x00, // ## ###
+ 0x33, 0x00, // ## ##
+ 0x1D, 0x80, // ### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @224 ''' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x02, 0x00, // #
+ 0x02, 0x00, // #
+ 0x02, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @256 '(' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0E, 0x00, // ###
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0E, 0x00, // ###
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @288 ')' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x1C, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @320 '*' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xC0, // ########
+ 0x0F, 0x00, // ####
+ 0x1F, 0x80, // ######
+ 0x19, 0x80, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @352 '+' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x3F, 0x80, // #######
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @384 ',' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x0C, 0x00, // ##
+ 0x08, 0x00, // #
+ 0x08, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @416 '-' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @448 '.' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @480 '/' (11 pixels wide)
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @512 '0' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0E, 0x00, // ###
+ 0x1B, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @544 '1' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x3E, 0x00, // #####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @576 '2' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x19, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @608 '3' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x61, 0x80, // ## ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x03, 0x80, // ###
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x61, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @640 '4' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x0F, 0x00, // ####
+ 0x0B, 0x00, // # ##
+ 0x1B, 0x00, // ## ##
+ 0x13, 0x00, // # ##
+ 0x33, 0x00, // ## ##
+ 0x3F, 0x80, // #######
+ 0x03, 0x00, // ##
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @672 '5' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x11, 0x80, // # ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x21, 0x80, // # ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @704 '6' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x1C, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x00, // ## ###
+ 0x39, 0x80, // ### ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x0F, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @736 '7' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x43, 0x00, // # ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @768 '8' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @800 '9' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x33, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0x80, // ### ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x07, 0x00, // ###
+ 0x3C, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @832 ':' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @864 ';' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x08, 0x00, // #
+ 0x08, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @896 '<' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0xC0, // ##
+ 0x03, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x18, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x03, 0x00, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @928 '=' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xC0, // #########
+ 0x00, 0x00, //
+ 0x7F, 0xC0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @960 '>' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x60, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x03, 0x00, // ##
+ 0x00, 0xC0, // ##
+ 0x03, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x18, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @992 '?' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x01, 0x80, // ##
+ 0x07, 0x00, // ###
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1024 '@' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0E, 0x00, // ###
+ 0x11, 0x00, // # #
+ 0x21, 0x00, // # #
+ 0x21, 0x00, // # #
+ 0x27, 0x00, // # ###
+ 0x29, 0x00, // # # #
+ 0x29, 0x00, // # # #
+ 0x27, 0x00, // # ###
+ 0x20, 0x00, // #
+ 0x11, 0x00, // # #
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1056 'A' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x0F, 0x00, // ####
+ 0x09, 0x00, // # #
+ 0x19, 0x80, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x1F, 0x80, // ######
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x79, 0xE0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1088 'B' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1120 'C' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x40, // ##### #
+ 0x30, 0xC0, // ## ##
+ 0x60, 0x40, // ## #
+ 0x60, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x60, 0x40, // ## #
+ 0x30, 0x80, // ## #
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1152 'D' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1184 'E' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x30, 0x80, // ## #
+ 0x30, 0x80, // ## #
+ 0x32, 0x00, // ## #
+ 0x3E, 0x00, // #####
+ 0x32, 0x00, // ## #
+ 0x30, 0x80, // ## #
+ 0x30, 0x80, // ## #
+ 0x7F, 0x80, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1216 'F' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xC0, // #########
+ 0x30, 0x40, // ## #
+ 0x30, 0x40, // ## #
+ 0x32, 0x00, // ## #
+ 0x3E, 0x00, // #####
+ 0x32, 0x00, // ## #
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7C, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1248 'G' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1E, 0x80, // #### #
+ 0x31, 0x80, // ## ##
+ 0x60, 0x80, // ## #
+ 0x60, 0x00, // ##
+ 0x60, 0x00, // ##
+ 0x67, 0xC0, // ## #####
+ 0x61, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1280 'H' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x80, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1312 'I' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xC0, // ########
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1344 'J' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xC0, // #######
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x63, 0x00, // ## ##
+ 0x63, 0x00, // ## ##
+ 0x63, 0x00, // ## ##
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1376 'K' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x33, 0x00, // ## ##
+ 0x36, 0x00, // ## ##
+ 0x3C, 0x00, // ####
+ 0x3E, 0x00, // #####
+ 0x33, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x79, 0xC0, // #### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1408 'L' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7E, 0x00, // ######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x40, // ## #
+ 0x18, 0x40, // ## #
+ 0x18, 0x40, // ## #
+ 0x7F, 0xC0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1440 'M' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xE0, 0xE0, // ### ###
+ 0x60, 0xC0, // ## ##
+ 0x71, 0xC0, // ### ###
+ 0x7B, 0xC0, // #### ####
+ 0x6A, 0xC0, // ## # # ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x64, 0xC0, // ## # ##
+ 0x60, 0xC0, // ## ##
+ 0xFB, 0xE0, // ##### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1472 'N' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x73, 0xC0, // ### ####
+ 0x31, 0x80, // ## ##
+ 0x39, 0x80, // ### ##
+ 0x3D, 0x80, // #### ##
+ 0x35, 0x80, // ## # ##
+ 0x37, 0x80, // ## ####
+ 0x33, 0x80, // ## ###
+ 0x31, 0x80, // ## ##
+ 0x79, 0x80, // #### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1504 'O' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1536 'P' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7E, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1568 'Q' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x0C, 0xC0, // ## ##
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1600 'R' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x00, // #######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3E, 0x00, // #####
+ 0x33, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7C, 0xE0, // ##### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1632 'S' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x38, 0x00, // ###
+ 0x1F, 0x00, // #####
+ 0x03, 0x80, // ###
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1664 'T' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x4C, 0x80, // # ## #
+ 0x4C, 0x80, // # ## #
+ 0x4C, 0x80, // # ## #
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1696 'U' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1728 'V' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0A, 0x00, // # #
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1760 'W' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xFB, 0xE0, // ##### #####
+ 0x60, 0xC0, // ## ##
+ 0x64, 0xC0, // ## # ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x2A, 0x80, // # # # #
+ 0x3B, 0x80, // ### ###
+ 0x3B, 0x80, // ### ###
+ 0x31, 0x80, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1792 'X' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x1B, 0x00, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1824 'Y' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x79, 0xE0, // #### ####
+ 0x30, 0xC0, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x0F, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1856 'Z' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x21, 0x80, // # ##
+ 0x23, 0x00, // # ##
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x0C, 0x00, // ##
+ 0x18, 0x80, // ## #
+ 0x30, 0x80, // ## #
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1888 '[' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1920 '\' (11 pixels wide)
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1952 ']' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1E, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1984 '^' (11 pixels wide)
+ 0x04, 0x00, // #
+ 0x0A, 0x00, // # #
+ 0x0A, 0x00, // # #
+ 0x11, 0x00, // # #
+ 0x20, 0x80, // # #
+ 0x20, 0x80, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2016 '_' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xFF, 0xE0, // ###########
+
+ // @2048 '`' (11 pixels wide)
+ 0x08, 0x00, // #
+ 0x04, 0x00, // #
+ 0x02, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2080 'a' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0xC0, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2112 'b' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x00, // ## ###
+ 0x39, 0x80, // ### ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x39, 0x80, // ### ##
+ 0x77, 0x00, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2144 'c' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1E, 0x80, // #### #
+ 0x31, 0x80, // ## ##
+ 0x60, 0x80, // ## #
+ 0x60, 0x00, // ##
+ 0x60, 0x80, // ## #
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2176 'd' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x1D, 0x80, // ### ##
+ 0x33, 0x80, // ## ###
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0xC0, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2208 'e' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x7F, 0xC0, // #########
+ 0x60, 0x00, // ##
+ 0x30, 0xC0, // ## ##
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2240 'f' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0xE0, // ######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0x80, // #######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2272 'g' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1D, 0xC0, // ### ###
+ 0x33, 0x80, // ## ###
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0x80, // ### ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2304 'h' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x00, // ## ###
+ 0x39, 0x80, // ### ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2336 'i' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2368 'j' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2400 'k' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x80, // ## ####
+ 0x36, 0x00, // ## ##
+ 0x3C, 0x00, // ####
+ 0x3C, 0x00, // ####
+ 0x36, 0x00, // ## ##
+ 0x33, 0x00, // ## ##
+ 0x77, 0xC0, // ### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2432 'l' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2464 'm' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x36, 0xC0, // ## ## ##
+ 0x76, 0xE0, // ### ## ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2496 'n' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x77, 0x00, // ### ###
+ 0x39, 0x80, // ### ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2528 'o' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x31, 0x80, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x60, 0xC0, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1F, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2560 'p' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x77, 0x00, // ### ###
+ 0x39, 0x80, // ### ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x39, 0x80, // ### ##
+ 0x37, 0x00, // ## ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7C, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2592 'q' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1D, 0xC0, // ### ###
+ 0x33, 0x80, // ## ###
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x61, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0x80, // ### ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2624 'r' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0x80, // #### ###
+ 0x1C, 0xC0, // ### ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2656 's' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x31, 0x80, // ## ##
+ 0x3C, 0x00, // ####
+ 0x1F, 0x00, // #####
+ 0x03, 0x80, // ###
+ 0x31, 0x80, // ## ##
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2688 't' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x7F, 0x00, // #######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x80, // ## #
+ 0x0F, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2720 'u' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x73, 0x80, // ### ###
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x33, 0x80, // ## ###
+ 0x1D, 0xC0, // ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2752 'v' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x31, 0x80, // ## ##
+ 0x31, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2784 'w' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xF1, 0xE0, // #### ####
+ 0x60, 0xC0, // ## ##
+ 0x64, 0xC0, // ## # ##
+ 0x6E, 0xC0, // ## ### ##
+ 0x3B, 0x80, // ### ###
+ 0x3B, 0x80, // ### ###
+ 0x31, 0x80, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2816 'x' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7B, 0xC0, // #### ####
+ 0x1B, 0x00, // ## ##
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x1B, 0x00, // ## ##
+ 0x7B, 0xC0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2848 'y' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x79, 0xE0, // #### ####
+ 0x30, 0xC0, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x0B, 0x00, // # ##
+ 0x0F, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2880 'z' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x21, 0x80, // # ##
+ 0x03, 0x00, // ##
+ 0x0E, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x30, 0x80, // ## #
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2912 '{' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2944 '|' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2976 '}' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3008 '~' (11 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x18, 0x00, // ##
+ 0x24, 0x80, // # # #
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+};
+
+sFONT Font16 = {
+ Font16_Table,
+ 11, /* Width */
+ 16, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/voting_device/src/font20.c b/voting_device/src/font20.c
new file mode 100644
index 0000000..49c8e14
--- /dev/null
+++ b/voting_device/src/font20.c
@@ -0,0 +1,2143 @@
+/**
+ ******************************************************************************
+ * @file font20.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text font20 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+// Character bitmaps for Courier New 15pt
+const uint8_t Font20_Table[] PROGMEM =
+{
+ // @0 ' ' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @40 '!' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x02, 0x00, // #
+ 0x02, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @80 '"' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1C, 0xE0, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x08, 0x40, // # #
+ 0x08, 0x40, // # #
+ 0x08, 0x40, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @120 '#' (14 pixels wide)
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @160 '$' (14 pixels wide)
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x07, 0xE0, // ######
+ 0x0F, 0xE0, // #######
+ 0x18, 0x60, // ## ##
+ 0x18, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x0F, 0xC0, // ######
+ 0x00, 0xE0, // ###
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xC0, // #######
+ 0x1F, 0x80, // ######
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @200 '%' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1C, 0x00, // ###
+ 0x22, 0x00, // # #
+ 0x22, 0x00, // # #
+ 0x22, 0x00, // # #
+ 0x1C, 0x60, // ### ##
+ 0x01, 0xE0, // ####
+ 0x0F, 0x80, // #####
+ 0x3C, 0x00, // ####
+ 0x31, 0xC0, // ## ###
+ 0x02, 0x20, // # #
+ 0x02, 0x20, // # #
+ 0x02, 0x20, // # #
+ 0x01, 0xC0, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @240 '&' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0xE0, // #####
+ 0x0F, 0xE0, // #######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0F, 0x30, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x19, 0xE0, // ## ####
+ 0x18, 0xC0, // ## ##
+ 0x1F, 0xF0, // #########
+ 0x07, 0xB0, // #### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @280 ''' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x01, 0x00, // #
+ 0x01, 0x00, // #
+ 0x01, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @320 '(' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @360 ')' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @400 '*' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1B, 0x60, // ## ## ##
+ 0x1F, 0xE0, // ########
+ 0x07, 0x80, // ####
+ 0x07, 0x80, // ####
+ 0x0F, 0xC0, // ######
+ 0x0C, 0xC0, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @440 '+' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @480 ',' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @520 '-' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @560 '.' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @600 '/' (14 pixels wide)
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @640 '0' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x18, 0xC0, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x1F, 0xC0, // #######
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @680 '1' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x1F, 0x00, // #####
+ 0x1F, 0x00, // #####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @720 '2' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x00, 0x60, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @760 '3' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x3F, 0xC0, // ########
+ 0x30, 0xE0, // ## ###
+ 0x00, 0x60, // ##
+ 0x00, 0xE0, // ###
+ 0x07, 0xC0, // #####
+ 0x07, 0xC0, // #####
+ 0x00, 0xE0, // ###
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x60, 0xE0, // ## ###
+ 0x7F, 0xC0, // #########
+ 0x3F, 0x80, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @800 '4' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x01, 0xC0, // ###
+ 0x03, 0xC0, // ####
+ 0x03, 0xC0, // ####
+ 0x06, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x30, 0xC0, // ## ##
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x00, 0xC0, // ##
+ 0x03, 0xE0, // #####
+ 0x03, 0xE0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @840 '5' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xC0, // #######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1F, 0x80, // ######
+ 0x1F, 0xC0, // #######
+ 0x18, 0xE0, // ## ###
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x30, 0xE0, // ## ###
+ 0x3F, 0xC0, // ########
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @880 '6' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0xE0, // #####
+ 0x0F, 0xE0, // #######
+ 0x1E, 0x00, // ####
+ 0x18, 0x00, // ##
+ 0x38, 0x00, // ###
+ 0x37, 0x80, // ## ####
+ 0x3F, 0xC0, // ########
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x18, 0xE0, // ## ###
+ 0x1F, 0xC0, // #######
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @920 '7' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x30, 0x60, // ## ##
+ 0x00, 0x60, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @960 '8' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x38, 0xE0, // ### ###
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xC0, // #######
+ 0x38, 0xE0, // ### ###
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x38, 0xE0, // ### ###
+ 0x1F, 0xC0, // #######
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1000 '9' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x1F, 0xC0, // #######
+ 0x38, 0xC0, // ### ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x38, 0xE0, // ### ###
+ 0x1F, 0xE0, // ########
+ 0x0F, 0x60, // #### ##
+ 0x00, 0xE0, // ###
+ 0x00, 0xC0, // ##
+ 0x03, 0xC0, // ####
+ 0x3F, 0x80, // #######
+ 0x3E, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1040 ':' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x80, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1080 ';' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x01, 0xC0, // ###
+ 0x01, 0xC0, // ###
+ 0x01, 0xC0, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x04, 0x00, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1120 '<' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x30, // ##
+ 0x00, 0xF0, // ####
+ 0x03, 0xC0, // ####
+ 0x07, 0x00, // ###
+ 0x1C, 0x00, // ###
+ 0x78, 0x00, // ####
+ 0x1C, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x03, 0xC0, // ####
+ 0x00, 0xF0, // ####
+ 0x00, 0x30, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1160 '=' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xF0, // ###########
+ 0x7F, 0xF0, // ###########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0xF0, // ###########
+ 0x7F, 0xF0, // ###########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1200 '>' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x30, 0x00, // ##
+ 0x3C, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x03, 0x80, // ###
+ 0x00, 0xE0, // ###
+ 0x00, 0x78, // ####
+ 0x00, 0xE0, // ###
+ 0x03, 0x80, // ###
+ 0x0F, 0x00, // ####
+ 0x3C, 0x00, // ####
+ 0x30, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1240 '?' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0x80, // #####
+ 0x1F, 0xC0, // #######
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x00, 0x60, // ##
+ 0x01, 0xC0, // ###
+ 0x03, 0x80, // ###
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1280 '@' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x80, // ###
+ 0x0C, 0x80, // ## #
+ 0x08, 0x40, // # #
+ 0x10, 0x40, // # #
+ 0x10, 0x40, // # #
+ 0x11, 0xC0, // # ###
+ 0x12, 0x40, // # # #
+ 0x12, 0x40, // # # #
+ 0x12, 0x40, // # # #
+ 0x11, 0xC0, // # ###
+ 0x10, 0x00, // #
+ 0x08, 0x00, // #
+ 0x08, 0x40, // # #
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1320 'A' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x80, // ######
+ 0x1F, 0x80, // ######
+ 0x03, 0x80, // ###
+ 0x06, 0xC0, // ## ##
+ 0x06, 0xC0, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x0C, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x30, 0x30, // ## ##
+ 0x78, 0x78, // #### ####
+ 0x78, 0x78, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1360 'B' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x80, // #######
+ 0x3F, 0xC0, // ########
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0xE0, // ## ###
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xE0, // ########
+ 0x18, 0x70, // ## ###
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xE0, // #########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1400 'C' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB0, // #### ##
+ 0x0F, 0xF0, // ########
+ 0x1C, 0x70, // ### ###
+ 0x38, 0x30, // ### ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x38, 0x30, // ### ##
+ 0x1C, 0x70, // ### ###
+ 0x0F, 0xE0, // #######
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1440 'D' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7F, 0x80, // ########
+ 0x7F, 0xC0, // #########
+ 0x30, 0xE0, // ## ###
+ 0x30, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x70, // ## ###
+ 0x30, 0xE0, // ## ###
+ 0x7F, 0xC0, // #########
+ 0x7F, 0x80, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1480 'E' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x1F, 0x80, // ######
+ 0x1F, 0x80, // ######
+ 0x19, 0x80, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1520 'F' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x1F, 0x80, // ######
+ 0x1F, 0x80, // ######
+ 0x19, 0x80, // ## ##
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x3F, 0x00, // ######
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1560 'G' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB0, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x31, 0xF8, // ## ######
+ 0x31, 0xF8, // ## ######
+ 0x30, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x1F, 0xF0, // #########
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1600 'H' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1640 'I' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1680 'J' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x03, 0xF8, // #######
+ 0x03, 0xF8, // #######
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x30, 0xE0, // ## ###
+ 0x3F, 0xC0, // ########
+ 0x0F, 0x80, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1720 'K' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3E, 0xF8, // ##### #####
+ 0x3E, 0xF8, // ##### #####
+ 0x18, 0xE0, // ## ###
+ 0x19, 0x80, // ## ##
+ 0x1B, 0x00, // ## ##
+ 0x1F, 0x00, // #####
+ 0x1D, 0x80, // ### ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3E, 0x78, // ##### ####
+ 0x3E, 0x38, // ##### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1760 'L' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0x00, // ######
+ 0x3F, 0x00, // ######
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x30, // ## ##
+ 0x0C, 0x30, // ## ##
+ 0x0C, 0x30, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1800 'M' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0x78, // #### ####
+ 0x78, 0x78, // #### ####
+ 0x38, 0x70, // ### ###
+ 0x3C, 0xF0, // #### ####
+ 0x34, 0xB0, // ## # # ##
+ 0x37, 0xB0, // ## #### ##
+ 0x37, 0xB0, // ## #### ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x30, 0x30, // ## ##
+ 0x7C, 0xF8, // ##### #####
+ 0x7C, 0xF8, // ##### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1840 'N' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x39, 0xF0, // ### #####
+ 0x3D, 0xF0, // #### #####
+ 0x1C, 0x60, // ### ##
+ 0x1E, 0x60, // #### ##
+ 0x1E, 0x60, // #### ##
+ 0x1B, 0x60, // ## ## ##
+ 0x1B, 0x60, // ## ## ##
+ 0x19, 0xE0, // ## ####
+ 0x19, 0xE0, // ## ####
+ 0x18, 0xE0, // ## ###
+ 0x3E, 0xE0, // ##### ###
+ 0x3E, 0x60, // ##### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1880 'O' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x0F, 0xC0, // ######
+ 0x1C, 0xE0, // ### ###
+ 0x38, 0x70, // ### ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x0F, 0xC0, // ######
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1920 'P' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xE0, // #########
+ 0x18, 0x70, // ## ###
+ 0x18, 0x30, // ## ##
+ 0x18, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xC0, // #######
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x3F, 0x00, // ######
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @1960 'Q' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x0F, 0xC0, // ######
+ 0x1C, 0xE0, // ### ###
+ 0x38, 0x70, // ### ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x1C, 0xE0, // ### ###
+ 0x0F, 0xC0, // ######
+ 0x07, 0x80, // ####
+ 0x07, 0xB0, // #### ##
+ 0x0F, 0xF0, // ########
+ 0x0C, 0xE0, // ## ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2000 'R' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xE0, // #########
+ 0x18, 0x70, // ## ###
+ 0x18, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xC0, // #######
+ 0x18, 0xE0, // ## ###
+ 0x18, 0x60, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x3E, 0x38, // ##### ###
+ 0x3E, 0x18, // ##### ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2040 'S' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0xB0, // ##### ##
+ 0x1F, 0xF0, // #########
+ 0x38, 0x70, // ### ###
+ 0x30, 0x30, // ## ##
+ 0x38, 0x00, // ###
+ 0x1F, 0x80, // ######
+ 0x07, 0xE0, // ######
+ 0x00, 0x70, // ###
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x3F, 0xE0, // #########
+ 0x37, 0xC0, // ## #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2080 'T' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x0F, 0xC0, // ######
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2120 'U' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1C, 0xE0, // ### ###
+ 0x0F, 0xC0, // ######
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2160 'V' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2200 'W' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7C, 0x7C, // ##### #####
+ 0x7C, 0x7C, // ##### #####
+ 0x30, 0x18, // ## ##
+ 0x33, 0x98, // ## ### ##
+ 0x33, 0x98, // ## ### ##
+ 0x33, 0x98, // ## ### ##
+ 0x36, 0xD8, // ## ## ## ##
+ 0x16, 0xD0, // # ## ## #
+ 0x1C, 0x70, // ### ###
+ 0x1C, 0x70, // ### ###
+ 0x1C, 0x70, // ### ###
+ 0x18, 0x30, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2240 'X' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x0D, 0x80, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2280 'Y' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x18, 0x60, // ## ##
+ 0x0C, 0xC0, // ## ##
+ 0x07, 0x80, // ####
+ 0x07, 0x80, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x0F, 0xC0, // ######
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2320 'Z' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2360 '[' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0xC0, // ####
+ 0x03, 0xC0, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0xC0, // ####
+ 0x03, 0xC0, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2400 '\' (14 pixels wide)
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x01, 0x80, // ##
+ 0x01, 0x80, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x60, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2440 ']' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x0F, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x0F, 0x00, // ####
+ 0x0F, 0x00, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2480 '^' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x02, 0x00, // #
+ 0x07, 0x00, // ###
+ 0x0D, 0x80, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x30, 0x60, // ## ##
+ 0x20, 0x20, // # #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2520 '_' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0xFF, 0xFC, // ##############
+ 0xFF, 0xFC, // ##############
+
+ // @2560 '`' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x04, 0x00, // #
+ 0x03, 0x00, // ##
+ 0x00, 0x80, // #
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2600 'a' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0F, 0xC0, // ######
+ 0x1F, 0xE0, // ########
+ 0x00, 0x60, // ##
+ 0x0F, 0xE0, // #######
+ 0x1F, 0xE0, // ########
+ 0x38, 0x60, // ### ##
+ 0x30, 0xE0, // ## ###
+ 0x3F, 0xF0, // ##########
+ 0x1F, 0x70, // ##### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2640 'b' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x70, 0x00, // ###
+ 0x70, 0x00, // ###
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x37, 0x80, // ## ####
+ 0x3F, 0xE0, // #########
+ 0x38, 0x60, // ### ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x60, // ### ##
+ 0x7F, 0xE0, // ##########
+ 0x77, 0x80, // ### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2680 'c' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB0, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x18, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x38, 0x30, // ### ##
+ 0x1F, 0xF0, // #########
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2720 'd' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x70, // ###
+ 0x00, 0x70, // ###
+ 0x00, 0x30, // ##
+ 0x00, 0x30, // ##
+ 0x07, 0xB0, // #### ##
+ 0x1F, 0xF0, // #########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x70, // ### ###
+ 0x1F, 0xF8, // ##########
+ 0x07, 0xB8, // #### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2760 'e' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x3F, 0xF0, // ##########
+ 0x3F, 0xF0, // ##########
+ 0x30, 0x00, // ##
+ 0x18, 0x30, // ## ##
+ 0x1F, 0xF0, // #########
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2800 'f' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0xF0, // ######
+ 0x07, 0xF0, // #######
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2840 'g' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB8, // #### ###
+ 0x1F, 0xF8, // ##########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xF0, // #########
+ 0x07, 0xB0, // #### ##
+ 0x00, 0x30, // ##
+ 0x00, 0x70, // ###
+ 0x0F, 0xE0, // #######
+ 0x0F, 0xC0, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2880 'h' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x38, 0x00, // ###
+ 0x38, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1B, 0xC0, // ## ####
+ 0x1F, 0xE0, // ########
+ 0x1C, 0x60, // ### ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2920 'i' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x1F, 0x00, // #####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @2960 'j' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xC0, // #######
+ 0x1F, 0xC0, // #######
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x00, 0xC0, // ##
+ 0x01, 0xC0, // ###
+ 0x3F, 0x80, // #######
+ 0x3F, 0x00, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3000 'k' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x38, 0x00, // ###
+ 0x38, 0x00, // ###
+ 0x18, 0x00, // ##
+ 0x18, 0x00, // ##
+ 0x1B, 0xE0, // ## #####
+ 0x1B, 0xE0, // ## #####
+ 0x1B, 0x00, // ## ##
+ 0x1E, 0x00, // ####
+ 0x1E, 0x00, // ####
+ 0x1B, 0x00, // ## ##
+ 0x19, 0x80, // ## ##
+ 0x39, 0xF0, // ### #####
+ 0x39, 0xF0, // ### #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3040 'l' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1F, 0x00, // #####
+ 0x1F, 0x00, // #####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3080 'm' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x7E, 0xE0, // ###### ###
+ 0x7F, 0xF0, // ###########
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x33, 0x30, // ## ## ##
+ 0x7B, 0xB8, // #### ### ###
+ 0x7B, 0xB8, // #### ### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3120 'n' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3B, 0xC0, // ### ####
+ 0x3F, 0xE0, // #########
+ 0x1C, 0x60, // ### ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3160 'o' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0x80, // ####
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x07, 0x80, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3200 'p' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x77, 0x80, // ### ####
+ 0x7F, 0xE0, // ##########
+ 0x38, 0x60, // ### ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x38, 0x60, // ### ##
+ 0x3F, 0xE0, // #########
+ 0x37, 0x80, // ## ####
+ 0x30, 0x00, // ##
+ 0x30, 0x00, // ##
+ 0x7C, 0x00, // #####
+ 0x7C, 0x00, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3240 'q' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xB8, // #### ###
+ 0x1F, 0xF8, // ##########
+ 0x18, 0x70, // ## ###
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x30, 0x30, // ## ##
+ 0x18, 0x70, // ## ###
+ 0x1F, 0xF0, // #########
+ 0x07, 0xB0, // #### ##
+ 0x00, 0x30, // ##
+ 0x00, 0x30, // ##
+ 0x00, 0xF8, // #####
+ 0x00, 0xF8, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3280 'r' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xE0, // #### ###
+ 0x3D, 0xF0, // #### #####
+ 0x0F, 0x30, // #### ##
+ 0x0E, 0x00, // ###
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0xC0, // ########
+ 0x3F, 0xC0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3320 's' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x07, 0xE0, // ######
+ 0x1F, 0xE0, // ########
+ 0x18, 0x60, // ## ##
+ 0x1E, 0x00, // ####
+ 0x0F, 0xC0, // ######
+ 0x01, 0xE0, // ####
+ 0x18, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0x80, // ######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3360 't' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x3F, 0xE0, // #########
+ 0x3F, 0xE0, // #########
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x0C, 0x30, // ## ##
+ 0x0F, 0xF0, // ########
+ 0x07, 0xC0, // #####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3400 'u' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x38, 0xE0, // ### ###
+ 0x38, 0xE0, // ### ###
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0x60, // ## ##
+ 0x18, 0xE0, // ## ###
+ 0x1F, 0xF0, // #########
+ 0x0F, 0x70, // #### ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3440 'v' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x07, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3480 'w' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x32, 0x60, // ## # ##
+ 0x32, 0x60, // ## # ##
+ 0x37, 0xE0, // ## ######
+ 0x1D, 0xC0, // ### ###
+ 0x1D, 0xC0, // ### ###
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3520 'x' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x0C, 0xC0, // ## ##
+ 0x07, 0x80, // ####
+ 0x03, 0x00, // ##
+ 0x07, 0x80, // ####
+ 0x0C, 0xC0, // ## ##
+ 0x3C, 0xF0, // #### ####
+ 0x3C, 0xF0, // #### ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3560 'y' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x78, 0xF0, // #### ####
+ 0x78, 0xF0, // #### ####
+ 0x30, 0x60, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x18, 0xC0, // ## ##
+ 0x0D, 0x80, // ## ##
+ 0x0F, 0x80, // #####
+ 0x07, 0x00, // ###
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x00, // ##
+ 0x7F, 0x00, // #######
+ 0x7F, 0x00, // #######
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3600 'z' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x18, 0xC0, // ## ##
+ 0x01, 0x80, // ##
+ 0x03, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x0C, 0x60, // ## ##
+ 0x1F, 0xE0, // ########
+ 0x1F, 0xE0, // ########
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3640 '{' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x01, 0xC0, // ###
+ 0x03, 0xC0, // ####
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x07, 0x00, // ###
+ 0x0E, 0x00, // ###
+ 0x07, 0x00, // ###
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0xC0, // ####
+ 0x01, 0xC0, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3680 '|' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x03, 0x00, // ##
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3720 '}' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x1C, 0x00, // ###
+ 0x1E, 0x00, // ####
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x07, 0x00, // ###
+ 0x03, 0x80, // ###
+ 0x07, 0x00, // ###
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x06, 0x00, // ##
+ 0x1E, 0x00, // ####
+ 0x1C, 0x00, // ###
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+
+ // @3760 '~' (14 pixels wide)
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x0E, 0x00, // ###
+ 0x3F, 0x30, // ###### ##
+ 0x33, 0xF0, // ## ######
+ 0x01, 0xE0, // ####
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+ 0x00, 0x00, //
+};
+
+
+sFONT Font20 = {
+ Font20_Table,
+ 14, /* Width */
+ 20, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/voting_device/src/font24.c b/voting_device/src/font24.c
new file mode 100644
index 0000000..735f487
--- /dev/null
+++ b/voting_device/src/font24.c
@@ -0,0 +1,2521 @@
+/**
+ ******************************************************************************
+ * @file font24.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text font24 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+const uint8_t Font24_Table [] PROGMEM =
+{
+ // @0 ' ' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @72 '!' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @144 '"' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0E, 0x70, 0x00, // ### ###
+ 0x0E, 0x70, 0x00, // ### ###
+ 0x0E, 0x70, 0x00, // ### ###
+ 0x04, 0x20, 0x00, // # #
+ 0x04, 0x20, 0x00, // # #
+ 0x04, 0x20, 0x00, // # #
+ 0x04, 0x20, 0x00, // # #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @216 '#' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @288 '$' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x07, 0xB0, 0x00, // #### ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x70, 0x00, // ## ###
+ 0x1C, 0x00, 0x00, // ###
+ 0x0F, 0x80, 0x00, // #####
+ 0x07, 0xE0, 0x00, // ######
+ 0x00, 0xF0, 0x00, // ####
+ 0x18, 0x30, 0x00, // ## ##
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x1C, 0x70, 0x00, // ### ###
+ 0x1F, 0xE0, 0x00, // ########
+ 0x1B, 0xC0, 0x00, // ## ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @360 '%' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0x80, 0x00, // ####
+ 0x0F, 0xC0, 0x00, // ######
+ 0x1C, 0xE0, 0x00, // ### ###
+ 0x18, 0x60, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x1C, 0xE0, 0x00, // ### ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x07, 0xE0, 0x00, // ######
+ 0x1F, 0xF0, 0x00, // #########
+ 0x07, 0x38, 0x00, // ### ###
+ 0x06, 0x18, 0x00, // ## ##
+ 0x06, 0x18, 0x00, // ## ##
+ 0x07, 0x38, 0x00, // ### ###
+ 0x03, 0xF0, 0x00, // ######
+ 0x01, 0xE0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @432 '&' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xF0, 0x00, // ######
+ 0x07, 0xF0, 0x00, // #######
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x07, 0x00, 0x00, // ###
+ 0x0F, 0x9C, 0x00, // ##### ###
+ 0x1D, 0xFC, 0x00, // ### #######
+ 0x18, 0xF0, 0x00, // ## ####
+ 0x18, 0x70, 0x00, // ## ###
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x07, 0xDC, 0x00, // ##### ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @504 ''' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x01, 0x00, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @576 '(' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @648 ')' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x18, 0x00, 0x00, // ##
+ 0x1C, 0x00, 0x00, // ###
+ 0x0E, 0x00, 0x00, // ###
+ 0x0E, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x0F, 0x00, 0x00, // ####
+ 0x0E, 0x00, 0x00, // ###
+ 0x1C, 0x00, 0x00, // ###
+ 0x18, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @720 '*' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x1D, 0xB8, 0x00, // ### ## ###
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x07, 0xE0, 0x00, // ######
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @792 '+' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @864 ',' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @936 '-' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1008 '.' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1080 '/' (17 pixels wide)
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x0E, 0x00, 0x00, // ###
+ 0x0C, 0x00, 0x00, // ##
+ 0x1C, 0x00, 0x00, // ###
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1152 '0' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x07, 0xE0, 0x00, // ######
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x07, 0xE0, 0x00, // ######
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1224 '1' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x80, 0x00, // #
+ 0x07, 0x80, 0x00, // ####
+ 0x1F, 0x80, 0x00, // ######
+ 0x1D, 0x80, 0x00, // ### ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1296 '2' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xC0, 0x00, // #####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x38, 0x30, 0x00, // ### ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x06, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1368 '3' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xE0, 0x00, // #######
+ 0x0C, 0x70, 0x00, // ## ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xE0, 0x00, // #####
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x0F, 0xC0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1440 '4' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xE0, 0x00, // ####
+ 0x01, 0xE0, 0x00, // ####
+ 0x03, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x30, 0x60, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x00, 0x60, 0x00, // ##
+ 0x03, 0xF8, 0x00, // #######
+ 0x03, 0xF8, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1512 '5' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xF0, 0x00, // #########
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xC0, 0x00, // ## ####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x0F, 0xC0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1584 '6' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xF8, 0x00, // #####
+ 0x03, 0xF8, 0x00, // #######
+ 0x07, 0x00, 0x00, // ###
+ 0x0E, 0x00, 0x00, // ###
+ 0x0C, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xC0, 0x00, // ## ####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x38, 0x00, // ## ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xE0, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1656 '7' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1728 '8' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xE0, 0x00, // ######
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x07, 0xE0, 0x00, // ######
+ 0x07, 0xE0, 0x00, // ######
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x07, 0xE0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1800 '9' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xC0, 0x00, // #####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x30, 0x00, // ### ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x38, 0x00, // ## ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x03, 0xD8, 0x00, // #### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x1F, 0xC0, 0x00, // #######
+ 0x1F, 0x00, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1872 ':' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @1944 ';' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x02, 0x00, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2016 '<' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x1C, 0x00, // ###
+ 0x00, 0x3C, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0x00, 0x00, // ####
+ 0x3C, 0x00, 0x00, // ####
+ 0xF0, 0x00, 0x00, // ####
+ 0x3C, 0x00, 0x00, // ####
+ 0x0F, 0x00, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0xF0, 0x00, // ####
+ 0x00, 0x3C, 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, //
+
+ // @2088 '=' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xFC, 0x00, // #############
+ 0x7F, 0xFC, 0x00, // #############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xFC, 0x00, // #############
+ 0x7F, 0xFC, 0x00, // #############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2160 '>' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x70, 0x00, 0x00, // ###
+ 0x78, 0x00, 0x00, // ####
+ 0x1E, 0x00, 0x00, // ####
+ 0x07, 0x80, 0x00, // ####
+ 0x01, 0xE0, 0x00, // ####
+ 0x00, 0x78, 0x00, // ####
+ 0x00, 0x1E, 0x00, // ####
+ 0x00, 0x78, 0x00, // ####
+ 0x01, 0xE0, 0x00, // ####
+ 0x07, 0x80, 0x00, // ####
+ 0x1E, 0x00, 0x00, // ####
+ 0x78, 0x00, 0x00, // ####
+ 0x70, 0x00, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2232 '?' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xC0, 0x00, // #####
+ 0x0F, 0xE0, 0x00, // #######
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x30, 0x00, // ## ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0x80, 0x00, // ###
+ 0x03, 0x00, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2304 '@' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xE0, 0x00, // #####
+ 0x07, 0xF0, 0x00, // #######
+ 0x0E, 0x38, 0x00, // ### ###
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x18, 0x78, 0x00, // ## ####
+ 0x18, 0xF8, 0x00, // ## #####
+ 0x19, 0xD8, 0x00, // ## ### ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x18, 0xF8, 0x00, // ## #####
+ 0x18, 0x78, 0x00, // ## ####
+ 0x18, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0E, 0x18, 0x00, // ### ##
+ 0x07, 0xF8, 0x00, // ########
+ 0x03, 0xE0, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2376 'A' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0xC0, 0x00, // #######
+ 0x01, 0xC0, 0x00, // ###
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0F, 0xF8, 0x00, // #########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0xFC, 0x7F, 0x00, // ###### #######
+ 0xFC, 0x7F, 0x00, // ###### #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2448 'B' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xE0, 0x00, // ##########
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x1C, 0x00, // ## ###
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2520 'C' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xEC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2592 'D' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xC0, 0x00, // #########
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x7F, 0xE0, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2664 'E' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7F, 0xF8, 0x00, // ############
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x19, 0x80, 0x00, // ## ##
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0x80, 0x00, // ######
+ 0x19, 0x80, 0x00, // ## ##
+ 0x19, 0x98, 0x00, // ## ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7F, 0xF8, 0x00, // ############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2736 'F' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0xCC, 0x00, // ## ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0F, 0xC0, 0x00, // ######
+ 0x0F, 0xC0, 0x00, // ######
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x3F, 0xC0, 0x00, // ########
+ 0x3F, 0xC0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2808 'G' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xEC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0xFE, 0x00, // ## #######
+ 0x30, 0xFE, 0x00, // ## #######
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x0C, 0x00, // ### ##
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2880 'H' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @2952 'I' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3024 'J' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xFE, 0x00, // ##########
+ 0x07, 0xFE, 0x00, // ##########
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x60, 0x00, // ## ##
+ 0x3F, 0xE0, 0x00, // #########
+ 0x0F, 0x80, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3096 'K' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0x3E, 0x00, // ####### #####
+ 0x7F, 0x3E, 0x00, // ####### #####
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x18, 0xC0, 0x00, // ## ##
+ 0x19, 0x80, 0x00, // ## ##
+ 0x1B, 0x80, 0x00, // ## ###
+ 0x1F, 0xC0, 0x00, // #######
+ 0x1C, 0xE0, 0x00, // ### ###
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0x1F, 0x00, // ####### #####
+ 0x7F, 0x1F, 0x00, // ####### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3168 'L' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0x80, 0x00, // ########
+ 0x7F, 0x80, 0x00, // ########
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x7F, 0xFC, 0x00, // #############
+ 0x7F, 0xFC, 0x00, // #############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3240 'M' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xF0, 0x0F, 0x00, // #### ####
+ 0xF8, 0x1F, 0x00, // ##### #####
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x3C, 0x3C, 0x00, // #### ####
+ 0x3C, 0x3C, 0x00, // #### ####
+ 0x36, 0x6C, 0x00, // ## ## ## ##
+ 0x36, 0x6C, 0x00, // ## ## ## ##
+ 0x33, 0xCC, 0x00, // ## #### ##
+ 0x33, 0xCC, 0x00, // ## #### ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0xFE, 0x7F, 0x00, // ####### #######
+ 0xFE, 0x7F, 0x00, // ####### #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3312 'N' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0xFE, 0x00, // #### #######
+ 0x78, 0xFE, 0x00, // #### #######
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x1E, 0x18, 0x00, // #### ##
+ 0x1F, 0x18, 0x00, // ##### ##
+ 0x1B, 0x18, 0x00, // ## ## ##
+ 0x1B, 0x98, 0x00, // ## ### ##
+ 0x19, 0xD8, 0x00, // ## ### ##
+ 0x18, 0xD8, 0x00, // ## ## ##
+ 0x18, 0xF8, 0x00, // ## #####
+ 0x18, 0x78, 0x00, // ## ####
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0x18, 0x00, // ####### ##
+ 0x7F, 0x18, 0x00, // ####### ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3384 'O' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3456 'P' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x0C, 0x1C, 0x00, // ## ###
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x0C, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0F, 0xF8, 0x00, // #########
+ 0x0F, 0xE0, 0x00, // #######
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x3F, 0xC0, 0x00, // ########
+ 0x3F, 0xC0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3528 'Q' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x07, 0xC0, 0x00, // #####
+ 0x07, 0xCC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x0C, 0x38, 0x00, // ## ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3600 'R' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0xE0, 0x00, // ##########
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xC0, 0x00, // #######
+ 0x18, 0xE0, 0x00, // ## ###
+ 0x18, 0x70, 0x00, // ## ###
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x7F, 0x1E, 0x00, // ####### ####
+ 0x7F, 0x0E, 0x00, // ####### ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3672 'S' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x0F, 0xF8, 0x00, // #########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1E, 0x00, 0x00, // ####
+ 0x0F, 0xC0, 0x00, // ######
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x78, 0x00, // ####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3744 'T' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x0F, 0xF0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3816 'U' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3888 'V' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7F, 0x7F, 0x00, // ####### #######
+ 0x7F, 0x7F, 0x00, // ####### #######
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0x80, 0x00, // #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @3960 'W' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xFE, 0x3F, 0x80, // ####### #######
+ 0xFE, 0x3F, 0x80, // ####### #######
+ 0x30, 0x06, 0x00, // ## ##
+ 0x30, 0x06, 0x00, // ## ##
+ 0x30, 0x86, 0x00, // ## # ##
+ 0x19, 0xCC, 0x00, // ## ### ##
+ 0x19, 0xCC, 0x00, // ## ### ##
+ 0x1B, 0x6C, 0x00, // ## ## ## ##
+ 0x1B, 0x6C, 0x00, // ## ## ## ##
+ 0x1E, 0x7C, 0x00, // #### #####
+ 0x0E, 0x38, 0x00, // ### ###
+ 0x0E, 0x38, 0x00, // ### ###
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4032 'X' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4104 'Y' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7C, 0x7E, 0x00, // ##### ######
+ 0x7C, 0x7E, 0x00, // ##### ######
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x0F, 0xF0, 0x00, // ########
+ 0x0F, 0xF0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4176 'Z' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x18, 0xC0, 0x00, // ## ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x06, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4248 '[' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0xF0, 0x00, // #####
+ 0x01, 0xF0, 0x00, // #####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0xF0, 0x00, // #####
+ 0x01, 0xF0, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4320 '\' (17 pixels wide)
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1C, 0x00, 0x00, // ###
+ 0x0C, 0x00, 0x00, // ##
+ 0x0E, 0x00, 0x00, // ###
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4392 ']' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0F, 0x80, 0x00, // #####
+ 0x0F, 0x80, 0x00, // #####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x0F, 0x80, 0x00, // #####
+ 0x0F, 0x80, 0x00, // #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4464 '^' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x80, 0x00, // #
+ 0x01, 0xC0, 0x00, // ###
+ 0x03, 0xE0, 0x00, // #####
+ 0x07, 0x70, 0x00, // ### ###
+ 0x06, 0x30, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x10, 0x04, 0x00, // # #
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4536 '_' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xFF, 0xFF, 0x00, // ################
+ 0xFF, 0xFF, 0x00, // ################
+
+ // @4608 '`' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x03, 0x00, 0x00, // ##
+ 0x03, 0x80, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x60, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4680 'a' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0F, 0xC0, 0x00, // ######
+ 0x1F, 0xE0, 0x00, // ########
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x07, 0xF0, 0x00, // #######
+ 0x1F, 0xF0, 0x00, // #########
+ 0x38, 0x30, 0x00, // ### ##
+ 0x30, 0x30, 0x00, // ## ##
+ 0x30, 0x70, 0x00, // ## ###
+ 0x1F, 0xFC, 0x00, // ###########
+ 0x0F, 0xBC, 0x00, // ##### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4752 'b' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x00, 0x00, // ####
+ 0x78, 0x00, 0x00, // ####
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x7F, 0xF8, 0x00, // ############
+ 0x7B, 0xE0, 0x00, // #### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4824 'c' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xEC, 0x00, // ##### ##
+ 0x0F, 0xFC, 0x00, // ##########
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x38, 0x0C, 0x00, // ### ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x38, 0x0C, 0x00, // ### ##
+ 0x1C, 0x1C, 0x00, // ### ###
+ 0x0F, 0xF8, 0x00, // #########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4896 'd' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x78, 0x00, // ####
+ 0x00, 0x78, 0x00, // ####
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x38, 0x00, // ## ###
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xFE, 0x00, // ############
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @4968 'e' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xE0, 0x00, // ######
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x30, 0x00, 0x00, // ##
+ 0x30, 0x00, 0x00, // ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1F, 0xFC, 0x00, // ###########
+ 0x07, 0xF0, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5040 'f' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0xFC, 0x00, // #######
+ 0x03, 0xFC, 0x00, // ########
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x3F, 0xF8, 0x00, // ###########
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5112 'g' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x1F, 0xFE, 0x00, // ############
+ 0x18, 0x38, 0x00, // ## ###
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x38, 0x00, // ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x0F, 0xC0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5184 'h' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x00, 0x00, // ####
+ 0x78, 0x00, 0x00, // ####
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5256 'i' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0x80, 0x00, // ######
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5328 'j' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xF0, 0x00, // #########
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x30, 0x00, // ##
+ 0x00, 0x70, 0x00, // ###
+ 0x1F, 0xE0, 0x00, // ########
+ 0x1F, 0x80, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5400 'k' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3C, 0x00, 0x00, // ####
+ 0x3C, 0x00, 0x00, // ####
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0xF8, 0x00, // ## #####
+ 0x0C, 0xF8, 0x00, // ## #####
+ 0x0C, 0xC0, 0x00, // ## ##
+ 0x0D, 0x80, 0x00, // ## ##
+ 0x0F, 0x80, 0x00, // #####
+ 0x0F, 0x00, 0x00, // ####
+ 0x0F, 0x80, 0x00, // #####
+ 0x0D, 0xC0, 0x00, // ## ###
+ 0x0C, 0xE0, 0x00, // ## ###
+ 0x3C, 0x7C, 0x00, // #### #####
+ 0x3C, 0x7C, 0x00, // #### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5472 'l' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0x80, 0x00, // ######
+ 0x1F, 0x80, 0x00, // ######
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x3F, 0xFC, 0x00, // ############
+ 0x3F, 0xFC, 0x00, // ############
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5544 'm' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0xF7, 0x78, 0x00, // #### ### ####
+ 0xFF, 0xFC, 0x00, // ##############
+ 0x39, 0xCC, 0x00, // ### ### ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0x31, 0x8C, 0x00, // ## ## ##
+ 0xFD, 0xEF, 0x00, // ###### #### ####
+ 0xFD, 0xEF, 0x00, // ###### #### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5616 'n' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7B, 0xE0, 0x00, // #### #####
+ 0x7F, 0xF0, 0x00, // ###########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x7E, 0x7E, 0x00, // ###### ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5688 'o' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x03, 0xC0, 0x00, // ####
+ 0x0F, 0xF0, 0x00, // ########
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x30, 0x0C, 0x00, // ## ##
+ 0x38, 0x1C, 0x00, // ### ###
+ 0x1C, 0x38, 0x00, // ### ###
+ 0x0F, 0xF0, 0x00, // ########
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5760 'p' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7B, 0xE0, 0x00, // #### #####
+ 0x7F, 0xF8, 0x00, // ############
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x1C, 0x18, 0x00, // ### ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1B, 0xE0, 0x00, // ## #####
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x18, 0x00, 0x00, // ##
+ 0x7F, 0x00, 0x00, // #######
+ 0x7F, 0x00, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5832 'q' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x1F, 0xFE, 0x00, // ############
+ 0x18, 0x38, 0x00, // ## ###
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x30, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x07, 0xD8, 0x00, // ##### ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0x18, 0x00, // ##
+ 0x00, 0xFE, 0x00, // #######
+ 0x00, 0xFE, 0x00, // #######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5904 'r' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3E, 0x78, 0x00, // ##### ####
+ 0x3E, 0xFC, 0x00, // ##### ######
+ 0x07, 0xCC, 0x00, // ##### ##
+ 0x07, 0x00, 0x00, // ###
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x06, 0x00, 0x00, // ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @5976 's' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0xF8, 0x00, // ########
+ 0x0F, 0xF8, 0x00, // #########
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x1F, 0x80, 0x00, // ######
+ 0x0F, 0xF0, 0x00, // ########
+ 0x00, 0xF8, 0x00, // #####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x1F, 0xF0, 0x00, // #########
+ 0x1F, 0xE0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6048 't' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x3F, 0xF0, 0x00, // ##########
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x00, 0x00, // ##
+ 0x0C, 0x1C, 0x00, // ## ###
+ 0x07, 0xFC, 0x00, // #########
+ 0x03, 0xF0, 0x00, // ######
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6120 'u' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x78, 0x00, // #### ####
+ 0x78, 0x78, 0x00, // #### ####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x38, 0x00, // ## ###
+ 0x0F, 0xFE, 0x00, // ###########
+ 0x07, 0xDE, 0x00, // ##### ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6192 'v' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7C, 0x3E, 0x00, // ##### #####
+ 0x7C, 0x3E, 0x00, // ##### #####
+ 0x18, 0x18, 0x00, // ## ##
+ 0x18, 0x18, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x07, 0xE0, 0x00, // ######
+ 0x03, 0xC0, 0x00, // ####
+ 0x03, 0xC0, 0x00, // ####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6264 'w' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x78, 0x3C, 0x00, // #### ####
+ 0x78, 0x3C, 0x00, // #### ####
+ 0x31, 0x18, 0x00, // ## # ##
+ 0x33, 0x98, 0x00, // ## ### ##
+ 0x33, 0x98, 0x00, // ## ### ##
+ 0x1A, 0xB0, 0x00, // ## # # ##
+ 0x1E, 0xF0, 0x00, // #### ####
+ 0x1E, 0xF0, 0x00, // #### ####
+ 0x1C, 0x60, 0x00, // ### ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x0C, 0x60, 0x00, // ## ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6336 'x' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x06, 0x60, 0x00, // ## ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0xC0, 0x00, // ####
+ 0x06, 0x60, 0x00, // ## ##
+ 0x0C, 0x30, 0x00, // ## ##
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x3E, 0x7C, 0x00, // ##### #####
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6408 'y' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x7E, 0x1F, 0x00, // ###### #####
+ 0x7E, 0x1F, 0x00, // ###### #####
+ 0x18, 0x0C, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x06, 0x30, 0x00, // ## ##
+ 0x03, 0x60, 0x00, // ## ##
+ 0x03, 0xE0, 0x00, // #####
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x3F, 0xC0, 0x00, // ########
+ 0x3F, 0xC0, 0x00, // ########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6480 'z' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x18, 0x30, 0x00, // ## ##
+ 0x18, 0x60, 0x00, // ## ##
+ 0x00, 0xC0, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x00, 0x00, // ##
+ 0x06, 0x18, 0x00, // ## ##
+ 0x0C, 0x18, 0x00, // ## ##
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x1F, 0xF8, 0x00, // ##########
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6552 '{' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xE0, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x03, 0x80, 0x00, // ###
+ 0x07, 0x00, 0x00, // ###
+ 0x03, 0x80, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0xE0, 0x00, // ####
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6624 '|' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6696 '}' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x07, 0x00, 0x00, // ###
+ 0x07, 0x80, 0x00, // ####
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0xC0, 0x00, // ###
+ 0x00, 0xE0, 0x00, // ###
+ 0x01, 0xC0, 0x00, // ###
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x01, 0x80, 0x00, // ##
+ 0x07, 0x80, 0x00, // ####
+ 0x07, 0x00, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+
+ // @6768 '~' (17 pixels wide)
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x0E, 0x00, 0x00, // ###
+ 0x1F, 0x18, 0x00, // ##### ##
+ 0x3B, 0xB8, 0x00, // ### ### ###
+ 0x31, 0xF0, 0x00, // ## #####
+ 0x00, 0xE0, 0x00, // ###
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+ 0x00, 0x00, 0x00, //
+};
+
+sFONT Font24 = {
+ Font24_Table,
+ 17, /* Width */
+ 24, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/voting_device/src/font8.c b/voting_device/src/font8.c
new file mode 100644
index 0000000..1b0d2ab
--- /dev/null
+++ b/voting_device/src/font8.c
@@ -0,0 +1,1005 @@
+/**
+ ******************************************************************************
+ * @file Font8.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief This file provides text Font8 for STM32xx-EVAL's LCD driver.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include
+
+//
+// Font data for Courier New 12pt
+//
+
+const uint8_t Font8_Table[] PROGMEM =
+{
+ // @0 ' ' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @8 '!' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @16 '"' (5 pixels wide)
+ 0x50, // # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @24 '#' (5 pixels wide)
+ 0x28, // # #
+ 0x50, // # #
+ 0xF8, // #####
+ 0x50, // # #
+ 0xF8, // #####
+ 0x50, // # #
+ 0xA0, // # #
+ 0x00, //
+
+ // @32 '$' (5 pixels wide)
+ 0x20, // #
+ 0x30, // ##
+ 0x60, // ##
+ 0x30, // ##
+ 0x10, // #
+ 0x60, // ##
+ 0x20, // #
+ 0x00, //
+
+ // @40 '%' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x18, // ##
+ 0x60, // ##
+ 0x10, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @48 '&' (5 pixels wide)
+ 0x00, //
+ 0x38, // ###
+ 0x20, // #
+ 0x60, // ##
+ 0x50, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @56 ''' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @64 '(' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+
+ // @72 ')' (5 pixels wide)
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+
+ // @80 '*' (5 pixels wide)
+ 0x20, // #
+ 0x70, // ###
+ 0x20, // #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @88 '+' (5 pixels wide)
+ 0x00, //
+ 0x20, // #
+ 0x20, // #
+ 0xF8, // #####
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @96 ',' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+
+ // @104 '-' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @112 '.' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @120 '/' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x40, // #
+ 0x80, // #
+ 0x00, //
+
+ // @128 '0' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @136 '1' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+
+ // @144 '2' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @152 '3' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x10, // #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @160 '4' (5 pixels wide)
+ 0x10, // #
+ 0x30, // ##
+ 0x50, // # #
+ 0x78, // ####
+ 0x10, // #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @168 '5' (5 pixels wide)
+ 0x70, // ###
+ 0x40, // #
+ 0x60, // ##
+ 0x10, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @176 '6' (5 pixels wide)
+ 0x30, // ##
+ 0x40, // #
+ 0x60, // ##
+ 0x50, // # #
+ 0x50, // # #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @184 '7' (5 pixels wide)
+ 0x70, // ###
+ 0x50, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @192 '8' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x20, // #
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @200 '9' (5 pixels wide)
+ 0x30, // ##
+ 0x50, // # #
+ 0x50, // # #
+ 0x30, // ##
+ 0x10, // #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @208 ':' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @216 ';' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x10, // #
+ 0x00, //
+ 0x10, // #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @224 '<' (5 pixels wide)
+ 0x00, //
+ 0x10, // #
+ 0x20, // #
+ 0xC0, // ##
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+
+ // @232 '=' (5 pixels wide)
+ 0x00, //
+ 0x70, // ###
+ 0x00, //
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @240 '>' (5 pixels wide)
+ 0x00, //
+ 0x40, // #
+ 0x20, // #
+ 0x18, // ##
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+ 0x00, //
+
+ // @248 '?' (5 pixels wide)
+ 0x20, // #
+ 0x50, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x00, //
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @256 '@' (5 pixels wide)
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x58, // # ##
+ 0x48, // # #
+ 0x40, // #
+ 0x38, // ###
+ 0x00, //
+
+ // @264 'A' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x50, // # #
+ 0x70, // ###
+ 0x88, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @272 'B' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x70, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+
+ // @280 'C' (5 pixels wide)
+ 0x70, // ###
+ 0x50, // # #
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @288 'D' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+
+ // @296 'E' (5 pixels wide)
+ 0xF8, // #####
+ 0x48, // # #
+ 0x60, // ##
+ 0x40, // #
+ 0x48, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+
+ // @304 'F' (5 pixels wide)
+ 0xF8, // #####
+ 0x48, // # #
+ 0x60, // ##
+ 0x40, // #
+ 0x40, // #
+ 0xE0, // ###
+ 0x00, //
+ 0x00, //
+
+ // @312 'G' (5 pixels wide)
+ 0x70, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x58, // # ##
+ 0x50, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @320 'H' (5 pixels wide)
+ 0xE8, // ### #
+ 0x48, // # #
+ 0x78, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @328 'I' (5 pixels wide)
+ 0x70, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @336 'J' (5 pixels wide)
+ 0x38, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x00, //
+ 0x00, //
+
+ // @344 'K' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x50, // # #
+ 0x60, // ##
+ 0x70, // ###
+ 0x50, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @352 'L' (5 pixels wide)
+ 0xE0, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x40, // #
+ 0x48, // # #
+ 0xF8, // #####
+ 0x00, //
+ 0x00, //
+
+ // @360 'M' (5 pixels wide)
+ 0xD8, // ## ##
+ 0xD8, // ## ##
+ 0xD8, // ## ##
+ 0xA8, // # # #
+ 0x88, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @368 'N' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x68, // ## #
+ 0x68, // ## #
+ 0x58, // # ##
+ 0x58, // # ##
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @376 'O' (5 pixels wide)
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @384 'P' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x70, // ###
+ 0x40, // #
+ 0xE0, // ###
+ 0x00, //
+ 0x00, //
+
+ // @392 'Q' (5 pixels wide)
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x18, // ##
+ 0x00, //
+
+ // @400 'R' (5 pixels wide)
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x70, // ###
+ 0x48, // # #
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @408 'S' (5 pixels wide)
+ 0x70, // ###
+ 0x50, // # #
+ 0x20, // #
+ 0x10, // #
+ 0x50, // # #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @416 'T' (5 pixels wide)
+ 0xF8, // #####
+ 0xA8, // # # #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @424 'U' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @432 'V' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x88, // # #
+ 0x48, // # #
+ 0x50, // # #
+ 0x50, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @440 'W' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x88, // # #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+
+ // @448 'X' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x50, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @456 'Y' (5 pixels wide)
+ 0xD8, // ## ##
+ 0x88, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @464 'Z' (5 pixels wide)
+ 0x78, // ####
+ 0x48, // # #
+ 0x10, // #
+ 0x20, // #
+ 0x48, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @472 '[' (5 pixels wide)
+ 0x30, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x30, // ##
+ 0x00, //
+
+ // @480 '\' (5 pixels wide)
+ 0x80, // #
+ 0x40, // #
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+
+ // @488 ']' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x60, // ##
+ 0x00, //
+
+ // @496 '^' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @504 '_' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0xF8, // #####
+
+ // @512 '`' (5 pixels wide)
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x00, //
+
+ // @520 'a' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x10, // #
+ 0x70, // ###
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @528 'b' (5 pixels wide)
+ 0xC0, // ##
+ 0x40, // #
+ 0x70, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0xF0, // ####
+ 0x00, //
+ 0x00, //
+
+ // @536 'c' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x70, // ###
+ 0x40, // #
+ 0x40, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @544 'd' (5 pixels wide)
+ 0x18, // ##
+ 0x08, // #
+ 0x38, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @552 'e' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x70, // ###
+ 0x70, // ###
+ 0x40, // #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @560 'f' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @568 'g' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x08, // #
+ 0x30, // ##
+
+ // @576 'h' (5 pixels wide)
+ 0xC0, // ##
+ 0x40, // #
+ 0x70, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0xE8, // ### #
+ 0x00, //
+ 0x00, //
+
+ // @584 'i' (5 pixels wide)
+ 0x20, // #
+ 0x00, //
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @592 'j' (5 pixels wide)
+ 0x20, // #
+ 0x00, //
+ 0x70, // ###
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x10, // #
+ 0x70, // ###
+
+ // @600 'k' (5 pixels wide)
+ 0xC0, // ##
+ 0x40, // #
+ 0x58, // # ##
+ 0x70, // ###
+ 0x50, // # #
+ 0xD8, // ## ##
+ 0x00, //
+ 0x00, //
+
+ // @608 'l' (5 pixels wide)
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @616 'm' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD0, // ## #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0x00, //
+ 0x00, //
+
+ // @624 'n' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0xC8, // ## #
+ 0x00, //
+ 0x00, //
+
+ // @632 'o' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @640 'p' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xF0, // ####
+ 0x48, // # #
+ 0x48, // # #
+ 0x70, // ###
+ 0x40, // #
+ 0xE0, // ###
+
+ // @648 'q' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x38, // ###
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x08, // #
+ 0x18, // ##
+
+ // @656 'r' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x78, // ####
+ 0x20, // #
+ 0x20, // #
+ 0x70, // ###
+ 0x00, //
+ 0x00, //
+
+ // @664 's' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x30, // ##
+ 0x20, // #
+ 0x10, // #
+ 0x60, // ##
+ 0x00, //
+ 0x00, //
+
+ // @672 't' (5 pixels wide)
+ 0x00, //
+ 0x40, // #
+ 0xF0, // ####
+ 0x40, // #
+ 0x48, // # #
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @680 'u' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x48, // # #
+ 0x48, // # #
+ 0x38, // ###
+ 0x00, //
+ 0x00, //
+
+ // @688 'v' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xC8, // ## #
+ 0x48, // # #
+ 0x30, // ##
+ 0x30, // ##
+ 0x00, //
+ 0x00, //
+
+ // @696 'w' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0xA8, // # # #
+ 0xA8, // # # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+
+ // @704 'x' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x48, // # #
+ 0x30, // ##
+ 0x30, // ##
+ 0x48, // # #
+ 0x00, //
+ 0x00, //
+
+ // @712 'y' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0xD8, // ## ##
+ 0x50, // # #
+ 0x50, // # #
+ 0x20, // #
+ 0x20, // #
+ 0x60, // ##
+
+ // @720 'z' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x78, // ####
+ 0x50, // # #
+ 0x28, // # #
+ 0x78, // ####
+ 0x00, //
+ 0x00, //
+
+ // @728 '{' (5 pixels wide)
+ 0x10, // #
+ 0x20, // #
+ 0x20, // #
+ 0x60, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x10, // #
+ 0x00, //
+
+ // @736 '|' (5 pixels wide)
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x20, // #
+ 0x00, //
+
+ // @744 '}' (5 pixels wide)
+ 0x40, // #
+ 0x20, // #
+ 0x20, // #
+ 0x30, // ##
+ 0x20, // #
+ 0x20, // #
+ 0x40, // #
+ 0x00, //
+
+ // @752 '~' (5 pixels wide)
+ 0x00, //
+ 0x00, //
+ 0x00, //
+ 0x28, // # #
+ 0x50, // # #
+ 0x00, //
+ 0x00, //
+ 0x00, //
+};
+
+sFONT Font8 = {
+ Font8_Table,
+ 5, /* Width */
+ 8, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/voting_device/src/fonts.h b/voting_device/src/fonts.h
new file mode 100644
index 0000000..4530308
--- /dev/null
+++ b/voting_device/src/fonts.h
@@ -0,0 +1,75 @@
+/**
+ ******************************************************************************
+ * @file fonts.h
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 18-February-2014
+ * @brief Header for fonts.c file
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2014 STMicroelectronics
+ *
+ * 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 STMicroelectronics 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 AND CONTRIBUTORS "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 OR CONTRIBUTORS 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.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __FONTS_H
+#define __FONTS_H
+
+/* Max size of bitmap will based on a font24 (17x24) */
+#define MAX_HEIGHT_FONT 24
+#define MAX_WIDTH_FONT 17
+#define OFFSET_BITMAP 54
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include
+
+typedef struct _tFont
+{
+ const uint8_t *table;
+ uint16_t Width;
+ uint16_t Height;
+
+} sFONT;
+
+extern sFONT Font24;
+extern sFONT Font20;
+extern sFONT Font16;
+extern sFONT Font12;
+extern sFONT Font8;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __FONTS_H */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/voting_device/src/imagedata.cpp b/voting_device/src/imagedata.cpp
new file mode 100644
index 0000000..d5aef37
--- /dev/null
+++ b/voting_device/src/imagedata.cpp
@@ -0,0 +1,344 @@
+/**
+ * @filename : imagedata.cpp
+ * @brief : data file for epd demo
+ *
+ * Copyright (C) Waveshare September 5 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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 "imagedata.h"
+#include
+
+const unsigned char IMAGE_DATA[] PROGMEM = {
+/* 0X00,0X01,0XC8,0X00,0XC8,0X00, */
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0X01,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XF8,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XFF,
+0X3F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF0,0X00,
+0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE3,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE1,0XE3,0X00,0X00,0X00,0X00,0X01,
+0XFF,0XFF,0XE7,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XC3,0XF3,0X0F,0XFF,0XFF,0XFF,0XFC,0XFF,0XFF,0XE3,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XC3,0X3B,0X0F,0XFF,0XFF,
+0XFF,0XFE,0XFF,0XFF,0XE3,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XC3,0X0F,0X0F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XE1,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XC3,0X0F,0X0F,
+0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF0,0XFC,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE3,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XC3,0X87,0X0F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF0,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XF1,0XC1,
+0X03,0X0F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF8,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XE0,0X0F,0XFF,0XFF,0XFF,0XFF,0XF1,0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XFE,0XFF,
+0XFF,0XFE,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,0XF1,0XF0,0X00,0X3F,0XFF,0XFF,0XFF,
+0X7E,0XFF,0XFF,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XF0,0X1F,0XFF,
+0XFF,0XFF,0XF1,0XF8,0X00,0X7F,0XFF,0XFF,0XFC,0X3E,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0X00,0X1F,0XFF,0XFF,0XFF,0XF1,0XFE,0X00,0XFF,0XFF,
+0XFF,0XF0,0X3E,0XFF,0XFF,0XC6,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XF8,0X07,
+0X8F,0XFF,0XFF,0XFF,0XF1,0XFE,0X87,0XFF,0XFF,0XFF,0XE0,0XCE,0XFF,0XFF,0XCE,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE0,0X1F,0X8F,0XC0,0X07,0XFF,0XF1,0XFE,0XFF,
+0XFF,0XFF,0XFF,0X81,0X86,0XFF,0XFF,0XCE,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XE0,0XFF,0XCF,0X80,0X07,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0XFF,0XFF,
+0XC6,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE3,0XFF,0XEF,0X00,0X07,0XFF,0XF1,
+0XFE,0XFF,0XFF,0XFF,0XFE,0X0C,0X02,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFE,0X18,0X02,
+0XFF,0XFF,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,
+0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFE,0X20,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFE,0X01,0XFF,0X1F,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFE,
+0XC0,0X02,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XF0,0X01,0XFF,
+0X9F,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X00,0X02,0XFF,0XFF,0XF8,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XE0,0X01,0XE0,0X80,0X0F,0XFF,0XF1,0XFE,0XFF,0XFF,
+0XFF,0XFF,0X00,0X02,0XFF,0XFF,0XF0,0X00,0X3F,0XFF,0XE7,0XFF,0XFF,0X8F,0XFF,0XE0,
+0X03,0XE0,0X00,0X07,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X80,0X06,0XFF,0XFF,0XE0,
+0XCC,0X1F,0XFF,0XE0,0XFF,0XFF,0X8F,0XFF,0XE2,0X71,0XE0,0X00,0X07,0XFF,0XF1,0XFE,
+0XFF,0XFF,0XFF,0XFF,0XC0,0X0E,0XFF,0XFF,0XE3,0XC7,0X1F,0XFF,0XE0,0X3F,0XFF,0X8F,
+0XFF,0XE7,0X39,0XE0,0X00,0X0F,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XC0,0X0E,0XFF,
+0XFF,0XE7,0XE7,0X8F,0XFF,0XF0,0X07,0XFF,0X8F,0XFF,0XE7,0X38,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0X00,0X1E,0XFF,0XFF,0XE7,0XE7,0X8F,0XFF,0XFE,0X01,
+0XFF,0X8F,0XFF,0XE3,0X10,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFC,0X00,
+0X3E,0XFF,0XFF,0XE3,0XC7,0X8F,0XFF,0XFF,0XC0,0X7F,0X8F,0XFF,0XE3,0X01,0XFF,0X1F,
+0XC7,0XFF,0XF1,0XFE,0XFF,0X83,0XFF,0XF0,0X00,0X7E,0XFF,0XFF,0XE0,0X07,0X1F,0XFF,
+0XFF,0XF8,0X3F,0X8F,0XFF,0XF3,0X81,0XFF,0X1F,0XC7,0XFF,0XF1,0XFE,0XFC,0X01,0XFF,
+0XE0,0X00,0XFE,0XFF,0XFF,0XF0,0X0F,0X1F,0XFF,0XFF,0XC0,0X1F,0X8F,0XFF,0XFF,0XC7,
+0XFF,0X1F,0XC7,0XFF,0XF1,0XFE,0XF0,0X07,0XFF,0X80,0X01,0XFE,0XFF,0XFF,0XF8,0X1F,
+0XBF,0XFF,0XFE,0X00,0X0F,0X8F,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XFF,0XF1,0XFE,0XC0,
+0X18,0XFE,0X00,0X03,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X87,0X8F,0XFF,
+0XFF,0XFF,0XF8,0X00,0X0F,0XFF,0XF1,0XFE,0XC0,0XE0,0XF8,0X00,0X0F,0XFE,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XC7,0X8F,0XFF,0XFF,0XFF,0XF8,0X00,0X0F,0XFF,0XF1,
+0XFE,0XC7,0X00,0XE0,0X00,0X1F,0XFE,0XFF,0XFF,0XFF,0XFF,0X9F,0XFF,0XE0,0XFF,0XC7,
+0X8F,0XFE,0X00,0X01,0XFF,0X1E,0XFF,0XFF,0XF1,0XFE,0XDC,0X00,0XC0,0X00,0X3F,0XFE,
+0XFF,0XFF,0XF8,0X3F,0X1F,0XFF,0XE3,0XFF,0XC7,0X8F,0XFE,0X00,0X01,0XFF,0X1F,0XFF,
+0XFF,0XF1,0XFE,0XE0,0X00,0X00,0X00,0XFF,0XFE,0XFF,0XFF,0XF0,0X0F,0X1F,0XFF,0XFF,
+0XFF,0XC7,0X8F,0XFE,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0XC0,0X00,0X00,0X03,
+0XFF,0XFE,0XFF,0XFF,0XE0,0X03,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFE,0X03,0XFF,0XF8,
+0X7F,0XFF,0XFF,0XF1,0XFE,0XE0,0X00,0X00,0X07,0XFF,0XFE,0XFF,0XFF,0XE3,0XC1,0X9F,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XC0,0X7F,0XF8,0X1F,0XFF,0XFF,0XF1,0XFE,0XE0,0X00,
+0X00,0X1F,0XFF,0XFE,0XFF,0XFF,0XE7,0XE0,0X9F,0XFF,0XF8,0X00,0XFF,0X8F,0XFF,0XF8,
+0X1F,0XF8,0X07,0XFF,0XFF,0XF1,0XFE,0XF0,0X00,0X00,0XFF,0XFF,0XFE,0XFF,0XFF,0XE7,
+0XF8,0X1F,0XFF,0XF0,0X00,0XFF,0X8F,0XFF,0XFE,0X03,0XF8,0X01,0XFF,0XFF,0XF1,0XFE,
+0XF8,0X00,0X03,0XFF,0XFF,0XFE,0XFF,0XFF,0XE7,0XFC,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,
+0XFF,0XFF,0X83,0XF8,0XC0,0X7F,0XFF,0XF1,0XFE,0XFC,0X00,0X3F,0XFF,0XFF,0XFE,0XFF,
+0XFF,0XE3,0XFE,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFC,0X07,0XF8,0XF0,0X1F,0XFF,
+0XF1,0XFE,0XFF,0XB7,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XF1,0XFF,0X1F,0XFF,0XE3,0X31,
+0XFF,0X8F,0XFF,0XE0,0X3F,0XF8,0XFC,0X07,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0XFF,0XFF,0XF3,0XFF,0X9F,0XFF,0XE3,0X38,0XFF,0X8F,0XFF,0X00,0XFF,0XF8,0XFF,
+0X03,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE3,0X38,0XFF,0X8F,0XFE,0X07,0XFF,0XF8,0XFF,0XC3,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0X18,0XFF,0X8F,0XFE,0X00,0X01,
+0XF8,0XFF,0XF3,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XDF,
+0XFF,0XFF,0XE3,0X00,0XFF,0X8F,0XFE,0X00,0X01,0XF8,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XE3,0X80,0XFF,0X8F,0XFE,
+0X00,0X01,0XF8,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,
+0XFF,0X87,0XFF,0XFF,0XF1,0X81,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XC3,0XFF,0XFF,0XFF,0XC3,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,
+0XFF,0XFF,0XFF,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFE,0X7F,0XFF,0XFF,0XFF,0XFF,0XFC,0XFF,0XFF,0XFF,0XF3,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0X00,0X00,0X00,0X00,
+0X00,0X01,0XFF,0XFF,0XFF,0XE3,0XFF,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0XFF,
+0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFF,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X87,0XFF,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XE3,0XF1,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X1F,0XFF,0XFF,0XE3,0XF9,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XE3,0XF8,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XE3,0XF8,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,
+0XE1,0XF0,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XF0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,
+0XFF,0XFF,0XF0,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XF8,0X01,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X87,0XFF,0XFF,0XFE,0X07,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,
+0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XFF,0XFF,0XF0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X70,0X3F,
+0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,
+0XFF,0XFA,0XFF,0XFF,0XFF,0XFF,0XF0,0X20,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XFF,0XFF,0XFF,0XE0,
+0X02,0X1F,0XFF,0XE3,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XE3,0X87,0X1F,0XFF,0XE3,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFE,0X00,0X07,0XFF,0XFF,
+0XFF,0XE7,0X8F,0X8F,0XFF,0XE3,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFE,0X00,0X02,0X7F,0XFF,0XFF,0XE7,0XCF,0X8F,0XFF,0XF0,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X7F,0XFF,0XFF,0XE7,0XCF,0X9F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,0XFF,0XE3,0XFF,0X1F,0XFF,
+0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF8,
+0X30,0X00,0XFF,0XFF,0XFF,0XF3,0XFE,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF8,0X30,0X00,0XFF,0XFF,0XFF,0XF7,0XFF,
+0X3F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0X90,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0X10,0X00,0X00,0XFF,
+0XFF,0XFF,0XF8,0X1F,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XFC,0X10,0X00,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0X1F,0XFF,0XE0,
+0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF8,0X18,0X30,
+0X00,0XFF,0XFF,0XFF,0XE0,0X03,0X1F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF8,0X08,0X38,0X00,0XFF,0XFF,0XFF,0XE3,0XC1,0X9F,
+0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF0,
+0X08,0X30,0X01,0XFF,0XFF,0XFF,0XE7,0XF0,0X9F,0XFF,0XFF,0XE1,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0X08,0X00,0X01,0XFF,0XFF,0XFF,0XE7,
+0XF8,0X1F,0XFF,0XFF,0XF9,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XE0,0XE4,0X00,0X01,0XFF,0XFF,0XFF,0XE7,0XFC,0X1F,0XFF,0XFF,0XF8,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0XE2,0X00,0X03,0XFF,0XFF,
+0XFF,0XE3,0XFE,0X1F,0XFF,0XFF,0XF8,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XC0,0XE2,0X00,0X07,0XFF,0XFF,0XFF,0XF1,0XFF,0X1F,0XFF,0XE0,0X00,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X41,0X00,0X0F,
+0XFF,0XFF,0XFF,0XF3,0XFF,0X9F,0XFF,0XE0,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,0XC0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE0,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,
+0X30,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,0X07,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XC0,0X40,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XBF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XC0,0XE0,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0X87,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XE0,0XE0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0X1E,
+0X03,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0XE0,0X00,
+0X7F,0XFF,0XFF,0XFE,0XFF,0XBF,0XCF,0XFE,0X3E,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X3F,0XFF,0X8F,
+0XFE,0X3C,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF0,
+0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X3C,0X0F,0X9F,0XFE,0X3C,0X30,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XF8,0X00,0X01,0X1F,0XFF,0XFF,0XFF,0XF0,
+0X03,0XFF,0XFE,0X3C,0X78,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XF8,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFE,0X38,0X78,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFC,0X00,0X07,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFE,0X18,0X78,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X7F,0XFE,0X00,0XF8,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0X80,0X3F,0XFF,
+0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0X00,0XF8,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,
+0X01,0XF0,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XC3,0XF1,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X00,0X00,
+0X31,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X00,0X00,0X31,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X7F,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X78,0X03,0XDF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,
+0X1F,0X8F,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X7F,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0X00,0X00,
+0X00,0X01,0X7F,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFD,0X80,0X00,0X00,0X03,0X1F,0XFF,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF8,
+0X80,0X00,0X00,0X02,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X40,0X00,0X00,0X04,0X0F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X60,0X00,0X00,0X0C,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X20,0X00,0X00,0X08,0X07,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X30,0X00,0X00,0X10,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X10,0X00,0X00,
+0X30,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X18,0X00,0X00,0X20,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X08,
+0X00,0X00,0X60,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X04,0X00,0X00,0X40,0X07,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X06,0X00,0X00,0X80,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X02,0X00,0X01,0X80,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X03,0X00,0X01,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X01,0X00,0X02,0X00,
+0X07,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF0,0X01,0X80,0X06,0X00,0X07,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X80,
+0X04,0X00,0X07,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X40,0X08,0X00,0X07,0XFF,0XFF,0XFF,0XE0,
+0X00,0XFE,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,
+0X00,0X40,0X08,0X00,0X07,0XFF,0XFF,0XFF,0XC0,0X03,0XFF,0X80,0X00,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X20,0X10,0X00,0X07,0XFF,0XFF,
+0XFF,0X80,0X0F,0XFF,0XF8,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X00,0X30,0X30,0X00,0X07,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X00,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X10,0X20,0X00,0X07,
+0XFF,0XFF,0XFE,0X00,0XFF,0XE7,0XFE,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X00,0X18,0X40,0X00,0X07,0XFF,0XFF,0XFC,0X01,0XFF,0X81,0XFF,
+0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X08,0XC0,
+0X00,0X07,0XFF,0XFF,0XFC,0X01,0XFF,0X00,0X7F,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X04,0X80,0X00,0X07,0XFF,0XFF,0XF8,0X01,0XFF,
+0XC0,0X7F,0X80,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,
+0X05,0X00,0X00,0X07,0XFF,0XFF,0XF8,0X00,0XFF,0XF8,0X00,0X00,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X03,0X00,0X00,0X07,0XFF,0XFF,0XF0,
+0X00,0X1F,0XFE,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X00,0X03,0X00,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X07,0XFF,0X80,0X00,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X01,0X00,0X00,0X07,0XFF,
+0XFF,0XF1,0XFF,0X81,0XFF,0X80,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X00,0X01,0X80,0X00,0X07,0XFF,0XFF,0XE0,0XFF,0X00,0X7F,0X80,0X00,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X47,0X80,0X80,0X00,
+0X07,0XFF,0XFF,0XE0,0X7F,0XC1,0X3F,0X80,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF0,0X4F,0XC0,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X3F,0XF9,0X4F,
+0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X4C,0X40,
+0X40,0X00,0X07,0XFF,0XFF,0XE0,0X1F,0XFE,0X78,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X64,0XC0,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X0F,
+0XFF,0X80,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,
+0X7F,0XC0,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X05,0XFF,0XF0,0X00,0X00,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X1F,0X00,0XC0,0X00,0X07,0XFF,0XFF,
+0XE0,0X00,0X3F,0XFC,0X00,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X00,0X00,0X80,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X0F,0XFF,0X00,0X00,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X01,0X00,0X00,0X07,
+0XFF,0XFF,0XE0,0X00,0X03,0XFF,0X80,0X00,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X00,0X01,0X00,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0X80,
+0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X02,0X00,
+0X00,0X07,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0X00,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X06,0X00,0X00,0X07,0XFF,0XFF,0XE0,0X00,0XFF,
+0XFC,0X00,0X01,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,
+0X05,0X00,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFF,0XE0,0X00,0X01,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X0D,0X80,0X00,0X07,0XFF,0XFF,0XE0,
+0X01,0XFF,0X00,0X00,0X03,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X00,0X08,0X80,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFF,0X80,0X00,0X03,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X10,0X40,0X00,0X07,0XFF,
+0XFF,0XE0,0X00,0XFF,0XF0,0X00,0X03,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X00,0X10,0X40,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X1F,0XFE,0X00,0X07,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X20,0X20,0X00,
+0X07,0XFF,0XFF,0XE0,0X00,0X03,0XFF,0X80,0X07,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X60,0X30,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X07,0XFF,
+0X80,0X0F,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0X40,
+0X10,0X00,0X07,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0X80,0X1F,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X00,0XC0,0X08,0X00,0X07,0XFF,0XFF,0XE0,0X01,
+0XFF,0XFF,0X00,0X1F,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,
+0X00,0X80,0X0C,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFF,0XF8,0X00,0X3F,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X01,0X80,0X04,0X00,0X07,0XFF,0XFF,
+0XE0,0X01,0XFF,0XE0,0X00,0X7F,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XF0,0X01,0X00,0X02,0X00,0X07,0XFF,0XFF,0XE0,0X01,0XFE,0X00,0X00,0XFF,0XFF,
+0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X02,0X00,0X03,0X00,0X07,
+0XFF,0XFF,0XE0,0X01,0XF0,0X00,0X03,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF1,0XFF,0XF0,0X06,0X00,0X01,0X00,0X07,0XFF,0XFF,0XE0,0X01,0X80,0X00,0X07,
+0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X04,0X00,0X01,
+0X80,0X07,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X1F,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X0C,0X00,0X00,0X80,0X07,0XFF,0XFF,0XE0,0X00,0X00,
+0X00,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X08,
+0X00,0X00,0X40,0X07,0XFF,0XFF,0XE0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X18,0X00,0X00,0X60,0X07,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,
+0XF0,0X10,0X00,0X00,0X20,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X20,0X00,0X00,0X10,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF1,0XFF,0XF0,0X60,0X00,0X00,0X18,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF0,0X40,0X00,0X00,0X08,
+0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF1,0XFF,0XF8,0XC0,0X00,0X00,0X04,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XF8,0X80,0X00,
+0X00,0X04,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0X00,0X00,0X00,0X02,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+};
diff --git a/voting_device/src/imagedata.h b/voting_device/src/imagedata.h
new file mode 100644
index 0000000..2234ead
--- /dev/null
+++ b/voting_device/src/imagedata.h
@@ -0,0 +1,30 @@
+/**
+ * @filename : imagedata.h
+ * @brief : head file for imagedata.cpp
+ *
+ * Copyright (C) Waveshare September 5 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation 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
+ * furished 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 OR 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.
+ */
+
+extern const unsigned char IMAGE_DATA[];
+
+/* FILE END */
+
+
diff --git a/voting_device/voting_device.ino b/voting_device/voting_device.ino
index fe152da..01fea60 100644
--- a/voting_device/voting_device.ino
+++ b/voting_device/voting_device.ino
@@ -1,101 +1,175 @@
#include "config.h"
-int message_count = 0;
-
-// MQTT-Client erstellen
-WiFiClient wifiClient;
-PubSubClient mqttClient(wifiClient);
-
-// MQTT-Nachrichten verarbeiten
-void callback(char* topic, byte* payload, unsigned int length) {
- // Nachricht ausgeben
- Serial.print("Nachricht empfangen: ");
- Serial.print(topic);
- Serial.print(" : ");
- for (int i = 0; i < length; i++) {
- Serial.print((char)payload[i]);
+//#################################################################################################
+//### REMEMBER TO COMMENT OUT: Serial.begin(115200); FROM SETUP FUNCTION, AS IT AFFECTS RX PIN. ###
+//#################################################################################################
+
+// WLAN-Settings
+ const char* ssid = "ISDProjectLAN";
+ const char* password = "557949122";
+
+//Mqtt topics to publish
+ const String pubInit = "/registration/Server/"+ String(WiFi.macAddress());
+ const char* pubPubVote = "/vote/";
+
+// MQTT topics to subscribe
+ const String subInit = "/registration/esp/"+ String(WiFi.macAddress()); // /registration/esp/
+ const char* subVoteSetup = "/setupVote/Setup";
+ const char* subResync = "/setupVote/Resync";
+
+//battery level
+ int batteryPercentage = checkBatteryLevel();
+
+//program variables
+ int state = 0;
+ char response[STRINGSIZE] = "";
+ char votingID[STRINGSIZE] = "";
+ char pubTopicVoteResponse[STRINGSIZE] = "";
+ char voteTitle[STRINGSIZE] = "";
+ char responseBuffer[STRINGSIZE+50];
+
+void connectToWiFi() {
+ Serial.print("Connecting to WiFi");
+ while (WiFi.status() != WL_CONNECTED) {
+ delay(500);
+ Serial.print(".");
}
Serial.println();
- // Nachricht weiterleiten
- //mqttClient.publish("e", payload, length);
+ Serial.print("Connected, IP address: ");
+ Serial.println(WiFi.localIP());
}
void setup() {
+ //Serial.begin(115200);
+
+//button initialization
pinMode(BUTTON_PIN_1, INPUT_PULLUP); // Taster 1 als Eingang mit Pull-up-Widerstand
pinMode(BUTTON_PIN_2, INPUT_PULLUP); // Taster 2 als Eingang mit Pull-up-Widerstand
- pinMode(BUTTON_PIN_3, INPUT_PULLUP); // Taster 3 als Eingang mit Pull-up-Widerstand
-
-#ifdef STATUS_LEDS
- pinMode(LED_PIN_1, OUTPUT); // LED 1 als Ausgang
- pinMode(LED_PIN_2, OUTPUT); // LED 2 als Ausgang
- pinMode(LED_PIN_3, OUTPUT); // LED 3 als Ausgang
-#endif
-
-#ifdef DEBUG
- Serial.begin(115200);
-#endif
- delay(10);
-
-// Verbindung zum WLAN herstellen
-#ifdef DEBUG
- Serial.println("Verbindung zum WLAN herstellen");
-#endif
- WiFi.begin(ssid, password);
+ pinMode(PWR_PIN, OUTPUT);
+ pinMode(RX_PIN, INPUT_PULLUP);
+ digitalWrite(PWR_PIN, HIGH); //power on device
+
+//Display initialization
+ initDisplay();
+ startupScreen(batteryPercentage);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
-#ifdef DEBUG
- Serial.print(".");
-#endif
- }
-#ifdef DEBUG
- Serial.println("Verbindung zum WLAN hergestellt");
-#endif
+//wifi initialization
+ WiFi.begin(ssid, password);
+ connectToWiFi();
- // Verbindung zum MQTT-Server herstellen
+//mqtt initialization
mqttClient.setServer(mqtt_server, mqtt_port);
mqttClient.setCallback(callback);
- mqttClient.subscribe("#");
-
- while (!mqttClient.connected()) {
-#ifdef DEBUG
- Serial.println("Verbindung zum MQTT-Server herstellen");
-#endif
- mqttClient.connect("ESP8266", mqtt_user, mqtt_password);
- delay(500);
- }
-#ifdef DEBUG
- Serial.println("Verbindung zum MQTT-Server hergestellt");
-#endif
+ connectToMQTT();
+ String macAddress = "{\"Mac\" : \"" + String(WiFi.macAddress()) + "\"}";
+ Serial.println(macAddress);
+ mqttClient.subscribe(subInit.c_str(), MQTTsubQos); //recieve voting ID
+ mqttClient.publish(pubInit.c_str(), macAddress.c_str()); //send mac address
+ Serial.println("#" + String(subInit.c_str()) + "#") ;
+ //mqttClient.subscribe(subResync, MQTTsubQos);
+ mqttClient.subscribe(subVoteSetup, MQTTsubQos); //recieve question
}
-
+
void loop() {
- if (digitalRead(BUTTON_PIN_1) == LOW) {
- digitalWrite(LED_PIN_1, HIGH); // Wenn Taster 1 gedrückt wird, schalte LED 1 ein
- if (message_count == 0) {
- mqttClient.publish("send", "Taster 1!");
- message_count++;
- }
- } else {
- message_count = 0;
- digitalWrite(LED_PIN_1, LOW); // Andernfalls schalte LED 1 aus
- }
+ powerOff();
+ switch (state) {
+ case BOOT:
+ //display start up screen
+ if (MQTT_flag) {
+ MQTT_flag = 0;
+ strcpy(votingID, MQTTVotingId);
+ Serial.println(votingID);
+ state = QUESTION;
+ }
+ break;
- if (digitalRead(BUTTON_PIN_2) == LOW) {
- digitalWrite(LED_PIN_2, HIGH); // Wenn Taster 2 gedrückt wird, schalte LED 2 ein
- } else {
- digitalWrite(LED_PIN_2, LOW); // Andernfalls schalte LED 2 aus
- }
+ case QUESTION:
+ if (MQTT_flag) {
+ MQTT_flag = 0;
+ strcpy(voteTitle, MQTTVotingTitle);
+ Serial.println(voteTitle);
+ paintVoteScreen(voteTitle);
+ strcat(pubTopicVoteResponse, pubPubVote);
+ strcat(pubTopicVoteResponse, votingID);
+ Serial.println(pubTopicVoteResponse);
+ state = VOTE;
+ }
+ break;
- if (digitalRead(BUTTON_PIN_3) == LOW) {
- digitalWrite(LED_PIN_3, HIGH); // Wenn Taster 3 gedrückt wird, schalte LED 3 ein
- } else {
- digitalWrite(LED_PIN_3, LOW); // Andernfalls schalte LED 3 aus
- }
- // MQTT-Nachrichten abrufen
- if (!mqttClient.loop()) {
-#ifdef DEBUG
- Serial.println("Verbindung zum MQTT-Server abgebrochen");
-#endif
+ case VOTE:
+ if (!digitalRead(BUTTON_PIN_1)) {
+ delay(30);
+ if (!digitalRead(BUTTON_PIN_1)){
+ Serial.println("I am in Button1: Vote");
+ snprintf(responseBuffer, sizeof(responseBuffer), "{\"vote\":\"Yes\", \"VoteTitle\":\"%s\"}", MQTTVotingTitle);
+ strcpy(response, responseBuffer);
+ paintConfirmScreen("YES");
+ Serial.println("YES");
+ state = CONFIRM;
+ while (!digitalRead(BUTTON_PIN_1)){
+ delay(100);
+ }
+ }
+ }
+ else if (!digitalRead(BUTTON_PIN_2)) {
+ delay(30);
+ if (!digitalRead(BUTTON_PIN_2)){
+ snprintf(responseBuffer, sizeof(responseBuffer), "{\"vote\":\"Abstain\", \"VoteTitle\":\"%s\"}", MQTTVotingTitle);
+ strcpy(response, responseBuffer);
+ paintConfirmScreen("ABSTAIN");
+ Serial.println("ABSTAIN");
+ state = CONFIRM;
+ while (!digitalRead(BUTTON_PIN_2)){
+ delay(100);
+ }
+ }
+ }
+ else if (!digitalRead(BUTTON_PIN_3)) {
+ delay(30);
+ if (!digitalRead(BUTTON_PIN_3)){
+ snprintf(responseBuffer, sizeof(responseBuffer), "{\"vote\":\"No\", \"VoteTitle\":\"%s\"}", MQTTVotingTitle);
+ strcpy(response, responseBuffer);
+ paintConfirmScreen("NO");
+ Serial.println("NO");
+ state = CONFIRM;
+ while (!digitalRead(BUTTON_PIN_3)){
+ delay(100);
+ }
+ }
+ }
+ break;
+
+ case CONFIRM:
+ // ButtonYes.getState()
+ if (!digitalRead(BUTTON_PIN_1)) {
+ delay(30);
+ if (!digitalRead(BUTTON_PIN_1)){
+ Serial.println("I am in Button1: Confirm");
+ mqttClient.publish(pubTopicVoteResponse, response);
+ state = CLOSE_VOTE;
+ while (!digitalRead(BUTTON_PIN_1)){
+ delay(100);
+ }
+ }
+ }
+ else if (!digitalRead(BUTTON_PIN_3)) {
+ delay(30);
+ if (!digitalRead(BUTTON_PIN_3)){
+ paintVoteScreen(voteTitle);
+ state = VOTE;
+ while (!digitalRead(BUTTON_PIN_3)){
+ delay(100);
+ }
+ }
+ }
+ break;
+
+ case CLOSE_VOTE:
+ delay(2000);
+ paintClosingScreen();
+ state = QUESTION;
+ break;
}
+
+ mqttClient.loop();
}