浏览代码

Merge pull request #248 from SSYYL/master

Added 4-color e-Paper support
Wilson 3 年之前
父节点
当前提交
979184d047
共有 100 个文件被更改,包括 21578 次插入935 次删除
  1. 266 0
      Arduino/epd1in64g/epd1in64g.cpp
  2. 75 0
      Arduino/epd1in64g/epd1in64g.h
  3. 60 0
      Arduino/epd1in64g/epd1in64g.ino
  4. 64 0
      Arduino/epd1in64g/epdif.cpp
  5. 51 0
      Arduino/epd1in64g/epdif.h
  6. 473 0
      Arduino/epd1in64g/imagedata.cpp
  7. 30 0
      Arduino/epd1in64g/imagedata.h
  8. 259 0
      Arduino/epd3in0g/epd3in0g.cpp
  9. 74 0
      Arduino/epd3in0g/epd3in0g.h
  10. 62 0
      Arduino/epd3in0g/epd3in0g.ino
  11. 64 0
      Arduino/epd3in0g/epdif.cpp
  12. 51 0
      Arduino/epd3in0g/epdif.h
  13. 1080 0
      Arduino/epd3in0g/imagedata.cpp
  14. 30 0
      Arduino/epd3in0g/imagedata.h
  15. 593 0
      Arduino/epd3in52/EPD_3in52.cpp
  16. 89 0
      Arduino/epd3in52/EPD_3in52.h
  17. 84 0
      Arduino/epd3in52/epd3in52.ino
  18. 65 0
      Arduino/epd3in52/epdif.cpp
  19. 51 0
      Arduino/epd3in52/epdif.h
  20. 342 0
      Arduino/epd3in52/epdpaint.cpp
  21. 75 0
      Arduino/epd3in52/epdpaint.h
  22. 1385 0
      Arduino/epd3in52/font12.cpp
  23. 1765 0
      Arduino/epd3in52/font16.cpp
  24. 2143 0
      Arduino/epd3in52/font20.cpp
  25. 2521 0
      Arduino/epd3in52/font24.cpp
  26. 1005 0
      Arduino/epd3in52/font8.cpp
  27. 65 0
      Arduino/epd3in52/fonts.h
  28. 707 0
      Arduino/epd3in52/imagedata.cpp
  29. 28 0
      Arduino/epd3in52/imagedata.h
  30. 4 0
      Arduino/epd3in7/.vscode/arduino.json
  31. 538 0
      Arduino/epd3in7/.vscode/c_cpp_properties.json
  32. 286 0
      Arduino/epd7in3g/epd7in3g.cpp
  33. 75 0
      Arduino/epd7in3g/epd7in3g.h
  34. 60 0
      Arduino/epd7in3g/epd7in3g.ino
  35. 64 0
      Arduino/epd7in3g/epdif.cpp
  36. 51 0
      Arduino/epd7in3g/epdif.h
  37. 471 0
      Arduino/epd7in3g/imagedata.cpp
  38. 30 0
      Arduino/epd7in3g/imagedata.h
  39. 169 0
      RaspberryPi_JetsonNano/c/examples/EPD_1in64g_test.c
  40. 175 0
      RaspberryPi_JetsonNano/c/examples/EPD_3in0g_test.c
  41. 151 0
      RaspberryPi_JetsonNano/c/examples/EPD_3in52_test.c
  42. 178 0
      RaspberryPi_JetsonNano/c/examples/EPD_7in3g_test.c
  43. 9 3
      RaspberryPi_JetsonNano/c/examples/EPD_Test.h
  44. 5 0
      RaspberryPi_JetsonNano/c/examples/main.c
  45. 77 3
      RaspberryPi_JetsonNano/c/lib/GUI/GUI_BMPfile.c
  46. 5 2
      RaspberryPi_JetsonNano/c/lib/GUI/GUI_BMPfile.h
  47. 8 0
      RaspberryPi_JetsonNano/c/lib/GUI/GUI_Paint.h
  48. 238 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in64g.c
  49. 32 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in64g.h
  50. 220 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in0g.c
  51. 32 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in0g.h
  52. 588 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in52.c
  53. 70 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in52.h
  54. 246 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3g.c
  55. 52 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3g.h
  56. 二进制
      RaspberryPi_JetsonNano/c/pic/1.64inch-1.bmp
  57. 二进制
      RaspberryPi_JetsonNano/c/pic/1.64inch-2.bmp
  58. 二进制
      RaspberryPi_JetsonNano/c/pic/3in52-1.bmp
  59. 二进制
      RaspberryPi_JetsonNano/c/pic/3in52-2.bmp
  60. 二进制
      RaspberryPi_JetsonNano/c/pic/3in52-3.bmp
  61. 二进制
      RaspberryPi_JetsonNano/c/pic/3inch-1.bmp
  62. 二进制
      RaspberryPi_JetsonNano/c/pic/3inch-2.bmp
  63. 二进制
      RaspberryPi_JetsonNano/c/pic/3inch-3.bmp
  64. 二进制
      RaspberryPi_JetsonNano/c/pic/7.3inch-1.bmp
  65. 二进制
      RaspberryPi_JetsonNano/c/pic/7.3inch-2.bmp
  66. 二进制
      RaspberryPi_JetsonNano/c/pic/7.3inch-3.bmp
  67. 74 0
      RaspberryPi_JetsonNano/python/examples/epd_1in64g_test.py
  68. 105 0
      RaspberryPi_JetsonNano/python/examples/epd_3in0g_test.py
  69. 119 0
      RaspberryPi_JetsonNano/python/examples/epd_3in52_test.py
  70. 81 0
      RaspberryPi_JetsonNano/python/examples/epd_7in3g_test.py
  71. 242 0
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in64g.py
  72. 236 0
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd3in0g.py
  73. 473 0
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd3in52.py
  74. 263 0
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3g.py
  75. 二进制
      RaspberryPi_JetsonNano/python/pic/1.64inch-1.bmp
  76. 二进制
      RaspberryPi_JetsonNano/python/pic/1.64inch-2.bmp
  77. 二进制
      RaspberryPi_JetsonNano/python/pic/3in52-1.bmp
  78. 二进制
      RaspberryPi_JetsonNano/python/pic/3in52-2.bmp
  79. 二进制
      RaspberryPi_JetsonNano/python/pic/3in52-3.bmp
  80. 二进制
      RaspberryPi_JetsonNano/python/pic/3inch-1.bmp
  81. 二进制
      RaspberryPi_JetsonNano/python/pic/3inch-2.bmp
  82. 二进制
      RaspberryPi_JetsonNano/python/pic/3inch-3.bmp
  83. 二进制
      RaspberryPi_JetsonNano/python/pic/7.3inch-1.bmp
  84. 二进制
      RaspberryPi_JetsonNano/python/pic/7.3inch-2.bmp
  85. 二进制
      RaspberryPi_JetsonNano/python/pic/7.3inch-3.bmp
  86. 77 77
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian
  87. 166 69
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx
  88. 42 1
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx
  89. 154 23
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm
  90. 390 389
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm
  91. 473 362
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map
  92. 5 5
      STM32/STM32-F103ZET6/MDK-ARM/startup_stm32f103xe.lst
  93. 6 1
      STM32/STM32-F103ZET6/Src/main.c
  94. 168 0
      STM32/STM32-F103ZET6/User/Examples/EPD_1in64g_test.c
  95. 172 0
      STM32/STM32-F103ZET6/User/Examples/EPD_3in0g_test.c
  96. 135 0
      STM32/STM32-F103ZET6/User/Examples/EPD_3in52_test.c
  97. 118 0
      STM32/STM32-F103ZET6/User/Examples/EPD_7in3g_test.c
  98. 5 0
      STM32/STM32-F103ZET6/User/Examples/EPD_Test.h
  99. 677 0
      STM32/STM32-F103ZET6/User/Examples/ImageData.c
  100. 6 0
      STM32/STM32-F103ZET6/User/Examples/ImageData.h

+ 266 - 0
Arduino/epd1in64g/epd1in64g.cpp

@@ -0,0 +1,266 @@
+/**
+ *  @filename   :   epd1in64g.cpp
+ *  @brief      :   Implements for e-paper library
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <stdlib.h>
+#include "epd1in64g.h"
+
+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;
+};
+
+int Epd::Init() {
+    /* this calls the peripheral hardware interface, see epdif */
+    if (IfInit() != 0) {
+        return -1;
+    }
+    Reset();
+    SendCommand(0x66);
+    SendData(0x49);
+    SendData(0x55);
+    SendData(0x13);
+    SendData(0x5D);
+
+    SendCommand(0x66);
+    SendData(0x49);
+    SendData(0x55);
+
+    SendCommand(0xB0);
+    SendData(0x03);//1 boost 20211113
+
+
+    SendCommand(0x00);
+    SendData(0x4F);
+    SendData(0x6B);
+
+    SendCommand(0x03);
+    SendData(0x00);
+
+    SendCommand(0xF0);
+    SendData(0xF6);
+    SendData(0x0D);
+    SendData(0x00);
+    SendData(0x00);
+    SendData(0x00);
+
+    //20220303
+    SendCommand(0x06);
+    SendData(0xCF);
+    SendData(0xDF);
+    SendData(0x0F);
+
+    SendCommand(0x41);
+    SendData(0x00);
+
+    SendCommand(0x50);
+    SendData(0x30);
+
+    SendCommand(0x60);
+    SendData(0x0C); 
+    SendData(0x05);
+
+    SendCommand(0x61);
+    SendData(0xA8);
+    SendData(0x00); 
+    SendData(0xA8); 
+
+    SendCommand(0x84);
+    SendData(0x01);
+    return 0;
+}
+
+/**
+ *  @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 LOW
+ */
+void Epd::ReadBusyH(void) {
+    Serial.print("e-Paper busy H\r\n ");
+    while(DigitalRead(busy_pin) == LOW) {      //LOW: busy, HIGH: idle
+        DelayMs(5);
+    } 
+    Serial.print("e-Paper busy release H\r\n ");    
+}
+
+void Epd::ReadBusyL(void) {
+    Serial.print("e-Paper busy L\r\n ");
+    while(DigitalRead(busy_pin) == HIGH) {      //LOW: idle, HIGH: busy
+        DelayMs(5);
+    }      
+    Serial.print("e-Paper busy release L\r\n ");
+}
+
+/**
+ *  @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(2);
+    DigitalWrite(reset_pin, HIGH);
+    DelayMs(20);     
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+void Epd::TurnOnDisplay(void)
+{
+    SendCommand(0x12); // DISPLAY_REFRESH
+    SendData(0x01);
+    ReadBusyH();
+
+    SendCommand(0x02); // POWER_OFF
+    SendData(0X00);
+    ReadBusyH();
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void Epd::Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            for(UBYTE k = 0; k < 4; k++) {
+                SendData(color);
+            }
+        }
+    }
+
+    SendCommand(0x68);
+    SendData(0x00);
+
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void Epd::Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            SendData(pgm_read_byte(&Image[i + j * Width]));
+        }
+    }
+    TurnOnDisplay();
+}
+
+void Epd::Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD i = 0; i < Height; i++) {
+        for (UWORD j = 0; j < Width; j++) {
+            if((j >= xstart/4) && (j < (image_width + xstart)/4) && (i >= ystart) && (i <= (ystart + image_heigh)) )
+            {
+                SendData(Image[(i-ystart) * image_width/4 + j - xstart/4]);
+                // Serial.print(Image[(i-ystart) * image_width/8 + j - xstart], HEX);
+                // Serial.print(" ");
+            }
+            else
+            {
+                SendData(0x55);
+            }
+        }
+    }
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void Epd::Sleep(void)
+{
+    SendCommand(0x02); // POWER_OFF
+    SendData(0X00);
+    SendCommand(0x07); // DEEP_SLEEP
+    SendData(0XA5);
+}
+
+/* END OF FILE */
+
+

+ 75 - 0
Arduino/epd1in64g/epd1in64g.h

@@ -0,0 +1,75 @@
+/**
+ *  @filename   :   epd1in64g.h
+ *  @brief      :   Header file for e-paper display library epd1in64g.cpp
+ *  @author     :   Waveshare
+ *  
+ *  Copyright (C) Waveshare    2022/7/22
+ *
+ * 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 EPD1IN64G_H
+#define EPD1IN64G_H
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH       168
+#define EPD_HEIGHT      168
+
+//colour
+#define  black   0x00 
+#define  white   0x55
+#define  yellow  0xAA
+#define  red     0xFF
+
+#define UWORD   unsigned int
+#define UBYTE   unsigned char
+#define UDOUBLE unsigned long
+
+class Epd : EpdIf {
+public:
+    unsigned long WIDTH;
+    unsigned long HEIGHT;
+
+    Epd();
+    ~Epd();
+    int  Init();
+    void SendCommand(unsigned char command);
+    void SendData(unsigned char data);
+    void Reset(void);
+    void ReadBusyH(void);
+    void ReadBusyL(void);
+    void TurnOnDisplay(void);
+    void Clear(UBYTE color);
+    void Display(UBYTE *Image);
+    void Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh);
+    void Sleep(void);
+
+
+private:
+    unsigned int reset_pin;
+    unsigned int dc_pin;
+    unsigned int cs_pin;
+    unsigned int busy_pin;
+};
+
+#endif /* EPD1IN54_H */
+
+/* END OF FILE */

+ 60 - 0
Arduino/epd1in64g/epd1in64g.ino

@@ -0,0 +1,60 @@
+/**
+ *  @filename   :   epd1in64g-demo.ino
+ *  @brief      :   1.64inch e-paper (G) display demo
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <SPI.h>
+#include "epd1in64g.h"
+#include "imagedata.h"
+
+Epd epd;
+
+void setup() {
+  // put your setup code here, to run once:
+  Serial.begin(115200);
+  Serial.print("e-Paper init ");
+  if (epd.Init() != 0) {
+      Serial.print("e-Paper init failed");
+      return;
+  }
+
+  Serial.print("While \r\n");
+  epd.Clear(white); // While
+  delay(2000);
+
+  epd.Display(IMAGE_DATA);
+  delay(2000);
+
+  Serial.print("Clear...\r\n");
+  epd.Clear(white);
+  delay(2000);
+
+  Serial.print("Goto Sleep...\r\n");
+  epd.Sleep();
+  
+}
+
+void loop() {
+
+}

+ 64 - 0
Arduino/epd1in64g/epdif.cpp

@@ -0,0 +1,64 @@
+/**
+ *  @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 <spi.h>
+
+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); 
+
+    SPI.begin();
+    SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+    return 0;
+}

+ 51 - 0
Arduino/epd1in64g/epdif.h

@@ -0,0 +1,51 @@
+/**
+ *  @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 <arduino.h>
+
+// Pin definition
+#define RST_PIN         8
+#define DC_PIN          9
+#define CS_PIN          10
+#define BUSY_PIN        7
+
+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

+ 473 - 0
Arduino/epd1in64g/imagedata.cpp

@@ -0,0 +1,473 @@
+/**
+ *  @filename   :   imagedata.cpp
+ *  @brief      :   data file for epd demo
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <avr/pgmspace.h>
+
+const unsigned char IMAGE_DATA[] PROGMEM = {
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x41,0x55,0x55,0x55,0x50,0x05,0x55,0x54,
+0x01,0x50,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x01,0x55,0x55,0x55,0x00,0x05,0x55,0x50,0x01,0x50,0x05,0x55,0x55,0x55,
+0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x54,
+0x00,0x05,0x55,0x50,0x01,0x50,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x54,0x01,0x55,0x55,0x40,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,
+0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x01,0x55,0x55,0x50,0x05,0x55,0x55,0x00,0x01,0x50,0x05,0x40,0x40,0x05,0x54,0x00,
+0x55,0x01,0x00,0x55,0x55,0x55,0x40,0x05,0x54,0x01,0x54,0x01,0x54,0x00,0x55,0x01,
+0x00,0x55,0x55,0x00,0x15,0x50,0x10,0x15,0x55,0x14,0x01,0x55,0x55,0x50,0x15,0x55,
+0x55,0x00,0x01,0x50,0x05,0x40,0x00,0x01,0x50,0x00,0x05,0x00,0x00,0x15,0x55,0x54,
+0x00,0x01,0x54,0x01,0x54,0x01,0x50,0x00,0x05,0x00,0x00,0x15,0x50,0x00,0x05,0x50,
+0x00,0x15,0x55,0x54,0x01,0x55,0x55,0x40,0x10,0x05,0x54,0x04,0x01,0x50,0x05,0x40,
+0x00,0x01,0x40,0x00,0x05,0x00,0x00,0x05,0x55,0x54,0x00,0x00,0x54,0x01,0x54,0x01,
+0x40,0x00,0x05,0x00,0x00,0x05,0x50,0x00,0x01,0x50,0x00,0x15,0x55,0x54,0x01,0x55,
+0x55,0x40,0x00,0x01,0x54,0x04,0x01,0x50,0x05,0x40,0x14,0x01,0x40,0x14,0x01,0x00,
+0x50,0x05,0x55,0x50,0x05,0x40,0x54,0x01,0x54,0x01,0x40,0x14,0x01,0x00,0x50,0x05,
+0x40,0x15,0x01,0x50,0x00,0x15,0x55,0x54,0x01,0x55,0x55,0x40,0x00,0x00,0x50,0x14,
+0x01,0x50,0x05,0x40,0x55,0x01,0x40,0x54,0x01,0x01,0x54,0x05,0x55,0x50,0x15,0x40,
+0x54,0x00,0x00,0x01,0x55,0x54,0x01,0x01,0x54,0x05,0x40,0x55,0x01,0x50,0x05,0x55,
+0x55,0x54,0x01,0x55,0x55,0x40,0x15,0x00,0x40,0x14,0x01,0x50,0x05,0x40,0x55,0x01,
+0x00,0x55,0x55,0x01,0x54,0x05,0x55,0x50,0x00,0x00,0x54,0x00,0x00,0x05,0x54,0x00,
+0x01,0x01,0x54,0x01,0x40,0x00,0x01,0x50,0x15,0x55,0x55,0x54,0x01,0x55,0x55,0x40,
+0x15,0x00,0x40,0x00,0x00,0x50,0x05,0x40,0x55,0x01,0x00,0x55,0x55,0x01,0x54,0x05,
+0x55,0x50,0x00,0x00,0x14,0x00,0x00,0x55,0x40,0x00,0x01,0x01,0x54,0x01,0x40,0x00,
+0x00,0x50,0x15,0x55,0x55,0x54,0x01,0x55,0x55,0x40,0x15,0x40,0x40,0x00,0x00,0x50,
+0x05,0x40,0x55,0x01,0x00,0x55,0x55,0x01,0x54,0x05,0x55,0x50,0x00,0x00,0x14,0x01,
+0x55,0x55,0x40,0x00,0x01,0x01,0x54,0x01,0x40,0x00,0x00,0x50,0x15,0x55,0x55,0x54,
+0x01,0x55,0x55,0x40,0x15,0x00,0x40,0x00,0x00,0x50,0x05,0x40,0x55,0x01,0x40,0x54,
+0x01,0x01,0x54,0x05,0x55,0x50,0x15,0x55,0x54,0x01,0x55,0x55,0x40,0x54,0x01,0x01,
+0x54,0x05,0x40,0x55,0x55,0x50,0x15,0x55,0x55,0x54,0x01,0x55,0x55,0x50,0x15,0x00,
+0x55,0x54,0x01,0x50,0x05,0x40,0x55,0x01,0x40,0x14,0x01,0x01,0x54,0x05,0x55,0x50,
+0x05,0x51,0x54,0x01,0x55,0x55,0x00,0x54,0x01,0x00,0x50,0x05,0x40,0x15,0x45,0x50,
+0x15,0x55,0x55,0x54,0x01,0x54,0x05,0x50,0x00,0x01,0x55,0x54,0x01,0x50,0x05,0x40,
+0x55,0x01,0x40,0x00,0x05,0x01,0x54,0x05,0x55,0x54,0x00,0x00,0x54,0x01,0x55,0x55,
+0x40,0x00,0x01,0x00,0x00,0x05,0x50,0x00,0x01,0x50,0x15,0x55,0x55,0x54,0x01,0x50,
+0x05,0x54,0x00,0x01,0x55,0x54,0x01,0x50,0x05,0x40,0x55,0x01,0x50,0x00,0x15,0x01,
+0x54,0x05,0x55,0x55,0x00,0x00,0x54,0x01,0x55,0x55,0x40,0x00,0x01,0x00,0x00,0x15,
+0x54,0x00,0x01,0x50,0x15,0x55,0x55,0x54,0x01,0x54,0x05,0x55,0x00,0x15,0x55,0x54,
+0x01,0x50,0x05,0x40,0x55,0x01,0x54,0x00,0x55,0x01,0x54,0x05,0x55,0x55,0x40,0x05,
+0x54,0x01,0x55,0x55,0x50,0x04,0x01,0x01,0x00,0x55,0x55,0x00,0x15,0x50,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xBF,0xFF,0xFF,0xFA,0xAF,0xFF,0xFE,0xAA,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xBF,0xFF,0xFF,0xEA,0xBF,0xFF,0xFE,0xAA,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xEA,0xBF,0xFF,0xFF,0xAA,0xAF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xEA,0xBF,0xFF,0xFE,0xAA,0xBF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFA,0xAA,0xAF,
+0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xEA,0xAA,0xBF,
+0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xEA,0xAA,0xAF,0xFE,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xAA,0xAA,0xBF,0xFE,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,
+0xFF,0xEA,0xAB,0xFF,0xFE,0xAA,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,
+0xFF,0xAA,0xAF,0xFF,0xFE,0xAA,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xAA,0xBF,0xFF,0xFE,0xAB,
+0xFF,0xAA,0xFF,0xEF,0xFF,0xEF,0xFF,0xAA,0xAA,0xBF,0xFE,0xAA,0xFF,0xFF,0xFE,0xAB,
+0xFF,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xAF,0xEA,0xBF,0xFF,0xAA,0xFF,0xFF,0xFE,0xAB,0xFF,0xAA,0xFF,0xAB,0xFF,0xEB,
+0xFF,0xAF,0xEA,0xBF,0xFE,0xAB,0xFF,0xFF,0xFE,0xAB,0xFF,0xAA,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAB,
+0xFF,0xFF,0xFE,0xAB,0xFF,0xAA,0xFE,0xAA,0xFF,0xAA,0xFF,0xFF,0xEA,0xBF,0xFA,0xAF,
+0xFF,0xFF,0xFE,0xAB,0xFF,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAB,0xEA,0xBF,0xFE,0xAA,0xFE,0xAA,
+0xFF,0xAA,0xFE,0xAA,0xFF,0xFF,0xEA,0xBF,0xFA,0xAF,0xAA,0xFF,0xFE,0xAA,0xFE,0xAA,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xEA,0xBF,0xFE,0xAA,0xAA,0xAB,0xFF,0xAA,0xAA,0xAB,0xFF,0xEA,0xBA,0xAB,0xFF,0xFF,
+0xEA,0xBF,0xFA,0xAA,0xAA,0xAF,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAA,0xAA,0xAA,
+0xFF,0xEA,0xAA,0xAF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xEA,0xBF,0xFA,0xAA,0xAA,0xAB,
+0xFF,0xEA,0xAA,0xAF,0xFF,0xEA,0xAA,0xFF,0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xEB,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAA,0xAA,0xAA,0xFF,0xEA,0xAA,0xAF,0xFF,0xFA,
+0xAA,0xBF,0xFF,0xFF,0xEA,0xBF,0xFA,0xAA,0xAA,0xAB,0xFF,0xEA,0xAA,0xAF,0xFF,0xEA,
+0xAA,0xBF,0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,
+0xFE,0xAA,0xFE,0xAA,0xFF,0xAA,0xAA,0xAB,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xEA,0xBF,
+0xFA,0xAB,0xFA,0xAB,0xFF,0xAA,0xAA,0xAB,0xFF,0xEA,0xFE,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAB,0xFF,0xAA,0xBE,0xAA,
+0xFE,0xAA,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xEA,0xBF,0xFA,0xAF,0xFE,0xAA,0xFE,0xAA,
+0xFE,0xAA,0xFF,0xEA,0xFF,0xAF,0xEA,0xEA,0xFE,0xBF,0xEA,0xBF,0xEB,0xFA,0xAB,0xFF,
+0xFF,0xFF,0xEA,0xBF,0xFE,0xAB,0xFF,0xEA,0xBE,0xAB,0xFF,0xAA,0xFF,0xEA,0xAA,0xAF,
+0xFF,0xFF,0xEA,0xBF,0xFA,0xAF,0xFF,0xAA,0xFE,0xAB,0xFF,0xAA,0xFF,0xEA,0xFF,0xAF,
+0xEA,0xFA,0xBA,0xBE,0xAA,0xAF,0xEB,0xEA,0xAA,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAB,
+0xFF,0xEA,0xBE,0xAB,0xFF,0xAA,0xFF,0xEA,0xBA,0xAB,0xFF,0xFF,0xEA,0xBF,0xFA,0xAF,
+0xFF,0xAA,0xFE,0xAB,0xFF,0xAA,0xFF,0xEA,0xFE,0xAF,0xEA,0xFE,0xAA,0xFE,0xBF,0xAF,
+0xEB,0xEB,0xFA,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAB,0xFF,0xEA,0xBE,0xAB,0xFF,0xAA,
+0xFF,0xAA,0xFE,0xAA,0xFF,0xFF,0xEA,0xBF,0xFA,0xAF,0xFF,0xAA,0xFE,0xAB,0xFF,0xAA,
+0xFF,0xEA,0xAA,0xAF,0xEA,0xFE,0xAB,0xFE,0xAA,0xAB,0xEB,0xEA,0xFF,0xFF,0xFF,0xFF,
+0xEA,0xBF,0xFE,0xAB,0xFF,0xAA,0xBE,0xAB,0xFF,0xAA,0xFE,0xAA,0xFF,0xAA,0xFF,0xFF,
+0xEA,0xBF,0xFA,0xAF,0xFE,0xAA,0xFE,0xAB,0xFF,0xAA,0xFF,0xEA,0xAA,0xFF,0xEA,0xFF,
+0xAB,0xFA,0xAA,0xAB,0xEB,0xFA,0xAB,0xFF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAA,0xFE,0xAA,
+0xFE,0xAA,0xFE,0xAA,0xFF,0xAB,0xFF,0xEB,0xFF,0xFF,0xEA,0xBF,0xFA,0xAB,0xFA,0xAB,
+0xFE,0xAA,0xFE,0xAA,0xFF,0xEA,0xFF,0xFF,0xEA,0xFE,0xAB,0xFE,0xBF,0xFF,0xEB,0xFF,
+0xEA,0xFF,0xFF,0xFF,0xEA,0xBF,0xFF,0xAA,0xAA,0xAA,0xFE,0xAA,0xAA,0xAA,0xFF,0xEF,
+0xFF,0xEF,0xFF,0xFF,0xEA,0xBF,0xFE,0xAA,0xAA,0xAB,0xFE,0xAA,0xAA,0xAA,0xFF,0xEA,
+0xFF,0xFF,0xEA,0xFE,0xBA,0xFE,0xAF,0xEF,0xEB,0xEB,0xFA,0xFF,0xFF,0xFF,0xEA,0xBF,
+0xFF,0xEA,0xAA,0xAB,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,
+0xFF,0xAA,0xAA,0xAF,0xFF,0xAA,0xAA,0xAB,0xFF,0xEA,0xFF,0xFF,0xEA,0xFA,0xBA,0xBE,
+0xAA,0xAF,0xEB,0xEA,0xAA,0xFF,0xFF,0xFF,0xEA,0xBF,0xFF,0xFA,0xAA,0xAF,0xFF,0xEA,
+0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFF,0xEA,0xAA,0xBF,0xFF,0xEA,
+0xAA,0xAF,0xFF,0xEA,0xFF,0xFF,0xEA,0xEA,0xFE,0xAF,0xEA,0xBF,0xEB,0xFA,0xAB,0xFF,
+0xFF,0xFF,0xEA,0xBF,0xFF,0xFE,0xAA,0xBF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xEA,0xBF,0xFF,0xFA,0xAA,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x50,0x15,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x40,0x00,0x15,
+0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x01,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x01,0x55,0x55,0x55,
+0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x54,0x05,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,
+0x55,0x40,0x55,0x01,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x15,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,
+0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x40,0x55,0x01,0x55,0x55,
+0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x01,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,
+0x54,0x05,0x55,0x55,0x55,0x40,0x55,0x01,0x54,0x01,0x55,0x54,0x04,0x05,0x55,0x55,
+0x01,0x54,0x05,0x40,0x15,0x50,0x15,0x01,0x55,0x00,0x15,0x40,0x54,0x15,0x01,0x55,
+0x55,0x40,0x40,0x55,0x01,0x55,0x00,0x55,0x54,0x01,0x54,0x05,0x00,0x55,0x55,0x40,
+0x55,0x01,0x50,0x00,0x15,0x50,0x00,0x05,0x55,0x55,0x40,0x50,0x15,0x00,0x01,0x50,
+0x15,0x01,0x54,0x00,0x05,0x50,0x54,0x15,0x05,0x55,0x55,0x40,0x00,0x15,0x01,0x50,
+0x00,0x05,0x50,0x00,0x14,0x05,0x01,0x55,0x55,0x40,0x55,0x01,0x40,0x54,0x15,0x40,
+0x54,0x05,0x55,0x55,0x40,0x50,0x14,0x05,0x41,0x50,0x15,0x01,0x50,0x15,0x01,0x50,
+0x50,0x05,0x05,0x55,0x55,0x40,0x54,0x05,0x01,0x50,0x14,0x05,0x40,0x50,0x14,0x04,
+0x05,0x55,0x55,0x40,0x00,0x05,0x41,0x54,0x05,0x40,0x54,0x05,0x55,0x55,0x40,0x50,
+0x14,0x15,0x40,0x50,0x15,0x01,0x50,0x15,0x01,0x50,0x10,0x04,0x05,0x55,0x55,0x40,
+0x54,0x05,0x01,0x55,0x54,0x05,0x40,0x54,0x14,0x00,0x15,0x55,0x55,0x40,0x00,0x15,
+0x40,0x00,0x05,0x41,0x54,0x05,0x55,0x55,0x50,0x50,0x54,0x00,0x00,0x50,0x15,0x01,
+0x50,0x55,0x41,0x50,0x10,0x04,0x05,0x55,0x55,0x40,0x55,0x05,0x01,0x55,0x00,0x05,
+0x41,0x55,0x54,0x00,0x55,0x55,0x55,0x40,0x50,0x15,0x40,0x00,0x05,0x41,0x54,0x05,
+0x55,0x55,0x50,0x00,0x54,0x00,0x00,0x50,0x15,0x01,0x50,0x55,0x41,0x54,0x10,0x04,
+0x15,0x55,0x55,0x40,0x55,0x05,0x01,0x50,0x00,0x05,0x41,0x55,0x54,0x00,0x15,0x55,
+0x55,0x40,0x54,0x05,0x41,0x55,0x55,0x41,0x54,0x05,0x55,0x55,0x50,0x00,0x54,0x15,
+0x55,0x50,0x15,0x01,0x50,0x55,0x41,0x54,0x01,0x40,0x15,0x55,0x55,0x40,0x55,0x05,
+0x01,0x50,0x14,0x05,0x41,0x55,0x54,0x00,0x05,0x55,0x55,0x40,0x54,0x05,0x40,0x54,
+0x55,0x40,0x54,0x05,0x55,0x55,0x54,0x01,0x54,0x05,0x45,0x50,0x15,0x01,0x50,0x15,
+0x01,0x54,0x01,0x40,0x15,0x55,0x55,0x40,0x54,0x05,0x01,0x50,0x54,0x05,0x40,0x54,
+0x14,0x04,0x05,0x55,0x55,0x40,0x55,0x01,0x40,0x54,0x15,0x40,0x54,0x05,0x01,0x55,
+0x54,0x01,0x54,0x05,0x41,0x50,0x15,0x01,0x50,0x15,0x01,0x54,0x01,0x40,0x15,0x01,
+0x55,0x40,0x54,0x05,0x01,0x50,0x14,0x05,0x40,0x50,0x14,0x05,0x01,0x55,0x55,0x40,
+0x55,0x01,0x50,0x00,0x15,0x50,0x00,0x05,0x01,0x55,0x54,0x01,0x55,0x00,0x01,0x50,
+0x15,0x01,0x54,0x00,0x05,0x55,0x01,0x40,0x55,0x01,0x55,0x40,0x00,0x15,0x01,0x50,
+0x00,0x05,0x50,0x00,0x14,0x05,0x01,0x55,0x55,0x40,0x55,0x00,0x54,0x00,0x55,0x54,
+0x00,0x05,0x01,0x55,0x55,0x05,0x55,0x40,0x05,0x50,0x15,0x01,0x55,0x00,0x15,0x55,
+0x05,0x50,0x55,0x01,0x55,0x40,0x00,0x55,0x01,0x54,0x01,0x01,0x54,0x01,0x54,0x05,
+0x40,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x55,0x05,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x15,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x40,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,
+0x40,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x40,0x50,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,
+0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x40,0x50,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x40,0x55,
+0x55,0x55,0x50,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x01,0x01,
+0x55,0x40,0x40,0x55,0x50,0x15,0x05,0x40,0x40,0x40,0x55,0x40,0x40,0x01,0x55,0x00,
+0x55,0x55,0x55,0x00,0x55,0x50,0x01,0x54,0x05,0x54,0x00,0x55,0x00,0x05,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x15,0x00,0x00,0x55,0x00,0x00,0x55,0x54,0x15,
+0x05,0x41,0x40,0x00,0x15,0x40,0x40,0x01,0x54,0x00,0x05,0x55,0x54,0x00,0x05,0x40,
+0x00,0x54,0x05,0x50,0x00,0x15,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x50,0x15,0x01,0x50,0x14,0x05,0x40,0x55,0x54,0x14,0x01,0x41,0x40,0x54,0x05,0x40,
+0x50,0x15,0x50,0x15,0x05,0x55,0x50,0x14,0x05,0x01,0x50,0x14,0x05,0x40,0x54,0x05,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x01,0x50,0x14,0x05,
+0x40,0x55,0x54,0x04,0x01,0x01,0x40,0x54,0x05,0x40,0x50,0x15,0x50,0x55,0x01,0x55,
+0x50,0x15,0x05,0x01,0x50,0x14,0x05,0x40,0x54,0x05,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x54,0x00,0x15,0x01,0x50,0x14,0x15,0x40,0x55,0x54,0x04,0x01,0x01,
+0x40,0x54,0x05,0x40,0x50,0x15,0x50,0x00,0x01,0x55,0x50,0x55,0x55,0x05,0x54,0x14,
+0x05,0x41,0x55,0x05,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x15,
+0x01,0x50,0x14,0x15,0x40,0x55,0x55,0x04,0x01,0x05,0x40,0x54,0x05,0x40,0x50,0x15,
+0x50,0x00,0x01,0x55,0x50,0x55,0x55,0x05,0x54,0x14,0x05,0x41,0x55,0x05,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x50,0x15,0x01,0x50,0x14,0x15,0x40,0x55,
+0x55,0x00,0x50,0x05,0x40,0x54,0x05,0x40,0x50,0x15,0x50,0x55,0x55,0x55,0x50,0x55,
+0x55,0x05,0x54,0x14,0x05,0x41,0x55,0x05,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x41,0x50,0x15,0x01,0x50,0x14,0x05,0x40,0x55,0x55,0x00,0x50,0x05,0x40,0x54,
+0x05,0x40,0x50,0x15,0x50,0x15,0x15,0x55,0x50,0x15,0x05,0x01,0x50,0x14,0x05,0x40,
+0x54,0x05,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x50,0x15,0x01,0x50,
+0x14,0x05,0x40,0x55,0x55,0x00,0x50,0x05,0x40,0x54,0x05,0x40,0x50,0x15,0x50,0x15,
+0x05,0x55,0x50,0x14,0x05,0x01,0x50,0x14,0x05,0x40,0x54,0x05,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x15,0x01,0x50,0x15,0x00,0x00,0x55,0x55,0x40,
+0x50,0x15,0x40,0x54,0x05,0x40,0x54,0x01,0x54,0x00,0x05,0x55,0x54,0x00,0x05,0x40,
+0x00,0x54,0x05,0x50,0x00,0x15,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x04,0x05,0x01,0x50,0x15,0x40,0x00,0x55,0x55,0x41,0x54,0x15,0x40,0x54,0x05,0x40,
+0x54,0x01,0x55,0x00,0x15,0x55,0x55,0x00,0x55,0x50,0x01,0x54,0x05,0x54,0x00,0x55,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+};
+
+

+ 30 - 0
Arduino/epd1in64g/imagedata.h

@@ -0,0 +1,30 @@
+/**
+ *  @filename   :   imagedata.h
+ *  @brief      :   head file for imagedata.cpp
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 */
+
+

