2020-09-03
This commit is contained in:
parent
853a3a4632
commit
751a9fb93f
570 changed files with 50471 additions and 16091 deletions
|
@ -46,7 +46,8 @@ unsigned long time_now_s;
|
|||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(9600);
|
||||
Serial.begin(115200);
|
||||
Serial.print("e-Paper init ");
|
||||
if (epd.Init(lut_full_update) != 0) {
|
||||
Serial.print("e-Paper init failed");
|
||||
return;
|
||||
|
@ -143,4 +144,3 @@ void loop() {
|
|||
|
||||
delay(500);*/
|
||||
}
|
||||
|
||||
|
|
|
@ -146,15 +146,15 @@ int Epd::LDirInit(void)
|
|||
SendCommand(0x11); //data entry mode
|
||||
SendData(0x03);
|
||||
|
||||
SendCommand(0x44); //set Ram-X address start/end position
|
||||
SendData(0x00);
|
||||
SendData(0x18); //0x0C-->(18+1)*8=200
|
||||
|
||||
SendCommand(0x45); //set Ram-Y address start/end position
|
||||
SendData(0xC7); //0xC7-->(199+1)=200
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendCommand(0x44);
|
||||
/* x point must be the multiple of 8 or the last 3 bits will be ignored */
|
||||
SendData((0 >> 3) & 0xFF);
|
||||
SendData((200 >> 3) & 0xFF);
|
||||
SendCommand(0x45);
|
||||
SendData(0 & 0xFF);
|
||||
SendData((0 >> 8) & 0xFF);
|
||||
SendData(200 & 0xFF);
|
||||
SendData((200 >> 8) & 0xFF);
|
||||
|
||||
SendCommand(0x3C); //BorderWavefrom
|
||||
SendData(0x01);
|
||||
|
@ -188,7 +188,7 @@ void Epd::Reset(void)
|
|||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
DigitalWrite(reset_pin, LOW); //module reset
|
||||
DelayMs(20);
|
||||
DelayMs(10);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
@ -198,13 +198,13 @@ void Epd::Clear(void)
|
|||
int w, h;
|
||||
w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
|
||||
h = EPD_HEIGHT;
|
||||
|
||||
SendCommand(0x24);
|
||||
for (int j = 0; j < h; j++) {
|
||||
for (int i = 0; i < w; i++) {
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
|
||||
//DISPLAY REFRESH
|
||||
SendCommand(0x22);
|
||||
SendData(0xF7);
|
||||
|
@ -426,5 +426,3 @@ void Epd::Sleep()
|
|||
}
|
||||
|
||||
/* END OF FILE */
|
||||
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ unsigned long time_now_s;
|
|||
void setup()
|
||||
{
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(9600);
|
||||
Serial.begin(115200);
|
||||
Serial.println("e-Paper init and clear");
|
||||
epd.LDirInit();
|
||||
epd.Clear();
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(9600);
|
||||
Serial.begin(115200);
|
||||
Epd epd;
|
||||
if (epd.Init() != 0) {
|
||||
Serial.print("e-Paper init failed");
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "epd2in13b_V2.h"
|
||||
#include "epd2in13b_V3.h"
|
||||
|
||||
Epd::~Epd() {
|
||||
};
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @filename : epd2in13b-demo.ino
|
||||
* @brief : 2.13inch e-paper display (B) demo
|
||||
* @brief : 2.13inch e-paper display (B) V3 demo
|
||||
* @author : Yehui from Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 17 2017
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <SPI.h>
|
||||
#include "epd2in13b_V2.h"
|
||||
#include "epd2in13b_V3.h"
|
||||
#include "imagedata.h"
|
||||
#include "epdpaint.h"
|
||||
|
277
Arduino/epd2in66/epd2in66.cpp
Normal file
277
Arduino/epd2in66/epd2in66.cpp
Normal file
|
@ -0,0 +1,277 @@
|
|||
/**
|
||||
* @filename : epd2in66.cpp
|
||||
* @brief : Implements for e-paper library
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 29 2020
|
||||
*
|
||||
* 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 "epd2in66.h"
|
||||
#include "imagedata.h"
|
||||
|
||||
static const UBYTE WF_PARTIAL[159] =
|
||||
{
|
||||
0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,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,
|
||||
0x0A,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
|
||||
0x00,0x00,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,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,
|
||||
0x00,0x00,0x00,0x22,0x17,0x41,0xB0,0x32,0x36,
|
||||
};
|
||||
|
||||
Epd::~Epd() {
|
||||
};
|
||||
|
||||
Epd::Epd() {
|
||||
reset_pin = RST_PIN;
|
||||
dc_pin = DC_PIN;
|
||||
cs_pin = CS_PIN;
|
||||
busy_pin = BUSY_PIN;
|
||||
width = EPD_WIDTH;
|
||||
height = EPD_HEIGHT;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief: module reset.
|
||||
* often used to awaken the module in deep sleep,
|
||||
* see Epd::Sleep();
|
||||
*/
|
||||
static void Epd::Reset(void) {
|
||||
DigitalWrite(reset_pin, LOW); //module reset
|
||||
DelayMs(1);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: Initialize the e-Paper register
|
||||
*/
|
||||
int Epd::Init(void) {
|
||||
if (IfInit() != 0) {
|
||||
return -1;
|
||||
}
|
||||
Reset();
|
||||
|
||||
WaitUntilIdle();
|
||||
SendCommand(0x12);//soft reset
|
||||
WaitUntilIdle();
|
||||
/* Y increment, X increment */
|
||||
SendCommand(0x11);
|
||||
SendData(0x03);
|
||||
/* Set RamX-address Start/End position */
|
||||
SendCommand(0x44);
|
||||
SendData(0x01);
|
||||
SendData((width % 8 == 0)? (width / 8 ): (width / 8 + 1) );
|
||||
/* Set RamY-address Start/End position */
|
||||
SendCommand(0x45);
|
||||
SendData(0);
|
||||
SendData(0);
|
||||
SendData((height&0xff));
|
||||
SendData((height&0x100)>>8);
|
||||
|
||||
WaitUntilIdle();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: Initialize the e-Paper register(Partial display)
|
||||
*/
|
||||
int Epd::Init_Partial(void) {
|
||||
Reset();
|
||||
|
||||
WaitUntilIdle();
|
||||
SendCommand(0x12);//soft reset
|
||||
WaitUntilIdle();
|
||||
|
||||
Load_LUT();
|
||||
SendCommand(0x37);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x40);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
|
||||
/* Y increment, X increment */
|
||||
SendCommand(0x11);
|
||||
SendData(0x03);
|
||||
/* Set RamX-address Start/End position */
|
||||
SendCommand(0x44);
|
||||
SendData(0x01);
|
||||
SendData((width % 8 == 0)? (width / 8 ): (width / 8 + 1) );
|
||||
/* Set RamY-address Start/End position */
|
||||
SendCommand(0x45);
|
||||
SendData(0);
|
||||
SendData(0);
|
||||
SendData((height&0xff));
|
||||
SendData((height&0x100)>>8);
|
||||
|
||||
SendCommand(0x3C);
|
||||
SendData(0x80);
|
||||
|
||||
SendCommand(0x22);
|
||||
SendData(0xcf);
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: basic function for sending commands
|
||||
*/
|
||||
static void Epd::SendCommand(unsigned char command) {
|
||||
DigitalWrite(dc_pin, LOW);
|
||||
SpiTransfer(command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: basic function for sending data
|
||||
*/
|
||||
static void Epd::SendData(unsigned char data) {
|
||||
DigitalWrite(dc_pin, HIGH);
|
||||
SpiTransfer(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: Wait until the busy_pin goes HIGH
|
||||
*/
|
||||
static void Epd::WaitUntilIdle(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 ");
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Turn On Display
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
static void Epd::TurnOnDisplay(void)
|
||||
{
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Display Array data
|
||||
******************************************************************************/
|
||||
void Epd::DisplayFrame(const UBYTE *Image) {
|
||||
UWORD Width, Height;
|
||||
Width = (width % 8 == 0)? (width / 8 ): (width / 8 + 1);
|
||||
Height = height;
|
||||
|
||||
SendCommand(0x24);
|
||||
for (UWORD j = 0; j <Height; j++) {
|
||||
for (UWORD i = 0; i <Width; i++) {
|
||||
SendData(pgm_read_byte(&Image[i + j * Width]));
|
||||
}
|
||||
}
|
||||
TurnOnDisplay();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Partial Display
|
||||
******************************************************************************/
|
||||
void Epd::DisplayFrame_part(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD iwidth, UWORD iheight) {
|
||||
UWORD Width, Height;
|
||||
Width = (width % 8 == 0)? (width / 8 ): (width / 8 + 1);
|
||||
Height = height;
|
||||
|
||||
SendCommand(0x24);
|
||||
for (UWORD j = 0; j<Height; j++) {
|
||||
for (UWORD i = 0; i <Width; i++) {
|
||||
if(j>=Ystart && j<Ystart+iheight && i>=Xstart/8 && i<(Xstart+iwidth)/8)
|
||||
SendData(Image[(i-Xstart/8) + (j-Ystart)*iwidth/8]);
|
||||
else
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
TurnOnDisplay();
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
function : set the look-up tables
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
static void Epd::Load_LUT(void) {
|
||||
UWORD i;
|
||||
SendCommand(0x32);
|
||||
for (i = 0; i < 153; i++) {
|
||||
SendData(WF_PARTIAL[i]);
|
||||
}
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Clear Screen
|
||||
parameter:
|
||||
mode: 0:just partial mode
|
||||
1:clear all
|
||||
******************************************************************************/
|
||||
void Epd::Clear(void) {
|
||||
UWORD Width, Height;
|
||||
Width = (width % 8 == 0)? (width / 8 ): (width / 8 + 1);
|
||||
Height = height;
|
||||
SendCommand(0x24);
|
||||
for (UWORD j = 0; j <=Height; j++) {
|
||||
for (UWORD i = 0; i < Width; i++) {
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
TurnOnDisplay();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
* The deep sleep mode would return to standby by hardware reset.
|
||||
* The only one parameter is a check code, the command would be
|
||||
* You can use EPD_Reset() to awaken
|
||||
*/
|
||||
void Epd::Sleep(void) {
|
||||
SendCommand(0X10);
|
||||
SendData(0x01);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* END OF FILE */
|
68
Arduino/epd2in66/epd2in66.h
Normal file
68
Arduino/epd2in66/epd2in66.h
Normal file
|
@ -0,0 +1,68 @@
|
|||
/**
|
||||
* @filename : epd2in66.h
|
||||
* @brief : Header file for e-paper library epd2in66.cpp
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 29 2020
|
||||
*
|
||||
* 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 EPD2IN66_H
|
||||
#define EPD2IN66_H
|
||||
|
||||
#include "epdif.h"
|
||||
|
||||
// Display resolution
|
||||
#define EPD_WIDTH 152
|
||||
#define EPD_HEIGHT 296
|
||||
|
||||
#define UWORD unsigned int
|
||||
#define UBYTE unsigned char
|
||||
#define UDOUBLE unsigned long
|
||||
|
||||
class Epd : EpdIf {
|
||||
public:
|
||||
Epd();
|
||||
~Epd();
|
||||
int Init(void);
|
||||
int Init_Partial(void);
|
||||
void WaitUntilIdle(void);
|
||||
void DisplayFrame(const UBYTE *Image);
|
||||
void DisplayFrame_part(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD iwidth, UWORD iheight);
|
||||
void Sleep(void);
|
||||
void Clear(void);
|
||||
|
||||
private:
|
||||
unsigned int reset_pin;
|
||||
unsigned int dc_pin;
|
||||
unsigned int cs_pin;
|
||||
unsigned int busy_pin;
|
||||
unsigned long width;
|
||||
unsigned long height;
|
||||
void Load_LUT(void);
|
||||
void TurnOnDisplay(void);
|
||||
void SendCommand(unsigned char command);
|
||||
void SendData(unsigned char data);
|
||||
void Reset(void);
|
||||
};
|
||||
|
||||
#endif /* EPD2IN66_H */
|
||||
|
||||
/* END OF FILE */
|
91
Arduino/epd2in66/epd2in66.ino
Normal file
91
Arduino/epd2in66/epd2in66.ino
Normal file
|
@ -0,0 +1,91 @@
|
|||
/**
|
||||
@filename : epd2in66-demo.ino
|
||||
@brief : 2.66inch e-paper display demo
|
||||
@author : Waveshare
|
||||
|
||||
Copyright (C) Waveshare July 29 2020
|
||||
|
||||
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 "epd2in66.h"
|
||||
#include "imagedata.h"
|
||||
#include "epdpaint.h"
|
||||
|
||||
#define COLORED 0
|
||||
#define UNCOLORED 1
|
||||
|
||||
UBYTE image[500];
|
||||
Paint paint(image, 48, 80); // width should be the multiple of 8
|
||||
UDOUBLE time_start_ms;
|
||||
UDOUBLE time_now_s;
|
||||
|
||||
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("2.66inch e-Paper demo...\r\n ");
|
||||
Serial.print("e-Paper Clear...\r\n ");
|
||||
epd.Clear();
|
||||
|
||||
paint.SetRotate(ROTATE_270);
|
||||
|
||||
#if 1
|
||||
Serial.print("draw image...\r\n ");
|
||||
epd.DisplayFrame(IMAGE_DATA);
|
||||
delay(4000);
|
||||
epd.Clear();
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
epd.Init_Partial();
|
||||
epd.Clear();
|
||||
Serial.print("partial display___ \r\n ");
|
||||
UBYTE i;
|
||||
time_start_ms = millis();
|
||||
for(i=0; i<10; i++) {
|
||||
time_now_s = (millis() - time_start_ms) / 1000;
|
||||
char time_string[] = {'0', '0', ':', '0', '0', '\0'};
|
||||
time_string[0] = time_now_s / 60 / 10 + '0';
|
||||
time_string[1] = time_now_s / 60 % 10 + '0';
|
||||
time_string[3] = time_now_s % 60 / 10 + '0';
|
||||
time_string[4] = time_now_s % 60 % 10 + '0';
|
||||
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawStringAt(10, 10, time_string, &Font16, COLORED);
|
||||
Serial.print("refresh------\r\n ");
|
||||
epd.DisplayFrame_part(paint.GetImage(), 20, 100, 48, 80);
|
||||
}
|
||||
#endif
|
||||
|
||||
epd.Init();
|
||||
Serial.print("clear and sleep......\r\n ");
|
||||
epd.Clear();
|
||||
epd.Sleep();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// put your main code here, to run repeatedly:
|
||||
|
||||
}
|
65
Arduino/epd2in66/epdif.cpp
Normal file
65
Arduino/epd2in66/epdif.cpp
Normal file
|
@ -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
Arduino/epd2in66/epdif.h
Normal file
51
Arduino/epd2in66/epdif.h
Normal file
|
@ -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
Arduino/epd2in66/epdpaint.cpp
Normal file
342
Arduino/epd2in66/epdpaint.cpp
Normal file
|
@ -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
Arduino/epd2in66/epdpaint.h
Normal file
75
Arduino/epd2in66/epdpaint.h
Normal file
|
@ -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
Arduino/epd2in66/font12.cpp
Normal file
1385
Arduino/epd2in66/font12.cpp
Normal file
File diff suppressed because it is too large
Load diff
1765
Arduino/epd2in66/font16.cpp
Normal file
1765
Arduino/epd2in66/font16.cpp
Normal file
File diff suppressed because it is too large
Load diff
2143
Arduino/epd2in66/font20.cpp
Normal file
2143
Arduino/epd2in66/font20.cpp
Normal file
File diff suppressed because it is too large
Load diff
2521
Arduino/epd2in66/font24.cpp
Normal file
2521
Arduino/epd2in66/font24.cpp
Normal file
File diff suppressed because it is too large
Load diff
1005
Arduino/epd2in66/font8.cpp
Normal file
1005
Arduino/epd2in66/font8.cpp
Normal file
File diff suppressed because it is too large
Load diff
65
Arduino/epd2in66/fonts.h
Normal file
65
Arduino/epd2in66/fonts.h
Normal file
|
@ -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>© 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****/
|
388
Arduino/epd2in66/imagedata.cpp
Normal file
388
Arduino/epd2in66/imagedata.cpp
Normal file
|
@ -0,0 +1,388 @@
|
|||
/**
|
||||
* @filename : imagedata.cpp
|
||||
* @brief : data file for epd demo
|
||||
*
|
||||
* Copyright (C) Waveshare July 17 2020
|
||||
*
|
||||
* 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[5630] PROGMEM = { /*0X00,0X01,0X98,0X00,0X28,0X01,*/
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,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,0X00,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFE,0X00,0X00,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFE,
|
||||
0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,
|
||||
0XFF,0XFF,0XFE,0X02,0X07,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X03,0XFF,0XFF,0XFE,0X03,0X0F,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XF9,0XFF,0XFE,0X03,0XFF,0XFF,0XFE,0X03,0X1F,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XFE,0X03,0XFF,0XFF,0XFE,0X03,0X18,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFE,0X03,0XFF,0XFF,0XFE,0X03,
|
||||
0XF8,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XFE,0X03,0XFF,
|
||||
0XFF,0XFE,0X01,0XF0,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,
|
||||
0XFE,0X03,0XFF,0XFF,0XFE,0X00,0XE0,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XC0,0X0F,0XFE,0X03,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XC0,0X07,0XFE,0X03,0XFF,0XFF,0XFE,0X03,0X00,0X81,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X01,0XFE,0X03,0XFF,0XFF,0XFE,0X03,0X00,
|
||||
0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X01,0XFE,0X03,0XFF,0XFF,
|
||||
0XFE,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0XFE,
|
||||
0X03,0XFF,0XFF,0XFE,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XC0,0X00,0X7E,0X03,0XFF,0XFF,0XFE,0X03,0XC3,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XC0,0X00,0X7E,0X03,0XFF,0XFF,0XFE,0X01,0XFF,0X81,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X3E,0X03,0XFF,0XFF,0XFE,0X01,0XFF,0X81,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X3E,0X03,0XFF,0XFF,0XFE,
|
||||
0X00,0X3C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X20,0X1E,0X03,
|
||||
0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
|
||||
0X20,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XC0,0X30,0X00,0X00,0X00,0X00,0X3E,0X1B,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X38,0X00,0X00,0X00,0X00,0X3E,0X1B,0XFF,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X38,0X00,0X00,0X00,0X00,0X1E,0X1B,
|
||||
0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3E,0X00,0X00,0X00,
|
||||
0X00,0X1E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3E,
|
||||
0X00,0X00,0X00,0X00,0X1E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0X1E,0X00,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0X1E,0X01,0XFF,0XC1,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0X06,0X03,0XFF,
|
||||
0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,
|
||||
0X06,0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,
|
||||
0X03,0XFF,0XF0,0X06,0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0X06,0X01,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0X06,0X03,0XFF,0XC1,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0X1E,0X03,0XFF,0XC1,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XF0,0XFE,
|
||||
0X03,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,
|
||||
0XFF,0XF7,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
|
||||
0X3F,0XFE,0X03,0XFF,0XFF,0XFE,0X00,0X3C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XFF,0XFE,0X01,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XFF,0XFE,0X03,0XFF,0X81,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFE,0X03,0XFF,0XFF,0XFE,0X03,
|
||||
0XC3,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,
|
||||
0XFF,0XFE,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X03,0XFF,0XFF,0XFE,0X03,0XC3,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFE,0X01,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFE,0X01,0XFF,0X81,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFE,0X00,0X3C,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XFE,0X03,0XC0,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X01,0XFE,0X03,0XFF,0XC1,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X7E,
|
||||
0X03,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XF8,0X00,0X3E,0X03,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF8,0X00,0X1E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X1E,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X04,0X00,0X1E,0X03,0X00,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X07,0XE0,0X1E,0X0F,
|
||||
0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X07,
|
||||
0XF0,0X1E,0X0F,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,
|
||||
0X00,0X00,0X07,0XF0,0X1E,0X0F,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X00,0X00,0X00,0X07,0XF0,0X1E,0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XF0,0X1E,0X00,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XF0,0X1E,0X03,0X00,
|
||||
0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XF0,
|
||||
0X1E,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,
|
||||
0X7C,0X07,0XF0,0X1E,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X01,0XE0,0X7C,0X07,0XF0,0X1E,0X03,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XF0,0X1E,0X03,0XC3,0XC1,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XF0,0X1E,0X01,0XFF,0X81,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XF0,0X1E,
|
||||
0X01,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,
|
||||
0X07,0XE0,0X1E,0X00,0X3C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,
|
||||
0X00,0X00,0X00,0X00,0X00,0X1E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X1E,0X00,0X38,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X1E,0X01,0XF8,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X3E,0X03,
|
||||
0XF8,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,
|
||||
0X00,0X7E,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,
|
||||
0X00,0X00,0X00,0X00,0XFE,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFC,0X01,0XE0,0X3C,0X07,0XFF,0XFE,0X03,0XDB,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XFF,0XFE,0X01,0XFF,0X81,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XFF,0XFE,0X01,0XFF,
|
||||
0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XFF,
|
||||
0XFE,0X00,0X3C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,
|
||||
0X7C,0X07,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X01,0XE0,0X7C,0X07,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XFF,0XFE,0X7F,0XFF,0XC1,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XFF,0XFE,0X7F,0XFF,0XC1,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X7C,0X07,0XFF,0XFE,
|
||||
0X7F,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,
|
||||
0X00,0X7F,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,
|
||||
0X00,0X00,0X00,0X00,0X7F,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X7F,0XFE,0X18,0X00,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X7F,0XFE,0X18,0XE0,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X7F,0XFE,0X18,
|
||||
0XE0,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,
|
||||
0X7F,0XFE,0X18,0XE0,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X18,0XE0,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XC1,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,
|
||||
0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X01,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X01,0XFF,0XFF,0XFF,0XFE,
|
||||
0X00,0X38,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X01,0XFF,
|
||||
0XFF,0XFF,0XFE,0X01,0XF8,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,
|
||||
0X00,0X01,0XFF,0XFF,0XFF,0XFE,0X03,0XF8,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0X02,0X00,0X01,0XF8,0X00,0X00,0X06,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X00,0X01,0XF8,0X00,0X00,0X06,0X03,0X18,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X07,0XFF,0XF8,0X00,0X00,0X06,0X03,
|
||||
0XDB,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X00,
|
||||
0X00,0X06,0X01,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,
|
||||
0X18,0X78,0X00,0X00,0X06,0X01,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0X02,0X06,0X18,0X78,0X00,0X00,0X06,0X00,0X3C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X00,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X03,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,
|
||||
0X3E,0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,
|
||||
0X78,0X10,0X30,0X3E,0X03,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X03,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X03,0XFF,0XC1,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X03,0XFF,0XC1,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X07,0XFF,0XF8,0X10,0X30,0X3E,
|
||||
0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X38,
|
||||
0X10,0X30,0X3E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
|
||||
0X00,0X00,0X38,0X10,0X30,0X3E,0X00,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0X00,0X00,0X00,0X38,0X10,0X30,0X3E,0X01,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X38,0X10,0X30,0X3E,0X03,0XFF,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X38,0X10,0X30,0X3E,0X03,
|
||||
0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X38,0X10,
|
||||
0X30,0X3E,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X07,
|
||||
0XFF,0XF8,0X10,0X30,0X3E,0X03,0XCF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0X02,0X07,0XFF,0XF8,0X10,0X30,0X3E,0X01,0XCF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X00,0X07,0X81,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X00,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,
|
||||
0X3E,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,
|
||||
0X78,0X10,0X30,0X3E,0X00,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X01,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X03,0XFF,0XC1,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,0X03,0X00,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,0X10,0X30,0X3E,
|
||||
0X03,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X06,0X18,0X78,
|
||||
0X10,0X30,0X3E,0X03,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,
|
||||
0X06,0X18,0X78,0X10,0X30,0X3E,0X7F,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0X02,0X07,0XFF,0XF8,0X10,0X30,0X3E,0X7F,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X00,0X01,0XF8,0X1F,0XF0,0X3E,0X7F,0XFF,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X00,0X01,0XFF,0XFF,0XF0,0X3E,0X00,
|
||||
0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X02,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFE,0X02,0X07,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFE,0X03,0X0F,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X00,0X01,0XFF,0XFF,0XFF,0XFE,0X03,0X1F,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0X18,0XC1,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XF8,
|
||||
0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X01,0XF0,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XF9,0XFE,0X00,0XE0,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XC0,0XFF,0XFF,0XFF,0XF8,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XF0,0X7E,0X00,0X38,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X01,0XFF,0XFF,0XE0,0X1E,0X01,0XF8,0XC1,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X07,0XFF,0XC0,0X1E,
|
||||
0X03,0XF8,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
|
||||
0XFF,0X00,0X1E,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XC0,0X00,0X00,0X0C,0X00,0X3E,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X7E,0X03,0XDB,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0XFE,0X01,0XFF,0X81,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XC0,0XFF,0X80,0X00,0X07,0XFE,0X01,
|
||||
0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0XFF,0X80,0X00,
|
||||
0X07,0XFE,0X00,0X3C,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,
|
||||
0X40,0X00,0X00,0X01,0XFE,0X02,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0XFE,0X03,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X0C,0X00,0X7E,0X03,0XFC,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X01,0XFF,0X00,0X3E,0X01,0XFF,
|
||||
0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X0F,0XE0,0X00,
|
||||
0X1E,0X00,0X1F,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,
|
||||
0X0F,0XE0,0X20,0X06,0X00,0X1F,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XF0,0X00,0X00,0X3F,0XF0,0X10,0X06,0X01,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X20,0X3F,0XF0,0X10,0X1E,0X03,0XFC,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X30,0X00,0X08,0X7E,0X03,0XE0,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X30,0X00,0X06,0XFE,
|
||||
0X02,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X30,
|
||||
0X00,0X01,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XF0,0X38,0X30,0X00,0X01,0XFE,0X00,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X00,0X00,0X38,0X30,0X00,0X00,0XFE,0X01,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X38,0X30,0X3F,0X8F,0XFE,0X03,0XFF,0XC1,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X38,0X30,0X3F,0XFF,0XFE,0X03,
|
||||
0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X38,0X30,0X3F,
|
||||
0XFF,0XFE,0X03,0X18,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,
|
||||
0X38,0X30,0X00,0X1F,0XFE,0X03,0XCF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XF0,0X38,0X30,0X00,0X01,0XFE,0X01,0XCF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X30,0X00,0X00,0X7E,0X00,0X07,0X81,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X30,0X00,0X00,0X1E,0X00,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,0X30,0X00,0X00,
|
||||
0X1E,0X18,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X38,
|
||||
0X3F,0XFC,0X00,0X1E,0X1F,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X10,0X00,0X38,0X3F,0XFF,0XE0,0X7E,0X1F,0XFC,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0X0F,0XF0,0X3F,0XFF,0XFF,0XF8,0X7E,0X07,0XFF,0XC1,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XE0,0X1F,0XFF,0XFF,0XFF,0XFE,0X00,0X1F,0XC1,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XE0,0X00,0X00,0X00,0X00,0X06,
|
||||
0X00,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X60,0X00,0X00,
|
||||
0X00,0X00,0X06,0X07,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,
|
||||
0X20,0X00,0X00,0X00,0X00,0X06,0X1F,0XF0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X00,0X18,0X00,0X00,0X00,0X00,0X06,0X1F,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X0F,0X00,0X00,0X00,0X00,0X06,0X0F,0XFF,0X01,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0X80,0X03,0XFF,0XFF,0XFE,0X00,
|
||||
0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,0XE0,0X01,0XFF,
|
||||
0XFF,0XFE,0X00,0X1F,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,
|
||||
0XF8,0X00,0XFF,0XFF,0XFE,0X07,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFE,0X01,0XFC,0X00,0XFF,0XFF,0XFE,0X1F,0XFF,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X0F,0XFE,0X03,0XFF,0XFF,0XFE,0X1F,0XC0,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X9F,0XFF,0X8F,0XFF,0XFF,0XFE,0X18,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X00,0X01,
|
||||
0XFC,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,
|
||||
0X04,0X00,0X01,0XFC,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
|
||||
0X00,0X00,0X00,0X1F,0X80,0X01,0XFC,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XE0,0X00,0X00,0X00,0XFF,0XE0,0X01,0XFC,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X03,0XFF,0XF8,0X01,0XFC,0X00,0X01,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X0F,0XFF,0XFF,0X41,0XFC,
|
||||
0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X7F,0XFF,
|
||||
0XFF,0XE0,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,
|
||||
0X03,0XFF,0XF8,0XFF,0XF8,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XE0,0X00,0X07,0XFF,0XE0,0X1F,0XFC,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0X00,0X07,0XFE,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0X00,0X01,0XFF,0X01,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0XE0,0X07,
|
||||
0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,
|
||||
0XFF,0XF8,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XE0,0X00,0X00,0XFF,0XFF,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X0F,0XFF,0XE0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X03,0XFF,0XF0,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0XFF,0XF0,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XF8,0X00,
|
||||
0X3F,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
|
||||
0X1F,0XFC,0X00,0X0F,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XE0,0X0F,0XFF,0X80,0X03,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XF0,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFC,0X00,0X00,0X00,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XC0,
|
||||
0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,
|
||||
0X07,0XFF,0XF0,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XE0,0X00,0X01,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XC0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X07,0XFF,0XF0,0X00,0X01,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X01,0XFF,0XF0,
|
||||
0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,
|
||||
0X07,0XFF,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XE0,0X00,0X00,0X3F,0XFF,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XE0,0X00,0X01,0XFF,0XFF,0XC0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0XFC,0X00,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0XE0,0X00,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,
|
||||
0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,
|
||||
0X00,0X07,0XFF,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XE0,0X00,0X07,0XFF,0XF0,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0XFF,0XFF,0X00,0X00,0X01,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X0F,0XFF,0XE0,0X00,0X01,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X03,0XFF,
|
||||
0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,
|
||||
0X00,0X07,0XFF,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XFF,0XFF,0XF0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0XFF,0XC0,0X00,0X01,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X07,0XFF,0XFC,0X00,
|
||||
0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XC0,0X07,
|
||||
0XFF,0XE0,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
|
||||
0X1F,0XC0,0X07,0XFE,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XC0,0X1F,0XC0,0X07,0XF0,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XC0,0X07,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XC0,0X00,0X00,0X00,0X00,0X00,
|
||||
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XC0,0X00,0X00,
|
||||
0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XC0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X1F,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XC0,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
27
Arduino/epd2in66/imagedata.h
Normal file
27
Arduino/epd2in66/imagedata.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/**
|
||||
* @filename : imagedata.h
|
||||
* @brief : head file for imagedata.cpp
|
||||
*
|
||||
* Copyright (C) Waveshare July 17 2020
|
||||
*
|
||||
* 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[]; //1-Gray 296*152
|
||||
/* FILE END */
|
|
@ -248,9 +248,11 @@ void Epd::SendData(unsigned char data) {
|
|||
* @brief: Wait until the busy_pin goes HIGH
|
||||
*/
|
||||
void Epd::WaitUntilIdle(void) {
|
||||
Serial.print("e-Paper busy\r\n");
|
||||
while(DigitalRead(busy_pin) == 0) { //0: busy, 1: idle
|
||||
DelayMs(100);
|
||||
}
|
||||
Serial.print("e-Paper busy release\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -259,8 +261,10 @@ void Epd::WaitUntilIdle(void) {
|
|||
* see Epd::Sleep();
|
||||
*/
|
||||
void Epd::Reset(void) {
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
DigitalWrite(reset_pin, LOW);
|
||||
DelayMs(20);
|
||||
DelayMs(10);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
@ -370,17 +374,19 @@ void Epd::DisplayFrame(const unsigned char* frame_buffer) {
|
|||
if (frame_buffer != NULL) {
|
||||
SendCommand(DATA_START_TRANSMISSION_1);
|
||||
DelayMs(2);
|
||||
for(int i = 0; i < this->width / 8 * this->height; i++) {
|
||||
SendData(0xFF);
|
||||
for(int i = 0; i < 5808; i++) {
|
||||
SendData(0xff);
|
||||
}
|
||||
DelayMs(2);
|
||||
SendCommand(DATA_START_TRANSMISSION_2);
|
||||
DelayMs(2);
|
||||
for(int i = 0; i < this->width / 8 * this->height; i++) {
|
||||
for(int i = 0; i < 5808; i++) {
|
||||
SendData(pgm_read_byte(&frame_buffer[i]));
|
||||
}
|
||||
DelayMs(2);
|
||||
SendCommand(DISPLAY_REFRESH);
|
||||
|
||||
SendCommand(0x12);
|
||||
DelayMs(200);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
}
|
||||
|
@ -499,6 +505,7 @@ void Epd::ClearFrame(void) {
|
|||
*/
|
||||
void Epd::DisplayFrame(void) {
|
||||
SendCommand(DISPLAY_REFRESH);
|
||||
DelayMs(200);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
|
@ -570,7 +577,3 @@ const unsigned char lut_wb[] =
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
/**
|
||||
* @filename : epd2in7-demo.ino
|
||||
* @brief : 2.7inch e-paper display demo
|
||||
* @author : Yehui from Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare August 22 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.
|
||||
@filename : epd2in7-demo.ino
|
||||
@brief : 2.7inch e-paper display demo
|
||||
@author : Yehui from Waveshare
|
||||
|
||||
Copyright (C) Waveshare August 22 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 <SPI.h>
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(9600);
|
||||
Serial.begin(115200);
|
||||
Epd epd;
|
||||
|
||||
Serial.print("e-Paper init\r\n");
|
||||
|
@ -47,12 +47,12 @@ void setup() {
|
|||
epd.ClearFrame();
|
||||
|
||||
/**
|
||||
* Due to RAM not enough in Arduino UNO, a frame buffer is not allowed.
|
||||
* In this case, a smaller image buffer is allocated and you have to
|
||||
* update a partial display several times.
|
||||
* 1 byte = 8 pixels, therefore you have to set 8*N pixels at a time.
|
||||
Due to RAM not enough in Arduino UNO, a frame buffer is not allowed.
|
||||
In this case, a smaller image buffer is allocated and you have to
|
||||
update a partial display several times.
|
||||
1 byte = 8 pixels, therefore you have to set 8*N pixels at a time.
|
||||
*/
|
||||
|
||||
#if 1
|
||||
unsigned char image[1024];
|
||||
Paint paint(image, 176, 24); //width should be the multiple of 8
|
||||
|
||||
|
@ -61,7 +61,7 @@ void setup() {
|
|||
epd.TransmitPartialData(paint.GetImage(), 16, 32, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
paint.Clear(COLORED);
|
||||
paint.DrawStringAt(2, 2, "Hello world!", &Font20, UNCOLORED);
|
||||
paint.DrawStringAt(20, 5, "Hello world!", &Font16, UNCOLORED);
|
||||
epd.TransmitPartialData(paint.GetImage(), 0, 64, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
paint.SetWidth(64);
|
||||
|
@ -86,21 +86,26 @@ void setup() {
|
|||
epd.TransmitPartialData(paint.GetImage(), 90, 190, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
/* This displays the data from the SRAM in e-Paper module */
|
||||
Serial.print("show draw image\r\n");
|
||||
epd.DisplayFrame();
|
||||
delay(1000);
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
/* This displays an image */
|
||||
Serial.print("show 2-gray image\r\n");
|
||||
epd.DisplayFrame(IMAGE_DATA);
|
||||
delay(1000);
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
Serial.print("show 4-gray image\r\n");
|
||||
epd.Init_4Gray();
|
||||
epd.Display4Gray(IMAGE_DATA_4Gray);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/* Deep sleep */
|
||||
Serial.print("sleep...");
|
||||
epd.Sleep();
|
||||
}
|
||||
|
||||
|
@ -108,4 +113,3 @@ void loop() {
|
|||
// put your main code here, to run repeatedly:
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -139,8 +139,10 @@ void Epd::WaitUntilIdle(void) {
|
|||
* see Epd::Sleep();
|
||||
*/
|
||||
void Epd::Reset(void) {
|
||||
DigitalWrite(reset_pin, LOW);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
DigitalWrite(reset_pin, LOW);
|
||||
DelayMs(10);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
|
|
@ -34,11 +34,12 @@
|
|||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(9600);
|
||||
Serial.begin(115200);
|
||||
Epd epd;
|
||||
|
||||
Serial.print("e-Paper init and clear\r\n");
|
||||
if (epd.Init() != 0) {
|
||||
Serial.print("e-Paper init failed");
|
||||
Serial.print("e-Paper init failed\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -84,12 +85,15 @@ void setup() {
|
|||
epd.TransmitPartialRed(paint.GetImage(), 90, 190, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
/* This displays the data from the SRAM in e-Paper module */
|
||||
Serial.print("show paint.image\r\n");
|
||||
epd.DisplayFrame();
|
||||
|
||||
/* This displays an image */
|
||||
Serial.print("show array\r\n");
|
||||
epd.DisplayFrame(IMAGE_BLACK, IMAGE_RED);
|
||||
|
||||
/* Deep sleep */
|
||||
Serial.print("sleep\r\n");
|
||||
epd.Sleep();
|
||||
}
|
||||
|
||||
|
|
|
@ -275,5 +275,3 @@ const unsigned char lut_partial_update[] = {
|
|||
|
||||
|
||||
/* END OF FILE */
|
||||
|
||||
|
||||
|
|
|
@ -26,5 +26,3 @@
|
|||
extern const unsigned char IMAGE_DATA[];
|
||||
|
||||
/* FILE END */
|
||||
|
||||
|
||||
|
|
171
Arduino/epd2in9b_V2/epd2in9b_V2.cpp
Normal file
171
Arduino/epd2in9b_V2/epd2in9b_V2.cpp
Normal file
|
@ -0,0 +1,171 @@
|
|||
/**
|
||||
* @filename : epd2in9b_V2.cpp
|
||||
* @brief : Implements for e-paper library
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 3 2020
|
||||
*
|
||||
* 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 "epd2in9b_V2.h"
|
||||
#include "imagedata.h"
|
||||
|
||||
Epd::~Epd() {
|
||||
};
|
||||
|
||||
Epd::Epd() {
|
||||
reset_pin = RST_PIN;
|
||||
dc_pin = DC_PIN;
|
||||
cs_pin = CS_PIN;
|
||||
busy_pin = BUSY_PIN;
|
||||
width = EPD_WIDTH / 8;
|
||||
height = EPD_HEIGHT;
|
||||
};
|
||||
|
||||
int Epd::Init(void) {
|
||||
if (IfInit() != 0) {
|
||||
return -1;
|
||||
}
|
||||
Reset();
|
||||
|
||||
SendCommand(0x04);//power on
|
||||
WaitUntilIdle();//waiting for the electronic paper IC to release the idle signal
|
||||
|
||||
SendCommand(0x00);//panel setting
|
||||
SendData(0x0f);//default data
|
||||
SendData(0x89);//128x296,Temperature sensor, boost and other related timing settings
|
||||
|
||||
SendCommand(0x61);//Display resolution setting
|
||||
SendData (0x80);
|
||||
SendData (0x01);
|
||||
SendData (0x28);
|
||||
|
||||
SendCommand(0X50);//VCOM AND DATA INTERVAL SETTING
|
||||
SendData(0x77);//WBmode:VBDF 17|D7 VBDW 97 VBDB 57
|
||||
//WBRmode:VBDF F7 VBDW 77 VBDB 37 VBDR B7
|
||||
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::WaitUntilIdle(void) {
|
||||
unsigned char busy;
|
||||
Serial.print("e-Paper busy \r\n ");
|
||||
do
|
||||
{
|
||||
SendCommand(0x71);
|
||||
busy = DigitalRead(busy_pin);
|
||||
busy =!(busy & 0x01);
|
||||
}
|
||||
while(busy);
|
||||
Serial.print("e-Paper busy release \r\n ");
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: module reset.
|
||||
* often used to awaken the module in deep sleep,
|
||||
* see Epd::Sleep();
|
||||
*/
|
||||
void Epd::Reset(void) {
|
||||
DigitalWrite(reset_pin, LOW); //module reset
|
||||
DelayMs(10);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
void Epd::DisplayFrame(const UBYTE *blackimage, const UBYTE *ryimage) {
|
||||
SendCommand(0x10);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&blackimage[i + (j*width)]));
|
||||
}
|
||||
}
|
||||
SendCommand(0x92);
|
||||
|
||||
SendCommand(0x13);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&ryimage[i + (j*width)]));
|
||||
}
|
||||
}
|
||||
SendCommand(0x92);
|
||||
|
||||
SendCommand(0x12);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
void Epd::Clear(void) {
|
||||
//send black data
|
||||
SendCommand(0x10);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
|
||||
//send red data
|
||||
SendCommand(0x13);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
|
||||
SendCommand(0x12);
|
||||
WaitUntilIdle();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
* The deep sleep mode would return to standby by hardware reset.
|
||||
* The only one parameter is a check code, the command would be
|
||||
* You can use EPD_Reset() to awaken
|
||||
*/
|
||||
void Epd::Sleep(void) {
|
||||
SendCommand(0x02); // POWER_OFF
|
||||
WaitUntilIdle();
|
||||
SendCommand(0x07); // DEEP_SLEEP
|
||||
SendData(0xA5); // check code
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* END OF FILE */
|
63
Arduino/epd2in9b_V2/epd2in9b_V2.h
Normal file
63
Arduino/epd2in9b_V2/epd2in9b_V2.h
Normal file
|
@ -0,0 +1,63 @@
|
|||
/**
|
||||
* @filename : epd2in9b_V2.h
|
||||
* @brief : Header file for e-paper library epd2in9b_V2.cpp
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 3 2020
|
||||
*
|
||||
* 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 EPD2IN9B_V2_H
|
||||
#define EPD2IN9B_V2_H
|
||||
|
||||
#include "epdif.h"
|
||||
|
||||
// Display resolution
|
||||
#define EPD_WIDTH 128
|
||||
#define EPD_HEIGHT 296
|
||||
|
||||
#define UWORD unsigned int
|
||||
#define UBYTE unsigned char
|
||||
|
||||
class Epd : EpdIf {
|
||||
public:
|
||||
Epd();
|
||||
~Epd();
|
||||
int Init(void);
|
||||
void WaitUntilIdle(void);
|
||||
void Reset(void);
|
||||
void DisplayFrame(const UBYTE *blackimage, const UBYTE *ryimage);
|
||||
void SendCommand(unsigned char command);
|
||||
void SendData(unsigned char data);
|
||||
void Sleep(void);
|
||||
void Clear(void);
|
||||
|
||||
private:
|
||||
unsigned int reset_pin;
|
||||
unsigned int dc_pin;
|
||||
unsigned int cs_pin;
|
||||
unsigned int busy_pin;
|
||||
unsigned long width;
|
||||
unsigned long height;
|
||||
};
|
||||
|
||||
#endif /* EPD7IN5_H */
|
||||
|
||||
/* END OF FILE */
|
53
Arduino/epd2in9b_V2/epd2in9b_V2.ino
Normal file
53
Arduino/epd2in9b_V2/epd2in9b_V2.ino
Normal file
|
@ -0,0 +1,53 @@
|
|||
/**
|
||||
* @filename : epd2in9b_V2-demo.ino
|
||||
* @brief : 2.9inch e-paper display demo
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 3 2020
|
||||
*
|
||||
* 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 "epd2in9b_V2.h"
|
||||
#include "imagedata.h"
|
||||
|
||||
Epd epd;
|
||||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(115200);
|
||||
Serial.print("e-Paper init \r\n ");
|
||||
if (epd.Init() != 0) {
|
||||
Serial.print("e-Paper init failed\r\n ");
|
||||
return;
|
||||
}
|
||||
|
||||
Serial.print("e-Paper Clear\r\n ");
|
||||
epd.Clear();
|
||||
|
||||
Serial.print("draw image\r\n ");
|
||||
epd.DisplayFrame(IMAGE_DATA, IMAGE_DATA);
|
||||
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// put your main code here, to run repeatedly:
|
||||
}
|
64
Arduino/epd2in9b_V2/epdif.cpp
Normal file
64
Arduino/epd2in9b_V2/epdif.cpp
Normal file
|
@ -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(7000000, MSBFIRST, SPI_MODE0));
|
||||
return 0;
|
||||
}
|
||||
|
51
Arduino/epd2in9b_V2/epdif.h
Normal file
51
Arduino/epd2in9b_V2/epdif.h
Normal file
|
@ -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
|
325
Arduino/epd2in9b_V2/imagedata.cpp
Normal file
325
Arduino/epd2in9b_V2/imagedata.cpp
Normal file
|
@ -0,0 +1,325 @@
|
|||
/**
|
||||
* @filename : imagedata.cpp
|
||||
* @brief : data file for epd demo
|
||||
*
|
||||
* Copyright (C) Waveshare July 3 2020
|
||||
*
|
||||
* 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 = { //0X00,0X01,0XF0,0X00,0X67,0X00,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X03,0XF0,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X03,0XF0,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X38,0X03,0XF0,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0XF8,0X03,0XF0,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X0F,0XF8,0X03,0XF0,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X7F,0XF8,0X03,0XF0,0X1F,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X03,0XFF,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0X80,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFC,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XF8,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFE,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X07,0XFF,0XC0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0XFF,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X1F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X1F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X7F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X03,0XFF,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,0XE0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFC,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XF0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFC,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X03,0XFF,0XE0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0XFF,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XFF,0X80,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X07,0XFF,0XC0,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0XFF,0XE0,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7C,0X00,0X7F,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0X00,0X0F,0XF8,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XC0,0X07,0XFC,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XE0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XF8,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X3F,0XFE,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X07,0XFF,0XC0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X01,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X83,0XFF,0X00,0X7F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFE,0X00,0X1F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0X00,0X1F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X7F,0XC0,0X7F,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0XF9,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X1F,0XFF,0XFF,0X80,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0X0B,0XFF,0XFE,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0X00,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0X00,0X3F,0XE0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0X00,0X0F,0X80,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0X00,0X02,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X18,0XFF,0XFF,0XFE,0X7F,0XF9,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X01,0XF8,0XFF,0XFF,0XF8,0X1F,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X3F,0XF8,0XFF,0XFF,0XE0,0X0F,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XE0,0XFF,0XFF,0XE0,0X07,0X80,0X7F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFC,0X00,0XFF,0XFF,0XF0,0X03,0XC0,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X00,0XFF,0XFF,0XF8,0X00,0XE0,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X3F,0XF0,0XC0,0X00,0X00,0X00,0X70,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X03,0XF8,0XC0,0X00,0X00,0X00,0X18,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X07,0XF8,0XC0,0X00,0X00,0X00,0X04,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0XE0,0XC0,0X00,0X00,0X00,0X06,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X00,0XC0,0X00,0X00,0X00,0X07,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFC,0X00,0XFF,0XFF,0XFF,0XFC,0X07,0XC3,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XE0,0XF8,0XFF,0XFF,0XFE,0X0F,0XE3,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1F,0XF8,0XF8,0X3F,0XFF,0X06,0X00,0X13,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X01,0XF8,0XE0,0X03,0XFF,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X18,0XE0,0X00,0X01,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XE0,0X00,0X01,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X70,0X00,0XF8,0X00,0X01,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XF9,0X80,0XFE,0X00,0X01,0X06,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XF9,0XC0,0XFF,0XC0,0X01,0X06,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XFF,0XFF,0XC1,0X06,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XFF,0XFF,0XC1,0X06,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XFF,0X8F,0XC1,0X06,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XFC,0X00,0X01,0X06,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X00,0XFE,0X00,0X01,0X06,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFE,0X00,0X01,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X40,0XFD,0X00,0X01,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X03,0XC0,0XF8,0X80,0X01,0X06,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1F,0XC0,0XE0,0X40,0XFF,0X02,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XC0,0X40,0XFF,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFC,0X00,0XC0,0X20,0X7E,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFC,0X00,0XE0,0X00,0X7E,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XF0,0X07,0XF0,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1F,0XC0,0XF8,0X03,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X03,0XC0,0XFC,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X40,0XFE,0X00,0X00,0X01,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XFF,0X00,0X00,0X7F,0X80,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0X00,0X00,0X7F,0X83,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFC,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XED,0XC0,0XF8,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XF0,0X03,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XE0,0X07,0XE0,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0XC0,0XE0,0X1F,0XFC,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0X80,0XE0,0X3F,0XFF,0XE0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X0E,0X00,0XF8,0X7F,0XFF,0XFF,0X83,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFC,0XFF,0XFF,0XFF,0X83,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X43,0X00,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC7,0X80,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFC,0XC0,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X78,0XC0,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X30,0X40,0XFF,0XFF,0XFF,0XE0,0X00,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF0,0X7F,0XFF,0XE0,0X00,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XFC,0XF0,0X7F,0X83,0XE0,0X00,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XFC,0XF0,0X60,0X83,0XFF,0XE0,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XFC,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X01,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X00,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X70,0X00,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XF9,0X80,0XF0,0X60,0X83,0XFF,0XE0,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XF9,0XC0,0XF0,0X60,0X83,0XFF,0XE0,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XF0,0X60,0X83,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XF0,0X60,0X83,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF0,0X60,0X83,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XF0,0X60,0X83,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X00,0XF0,0X60,0X83,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF0,0X60,0X83,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF0,0X60,0X83,0XFF,0XE0,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X01,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF0,0X60,0X83,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XC0,0X00,0X03,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XC0,0X00,0X03,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XC0,0X00,0X03,0X84,0X20,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XED,0XC0,0XC0,0X00,0X03,0XFF,0XE0,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XC0,0X00,0X03,0XE0,0X00,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XC0,0X00,0X03,0XE0,0X00,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0XC0,0XFF,0XFF,0XFF,0XE0,0X00,0X83,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0X80,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X0E,0X00,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC3,0X18,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC3,0X18,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC3,0X18,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC3,0X18,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0X18,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XFC,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XFC,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XFC,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0XFE,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XED,0XC0,0XFF,0XFE,0X07,0X03,0XC0,0X7F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XFC,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XF8,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0XC0,0XF0,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0X80,0XE0,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X0E,0X00,0XE0,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XE0,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XE0,0X3E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XE1,0XC0,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X40,0XC0,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XE0,0X7E,0X07,0X83,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XE0,0X7E,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0XF0,0XE0,0X7E,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0XE0,0X7E,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0XE0,0X3E,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XE0,0X02,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XE0,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XF8,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XFE,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X01,0XC0,0XFF,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XE1,0XC0,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XE1,0XC0,0XFF,0XFF,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0XC0,0XFF,0XFF,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0XFF,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XFF,0XFF,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XFC,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XE0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XC0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X01,0X80,0XC0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XC0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0XC0,0XC0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XC0,0XC0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X80,0XE0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0X00,0XE0,0X7F,0XF8,0X1F,0XFC,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XE0,0X00,0X00,0X00,0X3C,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XE0,0X00,0X00,0X00,0X3C,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XD8,0XE0,0X00,0X00,0X00,0X1C,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XD8,0XF0,0X00,0X00,0X00,0X1C,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFF,0XD8,0XF0,0X00,0X00,0X00,0X0C,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XF8,0X00,0X00,0X00,0X04,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XF8,0X1C,0X04,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X1E,0X00,0XFF,0XFF,0XF8,0X1E,0X00,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0XFF,0XF8,0X1E,0X00,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X7F,0X80,0XFF,0XFF,0XF8,0X1F,0X00,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XE1,0XC0,0XFF,0XFF,0XF8,0X1F,0X00,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XFF,0XFF,0XF8,0X1F,0X80,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XFF,0XFF,0XF8,0X1F,0XC0,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC0,0XC0,0XFF,0XFF,0XF8,0X1F,0XC0,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X40,0XC0,0XFF,0XFF,0XF8,0X1F,0XE0,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XF8,0X1F,0XF0,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X43,0X00,0XFF,0XFF,0XF8,0X1F,0XF8,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XC7,0X80,0XFF,0XFF,0XF8,0X1F,0XF8,0X07,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCF,0XC0,0XFF,0XFF,0XF8,0X1F,0XFC,0X0F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XCC,0XC0,0XFF,0XFF,0XF8,0X1F,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0XFC,0XC0,0XFF,0XFF,0XF8,0X1F,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X78,0XC0,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X30,0X40,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XF0,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};
|
28
Arduino/epd2in9b_V2/imagedata.h
Normal file
28
Arduino/epd2in9b_V2/imagedata.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* @filename : imagedata.h
|
||||
* @brief : head file for imagedata.cpp
|
||||
*
|
||||
* Copyright (C) Waveshare July 3 2020
|
||||
*
|
||||
* 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 */
|
325
Arduino/epd3in7/epd3in7.cpp
Normal file
325
Arduino/epd3in7/epd3in7.cpp
Normal file
|
@ -0,0 +1,325 @@
|
|||
/**
|
||||
* @filename : epd3in7.cpp
|
||||
* @brief : Implements for e-paper library
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 17 2020
|
||||
*
|
||||
* 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 "epd3in7.h"
|
||||
#include "imagedata.h"
|
||||
|
||||
static const UBYTE lut_4Gray_GC[] =
|
||||
{
|
||||
0x2A,0x06,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1
|
||||
0x28,0x06,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//2
|
||||
0x20,0x06,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3
|
||||
0x14,0x06,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//4
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5
|
||||
0x00,0x02,0x02,0x0A,0x00,0x00,0x00,0x08,0x08,0x02,//6
|
||||
0x00,0x02,0x02,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,//7
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//10
|
||||
0x22,0x22,0x22,0x22,0x22
|
||||
};
|
||||
|
||||
static const UBYTE lut_1Gray_GC[] =
|
||||
{
|
||||
0x2A,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1
|
||||
0x05,0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//2
|
||||
0x2A,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3
|
||||
0x05,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//4
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5
|
||||
0x00,0x02,0x03,0x0A,0x00,0x02,0x06,0x0A,0x05,0x00,//6
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//10
|
||||
0x22,0x22,0x22,0x22,0x22
|
||||
};
|
||||
|
||||
static const UBYTE lut_1Gray_DU[] =
|
||||
{
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1
|
||||
0x01,0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x0A,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5
|
||||
0x00,0x00,0x05,0x05,0x00,0x05,0x03,0x05,0x05,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x22,0x22,0x22,0x22,0x22
|
||||
};
|
||||
|
||||
|
||||
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(void) {
|
||||
if (IfInit() != 0) {
|
||||
return -1;
|
||||
}
|
||||
Reset();
|
||||
|
||||
SendCommand(0x12);
|
||||
DelayMs(300);
|
||||
|
||||
SendCommand(0x46);
|
||||
SendData(0xF7);
|
||||
WaitUntilIdle();
|
||||
SendCommand(0x47);
|
||||
SendData(0xF7);
|
||||
WaitUntilIdle();
|
||||
|
||||
SendCommand(0x01); // setting gaet number
|
||||
SendData(0xDF);
|
||||
SendData(0x01);
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0x03); // set gate voltage
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0x04); // set source voltage
|
||||
SendData(0x41);
|
||||
SendData(0xA8);
|
||||
SendData(0x32);
|
||||
|
||||
SendCommand(0x11); // set data entry sequence
|
||||
SendData(0x03);
|
||||
|
||||
SendCommand(0x3C); // set border
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0x0C); // set booster strength
|
||||
SendData(0xAE);
|
||||
SendData(0xC7);
|
||||
SendData(0xC3);
|
||||
SendData(0xC0);
|
||||
SendData(0xC0);
|
||||
|
||||
SendCommand(0x18); // set internal sensor on
|
||||
SendData(0x80);
|
||||
|
||||
SendCommand(0x2C); // set vcom value
|
||||
SendData(0x44);
|
||||
|
||||
SendCommand(0x37); // set display option, these setting turn on previous function
|
||||
SendData(0x00);
|
||||
SendData(0xff);
|
||||
SendData(0xff);
|
||||
SendData(0xff);
|
||||
SendData(0xff);
|
||||
SendData(0x4f);
|
||||
SendData(0xff);
|
||||
SendData(0xff);
|
||||
SendData(0xff);
|
||||
SendData(0xff);
|
||||
|
||||
SendCommand(0x44); // setting X direction start/end position of RAM
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0x17);
|
||||
SendData(0x01);
|
||||
|
||||
SendCommand(0x45); // setting Y direction start/end position of RAM
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendData(0xDF);
|
||||
SendData(0x01);
|
||||
|
||||
SendCommand(0x22); // Display Update Control 2
|
||||
SendData(0xCF);
|
||||
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::WaitUntilIdle(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, LOW); //module reset
|
||||
DelayMs(1);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Display
|
||||
******************************************************************************/
|
||||
void Epd::DisplayFrame(const UBYTE *Image) {
|
||||
UWORD i;
|
||||
UWORD IMAGE_COUNTER = width * height / 8;
|
||||
|
||||
SendCommand(0x4E);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendCommand(0x4F);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0x24);
|
||||
for (i = 0; i < IMAGE_COUNTER; i++)
|
||||
{
|
||||
SendData(pgm_read_byte(&Image[i]));
|
||||
}
|
||||
|
||||
Load_LUT(1);
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Partial Display
|
||||
******************************************************************************/
|
||||
void Epd::DisplayFrame_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD iwidth, UWORD iheight) {
|
||||
UWORD i, j;
|
||||
SendCommand(0x4E);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendCommand(0x4F);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0x24);
|
||||
for(i=0; i<EPD_WIDTH; i++) {
|
||||
for(j=0; j<EPD_HEIGHT/8; j++) {
|
||||
if(i>=Ystart && i<Ystart+iheight && j>=Xstart/8 && j<(Xstart+iwidth)/8)
|
||||
SendData(Image[(j-Xstart/8) + (i-Ystart)*iwidth/8]);
|
||||
else
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
|
||||
Load_LUT(0);
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
function : set the look-up tables
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::Load_LUT(UBYTE mode) {
|
||||
UWORD i;
|
||||
SendCommand(0x32);
|
||||
for (i = 0; i < 105; i++) {
|
||||
if(mode == 1)
|
||||
SendData(lut_1Gray_GC[i]);
|
||||
else if(mode == 0)
|
||||
SendData(lut_1Gray_DU[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Clear Screen
|
||||
parameter:
|
||||
mode: 0:just partial mode
|
||||
1:clear all
|
||||
******************************************************************************/
|
||||
void Epd::Clear(UBYTE mode) {
|
||||
UWORD i;
|
||||
UWORD IMAGE_COUNTER = width * height / 8;
|
||||
|
||||
SendCommand(0x4E);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
SendCommand(0x4F);
|
||||
SendData(0x00);
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0x24);
|
||||
for (i = 0; i < IMAGE_COUNTER; i++)
|
||||
{
|
||||
SendData(0xff);
|
||||
}
|
||||
if(mode)
|
||||
Load_LUT(1);
|
||||
else
|
||||
Load_LUT(0);
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
* The deep sleep mode would return to standby by hardware reset.
|
||||
* The only one parameter is a check code, the command would be
|
||||
* You can use EPD_Reset() to awaken
|
||||
*/
|
||||
void Epd::Sleep(void) {
|
||||
SendCommand(0X50);
|
||||
SendData(0xf7);
|
||||
SendCommand(0X02); //power off
|
||||
SendCommand(0X07); //deep sleep
|
||||
SendData(0xA5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* END OF FILE */
|
66
Arduino/epd3in7/epd3in7.h
Normal file
66
Arduino/epd3in7/epd3in7.h
Normal file
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
* @filename : epd3in7.h
|
||||
* @brief : Header file for e-paper library epd3in7.cpp
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 17 2020
|
||||
*
|
||||
* 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 EPD3IN7_H
|
||||
#define EPD3IN7_H
|
||||
|
||||
#include "epdif.h"
|
||||
|
||||
// Display resolution
|
||||
#define EPD_WIDTH 480
|
||||
#define EPD_HEIGHT 280
|
||||
|
||||
#define UWORD unsigned int
|
||||
#define UBYTE unsigned char
|
||||
#define UDOUBLE unsigned long
|
||||
|
||||
class Epd : EpdIf {
|
||||
public:
|
||||
Epd();
|
||||
~Epd();
|
||||
int Init(void);
|
||||
void WaitUntilIdle(void);
|
||||
void Reset(void);
|
||||
void DisplayFrame(const UBYTE *Image);
|
||||
void SendCommand(unsigned char command);
|
||||
void DisplayFrame_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD iwidth, UWORD iheight);
|
||||
void SendData(unsigned char data);
|
||||
void Sleep(void);
|
||||
void Clear(UBYTE mode);
|
||||
void Load_LUT(UBYTE mode);
|
||||
|
||||
private:
|
||||
unsigned int reset_pin;
|
||||
unsigned int dc_pin;
|
||||
unsigned int cs_pin;
|
||||
unsigned int busy_pin;
|
||||
unsigned long width;
|
||||
unsigned long height;
|
||||
};
|
||||
|
||||
#endif /* EPD3IN7_H */
|
||||
|
||||
/* END OF FILE */
|
82
Arduino/epd3in7/epd3in7.ino
Normal file
82
Arduino/epd3in7/epd3in7.ino
Normal file
|
@ -0,0 +1,82 @@
|
|||
/**
|
||||
@filename : epd3in7-demo.ino
|
||||
@brief : 3.7inch e-paper display demo
|
||||
@author : Waveshare
|
||||
|
||||
Copyright (C) Waveshare July 17 2020
|
||||
|
||||
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 "epd3in7.h"
|
||||
#include "imagedata.h"
|
||||
#include "epdpaint.h"
|
||||
|
||||
#define COLORED 0
|
||||
#define UNCOLORED 1
|
||||
|
||||
UBYTE image[800];
|
||||
Paint paint(image, 0, 0); // width should be the multiple of 8
|
||||
UDOUBLE time_start_ms;
|
||||
UDOUBLE time_now_s;
|
||||
|
||||
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.7inch e-paper demo\r\n ");
|
||||
Serial.print("e-Paper Clear\r\n ");
|
||||
epd.Clear(1);
|
||||
Serial.print("draw image\r\n ");
|
||||
epd.DisplayFrame(IMAGE_DATA);
|
||||
delay(4000);
|
||||
epd.Clear(0);
|
||||
|
||||
UBYTE i;
|
||||
time_start_ms = millis();
|
||||
for(i=0; i<10; i++) {
|
||||
time_now_s = (millis() - time_start_ms) / 1000;
|
||||
char time_string[] = {'0', '0', ':', '0', '0', '\0'};
|
||||
time_string[0] = time_now_s / 60 / 10 + '0';
|
||||
time_string[1] = time_now_s / 60 % 10 + '0';
|
||||
time_string[3] = time_now_s % 60 / 10 + '0';
|
||||
time_string[4] = time_now_s % 60 % 10 + '0';
|
||||
paint.SetWidth(48);
|
||||
paint.SetHeight(100);
|
||||
paint.SetRotate(ROTATE_270);
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawStringAt(20, 10, time_string, &Font16, COLORED);
|
||||
Serial.print("refresh------\r\n ");
|
||||
epd.DisplayFrame_Partial(paint.GetImage(), 20, 100, 48, 100);
|
||||
}
|
||||
|
||||
Serial.print("clear and sleep......\r\n ");
|
||||
epd.Clear(1);
|
||||
epd.Sleep();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// put your main code here, to run repeatedly:
|
||||
|
||||
}
|
65
Arduino/epd3in7/epdif.cpp
Normal file
65
Arduino/epd3in7/epdif.cpp
Normal file
|
@ -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
Arduino/epd3in7/epdif.h
Normal file
51
Arduino/epd3in7/epdif.h
Normal file
|
@ -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
Arduino/epd3in7/epdpaint.cpp
Normal file
342
Arduino/epd3in7/epdpaint.cpp
Normal file
|
@ -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
Arduino/epd3in7/epdpaint.h
Normal file
75
Arduino/epd3in7/epdpaint.h
Normal file
|
@ -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
Arduino/epd3in7/font12.cpp
Normal file
1385
Arduino/epd3in7/font12.cpp
Normal file
File diff suppressed because it is too large
Load diff
1765
Arduino/epd3in7/font16.cpp
Normal file
1765
Arduino/epd3in7/font16.cpp
Normal file
File diff suppressed because it is too large
Load diff
2143
Arduino/epd3in7/font20.cpp
Normal file
2143
Arduino/epd3in7/font20.cpp
Normal file
File diff suppressed because it is too large
Load diff
2521
Arduino/epd3in7/font24.cpp
Normal file
2521
Arduino/epd3in7/font24.cpp
Normal file
File diff suppressed because it is too large
Load diff
1005
Arduino/epd3in7/font8.cpp
Normal file
1005
Arduino/epd3in7/font8.cpp
Normal file
File diff suppressed because it is too large
Load diff
65
Arduino/epd3in7/fonts.h
Normal file
65
Arduino/epd3in7/fonts.h
Normal file
|
@ -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>© 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****/
|
1082
Arduino/epd3in7/imagedata.cpp
Normal file
1082
Arduino/epd3in7/imagedata.cpp
Normal file
File diff suppressed because it is too large
Load diff
28
Arduino/epd3in7/imagedata.h
Normal file
28
Arduino/epd3in7/imagedata.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* @filename : imagedata.h
|
||||
* @brief : head file for imagedata.cpp
|
||||
*
|
||||
* Copyright (C) Waveshare July 17 2020
|
||||
*
|
||||
* 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[]; //1-Gray 480*280
|
||||
|
||||
/* FILE END */
|
269
Arduino/epd5in65f/epd5in65f.cpp
Normal file
269
Arduino/epd5in65f/epd5in65f.cpp
Normal file
|
@ -0,0 +1,269 @@
|
|||
/*****************************************************************************
|
||||
* | File : EPD_5in65f.c
|
||||
* | Author : Waveshare team
|
||||
* | Function : 5.65inch e-paper
|
||||
* | Info :
|
||||
*----------------
|
||||
* | This version: V1.0
|
||||
* | Date : 2020-07-08
|
||||
* | 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 "epd5in65f.h"
|
||||
#include "imagedata.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;
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
function : Initialize the e-Paper register
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
int Epd::Init(void) {
|
||||
if (IfInit() != 0) {
|
||||
return -1;
|
||||
}
|
||||
Reset();
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x00);
|
||||
SendData(0xEF);
|
||||
SendData(0x08);
|
||||
SendCommand(0x01);
|
||||
SendData(0x37);
|
||||
SendData(0x00);
|
||||
SendData(0x23);
|
||||
SendData(0x23);
|
||||
SendCommand(0x03);
|
||||
SendData(0x00);
|
||||
SendCommand(0x06);
|
||||
SendData(0xC7);
|
||||
SendData(0xC7);
|
||||
SendData(0x1D);
|
||||
SendCommand(0x30);
|
||||
SendData(0x3C);
|
||||
SendCommand(0x40);
|
||||
SendData(0x00);
|
||||
SendCommand(0x50);
|
||||
SendData(0x37);
|
||||
SendCommand(0x60);
|
||||
SendData(0x22);
|
||||
SendCommand(0x61);
|
||||
SendData(0x02);
|
||||
SendData(0x58);
|
||||
SendData(0x01);
|
||||
SendData(0xC0);
|
||||
SendCommand(0xE3);
|
||||
SendData(0xAA);
|
||||
|
||||
DelayMs(100);
|
||||
SendCommand(0x50);
|
||||
SendData(0x37);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
|
||||
void Epd::EPD_5IN65F_BusyHigh(void)// If BUSYN=0 then waiting
|
||||
{
|
||||
while(!(DigitalRead(BUSY_PIN)));
|
||||
}
|
||||
|
||||
void Epd::EPD_5IN65F_BusyLow(void)// If BUSYN=1 then waiting
|
||||
{
|
||||
while(DigitalRead(BUSY_PIN));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: module reset.
|
||||
* often used to awaken the module in deep sleep,
|
||||
* see Epd::Sleep();
|
||||
*/
|
||||
void Epd::Reset(void) {
|
||||
DigitalWrite(reset_pin, LOW); //module reset
|
||||
DelayMs(1);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : show 7 kind of color block
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::EPD_5IN65F_Show7Block(void)
|
||||
{
|
||||
unsigned long i,j,k;
|
||||
unsigned char const Color_seven[8] =
|
||||
{EPD_5IN65F_BLACK,EPD_5IN65F_BLUE,EPD_5IN65F_GREEN,EPD_5IN65F_ORANGE,
|
||||
EPD_5IN65F_RED,EPD_5IN65F_YELLOW,EPD_5IN65F_WHITE,EPD_5IN65F_WHITE};
|
||||
SendCommand(0x61);//Set Resolution setting
|
||||
SendData(0x02);
|
||||
SendData(0x58);
|
||||
SendData(0x01);
|
||||
SendData(0xC0);
|
||||
SendCommand(0x10);
|
||||
|
||||
for(i=0; i<224; i++) {
|
||||
for(k = 0 ; k < 4; k ++) {
|
||||
for(j = 0 ; j < 75; j ++) {
|
||||
SendData((Color_seven[k]<<4) |Color_seven[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(i=0; i<224; i++) {
|
||||
for(k = 4 ; k < 8; k ++) {
|
||||
for(j = 0 ; j < 75; j ++) {
|
||||
SendData((Color_seven[k]<<4) |Color_seven[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
SendCommand(0x04);//0x04
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x12);//0x12
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x02); //0x02
|
||||
EPD_5IN65F_BusyLow();
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Sends the image buffer in RAM to e-Paper and displays
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::EPD_5IN65F_Display(const UBYTE *image) {
|
||||
unsigned long i,j;
|
||||
SendCommand(0x61);//Set Resolution setting
|
||||
SendData(0x02);
|
||||
SendData(0x58);
|
||||
SendData(0x01);
|
||||
SendData(0xC0);
|
||||
SendCommand(0x10);
|
||||
for(i=0; i<height; i++) {
|
||||
for(j=0; j<width/2; j++)
|
||||
SendData(image[j+((width/2)*i)]);
|
||||
}
|
||||
SendCommand(0x04);//0x04
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x12);//0x12
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x02); //0x02
|
||||
EPD_5IN65F_BusyLow();
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Sends the part image buffer in RAM to e-Paper and displays
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::EPD_5IN65F_Display_part(const UBYTE *image, UWORD xstart, UWORD ystart,
|
||||
UWORD image_width, UWORD image_heigh)
|
||||
{
|
||||
unsigned long i,j;
|
||||
SendCommand(0x61);//Set Resolution setting
|
||||
SendData(0x02);
|
||||
SendData(0x58);
|
||||
SendData(0x01);
|
||||
SendData(0xC0);
|
||||
SendCommand(0x10);
|
||||
for(i=0; i<height; i++) {
|
||||
for(j=0; j< width/2; j++)
|
||||
if(i<image_heigh+ystart && i>=ystart && j<(image_width+xstart)/2 && j>=xstart/2) {
|
||||
SendData(pgm_read_byte(&image[(j-xstart/2) + (image_width/2*(i-ystart))]));
|
||||
}
|
||||
else {
|
||||
SendData(0x11);
|
||||
}
|
||||
}
|
||||
SendCommand(0x04);//0x04
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x12);//0x12
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x02); //0x02
|
||||
EPD_5IN65F_BusyLow();
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function :
|
||||
Clear screen
|
||||
******************************************************************************/
|
||||
void Epd::Clear(UBYTE color) {
|
||||
SendCommand(0x61);//Set Resolution setting
|
||||
SendData(0x02);
|
||||
SendData(0x58);
|
||||
SendData(0x01);
|
||||
SendData(0xC0);
|
||||
SendCommand(0x10);
|
||||
for(int i=0; i<width/2; i++) {
|
||||
for(int j=0; j<height; j++)
|
||||
SendData((color<<4)|color);
|
||||
}
|
||||
SendCommand(0x04);//0x04
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x12);//0x12
|
||||
EPD_5IN65F_BusyHigh();
|
||||
SendCommand(0x02); //0x02
|
||||
EPD_5IN65F_BusyLow();
|
||||
DelayMs(500);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
* The deep sleep mode would return to standby by hardware reset.
|
||||
* The only one parameter is a check code, the command would be
|
||||
* You can use EPD_Reset() to awaken
|
||||
*/
|
||||
void Epd::Sleep(void) {
|
||||
DelayMs(100);
|
||||
SendCommand(0x07);
|
||||
SendData(0xA5);
|
||||
DelayMs(100);
|
||||
DigitalWrite(RST_PIN, 0); // Reset
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* END OF FILE */
|
85
Arduino/epd5in65f/epd5in65f.h
Normal file
85
Arduino/epd5in65f/epd5in65f.h
Normal file
|
@ -0,0 +1,85 @@
|
|||
/*****************************************************************************
|
||||
* | File : EPD_5in65f.h
|
||||
* | Author : Waveshare team
|
||||
* | Function : 5.65inch e-paper
|
||||
* | Info :
|
||||
*----------------
|
||||
* | This version: V1.0
|
||||
* | Date : 2020-07-08
|
||||
* | 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_5IN65F_H__
|
||||
#define __EPD_5IN65F_H__
|
||||
|
||||
#include "epdif.h"
|
||||
|
||||
// Display resolution
|
||||
#define EPD_WIDTH 600
|
||||
#define EPD_HEIGHT 448
|
||||
|
||||
#define UWORD unsigned int
|
||||
#define UBYTE unsigned char
|
||||
#define UDOUBLE unsigned long
|
||||
|
||||
/**********************************
|
||||
Color Index
|
||||
**********************************/
|
||||
#define EPD_5IN65F_BLACK 0x0 /// 000
|
||||
#define EPD_5IN65F_WHITE 0x1 /// 001
|
||||
#define EPD_5IN65F_GREEN 0x2 /// 010
|
||||
#define EPD_5IN65F_BLUE 0x3 /// 011
|
||||
#define EPD_5IN65F_RED 0x4 /// 100
|
||||
#define EPD_5IN65F_YELLOW 0x5 /// 101
|
||||
#define EPD_5IN65F_ORANGE 0x6 /// 110
|
||||
#define EPD_5IN65F_CLEAN 0x7 /// 111 unavailable Afterimage
|
||||
|
||||
class Epd : EpdIf {
|
||||
public:
|
||||
Epd();
|
||||
~Epd();
|
||||
int Init(void);
|
||||
void EPD_5IN65F_BusyHigh(void);
|
||||
void EPD_5IN65F_BusyLow(void);
|
||||
void Reset(void);
|
||||
void EPD_5IN65F_Display(const UBYTE *image);
|
||||
void EPD_5IN65F_Display_part(const UBYTE *image, UWORD xstart, UWORD ystart,
|
||||
UWORD image_width, UWORD image_heigh);
|
||||
void EPD_5IN65F_Show7Block(void);
|
||||
void SendCommand(unsigned char command);
|
||||
void SendData(unsigned char data);
|
||||
void Sleep(void);
|
||||
void Clear(UBYTE color);
|
||||
|
||||
private:
|
||||
unsigned int reset_pin;
|
||||
unsigned int dc_pin;
|
||||
unsigned int cs_pin;
|
||||
unsigned int busy_pin;
|
||||
unsigned long width;
|
||||
unsigned long height;
|
||||
};
|
||||
|
||||
#endif /* EPD5IN83B_HD_H */
|
||||
|
||||
/* END OF FILE */
|
52
Arduino/epd5in65f/epd5in65f.ino
Normal file
52
Arduino/epd5in65f/epd5in65f.ino
Normal file
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
@filename : EPD_5in65f.ino
|
||||
@brief : EPD_5in65 e-paper F display demo
|
||||
@author : Waveshare
|
||||
|
||||
Copyright (C) Waveshare July 8 2020
|
||||
|
||||
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 "imagedata.h"
|
||||
#include "epd5in65f.h"
|
||||
|
||||
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("e-Paper Clear\r\n ");
|
||||
epd.Clear(EPD_5IN65F_WHITE);
|
||||
|
||||
Serial.print("draw image\r\n ");
|
||||
epd.EPD_5IN65F_Display_part(gImage_5in65f, 204, 153, 192, 143);
|
||||
// epd.EPD_5IN65F_Show7Block();
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// put your main code here, to run repeatedly:
|
||||
|
||||
}
|
65
Arduino/epd5in65f/epdif.cpp
Normal file
65
Arduino/epd5in65f/epdif.cpp
Normal file
|
@ -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
Arduino/epd5in65f/epdif.h
Normal file
51
Arduino/epd5in65f/epdif.h
Normal file
|
@ -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
|
888
Arduino/epd5in65f/imagedata.cpp
Normal file
888
Arduino/epd5in65f/imagedata.cpp
Normal file
|
@ -0,0 +1,888 @@
|
|||
/**
|
||||
* @filename : imagedata.cpp
|
||||
* @brief : data file for epd demo
|
||||
*
|
||||
* Copyright (C) Waveshare July 8 2020
|
||||
*
|
||||
* 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 gImage_5in65f[13728] PROGMEM = {
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x36, 0x6, 0x36, 0x36, 0x36, 0x36, 0x6, 0x36, 0x6,
|
||||
0x36, 0x6, 0x36, 0x6, 0x36, 0x36, 0x0, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x6, 0x36,
|
||||
0x6, 0x36, 0x6, 0x36, 0x36, 0x6, 0x36, 0x6, 0x36, 0x6, 0x36, 0x36, 0x36, 0x6, 0x36, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x2, 0x36, 0x32, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
|
||||
0x63, 0x63, 0x63, 0x63, 0x60, 0x23, 0x63, 0x23, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x3, 0x26,
|
||||
0x36, 0x36, 0x36, 0x36, 0x23, 0x63, 0x63, 0x63, 0x63, 0x63, 0x60, 0x63, 0x26, 0x36, 0x2, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x12, 0x11, 0x12, 0x11, 0x21, 0x12, 0x11, 0x21, 0x11, 0x12, 0x11, 0x21, 0x12, 0x11, 0x21,
|
||||
0x12, 0x13, 0x12, 0x16, 0x13, 0x12, 0x11, 0x31, 0x21, 0x31, 0x23, 0x12, 0x32, 0x13, 0x23, 0x21,
|
||||
0x11, 0x11, 0x31, 0x11, 0x13, 0x11, 0x11, 0x36, 0x36, 0x36, 0x32, 0x63, 0x26, 0x36, 0x6, 0x36,
|
||||
0x36, 0x6, 0x32, 0x63, 0x63, 0x66, 0x36, 0x36, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x6, 0x36,
|
||||
0x36, 0x23, 0x62, 0x36, 0x36, 0x1, 0x6, 0x36, 0x6, 0x32, 0x36, 0x36, 0x63, 0x23, 0x63, 0x1,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x11, 0x13, 0x11, 0x31, 0x21, 0x13, 0x12,
|
||||
0x11, 0x31, 0x11, 0x31, 0x11, 0x13, 0x11, 0x13, 0x11, 0x12, 0x11, 0x31, 0x13, 0x11, 0x13, 0x11,
|
||||
0x31, 0x11, 0x11, 0x12, 0x11, 0x11, 0x21, 0x21, 0x11, 0x21, 0x11, 0x61, 0x11, 0x21, 0x11, 0x31,
|
||||
0x11, 0x21, 0x11, 0x12, 0x11, 0x11, 0x23, 0x60, 0x10, 0x23, 0x66, 0x36, 0x36, 0x36, 0x36, 0x6,
|
||||
0x36, 0x36, 0x36, 0x36, 0x36, 0x32, 0x36, 0x6, 0x21, 0x11, 0x11, 0x11, 0x11, 0x10, 0x1, 0x36,
|
||||
0x32, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x24, 0x36, 0x36, 0x36, 0x36, 0x0, 0x61,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x16, 0x11, 0x11, 0x12, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x12, 0x11, 0x61, 0x11, 0x13, 0x11, 0x11, 0x11, 0x12, 0x13, 0x11, 0x11, 0x11, 0x13, 0x11, 0x12,
|
||||
0x11, 0x21, 0x21, 0x31, 0x12, 0x13, 0x11, 0x11, 0x31, 0x11, 0x21, 0x21, 0x23, 0x11, 0x21, 0x21,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x32, 0x36, 0x36, 0x32, 0x36, 0x36, 0x6, 0x36, 0x36,
|
||||
0x36, 0x6, 0x36, 0x6, 0x36, 0x36, 0x6, 0x30, 0x31, 0x11, 0x11, 0x11, 0x11, 0x36, 0x6, 0x32,
|
||||
0x63, 0x60, 0x60, 0x63, 0x63, 0x63, 0x20, 0x63, 0x63, 0x63, 0x63, 0x62, 0x31, 0x6, 0x32, 0x36,
|
||||
0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x16, 0x11, 0x11, 0x21, 0x16, 0x11, 0x21, 0x13,
|
||||
0x11, 0x11, 0x12, 0x16, 0x11, 0x11, 0x21, 0x21, 0x11, 0x11, 0x11, 0x12, 0x12, 0x11, 0x12, 0x11,
|
||||
0x11, 0x13, 0x11, 0x11, 0x31, 0x11, 0x13, 0x21, 0x11, 0x31, 0x13, 0x13, 0x11, 0x13, 0x13, 0x61,
|
||||
0x11, 0x31, 0x13, 0x11, 0x31, 0x11, 0x36, 0x6, 0x36, 0x23, 0x63, 0x62, 0x36, 0x36, 0x36, 0x32,
|
||||
0x6, 0x36, 0x36, 0x36, 0x26, 0x36, 0x32, 0x6, 0x31, 0x11, 0x31, 0x11, 0x11, 0x23, 0x23, 0x63,
|
||||
0x63, 0x63, 0x23, 0x62, 0x36, 0x26, 0x36, 0x36, 0x6, 0x36, 0x6, 0x36, 0x36, 0x1, 0x6, 0x2,
|
||||
0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x11, 0x11,
|
||||
0x11, 0x61, 0x21, 0x11, 0x12, 0x11, 0x11, 0x13, 0x11, 0x21, 0x61, 0x21, 0x11, 0x12, 0x11, 0x31,
|
||||
0x13, 0x11, 0x12, 0x11, 0x12, 0x12, 0x11, 0x16, 0x21, 0x11, 0x21, 0x12, 0x12, 0x12, 0x11, 0x21,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x36, 0x36, 0x32, 0x63, 0x63, 0x63, 0x60, 0x63, 0x63,
|
||||
0x63, 0x20, 0x63, 0x63, 0x3, 0x26, 0x36, 0x30, 0x63, 0x11, 0x11, 0x31, 0x11, 0x60, 0x63, 0x26,
|
||||
0x36, 0x36, 0x36, 0x36, 0x63, 0x3, 0x63, 0x63, 0x63, 0x63, 0x23, 0x63, 0x63, 0x23, 0x63, 0x63,
|
||||
0x11, 0x31, 0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x13, 0x11, 0x61, 0x13, 0x12, 0x11, 0x11, 0x21,
|
||||
0x13, 0x11, 0x11, 0x12, 0x11, 0x31, 0x13, 0x11, 0x11, 0x31, 0x11, 0x16, 0x13, 0x11, 0x61, 0x12,
|
||||
0x11, 0x21, 0x13, 0x12, 0x11, 0x11, 0x31, 0x11, 0x12, 0x16, 0x12, 0x11, 0x31, 0x61, 0x21, 0x31,
|
||||
0x11, 0x21, 0x21, 0x16, 0x11, 0x11, 0x36, 0x32, 0x63, 0x63, 0x63, 0x63, 0x60, 0x63, 0x60, 0x63,
|
||||
0x63, 0x63, 0x63, 0x60, 0x66, 0x36, 0x36, 0x32, 0x1, 0x11, 0x11, 0x11, 0x11, 0x30, 0x63, 0x63,
|
||||
0x63, 0x26, 0x36, 0x36, 0x36, 0x66, 0x36, 0x36, 0x36, 0x36, 0x36, 0x6, 0x36, 0x36, 0x32, 0x36,
|
||||
0x21, 0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x21, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x11,
|
||||
0x21, 0x13, 0x11, 0x31, 0x11, 0x11, 0x21, 0x12, 0x11, 0x11, 0x21, 0x31, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x21, 0x13, 0x16, 0x31, 0x12, 0x13, 0x11, 0x31, 0x21, 0x31, 0x12, 0x13, 0x11, 0x21,
|
||||
0x11, 0x11, 0x11, 0x11, 0x13, 0x11, 0x16, 0x6, 0x32, 0x36, 0x32, 0x63, 0x63, 0x26, 0x36, 0x36,
|
||||
0x36, 0x63, 0x60, 0x63, 0x63, 0x63, 0x23, 0x66, 0x0, 0x11, 0x11, 0x11, 0x11, 0x63, 0x62, 0x36,
|
||||
0x23, 0x63, 0x42, 0x36, 0x36, 0x33, 0x62, 0x63, 0x26, 0x6, 0x36, 0x32, 0x60, 0x63, 0x60, 0x60,
|
||||
0x31, 0x11, 0x12, 0x11, 0x11, 0x12, 0x11, 0x11, 0x11, 0x11, 0x31, 0x21, 0x11, 0x11, 0x31, 0x11,
|
||||
0x11, 0x11, 0x21, 0x11, 0x31, 0x11, 0x11, 0x11, 0x31, 0x21, 0x11, 0x11, 0x21, 0x31, 0x21, 0x31,
|
||||
0x21, 0x31, 0x12, 0x11, 0x11, 0x12, 0x11, 0x11, 0x21, 0x11, 0x31, 0x12, 0x11, 0x21, 0x21, 0x31,
|
||||
0x11, 0x31, 0x13, 0x11, 0x21, 0x11, 0x32, 0x36, 0x36, 0x6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x6,
|
||||
0x36, 0x36, 0x36, 0x36, 0x36, 0x6, 0x63, 0x23, 0x66, 0x11, 0x21, 0x11, 0x13, 0x2, 0x36, 0x36,
|
||||
0x36, 0x6, 0x36, 0x6, 0x23, 0x66, 0x36, 0x36, 0x36, 0x36, 0x6, 0x36, 0x36, 0x32, 0x36, 0x30,
|
||||
0x11, 0x11, 0x11, 0x16, 0x11, 0x11, 0x13, 0x11, 0x31, 0x21, 0x11, 0x11, 0x31, 0x12, 0x11, 0x21,
|
||||
0x12, 0x11, 0x11, 0x11, 0x11, 0x21, 0x12, 0x11, 0x11, 0x13, 0x11, 0x21, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x61, 0x12, 0x12, 0x11, 0x31, 0x21, 0x31, 0x21, 0x11, 0x21, 0x31, 0x13, 0x13, 0x12,
|
||||
0x11, 0x11, 0x11, 0x21, 0x11, 0x11, 0x10, 0x63, 0x60, 0x13, 0x26, 0x36, 0x36, 0x36, 0x36, 0x32,
|
||||
0x63, 0x60, 0x63, 0x60, 0x63, 0x63, 0x36, 0x60, 0x30, 0x31, 0x11, 0x61, 0x11, 0x0, 0x63, 0x63,
|
||||
0x63, 0x63, 0x23, 0x63, 0x63, 0x23, 0x63, 0x63, 0x60, 0x63, 0x63, 0x63, 0x63, 0x63, 0x62, 0x36,
|
||||
0x2, 0x11, 0x31, 0x11, 0x11, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13,
|
||||
0x11, 0x13, 0x11, 0x21, 0x21, 0x11, 0x31, 0x16, 0x12, 0x11, 0x21, 0x11, 0x31, 0x21, 0x13, 0x12,
|
||||
0x13, 0x12, 0x13, 0x11, 0x31, 0x21, 0x11, 0x11, 0x11, 0x31, 0x21, 0x31, 0x53, 0x11, 0x21, 0x61,
|
||||
0x12, 0x11, 0x11, 0x11, 0x16, 0x11, 0x63, 0x23, 0x63, 0x60, 0x63, 0x62, 0x6, 0x36, 0x6, 0x36,
|
||||
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x63, 0x23, 0x60, 0x11, 0x11, 0x11, 0x11, 0x6, 0x32, 0x63,
|
||||
0x20, 0x63, 0x60, 0x63, 0x63, 0x66, 0x6, 0x36, 0x3, 0x63, 0x60, 0x63, 0x60, 0x60, 0x63, 0x60,
|
||||
0x31, 0x11, 0x11, 0x12, 0x13, 0x11, 0x11, 0x21, 0x11, 0x31, 0x16, 0x11, 0x12, 0x13, 0x11, 0x11,
|
||||
0x11, 0x61, 0x11, 0x31, 0x11, 0x31, 0x11, 0x31, 0x11, 0x16, 0x11, 0x31, 0x11, 0x11, 0x31, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x12, 0x31, 0x21, 0x11, 0x31, 0x11, 0x21, 0x21, 0x13, 0x12,
|
||||
0x13, 0x11, 0x61, 0x13, 0x11, 0x11, 0x13, 0x42, 0x36, 0x23, 0x63, 0x63, 0x60, 0x63, 0x63, 0x63,
|
||||
0x60, 0x10, 0x10, 0x63, 0x60, 0x63, 0x63, 0x63, 0x23, 0x61, 0x31, 0x13, 0x11, 0x6, 0x36, 0x36,
|
||||
0x36, 0x6, 0x36, 0x36, 0x36, 0x3, 0x10, 0x63, 0x16, 0x6, 0x31, 0x6, 0x36, 0x32, 0x36, 0x32,
|
||||
0x36, 0x11, 0x12, 0x11, 0x11, 0x11, 0x31, 0x11, 0x21, 0x12, 0x11, 0x31, 0x11, 0x11, 0x12, 0x11,
|
||||
0x21, 0x12, 0x11, 0x16, 0x11, 0x12, 0x11, 0x12, 0x13, 0x11, 0x21, 0x11, 0x21, 0x21, 0x12, 0x16,
|
||||
0x12, 0x13, 0x12, 0x13, 0x12, 0x11, 0x11, 0x11, 0x11, 0x21, 0x12, 0x13, 0x11, 0x13, 0x12, 0x11,
|
||||
0x11, 0x12, 0x11, 0x11, 0x12, 0x11, 0x10, 0x63, 0x62, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x6,
|
||||
0x36, 0x36, 0x36, 0x36, 0x3, 0x60, 0x23, 0x66, 0x36, 0x21, 0x11, 0x11, 0x16, 0x30, 0x23, 0x26,
|
||||
0x3, 0x63, 0x63, 0x62, 0x36, 0x36, 0x6, 0x36, 0x3, 0x63, 0x60, 0x36, 0x6, 0x36, 0x63, 0x60,
|
||||
0x62, 0x13, 0x11, 0x13, 0x12, 0x11, 0x11, 0x16, 0x11, 0x11, 0x12, 0x11, 0x13, 0x11, 0x11, 0x31,
|
||||
0x11, 0x31, 0x11, 0x21, 0x12, 0x11, 0x11, 0x21, 0x11, 0x12, 0x11, 0x61, 0x13, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x21, 0x11, 0x11, 0x31, 0x21, 0x31, 0x63, 0x11, 0x21, 0x12, 0x13, 0x12, 0x11, 0x31,
|
||||
0x11, 0x11, 0x31, 0x21, 0x11, 0x31, 0x12, 0x36, 0x36, 0x36, 0x32, 0x60, 0x63, 0x60, 0x63, 0x63,
|
||||
0x60, 0x63, 0x60, 0x63, 0x66, 0x36, 0x34, 0x23, 0x60, 0x31, 0x11, 0x11, 0x11, 0x63, 0x63, 0x63,
|
||||
0x63, 0x60, 0x6, 0x30, 0x63, 0x63, 0x63, 0x63, 0x66, 0x6, 0x36, 0x36, 0x32, 0x36, 0x32, 0x3,
|
||||
0x63, 0x31, 0x23, 0x11, 0x11, 0x12, 0x11, 0x31, 0x11, 0x13, 0x11, 0x12, 0x11, 0x11, 0x21, 0x11,
|
||||
0x11, 0x11, 0x13, 0x11, 0x13, 0x11, 0x21, 0x16, 0x12, 0x11, 0x13, 0x12, 0x11, 0x11, 0x21, 0x13,
|
||||
0x21, 0x31, 0x11, 0x31, 0x21, 0x13, 0x11, 0x12, 0x11, 0x13, 0x11, 0x31, 0x12, 0x11, 0x31, 0x21,
|
||||
0x11, 0x11, 0x11, 0x11, 0x31, 0x11, 0x10, 0x63, 0x23, 0x62, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x32, 0x43, 0x63, 0x60, 0x60, 0x10, 0x63, 0x51, 0x11, 0x21, 0x12, 0x30, 0x63, 0x63,
|
||||
0x60, 0x63, 0x63, 0x66, 0x36, 0x6, 0x36, 0x6, 0x33, 0x63, 0x60, 0x63, 0x60, 0x63, 0x26, 0x36,
|
||||
0x2, 0x12, 0x31, 0x12, 0x11, 0x11, 0x11, 0x11, 0x21, 0x11, 0x11, 0x11, 0x12, 0x13, 0x11, 0x12,
|
||||
0x13, 0x11, 0x21, 0x11, 0x11, 0x16, 0x13, 0x11, 0x13, 0x11, 0x61, 0x11, 0x11, 0x21, 0x31, 0x11,
|
||||
0x11, 0x11, 0x21, 0x12, 0x11, 0x21, 0x12, 0x11, 0x12, 0x11, 0x23, 0x11, 0x21, 0x31, 0x21, 0x31,
|
||||
0x11, 0x31, 0x21, 0x61, 0x11, 0x11, 0x16, 0x3, 0x66, 0x36, 0x63, 0x63, 0x63, 0x60, 0x63, 0x60,
|
||||
0x63, 0x60, 0x63, 0x60, 0x60, 0x36, 0x3, 0x63, 0x23, 0x1, 0x13, 0x11, 0x11, 0x2, 0x36, 0x20,
|
||||
0x63, 0x6, 0x36, 0x3, 0x63, 0x63, 0x63, 0x63, 0x60, 0x63, 0x63, 0x60, 0x63, 0x63, 0x63, 0x63,
|
||||
0x63, 0x31, 0x23, 0x11, 0x31, 0x13, 0x12, 0x11, 0x16, 0x11, 0x12, 0x13, 0x11, 0x11, 0x13, 0x11,
|
||||
0x11, 0x21, 0x11, 0x13, 0x12, 0x11, 0x11, 0x12, 0x11, 0x13, 0x11, 0x21, 0x31, 0x61, 0x11, 0x12,
|
||||
0x11, 0x21, 0x16, 0x11, 0x13, 0x16, 0x11, 0x31, 0x31, 0x21, 0x11, 0x21, 0x31, 0x21, 0x11, 0x21,
|
||||
0x12, 0x11, 0x11, 0x31, 0x11, 0x21, 0x13, 0x62, 0x33, 0x23, 0x60, 0x63, 0x60, 0x63, 0x24, 0x36,
|
||||
0x36, 0x36, 0x36, 0x36, 0x36, 0x6, 0x36, 0x36, 0x36, 0x21, 0x11, 0x11, 0x11, 0x0, 0x63, 0x36,
|
||||
0x36, 0x3, 0x60, 0x36, 0x23, 0x63, 0x60, 0x63, 0x63, 0x60, 0x63, 0x63, 0x60, 0x63, 0x63, 0x20,
|
||||
0x63, 0x12, 0x31, 0x21, 0x11, 0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16,
|
||||
0x11, 0x11, 0x31, 0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x21, 0x12, 0x11, 0x11, 0x11, 0x21, 0x31,
|
||||
0x13, 0x11, 0x31, 0x21, 0x61, 0x12, 0x13, 0x11, 0x11, 0x31, 0x21, 0x13, 0x11, 0x61, 0x31, 0x13,
|
||||
0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x16, 0x30, 0x66, 0x36, 0x3, 0x63, 0x63, 0x63, 0x60, 0x63,
|
||||
0x60, 0x26, 0x36, 0x6, 0x36, 0x36, 0x6, 0x36, 0x63, 0x1, 0x11, 0x11, 0x11, 0x63, 0x5, 0x36,
|
||||
0x23, 0x60, 0x36, 0x6, 0x36, 0x63, 0x63, 0x60, 0x63, 0x63, 0x6, 0x36, 0x3, 0x63, 0x26, 0x36,
|
||||
0x32, 0x31, 0x31, 0x31, 0x16, 0x11, 0x21, 0x11, 0x11, 0x13, 0x11, 0x61, 0x13, 0x12, 0x12, 0x11,
|
||||
0x21, 0x31, 0x11, 0x21, 0x21, 0x11, 0x21, 0x21, 0x31, 0x11, 0x11, 0x13, 0x12, 0x11, 0x31, 0x11,
|
||||
0x11, 0x21, 0x11, 0x13, 0x12, 0x11, 0x11, 0x21, 0x21, 0x13, 0x12, 0x11, 0x21, 0x31, 0x21, 0x21,
|
||||
0x11, 0x13, 0x11, 0x11, 0x13, 0x11, 0x32, 0x6, 0x32, 0x63, 0x63, 0x60, 0x63, 0x60, 0x63, 0x63,
|
||||
0x63, 0x63, 0x63, 0x63, 0x6, 0x30, 0x36, 0x2, 0x36, 0x1, 0x11, 0x21, 0x13, 0x60, 0x63, 0x23,
|
||||
0x60, 0x63, 0x60, 0x63, 0x60, 0x36, 0x6, 0x36, 0x36, 0x6, 0x36, 0x6, 0x36, 0x2, 0x43, 0x60,
|
||||
0x23, 0x16, 0x23, 0x11, 0x21, 0x11, 0x11, 0x11, 0x21, 0x11, 0x11, 0x11, 0x21, 0x11, 0x11, 0x13,
|
||||
0x11, 0x11, 0x12, 0x11, 0x13, 0x11, 0x11, 0x31, 0x11, 0x31, 0x21, 0x11, 0x11, 0x31, 0x11, 0x21,
|
||||
0x61, 0x13, 0x12, 0x11, 0x11, 0x31, 0x21, 0x13, 0x11, 0x21, 0x13, 0x12, 0x11, 0x21, 0x13, 0x11,
|
||||
0x12, 0x11, 0x12, 0x11, 0x11, 0x11, 0x13, 0x63, 0x63, 0x63, 0x60, 0x63, 0x6, 0x36, 0x36, 0x6,
|
||||
0x36, 0x36, 0x36, 0x6, 0x30, 0x66, 0x3, 0x63, 0x63, 0x63, 0x11, 0x11, 0x11, 0x10, 0x36, 0x36,
|
||||
0x3, 0x60, 0x36, 0x36, 0x36, 0x36, 0x36, 0x32, 0x36, 0x36, 0x36, 0x30, 0x63, 0x63, 0x63, 0x23,
|
||||
0x6, 0x13, 0x12, 0x31, 0x11, 0x13, 0x11, 0x31, 0x11, 0x21, 0x11, 0x31, 0x11, 0x11, 0x31, 0x11,
|
||||
0x11, 0x21, 0x11, 0x16, 0x11, 0x13, 0x11, 0x11, 0x21, 0x11, 0x11, 0x61, 0x21, 0x11, 0x21, 0x11,
|
||||
0x31, 0x11, 0x11, 0x31, 0x21, 0x11, 0x13, 0x11, 0x11, 0x16, 0x11, 0x11, 0x31, 0x13, 0x11, 0x21,
|
||||
0x11, 0x11, 0x21, 0x13, 0x11, 0x12, 0x16, 0x32, 0x6, 0x32, 0x3, 0x6, 0x36, 0x6, 0x36, 0x36,
|
||||
0x36, 0x6, 0x2, 0x36, 0x6, 0x30, 0x60, 0x63, 0x60, 0x1, 0x11, 0x31, 0x11, 0x30, 0x26, 0x36,
|
||||
0x36, 0x0, 0x63, 0x60, 0x63, 0x62, 0x36, 0x4, 0x60, 0x36, 0x6, 0x36, 0x30, 0x63, 0x63, 0x60,
|
||||
0x63, 0x21, 0x13, 0x12, 0x11, 0x21, 0x11, 0x11, 0x13, 0x11, 0x12, 0x11, 0x11, 0x21, 0x11, 0x21,
|
||||
0x13, 0x11, 0x31, 0x31, 0x12, 0x11, 0x12, 0x11, 0x11, 0x21, 0x31, 0x11, 0x31, 0x16, 0x11, 0x31,
|
||||
0x11, 0x21, 0x61, 0x11, 0x11, 0x31, 0x21, 0x12, 0x13, 0x12, 0x13, 0x21, 0x12, 0x31, 0x23, 0x13,
|
||||
0x11, 0x31, 0x11, 0x11, 0x16, 0x11, 0x11, 0x3, 0x63, 0x63, 0x66, 0x36, 0x6, 0x36, 0x6, 0x36,
|
||||
0x6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x32, 0x36, 0x1, 0x11, 0x11, 0x11, 0x16, 0x36, 0x32,
|
||||
0x63, 0x63, 0x60, 0x36, 0x36, 0x43, 0x60, 0x10, 0x36, 0x63, 0x63, 0x60, 0x60, 0x63, 0x26, 0x36,
|
||||
0x1, 0x36, 0x32, 0x61, 0x31, 0x11, 0x16, 0x12, 0x11, 0x13, 0x11, 0x11, 0x31, 0x11, 0x61, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x61, 0x11, 0x21, 0x13, 0x11, 0x11, 0x21, 0x12, 0x11, 0x21, 0x11,
|
||||
0x21, 0x11, 0x12, 0x12, 0x12, 0x11, 0x11, 0x11, 0x21, 0x13, 0x11, 0x11, 0x31, 0x11, 0x11, 0x21,
|
||||
0x11, 0x11, 0x31, 0x12, 0x11, 0x11, 0x10, 0x60, 0x23, 0x66, 0x30, 0x6, 0x36, 0x30, 0x36, 0x6,
|
||||
0x36, 0x36, 0x36, 0x6, 0x36, 0x0, 0x60, 0x36, 0x10, 0x31, 0x11, 0x11, 0x11, 0x0, 0x2, 0x36,
|
||||
0x36, 0x0, 0x63, 0x60, 0x63, 0x24, 0x30, 0x36, 0x36, 0x30, 0x60, 0x63, 0x3, 0x63, 0x63, 0x23,
|
||||
0x63, 0x21, 0x31, 0x31, 0x11, 0x13, 0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x11, 0x31, 0x11, 0x31,
|
||||
0x21, 0x12, 0x12, 0x11, 0x31, 0x11, 0x31, 0x11, 0x61, 0x12, 0x13, 0x11, 0x11, 0x13, 0x11, 0x12,
|
||||
0x11, 0x31, 0x21, 0x11, 0x31, 0x13, 0x12, 0x31, 0x11, 0x21, 0x12, 0x13, 0x11, 0x26, 0x31, 0x61,
|
||||
0x11, 0x21, 0x16, 0x11, 0x13, 0x12, 0x11, 0x36, 0x36, 0x36, 0x6, 0x36, 0x3, 0x66, 0x36, 0x36,
|
||||
0x36, 0x6, 0x36, 0x36, 0x6, 0x36, 0x36, 0x6, 0x32, 0x60, 0x11, 0x13, 0x11, 0x13, 0x63, 0x63,
|
||||
0x63, 0x63, 0x6, 0x3, 0x63, 0x63, 0x66, 0x6, 0x6, 0x6, 0x36, 0x30, 0x60, 0x32, 0x63, 0x60,
|
||||
0x1, 0x33, 0x12, 0x32, 0x12, 0x11, 0x11, 0x31, 0x11, 0x21, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11,
|
||||
0x13, 0x11, 0x11, 0x21, 0x11, 0x21, 0x11, 0x31, 0x11, 0x11, 0x11, 0x11, 0x13, 0x11, 0x13, 0x11,
|
||||
0x11, 0x11, 0x11, 0x31, 0x12, 0x11, 0x11, 0x11, 0x61, 0x31, 0x13, 0x11, 0x21, 0x11, 0x13, 0x21,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x36, 0x6, 0x23, 0x63, 0x0, 0x66, 0x30, 0x60, 0x63,
|
||||
0x60, 0x36, 0x6, 0x30, 0x63, 0x6, 0x3, 0x63, 0x60, 0x31, 0x11, 0x11, 0x11, 0x12, 0x0, 0x62,
|
||||
0x36, 0x6, 0x3, 0x60, 0x63, 0x63, 0x63, 0x3, 0x63, 0x63, 0x60, 0x60, 0x60, 0x63, 0x63, 0x63,
|
||||
0x63, 0x21, 0x31, 0x31, 0x11, 0x11, 0x11, 0x11, 0x16, 0x11, 0x11, 0x12, 0x11, 0x11, 0x11, 0x12,
|
||||
0x11, 0x16, 0x13, 0x11, 0x12, 0x11, 0x21, 0x11, 0x21, 0x31, 0x12, 0x13, 0x11, 0x12, 0x11, 0x13,
|
||||
0x12, 0x13, 0x11, 0x11, 0x11, 0x12, 0x13, 0x12, 0x13, 0x11, 0x21, 0x12, 0x13, 0x12, 0x12, 0x11,
|
||||
0x12, 0x13, 0x12, 0x13, 0x11, 0x13, 0x11, 0x20, 0x36, 0x32, 0x36, 0x60, 0x36, 0x6, 0x36, 0x36,
|
||||
0x36, 0x63, 0x63, 0x66, 0x30, 0x63, 0x6, 0x32, 0x36, 0x0, 0x11, 0x21, 0x11, 0x11, 0x6, 0x36,
|
||||
0x1, 0x3, 0x60, 0x36, 0x36, 0x6, 0x6, 0x6, 0x6, 0x36, 0x36, 0x30, 0x36, 0x36, 0x36, 0x20,
|
||||
0x60, 0x13, 0x23, 0x23, 0x11, 0x13, 0x12, 0x11, 0x13, 0x11, 0x13, 0x11, 0x11, 0x13, 0x11, 0x31,
|
||||
0x11, 0x21, 0x11, 0x12, 0x11, 0x11, 0x16, 0x11, 0x11, 0x11, 0x13, 0x11, 0x12, 0x11, 0x12, 0x11,
|
||||
0x11, 0x11, 0x21, 0x61, 0x21, 0x31, 0x11, 0x11, 0x11, 0x13, 0x12, 0x11, 0x21, 0x13, 0x11, 0x31,
|
||||
0x11, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x6, 0x32, 0x36, 0x63, 0x3, 0x63, 0x63, 0x63, 0x60,
|
||||
0x63, 0x6, 0x36, 0x3, 0x60, 0x60, 0x63, 0x63, 0x62, 0x36, 0x11, 0x11, 0x61, 0x13, 0x63, 0x2,
|
||||
0x36, 0x36, 0x3, 0x60, 0x6, 0x30, 0x36, 0x36, 0x30, 0x60, 0x3, 0x60, 0x60, 0x63, 0x23, 0x36,
|
||||
0x32, 0x31, 0x31, 0x13, 0x11, 0x21, 0x11, 0x11, 0x21, 0x12, 0x11, 0x16, 0x12, 0x11, 0x12, 0x11,
|
||||
0x61, 0x13, 0x11, 0x61, 0x31, 0x61, 0x31, 0x13, 0x12, 0x12, 0x11, 0x12, 0x11, 0x13, 0x11, 0x12,
|
||||
0x13, 0x11, 0x11, 0x31, 0x11, 0x12, 0x12, 0x13, 0x12, 0x11, 0x13, 0x13, 0x11, 0x21, 0x23, 0x12,
|
||||
0x11, 0x21, 0x13, 0x11, 0x11, 0x11, 0x11, 0x36, 0x6, 0x36, 0x36, 0x6, 0x6, 0x30, 0x60, 0x63,
|
||||
0x6, 0x36, 0x3, 0x60, 0x60, 0x36, 0x0, 0x63, 0x63, 0x63, 0x11, 0x31, 0x11, 0x11, 0x20, 0x63,
|
||||
0x63, 0x60, 0x6, 0x36, 0x36, 0x36, 0x60, 0x60, 0x36, 0x3, 0x60, 0x63, 0x3, 0x6, 0x36, 0x60,
|
||||
0x63, 0x23, 0x12, 0x32, 0x61, 0x11, 0x11, 0x31, 0x11, 0x11, 0x61, 0x11, 0x11, 0x16, 0x11, 0x11,
|
||||
0x11, 0x11, 0x21, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x11, 0x16, 0x11, 0x16, 0x11, 0x11, 0x61,
|
||||
0x11, 0x31, 0x21, 0x12, 0x13, 0x11, 0x13, 0x12, 0x11, 0x12, 0x11, 0x11, 0x21, 0x31, 0x12, 0x11,
|
||||
0x16, 0x11, 0x11, 0x12, 0x13, 0x11, 0x21, 0x10, 0x6, 0x32, 0x63, 0x63, 0x6, 0x6, 0x36, 0x36,
|
||||
0x63, 0x6, 0x36, 0x3, 0x63, 0x60, 0x36, 0x36, 0x23, 0x62, 0x11, 0x11, 0x13, 0x11, 0x30, 0x63,
|
||||
0x62, 0x36, 0x3, 0x60, 0x6, 0x6, 0x30, 0x36, 0x6, 0x36, 0x6, 0x30, 0x66, 0x63, 0x26, 0x30,
|
||||
0x36, 0x13, 0x23, 0x11, 0x11, 0x31, 0x21, 0x11, 0x11, 0x31, 0x11, 0x11, 0x31, 0x12, 0x11, 0x31,
|
||||
0x21, 0x21, 0x11, 0x31, 0x21, 0x31, 0x11, 0x12, 0x13, 0x11, 0x31, 0x13, 0x11, 0x12, 0x13, 0x11,
|
||||
0x21, 0x11, 0x11, 0x11, 0x12, 0x16, 0x11, 0x11, 0x13, 0x11, 0x31, 0x21, 0x31, 0x11, 0x31, 0x31,
|
||||
0x13, 0x11, 0x21, 0x11, 0x11, 0x11, 0x11, 0x16, 0x23, 0x63, 0x63, 0x6, 0x3, 0x60, 0x63, 0x63,
|
||||
0x6, 0x30, 0x63, 0x60, 0x6, 0x30, 0x60, 0x36, 0x36, 0x3, 0x11, 0x12, 0x11, 0x11, 0x16, 0x2,
|
||||
0x3, 0x63, 0x60, 0x36, 0x3, 0x63, 0x6, 0x3, 0x60, 0x6, 0x30, 0x60, 0x30, 0x36, 0x32, 0x36,
|
||||
0x23, 0x21, 0x32, 0x33, 0x21, 0x11, 0x16, 0x11, 0x21, 0x11, 0x21, 0x12, 0x11, 0x13, 0x11, 0x11,
|
||||
0x11, 0x11, 0x31, 0x11, 0x11, 0x12, 0x13, 0x11, 0x11, 0x11, 0x12, 0x11, 0x13, 0x11, 0x11, 0x31,
|
||||
0x11, 0x21, 0x32, 0x13, 0x11, 0x13, 0x12, 0x13, 0x11, 0x21, 0x16, 0x11, 0x12, 0x12, 0x11, 0x21,
|
||||
0x11, 0x11, 0x13, 0x11, 0x21, 0x16, 0x13, 0x23, 0x6, 0x32, 0x36, 0x3, 0x6, 0x36, 0x30, 0x60,
|
||||
0x63, 0x60, 0x6, 0x3, 0x63, 0x6, 0x30, 0x63, 0x63, 0x62, 0x11, 0x11, 0x11, 0x11, 0x10, 0x36,
|
||||
0x36, 0x36, 0x0, 0x60, 0x36, 0x0, 0x63, 0x60, 0x3, 0x63, 0x6, 0x30, 0x60, 0x10, 0x63, 0x60,
|
||||
0x36, 0x13, 0x13, 0x12, 0x11, 0x13, 0x11, 0x21, 0x11, 0x11, 0x11, 0x31, 0x11, 0x11, 0x12, 0x13,
|
||||
0x11, 0x31, 0x11, 0x21, 0x11, 0x11, 0x11, 0x11, 0x31, 0x21, 0x11, 0x12, 0x11, 0x16, 0x11, 0x11,
|
||||
0x21, 0x11, 0x11, 0x11, 0x12, 0x11, 0x21, 0x12, 0x16, 0x13, 0x12, 0x13, 0x16, 0x13, 0x12, 0x13,
|
||||
0x11, 0x12, 0x11, 0x61, 0x13, 0x11, 0x11, 0x16, 0x36, 0x36, 0x63, 0x60, 0x60, 0x0, 0x63, 0x63,
|
||||
0x0, 0x63, 0x63, 0x60, 0x60, 0x60, 0x60, 0x63, 0x26, 0x3, 0x11, 0x13, 0x11, 0x21, 0x11, 0x0,
|
||||
0x36, 0x23, 0x60, 0x30, 0x60, 0x36, 0x0, 0x63, 0x66, 0x0, 0x60, 0x60, 0x6, 0x36, 0x36, 0x6,
|
||||
0x32, 0x31, 0x32, 0x36, 0x31, 0x11, 0x11, 0x11, 0x31, 0x21, 0x31, 0x11, 0x11, 0x21, 0x11, 0x11,
|
||||
0x11, 0x12, 0x11, 0x11, 0x31, 0x21, 0x31, 0x21, 0x11, 0x11, 0x13, 0x11, 0x12, 0x11, 0x21, 0x21,
|
||||
0x13, 0x16, 0x13, 0x12, 0x11, 0x31, 0x11, 0x31, 0x12, 0x11, 0x11, 0x21, 0x31, 0x12, 0x13, 0x11,
|
||||
0x12, 0x11, 0x11, 0x11, 0x11, 0x12, 0x11, 0x13, 0x6, 0x2, 0x36, 0x36, 0x30, 0x63, 0x60, 0x6,
|
||||
0x63, 0x60, 0x6, 0x3, 0x6, 0x30, 0x36, 0x36, 0x36, 0x36, 0x11, 0x11, 0x11, 0x11, 0x12, 0x36,
|
||||
0x6, 0x36, 0x36, 0x6, 0x30, 0x60, 0x63, 0x6, 0x3, 0x6, 0x30, 0x36, 0x30, 0x63, 0x23, 0x63,
|
||||
0x24, 0x13, 0x21, 0x31, 0x11, 0x21, 0x13, 0x11, 0x11, 0x11, 0x11, 0x12, 0x13, 0x11, 0x31, 0x11,
|
||||
0x21, 0x11, 0x13, 0x12, 0x11, 0x11, 0x11, 0x11, 0x21, 0x31, 0x21, 0x12, 0x13, 0x11, 0x31, 0x11,
|
||||
0x31, 0x11, 0x21, 0x11, 0x13, 0x11, 0x31, 0x11, 0x21, 0x31, 0x23, 0x11, 0x21, 0x31, 0x12, 0x13,
|
||||
0x13, 0x11, 0x21, 0x31, 0x21, 0x11, 0x21, 0x11, 0x2, 0x36, 0x32, 0x60, 0x63, 0x60, 0x36, 0x30,
|
||||
0x36, 0x3, 0x63, 0x6, 0x30, 0x6, 0x0, 0x63, 0x20, 0x63, 0x11, 0x21, 0x61, 0x11, 0x11, 0x60,
|
||||
0x32, 0x36, 0x36, 0x0, 0x6, 0x30, 0x36, 0x3, 0x60, 0x60, 0x6, 0x0, 0x63, 0x26, 0x36, 0x6,
|
||||
0x32, 0x31, 0x32, 0x32, 0x31, 0x11, 0x11, 0x12, 0x11, 0x61, 0x21, 0x11, 0x11, 0x11, 0x11, 0x21,
|
||||
0x13, 0x16, 0x11, 0x11, 0x11, 0x31, 0x21, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x21, 0x11, 0x61,
|
||||
0x11, 0x21, 0x16, 0x12, 0x11, 0x12, 0x11, 0x21, 0x31, 0x13, 0x11, 0x13, 0x11, 0x21, 0x31, 0x21,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x11, 0x11, 0x6, 0x63, 0x63, 0x63, 0x0, 0x6, 0x6, 0x6,
|
||||
0x6, 0x36, 0x0, 0x63, 0x60, 0x63, 0x6, 0x36, 0x36, 0x32, 0x11, 0x11, 0x11, 0x31, 0x11, 0x10,
|
||||
0x60, 0x62, 0x36, 0x36, 0x3, 0x60, 0x60, 0x36, 0x3, 0x63, 0x63, 0x6, 0x6, 0x36, 0x32, 0x36,
|
||||
0x6, 0x32, 0x31, 0x31, 0x21, 0x13, 0x12, 0x11, 0x13, 0x11, 0x11, 0x31, 0x61, 0x21, 0x12, 0x11,
|
||||
0x31, 0x11, 0x21, 0x61, 0x21, 0x11, 0x11, 0x11, 0x31, 0x21, 0x31, 0x31, 0x11, 0x11, 0x31, 0x21,
|
||||
0x21, 0x31, 0x11, 0x31, 0x12, 0x11, 0x16, 0x11, 0x11, 0x21, 0x12, 0x12, 0x13, 0x11, 0x21, 0x31,
|
||||
0x11, 0x21, 0x31, 0x12, 0x11, 0x11, 0x13, 0x11, 0x23, 0x63, 0x26, 0x36, 0x36, 0x3, 0x60, 0x36,
|
||||
0x30, 0x60, 0x36, 0x0, 0x63, 0x6, 0x36, 0x23, 0x53, 0x60, 0x11, 0x31, 0x11, 0x11, 0x21, 0x11,
|
||||
0x0, 0x36, 0x36, 0x3, 0x60, 0x3, 0x60, 0x60, 0x60, 0x6, 0x0, 0x63, 0x3, 0x63, 0x63, 0x60,
|
||||
0x31, 0x31, 0x23, 0x13, 0x31, 0x11, 0x11, 0x31, 0x11, 0x11, 0x61, 0x11, 0x11, 0x13, 0x11, 0x61,
|
||||
0x11, 0x31, 0x11, 0x13, 0x11, 0x21, 0x31, 0x21, 0x11, 0x11, 0x11, 0x11, 0x31, 0x21, 0x11, 0x11,
|
||||
0x11, 0x11, 0x21, 0x13, 0x11, 0x13, 0x12, 0x13, 0x21, 0x13, 0x11, 0x31, 0x12, 0x13, 0x12, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x13, 0x16, 0x11, 0x11, 0x10, 0x6, 0x36, 0x26, 0x6, 0x36, 0x3, 0x60,
|
||||
0x6, 0x30, 0x60, 0x36, 0x0, 0x63, 0x6, 0x36, 0x36, 0x1, 0x11, 0x11, 0x12, 0x11, 0x11, 0x13,
|
||||
0x63, 0x60, 0x23, 0x60, 0x6, 0x36, 0x3, 0x3, 0x63, 0x63, 0x6, 0x30, 0x66, 0x32, 0x63, 0x63,
|
||||
0x23, 0x23, 0x13, 0x23, 0x11, 0x21, 0x11, 0x11, 0x21, 0x21, 0x11, 0x21, 0x21, 0x11, 0x11, 0x11,
|
||||
0x12, 0x11, 0x21, 0x11, 0x11, 0x11, 0x11, 0x11, 0x21, 0x31, 0x21, 0x21, 0x11, 0x11, 0x21, 0x31,
|
||||
0x31, 0x61, 0x11, 0x11, 0x13, 0x11, 0x21, 0x11, 0x16, 0x11, 0x12, 0x11, 0x21, 0x12, 0x13, 0x12,
|
||||
0x13, 0x11, 0x21, 0x31, 0x11, 0x11, 0x21, 0x11, 0x16, 0x32, 0x63, 0x36, 0x30, 0x0, 0x6, 0x6,
|
||||
0x36, 0x6, 0x36, 0x3, 0x63, 0x6, 0x32, 0x36, 0x32, 0x3, 0x11, 0x11, 0x11, 0x11, 0x31, 0x11,
|
||||
0x20, 0x63, 0x66, 0x36, 0x30, 0x63, 0x6, 0x6, 0x0, 0x6, 0x30, 0x60, 0x36, 0x36, 0x36, 0x20,
|
||||
0x63, 0x13, 0x63, 0x12, 0x31, 0x11, 0x12, 0x11, 0x11, 0x11, 0x13, 0x11, 0x11, 0x61, 0x12, 0x13,
|
||||
0x11, 0x11, 0x31, 0x21, 0x61, 0x31, 0x21, 0x31, 0x11, 0x11, 0x11, 0x16, 0x12, 0x13, 0x11, 0x12,
|
||||
0x11, 0x11, 0x32, 0x12, 0x11, 0x21, 0x13, 0x21, 0x13, 0x12, 0x11, 0x31, 0x31, 0x31, 0x11, 0x31,
|
||||
0x11, 0x16, 0x11, 0x11, 0x21, 0x12, 0x11, 0x31, 0x30, 0x63, 0x36, 0x23, 0x60, 0x63, 0x63, 0x3,
|
||||
0x60, 0x36, 0x0, 0x60, 0x40, 0x60, 0x6, 0x36, 0x24, 0x35, 0x11, 0x21, 0x13, 0x11, 0x11, 0x11,
|
||||
0x36, 0x3, 0x63, 0x60, 0x6, 0x0, 0x63, 0x63, 0x6, 0x30, 0x6, 0x3, 0x60, 0x23, 0x63, 0x6,
|
||||
0x31, 0x23, 0x12, 0x36, 0x11, 0x13, 0x11, 0x16, 0x13, 0x11, 0x21, 0x13, 0x11, 0x13, 0x11, 0x11,
|
||||
0x12, 0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x12, 0x16, 0x13, 0x16, 0x11, 0x13, 0x11, 0x12, 0x11,
|
||||
0x12, 0x13, 0x11, 0x13, 0x11, 0x16, 0x11, 0x11, 0x31, 0x13, 0x16, 0x11, 0x21, 0x16, 0x21, 0x12,
|
||||
0x12, 0x11, 0x12, 0x11, 0x13, 0x11, 0x11, 0x11, 0x11, 0x6, 0x36, 0x36, 0x63, 0x60, 0x6, 0x6,
|
||||
0x0, 0x60, 0x36, 0x36, 0x36, 0x3, 0x63, 0x63, 0x63, 0x63, 0x11, 0x11, 0x11, 0x11, 0x12, 0x11,
|
||||
0x53, 0x6, 0x32, 0x36, 0x3, 0x63, 0x0, 0x6, 0x30, 0x6, 0x3, 0x60, 0x63, 0x66, 0x32, 0x63,
|
||||
0x23, 0x13, 0x23, 0x13, 0x32, 0x11, 0x13, 0x11, 0x11, 0x31, 0x11, 0x11, 0x12, 0x11, 0x13, 0x16,
|
||||
0x11, 0x13, 0x12, 0x11, 0x11, 0x21, 0x36, 0x11, 0x11, 0x21, 0x11, 0x32, 0x11, 0x12, 0x11, 0x61,
|
||||
0x13, 0x11, 0x61, 0x11, 0x21, 0x31, 0x13, 0x12, 0x11, 0x21, 0x12, 0x13, 0x11, 0x31, 0x13, 0x11,
|
||||
0x11, 0x13, 0x11, 0x13, 0x11, 0x13, 0x12, 0x11, 0x12, 0x36, 0x6, 0x32, 0x30, 0x3, 0x63, 0x3,
|
||||
0x63, 0x63, 0x60, 0x0, 0x6, 0x36, 0x6, 0x23, 0x63, 0x21, 0x11, 0x31, 0x11, 0x21, 0x11, 0x11,
|
||||
0x10, 0x63, 0x24, 0x63, 0x60, 0x6, 0x6, 0x30, 0x60, 0x63, 0x60, 0x3, 0x63, 0x63, 0x24, 0x36,
|
||||
0x31, 0x32, 0x31, 0x32, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x31, 0x12, 0x11, 0x12, 0x11, 0x11,
|
||||
0x21, 0x11, 0x11, 0x12, 0x13, 0x11, 0x11, 0x13, 0x12, 0x11, 0x21, 0x11, 0x13, 0x11, 0x13, 0x12,
|
||||
0x11, 0x12, 0x13, 0x11, 0x11, 0x12, 0x11, 0x11, 0x12, 0x11, 0x31, 0x12, 0x13, 0x12, 0x31, 0x23,
|
||||
0x13, 0x11, 0x21, 0x11, 0x11, 0x11, 0x11, 0x21, 0x11, 0x63, 0x23, 0x63, 0x66, 0x6, 0x0, 0x60,
|
||||
0x6, 0x0, 0x3, 0x66, 0x30, 0x0, 0x36, 0x36, 0x36, 0x6, 0x11, 0x11, 0x11, 0x11, 0x13, 0x11,
|
||||
0x11, 0x20, 0x63, 0x36, 0x3, 0x60, 0x30, 0x60, 0x63, 0x0, 0x3, 0x60, 0x62, 0x36, 0x36, 0x0,
|
||||
0x10, 0x13, 0x10, 0x13, 0x31, 0x61, 0x21, 0x11, 0x12, 0x11, 0x12, 0x11, 0x13, 0x11, 0x11, 0x21,
|
||||
0x11, 0x31, 0x21, 0x31, 0x11, 0x13, 0x12, 0x11, 0x11, 0x11, 0x31, 0x12, 0x11, 0x13, 0x11, 0x11,
|
||||
0x12, 0x11, 0x11, 0x26, 0x13, 0x11, 0x12, 0x13, 0x11, 0x31, 0x12, 0x31, 0x15, 0x31, 0x11, 0x11,
|
||||
0x11, 0x11, 0x13, 0x11, 0x21, 0x61, 0x13, 0x11, 0x11, 0x30, 0x63, 0x62, 0x63, 0x63, 0x6, 0x30,
|
||||
0x63, 0x6, 0x36, 0x3, 0x60, 0x63, 0x62, 0x36, 0x32, 0x31, 0x11, 0x16, 0x12, 0x16, 0x11, 0x11,
|
||||
0x13, 0x3, 0x63, 0x53, 0x60, 0x3, 0x60, 0x30, 0x30, 0x63, 0x60, 0x3, 0x63, 0x60, 0x63, 0x2,
|
||||
0x31, 0x32, 0x13, 0x12, 0x61, 0x11, 0x31, 0x16, 0x11, 0x12, 0x11, 0x16, 0x11, 0x13, 0x11, 0x13,
|
||||
0x16, 0x11, 0x11, 0x11, 0x61, 0x11, 0x11, 0x12, 0x31, 0x31, 0x11, 0x21, 0x12, 0x11, 0x12, 0x13,
|
||||
0x11, 0x31, 0x21, 0x11, 0x21, 0x13, 0x11, 0x31, 0x13, 0x12, 0x11, 0x11, 0x31, 0x12, 0x13, 0x21,
|
||||
0x11, 0x21, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x21, 0x13, 0x60, 0x63, 0x36, 0x6, 0x30, 0x63,
|
||||
0x6, 0x30, 0x60, 0x60, 0x3, 0x6, 0x36, 0x23, 0x60, 0x63, 0x11, 0x11, 0x11, 0x31, 0x11, 0x21,
|
||||
0x11, 0x10, 0x36, 0x32, 0x63, 0x60, 0x60, 0x60, 0x60, 0x6, 0x0, 0x63, 0x23, 0x63, 0x20, 0x63,
|
||||
0x12, 0x31, 0x36, 0x13, 0x23, 0x11, 0x12, 0x11, 0x13, 0x11, 0x13, 0x11, 0x12, 0x11, 0x13, 0x11,
|
||||
0x11, 0x13, 0x11, 0x31, 0x12, 0x12, 0x13, 0x11, 0x11, 0x11, 0x21, 0x16, 0x13, 0x12, 0x11, 0x21,
|
||||
0x31, 0x11, 0x13, 0x13, 0x11, 0x21, 0x12, 0x11, 0x21, 0x11, 0x13, 0x12, 0x12, 0x13, 0x21, 0x31,
|
||||
0x12, 0x11, 0x31, 0x21, 0x31, 0x11, 0x16, 0x13, 0x11, 0x20, 0x63, 0x23, 0x62, 0x36, 0x6, 0x0,
|
||||
0x60, 0x6, 0x30, 0x36, 0x6, 0x3, 0x63, 0x60, 0x63, 0x21, 0x11, 0x31, 0x21, 0x11, 0x21, 0x11,
|
||||
0x11, 0x60, 0x62, 0x36, 0x36, 0x3, 0x3, 0x63, 0x43, 0x60, 0x36, 0x36, 0x63, 0x63, 0x63, 0x63,
|
||||
0x23, 0x13, 0x23, 0x23, 0x11, 0x11, 0x11, 0x13, 0x11, 0x16, 0x11, 0x12, 0x11, 0x12, 0x11, 0x12,
|
||||
0x12, 0x11, 0x12, 0x11, 0x21, 0x13, 0x11, 0x12, 0x12, 0x13, 0x11, 0x31, 0x11, 0x11, 0x31, 0x11,
|
||||
0x11, 0x21, 0x31, 0x11, 0x16, 0x11, 0x31, 0x12, 0x16, 0x23, 0x12, 0x11, 0x13, 0x11, 0x11, 0x12,
|
||||
0x11, 0x61, 0x11, 0x11, 0x12, 0x13, 0x11, 0x11, 0x11, 0x11, 0x6, 0x36, 0x36, 0x36, 0x30, 0x36,
|
||||
0x3, 0x60, 0x6, 0x4, 0x30, 0x63, 0x62, 0x36, 0x36, 0x1, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13,
|
||||
0x11, 0x12, 0x36, 0x36, 0x36, 0x6, 0x6, 0x0, 0x60, 0x36, 0x0, 0x63, 0x63, 0x26, 0x0, 0x23,
|
||||
0x13, 0x13, 0x61, 0x31, 0x33, 0x11, 0x61, 0x11, 0x21, 0x11, 0x21, 0x11, 0x13, 0x11, 0x12, 0x11,
|
||||
0x11, 0x13, 0x11, 0x11, 0x13, 0x11, 0x21, 0x11, 0x31, 0x11, 0x21, 0x11, 0x31, 0x21, 0x11, 0x31,
|
||||
0x21, 0x11, 0x11, 0x12, 0x11, 0x21, 0x13, 0x11, 0x31, 0x11, 0x11, 0x13, 0x11, 0x21, 0x31, 0x31,
|
||||
0x11, 0x11, 0x21, 0x61, 0x11, 0x11, 0x11, 0x31, 0x12, 0x13, 0x6, 0x36, 0x32, 0x63, 0x60, 0x60,
|
||||
0x36, 0x3, 0x63, 0x6, 0x6, 0x36, 0x36, 0x32, 0x36, 0x31, 0x12, 0x11, 0x31, 0x13, 0x11, 0x11,
|
||||
0x11, 0x13, 0x6, 0x23, 0x62, 0x36, 0x30, 0x6, 0x30, 0x60, 0x6, 0x32, 0x36, 0x3, 0x63, 0x63,
|
||||
0x23, 0x21, 0x32, 0x32, 0x31, 0x12, 0x13, 0x11, 0x11, 0x21, 0x11, 0x31, 0x11, 0x13, 0x11, 0x13,
|
||||
0x13, 0x11, 0x13, 0x13, 0x11, 0x11, 0x13, 0x11, 0x11, 0x61, 0x11, 0x31, 0x11, 0x31, 0x61, 0x11,
|
||||
0x13, 0x12, 0x16, 0x13, 0x13, 0x11, 0x21, 0x12, 0x11, 0x31, 0x23, 0x12, 0x13, 0x11, 0x21, 0x21,
|
||||
0x11, 0x31, 0x13, 0x11, 0x13, 0x11, 0x21, 0x21, 0x11, 0x12, 0x60, 0x2, 0x63, 0x23, 0x60, 0x36,
|
||||
0x0, 0x60, 0x6, 0x30, 0x30, 0x2, 0x36, 0x6, 0x2, 0x1, 0x11, 0x11, 0x12, 0x11, 0x13, 0x11,
|
||||
0x21, 0x11, 0x60, 0x36, 0x36, 0x36, 0x6, 0x30, 0x60, 0x36, 0x3, 0x64, 0x23, 0x63, 0x20, 0x63,
|
||||
0x11, 0x32, 0x31, 0x31, 0x23, 0x11, 0x11, 0x11, 0x31, 0x11, 0x31, 0x12, 0x12, 0x11, 0x16, 0x11,
|
||||
0x11, 0x12, 0x11, 0x11, 0x12, 0x13, 0x11, 0x12, 0x13, 0x11, 0x31, 0x11, 0x21, 0x11, 0x21, 0x32,
|
||||
0x11, 0x11, 0x31, 0x11, 0x11, 0x13, 0x11, 0x31, 0x12, 0x13, 0x11, 0x16, 0x11, 0x21, 0x31, 0x31,
|
||||
0x12, 0x11, 0x11, 0x12, 0x11, 0x12, 0x11, 0x11, 0x31, 0x11, 0x30, 0x13, 0x63, 0x66, 0x36, 0x0,
|
||||
0x36, 0x30, 0x60, 0x6, 0x6, 0x36, 0x6, 0x36, 0x36, 0x61, 0x11, 0x31, 0x11, 0x11, 0x21, 0x11,
|
||||
0x11, 0x11, 0x30, 0x62, 0x36, 0x36, 0x30, 0x6, 0x0, 0x60, 0x36, 0x30, 0x36, 0x6, 0x3, 0x12,
|
||||
0x36, 0x31, 0x31, 0x32, 0x31, 0x11, 0x31, 0x21, 0x11, 0x12, 0x11, 0x11, 0x31, 0x11, 0x21, 0x12,
|
||||
0x12, 0x11, 0x12, 0x12, 0x11, 0x31, 0x12, 0x13, 0x11, 0x12, 0x11, 0x21, 0x11, 0x21, 0x11, 0x11,
|
||||
0x13, 0x12, 0x11, 0x21, 0x21, 0x21, 0x12, 0x11, 0x31, 0x11, 0x12, 0x31, 0x12, 0x13, 0x11, 0x12,
|
||||
0x11, 0x21, 0x12, 0x11, 0x12, 0x11, 0x11, 0x31, 0x16, 0x11, 0x10, 0x6, 0x36, 0x32, 0x36, 0x36,
|
||||
0x0, 0x60, 0x36, 0x36, 0x30, 0x63, 0x63, 0x23, 0x63, 0x31, 0x11, 0x11, 0x61, 0x11, 0x11, 0x13,
|
||||
0x11, 0x21, 0x53, 0x63, 0x63, 0x26, 0x6, 0x3, 0x60, 0x30, 0x63, 0x62, 0x63, 0x23, 0x6, 0x31,
|
||||
0x31, 0x23, 0x10, 0x13, 0x63, 0x21, 0x11, 0x12, 0x11, 0x31, 0x11, 0x11, 0x16, 0x11, 0x13, 0x11,
|
||||
0x31, 0x13, 0x13, 0x11, 0x31, 0x11, 0x31, 0x11, 0x12, 0x11, 0x13, 0x11, 0x31, 0x13, 0x13, 0x16,
|
||||
0x11, 0x11, 0x21, 0x13, 0x11, 0x16, 0x11, 0x11, 0x12, 0x12, 0x11, 0x21, 0x36, 0x21, 0x12, 0x31,
|
||||
0x11, 0x13, 0x11, 0x13, 0x11, 0x13, 0x16, 0x11, 0x11, 0x21, 0x10, 0x63, 0x26, 0x36, 0x63, 0x60,
|
||||
0x36, 0x3, 0x60, 0x0, 0x6, 0x32, 0x63, 0x60, 0x20, 0x11, 0x21, 0x11, 0x21, 0x31, 0x11, 0x11,
|
||||
0x16, 0x11, 0x10, 0x6, 0x23, 0x63, 0x63, 0x6, 0x3, 0x60, 0x63, 0x23, 0x6, 0x36, 0x63, 0x23,
|
||||
0x12, 0x31, 0x32, 0x31, 0x21, 0x11, 0x12, 0x11, 0x11, 0x11, 0x62, 0x13, 0x11, 0x13, 0x11, 0x11,
|
||||
0x11, 0x31, 0x11, 0x16, 0x11, 0x21, 0x11, 0x61, 0x13, 0x11, 0x21, 0x13, 0x11, 0x21, 0x11, 0x21,
|
||||
0x21, 0x31, 0x13, 0x11, 0x13, 0x11, 0x31, 0x31, 0x11, 0x13, 0x11, 0x11, 0x11, 0x11, 0x31, 0x12,
|
||||
0x13, 0x11, 0x13, 0x11, 0x61, 0x11, 0x11, 0x31, 0x13, 0x11, 0x11, 0x3, 0x63, 0x63, 0x20, 0x10,
|
||||
0x43, 0x6, 0x3, 0x60, 0x63, 0x63, 0x23, 0x63, 0x60, 0x21, 0x11, 0x31, 0x11, 0x12, 0x16, 0x12,
|
||||
0x11, 0x11, 0x16, 0x3, 0x63, 0x62, 0x36, 0x3, 0x60, 0x0, 0x36, 0x6, 0x30, 0x63, 0x23, 0x12,
|
||||
0x63, 0x62, 0x31, 0x23, 0x33, 0x13, 0x11, 0x11, 0x31, 0x21, 0x11, 0x11, 0x12, 0x11, 0x21, 0x12,
|
||||
0x11, 0x12, 0x13, 0x11, 0x21, 0x11, 0x31, 0x12, 0x11, 0x31, 0x11, 0x11, 0x16, 0x11, 0x21, 0x11,
|
||||
0x31, 0x16, 0x11, 0x12, 0x11, 0x21, 0x11, 0x11, 0x13, 0x11, 0x13, 0x13, 0x21, 0x32, 0x11, 0x11,
|
||||
0x11, 0x12, 0x11, 0x12, 0x11, 0x21, 0x12, 0x11, 0x21, 0x13, 0x12, 0x6, 0x2, 0x36, 0x36, 0x36,
|
||||
0x6, 0x0, 0x36, 0x3, 0x63, 0x63, 0x63, 0x62, 0x30, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x13, 0x6, 0x36, 0x36, 0x36, 0x6, 0x0, 0x63, 0x53, 0x63, 0x66, 0x30, 0x63, 0x13,
|
||||
0x31, 0x31, 0x36, 0x31, 0x21, 0x21, 0x11, 0x31, 0x11, 0x11, 0x31, 0x13, 0x11, 0x11, 0x13, 0x11,
|
||||
0x16, 0x11, 0x11, 0x21, 0x13, 0x11, 0x11, 0x21, 0x16, 0x11, 0x32, 0x12, 0x11, 0x31, 0x13, 0x11,
|
||||
0x11, 0x21, 0x12, 0x11, 0x31, 0x11, 0x11, 0x16, 0x31, 0x63, 0x23, 0x63, 0x13, 0x26, 0x32, 0x31,
|
||||
0x12, 0x11, 0x12, 0x11, 0x11, 0x13, 0x11, 0x21, 0x11, 0x11, 0x11, 0x60, 0x36, 0x2, 0x36, 0x23,
|
||||
0x60, 0x36, 0x0, 0x60, 0x2, 0x36, 0x26, 0x30, 0x63, 0x61, 0x31, 0x11, 0x13, 0x11, 0x21, 0x31,
|
||||
0x12, 0x13, 0x15, 0x30, 0x26, 0x32, 0x63, 0x3, 0x63, 0x6, 0x36, 0x2, 0x36, 0x2, 0x36, 0x21,
|
||||
0x31, 0x23, 0x13, 0x26, 0x33, 0x11, 0x21, 0x11, 0x11, 0x31, 0x11, 0x11, 0x61, 0x21, 0x11, 0x13,
|
||||
0x11, 0x31, 0x21, 0x13, 0x11, 0x31, 0x21, 0x13, 0x11, 0x21, 0x11, 0x31, 0x21, 0x12, 0x11, 0x31,
|
||||
0x21, 0x13, 0x11, 0x31, 0x11, 0x61, 0x15, 0x11, 0x63, 0x23, 0x13, 0x23, 0x23, 0x13, 0x63, 0x23,
|
||||
0x11, 0x13, 0x11, 0x13, 0x12, 0x11, 0x13, 0x11, 0x31, 0x21, 0x11, 0x32, 0x6, 0x36, 0x36, 0x36,
|
||||
0x30, 0x60, 0x36, 0x30, 0x10, 0x63, 0x36, 0x6, 0x36, 0x11, 0x11, 0x23, 0x16, 0x13, 0x63, 0x53,
|
||||
0x63, 0x62, 0x13, 0x60, 0x30, 0x63, 0x62, 0x60, 0x0, 0x61, 0x2, 0x36, 0x36, 0x30, 0x11, 0x33,
|
||||
0x53, 0x13, 0x21, 0x31, 0x31, 0x13, 0x11, 0x21, 0x61, 0x12, 0x32, 0x11, 0x13, 0x11, 0x31, 0x21,
|
||||
0x12, 0x11, 0x13, 0x11, 0x11, 0x11, 0x13, 0x11, 0x12, 0x11, 0x11, 0x11, 0x13, 0x11, 0x12, 0x11,
|
||||
0x13, 0x11, 0x11, 0x11, 0x11, 0x11, 0x61, 0x36, 0x31, 0x36, 0x36, 0x36, 0x31, 0x30, 0x31, 0x31,
|
||||
0x13, 0x11, 0x16, 0x11, 0x11, 0x12, 0x32, 0x33, 0x21, 0x11, 0x21, 0x63, 0x63, 0x63, 0x23, 0x63,
|
||||
0x26, 0x36, 0x0, 0x63, 0x63, 0x26, 0x32, 0x36, 0x0, 0x32, 0x63, 0x10, 0x60, 0x6, 0x36, 0x6,
|
||||
0x36, 0x36, 0x6, 0x36, 0x63, 0x63, 0x63, 0x36, 0x36, 0x36, 0x36, 0x6, 0x32, 0x6, 0x32, 0x13,
|
||||
0x12, 0x31, 0x63, 0x23, 0x10, 0x11, 0x11, 0x11, 0x11, 0x11, 0x63, 0x3, 0x11, 0x11, 0x11, 0x13,
|
||||
0x11, 0x13, 0x11, 0x12, 0x12, 0x12, 0x11, 0x13, 0x11, 0x32, 0x13, 0x16, 0x11, 0x11, 0x31, 0x12,
|
||||
0x11, 0x21, 0x32, 0x11, 0x31, 0x61, 0x36, 0x32, 0x36, 0x32, 0x32, 0x32, 0x36, 0x31, 0x23, 0x3,
|
||||
0x11, 0x12, 0x11, 0x12, 0x13, 0x13, 0x63, 0x12, 0x33, 0x11, 0x11, 0x10, 0x2, 0x6, 0x36, 0x20,
|
||||
0x63, 0x0, 0x43, 0x6, 0x36, 0x36, 0x6, 0x32, 0x36, 0x63, 0x60, 0x63, 0x63, 0x63, 0x60, 0x63,
|
||||
0x20, 0x63, 0x63, 0x20, 0x2, 0x0, 0x63, 0x53, 0x63, 0x23, 0x63, 0x63, 0x24, 0x36, 0x26, 0x35,
|
||||
0x31, 0x31, 0x31, 0x31, 0x23, 0x11, 0x21, 0x31, 0x13, 0x11, 0x11, 0x10, 0x21, 0x31, 0x21, 0x11,
|
||||
0x12, 0x11, 0x12, 0x11, 0x31, 0x13, 0x11, 0x21, 0x16, 0x11, 0x11, 0x11, 0x21, 0x21, 0x11, 0x31,
|
||||
0x11, 0x11, 0x11, 0x16, 0x16, 0x36, 0x36, 0x36, 0x32, 0x36, 0x33, 0x13, 0x63, 0x23, 0x36, 0x23,
|
||||
0x12, 0x11, 0x31, 0x31, 0x11, 0x32, 0x32, 0x31, 0x31, 0x21, 0x31, 0x11, 0x36, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x6, 0x36, 0x2, 0x63, 0x63, 0x60, 0x63, 0x26, 0x31, 0x6, 0x32, 0x6, 0x23, 0x60,
|
||||
0x63, 0x60, 0x60, 0x63, 0x63, 0x63, 0x2, 0x36, 0x6, 0x36, 0x23, 0x63, 0x60, 0x1, 0x31, 0x31,
|
||||
0x31, 0x62, 0x36, 0x26, 0x31, 0x31, 0x11, 0x11, 0x11, 0x11, 0x21, 0x11, 0x12, 0x13, 0x12, 0x61,
|
||||
0x11, 0x16, 0x11, 0x31, 0x16, 0x11, 0x31, 0x12, 0x11, 0x13, 0x12, 0x13, 0x11, 0x31, 0x61, 0x11,
|
||||
0x61, 0x32, 0x13, 0x11, 0x33, 0x13, 0x23, 0x23, 0x36, 0x33, 0x63, 0x3, 0x23, 0x36, 0x3, 0x13,
|
||||
0x11, 0x11, 0x11, 0x11, 0x21, 0x63, 0x13, 0x23, 0x23, 0x11, 0x11, 0x11, 0x60, 0x2, 0x36, 0x36,
|
||||
0x32, 0x63, 0x0, 0x63, 0x23, 0x63, 0x26, 0x21, 0x16, 0x16, 0x26, 0x32, 0x63, 0x63, 0x6, 0x32,
|
||||
0x36, 0x2, 0x36, 0x36, 0x23, 0x62, 0x63, 0x60, 0x10, 0x63, 0x63, 0x20, 0x63, 0x63, 0x12, 0x13,
|
||||
0x53, 0x23, 0x13, 0x13, 0x10, 0x11, 0x12, 0x11, 0x31, 0x21, 0x31, 0x13, 0x11, 0x11, 0x13, 0x13,
|
||||
0x13, 0x11, 0x13, 0x11, 0x11, 0x11, 0x11, 0x61, 0x31, 0x21, 0x11, 0x11, 0x11, 0x11, 0x31, 0x21,
|
||||
0x31, 0x11, 0x11, 0x13, 0x12, 0x33, 0x63, 0x36, 0x23, 0x23, 0x23, 0x23, 0x63, 0x23, 0x32, 0x33,
|
||||
0x13, 0x16, 0x12, 0x11, 0x11, 0x13, 0x23, 0x31, 0x31, 0x21, 0x12, 0x11, 0x16, 0x34, 0x23, 0x62,
|
||||
0x36, 0x36, 0x63, 0x6, 0x36, 0x36, 0x63, 0x16, 0x11, 0x61, 0x11, 0x63, 0x64, 0x26, 0x36, 0x36,
|
||||
0x63, 0x63, 0x62, 0x36, 0x36, 0x63, 0x16, 0x16, 0x36, 0x32, 0x36, 0x36, 0x3, 0x21, 0x13, 0x21,
|
||||
0x31, 0x13, 0x12, 0x31, 0x32, 0x31, 0x31, 0x11, 0x11, 0x11, 0x11, 0x21, 0x11, 0x16, 0x11, 0x11,
|
||||
0x61, 0x23, 0x11, 0x21, 0x21, 0x31, 0x21, 0x31, 0x11, 0x11, 0x13, 0x12, 0x13, 0x21, 0x11, 0x11,
|
||||
0x11, 0x13, 0x12, 0x11, 0x36, 0x31, 0x36, 0x23, 0x31, 0x33, 0x63, 0x63, 0x23, 0x63, 0x63, 0x26,
|
||||
0x11, 0x11, 0x11, 0x13, 0x11, 0x32, 0x36, 0x13, 0x23, 0x11, 0x31, 0x13, 0x13, 0x6, 0x36, 0x3,
|
||||
0x60, 0x10, 0x23, 0x63, 0x6, 0x21, 0x11, 0x11, 0x16, 0x11, 0x63, 0x16, 0x10, 0x36, 0x26, 0x36,
|
||||
0x32, 0x63, 0x63, 0x66, 0x35, 0x36, 0x63, 0x13, 0x51, 0x6, 0x36, 0x2, 0x36, 0x63, 0x63, 0x16,
|
||||
0x12, 0x31, 0x63, 0x10, 0x13, 0x11, 0x11, 0x61, 0x11, 0x31, 0x16, 0x11, 0x13, 0x12, 0x11, 0x21,
|
||||
0x11, 0x31, 0x23, 0x11, 0x13, 0x11, 0x11, 0x11, 0x21, 0x31, 0x21, 0x11, 0x11, 0x13, 0x12, 0x13,
|
||||
0x12, 0x11, 0x11, 0x12, 0x31, 0x32, 0x32, 0x36, 0x33, 0x62, 0x32, 0x33, 0x63, 0x23, 0x13, 0x63,
|
||||
0x11, 0x21, 0x13, 0x11, 0x12, 0x13, 0x13, 0x1, 0x36, 0x32, 0x11, 0x11, 0x11, 0x20, 0x63, 0x26,
|
||||
0x36, 0x36, 0x36, 0x6, 0x1, 0x16, 0x16, 0x16, 0x11, 0x61, 0x11, 0x11, 0x31, 0x66, 0x36, 0x26,
|
||||
0x36, 0x36, 0x26, 0x32, 0x60, 0x16, 0x21, 0x61, 0x11, 0x16, 0x26, 0x36, 0x0, 0x13, 0x16, 0x13,
|
||||
0x11, 0x61, 0x32, 0x13, 0x62, 0x31, 0x21, 0x11, 0x21, 0x11, 0x13, 0x12, 0x11, 0x11, 0x31, 0x11,
|
||||
0x31, 0x11, 0x11, 0x36, 0x11, 0x21, 0x31, 0x31, 0x11, 0x11, 0x11, 0x21, 0x31, 0x11, 0x13, 0x11,
|
||||
0x13, 0x12, 0x13, 0x11, 0x32, 0x36, 0x33, 0x13, 0x62, 0x33, 0x36, 0x32, 0x36, 0x36, 0x32, 0x36,
|
||||
0x11, 0x11, 0x21, 0x12, 0x13, 0x32, 0x32, 0x13, 0x23, 0x36, 0x31, 0x21, 0x11, 0x36, 0x6, 0x36,
|
||||
0x32, 0x6, 0x32, 0x35, 0x11, 0x61, 0x11, 0x11, 0x16, 0x11, 0x16, 0x16, 0x16, 0x32, 0x63, 0x63,
|
||||
0x62, 0x63, 0x63, 0x66, 0x31, 0x63, 0x16, 0x11, 0x61, 0x61, 0x13, 0x60, 0x36, 0x31, 0x23, 0x16,
|
||||
0x13, 0x13, 0x16, 0x31, 0x23, 0x11, 0x11, 0x31, 0x11, 0x21, 0x31, 0x11, 0x31, 0x13, 0x11, 0x31,
|
||||
0x11, 0x21, 0x61, 0x13, 0x11, 0x11, 0x11, 0x11, 0x31, 0x21, 0x31, 0x31, 0x11, 0x21, 0x11, 0x12,
|
||||
0x11, 0x11, 0x11, 0x11, 0x63, 0x13, 0x62, 0x36, 0x33, 0x62, 0x36, 0x36, 0x32, 0x32, 0x36, 0x32,
|
||||
0x11, 0x31, 0x11, 0x11, 0x11, 0x13, 0x23, 0x31, 0x31, 0x32, 0x31, 0x12, 0x11, 0x16, 0x3, 0x63,
|
||||
0x66, 0x32, 0x36, 0x61, 0x61, 0x16, 0x16, 0x16, 0x11, 0x16, 0x11, 0x11, 0x21, 0x63, 0x13, 0x62,
|
||||
0x63, 0x60, 0x63, 0x23, 0x62, 0x31, 0x61, 0x61, 0x11, 0x11, 0x61, 0x26, 0x32, 0x63, 0x13, 0x13,
|
||||
0x23, 0x62, 0x31, 0x36, 0x36, 0x31, 0x21, 0x11, 0x31, 0x11, 0x11, 0x61, 0x11, 0x11, 0x11, 0x11,
|
||||
0x21, 0x31, 0x12, 0x11, 0x31, 0x61, 0x31, 0x21, 0x11, 0x61, 0x11, 0x11, 0x31, 0x13, 0x12, 0x13,
|
||||
0x12, 0x16, 0x13, 0x12, 0x13, 0x23, 0x13, 0x1, 0x1, 0x36, 0x32, 0x32, 0x31, 0x36, 0x32, 0x33,
|
||||
0x12, 0x11, 0x31, 0x13, 0x10, 0x31, 0x31, 0x23, 0x23, 0x23, 0x11, 0x61, 0x13, 0x13, 0x20, 0x63,
|
||||
0x23, 0x63, 0x61, 0x11, 0x11, 0x61, 0x11, 0x11, 0x16, 0x11, 0x16, 0x16, 0x16, 0x35, 0x66, 0x23,
|
||||
0x63, 0x62, 0x66, 0x36, 0x63, 0x51, 0x61, 0x11, 0x61, 0x61, 0x11, 0x16, 0x6, 0x31, 0x26, 0x13,
|
||||
0x16, 0x13, 0x12, 0x31, 0x13, 0x21, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x13, 0x12, 0x12, 0x13,
|
||||
0x11, 0x11, 0x31, 0x12, 0x61, 0x21, 0x11, 0x13, 0x12, 0x11, 0x31, 0x21, 0x11, 0x61, 0x11, 0x11,
|
||||
0x13, 0x11, 0x21, 0x11, 0x32, 0x36, 0x36, 0x33, 0x23, 0x3, 0x36, 0x33, 0x63, 0x3, 0x23, 0x63,
|
||||
0x11, 0x11, 0x12, 0x12, 0x31, 0x32, 0x3, 0x13, 0x13, 0x10, 0x32, 0x31, 0x11, 0x26, 0x36, 0x0,
|
||||
0x63, 0x63, 0x61, 0x61, 0x61, 0x16, 0x16, 0x16, 0x11, 0x16, 0x11, 0x11, 0x11, 0x13, 0x13, 0x63,
|
||||
0x65, 0x36, 0x32, 0x62, 0x1, 0x66, 0x11, 0x13, 0x11, 0x16, 0x16, 0x11, 0x62, 0x63, 0x13, 0x62,
|
||||
0x13, 0x16, 0x31, 0x63, 0x21, 0x36, 0x13, 0x11, 0x21, 0x11, 0x13, 0x12, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x21, 0x11, 0x11, 0x13, 0x11, 0x13, 0x11, 0x11, 0x31, 0x11, 0x11, 0x21, 0x12, 0x13, 0x12,
|
||||
0x11, 0x13, 0x11, 0x31, 0x13, 0x13, 0x23, 0x23, 0x32, 0x36, 0x23, 0x62, 0x33, 0x26, 0x31, 0x36,
|
||||
0x11, 0x31, 0x11, 0x13, 0x10, 0x21, 0x32, 0x32, 0x13, 0x23, 0x63, 0x11, 0x21, 0x33, 0x63, 0x23,
|
||||
0x60, 0x26, 0x11, 0x16, 0x11, 0x61, 0x11, 0x31, 0x16, 0x11, 0x16, 0x16, 0x16, 0x16, 0x62, 0x61,
|
||||
0x63, 0x16, 0x36, 0x36, 0x36, 0x11, 0x16, 0x11, 0x51, 0x61, 0x11, 0x16, 0x13, 0x61, 0x21, 0x31,
|
||||
0x31, 0x23, 0x13, 0x23, 0x13, 0x61, 0x11, 0x12, 0x11, 0x31, 0x11, 0x11, 0x16, 0x13, 0x13, 0x12,
|
||||
0x13, 0x11, 0x61, 0x31, 0x31, 0x12, 0x11, 0x12, 0x11, 0x11, 0x21, 0x31, 0x13, 0x11, 0x31, 0x11,
|
||||
0x11, 0x21, 0x11, 0x11, 0x32, 0x36, 0x33, 0x63, 0x63, 0x63, 0x31, 0x33, 0x63, 0x63, 0x32, 0x32,
|
||||
0x11, 0x12, 0x11, 0x12, 0x31, 0x31, 0x31, 0x31, 0x36, 0x32, 0x32, 0x31, 0x11, 0x12, 0x30, 0x60,
|
||||
0x36, 0x31, 0x16, 0x13, 0x16, 0x11, 0x61, 0x16, 0x11, 0x16, 0x11, 0x13, 0x11, 0x13, 0x13, 0x63,
|
||||
0x26, 0x36, 0x26, 0x36, 0x10, 0x13, 0x11, 0x61, 0x61, 0x16, 0x16, 0x11, 0x11, 0x36, 0x36, 0x21,
|
||||
0x61, 0x35, 0x31, 0x61, 0x1, 0x31, 0x21, 0x11, 0x11, 0x11, 0x31, 0x21, 0x31, 0x11, 0x11, 0x13,
|
||||
0x11, 0x13, 0x11, 0x11, 0x53, 0x13, 0x16, 0x11, 0x62, 0x13, 0x11, 0x11, 0x11, 0x31, 0x11, 0x13,
|
||||
0x13, 0x11, 0x31, 0x21, 0x11, 0x32, 0x32, 0x36, 0x32, 0x36, 0x23, 0x63, 0x23, 0x23, 0x63, 0x63,
|
||||
0x11, 0x11, 0x13, 0x13, 0x13, 0x23, 0x23, 0x23, 0x23, 0x23, 0x36, 0x21, 0x31, 0x63, 0x6, 0x36,
|
||||
0x26, 0x11, 0x61, 0x11, 0x11, 0x16, 0x11, 0x11, 0x63, 0x11, 0x16, 0x11, 0x16, 0x16, 0x26, 0x16,
|
||||
0x16, 0x61, 0x36, 0x26, 0x36, 0x11, 0x51, 0x13, 0x11, 0x61, 0x11, 0x16, 0x10, 0x61, 0x31, 0x36,
|
||||
0x32, 0x61, 0x32, 0x33, 0x10, 0x21, 0x11, 0x31, 0x61, 0x12, 0x11, 0x11, 0x11, 0x21, 0x21, 0x11,
|
||||
0x12, 0x11, 0x12, 0x11, 0x31, 0x11, 0x12, 0x13, 0x11, 0x11, 0x13, 0x12, 0x11, 0x11, 0x21, 0x21,
|
||||
0x11, 0x12, 0x11, 0x11, 0x33, 0x63, 0x63, 0x63, 0x23, 0x13, 0x36, 0x32, 0x36, 0x36, 0x32, 0x33,
|
||||
0x12, 0x13, 0x11, 0x12, 0x36, 0x31, 0x33, 0x13, 0x13, 0x63, 0x23, 0x31, 0x11, 0x23, 0x23, 0x63,
|
||||
0x63, 0x16, 0x16, 0x16, 0x16, 0x10, 0x36, 0x1, 0x11, 0x61, 0x31, 0x16, 0x11, 0x11, 0x61, 0x36,
|
||||
0x31, 0x36, 0x63, 0x63, 0x62, 0x61, 0x13, 0x51, 0x11, 0x16, 0x16, 0x11, 0x11, 0x32, 0x61, 0x31,
|
||||
0x11, 0x36, 0x16, 0x10, 0x13, 0x63, 0x11, 0x11, 0x13, 0x11, 0x11, 0x13, 0x11, 0x11, 0x13, 0x12,
|
||||
0x13, 0x13, 0x11, 0x21, 0x10, 0x11, 0x11, 0x11, 0x13, 0x12, 0x11, 0x11, 0x21, 0x31, 0x13, 0x16,
|
||||
0x12, 0x11, 0x21, 0x31, 0x12, 0x31, 0x32, 0x36, 0x36, 0x36, 0x13, 0x63, 0x63, 0x23, 0x63, 0x23,
|
||||
0x11, 0x11, 0x12, 0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x32, 0x13, 0x36, 0x30, 0x62,
|
||||
0x61, 0x61, 0x13, 0x11, 0x10, 0x0, 0x0, 0x0, 0x6, 0x11, 0x15, 0x61, 0x16, 0x13, 0x13, 0x61,
|
||||
0x66, 0x26, 0x31, 0x62, 0x13, 0x16, 0x11, 0x16, 0x16, 0x11, 0x11, 0x16, 0x16, 0x16, 0x31, 0x21,
|
||||
0x36, 0x13, 0x23, 0x16, 0x21, 0x31, 0x12, 0x11, 0x31, 0x11, 0x31, 0x11, 0x12, 0x31, 0x11, 0x13,
|
||||
0x11, 0x11, 0x21, 0x31, 0x23, 0x12, 0x31, 0x21, 0x31, 0x11, 0x31, 0x61, 0x11, 0x11, 0x61, 0x12,
|
||||
0x13, 0x11, 0x31, 0x11, 0x23, 0x10, 0x36, 0x33, 0x23, 0x23, 0x32, 0x31, 0x32, 0x36, 0x33, 0x63,
|
||||
0x11, 0x61, 0x11, 0x12, 0x31, 0x31, 0x36, 0x31, 0x13, 0x63, 0x30, 0x13, 0x11, 0x23, 0x23, 0x63,
|
||||
0x1, 0x16, 0x51, 0x10, 0x3, 0x6, 0x0, 0x0, 0x0, 0x6, 0x11, 0x16, 0x11, 0x16, 0x16, 0x26,
|
||||
0x31, 0x36, 0x53, 0x63, 0x66, 0x11, 0x16, 0x11, 0x11, 0x26, 0x30, 0x1, 0x11, 0x36, 0x16, 0x36,
|
||||
0x13, 0x16, 0x11, 0x31, 0x36, 0x21, 0x13, 0x11, 0x11, 0x21, 0x12, 0x16, 0x11, 0x13, 0x12, 0x11,
|
||||
0x11, 0x11, 0x31, 0x11, 0x16, 0x11, 0x11, 0x31, 0x12, 0x11, 0x11, 0x13, 0x13, 0x21, 0x13, 0x11,
|
||||
0x11, 0x61, 0x11, 0x21, 0x11, 0x33, 0x10, 0x36, 0x36, 0x30, 0x63, 0x3, 0x63, 0x36, 0x32, 0x36,
|
||||
0x13, 0x11, 0x21, 0x33, 0x13, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x21, 0x12, 0x33, 0x63, 0x66,
|
||||
0x11, 0x61, 0x11, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61, 0x11, 0x13, 0x11, 0x61, 0x36,
|
||||
0x16, 0x61, 0x36, 0x26, 0x31, 0x16, 0x13, 0x11, 0x3, 0x0, 0x0, 0x0, 0x61, 0x16, 0x32, 0x11,
|
||||
0x35, 0x31, 0x36, 0x12, 0x11, 0x31, 0x61, 0x11, 0x21, 0x11, 0x11, 0x31, 0x11, 0x11, 0x11, 0x11,
|
||||
0x31, 0x21, 0x11, 0x13, 0x13, 0x11, 0x13, 0x11, 0x13, 0x13, 0x12, 0x11, 0x11, 0x11, 0x31, 0x13,
|
||||
0x12, 0x13, 0x11, 0x31, 0x32, 0x36, 0x33, 0x23, 0x3, 0x26, 0x32, 0x36, 0x36, 0x23, 0x3, 0x63,
|
||||
0x11, 0x11, 0x11, 0x12, 0x1, 0x36, 0x36, 0x31, 0x31, 0x30, 0x36, 0x33, 0x16, 0x10, 0x32, 0x30,
|
||||
0x16, 0x11, 0x10, 0x0, 0x0, 0x0, 0x63, 0x61, 0x61, 0x60, 0x0, 0x16, 0x11, 0x61, 0x61, 0x61,
|
||||
0x1, 0x36, 0x26, 0x31, 0x66, 0x16, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x1, 0x31,
|
||||
0x61, 0x16, 0x12, 0x36, 0x36, 0x23, 0x12, 0x11, 0x13, 0x11, 0x31, 0x11, 0x32, 0x11, 0x31, 0x31,
|
||||
0x11, 0x13, 0x12, 0x11, 0x10, 0x13, 0x11, 0x12, 0x11, 0x11, 0x11, 0x31, 0x13, 0x11, 0x12, 0x11,
|
||||
0x31, 0x11, 0x21, 0x11, 0x13, 0x13, 0x23, 0x63, 0x23, 0x32, 0x36, 0x23, 0x23, 0x63, 0x63, 0x23,
|
||||
0x11, 0x21, 0x31, 0x32, 0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x31, 0x12, 0x33, 0x26, 0x61,
|
||||
0x16, 0x11, 0x0, 0x6, 0x0, 0x1, 0x11, 0x62, 0x11, 0x11, 0x30, 0x1, 0x15, 0x11, 0x63, 0x63,
|
||||
0x16, 0x61, 0x36, 0x36, 0x31, 0x21, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x1, 0x61,
|
||||
0x32, 0x31, 0x36, 0x31, 0x31, 0x31, 0x11, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x11, 0x11,
|
||||
0x21, 0x31, 0x11, 0x13, 0x12, 0x11, 0x12, 0x13, 0x11, 0x21, 0x31, 0x11, 0x21, 0x12, 0x11, 0x11,
|
||||
0x11, 0x21, 0x13, 0x11, 0x21, 0x32, 0x30, 0x30, 0x36, 0x23, 0x36, 0x33, 0x63, 0x32, 0x32, 0x30,
|
||||
0x11, 0x11, 0x12, 0x11, 0x32, 0x32, 0x31, 0x31, 0x33, 0x13, 0x63, 0x32, 0x11, 0x36, 0x33, 0x63,
|
||||
0x61, 0x11, 0x0, 0x0, 0x6, 0x11, 0x0, 0x3, 0x0, 0x1, 0x11, 0x0, 0x11, 0x11, 0x21, 0x16,
|
||||
0x62, 0x36, 0x61, 0x26, 0x26, 0x16, 0x16, 0x0, 0x61, 0x61, 0x13, 0x60, 0x0, 0x61, 0x63, 0x10,
|
||||
0x16, 0x13, 0x21, 0x36, 0x23, 0x63, 0x11, 0x13, 0x16, 0x12, 0x13, 0x12, 0x13, 0x11, 0x12, 0x13,
|
||||
0x11, 0x11, 0x13, 0x11, 0x13, 0x23, 0x11, 0x11, 0x13, 0x11, 0x11, 0x31, 0x11, 0x11, 0x31, 0x21,
|
||||
0x31, 0x13, 0x11, 0x61, 0x13, 0x63, 0x63, 0x23, 0x63, 0x36, 0x30, 0x32, 0x30, 0x63, 0x3, 0x63,
|
||||
0x13, 0x16, 0x11, 0x32, 0x31, 0x36, 0x32, 0x13, 0x21, 0x30, 0x32, 0x31, 0x13, 0x23, 0x26, 0x61,
|
||||
0x11, 0x60, 0x0, 0x6, 0x11, 0x60, 0x3, 0x4, 0x30, 0x0, 0x11, 0x0, 0x11, 0x61, 0x16, 0x32,
|
||||
0x31, 0x63, 0x10, 0x63, 0x11, 0x61, 0x30, 0x6, 0x30, 0x16, 0x11, 0x11, 0x0, 0x1, 0x6, 0x21,
|
||||
0x31, 0x35, 0x36, 0x31, 0x36, 0x21, 0x16, 0x11, 0x11, 0x31, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11,
|
||||
0x13, 0x12, 0x11, 0x12, 0x16, 0x11, 0x13, 0x11, 0x21, 0x16, 0x12, 0x11, 0x31, 0x31, 0x11, 0x31,
|
||||
0x11, 0x21, 0x12, 0x13, 0x11, 0x32, 0x36, 0x36, 0x32, 0x63, 0x23, 0x63, 0x63, 0x23, 0x63, 0x3,
|
||||
0x11, 0x11, 0x21, 0x13, 0x13, 0x23, 0x61, 0x36, 0x33, 0x21, 0x30, 0x32, 0x16, 0x36, 0x36, 0x31,
|
||||
0x61, 0x10, 0x6, 0x31, 0x11, 0x3, 0x1, 0x60, 0x36, 0x30, 0x1, 0x10, 0x1, 0x11, 0x61, 0x61,
|
||||
0x63, 0x62, 0x63, 0x66, 0x31, 0x11, 0x60, 0x30, 0x0, 0x0, 0x1, 0x11, 0x10, 0x1, 0x10, 0x31,
|
||||
0x61, 0x61, 0x31, 0x26, 0x31, 0x31, 0x31, 0x11, 0x21, 0x11, 0x12, 0x13, 0x16, 0x11, 0x36, 0x13,
|
||||
0x11, 0x11, 0x61, 0x31, 0x13, 0x36, 0x11, 0x31, 0x13, 0x11, 0x31, 0x21, 0x11, 0x11, 0x21, 0x11,
|
||||
0x61, 0x13, 0x11, 0x21, 0x12, 0x63, 0x23, 0x23, 0x63, 0x23, 0x63, 0x32, 0x36, 0x30, 0x32, 0x36,
|
||||
0x12, 0x13, 0x11, 0x32, 0x32, 0x31, 0x32, 0x32, 0x31, 0x33, 0x23, 0x61, 0x13, 0x23, 0x26, 0x35,
|
||||
0x11, 0x60, 0x0, 0x11, 0x10, 0x3, 0x61, 0x60, 0x0, 0x36, 0x6, 0x10, 0x1, 0x11, 0x61, 0x36,
|
||||
0x35, 0x63, 0x62, 0x31, 0x61, 0x13, 0x0, 0x0, 0x36, 0x33, 0x0, 0x61, 0x16, 0x6, 0x63, 0x56,
|
||||
0x32, 0x31, 0x63, 0x63, 0x10, 0x10, 0x11, 0x23, 0x11, 0x13, 0x11, 0x11, 0x11, 0x31, 0x11, 0x11,
|
||||
0x12, 0x13, 0x11, 0x11, 0x16, 0x11, 0x21, 0x11, 0x31, 0x12, 0x11, 0x13, 0x12, 0x13, 0x11, 0x21,
|
||||
0x31, 0x11, 0x13, 0x11, 0x31, 0x33, 0x63, 0x63, 0x32, 0x33, 0x32, 0x3, 0x63, 0x36, 0x36, 0x32,
|
||||
0x13, 0x11, 0x12, 0x13, 0x16, 0x32, 0x33, 0x13, 0x23, 0x23, 0x32, 0x33, 0x11, 0x36, 0x30, 0x61,
|
||||
0x61, 0x10, 0x36, 0x11, 0x60, 0x60, 0x0, 0x0, 0x0, 0x3, 0x30, 0x11, 0x6, 0x11, 0x16, 0x16,
|
||||
0x53, 0x61, 0x36, 0x60, 0x16, 0x16, 0x0, 0x1, 0x60, 0x0, 0x63, 0x6, 0x11, 0x3, 0x16, 0x31,
|
||||
0x16, 0x13, 0x13, 0x16, 0x23, 0x13, 0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x21, 0x11, 0x13, 0x12,
|
||||
0x11, 0x11, 0x13, 0x13, 0x12, 0x31, 0x13, 0x21, 0x11, 0x11, 0x13, 0x11, 0x11, 0x11, 0x13, 0x11,
|
||||
0x13, 0x12, 0x11, 0x21, 0x11, 0x32, 0x32, 0x33, 0x63, 0x60, 0x63, 0x10, 0x36, 0x23, 0x23, 0x3,
|
||||
0x11, 0x11, 0x11, 0x31, 0x33, 0x36, 0x32, 0x31, 0x31, 0x31, 0x3, 0x21, 0x12, 0x36, 0x61, 0x61,
|
||||
0x11, 0x0, 0x61, 0x11, 0x3, 0x30, 0x0, 0x0, 0x0, 0x0, 0x60, 0x11, 0x6, 0x11, 0x32, 0x36,
|
||||
0x31, 0x63, 0x66, 0x32, 0x11, 0x10, 0x0, 0x31, 0x60, 0x0, 0x30, 0x3, 0x11, 0x6, 0x10, 0x26,
|
||||
0x31, 0x35, 0x21, 0x32, 0x31, 0x1, 0x21, 0x31, 0x13, 0x12, 0x11, 0x11, 0x11, 0x31, 0x21, 0x11,
|
||||
0x31, 0x13, 0x11, 0x11, 0x13, 0x11, 0x31, 0x11, 0x31, 0x23, 0x11, 0x11, 0x31, 0x21, 0x31, 0x12,
|
||||
0x11, 0x13, 0x11, 0x31, 0x21, 0x31, 0x33, 0x63, 0x23, 0x32, 0x30, 0x36, 0x32, 0x36, 0x36, 0x32,
|
||||
0x11, 0x31, 0x21, 0x32, 0x12, 0x32, 0x36, 0x13, 0x23, 0x23, 0x26, 0x33, 0x63, 0x62, 0x30, 0x36,
|
||||
0x11, 0x60, 0x36, 0x11, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x61, 0x3, 0x15, 0x11, 0x61,
|
||||
0x63, 0x26, 0x32, 0x60, 0x16, 0x10, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x11, 0x60, 0x11, 0x36,
|
||||
0x12, 0x11, 0x63, 0x16, 0x13, 0x13, 0x11, 0x16, 0x11, 0x11, 0x31, 0x13, 0x11, 0x11, 0x31, 0x31,
|
||||
0x16, 0x11, 0x11, 0x32, 0x11, 0x1, 0x11, 0x61, 0x11, 0x11, 0x21, 0x12, 0x13, 0x11, 0x11, 0x11,
|
||||
0x32, 0x11, 0x21, 0x11, 0x31, 0x63, 0x23, 0x3, 0x63, 0x63, 0x36, 0x32, 0x33, 0x63, 0x3, 0x63,
|
||||
0x11, 0x11, 0x13, 0x12, 0x33, 0x13, 0x13, 0x23, 0x13, 0x13, 0x33, 0x21, 0x30, 0x63, 0x66, 0x12,
|
||||
0x11, 0x0, 0x11, 0x11, 0x63, 0x0, 0x0, 0x0, 0x0, 0x0, 0x34, 0x11, 0x6, 0x11, 0x66, 0x32,
|
||||
0x36, 0x63, 0x66, 0x36, 0x11, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x61, 0x63, 0x66, 0x63,
|
||||
0x13, 0x63, 0x12, 0x13, 0x16, 0x35, 0x11, 0x11, 0x12, 0x11, 0x11, 0x21, 0x12, 0x13, 0x12, 0x36,
|
||||
0x23, 0x11, 0x23, 0x13, 0x10, 0x31, 0x12, 0x13, 0x12, 0x16, 0x13, 0x11, 0x11, 0x13, 0x12, 0x13,
|
||||
0x11, 0x11, 0x31, 0x16, 0x11, 0x32, 0x36, 0x32, 0x32, 0x32, 0x63, 0x3, 0x63, 0x3, 0x23, 0x23,
|
||||
0x12, 0x16, 0x11, 0x36, 0x13, 0x23, 0x23, 0x13, 0x13, 0x23, 0x21, 0x33, 0x26, 0x30, 0x23, 0x1,
|
||||
0x61, 0x10, 0x26, 0x11, 0x10, 0x30, 0x0, 0x0, 0x0, 0x6, 0x30, 0x11, 0x0, 0x11, 0x11, 0x16,
|
||||
0x53, 0x62, 0x63, 0x23, 0x61, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x31, 0x10, 0x11, 0x20,
|
||||
0x63, 0x16, 0x13, 0x61, 0x32, 0x31, 0x31, 0x13, 0x11, 0x31, 0x13, 0x11, 0x11, 0x11, 0x31, 0x31,
|
||||
0x32, 0x63, 0x32, 0x10, 0x13, 0x21, 0x13, 0x11, 0x11, 0x31, 0x11, 0x13, 0x12, 0x11, 0x11, 0x11,
|
||||
0x11, 0x31, 0x11, 0x31, 0x21, 0x31, 0x33, 0x63, 0x63, 0x63, 0x13, 0x13, 0x23, 0x26, 0x36, 0x30,
|
||||
0x13, 0x11, 0x21, 0x21, 0x32, 0x31, 0x31, 0x32, 0x32, 0x13, 0x33, 0x23, 0x63, 0x62, 0x46, 0x61,
|
||||
0x61, 0x60, 0x31, 0x11, 0x10, 0x4, 0x0, 0x0, 0x0, 0x3, 0x6, 0x11, 0x6, 0x11, 0x63, 0x63,
|
||||
0x66, 0x36, 0x36, 0x63, 0x51, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x60, 0x61, 0x10, 0x61, 0x36,
|
||||
0x35, 0x23, 0x16, 0x13, 0x11, 0x62, 0x11, 0x11, 0x11, 0x11, 0x61, 0x13, 0x13, 0x13, 0x23, 0x23,
|
||||
0x13, 0x31, 0x13, 0x32, 0x31, 0x31, 0x61, 0x12, 0x13, 0x11, 0x31, 0x11, 0x11, 0x31, 0x31, 0x16,
|
||||
0x12, 0x11, 0x21, 0x11, 0x13, 0x10, 0x23, 0x32, 0x31, 0x32, 0x36, 0x36, 0x36, 0x33, 0x63, 0x13,
|
||||
0x11, 0x11, 0x31, 0x32, 0x13, 0x23, 0x10, 0x13, 0x13, 0x23, 0x26, 0x36, 0x6, 0x3, 0x23, 0x63,
|
||||
0x61, 0x16, 0x6, 0x11, 0x11, 0x3, 0x33, 0x0, 0x3, 0x63, 0x1, 0x11, 0x2, 0x11, 0x11, 0x61,
|
||||
0x35, 0x36, 0x23, 0x63, 0x61, 0x60, 0x0, 0x0, 0x0, 0x0, 0x6, 0x33, 0x61, 0x53, 0x1, 0x62,
|
||||
0x36, 0x36, 0x23, 0x21, 0x1, 0x31, 0x31, 0x13, 0x12, 0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x32,
|
||||
0x31, 0x32, 0x1, 0x31, 0x23, 0x23, 0x11, 0x13, 0x11, 0x21, 0x11, 0x21, 0x31, 0x11, 0x11, 0x31,
|
||||
0x11, 0x31, 0x12, 0x13, 0x11, 0x31, 0x32, 0x36, 0x30, 0x36, 0x33, 0x23, 0x31, 0x61, 0x32, 0x36,
|
||||
0x23, 0x23, 0x11, 0x31, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31, 0x33, 0x20, 0x63, 0x66, 0x36, 0x32,
|
||||
0x11, 0x61, 0x0, 0x11, 0x11, 0x60, 0x6, 0x36, 0x36, 0x30, 0x11, 0x16, 0x36, 0x16, 0x10, 0x10,
|
||||
0x62, 0x63, 0x63, 0x26, 0x11, 0x30, 0x6, 0x30, 0x0, 0x0, 0x3, 0x0, 0x11, 0x60, 0x11, 0x6,
|
||||
0x6, 0x32, 0x36, 0x13, 0x12, 0x13, 0x11, 0x11, 0x11, 0x13, 0x12, 0x16, 0x12, 0x13, 0x13, 0x63,
|
||||
0x12, 0x31, 0x32, 0x31, 0x36, 0x31, 0x12, 0x11, 0x11, 0x13, 0x11, 0x31, 0x11, 0x21, 0x21, 0x11,
|
||||
0x31, 0x11, 0x61, 0x11, 0x21, 0x13, 0x36, 0x32, 0x32, 0x13, 0x66, 0x36, 0x16, 0x13, 0x61, 0x36,
|
||||
0x63, 0x63, 0x23, 0x23, 0x63, 0x10, 0x13, 0x13, 0x23, 0x23, 0x23, 0x63, 0x60, 0x36, 0x32, 0x60,
|
||||
0x63, 0x11, 0x10, 0x6, 0x11, 0x11, 0x0, 0x3, 0x0, 0x61, 0x11, 0x15, 0x36, 0x11, 0x61, 0x1,
|
||||
0x63, 0x61, 0x6, 0x30, 0x1, 0x10, 0x3, 0x0, 0x0, 0x3, 0x63, 0x6, 0x11, 0x10, 0x36, 0x13,
|
||||
0x63, 0x60, 0x23, 0x61, 0x13, 0x12, 0x11, 0x21, 0x13, 0x11, 0x11, 0x11, 0x13, 0x11, 0x23, 0x12,
|
||||
0x36, 0x31, 0x36, 0x23, 0x13, 0x23, 0x11, 0x32, 0x13, 0x11, 0x21, 0x16, 0x11, 0x31, 0x13, 0x21,
|
||||
0x12, 0x13, 0x11, 0x31, 0x11, 0x31, 0x32, 0x33, 0x63, 0x63, 0x13, 0x13, 0x63, 0x61, 0x36, 0x16,
|
||||
0x32, 0x30, 0x6, 0x0, 0x23, 0x3, 0x21, 0x36, 0x31, 0x36, 0x36, 0x2, 0x6, 0x6, 0x6, 0x36,
|
||||
0x35, 0x61, 0x61, 0x0, 0x31, 0x11, 0x11, 0x66, 0x11, 0x11, 0x16, 0x10, 0x61, 0x13, 0x16, 0x10,
|
||||
0x36, 0x10, 0x63, 0x66, 0x11, 0x60, 0x0, 0x43, 0x63, 0x63, 0x40, 0x61, 0x16, 0x0, 0x15, 0x36,
|
||||
0x20, 0x63, 0x61, 0x11, 0x35, 0x13, 0x11, 0x13, 0x11, 0x11, 0x31, 0x31, 0x11, 0x13, 0x13, 0x23,
|
||||
0x13, 0x12, 0x31, 0x31, 0x32, 0x31, 0x11, 0x11, 0x11, 0x11, 0x13, 0x11, 0x13, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x21, 0x21, 0x31, 0x23, 0x63, 0x63, 0x32, 0x32, 0x30, 0x30, 0x36, 0x33, 0x63, 0x63,
|
||||
0x63, 0x2, 0x3, 0x63, 0x2, 0x36, 0x3, 0x23, 0x63, 0x23, 0x23, 0x63, 0x63, 0x23, 0x63, 0x62,
|
||||
0x66, 0x36, 0x31, 0x16, 0x0, 0x61, 0x11, 0x11, 0x11, 0x16, 0x11, 0x36, 0x36, 0x16, 0x13, 0x61,
|
||||
0x62, 0x6, 0x36, 0x23, 0x6, 0x16, 0x6, 0x0, 0x0, 0x30, 0x1, 0x11, 0x11, 0x36, 0x16, 0x6,
|
||||
0x36, 0x32, 0x36, 0x32, 0x13, 0x16, 0x13, 0x11, 0x11, 0x21, 0x11, 0x11, 0x31, 0x12, 0x13, 0x13,
|
||||
0x61, 0x36, 0x13, 0x10, 0x13, 0x63, 0x13, 0x11, 0x31, 0x13, 0x11, 0x12, 0x11, 0x13, 0x13, 0x11,
|
||||
0x31, 0x31, 0x13, 0x11, 0x11, 0x13, 0x13, 0x23, 0x63, 0x63, 0x23, 0x12, 0x33, 0x26, 0x33, 0x23,
|
||||
0x30, 0x63, 0x6, 0x0, 0x3, 0x0, 0x36, 0x2, 0x30, 0x36, 0x36, 0x0, 0x63, 0x66, 0x26, 0x36,
|
||||
0x36, 0x26, 0x16, 0x31, 0x16, 0x36, 0x1, 0x61, 0x16, 0x11, 0x36, 0x21, 0x11, 0x63, 0x26, 0x10,
|
||||
0x36, 0x31, 0x6, 0x36, 0x63, 0x11, 0x31, 0x11, 0x63, 0x61, 0x11, 0x16, 0x30, 0x61, 0x36, 0x36,
|
||||
0x36, 0x6, 0x0, 0x6, 0x31, 0x23, 0x26, 0x11, 0x21, 0x11, 0x11, 0x21, 0x11, 0x23, 0x13, 0x16,
|
||||
0x13, 0x12, 0x31, 0x31, 0x32, 0x31, 0x11, 0x21, 0x11, 0x31, 0x63, 0x13, 0x11, 0x21, 0x11, 0x12,
|
||||
0x11, 0x11, 0x11, 0x12, 0x13, 0x13, 0x23, 0x36, 0x32, 0x31, 0x36, 0x33, 0x62, 0x33, 0x23, 0x63,
|
||||
0x32, 0x0, 0x3, 0x20, 0x60, 0x60, 0x2, 0x30, 0x2, 0x32, 0x36, 0x36, 0x2, 0x3, 0x63, 0x26,
|
||||
0x36, 0x36, 0x32, 0x66, 0x36, 0x11, 0x63, 0x61, 0x31, 0x61, 0x61, 0x36, 0x53, 0x16, 0x16, 0x1,
|
||||
0x62, 0x63, 0x60, 0x63, 0x26, 0x36, 0x16, 0x61, 0x11, 0x11, 0x16, 0x16, 0x1, 0x23, 0x62, 0x36,
|
||||
0x26, 0x36, 0x3, 0x0, 0x0, 0x6, 0x31, 0x31, 0x13, 0x11, 0x31, 0x13, 0x11, 0x11, 0x35, 0x31,
|
||||
0x31, 0x11, 0x61, 0x61, 0x31, 0x63, 0x21, 0x11, 0x31, 0x12, 0x11, 0x11, 0x13, 0x12, 0x16, 0x11,
|
||||
0x31, 0x21, 0x31, 0x13, 0x11, 0x21, 0x36, 0x32, 0x33, 0x63, 0x63, 0x23, 0x36, 0x36, 0x36, 0x33,
|
||||
0x63, 0x32, 0x30, 0x3, 0x0, 0x3, 0x60, 0x6, 0x30, 0x3, 0x60, 0x23, 0x63, 0x66, 0x36, 0x63,
|
||||
0x62, 0x36, 0x66, 0x36, 0x26, 0x36, 0x21, 0x63, 0x56, 0x31, 0x62, 0x61, 0x36, 0x63, 0x63, 0x10,
|
||||
0x36, 0x36, 0x2, 0x36, 0x6, 0x26, 0x13, 0x16, 0x16, 0x16, 0x10, 0x63, 0x16, 0x36, 0x63, 0x60,
|
||||
0x36, 0x32, 0x0, 0x20, 0x60, 0x32, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x16, 0x11, 0x11,
|
||||
0x11, 0x61, 0x31, 0x13, 0x16, 0x32, 0x11, 0x31, 0x61, 0x61, 0x31, 0x23, 0x11, 0x11, 0x31, 0x13,
|
||||
0x11, 0x11, 0x11, 0x61, 0x11, 0x33, 0x13, 0x23, 0x16, 0x32, 0x31, 0x36, 0x33, 0x23, 0x32, 0x36,
|
||||
0x36, 0x0, 0x6, 0x0, 0x2, 0x0, 0x0, 0x30, 0x23, 0x62, 0x36, 0x36, 0x6, 0x30, 0x63, 0x26,
|
||||
0x36, 0x62, 0x31, 0x66, 0x36, 0x53, 0x63, 0x65, 0x31, 0x26, 0x31, 0x31, 0x61, 0x21, 0x61, 0x65,
|
||||
0x36, 0x26, 0x36, 0x36, 0x33, 0x63, 0x65, 0x31, 0x36, 0x13, 0x61, 0x26, 0x36, 0x63, 0x26, 0x36,
|
||||
0x60, 0x63, 0x60, 0x63, 0x0, 0x63, 0x62, 0x13, 0x16, 0x11, 0x61, 0x21, 0x11, 0x12, 0x61, 0x31,
|
||||
0x61, 0x31, 0x13, 0x61, 0x11, 0x36, 0x31, 0x11, 0x11, 0x11, 0x13, 0x61, 0x16, 0x31, 0x13, 0x11,
|
||||
0x11, 0x31, 0x21, 0x13, 0x12, 0x11, 0x31, 0x36, 0x33, 0x13, 0x23, 0x23, 0x23, 0x13, 0x63, 0x23,
|
||||
0x13, 0x23, 0x60, 0x30, 0x3, 0x0, 0x6, 0x6, 0x36, 0x23, 0x60, 0x63, 0x23, 0x62, 0x66, 0x63,
|
||||
0x66, 0x36, 0x60, 0x36, 0x63, 0x66, 0x35, 0x63, 0x66, 0x61, 0x66, 0x16, 0x13, 0x66, 0x36, 0x31,
|
||||
0x66, 0x33, 0x66, 0x6, 0x26, 0x63, 0x53, 0x56, 0x21, 0x36, 0x10, 0x63, 0x56, 0x36, 0x63, 0x62,
|
||||
0x36, 0x36, 0x3, 0x0, 0x20, 0x2, 0x36, 0x11, 0x11, 0x13, 0x11, 0x13, 0x11, 0x13, 0x13, 0x16,
|
||||
0x31, 0x16, 0x31, 0x13, 0x23, 0x63, 0x11, 0x63, 0x13, 0x23, 0x61, 0x13, 0x31, 0x11, 0x31, 0x12,
|
||||
0x16, 0x11, 0x31, 0x11, 0x13, 0x13, 0x23, 0x31, 0x32, 0x36, 0x33, 0x13, 0x63, 0x23, 0x23, 0x63,
|
||||
0x36, 0x32, 0x30, 0x20, 0x60, 0x6, 0x30, 0x32, 0x3, 0x3, 0x23, 0x20, 0x66, 0x36, 0x36, 0x35,
|
||||
0x36, 0x13, 0x61, 0x63, 0x26, 0x31, 0x61, 0x21, 0x11, 0x13, 0x11, 0x16, 0x11, 0x10, 0x61, 0x66,
|
||||
0x31, 0x62, 0x63, 0x61, 0x63, 0x66, 0x35, 0x36, 0x36, 0x53, 0x63, 0x16, 0x36, 0x26, 0x36, 0x63,
|
||||
0x62, 0x63, 0x26, 0x3, 0x63, 0x60, 0x63, 0x32, 0x12, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x61,
|
||||
0x21, 0x31, 0x13, 0x21, 0x31, 0x23, 0x11, 0x11, 0x61, 0x31, 0x31, 0x31, 0x12, 0x31, 0x11, 0x13,
|
||||
0x11, 0x21, 0x13, 0x12, 0x11, 0x31, 0x31, 0x32, 0x31, 0x31, 0x36, 0x32, 0x36, 0x31, 0x32, 0x33,
|
||||
0x13, 0x23, 0x63, 0x0, 0x0, 0x0, 0x2, 0x6, 0x36, 0x2, 0x36, 0x6, 0x32, 0x63, 0x62, 0x66,
|
||||
0x16, 0x66, 0x23, 0x61, 0x61, 0x66, 0x13, 0x61, 0x63, 0x16, 0x11, 0x61, 0x16, 0x16, 0x0, 0x1,
|
||||
0x66, 0x36, 0x61, 0x63, 0x66, 0x36, 0x16, 0x16, 0x35, 0x31, 0x61, 0x63, 0x53, 0x13, 0x62, 0x36,
|
||||
0x63, 0x63, 0x63, 0x2, 0x0, 0x13, 0x23, 0x51, 0x11, 0x11, 0x12, 0x11, 0x31, 0x13, 0x13, 0x13,
|
||||
0x16, 0x11, 0x31, 0x13, 0x13, 0x31, 0x23, 0x13, 0x13, 0x11, 0x32, 0x12, 0x31, 0x31, 0x21, 0x31,
|
||||
0x13, 0x11, 0x11, 0x11, 0x12, 0x31, 0x32, 0x36, 0x32, 0x32, 0x32, 0x33, 0x13, 0x23, 0x63, 0x32,
|
||||
0x13, 0x63, 0x20, 0x6, 0x32, 0x6, 0x30, 0x0, 0x0, 0x30, 0x63, 0x63, 0x63, 0x66, 0x36, 0x36,
|
||||
0x32, 0x31, 0x61, 0x66, 0x31, 0x32, 0x61, 0x61, 0x26, 0x36, 0x16, 0x11, 0x11, 0x11, 0x10, 0x3,
|
||||
0x66, 0x63, 0x43, 0x66, 0x0, 0x16, 0x12, 0x11, 0x61, 0x61, 0x63, 0x26, 0x16, 0x61, 0x63, 0x53,
|
||||
0x63, 0x62, 0x6, 0x3, 0x60, 0x3, 0x60, 0x36, 0x31, 0x11, 0x31, 0x11, 0x11, 0x11, 0x16, 0x11,
|
||||
0x31, 0x36, 0x13, 0x61, 0x61, 0x63, 0x11, 0x13, 0x21, 0x63, 0x11, 0x31, 0x12, 0x13, 0x11, 0x11,
|
||||
0x11, 0x11, 0x21, 0x21, 0x31, 0x12, 0x31, 0x31, 0x36, 0x31, 0x36, 0x32, 0x33, 0x33, 0x36, 0x33,
|
||||
0x32, 0x32, 0x36, 0x30, 0x0, 0x30, 0x6, 0x32, 0x31, 0x23, 0x32, 0x6, 0x36, 0x32, 0x66, 0x16,
|
||||
0x61, 0x66, 0x36, 0x31, 0x66, 0x16, 0x16, 0x13, 0x60, 0x1, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10,
|
||||
0x63, 0x66, 0x66, 0x30, 0x31, 0x11, 0x11, 0x61, 0x13, 0x12, 0x61, 0x63, 0x63, 0x63, 0x66, 0x63,
|
||||
0x62, 0x63, 0x63, 0x66, 0x30, 0x20, 0x0, 0x20, 0x11, 0x31, 0x11, 0x16, 0x13, 0x12, 0x31, 0x31,
|
||||
0x61, 0x11, 0x35, 0x31, 0x32, 0x33, 0x23, 0x21, 0x31, 0x31, 0x23, 0x13, 0x13, 0x11, 0x13, 0x21,
|
||||
0x21, 0x31, 0x13, 0x11, 0x12, 0x31, 0x36, 0x32, 0x33, 0x63, 0x3, 0x33, 0x32, 0x32, 0x33, 0x32,
|
||||
0x13, 0x13, 0x20, 0x0, 0x36, 0x32, 0x30, 0x3, 0x23, 0x61, 0x36, 0x36, 0x32, 0x66, 0x36, 0x1,
|
||||
0x36, 0x31, 0x62, 0x16, 0x16, 0x13, 0x16, 0x16, 0x61, 0x6, 0x16, 0x16, 0x11, 0x61, 0x11, 0x11,
|
||||
0x16, 0x63, 0x63, 0x65, 0x16, 0x11, 0x61, 0x16, 0x11, 0x61, 0x16, 0x11, 0x61, 0x26, 0x13, 0x65,
|
||||
0x36, 0x36, 0x2, 0x32, 0x53, 0x63, 0x60, 0x3, 0x1, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13,
|
||||
0x16, 0x31, 0x61, 0x13, 0x13, 0x16, 0x31, 0x36, 0x32, 0x31, 0x31, 0x61, 0x31, 0x23, 0x11, 0x31,
|
||||
0x11, 0x13, 0x11, 0x13, 0x11, 0x13, 0x63, 0x3, 0x60, 0x0, 0x63, 0x23, 0x63, 0x33, 0x32, 0x33,
|
||||
0x32, 0x36, 0x30, 0x32, 0x2, 0x36, 0x2, 0x36, 0x31, 0x32, 0x32, 0x36, 0x6, 0x36, 0x16, 0x35,
|
||||
0x62, 0x66, 0x31, 0x63, 0x61, 0x61, 0x61, 0x61, 0x11, 0x0, 0x11, 0x11, 0x16, 0x11, 0x61, 0x61,
|
||||
0x61, 0x10, 0x61, 0x11, 0x61, 0x11, 0x11, 0x11, 0x16, 0x11, 0x61, 0x31, 0x63, 0x61, 0x36, 0x23,
|
||||
0x63, 0x62, 0x36, 0x36, 0x31, 0x1, 0x23, 0x60, 0x26, 0x31, 0x21, 0x31, 0x11, 0x31, 0x63, 0x11,
|
||||
0x61, 0x13, 0x13, 0x26, 0x31, 0x30, 0x13, 0x13, 0x16, 0x13, 0x16, 0x31, 0x21, 0x31, 0x16, 0x11,
|
||||
0x31, 0x21, 0x12, 0x31, 0x63, 0x0, 0x30, 0x60, 0x0, 0x0, 0x3, 0x32, 0x32, 0x32, 0x33, 0x3,
|
||||
0x13, 0x23, 0x60, 0x0, 0x36, 0x30, 0x36, 0x0, 0x23, 0x13, 0x13, 0x6, 0x36, 0x36, 0x1, 0x53,
|
||||
0x16, 0x31, 0x66, 0x16, 0x13, 0x65, 0x31, 0x11, 0x61, 0x10, 0x6, 0x16, 0x11, 0x11, 0x16, 0x11,
|
||||
0x16, 0x13, 0x61, 0x66, 0x11, 0x16, 0x16, 0x16, 0x16, 0x13, 0x11, 0x16, 0x11, 0x36, 0x16, 0x36,
|
||||
0x53, 0x63, 0x60, 0x23, 0x62, 0x36, 0x36, 0x0, 0x31, 0x1, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13,
|
||||
0x13, 0x61, 0x61, 0x63, 0x10, 0x13, 0x21, 0x35, 0x33, 0x21, 0x31, 0x21, 0x31, 0x13, 0x21, 0x11,
|
||||
0x13, 0x11, 0x36, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x33, 0x33, 0x33, 0x33, 0x23,
|
||||
0x32, 0x36, 0x30, 0x0, 0x0, 0x2, 0x30, 0x36, 0x31, 0x32, 0x31, 0x32, 0x6, 0x26, 0x31, 0x6,
|
||||
0x63, 0x16, 0x21, 0x35, 0x35, 0x16, 0x16, 0x16, 0x11, 0x10, 0x0, 0x0, 0x6, 0x63, 0x61, 0x36,
|
||||
0x36, 0x6, 0x6, 0x11, 0x16, 0x11, 0x11, 0x36, 0x31, 0x11, 0x61, 0x61, 0x61, 0x61, 0x1, 0x63,
|
||||
0x62, 0x63, 0x63, 0x61, 0x3, 0x60, 0x30, 0x32, 0x61, 0x11, 0x31, 0x11, 0x31, 0x11, 0x31, 0x61,
|
||||
0x11, 0x13, 0x13, 0x31, 0x1, 0x30, 0x13, 0x12, 0x31, 0x63, 0x13, 0x13, 0x11, 0x31, 0x13, 0x23,
|
||||
0x12, 0x10, 0x0, 0x36, 0x0, 0x60, 0x63, 0x63, 0x11, 0x0, 0x3, 0x32, 0x32, 0x32, 0x32, 0x33,
|
||||
0x13, 0x13, 0x20, 0x0, 0x0, 0x6, 0x2, 0x3, 0x62, 0x31, 0x32, 0x36, 0x36, 0x32, 0x66, 0x13,
|
||||
0x61, 0x61, 0x36, 0x16, 0x16, 0x61, 0x61, 0x61, 0x11, 0x11, 0x0, 0x0, 0x13, 0x6, 0x0, 0x6,
|
||||
0x3, 0x61, 0x10, 0x6, 0x36, 0x6, 0x36, 0x6, 0x12, 0x66, 0x11, 0x11, 0x31, 0x61, 0x63, 0x53,
|
||||
0x63, 0x62, 0x36, 0x3, 0x26, 0x32, 0x6, 0x0, 0x0, 0x1, 0x16, 0x12, 0x11, 0x31, 0x61, 0x36,
|
||||
0x30, 0x36, 0x21, 0x6, 0x30, 0x63, 0x1, 0x31, 0x13, 0x12, 0x16, 0x11, 0x31, 0x21, 0x21, 0x15,
|
||||
0x31, 0x13, 0x4, 0x0, 0x36, 0x31, 0x36, 0x31, 0x3, 0x14, 0x2, 0x33, 0x23, 0x33, 0x33, 0x3,
|
||||
0x32, 0x32, 0x30, 0x0, 0x63, 0x3, 0x0, 0x32, 0x33, 0x13, 0x23, 0x13, 0x23, 0x66, 0x31, 0x5,
|
||||
0x16, 0x26, 0x61, 0x63, 0x16, 0x13, 0x16, 0x11, 0x61, 0x11, 0x60, 0x6, 0x11, 0x11, 0x61, 0x11,
|
||||
0x11, 0x13, 0x11, 0x13, 0x51, 0x36, 0x0, 0x11, 0x61, 0x31, 0x16, 0x61, 0x16, 0x13, 0x16, 0x16,
|
||||
0x23, 0x63, 0x0, 0x60, 0x63, 0x6, 0x0, 0x0, 0x30, 0x3, 0x3, 0x30, 0x30, 0x23, 0x3, 0x0,
|
||||
0x6, 0x0, 0x30, 0x3, 0x2, 0x32, 0x36, 0x13, 0x11, 0x11, 0x11, 0x12, 0x11, 0x31, 0x31, 0x23,
|
||||
0x12, 0x36, 0x3, 0x63, 0x60, 0x3, 0x2, 0x0, 0x0, 0x63, 0x3, 0x32, 0x33, 0x23, 0x23, 0x30,
|
||||
0x63, 0x63, 0x60, 0x3, 0x2, 0x6, 0x0, 0x0, 0x63, 0x23, 0x63, 0x23, 0x36, 0x36, 0x36, 0x63,
|
||||
0x63, 0x13, 0x53, 0x61, 0x61, 0x61, 0x61, 0x61, 0x11, 0x11, 0x10, 0x0, 0x16, 0x16, 0x36, 0x11,
|
||||
0x11, 0x66, 0x16, 0x16, 0x11, 0x11, 0x3, 0x61, 0x31, 0x51, 0x31, 0x16, 0x13, 0x16, 0x53, 0x63,
|
||||
0x66, 0x36, 0x0, 0x36, 0x2, 0x0, 0x30, 0x0, 0x0, 0x60, 0x21, 0x6, 0x6, 0x0, 0x16, 0x10,
|
||||
0x3, 0x0, 0x0, 0x6, 0x0, 0x34, 0x23, 0x21, 0x21, 0x11, 0x11, 0x11, 0x21, 0x12, 0x13, 0x11,
|
||||
0x31, 0x13, 0x0, 0x60, 0x3, 0x60, 0x36, 0x36, 0x0, 0x63, 0x6, 0x33, 0x23, 0x33, 0x3, 0x23,
|
||||
0x30, 0x32, 0x30, 0x6, 0x0, 0x30, 0x0, 0x60, 0x2, 0x36, 0x32, 0x36, 0x30, 0x62, 0x66, 0x16,
|
||||
0x16, 0x61, 0x61, 0x16, 0x23, 0x16, 0x11, 0x61, 0x61, 0x11, 0x11, 0x60, 0x1, 0x13, 0x11, 0x26,
|
||||
0x63, 0x63, 0x10, 0x63, 0x16, 0x60, 0x61, 0x16, 0x16, 0x16, 0x16, 0x13, 0x16, 0x12, 0x31, 0x62,
|
||||
0x63, 0x60, 0x0, 0x23, 0x6, 0x13, 0x60, 0x0, 0x60, 0x3, 0x11, 0x63, 0x0, 0x36, 0x13, 0x20,
|
||||
0x30, 0x60, 0x63, 0x63, 0x21, 0x13, 0x31, 0x11, 0x13, 0x13, 0x1, 0x31, 0x61, 0x21, 0x31, 0x23,
|
||||
0x12, 0x30, 0x60, 0x3, 0x16, 0x0, 0x63, 0x13, 0x3, 0x2, 0x3, 0x33, 0x33, 0x23, 0x33, 0x3,
|
||||
0x21, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x34, 0x32, 0x36, 0x33, 0x23, 0x33, 0x36, 0x32,
|
||||
0x63, 0x10, 0x16, 0x61, 0x61, 0x61, 0x61, 0x61, 0x11, 0x61, 0x11, 0x11, 0x0, 0x2, 0x61, 0x11,
|
||||
0x11, 0x11, 0x11, 0x21, 0x11, 0x63, 0x16, 0x13, 0x16, 0x13, 0x11, 0x61, 0x65, 0x31, 0x66, 0x36,
|
||||
0x36, 0x0, 0x3, 0x6, 0x13, 0x62, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0, 0x3, 0x11, 0x10,
|
||||
0x60, 0x0, 0x0, 0x13, 0x13, 0x21, 0x23, 0x10, 0x36, 0x6, 0x0, 0x3, 0x3, 0x32, 0x36, 0x32,
|
||||
0x33, 0x0, 0x0, 0x2, 0x31, 0x33, 0x1, 0x31, 0x10, 0x36, 0x3, 0x23, 0x23, 0x32, 0x32, 0x33,
|
||||
0x33, 0x6, 0x30, 0x0, 0x0, 0x63, 0x0, 0x3, 0x0, 0x36, 0x32, 0x36, 0x30, 0x60, 0x10, 0x61,
|
||||
0x35, 0x61, 0x63, 0x16, 0x31, 0x62, 0x16, 0x11, 0x61, 0x11, 0x11, 0x11, 0x11, 0x63, 0x0, 0x0,
|
||||
0x0, 0x61, 0x63, 0x61, 0x0, 0x16, 0x16, 0x35, 0x16, 0x16, 0x10, 0x13, 0x13, 0x56, 0x31, 0x6,
|
||||
0x10, 0x0, 0x6, 0x2, 0x36, 0x36, 0x30, 0x0, 0x6, 0x0, 0x11, 0x10, 0x3, 0x6, 0x30, 0x30,
|
||||
0x30, 0x30, 0x32, 0x32, 0x13, 0x13, 0x0, 0x0, 0x0, 0x30, 0x20, 0x60, 0x20, 0x63, 0x63, 0x13,
|
||||
0x60, 0x63, 0x0, 0x63, 0x13, 0x60, 0x21, 0x31, 0x30, 0x13, 0x0, 0x33, 0x33, 0x23, 0x33, 0x32,
|
||||
0x26, 0x32, 0x36, 0x0, 0x0, 0x0, 0x1, 0x6, 0x32, 0x32, 0x36, 0x33, 0x23, 0x33, 0x23, 0x60,
|
||||
0x61, 0x1, 0x61, 0x26, 0x16, 0x13, 0x61, 0x61, 0x11, 0x61, 0x61, 0x61, 0x11, 0x11, 0x11, 0x16,
|
||||
0x66, 0x36, 0x36, 0x63, 0x61, 0x31, 0x61, 0x11, 0x61, 0x31, 0x61, 0x61, 0x65, 0x31, 0x66, 0x36,
|
||||
0x30, 0x0, 0x0, 0x30, 0x36, 0x21, 0x60, 0x30, 0x0, 0x60, 0x3, 0x12, 0x36, 0x3, 0x63, 0x0,
|
||||
0x0, 0x2, 0x3, 0x63, 0x32, 0x1, 0x36, 0x3, 0x62, 0x16, 0x13, 0x63, 0x63, 0x23, 0x21, 0x1,
|
||||
0x32, 0x0, 0x4, 0x0, 0x13, 0x10, 0x33, 0x12, 0x10, 0x36, 0x3, 0x23, 0x23, 0x33, 0x32, 0x33,
|
||||
0x33, 0x23, 0x0, 0x3, 0x0, 0x63, 0x20, 0x3, 0x23, 0x63, 0x23, 0x2, 0x30, 0x60, 0x3, 0x63,
|
||||
0x10, 0x66, 0x31, 0x61, 0x61, 0x66, 0x16, 0x16, 0x16, 0x11, 0x11, 0x11, 0x61, 0x15, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x16, 0x16, 0x31, 0x66, 0x13, 0x51, 0x36, 0x26, 0x31, 0x66, 0x32, 0x63,
|
||||
0x0, 0x0, 0x6, 0x6, 0x6, 0x13, 0x3, 0x60, 0x63, 0x0, 0x6, 0x33, 0x30, 0x32, 0x30, 0x63,
|
||||
0x23, 0x60, 0x6, 0x2, 0x63, 0x63, 0x20, 0x62, 0x61, 0x31, 0x2, 0x0, 0x26, 0x13, 0x13, 0x13,
|
||||
0x23, 0x6, 0x3, 0x1, 0x61, 0x3, 0x61, 0x36, 0x36, 0x36, 0x3, 0x33, 0x32, 0x32, 0x33, 0x32,
|
||||
0x23, 0x63, 0x60, 0x0, 0x0, 0x0, 0x36, 0x0, 0x32, 0x36, 0x32, 0x3, 0x60, 0x32, 0x0, 0x6,
|
||||
0x36, 0x31, 0x66, 0x31, 0x63, 0x16, 0x16, 0x16, 0x11, 0x16, 0x16, 0x11, 0x11, 0x61, 0x11, 0x61,
|
||||
0x11, 0x61, 0x61, 0x66, 0x31, 0x61, 0x16, 0x13, 0x61, 0x66, 0x13, 0x16, 0x16, 0x32, 0x63, 0x20,
|
||||
0x0, 0x6, 0x30, 0x3, 0x23, 0x63, 0x62, 0x13, 0x60, 0x36, 0x3, 0x60, 0x32, 0x33, 0x63, 0x3,
|
||||
0x0, 0x3, 0x63, 0x3, 0x0, 0x30, 0x36, 0x30, 0x30, 0x23, 0x61, 0x16, 0x13, 0x11, 0x16, 0x11,
|
||||
0x66, 0x3, 0x6, 0x1, 0x33, 0x60, 0x2, 0x13, 0x10, 0x23, 0x0, 0x12, 0x33, 0x23, 0x32, 0x33,
|
||||
0x36, 0x0, 0x0, 0x0, 0x0, 0x23, 0x60, 0x30, 0x63, 0x0, 0x3, 0x63, 0x0, 0x3, 0x3, 0x0,
|
||||
0x2, 0x63, 0x63, 0x56, 0x16, 0x13, 0x16, 0x16, 0x16, 0x11, 0x11, 0x16, 0x11, 0x11, 0x61, 0x11,
|
||||
0x61, 0x16, 0x13, 0x11, 0x16, 0x16, 0x13, 0x16, 0x12, 0x31, 0x62, 0x63, 0x63, 0x66, 0x30, 0x43,
|
||||
0x6, 0x0, 0x2, 0x31, 0x36, 0x32, 0x33, 0x13, 0x23, 0x63, 0x63, 0x3, 0x63, 0x0, 0x32, 0x36,
|
||||
0x3, 0x60, 0x0, 0x60, 0x63, 0x62, 0x36, 0x35, 0x11, 0x61, 0x11, 0x11, 0x16, 0x11, 0x61, 0x13,
|
||||
0x13, 0x6, 0x6, 0x36, 0x36, 0x30, 0x36, 0x32, 0x0, 0x36, 0x3, 0x33, 0x32, 0x33, 0x23, 0x32,
|
||||
0x23, 0x32, 0x30, 0x0, 0x0, 0x0, 0x0, 0x3, 0x6, 0x32, 0x0, 0x2, 0x36, 0x32, 0x6, 0x0,
|
||||
0x3, 0x60, 0x15, 0x31, 0x36, 0x55, 0x31, 0x61, 0x61, 0x16, 0x16, 0x11, 0x61, 0x61, 0x16, 0x16,
|
||||
0x16, 0x16, 0x15, 0x31, 0x62, 0x13, 0x61, 0x61, 0x36, 0x16, 0x31, 0x61, 0x62, 0x36, 0x3, 0x60,
|
||||
0x0, 0x0, 0x36, 0x13, 0x23, 0x63, 0x6, 0x36, 0x6, 0x36, 0x6, 0x32, 0x33, 0x23, 0x63, 0x3,
|
||||
0x60, 0x11, 0x11, 0x13, 0x0, 0x36, 0x2, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x21, 0x13, 0x11,
|
||||
0x61, 0x6, 0x36, 0x0, 0x0, 0x0, 0x63, 0x43, 0x0, 0x63, 0x6, 0x32, 0x33, 0x23, 0x32, 0x33,
|
||||
0x36, 0x20, 0x60, 0x6, 0x0, 0x63, 0x0, 0x60, 0x20, 0x0, 0x36, 0x30, 0x2, 0x6, 0x30, 0x0,
|
||||
0x0, 0x0, 0x3, 0x66, 0x26, 0x31, 0x61, 0x21, 0x61, 0x61, 0x11, 0x11, 0x11, 0x11, 0x61, 0x16,
|
||||
0x13, 0x11, 0x36, 0x16, 0x11, 0x61, 0x16, 0x31, 0x61, 0x62, 0x66, 0x36, 0x33, 0x60, 0x36, 0x23,
|
||||
0x60, 0x36, 0x1, 0x30, 0x60, 0x60, 0x23, 0x6, 0x36, 0x63, 0x63, 0x63, 0x60, 0x36, 0x36, 0x6,
|
||||
0x32, 0x11, 0x11, 0x10, 0x60, 0x62, 0x36, 0x11, 0x16, 0x11, 0x11, 0x11, 0x16, 0x11, 0x11, 0x16,
|
||||
0x12, 0x63, 0x66, 0x36, 0x6, 0x0, 0x0, 0x0, 0x0, 0x36, 0x3, 0x23, 0x13, 0x33, 0x23, 0x32,
|
||||
0x63, 0x36, 0x30, 0x3, 0x3, 0x0, 0x60, 0x0, 0x30, 0x0, 0x0, 0x6, 0x0, 0x0, 0x20, 0x36,
|
||||
0x0, 0x0, 0x0, 0x3, 0x63, 0x62, 0x63, 0x61, 0x31, 0x61, 0x61, 0x61, 0x61, 0x61, 0x16, 0x16,
|
||||
0x11, 0x66, 0x11, 0x61, 0x36, 0x13, 0x61, 0x26, 0x13, 0x63, 0x13, 0x60, 0x20, 0x36, 0x26, 0x36,
|
||||
0x6, 0x3, 0x2, 0x6, 0x32, 0x36, 0x36, 0x63, 0x63, 0x63, 0x53, 0x63, 0x13, 0x63, 0x63, 0x30,
|
||||
0x36, 0x11, 0x11, 0x13, 0x20, 0x31, 0x3, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x61, 0x16, 0x11,
|
||||
0x11, 0x16, 0x1, 0x6, 0x36, 0x36, 0x6, 0x30, 0x40, 0x1, 0x0, 0x33, 0x32, 0x0, 0x32, 0x33,
|
||||
0x32, 0x3, 0x20, 0x63, 0x26, 0x32, 0x30, 0x36, 0x0, 0x63, 0x2, 0x30, 0x3, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x63, 0x63, 0x61, 0x63, 0x56, 0x31, 0x61, 0x61, 0x16, 0x16, 0x31, 0x31,
|
||||
0x36, 0x13, 0x10, 0x16, 0x16, 0x35, 0x13, 0x63, 0x66, 0x13, 0x60, 0x23, 0x6, 0x0, 0x36, 0x32,
|
||||
0x3, 0x6, 0x6, 0x36, 0x36, 0x36, 0x62, 0x35, 0x6, 0x66, 0x63, 0x63, 0x63, 0x63, 0x23, 0x63,
|
||||
0x61, 0x11, 0x11, 0x16, 0x36, 0x6, 0x1, 0x61, 0x11, 0x61, 0x11, 0x11, 0x16, 0x11, 0x11, 0x16,
|
||||
0x13, 0x66, 0x16, 0x36, 0x31, 0x0, 0x3, 0x63, 0x63, 0x1, 0x3, 0x12, 0x30, 0x0, 0x33, 0x23,
|
||||
0x3, 0x60, 0x3, 0x6, 0x32, 0x36, 0x6, 0x32, 0x3, 0x26, 0x0, 0x0, 0x60, 0x0, 0x30, 0x0,
|
||||
0x0, 0x0, 0x6, 0x0, 0x2, 0x36, 0x3, 0x66, 0x36, 0x50, 0x10, 0x13, 0x61, 0x36, 0x16, 0x16,
|
||||
0x53, 0x26, 0x61, 0x32, 0x36, 0x16, 0x36, 0x66, 0x23, 0x60, 0x10, 0x36, 0x3, 0x65, 0x30, 0x63,
|
||||
0x6, 0x32, 0x30, 0x16, 0x16, 0x61, 0x36, 0x61, 0x63, 0x63, 0x66, 0x13, 0x61, 0x31, 0x63, 0x26,
|
||||
0x36, 0x11, 0x11, 0x11, 0x0, 0x31, 0x60, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x26, 0x36, 0x60, 0x16, 0x36, 0x6, 0x32, 0x36, 0x36, 0x0, 0x33, 0x3, 0x60, 0x0, 0x33,
|
||||
0x0, 0x30, 0x60, 0x3, 0x0, 0x63, 0x23, 0x3, 0x6, 0x13, 0x3, 0x60, 0x30, 0x60, 0x60, 0x36,
|
||||
0x36, 0x30, 0x63, 0x0, 0x30, 0x60, 0x32, 0x3, 0x63, 0x23, 0x63, 0x66, 0x23, 0x51, 0x6, 0x31,
|
||||
0x61, 0x61, 0x36, 0x66, 0x16, 0x32, 0x63, 0x23, 0x36, 0x32, 0x30, 0x63, 0x26, 0x36, 0x6, 0x30,
|
||||
0x60, 0x6, 0x35, 0x16, 0x31, 0x61, 0x61, 0x61, 0x35, 0x61, 0x66, 0x35, 0x13, 0x66, 0x31, 0x63,
|
||||
0x16, 0x11, 0x11, 0x16, 0x6, 0x2, 0x36, 0x11, 0x61, 0x11, 0x11, 0x11, 0x16, 0x21, 0x61, 0x16,
|
||||
0x11, 0x61, 0x66, 0x36, 0x13, 0x10, 0x31, 0x21, 0x32, 0x36, 0x30, 0x23, 0x0, 0x3, 0x63, 0x26,
|
||||
0x6, 0x0, 0x30, 0x0, 0x60, 0x30, 0x0, 0x63, 0x23, 0x1, 0x2, 0x0, 0x0, 0x3, 0x6, 0x0,
|
||||
0x2, 0x63, 0x0, 0x0, 0x60, 0x6, 0x4, 0x2, 0x6, 0x36, 0x6, 0x3, 0x60, 0x6, 0x31, 0x6,
|
||||
0x3, 0x63, 0x60, 0x36, 0x32, 0x63, 0x6, 0x36, 0x23, 0x63, 0x53, 0x66, 0x36, 0x36, 0x30, 0x63,
|
||||
0x6, 0x30, 0x6, 0x11, 0x61, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x61, 0x61, 0x66, 0x16,
|
||||
0x31, 0x11, 0x11, 0x16, 0x30, 0x34, 0x23, 0x63, 0x12, 0x16, 0x11, 0x61, 0x61, 0x31, 0x61, 0x21,
|
||||
0x61, 0x36, 0x36, 0x63, 0x1, 0x36, 0x3, 0x13, 0x11, 0x3, 0x60, 0x31, 0x60, 0x0, 0x3, 0x33,
|
||||
0x0, 0x2, 0x0, 0x60, 0x3, 0x60, 0x30, 0x36, 0x30, 0x63, 0x3, 0x0, 0x30, 0x20, 0x3, 0x0,
|
||||
0x36, 0x30, 0x60, 0x63, 0x23, 0x63, 0x2, 0x36, 0x30, 0x6, 0x30, 0x23, 0x0, 0x30, 0x0, 0x0,
|
||||
0x0, 0x0, 0x3, 0x60, 0x6, 0x36, 0x32, 0x30, 0x36, 0x36, 0x61, 0x63, 0x16, 0x23, 0x60, 0x20,
|
||||
0x63, 0x6, 0x31, 0x11, 0x11, 0x61, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x36,
|
||||
0x66, 0x11, 0x11, 0x16, 0x0, 0x60, 0x36, 0x21, 0x61, 0x11, 0x16, 0x11, 0x11, 0x61, 0x12, 0x13,
|
||||
0x12, 0x66, 0x66, 0x36, 0x61, 0x36, 0x6, 0x31, 0x13, 0x1, 0x0, 0x32, 0x30, 0x3, 0x6, 0x23,
|
||||
0x32, 0x3, 0x60, 0x3, 0x20, 0x30, 0x60, 0x23, 0x62, 0x31, 0x66, 0x36, 0x4, 0x36, 0x6, 0x6,
|
||||
0x0, 0x63, 0x63, 0x61, 0x0, 0x30, 0x63, 0x60, 0x6, 0x30, 0x63, 0x60, 0x0, 0x60, 0x0, 0x0,
|
||||
0x0, 0x3, 0x60, 0x6, 0x30, 0x23, 0x63, 0x66, 0x30, 0x23, 0x61, 0x26, 0x11, 0x42, 0x63, 0x32,
|
||||
0x36, 0x32, 0x60, 0x11, 0x61, 0x11, 0x31, 0x61, 0x66, 0x16, 0x16, 0x16, 0x31, 0x63, 0x16, 0x13,
|
||||
0x16, 0x11, 0x11, 0x13, 0x60, 0x1, 0x66, 0x31, 0x16, 0x11, 0x11, 0x11, 0x11, 0x16, 0x11, 0x11,
|
||||
0x11, 0x60, 0x36, 0x63, 0x23, 0x60, 0x3, 0x26, 0x31, 0x3, 0x60, 0x3, 0x0, 0x0, 0x0, 0x3,
|
||||
0x6, 0x36, 0x30, 0x63, 0x63, 0x60, 0x36, 0x36, 0x3, 0x10, 0x30, 0x60, 0x63, 0x60, 0x63, 0x66,
|
||||
0x61, 0x66, 0x16, 0x10, 0x6, 0x6, 0x30, 0x3, 0x63, 0x20, 0x32, 0x0, 0x6, 0x30, 0x0, 0x0,
|
||||
0x0, 0x6, 0x3, 0x3, 0x0, 0x61, 0x26, 0x32, 0x61, 0x36, 0x13, 0x63, 0x30, 0x36, 0x36, 0x3,
|
||||
0x60, 0x36, 0x31, 0x16, 0x16, 0x66, 0x66, 0x36, 0x63, 0x66, 0x63, 0x66, 0x16, 0x31, 0x63, 0x61,
|
||||
0x63, 0x11, 0x11, 0x16, 0x30, 0x36, 0x33, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x11, 0x16, 0x16,
|
||||
0x13, 0x63, 0x60, 0x36, 0x36, 0x36, 0x36, 0x33, 0x63, 0x6, 0x30, 0x60, 0x0, 0x6, 0x30, 0x6,
|
||||
0x36, 0x30, 0x6, 0x36, 0x6, 0x36, 0x63, 0x63, 0x66, 0x66, 0x61, 0x61, 0x66, 0x61, 0x65, 0x31,
|
||||
0x66, 0x15, 0x61, 0x60, 0x36, 0x36, 0x23, 0x62, 0x0, 0x6, 0x36, 0x0, 0x0, 0x6, 0x0, 0x0,
|
||||
0x0, 0x3, 0x0, 0x60, 0x60, 0x36, 0x11, 0x11, 0x16, 0x13, 0x26, 0x36, 0x65, 0x36, 0x32, 0x36,
|
||||
0x32, 0x32, 0x6, 0x11, 0x61, 0x32, 0x36, 0x63, 0x66, 0x13, 0x66, 0x13, 0x61, 0x63, 0x61, 0x63,
|
||||
0x66, 0x11, 0x11, 0x16, 0x60, 0x2, 0x60, 0x6, 0x63, 0x66, 0x11, 0x66, 0x11, 0x16, 0x13, 0x13,
|
||||
0x61, 0x26, 0x6, 0x60, 0x1, 0x36, 0x0, 0x66, 0x36, 0x3, 0x60, 0x36, 0x0, 0x30, 0x63, 0x3,
|
||||
0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x16, 0x31, 0x66, 0x16, 0x61, 0x66, 0x66, 0x66,
|
||||
0x61, 0x66, 0x66, 0x30, 0x63, 0x2, 0x34, 0x3, 0x63, 0x63, 0x60, 0x3, 0x0, 0x60, 0x0, 0x0,
|
||||
0x0, 0x60, 0x2, 0x30, 0x23, 0x0, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x12, 0x63, 0x63,
|
||||
0x60, 0x63, 0x63, 0x56, 0x36, 0x63, 0x63, 0x26, 0x36, 0x36, 0x13, 0x66, 0x13, 0x61, 0x36, 0x36,
|
||||
0x31, 0x66, 0x61, 0x63, 0x0, 0x63, 0x3, 0x63, 0x26, 0x63, 0x66, 0x31, 0x60, 0x63, 0x66, 0x66,
|
||||
0x3, 0x43, 0x0, 0x36, 0x6, 0x30, 0x0, 0x33, 0x0, 0x6, 0x30, 0x3, 0x6, 0x0, 0x30, 0x63,
|
||||
0x66, 0x66, 0x16, 0x66, 0x16, 0x66, 0x66, 0x66, 0x66, 0x66, 0x16, 0x66, 0x16, 0x16, 0x61, 0x61,
|
||||
0x66, 0x66, 0x36, 0x66, 0x51, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x60, 0x3, 0x60, 0x0,
|
||||
0x3, 0x0, 0x30, 0x6, 0x36, 0x30, 0x61, 0x66, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12,
|
||||
0x16, 0x16, 0x36, 0x3, 0x63, 0x6, 0x36, 0x36, 0x3, 0x60, 0x0, 0x63, 0x6, 0x36, 0x36, 0x32,
|
||||
0x63, 0x63, 0x63, 0x62, 0x63, 0x0, 0x42, 0x6, 0x36, 0x36, 0x26, 0x60, 0x61, 0x66, 0x63, 0x63,
|
||||
0x60, 0x6, 0x6, 0x4, 0x30, 0x6, 0x6, 0x6, 0x36, 0x3, 0x60, 0x60, 0x3, 0x0, 0x63, 0x0,
|
||||
0x66, 0x36, 0x66, 0x36, 0x66, 0x66, 0x31, 0x66, 0x66, 0x16, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
|
||||
0x63, 0x63, 0x61, 0x11, 0x56, 0x3, 0x63, 0x63, 0x60, 0x6, 0x3, 0x20, 0x63, 0x0, 0x0, 0x60,
|
||||
0x0, 0x6, 0x6, 0x36, 0x0, 0x66, 0x36, 0x11, 0x36, 0x66, 0x61, 0x61, 0x15, 0x16, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x26, 0x13, 0x20, 0x30, 0x36, 0x3, 0x60, 0x36, 0x32, 0x6, 0x32, 0x6,
|
||||
0x36, 0x60, 0x60, 0x63, 0x0, 0x6, 0x30, 0x30, 0x0, 0x60, 0x36, 0x36, 0x63, 0x66, 0x36, 0x60,
|
||||
0x60, 0x0, 0x0, 0x36, 0x36, 0x36, 0x36, 0x31, 0x1, 0x36, 0x3, 0x0, 0x0, 0x60, 0x0, 0x23,
|
||||
0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x63,
|
||||
0x60, 0x0, 0x16, 0x50, 0x63, 0x2, 0x0, 0x23, 0x63, 0x20, 0x36, 0x32, 0x36, 0x36, 0x0, 0x0,
|
||||
0x6, 0x0, 0x0, 0x0, 0x30, 0x32, 0x60, 0x1, 0x11, 0x11, 0x36, 0x36, 0x11, 0x11, 0x11, 0x66,
|
||||
0x61, 0x61, 0x11, 0x11, 0x11, 0x16, 0x16, 0x66, 0x26, 0x6, 0x36, 0x60, 0x6, 0x30, 0x60, 0x30,
|
||||
0x3, 0x60, 0x63, 0x66, 0x60, 0x0, 0x0, 0x60, 0x60, 0x3, 0x62, 0x63, 0x66, 0x36, 0x60, 0x60,
|
||||
0x30, 0x60, 0x6, 0x3, 0x63, 0x11, 0x31, 0x21, 0x31, 0x31, 0x6, 0x0, 0x0, 0x3, 0x63, 0x0,
|
||||
0x66, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x61, 0x31, 0x31, 0x31, 0x36,
|
||||
0x30, 0x36, 0x26, 0x3, 0x0, 0x63, 0x63, 0x60, 0x2, 0x36, 0x36, 0x6, 0x36, 0x30, 0x0, 0x0,
|
||||
0x0, 0x30, 0x6, 0x35, 0x62, 0x3, 0x3, 0x6, 0x11, 0x11, 0x11, 0x11, 0x16, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x61, 0x11, 0x11, 0x11, 0x11, 0x13, 0x13, 0x10, 0x23, 0x32, 0x63, 0x62, 0x36, 0x36,
|
||||
0x6, 0x3, 0x60, 0x0, 0x3, 0x6, 0x36, 0x30, 0x63, 0x66, 0x3, 0x60, 0x60, 0x60, 0x60, 0x63,
|
||||
0x60, 0x0, 0x0, 0x6, 0x6, 0x30, 0x36, 0x33, 0x6, 0x30, 0x0, 0x6, 0x30, 0x60, 0x0, 0x60,
|
||||
0x66, 0x66, 0x66, 0x66, 0x66, 0x61, 0x66, 0x36, 0x16, 0x66, 0x13, 0x13, 0x66, 0x36, 0x36, 0x30,
|
||||
0x60, 0x63, 0x3, 0x6, 0x36, 0x3, 0x20, 0x63, 0x63, 0x60, 0x23, 0x63, 0x23, 0x60, 0x0, 0x0,
|
||||
0x0, 0x60, 0x36, 0x16, 0x61, 0x66, 0x2, 0x30, 0x1, 0x11, 0x11, 0x11, 0x11, 0x61, 0x61, 0x61,
|
||||
0x11, 0x11, 0x11, 0x51, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x15, 0x13, 0x13, 0x63, 0x60, 0x63,
|
||||
0x63, 0x60, 0x3, 0x60, 0x60, 0x30, 0x60, 0x2, 0x6, 0x23, 0x66, 0x6, 0x36, 0x6, 0x36, 0x0,
|
||||
0x0, 0x6, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x60, 0x3, 0x0, 0x63, 0x0, 0x0, 0x30,
|
||||
0x66, 0x66, 0x63, 0x66, 0x66, 0x36, 0x61, 0x61, 0x36, 0x31, 0x36, 0x36, 0x13, 0x61, 0x36, 0x0,
|
||||
0x30, 0x36, 0x6, 0x2, 0x3, 0x24, 0x3, 0x60, 0x36, 0x33, 0x63, 0x6, 0x36, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x61, 0x0, 0x10, 0x16, 0x63, 0x0, 0x61, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16,
|
||||
0x16, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x26,
|
||||
0x36, 0x32, 0x36, 0x3, 0x60, 0x62, 0x36, 0x31, 0x61, 0x36, 0x21, 0x35, 0x26, 0x32, 0x6, 0x36,
|
||||
0x6, 0x30, 0x36, 0x30, 0x60, 0x6, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x32, 0x63, 0x60, 0x26,
|
||||
0x63, 0x66, 0x66, 0x66, 0x36, 0x66, 0x36, 0x36, 0x36, 0x36, 0x31, 0x63, 0x36, 0x31, 0x3, 0x63,
|
||||
0x26, 0x3, 0x3, 0x63, 0x6, 0x3, 0x60, 0x36, 0x0, 0x60, 0x6, 0x30, 0x6, 0x30, 0x60, 0x0,
|
||||
0x3, 0x0, 0x1, 0x66, 0x66, 0x1, 0x60, 0x60, 0x1, 0x11, 0x61, 0x66, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x61, 0x66, 0x16, 0x16, 0x11, 0x11, 0x11, 0x15, 0x16, 0x16, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x63, 0x66, 0x32, 0x36, 0x32, 0x66, 0x30, 0x13, 0x60, 0x16, 0x36, 0x36, 0x30, 0x23,
|
||||
0x63, 0x6, 0x0, 0x63, 0x0, 0x3, 0x6, 0x0, 0x3, 0x0, 0x60, 0x60, 0x63, 0x0, 0x36, 0x30,
|
||||
0x66, 0x63, 0x63, 0x13, 0x61, 0x33, 0x13, 0x63, 0x61, 0x36, 0x36, 0x36, 0x61, 0x36, 0x6, 0x6,
|
||||
0x30, 0x6, 0x20, 0x6, 0x3, 0x6, 0x26, 0x61, 0x26, 0x16, 0x63, 0x26, 0x32, 0x0, 0x0, 0x0,
|
||||
0x0, 0x60, 0x66, 0x6, 0x32, 0x66, 0x3, 0x3, 0x0, 0x11, 0x11, 0x11, 0x66, 0x61, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x16, 0x16, 0x66, 0x16, 0x11, 0x11, 0x11, 0x11, 0x16, 0x16, 0x61, 0x61,
|
||||
0x11, 0x11, 0x11, 0x11, 0x16, 0x61, 0x63, 0x63, 0x66, 0x36, 0x31, 0x30, 0x10, 0x10, 0x16, 0x36,
|
||||
0x32, 0x63, 0x23, 0x60, 0x63, 0x60, 0x3, 0x6, 0x36, 0x6, 0x30, 0x30, 0x0, 0x60, 0x0, 0x36,
|
||||
0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x66, 0x36, 0x36, 0x32, 0x60, 0x13, 0x63, 0x60, 0x30, 0x36,
|
||||
0x6, 0x30, 0x36, 0x3, 0x66, 0x61, 0x61, 0x66, 0x16, 0x61, 0x56, 0x30, 0x36, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x16, 0x32, 0x66, 0x1, 0x0, 0x6, 0x0, 0x11, 0x11, 0x11, 0x11, 0x13, 0x60, 0x16,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x61, 0x66, 0x66, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16,
|
||||
0x66, 0x66, 0x15, 0x11, 0x11, 0x11, 0x11, 0x12, 0x11, 0x62, 0x60, 0x66, 0x32, 0x36, 0x33, 0x63,
|
||||
0x63, 0x13, 0x63, 0x23, 0x62, 0x31, 0x36, 0x23, 0x63, 0x23, 0x60, 0x63, 0x23, 0x3, 0x60, 0x20,
|
||||
0x63, 0x16, 0x36, 0x36, 0x23, 0x61, 0x3, 0x13, 0x63, 0x63, 0x63, 0x63, 0x26, 0x30, 0x20, 0x63,
|
||||
0x2, 0x36, 0x6, 0x36, 0x51, 0x66, 0x16, 0x56, 0x61, 0x66, 0x30, 0x6, 0x3, 0x0, 0x60, 0x0,
|
||||
0x0, 0x0, 0x62, 0x66, 0x36, 0x62, 0x6, 0x3, 0x0, 0x61, 0x11, 0x11, 0x11, 0x11, 0x16, 0x63,
|
||||
0x66, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x31, 0x66, 0x61, 0x61, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x61, 0x66, 0x66, 0x16, 0x16, 0x11, 0x11, 0x11, 0x11, 0x13, 0x66, 0x36, 0x26, 0x23,
|
||||
0x62, 0x36, 0x31, 0x31, 0x31, 0x6, 0x23, 0x13, 0x23, 0x63, 0x23, 0x63, 0x60, 0x26, 0x32, 0x36,
|
||||
0x36, 0x1, 0x36, 0x13, 0x66, 0x30, 0x10, 0x63, 0x26, 0x36, 0x36, 0x36, 0x30, 0x3, 0x63, 0x63,
|
||||
0x60, 0x63, 0x20, 0x0, 0x16, 0x16, 0x66, 0x36, 0x0, 0x30, 0x63, 0x63, 0x26, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x36, 0x36, 0x26, 0x36, 0x3, 0x0, 0x6, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x15,
|
||||
0x32, 0x30, 0x63, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x63, 0x66, 0x36, 0x16, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x66, 0x16, 0x66, 0x16, 0x16, 0x11, 0x11, 0x11, 0x11, 0x31, 0x61,
|
||||
0x36, 0x11, 0x61, 0x62, 0x63, 0x13, 0x13, 0x63, 0x61, 0x36, 0x31, 0x32, 0x31, 0x33, 0x63, 0x63,
|
||||
0x63, 0x63, 0x62, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x31, 0x6, 0x36, 0x6, 0x30, 0x6,
|
||||
0x3, 0x60, 0x6, 0x36, 0x20, 0x0, 0x30, 0x3, 0x2, 0x6, 0x30, 0x3, 0x63, 0x0, 0x0, 0x0,
|
||||
0x0, 0x3, 0x0, 0x16, 0x36, 0x0, 0x0, 0x60, 0x30, 0x21, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x16, 0x61, 0x66, 0x63, 0x66, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x63, 0x63, 0x66,
|
||||
0x61, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x16, 0x36, 0x63, 0x66, 0x16, 0x15, 0x11, 0x11,
|
||||
0x51, 0x11, 0x13, 0x11, 0x31, 0x23, 0x10, 0x13, 0x23, 0x13, 0x10, 0x13, 0x63, 0x61, 0x32, 0x31,
|
||||
0x63, 0x13, 0x63, 0x63, 0x63, 0x26, 0x36, 0x36, 0x36, 0x1, 0x6, 0x30, 0x23, 0x3, 0x6, 0x23,
|
||||
0x60, 0x30, 0x36, 0x0, 0x36, 0x30, 0x23, 0x26, 0x36, 0x30, 0x23, 0x60, 0x6, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x60, 0x6, 0x60, 0x3, 0x63, 0x6, 0x6, 0x6, 0x61, 0x61, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x16, 0x13, 0x66, 0x32, 0x36, 0x36, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x31,
|
||||
0x3, 0x60, 0x60, 0x61, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16, 0x16, 0x36, 0x63, 0x66, 0x61,
|
||||
0x16, 0x16, 0x11, 0x61, 0x11, 0x11, 0x11, 0x11, 0x61, 0x62, 0x13, 0x63, 0x13, 0x23, 0x16, 0x36,
|
||||
0x63, 0x60, 0x63, 0x63, 0x63, 0x63, 0x62, 0x36, 0x32, 0x36, 0x36, 0x6, 0x30, 0x62, 0x3, 0x0,
|
||||
0x63, 0x20, 0x60, 0x36, 0x3, 0x60, 0x60, 0x3, 0x60, 0x6, 0x36, 0x3, 0x23, 0x6, 0x63, 0x66,
|
||||
0x6, 0x6, 0x30, 0x3, 0x0, 0x36, 0x26, 0x3, 0x1, 0x1, 0x61, 0x61, 0x61, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x63, 0x66, 0x63, 0x62, 0x36, 0x66, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x16,
|
||||
0x61, 0x63, 0x13, 0x63, 0x63, 0x66, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x51, 0x61, 0x63, 0x63,
|
||||
0x61, 0x61, 0x61, 0x16, 0x61, 0x66, 0x16, 0x31, 0x13, 0x13, 0x16, 0x12, 0x61, 0x36, 0x23, 0x13,
|
||||
0x32, 0x36, 0x32, 0x63, 0x26, 0x31, 0x36, 0x23, 0x63, 0x63, 0x6, 0x15, 0x60, 0x36, 0x6, 0x63,
|
||||
0x6, 0x0, 0x2, 0x3, 0x2, 0x3, 0x63, 0x60, 0x6, 0x36, 0x0, 0x63, 0x60, 0x63, 0x65, 0x2,
|
||||
0x61, 0x60, 0x63, 0x60, 0x6, 0x0, 0x2, 0x60, 0x6, 0x1, 0x66, 0x16, 0x16, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x13, 0x66, 0x36, 0x63, 0x63, 0x6, 0x61, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x16, 0x61, 0x66, 0x26, 0x36, 0x36, 0x36, 0x66, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x61,
|
||||
0x66, 0x36, 0x30, 0x61, 0x36, 0x11, 0x61, 0x16, 0x16, 0x11, 0x61, 0x61, 0x36, 0x13, 0x11, 0x36,
|
||||
0x63, 0x63, 0x10, 0x36, 0x63, 0x10, 0x63, 0x36, 0x36, 0x32, 0x63, 0x50, 0x30, 0x63, 0x3, 0x2,
|
||||
0x3, 0x0, 0x0, 0x6, 0x6, 0x36, 0x0, 0x63, 0x63, 0x2, 0x36, 0x30, 0x6, 0x0, 0x0, 0x3,
|
||||
0x0, 0x0, 0x0, 0x0, 0x30, 0x35, 0x30, 0x63, 0x61, 0x6, 0x11, 0x66, 0x16, 0x16, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x15, 0x11, 0x63, 0x66, 0x32, 0x63, 0x20, 0x61, 0x61, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x12, 0x13, 0x16, 0x16, 0x26, 0x36, 0x36, 0x35, 0x66, 0x16, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x11, 0x61, 0x63, 0x66, 0x36, 0x36, 0x61, 0x61, 0x61, 0x61, 0x31, 0x61, 0x61, 0x63, 0x51,
|
||||
0x26, 0x36, 0x36, 0x13, 0x16, 0x36, 0x36, 0x60, 0x23, 0x63, 0x1, 0x60, 0x63, 0x2, 0x66, 0x3,
|
||||
0x60, 0x6, 0x3, 0x0, 0x30, 0x0, 0x63, 0x2, 0x6, 0x36, 0x0, 0x63, 0x23, 0x6, 0x0, 0x0,
|
||||
0x0, 0x6, 0x30, 0x36, 0x6, 0x0, 0x63, 0x62, 0x6, 0x10, 0x16, 0x11, 0x66, 0x16, 0x16, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x36, 0x63, 0x66, 0x36, 0x0, 0x36, 0x16, 0x11, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x16, 0x16, 0x31, 0x61, 0x61, 0x1, 0x36, 0x1, 0x66, 0x16, 0x15, 0x11,
|
||||
0x11, 0x11, 0x11, 0x11, 0x11, 0x66, 0x16, 0x36, 0x36, 0x36, 0x31, 0x61, 0x61, 0x36, 0x11, 0x36,
|
||||
};
|
28
Arduino/epd5in65f/imagedata.h
Normal file
28
Arduino/epd5in65f/imagedata.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* @filename : imagedata.h
|
||||
* @brief : head file for imagedata.cpp
|
||||
*
|
||||
* Copyright (C) Waveshare July 8 2020
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
//gImage_5in65f: 192*143
|
||||
extern const unsigned char gImage_5in65f[];
|
||||
|
||||
/* FILE END */
|
215
Arduino/epd5in83b_V2/epd5in83b_V2.cpp
Normal file
215
Arduino/epd5in83b_V2/epd5in83b_V2.cpp
Normal file
|
@ -0,0 +1,215 @@
|
|||
/**
|
||||
* @filename : epd5in83b_V2.cpp
|
||||
* @brief : Implements for e-paper library
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 4 2020
|
||||
*
|
||||
* 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 "epd5in83b_V2.h"
|
||||
#include "imagedata.h"
|
||||
|
||||
Epd::~Epd() {
|
||||
};
|
||||
|
||||
Epd::Epd() {
|
||||
reset_pin = RST_PIN;
|
||||
dc_pin = DC_PIN;
|
||||
cs_pin = CS_PIN;
|
||||
busy_pin = BUSY_PIN;
|
||||
width = EPD_WIDTH / 8;
|
||||
height = EPD_HEIGHT;
|
||||
};
|
||||
|
||||
int Epd::Init(void) {
|
||||
if (IfInit() != 0) {
|
||||
return -1;
|
||||
}
|
||||
Reset();
|
||||
|
||||
SendCommand(0x01); //POWER SETTING
|
||||
SendData (0x07);
|
||||
SendData (0x07); //VGH=20V,VGL=-20V
|
||||
SendData (0x3f); //VDH=15V
|
||||
SendData (0x3f); //VDL=-15V
|
||||
|
||||
SendCommand(0x04); //POWER ON
|
||||
DelayMs(100);
|
||||
WaitUntilIdle(); //waiting for the electronic paper IC to release the idle signal
|
||||
|
||||
SendCommand(0X00); //PANNEL SETTING
|
||||
SendData(0x0F); //KW-3f KWR-2F BWROTP 0f BWOTP 1f
|
||||
|
||||
SendCommand(0x61); //tres
|
||||
SendData (0x02); //source 648
|
||||
SendData (0x88);
|
||||
SendData (0x01); //gate 480
|
||||
SendData (0xe0);
|
||||
|
||||
SendCommand(0X15);
|
||||
SendData(0x00);
|
||||
|
||||
SendCommand(0X50); //VCOM AND DATA INTERVAL SETTING
|
||||
SendData(0x11);
|
||||
SendData(0x07);
|
||||
|
||||
SendCommand(0X60); //TCON SETTING
|
||||
SendData(0x22);
|
||||
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::WaitUntilIdle(void) {
|
||||
Serial.print("e-Paper busy \r\n ");
|
||||
UBYTE busy;
|
||||
do
|
||||
{
|
||||
SendCommand(0x71);
|
||||
busy = DigitalRead(busy_pin);
|
||||
busy =!(busy & 0x01);
|
||||
}
|
||||
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, LOW); //module reset
|
||||
DelayMs(1);
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
DelayMs(200);
|
||||
}
|
||||
|
||||
void Epd::DisplayFrame(const UBYTE *blackimage, const UBYTE *ryimage) {
|
||||
SendCommand(0x10);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&blackimage[i + (j*width)]));
|
||||
}
|
||||
}
|
||||
SendCommand(0x13);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&ryimage[i + (j*width)]));
|
||||
}
|
||||
}
|
||||
SendCommand(0x12);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
void Epd::DisplayPicture(const UBYTE *blackimage, UBYTE Block)
|
||||
{
|
||||
UDOUBLE i, j;
|
||||
if(Block == 0){
|
||||
SendCommand(0x10);
|
||||
for (j = 0; j < height/2; j++) {
|
||||
for (i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&blackimage[i + j * width]));
|
||||
}
|
||||
}
|
||||
|
||||
}else if(Block == 1){
|
||||
for (j = 0; j < height/2; j++) {
|
||||
for (i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&blackimage[i + j * width]));
|
||||
}
|
||||
}
|
||||
}else if(Block == 2){
|
||||
SendCommand(0x13);
|
||||
for (j = 0; j < height/2; j++) {
|
||||
for (i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&blackimage[i + j * width]));
|
||||
}
|
||||
}
|
||||
}else if(Block == 3){
|
||||
for (j = 0; j < height/2; j++) {
|
||||
for (i = 0; i < width; i++) {
|
||||
SendData(pgm_read_byte(&blackimage[i + j * width]));
|
||||
}
|
||||
}
|
||||
SendCommand(0x12);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
}
|
||||
|
||||
void Epd::Clear(void) {
|
||||
//send black data
|
||||
SendCommand(0x10);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(0xff);
|
||||
}
|
||||
}
|
||||
|
||||
//send red data
|
||||
SendCommand(0x13);
|
||||
for (UWORD j = 0; j < height; j++) {
|
||||
for (UWORD i = 0; i < width; i++) {
|
||||
SendData(0x00);
|
||||
}
|
||||
}
|
||||
|
||||
SendCommand(0x12);
|
||||
WaitUntilIdle();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
* The deep sleep mode would return to standby by hardware reset.
|
||||
* The only one parameter is a check code, the command would be
|
||||
* You can use EPD_Reset() to awaken
|
||||
*/
|
||||
void Epd::Sleep(void) {
|
||||
SendCommand(0x02); // POWER_OFF
|
||||
WaitUntilIdle();
|
||||
SendCommand(0x07); // DEEP_SLEEP
|
||||
SendData(0xA5); // check code
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* END OF FILE */
|
66
Arduino/epd5in83b_V2/epd5in83b_V2.h
Normal file
66
Arduino/epd5in83b_V2/epd5in83b_V2.h
Normal file
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
* @filename : epd5in83b_V2.h
|
||||
* @brief : Header file for e-paper library epd5in83b_V2.cpp
|
||||
* @author : Waveshare
|
||||
*
|
||||
* Copyright (C) Waveshare July 4 2020
|
||||
*
|
||||
* 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 EPD5IN83B_V2_H
|
||||
#define EPD5IN83B_V2_H
|
||||
|
||||
#include "epdif.h"
|
||||
|
||||
// Display resolution
|
||||
#define EPD_WIDTH 648
|
||||
#define EPD_HEIGHT 480
|
||||
|
||||
#define UWORD unsigned int
|
||||
#define UBYTE unsigned char
|
||||
#define UDOUBLE unsigned long
|
||||
|
||||
class Epd : EpdIf {
|
||||
public:
|
||||
Epd();
|
||||
~Epd();
|
||||
int Init(void);
|
||||
void WaitUntilIdle(void);
|
||||
void Reset(void);
|
||||
void SetLut(void);
|
||||
void DisplayFrame(const UBYTE *blackimage, const UBYTE *ryimage);
|
||||
void DisplayPicture(const UBYTE *blackimage, UBYTE Block);
|
||||
void SendCommand(unsigned char command);
|
||||
void SendData(unsigned char data);
|
||||
void Sleep(void);
|
||||
void Clear(void);
|
||||
|
||||
private:
|
||||
unsigned int reset_pin;
|
||||
unsigned int dc_pin;
|
||||
unsigned int cs_pin;
|
||||
unsigned int busy_pin;
|
||||
unsigned long width;
|
||||
unsigned long height;
|
||||
};
|
||||
|
||||
#endif /* EPD5IN83B_V2_H */
|
||||
|
||||
/* END OF FILE */
|
55
Arduino/epd5in83b_V2/epd5in83b_V2.ino
Normal file
55
Arduino/epd5in83b_V2/epd5in83b_V2.ino
Normal file
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
@filename : epd5in83b_V2-demo.ino
|
||||
@brief : 5.83inch e-paper B V2 display demo
|
||||
@author : Yehui from Waveshare
|
||||
|
||||
Copyright (C) Waveshare July 4 2020
|
||||
|
||||
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 "epd5in83b_V2.h"
|
||||
#include "imagedata.h"
|
||||
|
||||
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("e-Paper Clear\r\n ");
|
||||
epd.Clear();
|
||||
|
||||
Serial.print("draw image\r\n ");
|
||||
epd.DisplayPicture(IMAGE_DATA, 1);
|
||||
epd.DisplayPicture(IMAGE_DATA, 2);
|
||||
epd.DisplayPicture(IMAGE_DATA, 3);
|
||||
epd.DisplayPicture(IMAGE_DATA, 4);
|
||||
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// put your main code here, to run repeatedly:
|
||||
|
||||
}
|
65
Arduino/epd5in83b_V2/epdif.cpp
Normal file
65
Arduino/epd5in83b_V2/epdif.cpp
Normal file
|
@ -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
Arduino/epd5in83b_V2/epdif.h
Normal file
51
Arduino/epd5in83b_V2/epdif.h
Normal file
|
@ -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
|
1245
Arduino/epd5in83b_V2/imagedata.cpp
Normal file
1245
Arduino/epd5in83b_V2/imagedata.cpp
Normal file
File diff suppressed because it is too large
Load diff
28
Arduino/epd5in83b_V2/imagedata.h
Normal file
28
Arduino/epd5in83b_V2/imagedata.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* @filename : imagedata.h
|
||||
* @brief : head file for imagedata.cpp
|
||||
*
|
||||
* Copyright (C) Waveshare July 4 2020
|
||||
*
|
||||
* 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 */
|
|
@ -62,7 +62,7 @@ int Epd::Init(void) {
|
|||
WaitUntilIdle();
|
||||
|
||||
SendCommand(PLL_CONTROL);
|
||||
SendData(0x3c);
|
||||
SendData(0x3A);
|
||||
|
||||
SendCommand(TEMPERATURE_CALIBRATION);
|
||||
SendData(0x00);
|
||||
|
@ -163,6 +163,64 @@ void Epd::DisplayFrame(const unsigned char** image_data) {
|
|||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
void Epd::Clean(void) {
|
||||
SendCommand(DATA_START_TRANSMISSION_1);
|
||||
for (long i = 0; i < 122880; i++) {
|
||||
SendData(0x33);
|
||||
}
|
||||
SendCommand(DISPLAY_REFRESH);
|
||||
DelayMs(100);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
void Epd::DisplayOneQuarterFrame(const unsigned char* image_data) {
|
||||
unsigned char temp1, temp2;
|
||||
SendCommand(DATA_START_TRANSMISSION_1);
|
||||
|
||||
|
||||
for (long i = 0; i < 192; i++) {
|
||||
for (long k = 0; k < 80; k++) {
|
||||
temp1 = pgm_read_byte(image_data + i*80 + k);
|
||||
for (unsigned char j = 0; j < 4; j++) {
|
||||
if ((temp1 & 0xC0) == 0xC0) {
|
||||
temp2 = 0x03; // white
|
||||
} else if ((temp1 & 0xC0) == 0x00) {
|
||||
temp2 = 0x00; // black
|
||||
} else {
|
||||
temp2 = 0x04; // red
|
||||
}
|
||||
temp2 <<= 4;
|
||||
temp1 <<= 2;
|
||||
j++;
|
||||
if((temp1 & 0xC0) == 0xC0) {
|
||||
temp2 |= 0x03; // white
|
||||
} else if ((temp1 & 0xC0) == 0x00) {
|
||||
temp2 |= 0x00; // black
|
||||
} else {
|
||||
temp2 |= 0x04; // red
|
||||
}
|
||||
temp1 <<= 2;
|
||||
SendData(temp2);
|
||||
}
|
||||
}
|
||||
for (long k = 0; k < 160; k++) { // 1/4 show white
|
||||
SendData(0x33);
|
||||
}
|
||||
|
||||
}
|
||||
for (long i = 0; i < 192; i++) {
|
||||
for (long k = 0; k < 160; k++) { // 1/4 show red
|
||||
SendData(0x44);
|
||||
}
|
||||
for (long k = 0; k < 160; k++) { // 1/4 show black
|
||||
SendData(0x00);
|
||||
}
|
||||
}
|
||||
SendCommand(DISPLAY_REFRESH);
|
||||
DelayMs(100);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
|
|
|
@ -83,6 +83,8 @@ public:
|
|||
void WaitUntilIdle(void);
|
||||
void Reset(void);
|
||||
void DisplayFrame(const unsigned char** image_data);
|
||||
void DisplayOneQuarterFrame(const unsigned char* image_data);
|
||||
void Epd::Clean(void);
|
||||
void SendCommand(unsigned char command);
|
||||
void SendData(unsigned char data);
|
||||
void Sleep(void);
|
||||
|
|
|
@ -36,7 +36,8 @@ void setup() {
|
|||
Serial.print("e-Paper init failed");
|
||||
return;
|
||||
}
|
||||
epd.DisplayFrame(IMAGE_DATA);
|
||||
//epd.Clean();
|
||||
epd.DisplayOneQuarterFrame(IMAGE_DATA);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
*/
|
||||
|
||||
#include "epdif.h"
|
||||
#include <SPI.h>
|
||||
#include <spi.h>
|
||||
|
||||
EpdIf::EpdIf() {
|
||||
};
|
||||
|
@ -57,8 +57,10 @@ int EpdIf::IfInit(void) {
|
|||
pinMode(RST_PIN, OUTPUT);
|
||||
pinMode(DC_PIN, OUTPUT);
|
||||
pinMode(BUSY_PIN, INPUT);
|
||||
|
||||
SPI.begin();
|
||||
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#ifndef EPDIF_H
|
||||
#define EPDIF_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <arduino.h>
|
||||
|
||||
// Pin definition
|
||||
#define RST_PIN 8
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -22,9 +22,7 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
extern const unsigned char *IMAGE_DATA[2];
|
||||
extern const unsigned char IMAGE_DATA_1[];
|
||||
extern const unsigned char IMAGE_DATA_2[];
|
||||
extern const unsigned char IMAGE_DATA[];
|
||||
/* FILE END */
|
||||
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue