いろいろ、注意
- 過去ログを見よ!!!
- 過去の作品の焼き回し
- 3.2.0
- 適度に修正
const char *ssid = "ご自宅のSSID";
const char *password = "ご自宅のパスワード";
結果
プログラム
//秋月のOLEDとアイテンドウのOLEDのアドレスは3C
//ssd1306_BIG24x64_num12345_SNTP_XIAO_ESP32C6_1
//ヘッダー
#include <Arduino.h>
#include <Wire.h>
#include "h_furima1.h"
#include <WiFi.h>
#include <time.h>
//定義
#define MAX_PAGE (7)
#define MAX_COL (127)
#define COMMAND_MODE 0x80 // continuation bit is set!
#define DATA_MODE 0x40
#define SET_COLUMN_ADDRESS 0x21 // takes two bytes, start address and end address of display data RAM
#define SET_PAGE_ADDRESS 0x22 // takes two bytes, start address and end address of display data RAM
#define SET_MEMORY_ADDRESSING_MODE 0x20 // takes one byte as given above
#define HORIZONTAL_ADDRESSING_MODE 0x00
const char *ssid = "ご自宅のSSID";
const char *password = "ご自宅のパスワード";
//I2Cに配列を転送する
void write_s(uint8_t *str1, uint8_t len1) {
Wire.beginTransmission( 0x3c );
for (int ii = 0; ii < len1; ii++) {
//一文字出力
Wire.write(*str1 ++);
}//for
Wire.endTransmission();
}//write_s
//セットページアドレス
void setPageAddress(uint8_t start, uint8_t end)
{
uint8_t databytes[6] = {COMMAND_MODE, SET_PAGE_ADDRESS, COMMAND_MODE, start, COMMAND_MODE, end};
write_s(databytes, 6);
}//setPageAddress
//セットカラムアクセス
void setColumnAddress(uint8_t start, uint8_t end)
{
uint8_t databytes[6] = {COMMAND_MODE, SET_COLUMN_ADDRESS, COMMAND_MODE, start, COMMAND_MODE, end};
write_s(databytes, 6);
}//setColumnAddress
//セットメモリーアドレシングモード
void setMemoryAddressingMode()
{
uint8_t databytes[4] = {COMMAND_MODE, SET_MEMORY_ADDRESSING_MODE, COMMAND_MODE, HORIZONTAL_ADDRESSING_MODE};
write_s(databytes, 4);
}//setMemoryAddressingMode
//ドットを打つ
void Dot(int x, int y, int c) {
//データの配列の定義
static uint8_t databytes[2] = {DATA_MODE, 0x00};
static int qq = 0; //一時
qq = qq | ( c << (y & 0x07));
if ( (y & 0x07) == 7 ) { //1バイト分、貯まったら
databytes[1] = qq; qq = 0;
write_s(databytes, 2); //I2Cに1バイト書き出す
}//end if
}//DOt
//キャラクターRAMの内容
char st_p[32] = {
//1 2 3 4 5 空白
'1', '2', '3', '4', '5' , ';'
};
//再表示
void display(void) {
int y; int x;
int a; int ch;
//3で割った余り 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
int amari[16] = {0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0};
//範囲の設定 (OLED内部のx,yカウンターを初期化してホームポジション0,0に)
setPageAddress(0, MAX_PAGE); // all pages
setColumnAddress(0, MAX_COL); // all columns
for (int ii = 0; ii < 8192; ii++) {
//SSD1306のバッファーの配置順のxとyを求める
y = ((ii & 0b0001110000000000 ) >> 7) + ( ii & 0b0111);
x = (ii & 0b0000001111111000) >> 3;
//↓開始 「デカ文字」のメイン処理 「(x*171)>>12」は、24の割り算
ch = st_p[(x*171)>>12] - '0'; //キャラクターRAMから
//座標と文字からキャラクターパターンを求める 3倍は、たぶんn+n+nした方が速い? amariは%3
a = pgm_read_byte_near(ch_data7 + ((ch+ch+ch)<<6) + (y+y+y) + (amari[x>>3]));
a = ~a;
a = a << ((x) & 0x07);
a = a & 0x80;
//↑終了
if (a != 0) {
Dot(x, y, 1); //白のドットを打つ
} else {
Dot(x, y, 0); //黒のドットを打つ
}//end if
}//for ii
}//circlar_meter
//SSD1306の初期化
void display_begin(void) {
//I2Cの初期化
Wire.begin(D9,D10); //XIAO ESP32C6+SSD1306
//Wire.begin(D10,D9); //XIAO ESP32C6+GROVE
delay(200);
//SSD1306の初期化スペル(魔法)
//0x80,0x8D,0x80,0x14,0x80,0xAF
write_s( (uint8_t*) "\200\215\200\024\200\257", 6);
delay(100);
//セットメモリーアドレシングモード (画面の終端に来たら画面の先頭に)
setMemoryAddressingMode();
}//display_begin
//初期化
void setup() {
//アンテナの設定
pinMode(WIFI_ENABLE, OUTPUT); // pinMode(3, OUTPUT);
digitalWrite(WIFI_ENABLE, LOW); // digitalWrite(3, LOW); // Activate RF switch control
delay(100);
pinMode(WIFI_ANT_CONFIG, OUTPUT); // pinMode(14, OUTPUT);
digitalWrite(WIFI_ANT_CONFIG, LOW); // digitalWrite(14, LOW); // Use IN antenna
//WiFiの初期化
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
//SSD1306の初期化
display_begin();
//再表示
display();
delay(3000);//決め打ちなので、おかしかったら調整してね! wifiの待ち0.5*6
configTzTime("JST-9", "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
st_p[2] = ';';
display();//再表示
delay(2500);
st_p[2] = ':';
display();//再表示
delay(2500);
}//setup
//メインループ
void loop() {
time_t t; //経過秒
struct tm *tm; //時間の実体とポインター
t = time(NULL); //経過秒を取得する
tm = localtime(&t); //経過秒を時間の構造体に変換する
sprintf(st_p,"%02d:%02d;", tm->tm_hour, tm->tm_min); //時刻を表示する
//再表示
display();
//set time
static int set_1H = 0;
if ( set_1H > (60-1) ){ // 1 hour ?
set_1H = 0; //counter reset
configTzTime("JST-9", "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
}
set_1H++;
delay(10000); //10秒待つ
}//loop
h_furima1.h
//「デカ文字」
char ch_data7[] PROGMEM = {
// 'f24x64_0_9', 24x640px
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc,
0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff,
0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff,
0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff,
0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf8, 0xff,
0x8f, 0xf8, 0xff, 0x8f, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f,
0xff, 0x03, 0xff, 0xff, 0x03, 0xff, 0xfe, 0x03, 0xff, 0xfe, 0x03, 0xff, 0xfc, 0xe7, 0xff, 0xfc,
0xe7, 0xff, 0xf9, 0xe7, 0xff, 0xf9, 0xe7, 0xff, 0xfb, 0xe7, 0xff, 0xfb, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 0xfc, 0x00, 0x3f, 0xfc, 0x00, 0x3f,
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc,
0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff,
0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xf7, 0xff, 0xe7, 0xf7, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff,
0x9f, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x80, 0x7f, 0xff, 0x80, 0x7f,
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0xff, 0xff, 0xfc,
0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff,
0xff, 0xf3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf7, 0xff,
0xff, 0xf7, 0xff, 0xff, 0xf1, 0xfe, 0x07, 0xf1, 0xfe, 0x07, 0xf8, 0x00, 0x07, 0xf8, 0x00, 0x07,
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc,
0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff,
0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff,
0x9f, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f,
0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x9f, 0xff,
0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3,
0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7,
0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff,
0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f,
0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff,
0xfc, 0x7f, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xe1,
0xff, 0xff, 0xe1, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff,
0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x19, 0xff, 0xfe, 0x19, 0xff, 0xfc, 0x39, 0xff, 0xfc,
0x39, 0xff, 0xf8, 0x79, 0xff, 0xf8, 0x79, 0xff, 0xf1, 0xf9, 0xff, 0xf1, 0xf9, 0xff, 0xf3, 0xf9,
0xff, 0xf3, 0xf9, 0xff, 0xe3, 0xf9, 0xff, 0xe3, 0xf9, 0xff, 0xe7, 0xf9, 0xff, 0xe7, 0xf9, 0xff,
0xe7, 0xf1, 0xf7, 0xe7, 0xf1, 0xf7, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0,
0x00, 0x07, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9,
0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff,
0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff,
0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9,
0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff,
0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xf1, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f,
0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x9f, 0xff,
0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3,
0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff,
0xff, 0xf3, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff,
0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f,
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc,
0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff,
0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xef, 0xe7, 0xff, 0xef, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xe0, 0x00, 0x7f,
0xe0, 0x00, 0x3f, 0xe0, 0x00, 0x3f, 0xe1, 0xff, 0x3f, 0xe1, 0xff, 0x3f, 0xe3, 0xff, 0x9f, 0xe3,
0xff, 0x9f, 0xe7, 0xff, 0xcf, 0xe7, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff,
0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3,
0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7,
0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff,
0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f,
0xc0, 0x00, 0x0f, 0xc0, 0x00, 0x0f, 0xc0, 0x00, 0x03, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xe3, 0xff,
0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff,
0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f,
0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xf9, 0xff, 0xff,
0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7,
0xff, 0xff, 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff,
0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc,
0x3f, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf1, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff,
0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3,
0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff,
0xff, 0xe3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc,
0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff,
0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
0xff, 0xe7, 0xf3, 0xff, 0xef, 0xf3, 0xff, 0xef, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf9, 0xff,
0x9f, 0xf9, 0xff, 0x9f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f,
0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xfe, 0x3e, 0x3f, 0xfe, 0x3e, 0x3f, 0xfc, 0xff, 0x9f, 0xfc,
0xff, 0x9f, 0xf9, 0xff, 0xcf, 0xf9, 0xff, 0xcf, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff,
0xe7, 0xf3, 0xff, 0xe7, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3,
0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7,
0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff,
0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f,
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc,
0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff,
0xc7, 0xf3, 0xff, 0xc7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7,
0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf9, 0xff,
0xe7, 0xf9, 0xff, 0xe7, 0xfc, 0xff, 0x07, 0xfc, 0xff, 0x07, 0xfe, 0x00, 0x07, 0xfe, 0x00, 0x07,
0xff, 0x00, 0x67, 0xff, 0x00, 0x67, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff,
0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff,
0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7,
0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff,
0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xfc,
0x1f, 0xff, 0xfc, 0x1f, 0xff, 0xf0, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff,
//colon ':'
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc1, 0xff,
0xff, 0xc1, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xc1, 0xff,
0xff, 0xc1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};