+ 259 - 0
Arduino/epd3in0g/epd3in0g.cpp

@@ -0,0 +1,259 @@
+/**
+ *  @filename   :   epd3in0g.cpp
+ *  @brief      :   Implements for e-paper library
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <stdlib.h>
+#include "epd3in0g.h"
+
+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;
+};
+
+int Epd::Init() {
+    /* this calls the peripheral hardware interface, see epdif */
+    if (IfInit() != 0) {
+        return -1;
+    }
+    Reset();
+    SendCommand(0x66);
+    SendData(0x49);
+    SendData(0x55);
+    SendData(0x13);
+    SendData(0x5D);
+    SendData(0x05);
+    SendData(0x10);
+
+    SendCommand(0xB0);
+    SendData(0x00);//1 boost
+
+    SendCommand(0x01);
+    SendData(0x0F);
+    SendData(0x00);
+
+    SendCommand(0x00);
+    SendData(0x4F);
+    SendData(0x6B);
+
+
+    SendCommand(0x06);
+    SendData(0xD7);
+    SendData(0xDE);
+    SendData(0x12);
+
+
+    SendCommand(0x61);
+    SendData(0x00);
+    SendData(0xA8);
+    SendData(0x01); 
+    SendData(0x90); 
+
+    SendCommand(0x50);
+    SendData(0x37);
+
+    SendCommand(0x60);
+    SendData(0x0C); 
+    SendData(0x05);
+
+    SendCommand(0xE3);
+    SendData(0xFF);
+
+    SendCommand(0x84);
+    SendData(0x00);
+    return 0;
+}
+
+/**
+ *  @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 LOW
+ */
+void Epd::ReadBusyH(void) {
+    Serial.print("e-Paper busy H\r\n ");
+    while(DigitalRead(busy_pin) == LOW) {      //LOW: busy, HIGH: idle
+        DelayMs(5);
+    } 
+    Serial.print("e-Paper busy release H\r\n ");    
+}
+
+void Epd::ReadBusyL(void) {
+    Serial.print("e-Paper busy L\r\n ");
+    while(DigitalRead(busy_pin) == HIGH) {      //LOW: idle, HIGH: busy
+        DelayMs(5);
+    }      
+    Serial.print("e-Paper busy release L\r\n ");
+}
+
+/**
+ *  @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(2);
+    DigitalWrite(reset_pin, HIGH);
+    DelayMs(20);     
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+void Epd::TurnOnDisplay(void)
+{
+    SendCommand(0x12); // DISPLAY_REFRESH
+    SendData(0x01);
+    ReadBusyH();
+
+    SendCommand(0x02); // POWER_OFF
+    SendData(0X00);
+    ReadBusyH();
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void Epd::Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            for(UBYTE k = 0; k < 4; k++) {
+                SendData(color);
+            }
+        }
+    }
+
+    SendCommand(0x68);
+    SendData(0x00);
+
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void Epd::Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            SendData(pgm_read_byte(&Image[i + j * Width]));
+        }
+    }
+    TurnOnDisplay();
+}
+
+void Epd::Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            if((j >= xstart/4) && (j < (image_width + xstart)/4) && (i >= ystart) && (i <= (ystart + image_heigh)) )
+            {
+                SendData(pgm_read_byte(&Image[(i-ystart) * image_width/4 + j - xstart/4]));
+                // Serial.print(Image[(i-ystart) * image_width/8 + j - xstart], HEX);
+                // Serial.print(" ");
+            }
+            else
+            {
+                SendData(0x55);
+            }
+        }
+    }
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void Epd::Sleep(void)
+{
+    SendCommand(0x02); // POWER_OFF
+    SendData(0X00);
+    SendCommand(0x07); // DEEP_SLEEP
+    SendData(0XA5);
+}
+
+/* END OF FILE */
+
+

+ 74 - 0
Arduino/epd3in0g/epd3in0g.h

@@ -0,0 +1,74 @@
+/**
+ *  @filename   :   epd3in0g.h
+ *  @brief      :   Header file for e-paper display library epd3in0g.cpp
+ *  @author     :   Waveshare
+ *  
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 EPD3IN0G_H
+#define EPD3IN0G_H
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH       168
+#define EPD_HEIGHT      400
+
+//colour
+#define  black   0x00 
+#define  white   0x55
+#define  yellow  0xAA
+#define  red     0xFF
+
+#define UWORD   unsigned int
+#define UBYTE   unsigned char
+#define UDOUBLE unsigned long
+
+class Epd : EpdIf {
+public:
+    unsigned long WIDTH;
+    unsigned long HEIGHT;
+
+    Epd();
+    ~Epd();
+    int  Init();
+    void SendCommand(unsigned char command);
+    void SendData(unsigned char data);
+    void Reset(void);
+    void ReadBusyH(void);
+    void ReadBusyL(void);
+    void TurnOnDisplay(void);
+    void Clear(UBYTE color);
+    void Display(UBYTE *Image);
+    void Sleep(void);
+
+
+private:
+    unsigned int reset_pin;
+    unsigned int dc_pin;
+    unsigned int cs_pin;
+    unsigned int busy_pin;
+};
+
+#endif /* EPD1IN54_H */
+
+/* END OF FILE */

+ 62 - 0
Arduino/epd3in0g/epd3in0g.ino

@@ -0,0 +1,62 @@
+/**
+ *  @filename   :   epd3in0g-demo.ino
+ *  @brief      :   3inch e-paper (G) display demo
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <SPI.h>
+#include "epd3in0g.h"
+#include "imagedata.h"
+
+Epd epd;
+
+void setup() {
+  // put your setup code here, to run once:
+  Serial.begin(115200);
+  Serial.print("e-Paper init ");
+  if (epd.Init() != 0) {
+      Serial.print("e-Paper init failed");
+      return;
+  }
+
+  Serial.print("While \r\n");
+  epd.Clear(white); // While
+  delay(2000);
+
+  epd.Init();
+  epd.Display(IMAGE_DATA);
+  delay(2000);
+
+  epd.Init();
+  Serial.print("Clear...\r\n");
+  epd.Clear(white);
+  delay(2000);
+
+  Serial.print("Goto Sleep...\r\n");
+  epd.Sleep();
+  
+}
+
+void loop() {
+
+}

+ 64 - 0
Arduino/epd3in0g/epdif.cpp

@@ -0,0 +1,64 @@
+/**
+ *  @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 <spi.h>
+
+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); 
+
+    SPI.begin();
+    SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+    return 0;
+}

+ 51 - 0
Arduino/epd3in0g/epdif.h

@@ -0,0 +1,51 @@
+/**
+ *  @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 <arduino.h>
+
+// Pin definition
+#define RST_PIN         8
+#define DC_PIN          9
+#define CS_PIN          10
+#define BUSY_PIN        7
+
+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

+ 1080 - 0
Arduino/epd3in0g/imagedata.cpp

@@ -0,0 +1,1080 @@
+/**
+ *  @filename   :   imagedata.cpp
+ *  @brief      :   data file for epd demo
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <avr/pgmspace.h>
+
+const unsigned char IMAGE_DATA[] PROGMEM = {
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x15,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x15,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x50,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,
+0x50,0x15,0x50,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x50,0x15,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x55,0x55,0x55,0x40,0x15,0x50,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x5F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x54,0x00,0x15,
+0x50,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xD7,0xFF,
+0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x40,0x00,0x05,0x50,0x15,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xF5,0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x00,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,
+0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x5F,0xFF,0xFF,0xFF,
+0xFD,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x54,0x00,0x14,0x00,0x00,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x54,0x01,0x55,0x00,0x01,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x54,0x15,
+0x55,0x50,0x05,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xAA,0xAA,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x57,0xFF,0xFF,0xF5,0x55,0x55,0x55,
+0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xEA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x57,0xFF,0xFF,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,
+0xAB,0xFE,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x5F,0xFF,0xFF,
+0xD5,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x50,0x00,0x05,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xEA,0xAA,0xAA,0xAF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xD5,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x40,0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x7F,0xFF,0xFF,0xD5,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,
+0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0xFF,0xFF,0xFF,0xFD,0x55,
+0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x00,0x40,0x40,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xEA,0xAA,0xAA,0xAB,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x57,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x54,0x01,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xAA,0xAB,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x54,0x05,
+0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,
+0xEA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
+0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xD5,0x57,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x57,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x54,0x05,0x40,0x00,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x01,0x40,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,
+0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
+0x55,0x05,0x40,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,
+0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,
+0xFF,0xFF,0xF5,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,
+0x41,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
+0x5F,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,0xDB,0xFF,0xFF,0xFF,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xD5,0x55,0x55,0x55,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0x55,0x5F,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0x55,0x55,0x55,0x54,0x00,0x55,0x40,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0xF5,0x55,0x55,0x5F,0xFF,0xFF,0x55,0x55,0x55,
+0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,
+0x55,0xFF,0xD5,0x55,0x57,0xFF,0xFD,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFD,0x55,0x55,0xFF,
+0xFD,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,
+0xFF,0xFF,0xD5,0x55,0x5F,0xFF,0xFD,0x56,0x65,0xFF,0xFD,0x55,0x55,0x55,0x55,0x01,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x05,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x57,0xFF,
+0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x5F,0xFF,0x55,0x55,0xFF,0xFF,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xD5,0x55,0x7F,0xFF,
+0xF5,0x55,0x57,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xF5,0x55,0x57,0xFF,0x55,0x55,0x57,0xFF,0xFF,0xFD,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,
+0xF9,0x55,0x55,0x75,0x55,0x55,0x5F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x54,0x15,0x41,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,
+0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x54,0x15,0x00,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,
+0xFF,0xD5,0x5F,0xFF,0xFF,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x54,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,
+0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xF5,0x55,0x5F,0xFF,0xFF,0xFF,
+0xFD,0x55,0x55,0x55,0x55,0x55,0x50,0x01,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,
+0x5F,0xFF,0xFF,0xFF,0xFF,0x55,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
+0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,
+0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,
+0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x5F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,
+0x50,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x54,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x01,0x00,0x00,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x50,0x00,0x01,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
+0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xEA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xBF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x01,0x40,0x40,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,
+0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x51,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x40,0x54,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x55,0x15,0x55,0x55,0x55,
+0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,
+0x05,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x40,0x50,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x50,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x40,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x01,0x40,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x05,0x55,
+0x55,0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x50,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x15,0x55,0x40,0x05,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x55,0x40,0x05,
+0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x55,0x40,0x05,0x55,0x54,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,
+0x55,0x55,0x40,0x01,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x55,0x40,0x01,0x55,0x54,
+0x00,0x15,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x50,0x00,0x55,0x55,0x40,0x00,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,
+0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x15,0x55,
+0x00,0x00,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x05,0x54,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x01,0x55,0x57,
+0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,
+0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x00,0x05,0x50,0x00,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x05,0x55,0x57,0xFF,0xFF,
+0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x50,0x00,0x00,0x05,0x54,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x00,
+0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,
+0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x40,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x50,0x15,0x55,0x55,0x55,0x55,
+0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,
+0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x40,0x01,
+0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,
+0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x00,
+0x14,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x55,0x55,
+0x55,0x55,0x55,0x40,0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x05,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,
+0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x15,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFF,0xFF,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,
+0xBF,0xFF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFA,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xFF,
+0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xBF,0xFE,0xAA,0xAA,0xAF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAF,0xFA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xEA,0xAA,
+0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x50,0x15,0x01,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,
+0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x00,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAB,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x05,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
+0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x01,0x55,0x40,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,
+0xEA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAF,0xFA,0xAA,0xAA,0xBF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFA,0xAA,0xAA,0xBF,0xFE,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xFF,0xFF,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x15,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
+0xAF,0xFF,0xFF,0xFA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,
+0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xBF,0xFF,0xFF,0xFE,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xFF,0xFF,0xFF,0xFF,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,
+0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x55,0x54,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x05,0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x50,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x01,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,
+0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x54,0x00,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x55,
+0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x50,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x05,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x05,0x50,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x40,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x41,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x01,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x41,0x50,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,
+0xAB,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x05,0x50,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x50,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,
+0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x54,0x00,
+0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,
+0x55,0x55,0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,
+0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x01,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0x40,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x54,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x05,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x00,0x05,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFE,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x05,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x50,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAB,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x54,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x15,0x55,0x55,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xFF,0xFF,0xFE,0xAA,0xAF,0xEA,0xAA,0xAA,0xAF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,
+0xAB,0xFF,0xFF,0xFF,0xAA,0xAB,0xFE,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xEA,0xAA,
+0xFF,0xEA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xEA,0xAA,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFA,0xAA,0xBF,0xFE,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFE,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,
+0xFA,0xAA,0xBF,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x40,0x00,
+0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x05,0x50,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xEA,0xAA,
+0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x01,0x40,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x50,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,
+0x01,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xAA,0xAA,
+0xBF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xFF,0xFF,0xFA,0xAA,0xAA,0xBF,0xFF,0xFA,0xAA,0xBF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAF,
+0xFE,0xAA,0xAA,0xAA,0xBF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,
+0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x50,0x50,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x04,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x50,0x40,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x05,0x40,0x05,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x40,
+0x05,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x15,0x40,0x05,0x54,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x50,0x00,0x55,0x40,0x05,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x54,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x54,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,
+0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,
+0x55,0x40,0x05,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x40,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x55,0x40,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x40,
+0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x40,0x00,0x00,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x00,0x15,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x40,0x00,0x00,
+0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
+0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xAA,0xAA,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAB,
+0xFF,0xEA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFE,0xAA,0xAA,0xAA,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xBE,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBA,0xAA,
+0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x01,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xEA,0xAA,0xAB,0xFF,0xFE,0xAA,0xAA,0xAA,0xAF,0xEA,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x40,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xEA,0xAA,
+0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,
+0xFF,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,
+0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x01,0x55,0x40,0x55,0x55,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,
+0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,
+0xFA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,
+0xEA,0xAA,0xBF,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xBF,0xFF,0xFF,0xEA,
+0xAA,0xAB,0xFF,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xAA,0xAA,0xAA,0xBF,0xFA,0xAA,0xAA,
+0xBF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,
+0xAA,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBA,0xAA,0xAA,0xAA,
+0xAA,0xAF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFE,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAB,
+0xFF,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFE,
+0xAA,0xAA,0xAA,0xBF,0xFF,0xFE,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
+0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAB,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x00,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x50,0x00,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x50,
+0x00,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x50,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x40,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,
+0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x40,0x01,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x00,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x05,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,
+0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x05,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,
+0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x00,0x05,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,
+0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x40,0x00,0x01,0x55,0x55,0x45,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x54,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x15,0x40,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x15,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,0xFE,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x00,0x00,0x05,0x50,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x50,0x00,0x00,0x00,0x05,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,
+0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x14,0x00,
+0x05,0x54,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x01,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x01,0x54,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xEA,0xAF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x50,0x00,0x55,0x40,0x01,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,0xFE,0xAA,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x55,0x50,0x01,0x54,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x55,0x50,0x01,0x54,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x15,0x05,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,
+0xAB,0xFF,0xFA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,
+0x15,0x50,0x01,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x14,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xFF,0xEA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x15,0x54,0x01,0x50,0x00,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x14,0x01,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x14,0x01,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFE,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x00,0x15,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x15,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xEA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xBF,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xAA,
+0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xBF,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x01,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xEA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x40,0x40,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xBF,
+0xFF,0xFF,0xFF,0xFE,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,
+0x40,0x54,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAB,0xFF,0xFF,0xFF,0xEA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFE,0xAA,0xBF,0xFF,0xFF,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x00,0x15,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x05,0x40,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,
+0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x15,0x55,0x55,0x50,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x40,0x00,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x55,0x55,0x55,0x50,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x40,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x54,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x40,0x05,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x55,
+0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x50,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x50,0x00,0x05,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAB,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x01,0x55,0x55,0x00,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xBE,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,0xEA,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x00,
+0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x01,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAF,0xFF,0xFE,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,
+0xFF,0xFF,0xFF,0xEA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x40,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAF,0xFF,0xFF,0xFF,0xFA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0x40,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x01,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xBF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x05,0x55,0x54,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,
+0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x54,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,
+0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xAA,0xAB,0xAA,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x50,0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAF,0xAA,
+0xFE,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,
+0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xBF,0xAA,0xFE,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xFF,0xAA,0xFF,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x04,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x01,0x55,0x40,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xFF,0xAA,0xFF,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x01,0x40,
+0x05,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xFF,0xAA,0xFF,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x40,0x05,0x50,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,
+0xFF,0xAA,0xFE,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x50,0x00,0x15,0x40,0x05,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,
+0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xFF,0xAA,0xFA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x54,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x40,0x15,0x55,0x55,0x57,
+0xFF,0xFF,0xFE,0xAA,0xBF,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x54,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xBF,0xAA,
+0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,
+0x55,0x40,0x05,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x50,0x00,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xEA,0xBF,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x50,0x00,0x55,0x40,0x05,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFA,0xFF,0xAA,0xAA,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x55,0x40,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x15,0x40,0x00,0x00,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x15,0x40,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x15,0x40,0x00,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x40,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x01,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x40,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x01,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x40,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFA,0xAF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x05,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAF,0xFA,0xAA,0xAB,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xAA,0xAF,0xFA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x40,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xAA,
+0xAF,0xEA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x00,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAF,0xEA,0xAA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,
+0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFE,0xAA,0xFF,0xAA,0xAE,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x50,0x00,0x01,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAB,0xFF,0xAA,
+0xBF,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAB,0xFF,0xAA,0xBF,0xEA,0xBF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFE,0xAB,0xFE,0xAA,0xFF,0xEA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAB,0xFE,0xAA,0xFF,0xEA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xFE,0xAA,0xFF,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,
+0xAA,0xAA,0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,
+0x00,0x00,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFE,0xAA,0xAA,0xAB,0xFA,0xAA,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xFA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAF,
+0xFA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xEA,0xAA,0xAF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFE,0xAA,0xFF,0xFA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+};

+ 30 - 0
Arduino/epd3in0g/imagedata.h

@@ -0,0 +1,30 @@
+/**
+ *  @filename   :   imagedata.h
+ *  @brief      :   head file for imagedata.cpp
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 */
+
+

+ 593 - 0
Arduino/epd3in52/EPD_3in52.cpp

@@ -0,0 +1,593 @@
+/*****************************************************************************
+* | File      	:   EPD_3IN52.C
+* | Author      :   Waveshare team
+* | Function    :   3.52inch e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-05-07
+* | 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 <stdlib.h>
+#include "EPD_3in52.h"
+#include "imagedata.h"
+
+
+
+//GC 0.9S
+static const UBYTE EPD_3IN52_lut_R20_GC[] =
+{
+  0x01,0x0f,0x0f,0x0f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+};							  
+static const UBYTE EPD_3IN52_lut_R21_GC[] =
+{
+  0x01,0x4f,0x8f,0x0f,0x01,0x01,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
+};						 
+static const UBYTE EPD_3IN52_lut_R22_GC[] =
+{
+  0x01,0x0f,0x8f,0x0f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R23_GC[] =
+{
+  0x01,0x4f,0x8f,0x4f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R24_GC[] =
+{
+  0x01,0x0f,0x8f,0x4f,0x01,0x01,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
+};
+
+
+// DU 0.3s
+static const UBYTE EPD_3IN52_lut_R20_DU[] =
+{
+  0x01,0x0f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+};							  
+static const UBYTE EPD_3IN52_lut_R21_DU[] =
+{
+  0x01,0x0f,0x01,0x00,0x00,0x01,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
+};						 
+static const UBYTE EPD_3IN52_lut_R22_DU[] =
+{
+  0x01,0x8f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R23_DU[] =
+{
+  0x01,0x4f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R24_DU[] =
+{
+  0x01,0x0f,0x01,0x00,0x00,0x01,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
+};
+
+// 
+static const UBYTE EPD_3IN52_lut_vcom[] =
+{
+  0x01,0x19,0x19,0x19,0x19,0x01,0x01,
+  0x01,0x19,0x19,0x19,0x01,0x01,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
+};
+
+static const UBYTE EPD_3IN52_lut_ww[] =
+{
+  0x01,0x59,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x19,0x01,0x01,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
+
+};
+
+static const UBYTE EPD_3IN52_lut_bw[] =
+{
+  0x01,0x59,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x19,0x01,0x01,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
+};
+
+static const UBYTE EPD_3IN52_lut_wb[] =
+{	
+  0x01,0x19,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x59,0x01,0x01,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
+};
+
+static const UBYTE EPD_3IN52_lut_bb[] =
+{
+  0x01,0x19,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x59,0x01,0x01,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
+};
+
+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;
+    EPD_3IN52_Flag = 0;
+};
+
+int Epd::Init(void) {
+    if (IfInit() != 0) {
+        return -1;
+    }
+    Reset();
+
+    EPD_3IN52_Flag = 0;
+
+    SendCommand(0x00);		// panel setting   PSR
+    SendData(0xFF);			// RES1 RES0 REG KW/R     UD    SHL   SHD_N  RST_N	
+    SendData(0x01);			// x x x VCMZ TS_AUTO TIGE NORG VC_LUTZ
+
+    SendCommand(0x01);		// POWER SETTING   PWR
+    SendData(0x03);			//  x x x x x x VDS_EN VDG_EN	
+    SendData(0x10);			//  x x x VCOM_SLWE VGH[3:0]   VGH=20V, VGL=-20V	
+    SendData(0x3F);			//  x x VSH[5:0]	VSH = 15V
+    SendData(0x3F);			//  x x VSL[5:0]	VSL=-15V
+    SendData(0x03);			//  OPTEN VDHR[6:0]  VHDR=6.4V
+                                        // T_VDS_OFF[1:0] 00=1 frame; 01=2 frame; 10=3 frame; 11=4 frame
+    SendCommand(0x06);		// booster soft start   BTST 
+    SendData(0x37);			//  BT_PHA[7:0]  	
+    SendData(0x3D);			//  BT_PHB[7:0]	
+    SendData(0x3D);			//  x x BT_PHC[5:0]	
+
+    SendCommand(0x60);		// TCON setting			TCON 
+    SendData(0x22);			// S2G[3:0] G2S[3:0]   non-overlap = 12		
+
+    SendCommand(0x82);		// VCOM_DC setting		VDCS 
+    SendData(0x07);			// x  VDCS[6:0]	VCOM_DC value= -1.9v    00~3f,0x12=-1.9v
+
+    SendCommand(0x30);			 
+    SendData(0x09);		
+
+    SendCommand(0xe3);		// power saving			PWS 
+    SendData(0x88);			// VCOM_W[3:0] SD_W[3:0]
+
+    SendCommand(0x61);		// resoultion setting 
+    SendData(0xf0);			//  HRES[7:3] 0 0 0	
+    SendData(0x01);			//  x x x x x x x VRES[8]	
+    SendData(0x68);			//  VRES[7:0]
+
+    SendCommand(0x50);			
+    SendData(0xB7);		
+    return 0;
+}
+
+/**
+ *  @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::ReadBusy(void) {
+    Serial.print("e-Paper busy \r\n ");
+    UBYTE busy;
+    do {
+        busy = DigitalRead(busy_pin);
+    } while(busy);    
+    DelayMs(200);
+    Serial.print("e-Paper busy release \r\n ");
+}
+
+/**
+ *  @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(2);
+    DigitalWrite(reset_pin, HIGH);
+    DelayMs(20);    
+}
+
+void Epd::lut(void)
+{
+    UBYTE count;
+    SendCommand(0x20);        // vcom
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_vcom[count]);
+    }
+         
+    SendCommand(0x21);        // ww --
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_ww[count]);
+    }
+        
+    SendCommand(0x22);        // bw r
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_bw[count]);
+    }
+        
+    SendCommand(0x23);        // wb w
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_bb[count]);
+    }
+        
+    SendCommand(0x24);        // bb b
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_wb[count]);
+    }
+}
+
+void Epd::refresh(void)
+{
+    SendCommand(0x17);
+    SendData(0xA5);
+    ReadBusy();
+    DelayMs(200);
+}
+
+// LUT download
+void Epd::lut_GC(void)
+{
+    UBYTE count;
+    SendCommand(0x20);        // vcom
+    for(count = 0; count < 56 ; count++)
+    {
+        SendData(EPD_3IN52_lut_R20_GC[count]);
+    }
+        
+    SendCommand(0x21);        // red not use
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_R21_GC[count]);
+    }
+        
+    SendCommand(0x24);        // bb b
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_R24_GC[count]);
+    }
+    
+    if(EPD_3IN52_Flag == 0)
+    {
+        SendCommand(0x22);    // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R22_GC[count]);
+        }
+            
+        SendCommand(0x23);    // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R23_GC[count]);
+        }
+            
+        EPD_3IN52_Flag = 1;
+    }
+        
+    else
+    {
+        SendCommand(0x22);    // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R23_GC[count]);
+        }
+            
+        SendCommand(0x23);    // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R22_GC[count]);
+        }
+            
+       EPD_3IN52_Flag = 0;
+    }
+}
+
+// LUT download        
+void Epd::lut_DU(void)
+{
+    UBYTE count;
+    SendCommand(0x20);      // vcom
+    for(count = 0; count < 56 ; count++)
+    {
+        SendData(EPD_3IN52_lut_R20_DU[count]);
+    }
+        
+    SendCommand(0x21);     // red not use
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_R21_DU[count]);
+    }
+        
+    SendCommand(0x24);    // bb b
+    for(count = 0; count < 42 ; count++)
+    {
+        SendData(EPD_3IN52_lut_R24_DU[count]);
+    }
+    
+    if(EPD_3IN52_Flag == 0)
+    {
+        SendCommand(0x22);      // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R22_DU[count]);
+        }
+            
+        SendCommand(0x23);     // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R23_DU[count]);
+        }
+            
+        EPD_3IN52_Flag = 1;
+    }
+        
+    else
+    {
+        SendCommand(0x22);    // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R23_DU[count]);
+        }
+            
+        SendCommand(0x23);   // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            SendData(EPD_3IN52_lut_R22_DU[count]);
+        }
+            
+        EPD_3IN52_Flag = 0;
+    }
+}  
+    
+void Epd::display(UBYTE* picData)
+{
+    UWORD i;
+    SendCommand(0x13);		     //Transfer new data
+    for(i=0;i<(width*height/8);i++)	     
+    {
+        SendData(pgm_read_byte(&picData[i]));
+    }
+}
+
+void Epd::display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh)
+{
+    UWORD i,j;
+    SendCommand(0x13);		     //Transfer new data
+    for(i=0; i<height; i++)
+        for(j=0; j<(width/8); j++)
+        {
+            if((j >= xstart/8) && (j < (image_width + xstart)/8) && (i >= ystart) && (i <= (ystart + image_heigh)) )
+            {
+                SendData(Image[(i-ystart) * image_width/8 + j - xstart/8]);
+                // Serial.print(Image[(i-ystart) * image_width/8 + j - xstart], HEX);
+                // Serial.print(" ");
+            }
+            else
+            {
+                SendData(0x00);
+            }
+        }
+}
+
+
+void Epd::display_NUM(UBYTE NUM)
+{
+    UWORD row, column;
+    // UWORD pcnt = 0;
+
+    SendCommand(0x13);		     //Transfer new data
+
+    for(column=0; column<height; column++)   
+    {
+        for(row=0; row<width/8; row++)  
+        {
+            switch (NUM)
+            {
+                case EPD_3IN52_WHITE:
+                    SendData(0xFF);
+                    break;  
+                        
+                case EPD_3IN52_BLACK:
+                    SendData(0x00);
+                    break;  
+                        
+                case EPD_3IN52_Source_Line:
+                    SendData(0xAA);  
+                    break;
+                        
+                case EPD_3IN52_Gate_Line:
+                    if(column%2)
+                        SendData(0xff); //An odd number of Gate line  
+                    else
+                        SendData(0x00); //The even line Gate  
+                    break;			
+                        
+                case EPD_3IN52_Chessboard:
+                    if(row>=(width/8/2)&&column>=(height/2))
+                        SendData(0xff);
+                    else if(row<(width/8/2)&&column<(height/2))
+                        SendData(0xff);										
+                    else
+                        SendData(0x00);
+                    break; 			
+                        
+                case EPD_3IN52_LEFT_BLACK_RIGHT_WHITE:
+                    if(row>=(width/8/2))
+                        SendData(0xff);
+                    else
+                        SendData(0x00);
+                    break;
+                            
+                case EPD_3IN52_UP_BLACK_DOWN_WHITE:
+                    if(column>=(height/2))
+                        SendData(0xFF);
+                    else
+                        SendData(0x00);
+                    break;
+                            
+                case EPD_3IN52_Frame:
+                    if(column==0||column==(height-1))
+                        SendData(0x00);						
+                    else if(row==0)
+                        SendData(0x7F);
+                    else if(row==(width/8-1))
+                        SendData(0xFE);					
+                    else
+                        SendData(0xFF);
+                    break; 					
+                            
+                case EPD_3IN52_Crosstalk:
+                    if((row>=(width/8/3)&&row<=(width/8/3*2)&&column<=(height/3))||(row>=(width/8/3)&&row<=(width/8/3*2)&&column>=(height/3*2)))
+                        SendData(0x00);
+                    else
+                        SendData(0xFF);
+                    break; 					
+                            
+                case EPD_3IN52_Image:
+                        //SendData(gImage_1[pcnt++]);
+                    break;  
+                                        
+                default:
+                    break;
+            }
+        }
+    }	
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void Epd::Clear(void)
+{
+    UWORD i;
+    SendCommand(0x13);		     //Transfer new data
+    for(i=0;i<(width*height/8);i++)	     
+    {
+        SendData(0xFF);
+    }
+    lut_GC();
+	refresh();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void Epd::sleep(void)
+{
+    SendCommand(0X07);  	//deep sleep
+    SendData(0xA5);
+}

+ 89 - 0
Arduino/epd3in52/EPD_3in52.h

@@ -0,0 +1,89 @@
+/*****************************************************************************
+* | File      	:   EPD_3IN52.h
+* | Author      :   Waveshare team
+* | Function    :   3.52inch e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-05-07
+* | 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 __EPD_3IN52_H_
+#define __EPD_3IN52_H_
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH       240
+#define EPD_HEIGHT      360 
+
+#define UWORD   unsigned int
+#define UBYTE   unsigned char
+#define UDOUBLE unsigned long
+
+#define EPD_3IN52_WHITE                         0xFF  // 
+#define EPD_3IN52_BLACK                         0x00  //
+#define EPD_3IN52_Source_Line                   0xAA  //
+#define EPD_3IN52_Gate_Line                     0x55  //
+#define EPD_3IN52_UP_BLACK_DOWN_WHITE           0xF0  //
+#define EPD_3IN52_LEFT_BLACK_RIGHT_WHITE        0x0F  //
+#define EPD_3IN52_Frame                         0x01  // 
+#define EPD_3IN52_Crosstalk                     0x02  //
+#define EPD_3IN52_Chessboard                    0x03  //
+#define EPD_3IN52_Image                         0x04  //
+
+
+extern unsigned char EPD_3IN52_Flag;
+
+class Epd : EpdIf {
+public:
+    Epd();
+    ~Epd();
+    int Init(void);
+    void Reset(void);
+    void SendCommand(unsigned char command);
+    void SendData(unsigned char data);
+    void ReadBusy(void);
+    void lut(void);
+    void refresh(void);
+    void lut_GC(void);
+    void lut_DU(void);
+    void display(UBYTE* picData);
+    void display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh);
+    void display_NUM(UBYTE NUM);
+    void Clear(void);
+    void sleep(void);
+
+private:
+    unsigned int reset_pin;
+    unsigned int dc_pin;
+    unsigned int cs_pin;
+    unsigned int busy_pin;
+    unsigned long width;
+    unsigned long height;
+    unsigned char EPD_3IN52_Flag;
+};
+
+
+
+#endif

+ 84 - 0
Arduino/epd3in52/epd3in52.ino

@@ -0,0 +1,84 @@
+/**
+    @filename   :   epd3in52-demo.ino
+    @brief      :   3.52inch e-paper display demo
+    @author     :   Waveshare
+
+    Copyright (C) Waveshare     2022/7/22
+
+   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 <SPI.h>
+#include "EPD_3in52.h"
+#include "imagedata.h"
+#include "epdpaint.h"
+
+#define COLORED     0
+#define UNCOLORED   1
+
+void setup() {
+    // put your setup code here, to run once:
+    Serial.begin(115200);
+    Epd epd;
+    if (epd.Init() != 0) {
+        Serial.print("e-Paper init failed");
+        return;
+    }
+    Serial.print("3.52inch e-paper demo\r\n ");
+    Serial.print("e-Paper Clear\r\n ");
+
+    epd.display_NUM(EPD_3IN52_WHITE);
+    epd.lut_GC();
+    epd.refresh();
+
+    epd.SendCommand(0x50);
+    epd.SendData(0x17);
+
+    delay(2000);
+
+    // UBYTE image[700];
+    // Paint paint(image, 200, 25);    // width should be the multiple of 8   
+
+    // paint.SetRotate(ROTATE_0);
+    // paint.Clear(COLORED);
+
+    // Serial.print("Drawing:BlackImage\r\n ");
+    // paint.DrawStringAt(0, 0, "e-Paper Demo", &Font24, UNCOLORED);
+    // epd.display_part(paint.GetImage(), 0, 0, paint.GetWidth(), paint.GetHeight());
+    // epd.lut_GC();
+    // epd.refresh();
+    // delay(2000);
+    
+    
+    epd.display(IMAGE_DATA);
+    epd.lut_GC();
+    epd.refresh();
+    delay(2000);
+    
+    Serial.print("clear and sleep......\r\n ");
+    epd.Clear();
+    delay(2000);
+    epd.sleep();
+    Serial.print("end\r\n ");
+}
+
+void loop() {
+    // put your main code here, to run repeatedly:
+
+}

+ 65 - 0
Arduino/epd3in52/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 <spi.h>
+
+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); 
+    SPI.begin();
+    SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+    
+    return 0;
+}
+

+ 51 - 0
Arduino/epd3in52/epdif.h

@@ -0,0 +1,51 @@
+/**
+ *  @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 <arduino.h>
+
+// Pin definition
+#define RST_PIN         8
+#define DC_PIN          9
+#define CS_PIN          10
+#define BUSY_PIN        7
+
+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

+ 342 - 0
Arduino/epd3in52/epdpaint.cpp

@@ -0,0 +1,342 @@
+/**
+ *  @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 <avr/pgmspace.h>
+#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 */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 75 - 0
Arduino/epd3in52/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 */
+

+ 1385 - 0
Arduino/epd3in52/font12.cpp

@@ -0,0 +1,1385 @@
+/**
+  ******************************************************************************
+  * @file    Font12.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text Font12. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * 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 <avr/pgmspace.h>
+
+// 
+//  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****/

+ 1765 - 0
Arduino/epd3in52/font16.cpp

@@ -0,0 +1,1765 @@
+/**
+  ******************************************************************************
+  * @file    font16.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text font16. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * 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 <avr/pgmspace.h>
+
+// 
+//  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****/

+ 2143 - 0
Arduino/epd3in52/font20.cpp

@@ -0,0 +1,2143 @@
+/**
+  ******************************************************************************
+  * @file    font20.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text font20. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * 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 <avr/pgmspace.h>
+
+// 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****/

+ 2521 - 0
Arduino/epd3in52/font24.cpp

@@ -0,0 +1,2521 @@
+/**
+  ******************************************************************************
+  * @file    font24.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text font24. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * 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 <avr/pgmspace.h>
+
+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****/

+ 1005 - 0
Arduino/epd3in52/font8.cpp

@@ -0,0 +1,1005 @@
+/**
+  ******************************************************************************
+  * @file    Font8.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text Font8. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * 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 <avr/pgmspace.h>
+
+// 
+//  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****/

+ 65 - 0
Arduino/epd3in52/fonts.h

@@ -0,0 +1,65 @@
+/**
+  ******************************************************************************
+  * @file    fonts.h
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   Header for fonts.c file
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * 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
+
+/* Includes ------------------------------------------------------------------*/
+#include <stdint.h>
+
+struct sFONT {
+  const uint8_t *table;
+  uint16_t Width;
+  uint16_t Height;
+};
+
+extern sFONT Font24;
+extern sFONT Font20;
+extern sFONT Font16;
+extern sFONT Font12;
+extern sFONT Font8;
+
+#endif /* __FONTS_H */
+ 
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 707 - 0
Arduino/epd3in52/imagedata.cpp

@@ -0,0 +1,707 @@
+/**
+ *  @filename   :   imagedata.cpp
+ *  @brief      :   data file for epd demo
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <avr/pgmspace.h>
+
+
+
+const unsigned char IMAGE_DATA[10800] PROGMEM = {
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X00,0X00,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,
+0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X70,0X7C,
+0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X70,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,
+0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0XFE,0X00,0X00,
+0X00,0X3F,0XFF,0XF0,0X00,0X01,0XFC,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X7F,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XF1,0XFF,0X00,0X00,0X00,0X3F,
+0XFF,0XE0,0X00,0X07,0XFF,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XF3,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XC0,
+0X00,0X1F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XF3,0XEF,0X80,0X00,0X00,0X3F,0XFF,0X80,0X00,0X7F,
+0XFF,0XEC,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XC3,0XC7,0X80,0X00,0X00,0X3F,0XFF,0X00,0X01,0XFF,0XFF,0XFE,
+0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XC3,0XC7,0X80,0X00,0X00,0X3F,0XFE,0X00,0X07,0XFF,0XFF,0XFE,0X00,0X7F,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XC7,0X87,0X80,0X00,0X00,0X3F,0XFC,0X00,0X0F,0XFF,0X87,0XFF,0X00,0X7F,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC7,0X87,
+0X80,0X00,0X00,0X3F,0XFC,0X00,0X1F,0XFE,0X00,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0X8F,0X80,0X00,
+0X00,0X3F,0XF8,0X00,0X1F,0XFE,0X00,0X7F,0XC0,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0X1F,0X00,0X00,0X00,0X3F,
+0XF8,0X00,0X1F,0XFF,0X80,0X7F,0XE0,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0X1F,0X00,0X00,0X00,0X3F,0XF0,0X00,
+0X0F,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0XFE,0X1E,0X00,0X00,0X00,0X3F,0XF0,0X00,0X01,0XFF,
+0XFC,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X38,0X1C,0X00,0X00,0X00,0X3F,0XE0,0X00,0X00,0X7F,0XFF,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XE0,0X00,0X00,0X1F,0XFF,0X80,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X07,0XFF,0X80,0X00,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XC0,0X3F,0XF0,0X01,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,
+0X00,0X7D,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XC0,0X1F,0XFC,0X07,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X78,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XC0,0X0F,0XFF,0X1F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XF8,0X00,0X70,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0X80,0X07,
+0XFF,0XE7,0XFE,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XF0,0X00,0X60,0X3F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0X80,0X03,0XFF,0XF9,
+0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0X80,0X01,0XFF,0XFF,0X00,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0X80,0X00,0XDF,0XFF,0XC0,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0X80,0X00,0X07,0XFF,0XF8,0X00,0X00,0X7F,0XFF,0XFF,
+0XFF,0XC0,0X70,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,
+0XF0,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XC2,0X00,0X00,
+0X00,0X3F,0X80,0X00,0X00,0X3F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XC6,0X00,0X00,0X00,0X3F,
+0X80,0X00,0X00,0X0F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XCF,0X00,0X00,0X00,0X3F,0X80,0X00,
+0X00,0X3F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XCF,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0XFF,
+0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X70,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XF3,0XC7,0X80,0X00,0X00,0X3F,0X80,0X00,0X07,0XFF,0XFE,0X00,
+0X00,0XFF,0XFF,0XFF,0XFF,0XC0,0X70,0X60,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XC3,0XC7,0X80,0X00,0X00,0X3F,0X80,0X00,0X1F,0XFF,0XF0,0X00,0X00,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X10,0X40,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XC3,0XC7,0X80,0X00,0X00,0X3F,0X80,0X00,0X1F,0XFF,0X80,0X00,0X00,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC3,0XC7,
+0X80,0X00,0X00,0X3F,0X80,0X00,0X1F,0XFE,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC3,0XC7,0X80,0X00,
+0X00,0X3F,0X80,0X00,0X1F,0XFF,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,
+0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE3,0XCF,0X80,0X00,0X00,0X3F,
+0X80,0X00,0X0F,0XFF,0XC0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,
+0X03,0XFF,0XF8,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X7F,
+0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0XFF,0XFE,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X1F,0XFF,0X80,
+0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X3F,0XFC,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X3F,0XFF,0X80,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X0F,0XE0,0X00,0X00,0X00,0X3F,0X80,0X00,0X01,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0X80,0X00,0X0F,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XC0,0X1F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X00,0X00,0X80,0X00,
+0X00,0X3F,0X80,0X00,0X0F,0XFF,0XFE,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X80,0X03,0X80,0X00,0X00,0X3F,
+0X80,0X00,0X0F,0XFF,0XF0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X0F,0X80,0X00,0X00,0X3F,0X80,0X00,
+0X0F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XF0,0X3F,0X80,0X00,0X00,0X3F,0X80,0X00,0X0F,0XFC,
+0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFC,0XFF,0X80,0X00,0X00,0X3F,0X80,0X00,0X0F,0XE0,0X00,0X01,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X01,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,0X0F,0X00,0X00,0X03,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X7F,0XFC,0X00,0X00,0X00,0X3F,0X80,0X00,0X08,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XF0,
+0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X3F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XF0,0X00,0X00,
+0X00,0X3F,0X80,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XF0,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X00,0X3F,
+0X80,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,
+0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XF0,0X1F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XF8,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XC0,0X07,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X7F,0XF0,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0X00,0X01,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF8,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X01,0XF3,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X01,0XF3,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X01,0XF3,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X01,0XF3,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC0,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XF8,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X7F,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7C,
+0X3F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF8,0X1F,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X7F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,
+0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC1,0XF0,0X7C,0X3F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC1,0XF0,0X7C,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC1,0XF0,0X7C,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC1,0XF0,0X7C,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X70,0X38,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X30,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X38,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X38,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,
+0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X38,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3C,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF8,0X3C,0X00,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X3E,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X83,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE0,0X00,0X07,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XE0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,
+0X07,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0,0X3E,0X01,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,
+0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0X01,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,
+0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,
+0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,
+0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,
+0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF1,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC1,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,
+0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0XFF,0XFC,0X00,0X00,0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X7D,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X78,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,
+0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X70,0X7F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X60,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X70,0X78,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0XF0,0X70,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X3D,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X70,0X60,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X38,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X10,0X40,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X80,0X30,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,
+0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X38,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X06,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,
+0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X01,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X06,0X38,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X82,0X20,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF8,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XF8,0X00,0X03,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFE,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X1F,0XFF,0X80,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X07,0XFF,0XC0,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,
+0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X03,0XFF,0XF0,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0XFF,
+0XFC,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFE,0X03,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,0XFF,0X83,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0XFF,0XE3,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XF0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X01,0XFF,0XFB,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XF0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XF0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X00,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X03,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0X83,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0X83,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0X83,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0X83,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X7F,0X80,0X00,0X00,0X7F,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X3F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X03,0XFF,0XF0,0X00,0X00,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,0X7F,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X1F,0XFF,0XFF,0X00,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X7F,0XFF,0XFF,0XC0,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XF0,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XF8,
+0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFC,0X00,0X7F,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XE0,0X7F,0XFE,0X00,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X1F,0XFF,0X00,0X7F,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X00,0X07,0XFF,0X80,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0X03,0XFF,0XE0,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X01,0XFF,0XF0,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X00,0X7F,0XF8,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X3F,
+0XFC,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X1F,0XFE,0X7F,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X0F,0XFF,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X07,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XC7,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0XFF,0X80,0X00,0X03,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X0F,0XC1,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XC0,0X00,0X00,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0XC0,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0XFF,0XF8,0X00,0X00,0X7F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XC0,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFE,
+0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X0F,0XC0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFE,0X00,0X00,
+0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X0F,0XC0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFE,0X00,0X00,0X0F,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X0F,0XC0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFE,0X00,0X00,0X07,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XF0,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFE,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X07,0XFE,0X00,0X00,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X7E,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X0F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X06,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X7F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X3F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,
+0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X01,0X00,0X00,0X08,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,
+0X00,0X00,0X1C,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X7F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X07,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X0F,0X80,0X00,
+0X3E,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0X1F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,0XC0,0X00,0X7F,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XE0,0X00,0XFF,0X80,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X7F,0XF8,0X03,0XFF,0XC0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFC,0X07,0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X1F,0XFE,0X0F,0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X0F,0XFF,0X1F,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,
+0XFF,0XBF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,
+0XF8,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XE0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XC0,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X1F,0XFF,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,
+0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X8F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X7F,0XFF,0XC0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,
+0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XF0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
+0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XBF,0XF8,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X01,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0XFF,0X1F,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X1F,0XFE,0X0F,0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFC,0X07,0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,
+0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X7F,0XF8,0X03,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XF0,0X01,0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,0XE0,0X00,
+0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X0F,0XC0,0X00,0X7E,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0X00,0X00,0X1C,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X02,0X00,0X00,0X08,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,
+0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X03,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X03,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X1F,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X80,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFC,0X01,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X7F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X38,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XE0,0X00,0X3F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,
+0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XE0,0X00,0X0F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,
+0X07,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X06,0X18,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X01,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X87,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X30,0X00,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0XFE,0X00,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC7,0X80,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X00,0X38,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF7,0XC1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X81,0XFF,0XC0,0X18,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,
+0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X81,0XFF,0XE0,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,
+0XF0,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XF8,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0XFC,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X0F,0XFE,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X0F,0XFF,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X03,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X0F,0XFF,0X80,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE0,0X0F,0XFF,0XC0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF0,0X0F,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,
+0XFF,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X7F,0XFF,0XBF,0XFF,0XFF,0XFF,0XFF,0XFE,0X0F,0XFF,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X3F,0XFE,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X1F,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,
+0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X03,0XC0,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X0F,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X01,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,
+0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X81,0XFF,0X80,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFE,
+0X00,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X7F,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X00,0X00,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X7F,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFC,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X00,0X00,0X7F,0XFF,
+0XFC,0X00,0X00,0X01,0XFE,0X00,0X7F,0XFE,0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X00,0X00,0X3F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0XFF,0XF0,0X03,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0XFF,0XC0,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,
+0XFF,0X80,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X81,0XF0,0X1F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0XFF,0X80,
+0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X81,0XF0,0X3F,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X00,0XFF,0X00,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,
+0X7F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X80,0XFF,0X00,0X00,0X3F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XF1,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X80,0XFF,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XC1,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X7F,0XC0,0X7F,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X81,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X7F,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X7F,0XE0,0X7F,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X81,
+0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X78,0X7F,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X3F,0XF0,0X3F,0X80,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFC,
+0X3F,0XC0,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X1F,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0X1F,0XE0,
+0X03,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X1F,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XF0,0X3F,0XFF,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,
+0X3F,0X80,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0X80,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0X81,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0X83,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,
+0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0X87,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,
+0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XC0,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X80,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X7C,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X38,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X7F,0X80,0X03,
+0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X03,0XFF,0XE0,0X0F,0XFF,0XE0,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XF0,0X1F,0XFF,0XF8,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,
+0X7F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0XF8,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X06,0X18,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X7F,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X87,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X3F,0XFF,0XFE,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC7,0X80,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF7,0XC1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,
+0X87,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X0F,0XF8,0X07,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XC0,0XFF,0XFE,0X01,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,
+0XF0,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X80,0X3F,0XFC,0X00,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,0XE0,0X00,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X1F,0XF8,0X00,0X7F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XC0,0X00,0XFF,0XFF,
+0XFC,0X00,0X00,0X01,0XFE,0X00,0X1F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X80,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0X0F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X0F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X0F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0X00,0X00,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X0F,0XF0,
+0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X70,0X07,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X0F,0XF0,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XF8,
+0X07,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X0F,0XF0,0X00,0X7F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X0F,0XF0,0X00,0X7F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XF8,0X1C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0XFF,0XC0,0X0F,0XF0,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XF0,0X08,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XF8,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XE0,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0XFF,0XF8,0X00,0X00,0X0F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XE0,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0X80,0XFC,0X0F,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XF8,
+0X00,0X00,0X0F,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC1,0XC0,0XF8,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X80,0X7C,0X0F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XF8,0X00,0X00,
+0X0F,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XC0,0X3F,0XFF,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XF8,0X00,0X00,0X0F,0XFE,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,
+0XFF,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XF8,0X00,0X00,0X0F,0XFC,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0X80,
+0X3F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XF8,0X00,0X00,0X0F,0XF8,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0X80,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X03,0XF8,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0X80,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0XF8,0X00,0X00,0X0F,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC3,0XE1,
+0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XF8,0X3F,0XFF,0X80,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X0E,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0X83,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XDF,0XFF,0X8F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+};

+ 28 - 0
Arduino/epd3in52/imagedata.h

@@ -0,0 +1,28 @@
+/**
+ *  @filename   :   imagedata.h
+ *  @brief      :   head file for imagedata.cpp
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 */

+ 4 - 0
Arduino/epd3in7/.vscode/arduino.json

@@ -0,0 +1,4 @@
+{
+    "board": "arduino:avr:uno",
+    "sketch": "epd3in7.ino"
+}

+ 538 - 0
Arduino/epd3in7/.vscode/c_cpp_properties.json

@@ -0,0 +1,538 @@
+{
+    "version": 4,
+    "configurations": [
+        {
+            "name": "Arduino",
+            "compilerPath": "D:\\Arduino\\az\\Arduino\\hardware\\tools\\avr\\bin\\avr-g++",
+            "compilerArgs": [
+                "-w",
+                "-std=gnu++11",
+                "-fpermissive",
+                "-fno-exceptions",
+                "-ffunction-sections",
+                "-fdata-sections",
+                "-fno-threadsafe-statics",
+                "-Wno-error=narrowing"
+            ],
+            "intelliSenseMode": "gcc-x64",
+            "includePath": [
+                "D:\\Arduino\\az\\Arduino\\hardware\\arduino\\avr\\cores\\arduino",
+                "D:\\Arduino\\az\\Arduino\\hardware\\arduino\\avr\\variants\\standard",
+                "D:\\Arduino\\az\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src",
+                "d:\\arduino\\az\\arduino\\hardware\\tools\\avr\\lib\\gcc\\avr\\7.3.0\\include",
+                "d:\\arduino\\az\\arduino\\hardware\\tools\\avr\\lib\\gcc\\avr\\7.3.0\\include-fixed",
+                "d:\\arduino\\az\\arduino\\hardware\\tools\\avr\\avr\\include"
+            ],
+            "forcedInclude": [
+                "D:\\Arduino\\az\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h"
+            ],
+            "cStandard": "c11",
+            "cppStandard": "c++11",
+            "defines": [
+                "F_CPU=16000000L",
+                "ARDUINO=10818",
+                "ARDUINO_AVR_UNO",
+                "ARDUINO_ARCH_AVR",
+                "__DBL_MIN_EXP__=(-125)",
+                "__HQ_FBIT__=15",
+                "__cpp_attributes=200809",
+                "__UINT_LEAST16_MAX__=0xffffU",
+                "__ATOMIC_ACQUIRE=2",
+                "__SFRACT_IBIT__=0",
+                "__FLT_MIN__=1.17549435e-38F",
+                "__GCC_IEC_559_COMPLEX=0",
+                "__BUILTIN_AVR_SLEEP=1",
+                "__BUILTIN_AVR_COUNTLSULLK=1",
+                "__cpp_aggregate_nsdmi=201304",
+                "__BUILTIN_AVR_COUNTLSULLR=1",
+                "__UFRACT_MAX__=0XFFFFP-16UR",
+                "__UINT_LEAST8_TYPE__=unsigned char",
+                "__DQ_FBIT__=63",
+                "__INTMAX_C(c)=c ## LL",
+                "__ULFRACT_FBIT__=32",
+                "__SACCUM_EPSILON__=0x1P-7HK",
+                "__CHAR_BIT__=8",
+                "__USQ_IBIT__=0",
+                "__UINT8_MAX__=0xff",
+                "__ACCUM_FBIT__=15",
+                "__WINT_MAX__=0x7fff",
+                "__FLT32_MIN_EXP__=(-125)",
+                "__cpp_static_assert=200410",
+                "__USFRACT_FBIT__=8",
+                "__ORDER_LITTLE_ENDIAN__=1234",
+                "__SIZE_MAX__=0xffffU",
+                "__WCHAR_MAX__=0x7fff",
+                "__LACCUM_IBIT__=32",
+                "__DBL_DENORM_MIN__=double(1.40129846e-45L)",
+                "__GCC_ATOMIC_CHAR_LOCK_FREE=1",
+                "__GCC_IEC_559=0",
+                "__FLT_EVAL_METHOD__=0",
+                "__BUILTIN_AVR_LLKBITS=1",
+                "__cpp_binary_literals=201304",
+                "__LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-47LLK",
+                "__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1",
+                "__BUILTIN_AVR_HKBITS=1",
+                "__BUILTIN_AVR_BITSLLK=1",
+                "__FRACT_FBIT__=15",
+                "__BUILTIN_AVR_BITSLLR=1",
+                "__cpp_variadic_templates=200704",
+                "__UINT_FAST64_MAX__=0xffffffffffffffffULL",
+                "__SIG_ATOMIC_TYPE__=char",
+                "__BUILTIN_AVR_UHKBITS=1",
+                "__UACCUM_FBIT__=16",
+                "__DBL_MIN_10_EXP__=(-37)",
+                "__FINITE_MATH_ONLY__=0",
+                "__cpp_variable_templates=201304",
+                "__LFRACT_IBIT__=0",
+                "__GNUC_PATCHLEVEL__=0",
+                "__FLT32_HAS_DENORM__=1",
+                "__LFRACT_MAX__=0X7FFFFFFFP-31LR",
+                "__UINT_FAST8_MAX__=0xff",
+                "__has_include(STR)=__has_include__(STR)",
+                "__DEC64_MAX_EXP__=385",
+                "__INT8_C(c)=c",
+                "__INT_LEAST8_WIDTH__=8",
+                "__UINT_LEAST64_MAX__=0xffffffffffffffffULL",
+                "__SA_FBIT__=15",
+                "__SHRT_MAX__=0x7fff",
+                "__LDBL_MAX__=3.40282347e+38L",
+                "__FRACT_MAX__=0X7FFFP-15R",
+                "__UFRACT_FBIT__=16",
+                "__UFRACT_MIN__=0.0UR",
+                "__UINT_LEAST8_MAX__=0xff",
+                "__GCC_ATOMIC_BOOL_LOCK_FREE=1",
+                "__UINTMAX_TYPE__=long long unsigned int",
+                "__LLFRACT_EPSILON__=0x1P-63LLR",
+                "__BUILTIN_AVR_DELAY_CYCLES=1",
+                "__DEC32_EPSILON__=1E-6DF",
+                "__FLT_EVAL_METHOD_TS_18661_3__=0",
+                "__UINT32_MAX__=0xffffffffUL",
+                "__GXX_EXPERIMENTAL_CXX0X__=1",
+                "__ULFRACT_MAX__=0XFFFFFFFFP-32ULR",
+                "__TA_IBIT__=16",
+                "__LDBL_MAX_EXP__=128",
+                "__WINT_MIN__=(-__WINT_MAX__ - 1)",
+                "__INT_LEAST16_WIDTH__=16",
+                "__ULLFRACT_MIN__=0.0ULLR",
+                "__SCHAR_MAX__=0x7f",
+                "__WCHAR_MIN__=(-__WCHAR_MAX__ - 1)",
+                "__INT64_C(c)=c ## LL",
+                "__DBL_DIG__=6",
+                "__GCC_ATOMIC_POINTER_LOCK_FREE=1",
+                "__AVR_HAVE_SPH__=1",
+                "__LLACCUM_MIN__=(-0X1P15LLK-0X1P15LLK)",
+                "__BUILTIN_AVR_KBITS=1",
+                "__BUILTIN_AVR_ABSK=1",
+                "__BUILTIN_AVR_ABSR=1",
+                "__SIZEOF_INT__=2",
+                "__SIZEOF_POINTER__=2",
+                "__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1",
+                "__USACCUM_IBIT__=8",
+                "__USER_LABEL_PREFIX__",
+                "__STDC_HOSTED__=1",
+                "__LDBL_HAS_INFINITY__=1",
+                "__LFRACT_MIN__=(-0.5LR-0.5LR)",
+                "__HA_IBIT__=8",
+                "__FLT32_DIG__=6",
+                "__TQ_IBIT__=0",
+                "__FLT_EPSILON__=1.19209290e-7F",
+                "__GXX_WEAK__=1",
+                "__SHRT_WIDTH__=16",
+                "__USFRACT_IBIT__=0",
+                "__LDBL_MIN__=1.17549435e-38L",
+                "__FRACT_MIN__=(-0.5R-0.5R)",
+                "__AVR_SFR_OFFSET__=0x20",
+                "__DEC32_MAX__=9.999999E96DF",
+                "__cpp_threadsafe_static_init=200806",
+                "__DA_IBIT__=32",
+                "__INT32_MAX__=0x7fffffffL",
+                "__UQQ_FBIT__=8",
+                "__INT_WIDTH__=16",
+                "__SIZEOF_LONG__=4",
+                "__UACCUM_MAX__=0XFFFFFFFFP-16UK",
+                "__UINT16_C(c)=c ## U",
+                "__PTRDIFF_WIDTH__=16",
+                "__DECIMAL_DIG__=9",
+                "__LFRACT_EPSILON__=0x1P-31LR",
+                "__AVR_2_BYTE_PC__=1",
+                "__ULFRACT_MIN__=0.0ULR",
+                "__INTMAX_WIDTH__=64",
+                "__has_include_next(STR)=__has_include_next__(STR)",
+                "__BUILTIN_AVR_ULLRBITS=1",
+                "__LDBL_HAS_QUIET_NAN__=1",
+                "__ULACCUM_IBIT__=32",
+                "__UACCUM_EPSILON__=0x1P-16UK",
+                "__BUILTIN_AVR_SEI=1",
+                "__GNUC__=7",
+                "__ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-48ULLK",
+                "__cpp_delegating_constructors=200604",
+                "__HQ_IBIT__=0",
+                "__BUILTIN_AVR_SWAP=1",
+                "__FLT_HAS_DENORM__=1",
+                "__SIZEOF_LONG_DOUBLE__=4",
+                "__BIGGEST_ALIGNMENT__=1",
+                "__STDC_UTF_16__=1",
+                "__UINT24_MAX__=16777215UL",
+                "__BUILTIN_AVR_NOP=1",
+                "__GNUC_STDC_INLINE__=1",
+                "__DQ_IBIT__=0",
+                "__FLT32_HAS_INFINITY__=1",
+                "__DBL_MAX__=double(3.40282347e+38L)",
+                "__ULFRACT_IBIT__=0",
+                "__cpp_raw_strings=200710",
+                "__INT_FAST32_MAX__=0x7fffffffL",
+                "__DBL_HAS_INFINITY__=1",
+                "__INT64_MAX__=0x7fffffffffffffffLL",
+                "__ACCUM_IBIT__=16",
+                "__DEC32_MIN_EXP__=(-94)",
+                "__BUILTIN_AVR_UKBITS=1",
+                "__INTPTR_WIDTH__=16",
+                "__BUILTIN_AVR_FMULSU=1",
+                "__LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK",
+                "__INT_FAST16_TYPE__=int",
+                "__LDBL_HAS_DENORM__=1",
+                "__BUILTIN_AVR_BITSK=1",
+                "__BUILTIN_AVR_BITSR=1",
+                "__cplusplus=201402L",
+                "__cpp_ref_qualifiers=200710",
+                "__DEC128_MAX__=9.999999999999999999999999999999999E6144DL",
+                "__INT_LEAST32_MAX__=0x7fffffffL",
+                "__USING_SJLJ_EXCEPTIONS__=1",
+                "__DEC32_MIN__=1E-95DF",
+                "__ACCUM_MAX__=0X7FFFFFFFP-15K",
+                "__DEPRECATED=1",
+                "__cpp_rvalue_references=200610",
+                "__DBL_MAX_EXP__=128",
+                "__USACCUM_EPSILON__=0x1P-8UHK",
+                "__WCHAR_WIDTH__=16",
+                "__FLT32_MAX__=3.40282347e+38F32",
+                "__DEC128_EPSILON__=1E-33DL",
+                "__SFRACT_MAX__=0X7FP-7HR",
+                "__FRACT_IBIT__=0",
+                "__PTRDIFF_MAX__=0x7fff",
+                "__UACCUM_MIN__=0.0UK",
+                "__UACCUM_IBIT__=16",
+                "__BUILTIN_AVR_NOPS=1",
+                "__BUILTIN_AVR_WDR=1",
+                "__FLT32_HAS_QUIET_NAN__=1",
+                "__GNUG__=7",
+                "__LONG_LONG_MAX__=0x7fffffffffffffffLL",
+                "__SIZEOF_SIZE_T__=2",
+                "__ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK",
+                "__cpp_rvalue_reference=200610",
+                "__cpp_nsdmi=200809",
+                "__SIZEOF_WINT_T__=2",
+                "__LONG_LONG_WIDTH__=64",
+                "__cpp_initializer_lists=200806",
+                "__FLT32_MAX_EXP__=128",
+                "__SA_IBIT__=16",
+                "__ULLACCUM_MIN__=0.0ULLK",
+                "__BUILTIN_AVR_ROUNDUHK=1",
+                "__BUILTIN_AVR_ROUNDUHR=1",
+                "__cpp_hex_float=201603",
+                "__GXX_ABI_VERSION=1011",
+                "__INT24_MAX__=8388607L",
+                "__UTA_FBIT__=48",
+                "__FLT_MIN_EXP__=(-125)",
+                "__USFRACT_MAX__=0XFFP-8UHR",
+                "__UFRACT_IBIT__=0",
+                "__BUILTIN_AVR_ROUNDFX=1",
+                "__BUILTIN_AVR_ROUNDULK=1",
+                "__BUILTIN_AVR_ROUNDULR=1",
+                "__cpp_lambdas=200907",
+                "__BUILTIN_AVR_COUNTLSLLK=1",
+                "__BUILTIN_AVR_COUNTLSLLR=1",
+                "__BUILTIN_AVR_ROUNDHK=1",
+                "__INT_FAST64_TYPE__=long long int",
+                "__BUILTIN_AVR_ROUNDHR=1",
+                "__DBL_MIN__=double(1.17549435e-38L)",
+                "__BUILTIN_AVR_COUNTLSK=1",
+                "__BUILTIN_AVR_ROUNDLK=1",
+                "__BUILTIN_AVR_COUNTLSR=1",
+                "__BUILTIN_AVR_ROUNDLR=1",
+                "__LACCUM_MIN__=(-0X1P31LK-0X1P31LK)",
+                "__ULLACCUM_FBIT__=48",
+                "__BUILTIN_AVR_LKBITS=1",
+                "__ULLFRACT_EPSILON__=0x1P-64ULLR",
+                "__DEC128_MIN__=1E-6143DL",
+                "__REGISTER_PREFIX__",
+                "__UINT16_MAX__=0xffffU",
+                "__DBL_HAS_DENORM__=1",
+                "__BUILTIN_AVR_ULKBITS=1",
+                "__ACCUM_MIN__=(-0X1P15K-0X1P15K)",
+                "__AVR_ARCH__=2",
+                "__SQ_IBIT__=0",
+                "__FLT32_MIN__=1.17549435e-38F32",
+                "__UINT8_TYPE__=unsigned char",
+                "__BUILTIN_AVR_ROUNDUK=1",
+                "__BUILTIN_AVR_ROUNDUR=1",
+                "__UHA_FBIT__=8",
+                "__NO_INLINE__=1",
+                "__SFRACT_MIN__=(-0.5HR-0.5HR)",
+                "__UTQ_FBIT__=128",
+                "__FLT_MANT_DIG__=24",
+                "__LDBL_DECIMAL_DIG__=9",
+                "__VERSION__=\"7.3.0\"",
+                "__UINT64_C(c)=c ## ULL",
+                "__ULLFRACT_FBIT__=64",
+                "__cpp_unicode_characters=200704",
+                "__FRACT_EPSILON__=0x1P-15R",
+                "__ULACCUM_MIN__=0.0ULK",
+                "__UDA_FBIT__=32",
+                "__cpp_decltype_auto=201304",
+                "__LLACCUM_EPSILON__=0x1P-47LLK",
+                "__GCC_ATOMIC_INT_LOCK_FREE=1",
+                "__FLT32_MANT_DIG__=24",
+                "__BUILTIN_AVR_BITSUHK=1",
+                "__BUILTIN_AVR_BITSUHR=1",
+                "__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__",
+                "__USFRACT_MIN__=0.0UHR",
+                "__BUILTIN_AVR_BITSULK=1",
+                "__ULLACCUM_IBIT__=16",
+                "__BUILTIN_AVR_BITSULR=1",
+                "__UQQ_IBIT__=0",
+                "__BUILTIN_AVR_LLRBITS=1",
+                "__SCHAR_WIDTH__=8",
+                "__BUILTIN_AVR_BITSULLK=1",
+                "__BUILTIN_AVR_BITSULLR=1",
+                "__INT32_C(c)=c ## L",
+                "__DEC64_EPSILON__=1E-15DD",
+                "__ORDER_PDP_ENDIAN__=3412",
+                "__DEC128_MIN_EXP__=(-6142)",
+                "__UHQ_FBIT__=16",
+                "__LLACCUM_FBIT__=47",
+                "__FLT32_MAX_10_EXP__=38",
+                "__BUILTIN_AVR_ROUNDULLK=1",
+                "__BUILTIN_AVR_ROUNDULLR=1",
+                "__INT_FAST32_TYPE__=long int",
+                "__BUILTIN_AVR_HRBITS=1",
+                "__UINT_LEAST16_TYPE__=unsigned int",
+                "__BUILTIN_AVR_UHRBITS=1",
+                "__INT16_MAX__=0x7fff",
+                "__SIZE_TYPE__=unsigned int",
+                "__UINT64_MAX__=0xffffffffffffffffULL",
+                "__UDQ_FBIT__=64",
+                "__INT8_TYPE__=signed char",
+                "__cpp_digit_separators=201309",
+                "__ELF__=1",
+                "__ULFRACT_EPSILON__=0x1P-32ULR",
+                "__LLFRACT_FBIT__=63",
+                "__FLT_RADIX__=2",
+                "__INT_LEAST16_TYPE__=int",
+                "__BUILTIN_AVR_ABSFX=1",
+                "__LDBL_EPSILON__=1.19209290e-7L",
+                "__UINTMAX_C(c)=c ## ULL",
+                "__INT24_MIN__=(-__INT24_MAX__-1)",
+                "__SACCUM_MAX__=0X7FFFP-7HK",
+                "__BUILTIN_AVR_ABSHR=1",
+                "__SIG_ATOMIC_MAX__=0x7f",
+                "__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1",
+                "__cpp_sized_deallocation=201309",
+                "__SIZEOF_PTRDIFF_T__=2",
+                "__AVR=1",
+                "__BUILTIN_AVR_ABSLK=1",
+                "__BUILTIN_AVR_ABSLR=1",
+                "__LACCUM_EPSILON__=0x1P-31LK",
+                "__DEC32_SUBNORMAL_MIN__=0.000001E-95DF",
+                "__INT_FAST16_MAX__=0x7fff",
+                "__UINT_FAST32_MAX__=0xffffffffUL",
+                "__UINT_LEAST64_TYPE__=long long unsigned int",
+                "__USACCUM_MAX__=0XFFFFP-8UHK",
+                "__SFRACT_EPSILON__=0x1P-7HR",
+                "__FLT_HAS_QUIET_NAN__=1",
+                "__FLT_MAX_10_EXP__=38",
+                "__LONG_MAX__=0x7fffffffL",
+                "__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL",
+                "__FLT_HAS_INFINITY__=1",
+                "__cpp_unicode_literals=200710",
+                "__USA_FBIT__=16",
+                "__UINT_FAST16_TYPE__=unsigned int",
+                "__DEC64_MAX__=9.999999999999999E384DD",
+                "__INT_FAST32_WIDTH__=32",
+                "__BUILTIN_AVR_RBITS=1",
+                "__CHAR16_TYPE__=unsigned int",
+                "__PRAGMA_REDEFINE_EXTNAME=1",
+                "__SIZE_WIDTH__=16",
+                "__INT_LEAST16_MAX__=0x7fff",
+                "__DEC64_MANT_DIG__=16",
+                "__UINT_LEAST32_MAX__=0xffffffffUL",
+                "__SACCUM_FBIT__=7",
+                "__FLT32_DENORM_MIN__=1.40129846e-45F32",
+                "__GCC_ATOMIC_LONG_LOCK_FREE=1",
+                "__SIG_ATOMIC_WIDTH__=8",
+                "__INT_LEAST64_TYPE__=long long int",
+                "__INT16_TYPE__=int",
+                "__INT_LEAST8_TYPE__=signed char",
+                "__SQ_FBIT__=31",
+                "__DEC32_MAX_EXP__=97",
+                "__INT_FAST8_MAX__=0x7f",
+                "__INTPTR_MAX__=0x7fff",
+                "__QQ_FBIT__=7",
+                "__cpp_range_based_for=200907",
+                "__UTA_IBIT__=16",
+                "__AVR_ERRATA_SKIP__=1",
+                "__FLT32_MIN_10_EXP__=(-37)",
+                "__LDBL_MANT_DIG__=24",
+                "__SFRACT_FBIT__=7",
+                "__SACCUM_MIN__=(-0X1P7HK-0X1P7HK)",
+                "__DBL_HAS_QUIET_NAN__=1",
+                "__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)",
+                "AVR=1",
+                "__BUILTIN_AVR_FMULS=1",
+                "__cpp_return_type_deduction=201304",
+                "__INTPTR_TYPE__=int",
+                "__UINT16_TYPE__=unsigned int",
+                "__WCHAR_TYPE__=int",
+                "__SIZEOF_FLOAT__=4",
+                "__AVR__=1",
+                "__BUILTIN_AVR_INSERT_BITS=1",
+                "__USQ_FBIT__=32",
+                "__UINTPTR_MAX__=0xffffU",
+                "__INT_FAST64_WIDTH__=64",
+                "__DEC64_MIN_EXP__=(-382)",
+                "__cpp_decltype=200707",
+                "__FLT32_DECIMAL_DIG__=9",
+                "__INT_FAST64_MAX__=0x7fffffffffffffffLL",
+                "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
+                "__FLT_DIG__=6",
+                "__UINT_FAST64_TYPE__=long long unsigned int",
+                "__BUILTIN_AVR_BITSHK=1",
+                "__BUILTIN_AVR_BITSHR=1",
+                "__INT_MAX__=0x7fff",
+                "__LACCUM_FBIT__=31",
+                "__USACCUM_MIN__=0.0UHK",
+                "__UHA_IBIT__=8",
+                "__INT64_TYPE__=long long int",
+                "__BUILTIN_AVR_BITSLK=1",
+                "__BUILTIN_AVR_BITSLR=1",
+                "__FLT_MAX_EXP__=128",
+                "__UTQ_IBIT__=0",
+                "__DBL_MANT_DIG__=24",
+                "__cpp_inheriting_constructors=201511",
+                "__BUILTIN_AVR_ULLKBITS=1",
+                "__INT_LEAST64_MAX__=0x7fffffffffffffffLL",
+                "__DEC64_MIN__=1E-383DD",
+                "__WINT_TYPE__=int",
+                "__UINT_LEAST32_TYPE__=long unsigned int",
+                "__SIZEOF_SHORT__=2",
+                "__ULLFRACT_IBIT__=0",
+                "__LDBL_MIN_EXP__=(-125)",
+                "__UDA_IBIT__=32",
+                "__WINT_WIDTH__=16",
+                "__INT_LEAST8_MAX__=0x7f",
+                "__LFRACT_FBIT__=31",
+                "__LDBL_MAX_10_EXP__=38",
+                "__ATOMIC_RELAXED=0",
+                "__DBL_EPSILON__=double(1.19209290e-7L)",
+                "__BUILTIN_AVR_BITSUK=1",
+                "__BUILTIN_AVR_BITSUR=1",
+                "__UINT8_C(c)=c",
+                "__INT_LEAST32_TYPE__=long int",
+                "__BUILTIN_AVR_URBITS=1",
+                "__SIZEOF_WCHAR_T__=2",
+                "__LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR",
+                "__TQ_FBIT__=127",
+                "__INT_FAST8_TYPE__=signed char",
+                "__ULLACCUM_EPSILON__=0x1P-48ULLK",
+                "__BUILTIN_AVR_ROUNDK=1",
+                "__BUILTIN_AVR_ROUNDR=1",
+                "__UHQ_IBIT__=0",
+                "__LLACCUM_IBIT__=16",
+                "__FLT32_EPSILON__=1.19209290e-7F32",
+                "__DBL_DECIMAL_DIG__=9",
+                "__STDC_UTF_32__=1",
+                "__INT_FAST8_WIDTH__=8",
+                "__DEC_EVAL_METHOD__=2",
+                "__TA_FBIT__=47",
+                "__UDQ_IBIT__=0",
+                "__ORDER_BIG_ENDIAN__=4321",
+                "__cpp_runtime_arrays=198712",
+                "__WITH_AVRLIBC__=1",
+                "__UINT64_TYPE__=long long unsigned int",
+                "__ACCUM_EPSILON__=0x1P-15K",
+                "__UINT32_C(c)=c ## UL",
+                "__BUILTIN_AVR_COUNTLSUHK=1",
+                "__INTMAX_MAX__=0x7fffffffffffffffLL",
+                "__cpp_alias_templates=200704",
+                "__BUILTIN_AVR_COUNTLSUHR=1",
+                "__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
+                "__FLT_DENORM_MIN__=1.40129846e-45F",
+                "__LLFRACT_IBIT__=0",
+                "__INT8_MAX__=0x7f",
+                "__LONG_WIDTH__=32",
+                "__UINT_FAST32_TYPE__=long unsigned int",
+                "__CHAR32_TYPE__=long unsigned int",
+                "__BUILTIN_AVR_COUNTLSULK=1",
+                "__BUILTIN_AVR_COUNTLSULR=1",
+                "__FLT_MAX__=3.40282347e+38F",
+                "__cpp_constexpr=201304",
+                "__USACCUM_FBIT__=8",
+                "__BUILTIN_AVR_COUNTLSFX=1",
+                "__INT32_TYPE__=long int",
+                "__SIZEOF_DOUBLE__=4",
+                "__FLT_MIN_10_EXP__=(-37)",
+                "__UFRACT_EPSILON__=0x1P-16UR",
+                "__INT_LEAST32_WIDTH__=32",
+                "__BUILTIN_AVR_COUNTLSHK=1",
+                "__BUILTIN_AVR_COUNTLSHR=1",
+                "__INTMAX_TYPE__=long long int",
+                "__BUILTIN_AVR_ABSLLK=1",
+                "__BUILTIN_AVR_ABSLLR=1",
+                "__DEC128_MAX_EXP__=6145",
+                "__AVR_HAVE_16BIT_SP__=1",
+                "__ATOMIC_CONSUME=1",
+                "__GNUC_MINOR__=3",
+                "__INT_FAST16_WIDTH__=16",
+                "__UINTMAX_MAX__=0xffffffffffffffffULL",
+                "__DEC32_MANT_DIG__=7",
+                "__HA_FBIT__=7",
+                "__BUILTIN_AVR_COUNTLSLK=1",
+                "__BUILTIN_AVR_COUNTLSLR=1",
+                "__BUILTIN_AVR_CLI=1",
+                "__DBL_MAX_10_EXP__=38",
+                "__LDBL_DENORM_MIN__=1.40129846e-45L",
+                "__INT16_C(c)=c",
+                "__cpp_generic_lambdas=201304",
+                "__STDC__=1",
+                "__PTRDIFF_TYPE__=int",
+                "__LLFRACT_MIN__=(-0.5LLR-0.5LLR)",
+                "__BUILTIN_AVR_LRBITS=1",
+                "__ATOMIC_SEQ_CST=5",
+                "__DA_FBIT__=31",
+                "__UINT32_TYPE__=long unsigned int",
+                "__BUILTIN_AVR_ROUNDLLK=1",
+                "__UINTPTR_TYPE__=unsigned int",
+                "__BUILTIN_AVR_ROUNDLLR=1",
+                "__USA_IBIT__=16",
+                "__BUILTIN_AVR_ULRBITS=1",
+                "__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD",
+                "__DEC128_MANT_DIG__=34",
+                "__LDBL_MIN_10_EXP__=(-37)",
+                "__BUILTIN_AVR_COUNTLSUK=1",
+                "__BUILTIN_AVR_COUNTLSUR=1",
+                "__SIZEOF_LONG_LONG__=8",
+                "__ULACCUM_EPSILON__=0x1P-32ULK",
+                "__cpp_user_defined_literals=200809",
+                "__SACCUM_IBIT__=8",
+                "__GCC_ATOMIC_LLONG_LOCK_FREE=1",
+                "__LDBL_DIG__=6",
+                "__FLT_DECIMAL_DIG__=9",
+                "__UINT_FAST16_MAX__=0xffffU",
+                "__GCC_ATOMIC_SHORT_LOCK_FREE=1",
+                "__BUILTIN_AVR_ABSHK=1",
+                "__BUILTIN_AVR_FLASH_SEGMENT=1",
+                "__INT_LEAST64_WIDTH__=64",
+                "__ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR",
+                "__UINT_FAST8_TYPE__=unsigned char",
+                "__USFRACT_EPSILON__=0x1P-8UHR",
+                "__ULACCUM_FBIT__=32",
+                "__QQ_IBIT__=0",
+                "__cpp_init_captures=201304",
+                "__ATOMIC_ACQ_REL=4",
+                "__ATOMIC_RELEASE=3",
+                "__BUILTIN_AVR_FMUL=1",
+                "USBCON"
+            ]
+        }
+    ]
+}

+ 286 - 0
Arduino/epd7in3g/epd7in3g.cpp

@@ -0,0 +1,286 @@
+/**
+ *  @filename   :   epd7in3g.cpp
+ *  @brief      :   Implements for e-paper library
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <stdlib.h>
+#include "epd7in3g.h"
+
+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;
+};
+
+int Epd::Init() {
+    /* this calls the peripheral hardware interface, see epdif */
+    if (IfInit() != 0) {
+        return -1;
+    }
+    Reset();
+    ReadBusyH();
+    DelayMs(30);
+
+    SendCommand(0xAA);
+    SendData(0x49);
+    SendData(0x55);
+    SendData(0x20);
+    SendData(0x08);
+    SendData(0x09);
+    SendData(0x18);
+
+    SendCommand(0x01);
+    SendData(0x3F);
+
+    SendCommand(0x00);
+    SendData(0x4F);
+    SendData(0x69);
+
+
+    SendCommand(0x05);
+    SendData(0x40);
+    SendData(0x1F);
+    SendData(0x1F);
+    SendData(0x2C);
+
+    SendCommand(0x08);
+    SendData(0x6F);
+    SendData(0x1F);
+    SendData(0x1F);
+    SendData(0x22);
+
+    //===================
+    //20211212
+    //First setting
+    SendCommand(0x06);
+    SendData(0x6F);
+    SendData(0x1F);
+    SendData(0x14);
+    SendData(0x14);
+    //===================
+
+    SendCommand(0x03);
+    SendData(0x00);
+    SendData(0x54);
+    SendData(0x00);
+    SendData(0x44);
+
+    SendCommand(0x60);
+    SendData(0x02);
+    SendData(0x00);
+    //Please notice that PLL must be set for version 2 IC
+    SendCommand(0x30);
+    SendData(0x08);
+
+
+
+
+    SendCommand(0x50);
+    SendData(0x3F);
+
+    SendCommand(0x61);
+    SendData(0x03);
+    SendData(0x20);
+    SendData(0x01); 
+    SendData(0xE0); 
+
+    SendCommand(0xE3);
+    SendData(0x2F);
+
+    SendCommand(0x84);
+    SendData(0x01);
+    return 0;
+}
+
+/**
+ *  @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 LOW
+ */
+void Epd::ReadBusyH(void) {
+    Serial.print("e-Paper busy H\r\n ");
+    while(DigitalRead(busy_pin) == LOW) {      //LOW: busy, HIGH: idle
+        DelayMs(5);
+    } 
+    Serial.print("e-Paper busy release H\r\n ");    
+}
+
+void Epd::ReadBusyL(void) {
+    Serial.print("e-Paper busy L\r\n ");
+    while(DigitalRead(busy_pin) == HIGH) {      //LOW: idle, HIGH: busy
+        DelayMs(5);
+    }      
+    Serial.print("e-Paper busy release L\r\n ");
+}
+
+/**
+ *  @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(2);
+    DigitalWrite(reset_pin, HIGH);
+    DelayMs(20);     
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+void Epd::TurnOnDisplay(void)
+{
+    SendCommand(0x12); // DISPLAY_REFRESH
+    SendData(0x01);
+    ReadBusyH();
+
+    SendCommand(0x02); // POWER_OFF
+    SendData(0X00);
+    ReadBusyH();
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void Epd::Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            for(UBYTE k = 0; k < 4; k++) {
+                SendData(color);
+            }
+        }
+    }
+
+    SendCommand(0x68);
+    SendData(0x00);
+
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void Epd::Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            SendData(pgm_read_byte(&Image[i + j * Width]));
+        }
+    }
+    TurnOnDisplay();
+}
+
+void Epd::Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh)
+{
+    UWORD Width, Height;
+    Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x68);
+    SendData(0x01);
+    
+    SendCommand(0x04);
+    ReadBusyH();
+
+    SendCommand(0x10);
+    for (UWORD i = 0; i < Height; i++) {
+        for (UWORD j = 0; j < Width; j++) {
+            if((j >= xstart/4) && (j < (image_width + xstart)/4) && (i >= ystart) && (i <= (ystart + image_heigh)) )
+            {
+                SendData(pgm_read_byte(&Image[(i-ystart) * image_width/4 + j - xstart/4]));
+                // Serial.print(Image[(i-ystart) * image_width/8 + j - xstart], HEX);
+                // Serial.print(" ");
+            }
+            else
+            {
+                SendData(0x55);
+            }
+        }
+    }
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void Epd::Sleep(void)
+{
+    SendCommand(0x02); // POWER_OFF
+    SendData(0X00);
+    SendCommand(0x07); // DEEP_SLEEP
+    SendData(0XA5);
+}
+
+/* END OF FILE */
+
+

+ 75 - 0
Arduino/epd7in3g/epd7in3g.h

@@ -0,0 +1,75 @@
+/**
+ *  @filename   :   epd7in3g.h
+ *  @brief      :   Header file for e-paper display library epd7in3g.cpp
+ *  @author     :   Waveshare
+ *  
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 EPD1IN64G_H
+#define EPD1IN64G_H
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH       800
+#define EPD_HEIGHT      480
+
+//colour
+#define  black   0x00 
+#define  white   0x55
+#define  yellow  0xAA
+#define  red     0xFF
+
+#define UWORD   unsigned int
+#define UBYTE   unsigned char
+#define UDOUBLE unsigned long
+
+class Epd : EpdIf {
+public:
+    unsigned long WIDTH;
+    unsigned long HEIGHT;
+
+    Epd();
+    ~Epd();
+    int  Init();
+    void SendCommand(unsigned char command);
+    void SendData(unsigned char data);
+    void Reset(void);
+    void ReadBusyH(void);
+    void ReadBusyL(void);
+    void TurnOnDisplay(void);
+    void Clear(UBYTE color);
+    void Display(UBYTE *Image);
+    void Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_heigh);
+    void Sleep(void);
+
+
+private:
+    unsigned int reset_pin;
+    unsigned int dc_pin;
+    unsigned int cs_pin;
+    unsigned int busy_pin;
+};
+
+#endif /* EPD1IN54_H */
+
+/* END OF FILE */

+ 60 - 0
Arduino/epd7in3g/epd7in3g.ino

@@ -0,0 +1,60 @@
+/**
+ *  @filename   :   epd7in3g-demo.ino
+ *  @brief      :   7.3inch e-paper (G) display demo
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare    2022/7/22
+ *
+ * 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 <SPI.h>
+#include "epd7in3g.h"
+#include "imagedata.h"
+
+Epd epd;
+
+void setup() {
+  // put your setup code here, to run once:
+  Serial.begin(115200);
+  Serial.print("e-Paper init ");
+  if (epd.Init() != 0) {
+      Serial.print("e-Paper init failed");
+      return;
+  }
+
+  Serial.print("While \r\n");
+  epd.Clear(white); // While
+  delay(2000);
+
+  epd.Display_part(IMAGE_DATA, 312, 162, 168, 168);
+  delay(2000);
+
+  Serial.print("Clear...\r\n");
+  epd.Clear(white);
+  delay(2000);
+
+  Serial.print("Goto Sleep...\r\n");
+  epd.Sleep();
+  
+}
+
+void loop() {
+
+}

+ 64 - 0
Arduino/epd7in3g/epdif.cpp

@@ -0,0 +1,64 @@
+/**
+ *  @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 <spi.h>
+
+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); 
+
+    SPI.begin();
+    SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+    return 0;
+}

+ 51 - 0
Arduino/epd7in3g/epdif.h

@@ -0,0 +1,51 @@
+/**
+ *  @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 <arduino.h>
+
+// Pin definition
+#define RST_PIN         8
+#define DC_PIN          9
+#define CS_PIN          10
+#define BUSY_PIN        7
+
+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

+ 471 - 0
Arduino/epd7in3g/imagedata.cpp

@@ -0,0 +1,471 @@
+/**
+ *  @filename   :   imagedata.cpp
+ *  @brief      :   data file for epd demo
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 <avr/pgmspace.h>
+
+const unsigned char IMAGE_DATA[] PROGMEM = {
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x40,0x00,0x00,0x45,0x55,0x55,0x55,0x40,0x00,
+0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x01,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,
+0x54,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x50,0x00,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x01,0x15,0x55,0x55,0x10,0x00,0x00,0x00,
+0x01,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,
+0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x50,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x41,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x01,0x55,0x55,
+0x56,0x6A,0xAA,0xAA,0x65,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
+0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x00,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x40,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x5A,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x05,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x5A,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x40,0x01,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x56,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x00,0x05,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,
+0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
+0x00,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x56,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0x95,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x01,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x55,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x01,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
+0x00,0x00,0x15,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x01,0x55,0x55,0x6A,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x15,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xA5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x04,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x01,0x55,
+0x55,0xD5,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x55,0x5F,0xF5,0x56,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x40,0x00,0x55,0x55,0xFF,0xFD,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xA5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x5F,0xFF,0xFD,
+0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x51,0x55,0x55,0x00,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x54,0x00,0x05,0x55,0xFF,0xFF,0xFF,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x50,0x00,0x05,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,
+0x57,0xFF,0xFF,0xFF,0xD5,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x55,0x54,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x55,0x5F,0xFF,0xFF,0xFF,0xF5,0x55,
+0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x05,0x55,0x00,0x05,0x55,0x55,0x55,0x55,
+0x55,0x00,0x01,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,
+0x00,0x00,0x01,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x54,0x00,0x05,0x57,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x55,0x40,0x01,
+0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x5A,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x15,0x50,0x00,0x55,0x55,0x55,0x55,0x40,0x00,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,
+0x00,0x05,0x54,0x00,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xF5,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x05,0x54,0x00,0x15,0x55,
+0x55,0x55,0x00,0x05,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x5A,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x00,0x15,0x55,0x55,0x54,0x00,0x15,0x57,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+0x55,0x00,0x15,0x55,0x55,0x54,0x00,0x15,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xF5,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x05,0x55,0x55,0x50,
+0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x6A,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x15,0x40,0x05,0x55,0x55,0x50,0x01,0x55,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x40,
+0x05,0x55,0x55,0x40,0x01,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xD5,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x40,0x01,0x55,0x55,0x40,0x05,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x6A,0xAA,0xAA,0xAA,
+0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x05,0x50,0x01,0x55,0x55,0x00,0x05,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x01,0x55,
+0x55,0x00,0x15,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x56,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x01,0x55,0x54,0x00,0x15,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x05,0x50,0x01,0x55,0x54,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFD,0x55,0x6A,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x54,0x00,
+0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5A,
+0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x54,0x00,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x56,0xAA,0xAA,0xAA,0xA9,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,
+0x00,0x55,0x50,0x01,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xF5,0x55,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,0x57,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x6A,0xAA,
+0xAA,0xAA,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5A,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,
+0x50,0x01,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x56,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,0x57,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0xAA,0xAA,0xA9,
+0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x01,0x54,0x00,0x55,0x50,0x01,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x55,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,
+0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x6A,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5A,0xAA,0xA9,0x55,0x55,
+0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,
+0x00,0x55,0x50,0x01,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xF5,0x56,0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,0x57,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,
+0xAA,0xA9,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x01,0x54,0x00,0x55,0x50,0x01,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0xAA,0xA5,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,
+0x54,0x00,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x6A,0xA5,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x55,0x54,0x00,0x55,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x5A,0xA5,
+0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x01,0x54,0x00,0x55,0x54,0x00,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x56,0xA5,0x55,0x55,0x55,0x55,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x01,0x55,0x54,0x00,
+0x15,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xF5,0x55,0xA5,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x05,0x54,0x00,0x55,0x55,0x00,0x15,0x5F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,
+0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,
+0x01,0x55,0x55,0x00,0x05,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDD,0x55,0x55,0x55,
+0x55,0x55,0x55,0x5F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x01,0x55,0x55,0x00,0x05,0x55,
+0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x05,0x50,0x01,0x55,0x55,0x40,0x01,0x55,0x5F,0xFF,0xFF,0xF5,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x40,0x05,0x55,
+0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x50,0x01,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x40,0x05,0x55,0x55,0x50,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x40,0x01,
+0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x15,0x40,0x05,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x55,0x50,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x40,0x05,0x55,0x55,0x54,
+0x00,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x00,0x00,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x55,0x00,0x15,0x55,0x55,0x54,0x00,0x55,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x55,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x00,
+0x15,0x55,0x55,0x50,0x00,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x15,0x55,0x55,0x50,0x01,0x55,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,
+0x40,0x00,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x05,0x54,0x00,0x05,0x55,0x55,0x50,0x01,0x54,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x40,0x05,0x55,0x40,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x00,0x01,0x55,
+0x55,0x50,0x01,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x40,0x01,0x55,0x55,0x40,0x05,0x54,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
+0x55,0x50,0x00,0x55,0x55,0x40,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0xD5,0x54,0x00,0x55,0x55,0x40,
+0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,
+0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x05,0x55,0xF5,0x54,0x00,0x15,0x55,0x40,0x05,0x50,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x5A,0x55,0x5F,0xD5,
+0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x57,0xFD,0x55,
+0x00,0x15,0x55,0x40,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x55,0x55,0x55,0x55,0x5A,0x95,0x5F,0xFF,0x55,0x55,0x55,0x54,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x5F,0xFF,0x55,0x00,0x15,0x55,0x00,0x15,0x50,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,
+0x5A,0xA5,0x57,0xFF,0xFF,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x15,
+0x55,0x7F,0xFF,0x55,0x00,0x15,0x55,0x40,0x05,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x5A,0xA9,0x55,0xFF,0xFF,0xFD,
+0x55,0x55,0x55,0x55,0x51,0x00,0x00,0x00,0x05,0x55,0x55,0xFF,0xFF,0x55,0x40,0x05,
+0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,
+0x55,0x55,0x55,0x55,0x5A,0xAA,0x55,0x7F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0x95,0x5F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,
+0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,
+0x55,0x55,0x6A,0xAA,0xA5,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,
+0x5F,0xFF,0xFF,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xA9,0x55,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,
+0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x15,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x6A,0xAA,0xAA,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0x95,0x57,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x40,0x05,
+0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,
+0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xA5,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,
+0xAA,0xA9,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xD5,0x40,0x05,0x55,0x00,0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0x55,0x5F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x40,0x05,0x55,0x00,
+0x15,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x6A,0xAA,0xAA,0xAA,0x95,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x00,0x15,0x55,0x40,0x05,0x50,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,
+0xA5,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x00,0x15,0x55,0x00,0x15,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xA9,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x00,0x15,0x55,0x40,0x05,0x50,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x6A,0xAA,0xAA,0xAA,0xAA,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFD,0x54,0x00,0x15,0x55,0x40,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0x95,
+0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x54,0x00,0x55,
+0x55,0x40,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x54,0x00,0x55,0x55,0x40,0x05,0x54,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,
+0xAA,0xAA,0xAA,0xA9,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xD5,0x50,0x00,0x55,0x55,0x50,0x01,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x57,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x01,0x55,0x55,0x50,
+0x01,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x40,0x01,0x55,0x55,0x50,0x01,0x55,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xA9,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x00,
+0x05,0x55,0x55,0x50,0x00,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x5F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x00,0x05,0x55,0x55,0x54,0x00,0x55,
+0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xF5,0x54,0x00,0x15,0x55,0x55,0x54,0x00,0x55,0x40,0x00,0x00,0x00,0x00,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xA5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x50,0x00,0x55,0x55,
+0x55,0x54,0x00,0x15,0x50,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x5F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x00,0x05,0x50,0x00,
+0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,
+0x40,0x01,0x55,0x55,0x55,0x55,0x00,0x05,0x54,0x00,0x00,0x00,0x00,0x00,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xA5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x00,0x05,0x55,0x55,0x55,0x55,
+0x40,0x01,0x55,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x57,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xD5,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x40,0x00,0x00,
+0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x6A,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x50,0x00,0x15,
+0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x50,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFD,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x54,0x00,
+0x15,0x55,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x57,0xFF,0xFF,0xFF,0xD5,
+0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x01,0x55,0x50,0x00,0x05,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0xFF,0xFF,0xFF,0x55,0x54,0x00,0x05,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,
+0x7F,0xFF,0xFD,0x55,0x40,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x15,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x7F,0xFF,0xD5,0x55,0x00,0x00,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0x95,0x5F,0xFD,0x55,0x54,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x57,0xD5,
+0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x54,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xA9,0x55,0x55,0x50,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x54,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x00,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x05,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x50,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x56,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0x95,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x56,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x40,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x00,
+0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0x55,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x05,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,
+0x54,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x54,0x00,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0x95,0x50,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x55,0x40,0x01,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xA9,0x55,0x40,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x01,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xA5,0x55,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x54,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xAA,0xAA,0xAA,0xAA,0xAA,
+0xAA,0xAA,0xAA,0xA9,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x01,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x95,0x55,0x40,
+0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x6A,0xAA,0xAA,0xAA,0xAA,0xAA,0xA5,0x55,0x54,0x00,0x01,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,
+0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5A,0xAA,0xAA,0xAA,0xA5,
+0x55,0x55,0x50,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x41,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x05,
+0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,
+0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x50,
+0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x44,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x15,
+0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x40,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x40,0x00,0x00,0x00,0x00,0x00,
+0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,
+0x00,0x01,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x00,0x00,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+};

+ 30 - 0
Arduino/epd7in3g/imagedata.h

@@ -0,0 +1,30 @@
+/**
+ *  @filename   :   imagedata.h
+ *  @brief      :   head file for imagedata.cpp
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 */
+
+

+ 169 - 0
RaspberryPi_JetsonNano/c/examples/EPD_1in64g_test.c

@@ -0,0 +1,169 @@
+/*****************************************************************************
+* | File      	:   EPD_1in64g_test.c
+* | Author      :   Waveshare team
+* | Function    :   1.64inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 "EPD_Test.h"
+#include "EPD_1in64g.h"
+#include "time.h"
+
+int EPD_1in64g_test(void)
+{
+    printf("EPD_1IN64G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_1IN64G_Init();
+
+    printf("Black \r\n");
+	struct timespec start={0,0}, finish={0,0}; 
+    clock_gettime(CLOCK_REALTIME, &start);
+    EPD_1IN64G_Clear(EPD_1IN64G_WHITE); // While
+    clock_gettime(CLOCK_REALTIME, &finish);
+    printf("%ld S\r\n", finish.tv_sec-start.tv_sec);	
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    UWORD Imagesize = ((EPD_1IN64G_WIDTH % 4 == 0)? (EPD_1IN64G_WIDTH / 4 ): (EPD_1IN64G_WIDTH / 4 + 1)) * EPD_1IN64G_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_1IN64G_WIDTH, EPD_1IN64G_HEIGHT, 0, EPD_1IN64G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show bmp
+    printf("show BMP-----------------\r\n");
+    Paint_SelectImage(BlackImage);
+    GUI_ReadBmp_RGB_4Color("./pic/1.64inch-2.bmp", 0, 0);
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+
+#endif        
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, Red_4Color, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, Yellow_4Color, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, Black_4Color, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, Yellow_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black_4Color", &Font16, Red_4Color, Yellow_4Color);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, Yellow_4Color, Black_4Color);
+    Paint_DrawString_CN(10, 125, "΢ѩ����", &Font24CN, Red_4Color, White_4Color);
+    Paint_DrawNum(10, 50, 123456, &Font12, Red_4Color, White_4Color);
+
+    printf("EPD_Display\r\n");
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawRectangle(1, 1, 168, 55, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, 112, 167, 167, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(59, 1, 109, 167, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    printf("EPD_Display\r\n");
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    int wNumber, lNumber;
+    wNumber = (EPD_1IN64G_WIDTH/80)==0 ? (EPD_1IN64G_WIDTH/80) : (EPD_1IN64G_WIDTH/80)+1;
+    lNumber = (EPD_1IN64G_HEIGHT/20)==0 ? (EPD_1IN64G_HEIGHT/20) : (EPD_1IN64G_HEIGHT/20)+1;
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    for(int j=0; j<lNumber; j++) {
+        if(j%2 == 0) {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+        else {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+    }
+
+    printf("EPD_Display\r\n");
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_1IN64G_Clear(EPD_1IN64G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_1IN64G_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    
+    return 0;
+}
+

+ 175 - 0
RaspberryPi_JetsonNano/c/examples/EPD_3in0g_test.c

@@ -0,0 +1,175 @@
+/*****************************************************************************
+* | File      	:   EPD_3in0g_test.c
+* | Author      :   Waveshare team
+* | Function    :   3inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-15
+* | 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 "EPD_Test.h"
+#include "EPD_3in0g.h"
+#include "time.h"
+
+int EPD_3in0g_test(void)
+{
+    printf("EPD_3IN0G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_3IN0G_Init();
+
+    printf("Black \r\n");
+	struct timespec start={0,0}, finish={0,0}; 
+    clock_gettime(CLOCK_REALTIME, &start);
+    EPD_3IN0G_Clear(EPD_3IN0G_WHITE); // White
+    clock_gettime(CLOCK_REALTIME, &finish);
+    printf("%ld S\r\n", finish.tv_sec-start.tv_sec);	
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    UWORD Imagesize = ((EPD_3IN0G_WIDTH % 4 == 0)? (EPD_3IN0G_WIDTH / 4 ): (EPD_3IN0G_WIDTH / 4 + 1)) * EPD_3IN0G_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_3IN0G_WIDTH, EPD_3IN0G_HEIGHT, 0, EPD_3IN0G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show bmp
+
+    printf("show BMP-----------------\r\n");
+    EPD_3IN0G_Init();
+    Paint_SelectImage(BlackImage);
+    GUI_ReadBmp_RGB_4Color("./pic/3inch-3.bmp", 0, 0);
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    EPD_3IN0G_Init();
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, Red_4Color, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, Yellow_4Color, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, Black_4Color, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, Yellow_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, Red_4Color, Yellow_4Color);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, Yellow_4Color, Black_4Color);
+    Paint_DrawString_CN(10, 125, "΢ѩ����", &Font24CN, Red_4Color, White_4Color);
+    Paint_DrawNum(10, 50, 123456, &Font12, Red_4Color, White_4Color);
+
+    printf("EPD_Display\r\n");
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    EPD_3IN0G_Init();
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawRectangle(1, 1, 167, 86, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, 314, 167, 399, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(59, 1, 109, 399, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    printf("EPD_Display\r\n");
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    EPD_3IN0G_Init();
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    int wNumber, lNumber;
+    wNumber = (EPD_3IN0G_WIDTH/80)==0 ? (EPD_3IN0G_WIDTH/80) : (EPD_3IN0G_WIDTH/80)+1;
+    lNumber = (EPD_3IN0G_HEIGHT/20)==0 ? (EPD_3IN0G_HEIGHT/20) : (EPD_3IN0G_HEIGHT/20)+1;
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    for(int j=0; j<lNumber; j++) {
+        if(j%2 == 0) {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+        else {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+    }
+
+    printf("EPD_Display\r\n");
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    EPD_3IN0G_Init();
+    printf("Clear...\r\n");
+    EPD_3IN0G_Clear(EPD_3IN0G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_3IN0G_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    
+    return 0;
+}
+

+ 151 - 0
RaspberryPi_JetsonNano/c/examples/EPD_3in52_test.c

@@ -0,0 +1,151 @@
+/*****************************************************************************
+* | File      	:   EPD_3IN52_test.c
+* | Author      :   Waveshare team
+* | Function    :   3.52inch e-paper test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2020-07-16
+* | 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 "EPD_Test.h"
+#include "EPD_3in52.h"
+#include <time.h> 
+
+int EPD_3in52_test(void)
+{
+    printf("EPD_3IN52_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+	EPD_3IN52_Init();
+
+    struct timespec start={0,0}, finish={0,0}; 
+    clock_gettime(CLOCK_REALTIME,&start);
+    EPD_3IN52_display_NUM(EPD_3IN52_WHITE);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+    clock_gettime(CLOCK_REALTIME,&finish);
+    printf("%ld S\r\n",finish.tv_sec-start.tv_sec);
+
+    EPD_3IN52_SendCommand(0x50);
+    EPD_3IN52_SendData(0x17);
+
+    DEV_Delay_ms(500);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    UWORD Imagesize = ((EPD_3IN52_WIDTH % 8 == 0)? (EPD_3IN52_WIDTH / 8 ): (EPD_3IN52_WIDTH / 8 + 1)) * EPD_3IN52_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_3IN52_WIDTH, EPD_3IN52_HEIGHT, 270, WHITE);
+    Paint_Clear(WHITE);
+    
+#if 1   // GC waveform refresh 
+    Paint_SelectImage(BlackImage);
+
+    Paint_Clear(WHITE);
+    GUI_ReadBmp("./pic/3in52-1.bmp", 0, 0);
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+
+    Paint_Clear(WHITE);
+    GUI_ReadBmp("./pic/3in52-2.bmp", 0, 0);
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+
+#endif
+
+#if 0  //DU waveform refresh
+    printf("Quick refresh is supported, but the refresh effect is not good, but it is not recommended\r\n");
+    Paint_SelectImage(BlackImage);
+
+    Paint_Clear(WHITE);
+    GUI_ReadBmp("./pic/3in52-3.bmp", 0, 0);
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_DU();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+
+    Paint_Clear(WHITE);
+    GUI_ReadBmp("./pic/3in52-4.bmp", 0, 0);
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_DU();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+
+#endif
+
+#if 1 
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
+    Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
+    Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
+    printf("EPD_Display\r\n");
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_3IN52_Clear();
+    
+    // Sleep & close 5V
+    printf("Goto Sleep...\r\n");
+    EPD_3IN52_sleep();
+
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+
+    return 0;
+}
+

+ 178 - 0
RaspberryPi_JetsonNano/c/examples/EPD_7in3g_test.c

@@ -0,0 +1,178 @@
+/*****************************************************************************
+* | File      	:   EPD_7in3g_test.c
+* | Author      :   Waveshare team
+* | Function    :   7.3inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 "EPD_Test.h"
+#include "EPD_7in3g.h"
+#include "time.h"
+
+int EPD_7in3g_test(void)
+{
+    printf("EPD_7IN3G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_7IN3G_Init();
+
+    printf("Black \r\n");
+	struct timespec start={0,0}, finish={0,0}; 
+    clock_gettime(CLOCK_REALTIME, &start);
+    EPD_7IN3G_Clear(EPD_7IN3G_WHITE); // WHITE
+    clock_gettime(CLOCK_REALTIME, &finish);
+    printf("%ld S\r\n", finish.tv_sec-start.tv_sec);	
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    UDOUBLE Imagesize = ((EPD_7IN3G_WIDTH % 4 == 0)? (EPD_7IN3G_WIDTH / 4 ): (EPD_7IN3G_WIDTH / 4 + 1)) * EPD_7IN3G_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_7IN3G_WIDTH, EPD_7IN3G_HEIGHT, 0, EPD_7IN3G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show bmp
+
+    printf("show BMP-----------------\r\n");
+    Paint_SelectImage(BlackImage);
+    GUI_ReadBmp_RGB_4Color("./pic/7.3inch-1.bmp", 0, 0);
+    EPD_7IN3G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+
+#endif   
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, Red_4Color, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, Yellow_4Color, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, Black_4Color, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, Yellow_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, Red_4Color, Yellow_4Color);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, Yellow_4Color, Black_4Color);
+    Paint_DrawString_CN(10, 125, "΢ѩ����", &Font24CN, Red_4Color, White_4Color);
+    Paint_DrawNum(10, 50, 123456, &Font12, Red_4Color, White_4Color);
+
+    printf("EPD_Display\r\n");
+    EPD_7IN3G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    // Paint_DrawRectangle(1, 1, 121, 368, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    // Paint_DrawRectangle(392, 1, 512, 368, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    // Paint_DrawRectangle(1, 112, 512, 256, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    UBYTE iWidth = EPD_7IN3G_WIDTH/8;
+    UBYTE iHeight = EPD_7IN3G_HEIGHT/8;
+    for(UBYTE i=0; i<8; i++) {
+        if(i%2 == 0)
+            Paint_DrawRectangle(1, 1+(i*iHeight), 800, (i+1)*iHeight, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+        else
+            Paint_DrawRectangle(1+(i*iWidth), 1, (i+1)*iWidth, 480, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    }
+
+    printf("EPD_Display\r\n");
+    EPD_7IN3G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    int wNumber, lNumber;
+    wNumber = (EPD_7IN3G_WIDTH/80)==0 ? (EPD_7IN3G_WIDTH/80) : (EPD_7IN3G_WIDTH/80)+1;
+    lNumber = (EPD_7IN3G_HEIGHT/20)==0 ? (EPD_7IN3G_HEIGHT/20) : (EPD_7IN3G_HEIGHT/20)+1;
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    for(int j=0; j<lNumber; j++) {
+        if(j%2 == 0) {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+        else {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+    }
+
+    printf("EPD_Display\r\n");
+    EPD_7IN3G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_7IN3G_Clear(EPD_7IN3G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_7IN3G_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    
+    return 0;
+}
+

+ 9 - 3
RaspberryPi_JetsonNano/c/examples/EPD_Test.h

@@ -1,11 +1,11 @@
 /*****************************************************************************
-* | File      	:	  EPD_Test.h
+* | File      	:	EPD_Test.h
 * | Author      :   Waveshare team
 * | Function    :   e-Paper test Demo
 * | Info        :
 *----------------
-* |	This version:   V1.0
-* | Date        :   2019-06-11
+* |	This version:   V1.1
+* | Date        :   2022-07-28
 * | Info        :   
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -37,6 +37,10 @@
 #include "Debug.h"
 #include <stdlib.h> // malloc() free()
 
+int EPD_1in64g_test(void);
+int EPD_3in0g_test(void);
+int EPD_7in3g_test(void);
+
 int EPD_1in54_DES_test(void);
 int EPD_2in13_DES_test(void);
 int EPD_2in9_DES_test(void);
@@ -70,6 +74,8 @@ int EPD_2in13b_V3_test(void);
 int EPD_2in13b_V4_test(void);
 int EPD_2in13d_test(void);
 
+int EPD_3in52_test(void);
+
 int EPD_3in7_test(void);
 
 int EPD_4in01f_test(void);

+ 5 - 0
RaspberryPi_JetsonNano/c/examples/main.c

@@ -16,6 +16,10 @@ int main(void)
     // Exception handling:ctrl + c
     signal(SIGINT, Handler);
 	
+    // EPD_1in64g_test();
+    // EPD_3in0g_test();
+    // EPD_7in3g_test();
+
 	// EPD_1in54_DES_test();
 	// EPD_2in13_DES_test();
 	// EPD_2in9_DES_test();
@@ -50,6 +54,7 @@ int main(void)
 	// EPD_2in13b_V4_test();
     // EPD_2in13d_test();
 
+    // EPD_3in52_test();
     // EPD_3in7_test();
 
 	// EPD_4in01f_test();

+ 77 - 3
RaspberryPi_JetsonNano/c/lib/GUI/GUI_BMPfile.c

@@ -6,10 +6,12 @@
 *                Used to shield the underlying layers of each master
 *                and enhance portability
 *----------------
-* |	This version:   V2.2
-* | Date        :   2020-07-08
+* |	This version:   V2.3
+* | Date        :   2022-07-27
 * | Info        :   
 * -----------------------------------------------------------------------------
+* V2.3(2022-07-27):
+* 1.Add GUI_ReadBmp_RGB_4Color()
 * V2.2(2020-07-08):
 * 1.Add GUI_ReadBmp_RGB_7Color()
 * V2.1(2019-10-10):
@@ -149,7 +151,7 @@ UBYTE GUI_ReadBmp_4Gray(const char *path, UWORD Xstart, UWORD Ystart)
         Debug("Cann't open the file!\n");
         exit(0);
     }
-
+ 
     // Set the file pointer from the beginning
     fseek(fp, 0, SEEK_SET);
     fread(&bmpFileHeader, sizeof(BMPFILEHEADER), 1, fp);    //sizeof(BMPFILEHEADER) must be 14
@@ -283,4 +285,76 @@ UBYTE GUI_ReadBmp_RGB_7Color(const char *path, UWORD Xstart, UWORD Ystart)
     return 0;
 }
 
+UBYTE GUI_ReadBmp_RGB_4Color(const char *path, UWORD Xstart, UWORD Ystart)
+{
+    FILE *fp;                     //Define a file pointer
+    BMPFILEHEADER bmpFileHeader;  //Define a bmp file header structure
+    BMPINFOHEADER bmpInfoHeader;  //Define a bmp info header structure
+    
+    // Binary file open
+    if((fp = fopen(path, "rb")) == NULL) {
+        Debug("Cann't open the file!\n");
+        exit(0);
+    }
+
+    // Set the file pointer from the beginning
+    fseek(fp, 0, SEEK_SET);
+    fread(&bmpFileHeader, sizeof(BMPFILEHEADER), 1, fp);    //sizeof(BMPFILEHEADER) must be 14
+    fread(&bmpInfoHeader, sizeof(BMPINFOHEADER), 1, fp);    //sizeof(BMPFILEHEADER) must be 50
+    printf("pixel = %d * %d\r\n", bmpInfoHeader.biWidth, bmpInfoHeader.biHeight);
+	
+    UDOUBLE Image_Byte = bmpInfoHeader.biWidth * bmpInfoHeader.biHeight * 3;
+    UBYTE Image[Image_Byte];
+    memset(Image, 0xFF, Image_Byte);
+
+    // Determine if it is a monochrome bitmap
+    int readbyte = bmpInfoHeader.biBitCount;
+    if(readbyte != 24){
+        Debug("Bmp image is not 24 bitmap!\n");
+        exit(0);
+    }
+    // Read image data into the cache
+    UWORD x, y;
+    UBYTE Rdata[3];
+    fseek(fp, bmpFileHeader.bOffset, SEEK_SET);
+    
+    for(y = 0; y < bmpInfoHeader.biHeight; y++) {//Total display column
+        for(x = 0; x < bmpInfoHeader.biWidth ; x++) {//Show a line in the line
+            if(fread((char *)Rdata, 1, 1, fp) != 1) {
+                perror("get bmpdata:\r\n");
+                break;
+            }
+			if(fread((char *)Rdata+1, 1, 1, fp) != 1) {
+                perror("get bmpdata:\r\n");
+                break;
+            }
+			if(fread((char *)Rdata+2, 1, 1, fp) != 1) {
+                perror("get bmpdata:\r\n");
+                break;
+            }
+			if(Rdata[0] < 128 && Rdata[1] < 128 && Rdata[2] < 128){
+				Image[x+(y* bmpInfoHeader.biWidth )] =  0;//Black
+			}else if(Rdata[0] > 127 && Rdata[1] > 127 && Rdata[2] > 127){
+				Image[x+(y* bmpInfoHeader.biWidth )] =  1;//White
+			}else if(Rdata[0] < 128 && Rdata[1] > 127 && Rdata[2] > 127){
+				Image[x+(y* bmpInfoHeader.biWidth )] =  2;//Yellow
+			}else if(Rdata[0] < 128 && Rdata[1] < 128 && Rdata[2] > 127){
+				Image[x+(y* bmpInfoHeader.biWidth )] =  3;//Red
+			}
+        }
+    }
+    fclose(fp);
+   
+    // Refresh the image to the display buffer based on the displayed orientation
+    for(y = 0; y < bmpInfoHeader.biHeight; y++) {
+        for(x = 0; x < bmpInfoHeader.biWidth; x++) {
+            if(x > Paint.Width || y > Paint.Height) {
+                break;
+            }
+            Paint_SetPixel(Xstart + x, Ystart + y, Image[bmpInfoHeader.biHeight *  bmpInfoHeader.biWidth - 1 -(bmpInfoHeader.biWidth-x-1+(y* bmpInfoHeader.biWidth))]);
+		}
+    }
+    return 0;
+}
+
 

+ 5 - 2
RaspberryPi_JetsonNano/c/lib/GUI/GUI_BMPfile.h

@@ -6,10 +6,12 @@
 *                Used to shield the underlying layers of each master
 *                and enhance portability
 *----------------
-* |	This version:   V2.2
-* | Date        :   2020-07-08
+* |	This version:   V2.3
+* | Date        :   2020-07-27
 * | Info        :   
 * -----------------------------------------------------------------------------
+* V2.3(2022-07-27):
+* 1.Add GUI_ReadBmp_RGB_4Color()
 * V2.2(2020-07-08):
 * 1.Add GUI_ReadBmp_RGB_7Color()
 * V2.1(2019-10-10):
@@ -85,5 +87,6 @@ typedef struct RGB_QUAD {
 
 UBYTE GUI_ReadBmp(const char *path, UWORD Xstart, UWORD Ystart);
 UBYTE GUI_ReadBmp_4Gray(const char *path, UWORD Xstart, UWORD Ystart);
+UBYTE GUI_ReadBmp_RGB_4Color(const char *path, UWORD Xstart, UWORD Ystart);
 UBYTE GUI_ReadBmp_RGB_7Color(const char *path, UWORD Xstart, UWORD Ystart);
 #endif

+ 8 - 0
RaspberryPi_JetsonNano/c/lib/GUI/GUI_Paint.h

@@ -126,6 +126,14 @@ typedef enum {
 #define  GRAY2 0x02
 #define  GRAY3 0x01 //gray
 #define  GRAY4 0x00 //white
+
+//colour
+#define  Black_4Color   0x00 
+#define  White_4Color   0x01
+#define  Yellow_4Color  0x02
+#define  Red_4Color     0x03
+
+
 /**
  * The size of the point
 **/

+ 238 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in64g.c

@@ -0,0 +1,238 @@
+/*****************************************************************************
+* | File      	:   EPD_1in64_g.c
+* | Author      :   Waveshare team
+* | Function    :   1.64inch e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 "EPD_1in64g.h"
+#include "Debug.h"
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+static void EPD_1IN64G_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(1);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+static void EPD_1IN64G_SendCommand(UBYTE Reg)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 0);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Reg);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	send data
+parameter:
+    Data : Write data
+******************************************************************************/
+static void EPD_1IN64G_SendData(UBYTE Data)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 1);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Data);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	Wait until the busy_pin goes LOW
+parameter:
+******************************************************************************/
+static void EPD_1IN64G_ReadBusyH(void)
+{
+    Debug("e-Paper busy H\r\n");
+    while(!DEV_Digital_Read(EPD_BUSY_PIN)) {      //LOW: idle, HIGH: busy
+        DEV_Delay_ms(5);
+    }
+    Debug("e-Paper busy H release\r\n");
+}
+static void EPD_1IN64G_ReadBusyL(void)
+{
+    Debug("e-Paper busy L\r\n");
+    while(DEV_Digital_Read(EPD_BUSY_PIN)) {      //LOW: idle, HIGH: busy
+        DEV_Delay_ms(5);
+    }
+    Debug("e-Paper busy L release\r\n");
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+static void EPD_1IN64G_TurnOnDisplay(void)
+{
+    EPD_1IN64G_SendCommand(0x12); // DISPLAY_REFRESH
+    EPD_1IN64G_SendData(0x01);
+    EPD_1IN64G_ReadBusyH();
+
+    EPD_1IN64G_SendCommand(0x02); // POWER_OFF
+    EPD_1IN64G_SendData(0X00);
+    EPD_1IN64G_ReadBusyH();
+}
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_1IN64G_Init(void)
+{
+    EPD_1IN64G_Reset();
+
+    EPD_1IN64G_SendCommand(0x66);
+    EPD_1IN64G_SendData(0x49);
+    EPD_1IN64G_SendData(0x55);
+    EPD_1IN64G_SendData(0x13);
+    EPD_1IN64G_SendData(0x5D);
+
+    EPD_1IN64G_SendCommand(0x66);
+    EPD_1IN64G_SendData(0x49);
+    EPD_1IN64G_SendData(0x55);
+
+    EPD_1IN64G_SendCommand(0xB0);
+    EPD_1IN64G_SendData(0x03);//1 boost 20211113
+
+
+    EPD_1IN64G_SendCommand(0x00);
+    EPD_1IN64G_SendData(0x4F);
+    EPD_1IN64G_SendData(0x6B);
+
+    EPD_1IN64G_SendCommand(0x03);
+    EPD_1IN64G_SendData(0x00);
+
+    EPD_1IN64G_SendCommand(0xF0);
+    EPD_1IN64G_SendData(0xF6);
+    EPD_1IN64G_SendData(0x0D);
+    EPD_1IN64G_SendData(0x00);
+    EPD_1IN64G_SendData(0x00);
+    EPD_1IN64G_SendData(0x00);
+
+    //20220303
+    EPD_1IN64G_SendCommand(0x06);
+    EPD_1IN64G_SendData(0xCF);
+    EPD_1IN64G_SendData(0xDF);
+    EPD_1IN64G_SendData(0x0F);
+
+    EPD_1IN64G_SendCommand(0x41);
+    EPD_1IN64G_SendData(0x00);
+
+    EPD_1IN64G_SendCommand(0x50);
+    EPD_1IN64G_SendData(0x30);
+
+    EPD_1IN64G_SendCommand(0x60);
+    EPD_1IN64G_SendData(0x0C); 
+    EPD_1IN64G_SendData(0x05);
+
+    EPD_1IN64G_SendCommand(0x61);
+    EPD_1IN64G_SendData(0xA8);
+    EPD_1IN64G_SendData(0x00); 
+    EPD_1IN64G_SendData(0xA8); 
+
+    EPD_1IN64G_SendCommand(0x84);
+    EPD_1IN64G_SendData(0x01);
+
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_1IN64G_Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = (EPD_1IN64G_WIDTH % 4 == 0)? (EPD_1IN64G_WIDTH / 4 ): (EPD_1IN64G_WIDTH / 4 + 1);
+    Height = EPD_1IN64G_HEIGHT;
+
+    EPD_1IN64G_SendCommand(0x68);
+    EPD_1IN64G_SendData(0x01);
+    
+    EPD_1IN64G_SendCommand(0x04);
+    EPD_1IN64G_ReadBusyH();
+
+    EPD_1IN64G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            for(UBYTE k = 0; k < 4; k++) {
+                EPD_1IN64G_SendData(color);
+            }
+        }
+    }
+
+    EPD_1IN64G_SendCommand(0x68);
+    EPD_1IN64G_SendData(0x00);
+
+    EPD_1IN64G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void EPD_1IN64G_Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_1IN64G_WIDTH % 4 == 0)? (EPD_1IN64G_WIDTH / 4 ): (EPD_1IN64G_WIDTH / 4 + 1);
+    Height = EPD_1IN64G_HEIGHT;
+
+    EPD_1IN64G_SendCommand(0x68);
+    EPD_1IN64G_SendData(0x01);
+    
+    EPD_1IN64G_SendCommand(0x04);
+    EPD_1IN64G_ReadBusyH();
+
+    EPD_1IN64G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_1IN64G_SendData(Image[i + j * Width]);
+        }
+    }
+    EPD_1IN64G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_1IN64G_Sleep(void)
+{
+    EPD_1IN64G_SendCommand(0x02); // POWER_OFF
+    EPD_1IN64G_SendData(0X00);
+    EPD_1IN64G_SendCommand(0x07); // DEEP_SLEEP
+    EPD_1IN64G_SendData(0XA5);
+}
+

+ 32 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in64g.h

@@ -0,0 +1,32 @@
+/*****************************************************************************
+* | File      	:   EPD_1in64g.h
+* | Author      :   Waveshare team
+* | Function    :   1.64inch e-paper(G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-14
+* | Info        :
+* -----------------------------------------------------------------------------
+******************************************************************************/
+#ifndef __EPD_1IN64G_H_
+#define __EPD_1IN64G_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_1IN64G_WIDTH       168
+#define EPD_1IN64G_HEIGHT      168
+
+//colour
+#define  EPD_1IN64G_BLACK   0x00 
+#define  EPD_1IN64G_WHITE   0x55
+#define  EPD_1IN64G_YELLOW  0xAA
+#define  EPD_1IN64G_RED     0xFF
+
+void EPD_1IN64G_Init(void);
+void EPD_1IN64G_Clear(UBYTE color);
+void EPD_1IN64G_Display(UBYTE *Image);
+void EPD_1IN64G_Sleep(void);
+
+#endif

+ 220 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in0g.c

@@ -0,0 +1,220 @@
+/*****************************************************************************
+* | File      	:   EPD_3in0_g.c
+* | Author      :   Waveshare team
+* | Function    :   3inch e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-15
+* | 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 "EPD_3in0g.h"
+#include "Debug.h"
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+static void EPD_3IN0G_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(2);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+static void EPD_3IN0G_SendCommand(UBYTE Reg)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 0);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Reg);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	send data
+parameter:
+    Data : Write data
+******************************************************************************/
+static void EPD_3IN0G_SendData(UBYTE Data)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 1);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Data);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	Wait until the busy_pin goes LOW
+parameter:
+******************************************************************************/
+static void EPD_3IN0G_ReadBusyH(void)
+{
+    Debug("e-Paper busy H\r\n");
+    while(!DEV_Digital_Read(EPD_BUSY_PIN)) {      //LOW: idle, HIGH: busy
+        DEV_Delay_ms(5);
+    }
+    Debug("e-Paper busy H release\r\n");
+}
+static void EPD_3IN0G_ReadBusyL(void)
+{
+    Debug("e-Paper busy L\r\n");
+    while(DEV_Digital_Read(EPD_BUSY_PIN)) {      //LOW: idle, HIGH: busy
+        DEV_Delay_ms(5);
+    }
+    Debug("e-Paper busy L release\r\n");
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+static void EPD_3IN0G_TurnOnDisplay(void)
+{
+    EPD_3IN0G_SendCommand(0x12); // DISPLAY_REFRESH
+    EPD_3IN0G_SendData(0x00);
+    EPD_3IN0G_ReadBusyH();
+
+    EPD_3IN0G_SendCommand(0x02); // POWER_OFF
+    EPD_3IN0G_SendData(0X00);
+    EPD_3IN0G_ReadBusyH();
+}
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_3IN0G_Init(void)
+{
+    EPD_3IN0G_Reset();
+
+    EPD_3IN0G_SendCommand(0x66);
+    EPD_3IN0G_SendData(0x49);
+    EPD_3IN0G_SendData(0x55);
+    EPD_3IN0G_SendData(0x13);
+    EPD_3IN0G_SendData(0x5D);
+    EPD_3IN0G_SendData(0x05);
+    EPD_3IN0G_SendData(0x10);
+
+    EPD_3IN0G_SendCommand(0xB0);
+    EPD_3IN0G_SendData(0x00);//1 boost
+
+    EPD_3IN0G_SendCommand(0x01);
+    EPD_3IN0G_SendData(0x0F);
+    EPD_3IN0G_SendData(0x00);
+
+    EPD_3IN0G_SendCommand(0x00);
+    EPD_3IN0G_SendData(0x4F);
+    EPD_3IN0G_SendData(0x6B);
+
+
+    EPD_3IN0G_SendCommand(0x06);
+    EPD_3IN0G_SendData(0xD7);
+    EPD_3IN0G_SendData(0xDE);
+    EPD_3IN0G_SendData(0x12);
+
+
+    EPD_3IN0G_SendCommand(0x61);
+    EPD_3IN0G_SendData(0x00);
+    EPD_3IN0G_SendData(0xA8);
+    EPD_3IN0G_SendData(0x01); 
+    EPD_3IN0G_SendData(0x90); 
+
+    EPD_3IN0G_SendCommand(0x50);
+    EPD_3IN0G_SendData(0x37);
+
+    EPD_3IN0G_SendCommand(0x60);
+    EPD_3IN0G_SendData(0x0C); 
+    EPD_3IN0G_SendData(0x05);
+
+    EPD_3IN0G_SendCommand(0xE3);
+    EPD_3IN0G_SendData(0xFF);
+
+    EPD_3IN0G_SendCommand(0x84);
+    EPD_3IN0G_SendData(0x00);
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_3IN0G_Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = (EPD_3IN0G_WIDTH % 4 == 0)? (EPD_3IN0G_WIDTH / 4 ): (EPD_3IN0G_WIDTH / 4 + 1);
+    Height = EPD_3IN0G_HEIGHT;
+    
+    EPD_3IN0G_SendCommand(0x04);
+    EPD_3IN0G_ReadBusyH();
+
+    EPD_3IN0G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_3IN0G_SendData(color);
+        }
+    }
+
+    EPD_3IN0G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void EPD_3IN0G_Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_3IN0G_WIDTH % 4 == 0)? (EPD_3IN0G_WIDTH / 4 ): (EPD_3IN0G_WIDTH / 4 + 1);
+    Height = EPD_3IN0G_HEIGHT;
+    
+    EPD_3IN0G_SendCommand(0x04);
+    EPD_3IN0G_ReadBusyH();
+
+    EPD_3IN0G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_3IN0G_SendData(Image[i + j * Width]);
+        }
+    }
+    EPD_3IN0G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_3IN0G_Sleep(void)
+{
+    EPD_3IN0G_SendCommand(0x02); // POWER_OFF
+    EPD_3IN0G_SendData(0X00);
+    EPD_3IN0G_SendCommand(0x07); // DEEP_SLEEP
+    EPD_3IN0G_SendData(0XA5);
+}
+

+ 32 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in0g.h

@@ -0,0 +1,32 @@
+/*****************************************************************************
+* | File      	:   EPD_3in0g.h
+* | Author      :   Waveshare team
+* | Function    :   3inch e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-15
+* | Info        :
+* -----------------------------------------------------------------------------
+******************************************************************************/
+#ifndef __EPD_3IN0G_H_
+#define __EPD_3IN0G_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_3IN0G_WIDTH       168
+#define EPD_3IN0G_HEIGHT      400
+
+//colour
+#define  EPD_3IN0G_BLACK   0x00 
+#define  EPD_3IN0G_WHITE   0x55
+#define  EPD_3IN0G_YELLOW  0xAA
+#define  EPD_3IN0G_RED     0xFF
+
+void EPD_3IN0G_Init(void);
+void EPD_3IN0G_Clear(UBYTE color);
+void EPD_3IN0G_Display(UBYTE *Image);
+void EPD_3IN0G_Sleep(void);
+
+#endif

+ 588 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in52.c

@@ -0,0 +1,588 @@
+/*****************************************************************************
+* | File      	:   EPD_3IN52.C
+* | Author      :   Waveshare team
+* | Function    :   3.52inch e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-05-07
+* | 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 "EPD_3in52.h"
+#include "Debug.h"
+
+//GC 0.9S
+static const UBYTE EPD_3IN52_lut_R20_GC[] =
+{
+  0x01,0x0f,0x0f,0x0f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+};							  
+static const UBYTE EPD_3IN52_lut_R21_GC[] =
+{
+  0x01,0x4f,0x8f,0x0f,0x01,0x01,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
+};						 
+static const UBYTE EPD_3IN52_lut_R22_GC[] =
+{
+  0x01,0x0f,0x8f,0x0f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R23_GC[] =
+{
+  0x01,0x4f,0x8f,0x4f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R24_GC[] =
+{
+  0x01,0x0f,0x8f,0x4f,0x01,0x01,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
+};
+
+
+// DU 0.3s
+static const UBYTE EPD_3IN52_lut_R20_DU[] =
+{
+  0x01,0x0f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+};							  
+static const UBYTE EPD_3IN52_lut_R21_DU[] =
+{
+  0x01,0x0f,0x01,0x00,0x00,0x01,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
+};						 
+static const UBYTE EPD_3IN52_lut_R22_DU[] =
+{
+  0x01,0x8f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R23_DU[] =
+{
+  0x01,0x4f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+};
+static const UBYTE EPD_3IN52_lut_R24_DU[] =
+{
+  0x01,0x0f,0x01,0x00,0x00,0x01,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
+};
+
+// 
+static const UBYTE EPD_3IN52_lut_vcom[] =
+{
+  0x01,0x19,0x19,0x19,0x19,0x01,0x01,
+  0x01,0x19,0x19,0x19,0x01,0x01,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
+};
+
+static const UBYTE EPD_3IN52_lut_ww[] =
+{
+  0x01,0x59,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x19,0x01,0x01,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
+
+};
+
+static const UBYTE EPD_3IN52_lut_bw[] =
+{
+  0x01,0x59,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x19,0x01,0x01,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
+};
+
+static const UBYTE EPD_3IN52_lut_wb[] =
+{	
+  0x01,0x19,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x59,0x01,0x01,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
+};
+
+static const UBYTE EPD_3IN52_lut_bb[] =
+{
+  0x01,0x19,0x99,0x59,0x99,0x01,0x01,
+  0x01,0x59,0x99,0x59,0x01,0x01,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
+};
+
+unsigned char EPD_3IN52_Flag = 0;
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+void EPD_3IN52_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(200);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(2);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(200);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+void EPD_3IN52_SendCommand(UBYTE Reg)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 0);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Reg);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	send data
+parameter:
+    Data : Write data
+******************************************************************************/
+void EPD_3IN52_SendData(UBYTE Data)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 1);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Data);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	Read Busy
+parameter:
+******************************************************************************/
+void EPD_3IN52_ReadBusy(void)
+{
+    Debug("e-Paper busy\r\n");
+    UBYTE busy;
+    do {
+        busy = DEV_Digital_Read(EPD_BUSY_PIN);
+    } while(!busy);
+    DEV_Delay_ms(200);
+    Debug("e-Paper busy release\r\n");
+}
+
+/**
+ * @brief 
+ * 
+ */
+void EPD_3IN52_lut(void)
+{
+    UBYTE count;
+    EPD_3IN52_SendCommand(0x20);        // vcom
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_vcom[count]);
+    }
+         
+    EPD_3IN52_SendCommand(0x21);        // ww --
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_ww[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x22);        // bw r
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_bw[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x23);        // wb w
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_bb[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x24);        // bb b
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_wb[count]);
+    }
+}
+
+/**
+ * @brief 
+ * 
+ */
+void EPD_3IN52_refresh(void)
+{
+    EPD_3IN52_SendCommand(0x17);
+    EPD_3IN52_SendData(0xA5);
+    EPD_3IN52_ReadBusy();
+    DEV_Delay_ms(200);
+}
+
+// LUT download
+void EPD_3IN52_lut_GC(void)
+{
+    UBYTE count;
+    EPD_3IN52_SendCommand(0x20);        // vcom
+    for(count = 0; count < 56 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_R20_GC[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x21);        // red not use
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_R21_GC[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x24);        // bb b
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_R24_GC[count]);
+    }
+    
+    if(EPD_3IN52_Flag == 0)
+    {
+        EPD_3IN52_SendCommand(0x22);    // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R22_GC[count]);
+        }
+            
+        EPD_3IN52_SendCommand(0x23);    // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R23_GC[count]);
+        }
+            
+        EPD_3IN52_Flag = 1;
+    }
+        
+    else
+    {
+        EPD_3IN52_SendCommand(0x22);    // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R23_GC[count]);
+        }
+            
+        EPD_3IN52_SendCommand(0x23);    // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R22_GC[count]);
+        }
+            
+       EPD_3IN52_Flag = 0;
+    }
+}
+
+// LUT download        
+void EPD_3IN52_lut_DU(void)
+{
+    UBYTE count;
+    EPD_3IN52_SendCommand(0x20);      // vcom
+    for(count = 0; count < 56 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_R20_DU[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x21);     // red not use
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_R21_DU[count]);
+    }
+        
+    EPD_3IN52_SendCommand(0x24);    // bb b
+    for(count = 0; count < 42 ; count++)
+    {
+        EPD_3IN52_SendData(EPD_3IN52_lut_R24_DU[count]);
+    }
+    
+    if(EPD_3IN52_Flag == 0)
+    {
+        EPD_3IN52_SendCommand(0x22);      // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R22_DU[count]);
+        }
+            
+        EPD_3IN52_SendCommand(0x23);     // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R23_DU[count]);
+        }
+            
+        EPD_3IN52_Flag = 1;
+    }
+        
+    else
+    {
+        EPD_3IN52_SendCommand(0x22);    // bw r
+        for(count = 0; count < 56 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R23_DU[count]);
+        }
+            
+        EPD_3IN52_SendCommand(0x23);   // wb w
+        for(count = 0; count < 42 ; count++)
+        {
+            EPD_3IN52_SendData(EPD_3IN52_lut_R22_DU[count]);
+        }
+            
+        EPD_3IN52_Flag = 0;
+    }
+}  
+            
+    
+
+
+
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_3IN52_Init(void)
+{
+    EPD_3IN52_Flag = 0;
+    EPD_3IN52_Reset();
+
+    EPD_3IN52_SendCommand(0x00);		// panel setting   PSR
+    EPD_3IN52_SendData(0xFF);			// RES1 RES0 REG KW/R     UD    SHL   SHD_N  RST_N	
+    EPD_3IN52_SendData(0x01);			// x x x VCMZ TS_AUTO TIGE NORG VC_LUTZ
+
+    EPD_3IN52_SendCommand(0x01);		// POWER SETTING   PWR
+    EPD_3IN52_SendData(0x03);			//  x x x x x x VDS_EN VDG_EN	
+    EPD_3IN52_SendData(0x10);			//  x x x VCOM_SLWE VGH[3:0]   VGH=20V, VGL=-20V	
+    EPD_3IN52_SendData(0x3F);			//  x x VSH[5:0]	VSH = 15V
+    EPD_3IN52_SendData(0x3F);			//  x x VSL[5:0]	VSL=-15V
+    EPD_3IN52_SendData(0x03);			//  OPTEN VDHR[6:0]  VHDR=6.4V
+                                        // T_VDS_OFF[1:0] 00=1 frame; 01=2 frame; 10=3 frame; 11=4 frame
+    EPD_3IN52_SendCommand(0x06);		// booster soft start   BTST 
+    EPD_3IN52_SendData(0x37);			//  BT_PHA[7:0]  	
+    EPD_3IN52_SendData(0x3D);			//  BT_PHB[7:0]	
+    EPD_3IN52_SendData(0x3D);			//  x x BT_PHC[5:0]	
+
+    EPD_3IN52_SendCommand(0x60);		// TCON setting			TCON 
+    EPD_3IN52_SendData(0x22);			// S2G[3:0] G2S[3:0]   non-overlap = 12		
+
+    EPD_3IN52_SendCommand(0x82);		// VCOM_DC setting		VDCS 
+    EPD_3IN52_SendData(0x07);			// x  VDCS[6:0]	VCOM_DC value= -1.9v    00~3f,0x12=-1.9v
+
+    EPD_3IN52_SendCommand(0x30);			 
+    EPD_3IN52_SendData(0x09);		
+
+    EPD_3IN52_SendCommand(0xe3);		// power saving			PWS 
+    EPD_3IN52_SendData(0x88);			// VCOM_W[3:0] SD_W[3:0]
+
+    EPD_3IN52_SendCommand(0x61);		// resoultion setting 
+    EPD_3IN52_SendData(0xf0);			//  HRES[7:3] 0 0 0	
+    EPD_3IN52_SendData(0x01);			//  x x x x x x x VRES[8]	
+    EPD_3IN52_SendData(0x68);			//  VRES[7:0]
+
+    EPD_3IN52_SendCommand(0x50);			
+    EPD_3IN52_SendData(0xB7);			
+}
+
+
+void EPD_3IN52_display(UBYTE* picData)
+{
+    UWORD i;
+    EPD_3IN52_SendCommand(0x13);		     //Transfer new data
+    for(i=0;i<(EPD_3IN52_WIDTH*EPD_3IN52_HEIGHT/8);i++)	     
+    {
+        EPD_3IN52_SendData(*picData);
+        picData++;
+    }
+}
+
+void EPD_3IN52_display_NUM(UBYTE NUM)
+{
+    UWORD row, column;
+    // UWORD pcnt = 0;
+
+    EPD_3IN52_SendCommand(0x13);		     //Transfer new data
+
+    for(column=0; column<EPD_3IN52_HEIGHT; column++)   
+    {
+        for(row=0; row<EPD_3IN52_WIDTH/8; row++)  
+        {
+            switch (NUM)
+            {
+                case EPD_3IN52_WHITE:
+                    EPD_3IN52_SendData(0xFF);
+                    break;  
+                        
+                case EPD_3IN52_BLACK:
+                    EPD_3IN52_SendData(0x00);
+                    break;  
+                        
+                case EPD_3IN52_Source_Line:
+                    EPD_3IN52_SendData(0xAA);  
+                    break;
+                        
+                case EPD_3IN52_Gate_Line:
+                    if(column%2)
+                        EPD_3IN52_SendData(0xff); //An odd number of Gate line  
+                    else
+                        EPD_3IN52_SendData(0x00); //The even line Gate  
+                    break;			
+                        
+                case EPD_3IN52_Chessboard:
+                    if(row>=(EPD_3IN52_WIDTH/8/2)&&column>=(EPD_3IN52_HEIGHT/2))
+                        EPD_3IN52_SendData(0xff);
+                    else if(row<(EPD_3IN52_WIDTH/8/2)&&column<(EPD_3IN52_HEIGHT/2))
+                        EPD_3IN52_SendData(0xff);										
+                    else
+                        EPD_3IN52_SendData(0x00);
+                    break; 			
+                        
+                case EPD_3IN52_LEFT_BLACK_RIGHT_WHITE:
+                    if(row>=(EPD_3IN52_WIDTH/8/2))
+                        EPD_3IN52_SendData(0xff);
+                    else
+                        EPD_3IN52_SendData(0x00);
+                    break;
+                            
+                case EPD_3IN52_UP_BLACK_DOWN_WHITE:
+                    if(column>=(EPD_3IN52_HEIGHT/2))
+                        EPD_3IN52_SendData(0xFF);
+                    else
+                        EPD_3IN52_SendData(0x00);
+                    break;
+                            
+                case EPD_3IN52_Frame:
+                    if(column==0||column==(EPD_3IN52_HEIGHT-1))
+                        EPD_3IN52_SendData(0x00);						
+                    else if(row==0)
+                        EPD_3IN52_SendData(0x7F);
+                    else if(row==(EPD_3IN52_WIDTH/8-1))
+                        EPD_3IN52_SendData(0xFE);					
+                    else
+                        EPD_3IN52_SendData(0xFF);
+                    break; 					
+                            
+                case EPD_3IN52_Crosstalk:
+                    if((row>=(EPD_3IN52_WIDTH/8/3)&&row<=(EPD_3IN52_WIDTH/8/3*2)&&column<=(EPD_3IN52_HEIGHT/3))||(row>=(EPD_3IN52_WIDTH/8/3)&&row<=(EPD_3IN52_WIDTH/8/3*2)&&column>=(EPD_3IN52_HEIGHT/3*2)))
+                        EPD_3IN52_SendData(0x00);
+                    else
+                        EPD_3IN52_SendData(0xFF);
+                    break; 					
+                            
+                case EPD_3IN52_Image:
+                        //EPD_3IN52_SendData(gImage_1[pcnt++]);
+                    break;  
+                                        
+                default:
+                    break;
+            }
+        }
+    }	
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_3IN52_Clear(void)
+{
+    UWORD i;
+    EPD_3IN52_SendCommand(0x13);		     //Transfer new data
+    for(i=0;i<(EPD_3IN52_WIDTH*EPD_3IN52_HEIGHT/8);i++)	     
+    {
+        EPD_3IN52_SendData(0xFF);
+    }
+    EPD_3IN52_lut_GC();
+	EPD_3IN52_refresh();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_3IN52_sleep(void)
+{
+    EPD_3IN52_SendCommand(0X07);  	//deep sleep
+    EPD_3IN52_SendData(0xA5);
+}
+
+
+

+ 70 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_3in52.h

@@ -0,0 +1,70 @@
+/*****************************************************************************
+* | File      	:   EPD_3IN52.h
+* | Author      :   Waveshare team
+* | Function    :   3.52inch e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-05-07
+* | 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 __EPD_3IN52_H_
+#define __EPD_3IN52_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_3IN52_WIDTH       240
+#define EPD_3IN52_HEIGHT      360 
+
+#define LUTGC_TEST          //
+#define LUTDU_TEST          //
+
+#define EPD_3IN52_WHITE                         0xFF  // 
+#define EPD_3IN52_BLACK                         0x00  //
+#define EPD_3IN52_Source_Line                   0xAA  //
+#define EPD_3IN52_Gate_Line                     0x55  //
+#define EPD_3IN52_UP_BLACK_DOWN_WHITE           0xF0  //
+#define EPD_3IN52_LEFT_BLACK_RIGHT_WHITE        0x0F  //
+#define EPD_3IN52_Frame                         0x01  // 
+#define EPD_3IN52_Crosstalk                     0x02  //
+#define EPD_3IN52_Chessboard                    0x03  //
+#define EPD_3IN52_Image                         0x04  //
+
+
+extern unsigned char EPD_3IN52_Flag;
+
+void EPD_3IN52_SendCommand(UBYTE Reg);
+void EPD_3IN52_SendData(UBYTE Data);
+void EPD_3IN52_refresh(void);
+void EPD_3IN52_lut_GC(void);
+void EPD_3IN52_lut_DU(void);
+void EPD_3IN52_Init(void);
+void EPD_3IN52_display(UBYTE* picData);
+void EPD_3IN52_display_NUM(UBYTE NUM);
+void EPD_3IN52_Clear(void);
+void EPD_3IN52_sleep(void);
+
+
+
+#endif

+ 246 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3g.c

@@ -0,0 +1,246 @@
+/*****************************************************************************
+* | File      	:   EPD_7in3g.c
+* | Author      :   Waveshare team
+* | Function    :   7.3inch e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 "EPD_7in3g.h"
+#include "Debug.h"
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+static void EPD_7IN3G_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(2);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+static void EPD_7IN3G_SendCommand(UBYTE Reg)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 0);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Reg);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	send data
+parameter:
+    Data : Write data
+******************************************************************************/
+static void EPD_7IN3G_SendData(UBYTE Data)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 1);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Data);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	Wait until the busy_pin goes LOW
+parameter:
+******************************************************************************/
+static void EPD_7IN3G_ReadBusyH(void)
+{
+    Debug("e-Paper busy H\r\n");
+    while(!DEV_Digital_Read(EPD_BUSY_PIN)) {      //LOW: idle, HIGH: busy
+        DEV_Delay_ms(5);
+    }
+    Debug("e-Paper busy H release\r\n");
+}
+static void EPD_7IN3G_ReadBusyL(void)
+{
+    Debug("e-Paper busy L\r\n");
+    while(DEV_Digital_Read(EPD_BUSY_PIN)) {      //LOW: idle, HIGH: busy
+        DEV_Delay_ms(5);
+    }
+    Debug("e-Paper busy L release\r\n");
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+static void EPD_7IN3G_TurnOnDisplay(void)
+{
+    EPD_7IN3G_SendCommand(0x12); // DISPLAY_REFRESH
+    EPD_7IN3G_SendData(0x00);
+    EPD_7IN3G_ReadBusyH();
+
+    EPD_7IN3G_SendCommand(0x02); // POWER_OFF
+    EPD_7IN3G_SendData(0X00);
+    EPD_7IN3G_ReadBusyH();
+}
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_7IN3G_Init(void)
+{
+    EPD_7IN3G_Reset();
+    EPD_7IN3G_ReadBusyH();
+    DEV_Delay_ms(30);
+
+    EPD_7IN3G_SendCommand(0xAA);
+    EPD_7IN3G_SendData(0x49);
+    EPD_7IN3G_SendData(0x55);
+    EPD_7IN3G_SendData(0x20);
+    EPD_7IN3G_SendData(0x08);
+    EPD_7IN3G_SendData(0x09);
+    EPD_7IN3G_SendData(0x18);
+
+    EPD_7IN3G_SendCommand(0x01);
+    EPD_7IN3G_SendData(0x3F);
+
+    EPD_7IN3G_SendCommand(0x00);
+    EPD_7IN3G_SendData(0x4F);
+    EPD_7IN3G_SendData(0x69);
+
+
+    EPD_7IN3G_SendCommand(0x05);
+    EPD_7IN3G_SendData(0x40);
+    EPD_7IN3G_SendData(0x1F);
+    EPD_7IN3G_SendData(0x1F);
+    EPD_7IN3G_SendData(0x2C);
+
+    EPD_7IN3G_SendCommand(0x08);
+    EPD_7IN3G_SendData(0x6F);
+    EPD_7IN3G_SendData(0x1F);
+    EPD_7IN3G_SendData(0x1F);
+    EPD_7IN3G_SendData(0x22);
+
+    //===================
+    //20211212
+    //First setting
+    EPD_7IN3G_SendCommand(0x06);
+    EPD_7IN3G_SendData(0x6F);
+    EPD_7IN3G_SendData(0x1F);
+    EPD_7IN3G_SendData(0x14);
+    EPD_7IN3G_SendData(0x14);
+    //===================
+
+    EPD_7IN3G_SendCommand(0x03);
+    EPD_7IN3G_SendData(0x00);
+    EPD_7IN3G_SendData(0x54);
+    EPD_7IN3G_SendData(0x00);
+    EPD_7IN3G_SendData(0x44);
+
+    EPD_7IN3G_SendCommand(0x60);
+    EPD_7IN3G_SendData(0x02);
+    EPD_7IN3G_SendData(0x00);
+    //Please notice that PLL must be set for version 2 IC
+    EPD_7IN3G_SendCommand(0x30);
+    EPD_7IN3G_SendData(0x08);
+
+
+
+
+    EPD_7IN3G_SendCommand(0x50);
+    EPD_7IN3G_SendData(0x3F);
+
+    EPD_7IN3G_SendCommand(0x61);
+    EPD_7IN3G_SendData(0x03);
+    EPD_7IN3G_SendData(0x20);
+    EPD_7IN3G_SendData(0x01); 
+    EPD_7IN3G_SendData(0xE0); 
+
+    EPD_7IN3G_SendCommand(0xE3);
+    EPD_7IN3G_SendData(0x2F);
+
+    EPD_7IN3G_SendCommand(0x84);
+    EPD_7IN3G_SendData(0x01);
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_7IN3G_Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = (EPD_7IN3G_WIDTH % 4 == 0)? (EPD_7IN3G_WIDTH / 4 ): (EPD_7IN3G_WIDTH / 4 + 1);
+    Height = EPD_7IN3G_HEIGHT;
+    
+    EPD_7IN3G_SendCommand(0x04);
+    EPD_7IN3G_ReadBusyH();
+
+    EPD_7IN3G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_7IN3G_SendData(color);
+        }
+    }
+
+    EPD_7IN3G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void EPD_7IN3G_Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_7IN3G_WIDTH % 4 == 0)? (EPD_7IN3G_WIDTH / 4 ): (EPD_7IN3G_WIDTH / 4 + 1);
+    Height = EPD_7IN3G_HEIGHT;
+    
+    EPD_7IN3G_SendCommand(0x04);
+    EPD_7IN3G_ReadBusyH();
+
+    EPD_7IN3G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_7IN3G_SendData(Image[i + j * Width]);
+        }
+    }
+    EPD_7IN3G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_7IN3G_Sleep(void)
+{
+    EPD_7IN3G_SendCommand(0x02); // POWER_OFF
+    EPD_7IN3G_SendData(0X00);
+    EPD_7IN3G_SendCommand(0x07); // DEEP_SLEEP
+    EPD_7IN3G_SendData(0XA5);
+}
+

+ 52 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3g.h

@@ -0,0 +1,52 @@
+/*****************************************************************************
+* | File      	:   EPD_7in3g.h
+* | Author      :   Waveshare team
+* | Function    :   7.3inchg e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 __EPD_7IN3G_H_
+#define __EPD_7IN3G_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_7IN3G_WIDTH       800
+#define EPD_7IN3G_HEIGHT      480
+
+//colour
+#define  EPD_7IN3G_BLACK   0x00 
+#define  EPD_7IN3G_WHITE   0x55
+#define  EPD_7IN3G_YELLOW  0xAA
+#define  EPD_7IN3G_RED     0xFF
+
+void EPD_7IN3G_Init(void);
+void EPD_7IN3G_Clear(UBYTE color);
+void EPD_7IN3G_Display(UBYTE *Image);
+void EPD_7IN3G_Sleep(void);
+
+#endif

二进制
RaspberryPi_JetsonNano/c/pic/1.64inch-1.bmp


二进制
RaspberryPi_JetsonNano/c/pic/1.64inch-2.bmp


二进制
RaspberryPi_JetsonNano/c/pic/3in52-1.bmp


二进制
RaspberryPi_JetsonNano/c/pic/3in52-2.bmp


二进制
RaspberryPi_JetsonNano/c/pic/3in52-3.bmp


二进制
RaspberryPi_JetsonNano/c/pic/3inch-1.bmp


二进制
RaspberryPi_JetsonNano/c/pic/3inch-2.bmp


二进制
RaspberryPi_JetsonNano/c/pic/3inch-3.bmp


二进制
RaspberryPi_JetsonNano/c/pic/7.3inch-1.bmp


二进制
RaspberryPi_JetsonNano/c/pic/7.3inch-2.bmp


二进制
RaspberryPi_JetsonNano/c/pic/7.3inch-3.bmp


+ 74 - 0
RaspberryPi_JetsonNano/python/examples/epd_1in64g_test.py

@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import sys
+import os
+picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
+libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
+if os.path.exists(libdir):
+    sys.path.append(libdir)
+
+import logging
+from waveshare_epd import epd1in64g
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+    logging.info("epd1in64g Demo")
+
+    BLACK = 0x00
+    WHITE = 0x55
+    YELLOW = 0xAA
+    RED = 0xFF
+    epd = epd1in64g.EPD()   
+    logging.info("init and Clear")
+    epd.init()
+    epd.Clear(WHITE)
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
+    
+    
+    # Drawing on the image
+    logging.info("1.Drawing on the image...")
+    Himage = Image.new('RGB', (epd.width, epd.height), 0xffffff)  
+    draw = ImageDraw.Draw(Himage)
+    draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
+    draw.text((5, 20), '1.64inch e-Paper', font = font18, fill = epd.YELLOW)
+    draw.text((5, 40), u'微雪电子', font = font30, fill = epd.BLACK)
+
+    draw.line((5, 90, 45, 160), fill = epd.RED)
+    draw.line((45, 90, 5, 160), fill = epd.YELLOW)
+    draw.rectangle((5, 90, 45, 160), outline = epd.BLACK)
+    draw.rectangle((55, 90, 95, 160), fill = epd.BLACK)
+    draw.arc((115, 90, 150, 125), 0, 360, fill = epd.BLACK)
+    draw.chord((115, 130, 150, 165), 0, 360, fill = epd.BLACK)
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    # read bmp file 
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '1.64inch-1.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '1.64inch-2.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    logging.info("Clear...")
+    epd.Clear(WHITE)
+    
+    logging.info("Goto Sleep...")
+    epd.sleep()
+        
+except IOError as e:
+    logging.info(e)
+    
+except KeyboardInterrupt:    
+    logging.info("ctrl + c:")
+    epd1in64g.epdconfig.module_exit()
+    exit()

+ 105 - 0
RaspberryPi_JetsonNano/python/examples/epd_3in0g_test.py

@@ -0,0 +1,105 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import sys
+import os
+picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
+libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
+if os.path.exists(libdir):
+    sys.path.append(libdir)
+
+import logging
+from waveshare_epd import epd3in0g
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+    logging.info("epd3in0g Demo")
+
+    BLACK = 0x00
+    WHITE = 0x55
+    YELLOW = 0xAA
+    RED = 0xFF
+    epd = epd3in0g.EPD()   
+    logging.info("init and Clear")
+    epd.init()
+    epd.Clear(WHITE)
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
+    
+    
+    # Drawing on the image
+    epd.init()
+    logging.info("1.Drawing on the image...")
+    Himage = Image.new('RGB', (epd.width, epd.height), 0xffffff)  
+    draw = ImageDraw.Draw(Himage)
+    draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
+    draw.text((5, 20), '3inch e-Paper', font = font24, fill = epd.YELLOW)
+    draw.text((5, 45), u'微雪电子', font = font30, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font30, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font30, fill = epd.RED)
+    draw.line((5, 170, 80, 245), fill = epd.RED)
+    draw.line((80, 170, 5, 245), fill = epd.YELLOW)
+    draw.rectangle((5, 170, 80, 245), outline = epd.BLACK)
+    draw.rectangle((90, 170, 165, 245), fill = epd.YELLOW)
+    draw.arc((5, 250, 80, 325), 0, 360, fill = epd.BLACK)
+    draw.chord((90, 250, 165, 325), 0, 360, fill = epd.RED)
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+
+    # Switch width and height for landscape display
+    epd.init()
+    logging.info("1.Drawing on the image...")
+    Himage = Image.new('RGB', (epd.height, epd.width), 0xffffff)      
+    draw = ImageDraw.Draw(Himage)
+    draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
+    draw.text((5, 20), '3inch e-Paper', font = font24, fill = epd.YELLOW)
+    draw.text((5, 45), u'微雪电子', font = font30, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font30, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font30, fill = epd.RED)
+    draw.line((205, 5, 295, 65), fill = epd.RED)
+    draw.line((295, 5, 205, 65), fill = epd.YELLOW)
+    draw.rectangle((205, 5, 295, 65), outline = epd.BLACK)
+    draw.rectangle((305, 5, 395, 65), fill = epd.RED)
+    draw.arc((205, 75, 295, 165), 0, 360, fill = epd.BLACK)
+    draw.chord((305, 75, 395, 165), 0, 360, fill = epd.YELLOW)
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    # read bmp file 
+    epd.init()
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '3inch-1.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    epd.init()
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '3inch-2.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    epd.init()
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '3inch-3.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    epd.init()
+    logging.info("Clear...")
+    epd.Clear(WHITE)
+    
+    logging.info("Goto Sleep...")
+    epd.sleep()
+        
+except IOError as e:
+    logging.info(e)
+    
+except KeyboardInterrupt:    
+    logging.info("ctrl + c:")
+    epd3in0g.epdconfig.module_exit()
+    exit()

+ 119 - 0
RaspberryPi_JetsonNano/python/examples/epd_3in52_test.py

@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import sys
+import os
+picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
+libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
+if os.path.exists(libdir):
+    sys.path.append(libdir)
+
+import logging
+from waveshare_epd import epd3in52
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+    logging.info("epd2in9 Demo")
+    
+    epd = epd3in52.EPD()
+    logging.info("init and Clear")
+    epd.init()
+    epd.display_NUM(epd.WHITE)
+    epd.lut_GC()
+    epd.refresh()
+
+    epd.send_command(0x50)
+    epd.send_data(0x17)
+    time.sleep(2)
+    
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
+    
+    # Drawing on the Horizontal image
+    logging.info("1.Drawing on the Horizontal image...")
+    Himage = Image.new('1', (epd.height, epd.width), 255)  # 255: clear the frame
+    draw = ImageDraw.Draw(Himage)
+    draw.text((10, 0), 'hello world', font = font24, fill = 0)
+    draw.text((10, 20), '3.52inch e-Paper', font = font24, fill = 0)
+    draw.text((150, 0), u'微雪电子', font = font24, fill = 0)    
+    draw.line((20, 50, 70, 100), fill = 0)
+    draw.line((70, 50, 20, 100), fill = 0)
+    draw.rectangle((20, 50, 70, 100), outline = 0)
+    draw.line((165, 50, 165, 100), fill = 0)
+    draw.line((140, 75, 190, 75), fill = 0)
+    draw.arc((140, 50, 190, 100), 0, 360, fill = 0)
+    draw.rectangle((80, 50, 130, 100), fill = 0)
+    draw.chord((200, 50, 250, 100), 0, 360, fill = 0)
+    epd.display(epd.getbuffer(Himage))
+    epd.lut_GC()
+    epd.refresh()
+    time.sleep(2)
+    
+    # Drawing on the Vertical image
+    logging.info("2.Drawing on the Vertical image...")
+    Limage = Image.new('1', (epd.width, epd.height), 255)  # 255: clear the frame
+    draw = ImageDraw.Draw(Limage)
+    draw.text((2, 0), 'hello world', font = font18, fill = 0)
+    draw.text((2, 20), '3.52inch e-Paper', font = font18, fill = 0)
+    draw.text((20, 50), u'微雪电子', font = font18, fill = 0)
+    draw.line((10, 90, 60, 140), fill = 0)
+    draw.line((60, 90, 10, 140), fill = 0)
+    draw.rectangle((10, 90, 60, 140), outline = 0)
+    draw.line((95, 90, 95, 140), fill = 0)
+    draw.line((70, 115, 120, 115), fill = 0)
+    draw.arc((70, 90, 120, 140), 0, 360, fill = 0)
+    draw.rectangle((10, 150, 60, 200), fill = 0)
+    draw.chord((70, 150, 120, 200), 0, 360, fill = 0)
+    epd.display(epd.getbuffer(Limage))
+    epd.lut_GC()
+    epd.refresh()
+    time.sleep(2)
+    
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '3in52-1.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    epd.lut_GC()
+    epd.refresh()
+    time.sleep(2)
+    
+    logging.info("4.read bmp file on window")
+    Himage2 = Image.new('1', (epd.height, epd.width), 255)  # 255: clear the frame
+    bmp = Image.open(os.path.join(picdir, '100x100.bmp'))
+    Himage2.paste(bmp, (50,10))
+    epd.display(epd.getbuffer(Himage2))
+    epd.lut_GC()
+    epd.refresh()
+    time.sleep(2)
+
+
+    # print("Quick refresh is supported, but the refresh effect is not good, but it is not recommended")
+    # Himage = Image.open(os.path.join(picdir, '3in52-2.bmp'))
+    # epd.display(epd.getbuffer(Himage))
+    # epd.lut_DU()
+    # epd.refresh()
+    # time.sleep(2)
+
+    # Himage = Image.open(os.path.join(picdir, '3in52-3.bmp'))
+    # epd.display(epd.getbuffer(Himage))
+    # epd.lut_DU()
+    # epd.refresh()
+    # time.sleep(2)
+
+
+    logging.info("Clear...")
+    epd.Clear()
+    
+    logging.info("Goto Sleep...")
+    epd.sleep()
+    
+except IOError as e:
+    logging.info(e)
+    
+except KeyboardInterrupt:    
+    logging.info("ctrl + c:")
+    epd3in52.epdconfig.module_exit()
+    exit()

+ 81 - 0
RaspberryPi_JetsonNano/python/examples/epd_7in3g_test.py

@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import sys
+import os
+picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
+libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
+if os.path.exists(libdir):
+    sys.path.append(libdir)
+
+import logging
+from waveshare_epd import epd7in3g
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+    logging.info("epd1in64g Demo")
+
+    BLACK = 0x00
+    WHITE = 0x55
+    YELLOW = 0xAA
+    RED = 0xFF
+    epd = epd7in3g.EPD()   
+    logging.info("init and Clear")
+    epd.init()
+    epd.Clear(WHITE)
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
+    
+    
+    # Drawing on the image
+    logging.info("1.Drawing on the image...")
+    Himage = Image.new('RGB', (epd.width, epd.height), 0xffffff)  # 255: clear the frame
+    draw = ImageDraw.Draw(Himage)
+    draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
+    draw.text((5, 20), '7.3inch e-Paper', font = font24, fill = epd.YELLOW)
+    draw.text((5, 45), u'微雪电子', font = font30, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font30, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font30, fill = epd.RED)
+
+    draw.line((5, 170, 80, 245), fill = epd.RED)
+    draw.line((80, 170, 5, 245), fill = epd.YELLOW)
+    draw.rectangle((5, 170, 80, 245), outline = epd.BLACK)
+    draw.rectangle((90, 170, 165, 245), fill = epd.YELLOW)
+    draw.arc((5, 250, 80, 325), 0, 360, fill = epd.BLACK)
+    draw.chord((90, 250, 165, 325), 0, 360, fill = epd.RED)
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    # read bmp file 
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '7.3inch-1.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '7.3inch-2.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    logging.info("3.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '7.3inch-3.bmp'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    logging.info("Clear...")
+    epd.Clear(WHITE)
+    
+    logging.info("Goto Sleep...")
+    epd.sleep()
+        
+except IOError as e:
+    logging.info(e)
+    
+except KeyboardInterrupt:    
+    logging.info("ctrl + c:")
+    epd7in3g.epdconfig.module_exit()
+    exit()

+ 242 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in64g.py

@@ -0,0 +1,242 @@
+# *****************************************************************************
+# * | File        :	  epd1in64g.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1
+# * | Date        :   2022-07-20
+# # | Info        :   python demo
+# -----------------------------------------------------------------------------
+# ******************************************************************************/
+# 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.
+#
+
+import logging
+from . import epdconfig
+
+import PIL
+from PIL import Image
+import io
+
+# Display resolution
+EPD_WIDTH       = 168
+EPD_HEIGHT      = 168
+
+logger = logging.getLogger(__name__)
+
+class EPD:
+    def __init__(self):
+        self.reset_pin = epdconfig.RST_PIN
+        self.dc_pin = epdconfig.DC_PIN
+        self.busy_pin = epdconfig.BUSY_PIN
+        self.cs_pin = epdconfig.CS_PIN
+        self.width = EPD_WIDTH
+        self.height = EPD_HEIGHT
+        self.BLACK  = 0x000000   #   00  BGR
+        self.WHITE  = 0xffffff   #   01
+        self.YELLOW = 0x00ffff   #   10
+        self.RED    = 0x0000ff   #   11
+        
+
+        
+    # Hardware reset
+    def reset(self):
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200) 
+        epdconfig.digital_write(self.reset_pin, 0)         # module reset
+        epdconfig.delay_ms(2)
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200)   
+
+    def send_command(self, command):
+        epdconfig.digital_write(self.dc_pin, 0)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([command])
+        epdconfig.digital_write(self.cs_pin, 1)
+
+    def send_data(self, data):
+        epdconfig.digital_write(self.dc_pin, 1)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([data])
+        epdconfig.digital_write(self.cs_pin, 1)
+        
+    def ReadBusyH(self):
+        logger.debug("e-Paper busy H")
+        while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy H release")
+
+    def ReadBusyL(self):
+        logger.debug("e-Paper busy L")
+        while(epdconfig.digital_read(self.busy_pin) == 1):      # 0: busy, 1: idle
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy L release")
+
+    def TurnOnDisplay(self):
+        self.send_command(0x12) # DISPLAY_REFRESH
+        self.send_data(0x01)
+        self.ReadBusyH()
+
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0X00)
+        self.ReadBusyH()
+        
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        # EPD hardware init start
+
+        self.reset()
+
+        self.send_command(0x66)
+        self.send_data(0x49)
+        self.send_data(0x55)
+        self.send_data(0x13)
+        self.send_data(0x5D)
+
+        self.send_command(0x66)
+        self.send_data(0x49)
+        self.send_data(0x55)
+
+        self.send_command(0xB0)
+        self.send_data(0x03)
+
+
+        self.send_command(0x00)
+        self.send_data(0x4F)
+        self.send_data(0x6B)
+
+        self.send_command(0x03)
+        self.send_data(0x00)
+
+        self.send_command(0xF0)
+        self.send_data(0xF6)
+        self.send_data(0x0D)
+        self.send_data(0x00)
+        self.send_data(0x00)
+        self.send_data(0x00)
+
+        self.send_command(0x06)
+        self.send_data(0xCF)
+        self.send_data(0xDF)
+        self.send_data(0x0F)
+
+        self.send_command(0x41)
+        self.send_data(0x00)
+
+        self.send_command(0x50)
+        self.send_data(0x30)
+
+        self.send_command(0x60)
+        self.send_data(0x0C)
+        self.send_data(0x05)
+
+        self.send_command(0x61)
+        self.send_data(0xA8)
+        self.send_data(0x00)
+        self.send_data(0xA8)
+
+        self.send_command(0x84)
+        self.send_data(0x01)
+        return 0
+
+    def getbuffer(self, image):
+        # Create a pallette with the 4 colors supported by the panel
+        pal_image = Image.new("P", (1,1))
+        pal_image.putpalette( (0,0,0,  255,255,255,  255,255,0,   255,0,0) + (0,0,0)*252)
+
+        # Check if we need to rotate the image
+        imwidth, imheight = image.size
+        if(imwidth == self.width and imheight == self.height):
+            image_temp = image
+        elif(imwidth == self.height and imheight == self.width):
+            image_temp = image.rotate(90, expand=True)
+        else:
+            logger.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height))
+
+        # Convert the soruce image to the 4 colors, dithering if needed
+        image_4color = image_temp.convert("RGB").quantize(palette=pal_image)
+        buf_4color = bytearray(image_4color.tobytes('raw'))
+
+        # into a single byte to transfer to the panel
+        buf = [0x00] * int(self.width * self.height / 4)
+        idx = 0
+        for i in range(0, len(buf_4color), 4):
+            buf[idx] = (buf_4color[i] << 6) + (buf_4color[i+1] << 4) + (buf_4color[i+2] << 2) + buf_4color[i+3]
+            idx += 1
+
+        return buf
+
+    def display(self, image):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x68)
+        self.send_data(0x01)
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                    self.send_data(image[i + j * Width])
+
+        self.TurnOnDisplay()
+        
+    def Clear(self, color):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x68)
+        self.send_data(0x01)
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                for k in range(0, 4):
+                    self.send_data(color)
+
+
+        self.send_command(0x68)
+        self.send_data(0x00)
+
+        self.TurnOnDisplay()
+
+    def sleep(self):
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0x00)
+
+        self.send_command(0x07) # DEEP_SLEEP
+        self.send_data(0XA5)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

+ 236 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd3in0g.py

@@ -0,0 +1,236 @@
+# *****************************************************************************
+# * | File        :	  epd3in0g.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1
+# * | Date        :   2022-07-20
+# # | Info        :   python demo
+# -----------------------------------------------------------------------------
+# ******************************************************************************/
+# 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.
+#
+
+import logging
+from . import epdconfig
+
+import PIL
+from PIL import Image
+import io
+
+# Display resolution
+EPD_WIDTH       = 168
+EPD_HEIGHT      = 400
+
+logger = logging.getLogger(__name__)
+
+class EPD:
+    def __init__(self):
+        self.reset_pin = epdconfig.RST_PIN
+        self.dc_pin = epdconfig.DC_PIN
+        self.busy_pin = epdconfig.BUSY_PIN
+        self.cs_pin = epdconfig.CS_PIN
+        self.width = EPD_WIDTH
+        self.height = EPD_HEIGHT
+        self.BLACK  = 0x000000   #   00  BGR
+        self.WHITE  = 0xffffff   #   01
+        self.YELLOW = 0x00ffff   #   10
+        self.RED    = 0x0000ff   #   11
+        
+
+        
+    # Hardware reset
+    def reset(self):
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200) 
+        epdconfig.digital_write(self.reset_pin, 0)         # module reset
+        epdconfig.delay_ms(2)
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200)   
+
+    def send_command(self, command):
+        epdconfig.digital_write(self.dc_pin, 0)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([command])
+        epdconfig.digital_write(self.cs_pin, 1)
+
+    def send_data(self, data):
+        epdconfig.digital_write(self.dc_pin, 1)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([data])
+        epdconfig.digital_write(self.cs_pin, 1)
+        
+    def ReadBusyH(self):
+        logger.debug("e-Paper busy H")
+        while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy H release")
+
+    def ReadBusyL(self):
+        logger.debug("e-Paper busy L")
+        while(epdconfig.digital_read(self.busy_pin) == 1):      # 0: busy, 1: idle
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy L release")
+
+    def TurnOnDisplay(self):
+        self.send_command(0x12) # DISPLAY_REFRESH
+        self.send_data(0x01)
+        self.ReadBusyH()
+
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0X00)
+        self.ReadBusyH()
+        
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        # EPD hardware init start
+
+        self.reset()
+
+        self.send_command(0x66)
+        self.send_data(0x49)
+        self.send_data(0x55)
+        self.send_data(0x13)
+        self.send_data(0x5D)
+        self.send_data(0x05)
+        self.send_data(0x10)
+
+        self.send_command(0xB0)
+        self.send_data(0x00) # 1 boost
+
+        self.send_command(0x01)
+        self.send_data(0x0F)
+        self.send_data(0x00)
+
+        self.send_command(0x00)
+        self.send_data(0x4F)
+        self.send_data(0x6B)
+
+
+        self.send_command(0x06)
+        self.send_data(0xD7)
+        self.send_data(0xDE)
+        self.send_data(0x12)
+
+
+        self.send_command(0x61)
+        self.send_data(0x00)
+        self.send_data(0xA8)
+        self.send_data(0x01)
+        self.send_data(0x90)
+
+        self.send_command(0x50)
+        self.send_data(0x37)
+
+        self.send_command(0x60)
+        self.send_data(0x0C)
+        self.send_data(0x05)
+
+        self.send_command(0xE3)
+        self.send_data(0xFF)
+
+        self.send_command(0x84)
+        self.send_data(0x00)
+        return 0
+
+    def getbuffer(self, image):
+        # Create a pallette with the 4 colors supported by the panel
+        pal_image = Image.new("P", (1,1))
+        pal_image.putpalette( (0,0,0,  255,255,255,  255,255,0,   255,0,0) + (0,0,0)*252)
+
+        # Check if we need to rotate the image
+        imwidth, imheight = image.size
+        if(imwidth == self.width and imheight == self.height):
+            image_temp = image
+        elif(imwidth == self.height and imheight == self.width):
+            image_temp = image.rotate(90, expand=True)
+        else:
+            logger.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height))
+
+        # Convert the soruce image to the 7 colors, dithering if needed
+        image_4color = image_temp.convert("RGB").quantize(palette=pal_image)
+        buf_4color = bytearray(image_4color.tobytes('raw'))
+
+        # into a single byte to transfer to the panel
+        buf = [0x00] * int(self.width * self.height / 4)
+        idx = 0
+        for i in range(0, len(buf_4color), 4):
+            buf[idx] = (buf_4color[i] << 6) + (buf_4color[i+1] << 4) + (buf_4color[i+2] << 2) + buf_4color[i+3]
+            idx += 1
+
+        return buf
+
+    def display(self, image):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x68)
+        self.send_data(0x01)
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                    self.send_data(image[i + j * Width])
+
+        self.TurnOnDisplay()
+        
+    def Clear(self, color):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x68)
+        self.send_data(0x01)
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                for k in range(0, 4):
+                    self.send_data(color)
+
+
+        self.send_command(0x68)
+        self.send_data(0x00)
+
+        self.TurnOnDisplay()
+
+    def sleep(self):
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0x00)
+
+        self.send_command(0x07) # DEEP_SLEEP
+        self.send_data(0XA5)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

+ 473 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd3in52.py

@@ -0,0 +1,473 @@
+# *****************************************************************************
+# * | File        :   epd3in52.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1.0
+# * | Date        :   2022-07-20
+# # | Info        :   python demo
+# -----------------------------------------------------------------------------
+# 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.
+#
+
+import logging
+from multiprocessing.reduction import recv_handle
+from . import epdconfig
+
+# Display resolution
+EPD_width       = 240
+EPD_height      = 360
+
+logger = logging.getLogger(__name__)
+
+class EPD:
+    def __init__(self):
+        self.reset_pin = epdconfig.RST_PIN
+        self.dc_pin = epdconfig.DC_PIN
+        self.busy_pin = epdconfig.BUSY_PIN
+        self.cs_pin = epdconfig.CS_PIN
+        self.width = EPD_width
+        self.height = EPD_height
+        self.Flag = 0
+        self.WHITE = 0xFF
+        self.BLACK = 0x00
+        self.Source_Line = 0xAA
+        self.Gate_Line = 0x55
+        self.UP_BLACK_DOWN_WHITE = 0xF0
+        self.LEFT_BLACK_RIGHT_WHITE = 0x0F
+        self.Frame = 0x01
+        self.Crosstalk = 0x02
+        self.Chessboard = 0x03
+        self.Image = 0x04
+
+    # GC 0.9S
+    lut_R20_GC = [
+        0x01,0x0f,0x0f,0x0f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+    ]                          
+    lut_R21_GC = [
+        0x01,0x4f,0x8f,0x0f,0x01,0x01,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
+    ]                     
+    lut_R22_GC = [
+        0x01,0x0f,0x8f,0x0f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+    ]
+    lut_R23_GC = [
+        0x01,0x4f,0x8f,0x4f,0x01,0x01,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,0x00,0x00,0x00,0x00,0x00
+    ]
+    lut_R24_GC = [
+        0x01,0x0f,0x8f,0x4f,0x01,0x01,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
+    ]
+
+    # DU 0.3s
+    lut_R20_DU = [
+        0x01,0x0f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+    ]                              
+    lut_R21_DU = [
+        0x01,0x0f,0x01,0x00,0x00,0x01,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
+    ]                         
+    lut_R22_DU = [
+        0x01,0x8f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+    ]
+    lut_R23_DU = [
+        0x01,0x4f,0x01,0x00,0x00,0x01,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,0x00,0x00,0x00,0x00,0x00
+    ]
+    lut_R24_DU = [
+        0x01,0x0f,0x01,0x00,0x00,0x01,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
+    ]
+
+    lut_vcom = [
+        0x01,0x19,0x19,0x19,0x19,0x01,0x01,
+        0x01,0x19,0x19,0x19,0x01,0x01,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
+    ]
+    lut_ww = [
+        0x01,0x59,0x99,0x59,0x99,0x01,0x01,
+        0x01,0x59,0x99,0x19,0x01,0x01,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
+    ]
+    lut_bw = [
+        0x01,0x59,0x99,0x59,0x99,0x01,0x01,
+        0x01,0x59,0x99,0x19,0x01,0x01,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
+    ]
+    lut_wb = [
+        0x01,0x19,0x99,0x59,0x99,0x01,0x01,
+        0x01,0x59,0x99,0x59,0x01,0x01,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
+    ]
+    lut_bb = [
+        0x01,0x19,0x99,0x59,0x99,0x01,0x01,
+        0x01,0x59,0x99,0x59,0x01,0x01,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
+    ]
+        
+    # Hardware reset
+    def reset(self):
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200) 
+        epdconfig.digital_write(self.reset_pin, 0)
+        epdconfig.delay_ms(5)
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200)   
+
+    def send_command(self, command):
+        epdconfig.digital_write(self.dc_pin, 0)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([command])
+        epdconfig.digital_write(self.cs_pin, 1)
+
+    def send_data(self, data):
+        epdconfig.digital_write(self.dc_pin, 1)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([data])
+        epdconfig.digital_write(self.cs_pin, 1)
+        
+    def ReadBusy(self):
+        logger.debug("e-Paper busy")
+        while(epdconfig.digital_read(self.busy_pin) == 0):      #  0: busy, 1: idle
+            epdconfig.delay_ms(5) 
+        logger.debug("e-Paper busy release")
+
+    def lut(self) :
+        self.send_command(0x20)        # vcom
+        for count in range(0 ,42):
+            self.send_data(self.lut_vcom[count])
+            
+        self.send_command(0x21)        # ww --
+        for count in range(0 ,42):
+            self.send_data(self.lut_ww[count])
+            
+        self.send_command(0x22)        # bw r
+        for count in range(0 ,42):
+            self.send_data(self.lut_bw[count])
+            
+        self.send_command(0x23)        # wb w
+        for count in range(0 ,42):
+            self.send_data(self.lut_bb[count])
+            
+        self.send_command(0x24)        # bb b
+        for count in range(0 ,42):
+            self.send_data(self.lut_wb[count])
+
+    def refresh(self):
+        self.send_command(0x17)
+        self.send_data(0xA5)
+        self.ReadBusy()
+        epdconfig.delay_ms(200)
+
+    # LUT download
+    def lut_GC(self):
+        self.send_command(0x20);        # vcom
+        for count in range(0 ,56):
+            self.send_data(self.lut_R20_GC[count])
+            
+        self.send_command(0x21);        # red not use
+        for count in range(0 ,42):
+            self.send_data(self.lut_R21_GC[count])
+            
+        self.send_command(0x24);        # bb b
+        for count in range(0 ,42):
+            self.send_data(self.lut_R24_GC[count])
+        
+        if(self.Flag == 0) :
+            self.send_command(0x22);    # bw r
+            for count in range(0 ,56):
+                self.send_data(self.lut_R22_GC[count])
+                
+            self.send_command(0x23);    # wb w
+            for count in range(0 ,42):
+                self.send_data(self.lut_R23_GC[count])
+            self.Flag = 1
+
+        else :
+            self.send_command(0x22);    # bw r
+            for count in range(0 ,56):
+                self.send_data(self.lut_R23_GC[count])
+
+            self.send_command(0x23);    # wb w
+            for count in range(0 ,42):
+                self.send_data(self.lut_R22_GC[count])
+            self.Flag = 0
+
+    # LUT download        
+    def lut_DU(self):
+        self.send_command(0x20);      # vcom
+        for count in range(0 ,56):
+            self.send_data(self.lut_R20_DU[count])
+            
+        self.send_command(0x21);     # red not use
+        for count in range(0 ,42):
+            self.send_data(self.lut_R21_DU[count])
+            
+        self.send_command(0x24);    # bb b
+        for count in range(0 ,42):
+            self.send_data(self.lut_R24_DU[count])
+        
+        if(self.Flag == 0) :
+            self.send_command(0x22);      # bw r
+            for count in range(0 ,56):
+                self.send_data(self.lut_R22_DU[count])
+                
+            self.send_command(0x23);     # wb w
+            for count in range(0 ,42):
+                self.send_data(self.lut_R23_DU[count])
+                
+            self.Flag = 1
+            
+        else :
+            self.send_command(0x22);    # bw r
+            for count in range(0 ,56):
+                self.send_data(self.lut_R23_DU[count])
+                
+            self.send_command(0x23);   # wb w
+            for count in range(0 ,42):
+                self.send_data(self.lut_R22_DU[count])
+                
+            self.Flag = 0
+        
+                
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        # EPD hardware init start
+        self.Flag = 0
+        self.reset()
+
+        self.send_command(0x00)     # panel setting   PSR
+        self.send_data(0xFF)        # RES1 RES0 REG KW/R     UD    SHL   SHD_N  RST_N    
+        self.send_data(0x01)        # x x x VCMZ TS_AUTO TIGE NORG VC_LUTZ
+
+        self.send_command(0x01)     # POWER SETTING   PWR
+        self.send_data(0x03)        #  x x x x x x VDS_EN VDG_EN    
+        self.send_data(0x10)        #  x x x VCOM_SLWE VGH[3:0]   VGH=20V, VGL=-20V    
+        self.send_data(0x3F)        #  x x VSH[5:0]    VSH = 15V
+        self.send_data(0x3F)        #  x x VSL[5:0]    VSL=-15V
+        self.send_data(0x03)        #  OPTEN VDHR[6:0]  VHDR=6.4V
+                                    # T_VDS_OFF[1:0] 00=1 frame; 01=2 frame; 10=3 frame; 11=4 frame
+        self.send_command(0x06)     # booster soft start   BTST 
+        self.send_data(0x37)        #  BT_PHA[7:0]      
+        self.send_data(0x3D)        #  BT_PHB[7:0]    
+        self.send_data(0x3D)        #  x x BT_PHC[5:0]    
+
+        self.send_command(0x60)     # TCON setting            TCON 
+        self.send_data(0x22)        # S2G[3:0] G2S[3:0]   non-overlap = 12        
+
+        self.send_command(0x82)     # VCOM_DC setting        VDCS 
+        self.send_data(0x07)        # x  VDCS[6:0]    VCOM_DC value= -1.9v    00~3f,0x12=-1.9v
+
+        self.send_command(0x30)             
+        self.send_data(0x09)        
+
+        self.send_command(0xe3)     # power saving            PWS 
+        self.send_data(0x88)        # VCOM_W[3:0] SD_W[3:0]
+
+        self.send_command(0x61)     # resoultion setting 
+        self.send_data(0xf0)        #  HRES[7:3] 0 0 0    
+        self.send_data(0x01)        #  x x x x x x x VRES[8]    
+        self.send_data(0x68)        #  VRES[7:0]
+
+        self.send_command(0x50);            
+        self.send_data(0xB7);    
+        return 0
+
+    def getbuffer(self, image):
+        # logger.debug("bufsiz = ",int(self.width/8) * self.height)
+        buf = [0xFF] * (int(self.width/8) * self.height)
+        image_monocolor = image.convert('1')
+        imwidth, imheight = image_monocolor.size
+        pixels = image_monocolor.load()
+        # logger.debug("imwidth = %d, imheight = %d",imwidth,imheight)
+        if(imwidth == self.width and imheight == self.height):
+            logger.debug("Vertical")
+            for y in range(imheight):
+                for x in range(imwidth):
+                    # Set the bits for the column of pixels at the current position.
+                    if pixels[x, y] == 0:
+                        buf[int((x + y * self.width) / 8)] &= ~(0x80 >> (x % 8))
+        elif(imwidth == self.height and imheight == self.width):
+            logger.debug("Horizontal")
+            for y in range(imheight):
+                for x in range(imwidth):
+                    newx = y
+                    newy = self.height - x - 1
+                    if pixels[x, y] == 0:
+                        buf[int((newx + newy*self.width) / 8)] &= ~(0x80 >> (y % 8))
+        return buf
+
+    def display(self, image):
+        if (image == None):
+            return            
+        self.send_command(0x13);		     # Transfer new data
+        for i in range(0, self.width * self.height / 8) : 
+            self.send_data(image[i])
+
+    def display_NUM(self, NUM):
+        # pcnt = 0
+
+        self.send_command(0x13);		     #Transfer new data
+        for column in range(0, self.height):
+            for row in range(0, self.width/8):
+                if NUM == self.WHITE:
+                    self.send_data(0xFF)
+                        
+                elif NUM == self.BLACK:
+                    self.send_data(0x00)
+                        
+                elif NUM == self.Source_Line:
+                    self.send_data(0xAA)
+                        
+                elif NUM == self.Gate_Line:
+                    if(column%2):
+                        self.send_data(0xff) # An odd number of Gate line  
+                    else:
+                        self.send_data(0x00) # The even line Gate  
+                        
+                elif NUM == self.Chessboard:
+                    if(row>=(self.width/8/2) and column>=(self.height/2)):
+                        self.send_data(0xff)
+                    elif(row<(self.width/8/2) and column<(self.height/2)):
+                        self.send_data(0xff)									
+                    else:
+                        self.send_data(0x00)	
+                        
+                elif NUM == self.LEFT_BLACK_RIGHT_WHITE:
+                    if(row>=(self.width/8/2)):
+                        self.send_data(0xff)
+                    else:
+                        self.send_data(0x00)
+                            
+                elif NUM == self.UP_BLACK_DOWN_WHITE:
+                    if(column>=(self.height/2)):
+                        self.send_data(0xFF)
+                    else:
+                        self.send_data(0x00)
+                            
+                elif NUM == self.Frame:
+                    if(column==0 or column==(self.height-1)):
+                        self.send_data(0x00)					
+                    elif(row==0):
+                        self.send_data(0x7F)
+                    elif(row==(self.width/8-1)):
+                        self.send_data(0xFE);					
+                    else:
+                        self.send_data(0xFF);				
+                            
+                elif NUM == self.Crosstalk:
+                    if((row>=(self.width/8/3) and row<=(self.width/8/3*2) and column<=(self.height/3)) or (row>=(self.width/8/3) and row<=(self.width/8/3*2) and column>=(self.height/3*2))):
+                        self.send_data(0x00)
+                    else:
+                        self.send_data(0xFF)				
+                            
+                elif NUM == self.Image:
+                    epdconfig.delay_ms(1)
+                    # self.send_data(gImage_1[pcnt++])
+ 
+        
+    def Clear(self):
+        self.send_command(0x13);		     # Transfer new data
+        for i in range(0, self.width * self.height / 8) : 
+            self.send_data(0xFF)
+        self.lut_GC()
+        self.refresh()
+
+    def sleep(self):
+        self.send_command(0X07) # DEEP_SLEEP_MODE
+        self.send_data(0xA5)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

+ 263 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3g.py

@@ -0,0 +1,263 @@
+# *****************************************************************************
+# * | File        :	  epd7in3g.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1
+# * | Date        :   2022-07-20
+# # | Info        :   python demo
+# -----------------------------------------------------------------------------
+# ******************************************************************************/
+# 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.
+#
+
+import logging
+from . import epdconfig
+
+import PIL
+from PIL import Image
+import io
+
+# Display resolution
+EPD_WIDTH       = 800
+EPD_HEIGHT      = 480
+
+logger = logging.getLogger(__name__)
+
+class EPD:
+    def __init__(self):
+        self.reset_pin = epdconfig.RST_PIN
+        self.dc_pin = epdconfig.DC_PIN
+        self.busy_pin = epdconfig.BUSY_PIN
+        self.cs_pin = epdconfig.CS_PIN
+        self.width = EPD_WIDTH
+        self.height = EPD_HEIGHT
+        self.BLACK  = 0x000000   #   00  BGR
+        self.WHITE  = 0xffffff   #   01
+        self.YELLOW = 0x00ffff   #   10
+        self.RED    = 0x0000ff   #   11
+        
+
+        
+    # Hardware reset
+    def reset(self):
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200) 
+        epdconfig.digital_write(self.reset_pin, 0)         # module reset
+        epdconfig.delay_ms(2)
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200)   
+
+    def send_command(self, command):
+        epdconfig.digital_write(self.dc_pin, 0)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([command])
+        epdconfig.digital_write(self.cs_pin, 1)
+
+    def send_data(self, data):
+        epdconfig.digital_write(self.dc_pin, 1)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([data])
+        epdconfig.digital_write(self.cs_pin, 1)
+        
+    def ReadBusyH(self):
+        logger.debug("e-Paper busy H")
+        while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy H release")
+
+    def ReadBusyL(self):
+        logger.debug("e-Paper busy L")
+        while(epdconfig.digital_read(self.busy_pin) == 1):      # 0: busy, 1: idle
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy L release")
+
+    def TurnOnDisplay(self):
+        self.send_command(0x12) # DISPLAY_REFRESH
+        self.send_data(0x01)
+        self.ReadBusyH()
+
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0X00)
+        self.ReadBusyH()
+        
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        # EPD hardware init start
+
+        self.reset()
+
+        self.ReadBusyH()
+        epdconfig.delay_ms(30)
+
+        self.send_command(0xAA)
+        self.send_data(0x49)
+        self.send_data(0x55)
+        self.send_data(0x20)
+        self.send_data(0x08)
+        self.send_data(0x09)
+        self.send_data(0x18)
+
+        self.send_command(0x01)
+        self.send_data(0x3F)
+
+        self.send_command(0x00)
+        self.send_data(0x4F)
+        self.send_data(0x69)
+
+
+        self.send_command(0x05)
+        self.send_data(0x40)
+        self.send_data(0x1F)
+        self.send_data(0x1F)
+        self.send_data(0x2C)
+
+        self.send_command(0x08)
+        self.send_data(0x6F)
+        self.send_data(0x1F)
+        self.send_data(0x1F)
+        self.send_data(0x22)
+
+        # ===================
+        # 20211212
+        # First setting
+        self.send_command(0x06)
+        self.send_data(0x6F)
+        self.send_data(0x1F)
+        self.send_data(0x14)
+        self.send_data(0x14)
+        # ===================
+
+        self.send_command(0x03)
+        self.send_data(0x00)
+        self.send_data(0x54)
+        self.send_data(0x00)
+        self.send_data(0x44)
+
+        self.send_command(0x60)
+        self.send_data(0x02)
+        self.send_data(0x00)
+        # Please notice that PLL must be set for version 2 IC
+        self.send_command(0x30)
+        self.send_data(0x08)
+
+
+
+
+        self.send_command(0x50)
+        self.send_data(0x3F)
+
+        self.send_command(0x61)
+        self.send_data(0x03)
+        self.send_data(0x20)
+        self.send_data(0x01)
+        self.send_data(0xE0)
+
+        self.send_command(0xE3)
+        self.send_data(0x2F)
+
+        self.send_command(0x84)
+        self.send_data(0x01)
+        return 0
+
+    def getbuffer(self, image):
+        # Create a pallette with the 4 colors supported by the panel
+        pal_image = Image.new("P", (1,1))
+        pal_image.putpalette( (0,0,0,  255,255,255,  255,255,0,   255,0,0) + (0,0,0)*252)
+
+        # Check if we need to rotate the image
+        imwidth, imheight = image.size
+        if(imwidth == self.width and imheight == self.height):
+            image_temp = image
+        elif(imwidth == self.height and imheight == self.width):
+            image_temp = image.rotate(90, expand=True)
+        else:
+            logger.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height))
+
+        # Convert the soruce image to the 4 colors, dithering if needed
+        image_4color = image_temp.convert("RGB").quantize(palette=pal_image)
+        buf_4color = bytearray(image_4color.tobytes('raw'))
+
+        # into a single byte to transfer to the panel
+        buf = [0x00] * int(self.width * self.height / 4)
+        idx = 0
+        for i in range(0, len(buf_4color), 4):
+            buf[idx] = (buf_4color[i] << 6) + (buf_4color[i+1] << 4) + (buf_4color[i+2] << 2) + buf_4color[i+3]
+            idx += 1
+
+        return buf
+
+    def display(self, image):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x68)
+        self.send_data(0x01)
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                    self.send_data(image[i + j * Width])
+
+        self.TurnOnDisplay()
+        
+    def Clear(self, color):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x68)
+        self.send_data(0x01)
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                for k in range(0, 4):
+                    self.send_data(color)
+
+
+        self.send_command(0x68)
+        self.send_data(0x00)
+
+        self.TurnOnDisplay()
+
+    def sleep(self):
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0x00)
+
+        self.send_command(0x07) # DEEP_SLEEP
+        self.send_data(0XA5)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

二进制
RaspberryPi_JetsonNano/python/pic/1.64inch-1.bmp


二进制
RaspberryPi_JetsonNano/python/pic/1.64inch-2.bmp


二进制
RaspberryPi_JetsonNano/python/pic/3in52-1.bmp


二进制
RaspberryPi_JetsonNano/python/pic/3in52-2.bmp


二进制
RaspberryPi_JetsonNano/python/pic/3in52-3.bmp


二进制
RaspberryPi_JetsonNano/python/pic/3inch-1.bmp


二进制
RaspberryPi_JetsonNano/python/pic/3inch-2.bmp


二进制
RaspberryPi_JetsonNano/python/pic/3inch-3.bmp


二进制
RaspberryPi_JetsonNano/python/pic/7.3inch-1.bmp


二进制
RaspberryPi_JetsonNano/python/pic/7.3inch-2.bmp


二进制
RaspberryPi_JetsonNano/python/pic/7.3inch-3.bmp


文件差异内容过多而无法显示
+ 77 - 77
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian


+ 166 - 69
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx

@@ -234,6 +234,7 @@
       <pMultCmdsp></pMultCmdsp>
       <DebugDescription>
         <Enable>1</Enable>
+        <EnableFlashSeq>0</EnableFlashSeq>
         <EnableLog>0</EnableLog>
         <Protocol>2</Protocol>
         <DbgClock>10000000</DbgClock>
@@ -263,7 +264,7 @@
 
   <Group>
     <GroupName>Application/User</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -343,7 +344,7 @@
 
   <Group>
     <GroupName>Examples</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -839,17 +840,65 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>49</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\Examples\EPD_1in64g_test.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_1in64g_test.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>50</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\Examples\EPD_3in0g_test.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_3in0g_test.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>51</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\Examples\EPD_3in52_test.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_3in52_test.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>52</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\Examples\EPD_7in3g_test.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_7in3g_test.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
   </Group>
 
   <Group>
     <GroupName>e-Paper</GroupName>
-    <tvExp>1</tvExp>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>49</FileNumber>
+      <FileNumber>53</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -861,7 +910,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>50</FileNumber>
+      <FileNumber>54</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -873,7 +922,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>51</FileNumber>
+      <FileNumber>55</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -885,7 +934,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>52</FileNumber>
+      <FileNumber>56</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -897,7 +946,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>53</FileNumber>
+      <FileNumber>57</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -909,7 +958,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>54</FileNumber>
+      <FileNumber>58</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -921,7 +970,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>55</FileNumber>
+      <FileNumber>59</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -933,7 +982,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>56</FileNumber>
+      <FileNumber>60</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -945,7 +994,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>57</FileNumber>
+      <FileNumber>61</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -957,7 +1006,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>58</FileNumber>
+      <FileNumber>62</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -969,7 +1018,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>59</FileNumber>
+      <FileNumber>63</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -981,7 +1030,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>60</FileNumber>
+      <FileNumber>64</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -993,7 +1042,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>61</FileNumber>
+      <FileNumber>65</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1005,7 +1054,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>62</FileNumber>
+      <FileNumber>66</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1017,7 +1066,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>63</FileNumber>
+      <FileNumber>67</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1029,7 +1078,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>64</FileNumber>
+      <FileNumber>68</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1041,7 +1090,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>65</FileNumber>
+      <FileNumber>69</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1053,7 +1102,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>66</FileNumber>
+      <FileNumber>70</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1065,7 +1114,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>67</FileNumber>
+      <FileNumber>71</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1077,7 +1126,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>68</FileNumber>
+      <FileNumber>72</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1089,7 +1138,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>69</FileNumber>
+      <FileNumber>73</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1101,7 +1150,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>70</FileNumber>
+      <FileNumber>74</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1113,7 +1162,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>71</FileNumber>
+      <FileNumber>75</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1125,7 +1174,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>72</FileNumber>
+      <FileNumber>76</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1137,7 +1186,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>73</FileNumber>
+      <FileNumber>77</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1149,7 +1198,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>74</FileNumber>
+      <FileNumber>78</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1161,7 +1210,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>75</FileNumber>
+      <FileNumber>79</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1173,7 +1222,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>76</FileNumber>
+      <FileNumber>80</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1185,7 +1234,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>77</FileNumber>
+      <FileNumber>81</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1197,7 +1246,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>78</FileNumber>
+      <FileNumber>82</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1209,7 +1258,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>79</FileNumber>
+      <FileNumber>83</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1221,7 +1270,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>80</FileNumber>
+      <FileNumber>84</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1233,7 +1282,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>81</FileNumber>
+      <FileNumber>85</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1245,7 +1294,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>82</FileNumber>
+      <FileNumber>86</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1257,7 +1306,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>83</FileNumber>
+      <FileNumber>87</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1269,7 +1318,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>84</FileNumber>
+      <FileNumber>88</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1281,7 +1330,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>85</FileNumber>
+      <FileNumber>89</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1293,7 +1342,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>86</FileNumber>
+      <FileNumber>90</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1305,7 +1354,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>87</FileNumber>
+      <FileNumber>91</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1315,6 +1364,54 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>92</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\e-Paper\EPD_1in64g.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_1in64g.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>93</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\e-Paper\EPD_3in0g.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_3in0g.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>94</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\e-Paper\EPD_3in52.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_3in52.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>95</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\User\e-Paper\EPD_7in3g.c</PathWithFileName>
+      <FilenameWithoutPath>EPD_7in3g.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
   </Group>
 
   <Group>
@@ -1325,7 +1422,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>88</FileNumber>
+      <FileNumber>96</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1345,7 +1442,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>89</FileNumber>
+      <FileNumber>97</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1365,7 +1462,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>90</FileNumber>
+      <FileNumber>98</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1377,7 +1474,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>91</FileNumber>
+      <FileNumber>99</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1389,7 +1486,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>92</FileNumber>
+      <FileNumber>100</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1401,7 +1498,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>93</FileNumber>
+      <FileNumber>101</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1413,7 +1510,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>94</FileNumber>
+      <FileNumber>102</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1425,7 +1522,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>95</FileNumber>
+      <FileNumber>103</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1437,7 +1534,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>96</FileNumber>
+      <FileNumber>104</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1457,7 +1554,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>97</FileNumber>
+      <FileNumber>105</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1469,7 +1566,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>98</FileNumber>
+      <FileNumber>106</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1489,7 +1586,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>99</FileNumber>
+      <FileNumber>107</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1509,7 +1606,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>100</FileNumber>
+      <FileNumber>108</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1521,7 +1618,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>101</FileNumber>
+      <FileNumber>109</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1533,7 +1630,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>102</FileNumber>
+      <FileNumber>110</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1545,7 +1642,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>103</FileNumber>
+      <FileNumber>111</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1557,7 +1654,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>104</FileNumber>
+      <FileNumber>112</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1569,7 +1666,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>105</FileNumber>
+      <FileNumber>113</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1581,7 +1678,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>106</FileNumber>
+      <FileNumber>114</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1593,7 +1690,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>107</FileNumber>
+      <FileNumber>115</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1605,7 +1702,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>108</FileNumber>
+      <FileNumber>116</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1617,7 +1714,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>109</FileNumber>
+      <FileNumber>117</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1629,7 +1726,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>110</FileNumber>
+      <FileNumber>118</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1641,7 +1738,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>111</FileNumber>
+      <FileNumber>119</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1653,7 +1750,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>112</FileNumber>
+      <FileNumber>120</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1665,7 +1762,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>113</FileNumber>
+      <FileNumber>121</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1677,7 +1774,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>114</FileNumber>
+      <FileNumber>122</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 42 - 1
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx

@@ -16,7 +16,7 @@
         <TargetCommonOption>
           <Device>STM32F103ZE</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
+          <PackID>Keil.STM32F1xx_DFP.2.1.0</PackID>
           <PackURL>http://www.keil.com/pack/</PackURL>
           <Cpu>IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x807FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
@@ -184,6 +184,7 @@
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>0</RvdsVP>
+            <RvdsMve>0</RvdsMve>
             <hadIRAM2>0</hadIRAM2>
             <hadIROM2>0</hadIROM2>
             <StupSel>8</StupSel>
@@ -631,6 +632,26 @@
               <FileType>1</FileType>
               <FilePath>..\User\Examples\EPD_7in5_HD_test.c</FilePath>
             </File>
+            <File>
+              <FileName>EPD_1in64g_test.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\Examples\EPD_1in64g_test.c</FilePath>
+            </File>
+            <File>
+              <FileName>EPD_3in0g_test.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\Examples\EPD_3in0g_test.c</FilePath>
+            </File>
+            <File>
+              <FileName>EPD_3in52_test.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\Examples\EPD_3in52_test.c</FilePath>
+            </File>
+            <File>
+              <FileName>EPD_7in3g_test.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\Examples\EPD_7in3g_test.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>
@@ -831,6 +852,26 @@
               <FileType>1</FileType>
               <FilePath>..\User\e-Paper\EPD_7in5b_HD.c</FilePath>
             </File>
+            <File>
+              <FileName>EPD_1in64g.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\e-Paper\EPD_1in64g.c</FilePath>
+            </File>
+            <File>
+              <FileName>EPD_3in0g.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\e-Paper\EPD_3in0g.c</FilePath>
+            </File>
+            <File>
+              <FileName>EPD_3in52.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\e-Paper\EPD_3in52.c</FilePath>
+            </File>
+            <File>
+              <FileName>EPD_7in3g.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\User\e-Paper\EPD_7in3g.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>

+ 154 - 23
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm

@@ -3,58 +3,189 @@
 <pre>
 <h1>µVision Build Log</h1>
 <h2>Tool Versions:</h2>
-IDE-Version: ¦ÌVision V5.25.2.0
+IDE-Version: ¦ÌVision V5.26.2.0
 Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
-License Information: ass ass, ass, LIC=JL2UH-W872P-CJR6Z-JYZTW-ESB48-R6YF4
+License Information:  ,  , LIC=RC93N-YLJYL-JJH6S-LI3Z1-D1AV2-99PL8
  
 Tool Versions:
-Toolchain:       MDK-ARM Plus  Version: 5.25.2.0
-Toolchain Path:  D:\Program Files\keil5\ARM\ARMCC\Bin
+Toolchain:       MDK-ARM Plus  Version: 5.26.2.0
+Toolchain Path:  D:\KEIL\azwz\ARM\ARMCC\Bin
 C Compiler:      Armcc.exe V5.06 update 6 (build 750)
 Assembler:       Armasm.exe V5.06 update 6 (build 750)
 Linker/Locator:  ArmLink.exe V5.06 update 6 (build 750)
 Library Manager: ArmAr.exe V5.06 update 6 (build 750)
 Hex Converter:   FromElf.exe V5.06 update 6 (build 750)
-CPU DLL:         SARMCM3.DLL V5.25.2.0
-Dialog DLL:      DCM.DLL V1.17.1.0
-Target DLL:      STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0
-Dialog DLL:      TCM.DLL V1.35.1.0
+CPU DLL:         SARMCM3.DLL V5.26.2.0
+Dialog DLL:      DCM.DLL V1.17.2.0
+Target DLL:      STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
+Dialog DLL:      TCM.DLL V1.36.1.0
  
 <h2>Project:</h2>
-E:\github\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
-Project File Date:  04/26/2022
+E:\ÏîÄ¿\e-Paper\Code\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
+Project File Date:  07/22/2022
 
 <h2>Output:</h2>
-*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin'
+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\KEIL\azwz\ARM\ARMCC\Bin'
 Build target 'epd-demo'
+assembling startup_stm32f103xe.s...
+compiling usart.c...
+compiling gpio.c...
+compiling spi.c...
+compiling stm32f1xx_it.c...
+compiling main.c...
+compiling ImageData2.c...
+compiling ImageData.c...
+compiling stm32f1xx_hal_msp.c...
+compiling EPD_1in54b_test.c...
+compiling EPD_1in54_test.c...
+compiling EPD_1in02_test.c...
+compiling EPD_1in54_V2_test.c...
+compiling EPD_2in7b_V2_test.c...
+compiling EPD_2in7b_test.c...
+compiling EPD_1in54b_V2_test.c...
+compiling EPD_1in54c_test.c...
+compiling EPD_2in7_test.c...
+compiling EPD_2in9bc_test.c...
+compiling EPD_2in9d_test.c...
+compiling EPD_2in9b_V3_test.c...
+compiling EPD_2in9_test.c...
+compiling EPD_2in9_V2_test.c...
 compiling EPD_2in13b_V4_test.c...
+compiling EPD_2in13_test.c...
+compiling EPD_2in13b_V3_test.c...
+compiling EPD_2in13_V3_test.c...
+compiling EPD_2in13_V2_test.c...
+compiling EPD_2in13bc_test.c...
+compiling EPD_3in7_test.c...
+compiling EPD_2in13d_test.c...
+compiling EPD_2in66b_test.c...
+compiling EPD_2in66_test.c...
+compiling EPD_4in2_test.c...
+compiling EPD_4in01f_test.c...
+compiling EPD_4in2b_V2_test.c...
+compiling EPD_4in2bc_test.c...
+compiling EPD_5in65f_test.c...
+compiling EPD_5in83_V2_test.c...
+compiling EPD_7in5_test.c...
+compiling EPD_5in83b_V2_test.c...
+compiling EPD_5in83bc_test.c...
+compiling EPD_5in83_test.c...
+compiling EPD_7in5b_V2_test.c...
+compiling EPD_7in5b_HD_test.c...
+compiling EPD_7in5bc_test.c...
+compiling EPD_7in5_V2_test.c...
+compiling EPD_7in5_HD_test.c...
+compiling EPD_3in52_test.c...
+compiling EPD_7in3g_test.c...
+compiling EPD_3in0g_test.c...
+compiling EPD_1in02d.c...
+compiling EPD_1in64g_test.c...
+compiling EPD_1in54c.c...
+compiling EPD_1in54_V2.c...
+compiling EPD_1in54b.c...
+compiling EPD_1in54b_V2.c...
+compiling EPD_1in54.c...
+compiling EPD_2in7b_V2.c...
+compiling EPD_2in9.c...
+compiling EPD_2in7.c...
+compiling EPD_2in7b.c...
+compiling EPD_2in9_V2.c...
+compiling EPD_2in9b_V3.c...
+compiling EPD_2in9bc.c...
+compiling EPD_2in9d.c...
+compiling EPD_2in13.c...
+compiling EPD_2in13_V2.c...
+compiling EPD_2in13b_V3.c...
+compiling EPD_2in13_V3.c...
+compiling EPD_2in13d.c...
+compiling EPD_2in13b_V4.c...
+compiling EPD_2in13bc.c...
+compiling EPD_3in7.c...
+compiling EPD_2in66b.c...
+compiling EPD_4in01f.c...
+compiling EPD_2in66.c...
+compiling EPD_4in2.c...
+..\User\e-Paper\EPD_4in2.c(612): warning:  #550-D: variable "Height"  was set but never used
+  	UWORD Width, Height;
+..\User\e-Paper\EPD_4in2.c: 1 warning, 0 errors
+compiling EPD_5in83_V2.c...
+compiling EPD_5in65f.c...
+compiling EPD_4in2b_V2.c...
+compiling EPD_4in2bc.c...
+compiling EPD_5in83.c...
+compiling EPD_7in5_V2.c...
+compiling EPD_7in5_HD.c...
+compiling EPD_7in5.c...
+compiling EPD_5in83bc.c...
+compiling EPD_5in83b_V2.c...
+compiling EPD_3in0g.c...
+..\User\e-Paper\EPD_3in0g.c(86): warning:  #177-D: function "EPD_3IN0G_ReadBusyL"  was declared but never referenced
+  static void EPD_3IN0G_ReadBusyL(void)
+..\User\e-Paper\EPD_3in0g.c: 1 warning, 0 errors
+compiling EPD_7in5bc.c...
+compiling EPD_7in5b_HD.c...
+compiling EPD_1in64g.c...
+..\User\e-Paper\EPD_1in64g.c(90): warning:  #177-D: function "EPD_1IN64G_ReadBusyL"  was declared but never referenced
+  static void EPD_1IN64G_ReadBusyL(void)
+..\User\e-Paper\EPD_1in64g.c: 1 warning, 0 errors
+compiling EPD_7in5b_V2.c...
+compiling font8.c...
+compiling font12.c...
+compiling font12CN.c...
+compiling font16.c...
+compiling font20.c...
+compiling font24.c...
+compiling font24CN.c...
+compiling DEV_Config.c...
+compiling EPD_3in52.c...
+compiling EPD_7in3g.c...
+..\User\e-Paper\EPD_7in3g.c(86): warning:  #177-D: function "EPD_7IN3G_ReadBusyL"  was declared but never referenced
+  static void EPD_7IN3G_ReadBusyL(void)
+..\User\e-Paper\EPD_7in3g.c: 1 warning, 0 errors
+compiling GUI_Paint.c...
+compiling system_stm32f1xx.c...
+compiling stm32f1xx_hal_rcc_ex.c...
+compiling stm32f1xx_hal_spi.c...
+compiling stm32f1xx_hal.c...
+compiling stm32f1xx_hal_rcc.c...
+compiling stm32f1xx_hal_gpio_ex.c...
+compiling stm32f1xx_hal_pwr.c...
+compiling stm32f1xx_hal_flash.c...
+compiling stm32f1xx_hal_gpio.c...
+compiling stm32f1xx_hal_dma.c...
+compiling stm32f1xx_hal_cortex.c...
+compiling stm32f1xx_hal_tim_ex.c...
+compiling stm32f1xx_hal_exti.c...
+compiling stm32f1xx_hal_tim.c...
+compiling stm32f1xx_hal_uart.c...
+compiling stm32f1xx_hal_flash_ex.c...
 linking...
-Program Size: Code=24104 RO-data=14272 RW-data=56 ZI-data=41136  
+Program Size: Code=24300 RO-data=9260 RW-data=56 ZI-data=41136  
 FromELF: creating hex file...
-"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s).
+"epd-demo\epd-demo.axf" - 0 Error(s), 4 Warning(s).
 
 <h2>Software Packages used:</h2>
 
 Package Vendor: ARM
-                http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack
-                ARM.CMSIS.5.7.0
-                CMSIS (Cortex Microcontroller Software Interface Standard)
-   * Component: CORE Version: 5.4.0
+                http://www.keil.com/pack/ARM.CMSIS.5.9.0.pack
+                ARM.CMSIS.5.9.0
+                CMSIS (Common Microcontroller Software Interface Standard)
+   * Component: CORE Version: 5.6.0
 
 Package Vendor: Keil
-                http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.3.0.pack
-                Keil.STM32F1xx_DFP.2.3.0
+                http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack
+                Keil.STM32F1xx_DFP.2.1.0
                 STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
 
 <h2>Collection of Component include folders:</h2>
   .\RTE\_epd-demo
-  D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\Include
-  D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include
+  D:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include
+  D:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include
 
 <h2>Collection of Component Files used:</h2>
 
-   * Component: ARM::CMSIS:CORE:5.4.0
-Build Time Elapsed:  00:00:03
+   * Component: ARM::CMSIS:CORE:5.6.0
+Build Time Elapsed:  00:00:47
 </pre>
 </body>
 </html>

文件差异内容过多而无法显示
+ 390 - 389
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm


文件差异内容过多而无法显示
+ 473 - 362
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map


+ 5 - 5
STM32/STM32-F103ZET6/MDK-ARM/startup_stm32f103xe.lst

@@ -580,17 +580,17 @@ ARM Macro Assembler    Page 9
               00000000 
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=epd-demo\startup_stm32f103xe.d -oepd-demo\startup_stm32f103xe.o -I
-.\RTE\_epd-demo -I"D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\I
-nclude" -I"D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Incl
-ude" --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 525" -
+.\RTE\_epd-demo -ID:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include -ID:
+\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --predefine="__MICR
+OLIB SETA 1" --predefine="__UVISION_VERSION SETA 526" --predefine="_RTE_ SETA 1
 
 
 
 ARM Macro Assembler    Page 10 
 
 
--predefine="_RTE_ SETA 1" --predefine="STM32F10X_HD SETA 1" --list=startup_stm3
-2f103xe.lst startup_stm32f103xe.s
+" --predefine="STM32F10X_HD SETA 1" --list=startup_stm32f103xe.lst startup_stm3
+2f103xe.s
 
 
 

+ 6 - 1
STM32/STM32-F103ZET6/Src/main.c

@@ -93,6 +93,10 @@ int main(void)
   MX_USART1_UART_Init();
   MX_SPI1_Init();
   /* USER CODE BEGIN 2 */
+
+//    EPD_1in64g_test();
+//    EPD_3in0g_test();
+//    EPD_7in3g_test();
 		
 //		EPD_1in02d_test();
 		
@@ -117,12 +121,13 @@ int main(void)
 // 		EPD_2in13_V3_test();
 //		EPD_2in13bc_test();
 //		EPD_2in13b_V3_test();
-      EPD_2in13b_V4_test();
+//      EPD_2in13b_V4_test();
 //		EPD_2in13d_test();
 	
 //		EPD_2in66_test();
 //		EPD_2in66b_test();
 		
+//		EPD_3in52_test();
 //		EPD_3in7_test();
 	
 //		EPD_4in01f_test();	

+ 168 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_1in64g_test.c

@@ -0,0 +1,168 @@
+/*****************************************************************************
+* | File      	:   EPD_1in64g_test.c
+* | Author      :   Waveshare team
+* | Function    :   1.64inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 "EPD_Test.h"
+#include "EPD_1in64g.h"
+#include "time.h"
+
+int EPD_1in64g_test(void)
+{
+    printf("EPD_1IN64G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_1IN64G_Init();
+
+    printf("White \r\n");
+    EPD_1IN64G_Clear(EPD_1IN64G_WHITE); // While
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
+    UWORD Imagesize = ((EPD_1IN64G_WIDTH % 4 == 0)? (EPD_1IN64G_WIDTH / 4 ): (EPD_1IN64G_WIDTH / 4 + 1)) * EPD_1IN64G_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_1IN64G_WIDTH, EPD_1IN64G_HEIGHT, 0, EPD_1IN64G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show bmp
+    printf("show BMP-----------------\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+		Paint_DrawBitMap(gImage_1in64g);
+
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+
+#endif        
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, Red_4Color, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, Yellow_4Color, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, Black_4Color, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, Yellow_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, Red_4Color, Yellow_4Color);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, Yellow_4Color, Black_4Color);
+    Paint_DrawString_CN(10, 125, "微雪电子", &Font24CN, Red_4Color, White_4Color);
+    Paint_DrawNum(10, 50, 123456, &Font12, Red_4Color, White_4Color);
+
+    printf("EPD_Display\r\n");
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawRectangle(1, 1, 168, 55, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, 112, 167, 167, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(59, 1, 109, 167, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    printf("EPD_Display\r\n");
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    int wNumber, lNumber;
+    wNumber = (EPD_1IN64G_WIDTH/80)==0 ? (EPD_1IN64G_WIDTH/80) : (EPD_1IN64G_WIDTH/80)+1;
+    lNumber = (EPD_1IN64G_HEIGHT/20)==0 ? (EPD_1IN64G_HEIGHT/20) : (EPD_1IN64G_HEIGHT/20)+1;
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    for(int j=0; j<lNumber; j++) {
+        if(j%2 == 0) {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+        else {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+    }
+
+    printf("EPD_Display\r\n");
+    EPD_1IN64G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_1IN64G_Clear(EPD_1IN64G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_1IN64G_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    
+    return 0;
+}
+

+ 172 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_3in0g_test.c

@@ -0,0 +1,172 @@
+/*****************************************************************************
+* | File      	:   EPD_3in0g_test.c
+* | Author      :   Waveshare team
+* | Function    :   3inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-15
+* | 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 "EPD_Test.h"
+#include "EPD_3in0g.h"
+#include "time.h"
+
+int EPD_3in0g_test(void)
+{
+    printf("EPD_3IN0G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_3IN0G_Init();
+
+    printf("Black \r\n");
+    EPD_3IN0G_Clear(EPD_3IN0G_WHITE); // WHITE
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
+    UWORD Imagesize = ((EPD_3IN0G_WIDTH % 4 == 0)? (EPD_3IN0G_WIDTH / 4 ): (EPD_3IN0G_WIDTH / 4 + 1)) * EPD_3IN0G_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_3IN0G_WIDTH, EPD_3IN0G_HEIGHT, 0, EPD_3IN0G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show bmp
+    printf("show BMP-----------------\r\n");
+    EPD_3IN0G_Init();
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+		Paint_DrawBitMap(gImage_3in0g);
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    EPD_3IN0G_Init();
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, Red_4Color, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, Yellow_4Color, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, Black_4Color, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, Yellow_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, Red_4Color, Yellow_4Color);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, Yellow_4Color, Black_4Color);
+    Paint_DrawString_CN(10, 125, "΢ѩµç×Ó", &Font24CN, Red_4Color, White_4Color);
+    Paint_DrawNum(10, 50, 123456, &Font12, Red_4Color, White_4Color);
+
+    printf("EPD_Display\r\n");
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    EPD_3IN0G_Init();
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawRectangle(1, 1, 167, 86, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, 314, 167, 399, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(59, 1, 109, 399, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    printf("EPD_Display\r\n");
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    EPD_3IN0G_Init();
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    int wNumber, lNumber;
+    wNumber = (EPD_3IN0G_WIDTH/80)==0 ? (EPD_3IN0G_WIDTH/80) : (EPD_3IN0G_WIDTH/80)+1;
+    lNumber = (EPD_3IN0G_HEIGHT/20)==0 ? (EPD_3IN0G_HEIGHT/20) : (EPD_3IN0G_HEIGHT/20)+1;
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    for(int j=0; j<lNumber; j++) {
+        if(j%2 == 0) {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+        else {
+            for(int i=0; i<wNumber; i++) {
+                Paint_DrawRectangle(1+i*80, 1+j*20, 20+i*80, 20+j*20, White_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(21+i*80, 1+j*20, 40+i*80, 20+j*20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(41+i*80, 1+j*20, 60+i*80, 20+j*20, Red_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+                Paint_DrawRectangle(61+i*80, 1+j*20, 80+i*80, 20+j*20, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+            }
+        }
+
+    }
+
+    printf("EPD_Display\r\n");
+    EPD_3IN0G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    EPD_3IN0G_Init();
+    printf("Clear...\r\n");
+    EPD_3IN0G_Clear(EPD_3IN0G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_3IN0G_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    
+    return 0;
+}
+

+ 135 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_3in52_test.c

@@ -0,0 +1,135 @@
+/*****************************************************************************
+* | File      	:   EPD_3IN52_test.c
+* | Author      :   Waveshare team
+* | Function    :   3.52inch e-paper test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2020-07-16
+* | 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 "EPD_Test.h"
+#include "EPD_3in52.h"
+#include <time.h> 
+
+int EPD_3in52_test(void)
+{
+    printf("EPD_3IN52_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+		EPD_3IN52_Init();
+
+    EPD_3IN52_display_NUM(EPD_3IN52_WHITE);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+
+    EPD_3IN52_SendCommand(0x50);
+    EPD_3IN52_SendData(0x17);
+
+    DEV_Delay_ms(500);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
+    UWORD Imagesize = ((EPD_3IN52_WIDTH % 8 == 0)? (EPD_3IN52_WIDTH / 8 ): (EPD_3IN52_WIDTH / 8 + 1)) * EPD_3IN52_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_3IN52_WIDTH, EPD_3IN52_HEIGHT, 270, WHITE);
+    Paint_Clear(WHITE);
+    
+#if 1   // GC waveform refresh 
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+		Paint_DrawBitMap(gImage_3in52);
+		
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+
+
+#endif
+
+#if 0  //DU waveform refresh
+    printf("Quick refresh is supported, but the refresh effect is not good, but it is not recommended\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+		Paint_DrawBitMap(gImage_3in52);
+		
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_DU();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+
+#endif
+
+#if 1 
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
+    Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
+    Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
+    printf("EPD_Display\r\n");
+    EPD_3IN52_display(BlackImage);
+    EPD_3IN52_lut_GC();
+    EPD_3IN52_refresh();
+    DEV_Delay_ms(2000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_3IN52_Clear();
+    
+    // Sleep & close 5V
+    printf("Goto Sleep...\r\n");
+    EPD_3IN52_sleep();
+
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+
+    return 0;
+}
+

+ 118 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_7in3g_test.c

@@ -0,0 +1,118 @@
+/*****************************************************************************
+* | File      	:   EPD_7in3g_test.c
+* | Author      :   Waveshare team
+* | Function    :   7.3inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-07-22
+* | 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 "EPD_Test.h"
+#include "EPD_7in3g.h"
+#include "time.h"
+
+int EPD_7in3g_test(void)
+{
+    printf("EPD_7IN3G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_7IN3G_Init();
+
+    printf("Black \r\n");
+    EPD_7IN3G_Clear(EPD_7IN3G_WHITE); // WHITE
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
+    UDOUBLE Imagesize = ((EPD_7IN3G_WIDTH % 4 == 0)? (EPD_7IN3G_WIDTH / 4 ): (EPD_7IN3G_WIDTH / 4 + 1)) * EPD_7IN3G_HEIGHT;
+		Imagesize = Imagesize/4;
+		printf("Not enough memory, only part of the window is displayed\r\n");
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_7IN3G_WIDTH/2, EPD_7IN3G_HEIGHT/2 , 0, EPD_7IN3G_WHITE);
+    Paint_SetScale(4);
+
+#if 0   // show bmp
+		//Not enough memory,Not supported
+    printf("show BMP-----------------\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+		Paint_DrawBitMap(gImage_7in3g);
+    EPD_7IN3G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+
+
+#endif   
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(0x55);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, Red_4Color, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, Yellow_4Color, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, Black_4Color, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, Yellow_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, Black_4Color, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, Red_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, Yellow_4Color, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, Red_4Color, Yellow_4Color);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, Yellow_4Color, Black_4Color);
+    Paint_DrawString_CN(10, 125, "΢ѩµç×Ó", &Font24CN, Red_4Color, White_4Color);
+    Paint_DrawNum(10, 50, 123456, &Font12, Red_4Color, White_4Color);
+
+    printf("EPD_Display\r\n");
+    EPD_7IN3G_Display_part(BlackImage, 0, 0, 400, 240);
+    DEV_Delay_ms(3000);
+#endif
+
+
+    printf("Clear...\r\n");
+    EPD_7IN3G_Clear(EPD_7IN3G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_7IN3G_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    
+    return 0;
+}
+

+ 5 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_Test.h

@@ -36,6 +36,10 @@
 #include "Debug.h"
 #include <stdlib.h> // malloc() free()
 
+int EPD_1in64g_test(void);
+int EPD_3in0g_test(void);
+int EPD_7in3g_test(void);
+
 int EPD_1in02d_test(void);
 
 int EPD_1in54_test(void);
@@ -65,6 +69,7 @@ int EPD_2in13d_test(void);
 int EPD_2in66_test(void);
 int EPD_2in66b_test(void);
 
+int EPD_3in52_test(void);
 int EPD_3in7_test(void);
 
 int EPD_4in01f_test(void);

+ 677 - 0
STM32/STM32-F103ZET6/User/Examples/ImageData.c

@@ -7223,6 +7223,683 @@ const unsigned char gImage_2in66bb[5630] = { /*0X00,0X01,0X98,0X00,0X28,0X01,*/
 
 
 
+const unsigned char gImage_3in52[10800] = { /* 0X81,0X01,0X68,0X01,0XF0,0X00, */
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X00,0X00,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,
+0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X70,0X7C,
+0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X70,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,
+0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0XFE,0X00,0X00,
+0X00,0X3F,0XFF,0XF0,0X00,0X01,0XFC,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X7F,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XF1,0XFF,0X00,0X00,0X00,0X3F,
+0XFF,0XE0,0X00,0X07,0XFF,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XF3,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XC0,
+0X00,0X1F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XF3,0XEF,0X80,0X00,0X00,0X3F,0XFF,0X80,0X00,0X7F,
+0XFF,0XEC,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XC3,0XC7,0X80,0X00,0X00,0X3F,0XFF,0X00,0X01,0XFF,0XFF,0XFE,
+0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XC3,0XC7,0X80,0X00,0X00,0X3F,0XFE,0X00,0X07,0XFF,0XFF,0XFE,0X00,0X7F,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XC7,0X87,0X80,0X00,0X00,0X3F,0XFC,0X00,0X0F,0XFF,0X87,0XFF,0X00,0X7F,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC7,0X87,
+0X80,0X00,0X00,0X3F,0XFC,0X00,0X1F,0XFE,0X00,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0X8F,0X80,0X00,
+0X00,0X3F,0XF8,0X00,0X1F,0XFE,0X00,0X7F,0XC0,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0X1F,0X00,0X00,0X00,0X3F,
+0XF8,0X00,0X1F,0XFF,0X80,0X7F,0XE0,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0X1F,0X00,0X00,0X00,0X3F,0XF0,0X00,
+0X0F,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0XFE,0X1E,0X00,0X00,0X00,0X3F,0XF0,0X00,0X01,0XFF,
+0XFC,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X38,0X1C,0X00,0X00,0X00,0X3F,0XE0,0X00,0X00,0X7F,0XFF,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XE0,0X00,0X00,0X1F,0XFF,0X80,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X07,0XFF,0X80,0X00,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XC0,0X3F,0XF0,0X01,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,
+0X00,0X7D,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XC0,0X1F,0XFC,0X07,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X78,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XC0,0X0F,0XFF,0X1F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XF8,0X00,0X70,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0X80,0X07,
+0XFF,0XE7,0XFE,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XF0,0X00,0X60,0X3F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0X80,0X03,0XFF,0XF9,
+0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0X80,0X01,0XFF,0XFF,0X00,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0X80,0X00,0XDF,0XFF,0XC0,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0X80,0X00,0X07,0XFF,0XF8,0X00,0X00,0X7F,0XFF,0XFF,
+0XFF,0XC0,0X70,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,
+0XF0,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XC2,0X00,0X00,
+0X00,0X3F,0X80,0X00,0X00,0X3F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XC6,0X00,0X00,0X00,0X3F,
+0X80,0X00,0X00,0X0F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XCF,0X00,0X00,0X00,0X3F,0X80,0X00,
+0X00,0X3F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XCF,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0XFF,
+0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XC0,0XF0,0X70,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XF3,0XC7,0X80,0X00,0X00,0X3F,0X80,0X00,0X07,0XFF,0XFE,0X00,
+0X00,0XFF,0XFF,0XFF,0XFF,0XC0,0X70,0X60,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XC3,0XC7,0X80,0X00,0X00,0X3F,0X80,0X00,0X1F,0XFF,0XF0,0X00,0X00,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X10,0X40,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XC3,0XC7,0X80,0X00,0X00,0X3F,0X80,0X00,0X1F,0XFF,0X80,0X00,0X00,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC3,0XC7,
+0X80,0X00,0X00,0X3F,0X80,0X00,0X1F,0XFE,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC3,0XC7,0X80,0X00,
+0X00,0X3F,0X80,0X00,0X1F,0XFF,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,
+0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE3,0XCF,0X80,0X00,0X00,0X3F,
+0X80,0X00,0X0F,0XFF,0XC0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,
+0X03,0XFF,0XF8,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X7F,
+0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0XFF,0XFE,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X1F,0XFF,0X80,
+0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X3F,0XFC,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X3F,0XFF,0X80,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X0F,0XE0,0X00,0X00,0X00,0X3F,0X80,0X00,0X01,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0X80,0X00,0X0F,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XC0,0X1F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X00,0X00,0X80,0X00,
+0X00,0X3F,0X80,0X00,0X0F,0XFF,0XFE,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X80,0X03,0X80,0X00,0X00,0X3F,
+0X80,0X00,0X0F,0XFF,0XF0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X0F,0X80,0X00,0X00,0X3F,0X80,0X00,
+0X0F,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XF0,0X3F,0X80,0X00,0X00,0X3F,0X80,0X00,0X0F,0XFC,
+0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFC,0XFF,0X80,0X00,0X00,0X3F,0X80,0X00,0X0F,0XE0,0X00,0X01,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X01,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,0X0F,0X00,0X00,0X03,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X7F,0XFC,0X00,0X00,0X00,0X3F,0X80,0X00,0X08,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XF0,
+0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X3F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XF0,0X00,0X00,
+0X00,0X3F,0X80,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XF0,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X00,0X3F,
+0X80,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0X00,0X00,0X00,0X3F,0X80,0X00,
+0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XF0,0X1F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XF8,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XC0,0X07,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X7F,0XF0,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0X00,0X01,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF8,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X01,0XF3,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X01,0XF3,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X01,0XF3,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X01,0XF3,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XC0,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XF8,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X7F,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7C,
+0X3F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF8,0X1F,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X7F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,
+0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC1,0XF0,0X7C,0X3F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC1,0XF0,0X7C,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0XF0,0X0F,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC1,0XF0,0X7C,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC1,0XF0,0X7C,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X70,0X38,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X30,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X38,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X38,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,
+0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X38,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3C,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF8,0X3C,0X00,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X3E,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X83,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE0,0X00,0X07,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XE0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,
+0X07,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0,0X3E,0X01,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,
+0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0X01,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,
+0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,
+0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,
+0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X81,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,
+0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF1,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC1,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,
+0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0XFF,0XFC,0X00,0X00,0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X7D,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X78,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,
+0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X70,0X7F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X60,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X00,0X70,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X70,0X78,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XF0,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0XF0,0X70,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X3D,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X70,0X60,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X38,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X10,0X40,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X80,0X30,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,
+0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X38,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X06,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,
+0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X01,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X06,0X38,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X82,0X20,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF8,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XF8,0X00,0X03,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFE,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X1F,0XFF,0X80,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X07,0XFF,0XC0,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,
+0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X03,0XFF,0XF0,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0XFF,
+0XFC,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFE,0X03,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,0XFF,0X83,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0XFF,0XE3,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XF0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X01,0XFF,0XFB,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XF0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XF0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X00,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X03,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFC,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0X83,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0X83,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0X83,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0X83,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X7F,0X80,0X00,0X00,0X7F,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X3F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X03,0XFF,0XF0,0X00,0X00,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,0X7F,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X1F,0XFF,0XFF,0X00,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X7F,0XFF,0XFF,0XC0,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XF0,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XF8,
+0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFC,0X00,0X7F,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XE0,0X7F,0XFE,0X00,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X1F,0XFF,0X00,0X7F,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X00,0X07,0XFF,0X80,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0X03,0XFF,0XE0,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X01,0XFF,0XF0,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X00,0X7F,0XF8,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X3F,
+0XFC,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X1F,0XFE,0X7F,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X0F,0XFF,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X07,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XC7,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0XFF,0X80,0X00,0X03,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X0F,0XC1,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XC0,0X00,0X00,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0XC0,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0XFF,0XF8,0X00,0X00,0X7F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XC0,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFE,
+0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X0F,0XC0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFE,0X00,0X00,
+0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0X0F,0XC0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFE,0X00,0X00,0X0F,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X0F,0XC0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFE,0X00,0X00,0X07,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XF0,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFE,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X07,0XFE,0X00,0X00,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X7F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X7E,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X0F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X06,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X7F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X3F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
+0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,
+0X3F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X01,0X00,0X00,0X08,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,
+0X00,0X00,0X1C,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X7F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X07,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X0F,0X80,0X00,
+0X3E,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0X1F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,0XC0,0X00,0X7F,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XE0,0X00,0XFF,0X80,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X7F,0XF8,0X03,0XFF,0XC0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X3F,0XFC,0X07,0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X1F,0XFE,0X0F,0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X0F,0XFF,0X1F,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,
+0XFF,0XBF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,
+0XF8,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XE0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XC0,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X1F,0XFF,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,
+0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X8F,0XFC,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X7F,0XFF,0XC0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,
+0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XF0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
+0X7F,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XBF,0XF8,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X01,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0XFF,0X1F,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X1F,0XFE,0X0F,0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFC,0X07,0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,
+0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X7F,0XF8,0X03,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF8,0X07,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,
+0XF0,0X01,0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,0XE0,0X00,
+0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X0F,0XC0,0X00,0X7E,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0X00,0X00,0X1C,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X02,0X00,0X00,0X08,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,
+0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X03,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,
+0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X03,0XC0,0X00,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X1F,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X80,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFC,0X01,0XFF,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X7F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X38,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XE0,0X00,0X3F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,
+0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XE0,0X00,0X0F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,
+0X07,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X06,0X18,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X01,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0XFF,0XC0,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X87,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X30,0X00,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XFC,0X00,0X00,0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0XFE,0X00,0X78,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC7,0X80,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0X00,0X38,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF7,0XC1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X81,0XFF,0XC0,0X18,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,
+0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X81,0XFF,0XE0,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFC,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,
+0XF0,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XF8,0X00,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0XFC,0X00,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X0F,0XFE,0X00,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X0F,0XFF,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X03,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X0F,0XFF,0X80,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE0,0X0F,0XFF,0XC0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF0,0X0F,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,
+0XFF,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X7F,0XFF,0XBF,0XFF,0XFF,0XFF,0XFF,0XFE,0X0F,0XFF,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X3F,0XFE,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X1F,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,
+0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X03,0XC0,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X0F,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X01,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,
+0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X81,0XFF,0X80,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFE,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFE,
+0X00,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X7F,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X00,0X00,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X7F,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFC,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X00,0X00,0X7F,0XFF,
+0XFC,0X00,0X00,0X01,0XFE,0X00,0X7F,0XFE,0X1F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X00,0X00,0X3F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0XFF,0XF0,0X03,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0XFF,0XC0,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,
+0XFF,0X80,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X81,0XF0,0X1F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0XFF,0X80,
+0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X81,0XF0,0X3F,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X00,0XFF,0X00,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,
+0X7F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X80,0XFF,0X00,0X00,0X3F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XF1,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X80,0XFF,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XC1,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X7F,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0X7F,0XC0,0X7F,0X00,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X81,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XF8,0X7F,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0X7F,0XE0,0X7F,0X00,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X81,
+0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X78,0X7F,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X3F,0XF0,0X3F,0X80,0X00,0X7F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,
+0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFC,
+0X3F,0XC0,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X80,0X00,0X1F,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0X1F,0XE0,
+0X03,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0X80,0X00,0X1F,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XF0,0X3F,0XFF,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,
+0X3F,0X80,0X7F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X07,0XF8,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0X80,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X81,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0X81,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0X83,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,
+0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0X87,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X1F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,
+0XFF,0X80,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFE,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XC0,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X80,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X80,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X7C,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X38,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X7F,0X80,0X03,
+0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X03,0XFF,0XE0,0X0F,0XFF,0XE0,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF0,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XF0,0X1F,0XFF,0XF8,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0X0E,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,
+0X7F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XFF,0XF8,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0X06,0X18,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X7F,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0X87,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X3F,0XFF,0XFE,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X87,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XC7,0X80,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XF7,0XC1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,
+0X87,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X0F,0XF8,0X07,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XC0,0XFF,0XFE,0X01,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,
+0XF0,0X01,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0X80,0X3F,0XFC,0X00,0X7F,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,0XE0,0X00,
+0XFF,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X1F,0XF8,0X00,0X7F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XC0,0X00,0XFF,0XFF,
+0XFC,0X00,0X00,0X01,0XFE,0X00,0X1F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0X80,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X80,0X00,0X7F,0XFF,0XFC,0X00,
+0X00,0X01,0XFE,0X00,0X0F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,
+0XFE,0X00,0X0F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0X80,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,
+0X0F,0XF0,0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0X00,0X00,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X0F,0XF0,
+0X00,0X3F,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X80,0X70,0X07,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFE,0X00,0X0F,0XF0,0X00,0X3F,
+0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XF8,
+0X07,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X00,0X0F,0XF0,0X00,0X7F,0XC0,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,
+0X1F,0XFF,0XFC,0X00,0X00,0X01,0XFF,0X80,0X0F,0XF0,0X00,0X7F,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XF8,0X1C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,0X1F,0XFF,
+0XFC,0X00,0X00,0X00,0XFF,0XC0,0X0F,0XF0,0X00,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,
+0XF0,0X08,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,0X1F,0XFF,0XFC,0X00,
+0X00,0X00,0XFF,0XF8,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XE0,0X00,
+0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X0F,0XF8,0X1F,0XFF,0XFC,0X00,0X00,0X00,
+0XFF,0XF8,0X00,0X00,0X0F,0XFF,0X80,0X00,0X00,0X3F,0XFF,0XFF,0XE0,0X00,0X00,0X7F,
+0XFF,0XFF,0XFF,0XFF,0X80,0XFC,0X0F,0XF0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X7F,0XF8,
+0X00,0X00,0X0F,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC1,0XC0,0XF8,0X3F,0XFF,0XFF,
+0XFF,0XFF,0X80,0X7C,0X0F,0XE0,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XF8,0X00,0X00,
+0X0F,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XC0,0X3F,0XFF,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X3F,0XF8,0X00,0X00,0X0F,0XFE,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,
+0XFF,0X80,0X3F,0XFF,0XFC,0X00,0X00,0X00,0X1F,0XF8,0X00,0X00,0X0F,0XFC,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0X80,
+0X3F,0XFF,0XFC,0X00,0X00,0X00,0X0F,0XF8,0X00,0X00,0X0F,0XF8,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0X80,0X7F,0XFF,
+0XFC,0X00,0X00,0X00,0X03,0XF8,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XC3,0XE1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0X80,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0XF8,0X00,0X00,0X0F,0XC0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC3,0XE1,
+0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XF8,0X3F,0XFF,0X80,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X0E,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0X83,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XDF,0XFF,0X8F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+};
 const unsigned char gImage_3in7[33606] = { /*0X00,0X02,0X18,0X01,0XE0,0X01,*/
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
 0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,

+ 6 - 0
STM32/STM32-F103ZET6/User/Examples/ImageData.h

@@ -32,6 +32,11 @@
 #ifndef _IMAGEDATA_H_
 #define _IMAGEDATA_H_
 
+// colour_4
+extern const unsigned char gImage_1in64g[];
+extern const unsigned char gImage_3in0g[];
+extern const unsigned char gImage_7in3g[];
+
 // ImageData2.c
 extern const unsigned char gImage_2in13b_V4b[];
 extern const unsigned char gImage_2in13b_V4r[];
@@ -72,6 +77,7 @@ extern const unsigned char gImage_2in66[];
 extern const unsigned char gImage_2in66bb[];
 extern const unsigned char gImage_2in66br[];
 
+extern const unsigned char gImage_3in52[];
 extern const unsigned char gImage_3in7[]; //4 Gray
 
 extern const unsigned char gImage_4in01[];

部分文件因为文件数量过多而无法显示