2017年7月28日金曜日

GR-ADZUKIで倒立振子ロボADZUMIN v47

//ADZUMIN Inverted Pendulum Robot
//Copyright MAENOH! & KIRAKULABO 2017
//wheele dia ~= 58mm
//Gear ratio ~= 114 (TAMIYA Double Gear Box)
//Battery: Alkaline x 3
//MPU/Driver: GR-ADZUKI
//Gyro/Acc: MPU6050 (I2C)
//Adhoc IR remote control registration during laying just after power up.
//SW1: Stand still with debug and serialMonito on (1 blink)
//SW2: demo (2 blinks)
//Default: Stand still (no blink)
#include "Arduino.h"
#include <Wire.h>
#include <EEPROM.h>
#include <SD.h>
#define LED_R 22
#define LED_G 23
#define LED_B 24
#define HCODE 0x4D //M
#define PWMMAX 255
#define LED1_M1F 6
#define LED2_M0F 9
#define LED3_M0B 10
#define LED4_M1B 11
#define LED5 12
#define LED6 13
#define LED_ON 1
#define LED_OFF 0
#define SW1_SINT_PIN 3 //SW1 and Sound Interrupt
#define SW2_IRINT_PIN 2 // SW2 and IR Receive
#define GP2Y A0
#define BATT A1
#define TONE_PIN 5
#define SERVO_PIN 4
#define AKI_REMO_CUSTOMER (0x10EF)
#define AKI_REMO_POWER (0xD827)
#define AKI_REMO_A (0xF807)
#define AKI_REMO_B (0x7887)
#define AKI_REMO_C (0x58A7)
#define AKI_REMO_UP (0xA05F)
#define AKI_REMO_DOWN (0x00FF)
#define AKI_REMO_RIGHT (0x807F)
#define AKI_REMO_LEFT (0x10EF)
#define AKI_REMO_CENTER (0x20DF)
#define AKI_REMO_UR (0x21DE)
#define AKI_REMO_UL (0xB14E)
#define AKI_REMO_DR (0x817E)
#define AKI_REMO_DL (0x11EE)
#define INTSOUND 1 //Sound interrupt number
#define INTIR 0 // IR RECEIVE interrupt number
#define IRON LOW
#define IROFF HIGH
#define IRBUFFLEN 200
#define MINIRINTERVAL 220
// Ad hoc IR code
#define IR_UP 1
#define IR_DOWN 7
#define IR_RIGHT 5
#define IR_LEFT 3
#define IR_CENTER 4
#define IR_CIRL 0
#define IR_CIRR 2
#define IR_BALF 6
#define IR_BALB 8
#define ADHOC_IR_MAX 9
#define MAXSINTERVAL 15
#define MINSINTERVAL 5
unsigned int ADHOC_CUSTOMER[ADHOC_IR_MAX] = {0xFFFF,0xFFFF,0XFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}; //1,2,3,4,5,6,7,8,9
unsigned int ADHOC_IR[ADHOC_IR_MAX] = {0xFFFF,0xFFFF,0XFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}; // 1,2,3,4,5,6,7,8,9
int adhoc_ir_num=-1;
void selectMode();
void sendSerial();
void resetPara();
void resetVar();
void getGyro();
void readGyro();
void calibGyro();
void calibAcc();
void calcTarget();
boolean pendDrive();
void motor();
void resetMotor();
void freeMotor();
boolean laid();
boolean upright();
boolean standing();
void drvMotorL(int pwm);
void drvMotorR(int pwm);
void drvMotor0(int pwm);
void drvMotor1(int pwm);
void checkVoltage();
void monitorVoltage();
double getBattVolt();
void blinkLED(int n);
void setColor(int r, int g, int b);
void readEEPROMbal();
void writeEEPROMbal();
void readEEPROMadhoc();
void writeEEPROMadhoc();
void demo8();
void getIR();
void regIR();
void printIrData();
void decodeNECAEHA();
void decodeSONY();
void irInt();
void irCommand();
void printIrData(String s);
void soundIntSD();
void soundInt();
void soundStartSD(File s, unsigned long sz, int gain);
void soundStart(const byte* ptr, unsigned long sz, int gain);
void servoStart(double ang, double stp);
void servoContinue(double ang, double stp);
void servoDrive();
void pendulum();
void servoHead();
void randomPlay();
void openFiles();
boolean lightHead=false;
boolean usbPower=false;
int button=IR_CENTER;
volatile unsigned long irMicroOn;
volatile unsigned long irMicroOff;
volatile unsigned int irDataOn[200];
volatile unsigned int irDataOff[200];
volatile int irOnIndex=0;
volatile int irOffIndex=0;
volatile boolean irStarted=false;
volatile boolean irDecoding=false;
volatile unsigned long lastIrTime=0;
boolean irReady=false;
byte irData[30];
unsigned int ircode;
unsigned int customer_code;
int MotorConfig = 0; // 0 to 3
int accX, accY, accZ, temp, gyroX, gyroY, gyroZ;
int counter=0;
volatile int counterSec=0;
volatile int counterSec0=0;
unsigned long time1=0;
unsigned long time0=0;
double power, powerR, powerL;
double snsGyroY, snsAccX;
double varAng, varOmg, varSpd, varDst, varIang, varIdst;
double gyroOffsetY, gyroOffsetZ, accOffsetX;
double gyroDataY, gyroDataZ, accDataX, accDataY;
double gyroLSB=1.0/131.0; // deg/sec
double accLSB=1.0/16384.0; // g
double pendClk = 0.01; // in sec,
unsigned long pendInterval = 10000; // in usec
double cutoff = 0.1; // 2 * PI * f (f=Hz) //0.1
double Kang, Komg, Kdst, Kspd, Kspin, KIang, KIdst;
double spinPower;
double moveTarget, moveRate=0.0; //moveRate 0:stop, +:forward, -:backward
double moveStep = 0.0013;
double spinDestination, spinTarget;
double spinStep = 0.0;
double spinAngle;
boolean spinContinuous=false;
int pendPhase=-1;
int ipowerR = 0;
int ipowerL = 0;
int motorRdir=0; //stop 1:+ -1:-
int motorLdir=0; //stop
int backlashSpd;
double mechFactorR, mechFactorL;
double battFactor=1.3; // 2016.07.14
double bVolt;
double maxSpd=250.0;
int counterOverSpd;
int maxOverSpd=15;
double aveAccX=0.0;
double aveAccY=0.0;
boolean debug=false;
boolean serialMonitor=false;
double aveVolt=4.5;
int8_t drvHLbalance=0;
int demoPhase=0;
int demoDelayCounter=0;
int demoMode=0;
double minVolt=4.5;
int servoPhase=1;
boolean servoComplete=false;
int servoPulseWidth=1500;
double servoAngDestination=90.0;
double servoAngTarget=90.0;
double servoAngStep=1.0;
int servoWidth=1500; //in usec
File voiceFile[11];
unsigned long fsizeVoice[11];
File musicFile[10];
unsigned long fsizeMusic[10];
File sdfile, volFile;
File fGreet, fStop, fRight, fLeft, fForward, fBack, fSpin, fAccel, fTipover, fDemo, fDebug, fBattery, fReplace;
int vGreet, vStop, vRight, vLeft, vForward, vBack, vSpin, vAccel, vTipover, vDemo, vDebug, vBattery, vReplace;
unsigned long fsizeGreet, fsizeStop, fsizeRight, fsizeLeft, fsizeForward, fsizeBack, fsizeSpin, fsizeAccel, fsizeTipover, fsizeDemo, fsizeDebug, fsizeBattery, fsizeReplace;
volatile unsigned long filePointer;
volatile unsigned long fileSize;
volatile boolean soundBusy=false;
volatile unsigned long soundIndex=0;
volatile const byte *soundPtr;
volatile unsigned long soundSize;
volatile int soundGain=10; //10=100%
boolean soundFlg=false;
int soundInterval=MAXSINTERVAL;
volatile boolean soundStop=false;
int soundId;
boolean musicPlaying=false;
boolean randomSoundOn=true;
int soundPhase=1;
int maxVoiceFile=0;
int minVoiceFile=-1;
int maxMusicFile=0;
int minMusicFile=-1;
const char *soundVoice[] = {"vmu_168m.wav", "v1_168m.wav", "v2_168m.wav", "v3_168m.wav", "v4_168m.wav", "v5_168m.wav", "v6_168m.wav", "v7_168m.wav", "v8_168m.wav", "v9_168m.wav", "v10_168m.wav"};
const char *soundVoiceIni[] = {"vmu_168m.ini", "v1_168m.ini", "v2_168m.ini", "v3_168m.ini", "v4_168m.ini", "v5_168m.ini", "v6_168m.ini", "v7_168m.ini", "v8_168m.ini", "v9_168m.ini", "v10_168m.ini"};
const char *soundMusic[] = {"mu1_168m.wav", "mu2_168m.wav", "mu3_168m.wav", "mu4_168m.wav", "mu5_168m.wav", "mu6_168m.wav", "mu7_168m.wav", "mu8_168m.wav", "mu9_168m.wav", "mu10_168m.wav"};
const char *soundMusicIni[] = {"mu1_168m.ini", "mu2_168m.ini", "mu3_168m.ini", "mu4_168m.ini", "mu5_168m.ini", "mu6_168m.ini", "mu7_168m.ini", "mu8_168m.ini", "mu9_168m.ini", "mu10_168m.ini"};
const double headLeft=150.0;
const double headRight=30.0;
int vVoice[sizeof(soundVoice)/2];
int vMusic[sizeof(soundMusic)/2];
const byte soundGreet[] = {
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x75,0x74,0x71,0x6e,
0x6f,0x73,0x7b,0x81,0x8b,0x8e,0x8e,0x8c,0x8a,0x86,0x80,0x7e,0x80,0x7f,0x81,0x80,
0x80,0x7f,0x7e,0x80,0x78,0x77,0x76,0x7c,0x7f,0x84,0x8d,0x8f,0x95,0x92,0x8e,0x86,
0x80,0x7d,0x79,0x79,0x7c,0x7f,0x80,0x80,0x7d,0x79,0x7a,0x7a,0x7d,0x7f,0x84,0x87,
0x88,0x88,0x87,0x85,0x85,0x81,0x72,0x67,0x60,0x61,0x68,0x76,0x85,0x90,0x98,0x96,
0x8c,0x81,0x7d,0x7e,0x80,0x86,0x89,0x8b,0x8a,0x88,0x81,0x76,0x78,0x77,0x7c,0x82,
0x8a,0x91,0x92,0x8d,0x80,0x73,0x6a,0x69,0x6a,0x71,0x7b,0x84,0x85,0x84,0x80,0x7a,
0x75,0x73,0x74,0x73,0x77,0x7b,0x7f,0x81,0x87,0x8d,0x90,0x91,0x8f,0x8a,0x82,0x7c,
0x77,0x71,0x70,0x74,0x79,0x81,0x8d,0x9a,0xa1,0xa2,0x9c,0x93,0x85,0x78,0x70,0x6a,
0x69,0x6a,0x6d,0x6d,0x6f,0x72,0x72,0x71,0x75,0x7d,0x85,0x8e,0x96,0x97,0x93,0x8c,
0x84,0x78,0x72,0x73,0x76,0x7b,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x76,0x71,0x6d,0x70,
0x78,0x81,0x8d,0x94,0x98,0x94,0x8e,0x84,0x7f,0x7e,0x7f,0x81,0x84,0x88,0x89,0x87,
0x83,0x7b,0x72,0x6c,0x6a,0x6b,0x6e,0x78,0x7f,0x86,0x8b,0x8e,0x8f,0x8e,0x8b,0x87,
0x83,0x7d,0x77,0x70,0x68,0x62,0x60,0x63,0x6a,0x78,0x89,0x96,0xa1,0xa3,0xa1,0x98,
0x91,0x8a,0x86,0x82,0x86,0x7e,0x7d,0x76,0x57,0x52,0x50,0x60,0x78,0xa2,0xbe,0xc9,
0xc8,0xac,0x83,0x60,0x57,0x57,0x66,0x7c,0x90,0x92,0x8b,0x7d,0x67,0x56,0x57,0x5f,
0x6d,0x81,0x95,0x9b,0x94,0x89,0x7b,0x70,0x6f,0x78,0x80,0x88,0x88,0x82,0x72,0x68,
0x64,0x69,0x73,0x83,0x90,0x95,0x98,0x91,0x8e,0x8b,0x93,0x9d,0x9f,0xa1,0x95,0x82,
0x6a,0x5c,0x5c,0x67,0x87,0x92,0x97,0x94,0x7d,0x65,0x53,0x5e,0x75,0x9b,0xbc,0xbc,
0xa9,0x92,0x75,0x5a,0x4d,0x50,0x5d,0x6d,0x7c,0x81,0x7d,0x7a,0x74,0x6b,0x66,0x6c,
0x78,0x83,0x8a,0x8c,0x89,0x80,0x7b,0x76,0x76,0x7a,0x83,0x8a,0x8c,0x8d,0x8d,0x8c,
0x88,0x8d,0x91,0x9a,0xa3,0xad,0xad,0xa6,0xa3,0xa2,0xa4,0xa4,0x8b,0x66,0x50,0x3c,
0x33,0x33,0x3f,0x53,0x6d,0x8c,0x9a,0x9e,0xa4,0xa8,0x9f,0x91,0x87,0x7a,0x72,0x6d,
0x64,0x58,0x52,0x54,0x58,0x5c,0x66,0x74,0x82,0x8a,0x90,0x90,0x8c,0x89,0x87,0x84,
0x83,0x86,0x8a,0x88,0x87,0x89,0x8b,0x8b,0x8e,0x90,0x94,0x9b,0xa2,0xaa,0xa8,0xb0,
0xa8,0xac,0x8f,0x66,0x57,0x3d,0x39,0x45,0x5b,0x69,0x84,0x94,0x8e,0x86,0x81,0x82,
0x7d,0x84,0x8e,0x91,0x92,0x91,0x81,0x6b,0x5b,0x54,0x50,0x54,0x62,0x74,0x7d,0x83,
0x81,0x7c,0x75,0x77,0x7a,0x7d,0x87,0x91,0x93,0x8b,0x84,0x7c,0x77,0x78,0x7c,0x86,
0x8e,0x97,0x9b,0x96,0x99,0x97,0x9e,0xa3,0xb0,0xb6,0xb5,0xb0,0x7e,0x5f,0x55,0x40,
0x38,0x4b,0x5d,0x6a,0x80,0x89,0x80,0x81,0x8c,0x8a,0x87,0x94,0x9f,0x96,0x8d,0x81,
0x6a,0x5c,0x5b,0x5b,0x5d,0x67,0x73,0x75,0x72,0x73,0x77,0x7a,0x82,0x8a,0x8e,0x90,
0x8f,0x87,0x7c,0x76,0x77,0x7a,0x7c,0x7e,0x80,0x7d,0x79,0x74,0x76,0x7c,0x8a,0x97,
0xa2,0xab,0xb5,0xbb,0xbd,0xc1,0xc2,0xc1,0xa0,0x72,0x45,0x2d,0x26,0x2a,0x3d,0x50,
0x70,0x88,0x8f,0x80,0x7f,0x8e,0x9a,0xa7,0xa9,0xa8,0xa2,0x97,0x7f,0x5b,0x46,0x45,
0x4d,0x54,0x5f,0x6b,0x72,0x78,0x79,0x77,0x7b,0x89,0x95,0x97,0x96,0x90,0x88,0x7d,
0x75,0x71,0x74,0x7b,0x82,0x83,0x82,0x80,0x83,0x85,0x8e,0x9b,0xab,0xbb,0xc6,0xd0,
0xd0,0xcb,0x9c,0x78,0x5a,0x32,0x25,0x30,0x40,0x59,0x6c,0x6e,0x70,0x70,0x80,0x89,
0x96,0xb0,0xbf,0xbb,0xa5,0x8a,0x6f,0x5b,0x56,0x57,0x5f,0x68,0x71,0x69,0x58,0x56,
0x5b,0x6b,0x7d,0x93,0x9f,0xa2,0x9c,0x8d,0x7c,0x75,0x7a,0x80,0x84,0x85,0x82,0x77,
0x6c,0x65,0x67,0x72,0x87,0x99,0xa6,0xaf,0xb5,0xb7,0xbd,0xc6,0xd1,0xde,0xb9,0x84,
0x5c,0x35,0x18,0x17,0x2a,0x45,0x6c,0x76,0x74,0x6e,0x7b,0x8f,0x97,0xab,0xbc,0xc5,
0xb9,0x9b,0x76,0x5b,0x53,0x53,0x55,0x58,0x63,0x69,0x63,0x54,0x56,0x67,0x7e,0x93,
0x9f,0xa3,0xa0,0x9b,0x88,0x77,0x74,0x7d,0x7f,0x7e,0x7a,0x74,0x70,0x6e,0x6f,0x78,
0x88,0x9d,0xac,0xb2,0xb9,0xbc,0xc4,0xcf,0xe5,0xb4,0x7f,0x77,0x3b,0x19,0x27,0x37,
0x4c,0x61,0x78,0x63,0x62,0x7b,0x7a,0x85,0xad,0xc8,0xb7,0xb4,0xa5,0x89,0x6d,0x57,
0x54,0x57,0x69,0x65,0x59,0x4f,0x4d,0x5f,0x68,0x75,0x8e,0xa8,0xa8,0x9a,0x8d,0x7d,
0x7d,0x81,0x80,0x7c,0x85,0x88,0x7d,0x6a,0x6b,0x72,0x7b,0x89,0x9b,0xab,0xb1,0xb0,
0xa5,0xb1,0xb4,0xc8,0xc6,0xb2,0x83,0x4e,0x35,0x1b,0x31,0x4f,0x63,0x68,0x6f,0x69,
0x5d,0x71,0x85,0x96,0xb0,0xbe,0xb9,0xa6,0x97,0x7f,0x6a,0x5b,0x53,0x54,0x5f,0x67,
0x5e,0x5a,0x55,0x5a,0x6b,0x7f,0x92,0xa3,0xab,0x9e,0x8e,0x82,0x7b,0x7b,0x7f,0x84,
0x80,0x81,0x7b,0x72,0x6f,0x78,0x85,0x94,0xa3,0xad,0xb4,0xbc,0xc2,0xc6,0xd0,0xae,
0x96,0x74,0x49,0x3b,0x38,0x3d,0x44,0x56,0x4e,0x4a,0x52,0x60,0x77,0x92,0xaf,0xb6,
0xba,0xb2,0xa0,0x90,0x85,0x7f,0x76,0x6f,0x62,0x58,0x4d,0x48,0x49,0x53,0x65,0x78,
0x88,0x91,0x95,0x95,0x94,0x8f,0x90,0x90,0x8f,0x8a,0x83,0x78,0x70,0x6c,0x6c,0x70,
0x7b,0x87,0x91,0x9b,0xa1,0xa8,0xaf,0xbd,0xc7,0xda,0xc4,0xa9,0x8d,0x5d,0x4c,0x42,
0x43,0x49,0x57,0x58,0x4c,0x4f,0x54,0x64,0x7c,0x96,0xa7,0xaf,0xb2,0xa4,0x97,0x8b,
0x85,0x7f,0x7a,0x70,0x63,0x58,0x4d,0x4a,0x4e,0x5b,0x6b,0x79,0x82,0x87,0x8b,0x8e,
0x8f,0x91,0x93,0x94,0x90,0x8c,0x85,0x7f,0x7f,0x7e,0x80,0x84,0x8a,0x8f,0x97,0x9f,
0xaa,0xb4,0xc5,0xc7,0xac,0x9a,0x79,0x60,0x58,0x55,0x57,0x5c,0x61,0x54,0x4b,0x4e,
0x57,0x6b,0x83,0x95,0x9e,0xa2,0x9e,0x94,0x8c,0x8a,0x8b,0x8b,0x83,0x77,0x68,0x5a,
0x51,0x51,0x59,0x65,0x74,0x7a,0x79,0x79,0x7c,0x80,0x88,0x92,0x97,0x96,0x92,0x88,
0x7f,0x7d,0x80,0x84,0x89,0x8d,0x8e,0x8e,0x91,0x95,0xa3,0xb2,0xc3,0xca,0xb0,0x9d,
0x7e,0x63,0x5c,0x5b,0x60,0x62,0x67,0x55,0x47,0x47,0x4d,0x62,0x7c,0x91,0x99,0x9e,
0x98,0x8d,0x8a,0x8c,0x90,0x92,0x8e,0x7e,0x6f,0x60,0x56,0x54,0x5c,0x68,0x71,0x77,
0x73,0x72,0x73,0x78,0x80,0x8b,0x93,0x96,0x94,0x8d,0x86,0x85,0x87,0x8a,0x8e,0x90,
0x90,0x91,0x93,0x95,0xa2,0xa9,0xb9,0xb9,0xa1,0x95,0x78,0x68,0x65,0x66,0x67,0x6a,
0x6b,0x57,0x4c,0x4c,0x52,0x65,0x7c,0x8a,0x8e,0x93,0x8d,0x86,0x88,0x8c,0x90,0x94,
0x8e,0x80,0x73,0x67,0x5f,0x5f,0x65,0x6b,0x72,0x70,0x6c,0x6c,0x6e,0x74,0x7f,0x8a,
0x90,0x93,0x90,0x8a,0x88,0x8a,0x8e,0x93,0x96,0x97,0x95,0x95,0x94,0x9b,0xa3,0xaf,
0xb1,0xa3,0x97,0x80,0x70,0x6a,0x66,0x69,0x6c,0x6c,0x60,0x55,0x52,0x54,0x61,0x72,
0x7e,0x86,0x8b,0x88,0x83,0x85,0x89,0x8e,0x93,0x91,0x87,0x7d,0x72,0x69,0x67,0x6c,
0x70,0x74,0x73,0x6f,0x6c,0x6c,0x70,0x77,0x82,0x88,0x8c,0x8b,0x88,0x85,0x87,0x8b,
0x8f,0x93,0x96,0x96,0x93,0x93,0x96,0x9c,0xa4,0xaf,0xa9,0x9d,0x93,0x7e,0x74,0x70,
0x6e,0x6f,0x71,0x6c,0x5d,0x58,0x56,0x59,0x65,0x72,0x79,0x7e,0x82,0x7e,0x7e,0x83,
0x88,0x8e,0x91,0x8f,0x87,0x80,0x77,0x73,0x73,0x75,0x77,0x77,0x72,0x6e,0x6c,0x6c,
0x70,0x77,0x7e,0x82,0x86,0x86,0x84,0x86,0x89,0x8b,0x90,0x93,0x95,0x94,0x95,0x94,
0x97,0x99,0xa1,0xa1,0x98,0x95,0x86,0x7e,0x7a,0x78,0x74,0x75,0x73,0x67,0x62,0x5f,
0x5f,0x64,0x6c,0x71,0x73,0x79,0x77,0x79,0x7b,0x80,0x84,0x88,0x89,0x86,0x86,0x80,
0x7f,0x7d,0x7e,0x7e,0x7f,0x7c,0x78,0x76,0x74,0x75,0x77,0x7a,0x7c,0x7e,0x7f,0x7e,
0x7f,0x83,0x85,0x8a,0x8d,0x8f,0x8f,0x91,0x8f,0x92,0x95,0x9a,0x9c,0x97,0x94,0x8b,
0x85,0x82,0x7f,0x7d,0x7c,0x7a,0x72,0x6c,0x68,0x66,0x69,0x6d,0x71,0x72,0x75,0x74,
0x74,0x76,0x79,0x7e,0x82,0x85,0x84,0x84,0x81,0x81,0x80,0x81,0x83,0x83,0x82,0x7f,
0x7e,0x7b,0x7b,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7e,0x80,0x82,0x85,0x86,0x88,0x89,
0x8b,0x8b,0x8d,0x8e,0x90,0x91,0x90,0x8d,0x89,0x87,0x84,0x83,0x81,0x7f,0x7d,0x79,
0x75,0x72,0x71,0x71,0x72,0x73,0x73,0x74,0x73,0x74,0x75,0x77,0x7a,0x7d,0x7f,0x80,
0x80,0x80,0x81,0x81,0x83,0x83,0x83,0x82,0x7f,0x7d,0x7c,0x7c,0x7e,0x7e,0x80,0x7f,
0x7f,0x7d,0x7e,0x80,0x80,0x84,0x86,0x85,0x87,0x87,0x87,0x8a,0x8a,0x8d,0x8c,0x8b,
0x8a,0x85,0x85,0x83,0x83,0x83,0x82,0x80,0x7d,0x7a,0x77,0x76,0x76,0x76,0x76,0x76,
0x76,0x75,0x76,0x75,0x76,0x79,0x7b,0x7d,0x7f,0x80,0x80,0x81,0x81,0x81,0x82,0x82,
0x81,0x80,0x80,0x7f,0x7d,0x7f,0x7d,0x7e,0x7e,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x82,
0x82,0x83,0x83,0x85,0x86,0x87,0x89,0x87,0x88,0x87,0x85,0x84,0x84,0x83,0x83,0x83,
0x82,0x80,0x7f,0x7d,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,0x78,0x79,0x7b,
0x7c,0x7e,0x7e,0x7f,0x7e,0x7f,0x7e,0x80,0x7f,0x82,0x81,0x80,0x80,0x7e,0x7d,0x7d,
0x7e,0x7e,0x80,0x7e,0x7f,0x7d,0x80,0x80,0x81,0x84,0x83,0x83,0x85,0x84,0x85,0x88,
0x87,0x88,0x86,0x85,0x83,0x81,0x82,0x81,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,
0x7c,0x7c,0x7b,0x79,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7b,0x7c,0x7c,0x7e,
0x82,0x82,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x80,0x7f,0x7f,0x7f,0x7d,0x7e,0x7f,0x80,
0x82,0x84,0x83,0x84,0x84,0x83,0x85,0x85,0x88,0x88,0x87,0x87,0x84,0x83,0x81,0x81,
0x80,0x80,0x80,0x7f,0x7e,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,
0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x7b,0x7c,0x7e,0x80,0x81,0x81,0x81,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x7f,0x81,0x7f,0x7e,0x80,0x7e,0x81,0x81,0x82,0x83,0x83,0x84,0x82,
0x85,0x84,0x84,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x81,0x80,0x7f,0x7f,0x7d,0x7d,
0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7b,0x7c,
0x7c,0x7c,0x7e,0x7c,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x80,0x7e,0x82,0x80,
0x81,0x80,0x80,0x81,0x80,0x83,0x81,0x84,0x83,0x83,0x82,0x84,0x82,0x83,0x83,0x82,
0x83,0x81,0x82,0x80,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7e,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7c,0x7e,0x7d,0x7f,0x80,
0x80,0x80,0x7f,0x81,0x7f,0x80,0x80,0x81,0x7e,0x81,0x81,0x80,0x80,0x81,0x81,0x81,
0x83,0x83,0x81,0x83,0x84,0x81,0x83,0x82,0x82,0x81,0x82,0x80,0x80,0x80,0x7f,0x80,
0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7e,0x80,0x7c,0x7f,
0x7e,0x7e,0x7f,0x7e,0x7f,0x7d,0x80,0x7d,0x7f,0x7e,0x80,0x7e,0x81,0x7f,0x80,0x80,
0x7e,0x81,0x7d,0x82,0x7e,0x82,0x81,0x81,0x81,0x80,0x81,0x7f,0x82,0x81,0x81,0x81,
0x81,0x81,0x80,0x80,0x81,0x80,0x7f,0x80,0x81,0x7f,0x7f,0x7f,0x7e,0x7d,0x7f,0x7d,
0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x81,0x7d,0x81,0x7e,0x7e,0x81,0x7e,
0x80,0x7f,0x7e,0x7f,0x7d,0x80,0x80,0x7e,0x81,0x81,0x7e,0x80,0x81,0x7f,0x80,0x81,
0x80,0x81,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x81,0x80,0x81,0x80,0x81,0x7f,
0x80,0x80,0x7f,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x80,0x7c,0x81,
0x7e,0x7f,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7e,0x81,0x7d,0x7f,0x7e,
0x80,0x7f,0x80,0x83,0x7e,0x81,0x82,0x7d,0x80,0x82,0x7f,0x81,0x83,0x80,0x7f,0x82,
0x7e,0x7f,0x80,0x80,0x7f,0x7f,0x81,0x80,0x7f,0x81,0x80,0x80,0x7f,0x81,0x7e,0x7f,
0x7f,0x7e,0x7f,0x7e,0x80,0x7f,0x80,0x7d,0x80,0x7e,0x7f,0x81,0x80,0x7f,0x82,0x7f,
0x80,0x81,0x7e,0x81,0x7f,0x81,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x82,0x7e,0x81,
0x7e,0x82,0x7e,0x81,0x82,0x7f,0x80,0x81,0x81,0x7c,0x84,0x7d,0x7f,0x80,0x7d,0x81,
0x7f,0x7f,0x81,0x7e,0x80,0x81,0x80,0x80,0x7f,0x81,0x7f,0x7e,0x82,0x7e,0x7e,0x81,
0x7c,0x80,0x7e,0x7e,0x82,0x7e,0x82,0x7f,0x7f,0x82,0x7c,0x83,0x7f,0x7f,0x84,0x7b,
0x83,0x7f,0x7d,0x84,0x79,0x82,0x7d,0x7e,0x84,0x7d,0x81,0x82,0x7f,0x7d,0x84,0x7d,
0x81,0x80,0x81,0x7e,0x7f,0x7f,0x7d,0x80,0x7d,0x80,0x7e,0x7f,0x7e,0x81,0x7f,0x80,
0x7e,0x82,0x7d,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x7d,0x81,0x7c,0x81,0x7e,0x7f,0x80,
0x7e,0x81,0x7f,0x80,0x80,0x81,0x81,0x80,0x7f,0x83,0x7c,0x81,0x7f,0x7f,0x80,0x7c,
0x85,0x79,0x83,0x7f,0x7f,0x83,0x7b,0x83,0x7f,0x81,0x7f,0x81,0x80,0x7e,0x81,0x7d,
0x7d,0x80,0x7b,0x82,0x7c,0x7f,0x82,0x7a,0x85,0x7d,0x7e,0x86,0x79,0x80,0x83,0x7b,
0x83,0x7f,0x82,0x7d,0x7c,0x84,0x7a,0x7f,0x82,0x7d,0x82,0x7c,0x84,0x7c,0x7f,0x86,
0x7c,0x82,0x81,0x81,0x7d,0x83,0x7e,0x7f,0x80,0x7e,0x82,0x7d,0x82,0x7d,0x7f,0x80,
0x7d,0x83,0x7e,0x80,0x82,0x7d,0x7e,0x82,0x7c,0x81,0x7d,0x80,0x80,0x78,0x83,0x7d,
0x7c,0x7f,0x83,0x7b,0x82,0x82,0x7d,0x82,0x7d,0x83,0x7e,0x81,0x81,0x80,0x7d,0x80,
0x7f,0x7e,0x7f,0x82,0x7e,0x7f,0x83,0x7a,0x85,0x7b,0x85,0x81,0x80,0x82,0x7f,0x81,
0x7c,0x83,0x7e,0x80,0x7e,0x82,0x7c,0x7f,0x81,0x7f,0x80,0x81,0x7f,0x80,0x7f,0x80,
0x7e,0x80,0x80,0x7f,0x83,0x7a,0x82,0x7e,0x7a,0x81,0x7c,0x80,0x80,0x7e,0x83,0x7d,
0x80,0x81,0x7d,0x83,0x80,0x80,0x82,0x7d,0x83,0x7c,0x83,0x7e,0x7f,0x82,0x78,0x86,
0x79,0x84,0x80,0x7f,0x83,0x7f,0x81,0x7e,0x80,0x82,0x7c,0x82,0x82,0x7d,0x7f,0x7e,
0x83,0x79,0x84,0x80,0x7d,0x7f,0x83,0x7d,0x7f,0x83,0x7e,0x81,0x7d,0x83,0x7c,0x80,
0x81,0x7b,0x83,0x7b,0x7f,0x80,0x7c,0x83,0x7d,0x85,0x7b,0x84,0x7f,0x7d,0x84,0x7e,
0x83,0x80,0x82,0x7c,0x80,0x80,0x7e,0x82,0x83,0x7a,0x85,0x7d,0x7b,0x88,0x7a,0x84,
0x81,0x7b,0x86,0x7b,0x80,0x82,0x7d,0x83,0x7d,0x7f,0x82,0x7c,0x82,0x7e,0x80,0x7e,
0x7f,0x82,0x7c,0x83,0x7f,0x7e,0x80,0x81,0x7a,0x85,0x7a,0x7f,0x82,0x78,0x83,0x7c,
0x81,0x83,0x7c,0x80,0x84,0x7a,0x82,0x85,0x7d,0x82,0x84,0x7e,0x7f,0x81,0x83,0x7b,
0x83,0x80,0x7e,0x7d,0x80,0x82,0x7d,0x82,0x7d,0x7e,0x81,0x7e,0x82,0x82,0x7d,0x81,
0x7e,0x81,0x7a,0x83,0x7e,0x80,0x80,0x7d,0x83,0x7a,0x80,0x85,0x77,0x83,0x81,0x79,
0x82,0x7e,0x7f,0x7f,0x82,0x7b,0x83,0x7a,0x85,0x7a,0x82,0x81,0x79,0x88,0x78,0x84,
0x81,0x7d,0x81,0x7f,0x7e,0x83,0x7d,0x83,0x80,0x7d,0x83,0x7c,0x7f,0x83,0x79,0x83,
0x7d,0x7f,0x82,0x7a,0x85,0x7a,0x81,0x81,0x7b,0x87,0x7c,0x7e,0x85,0x79,0x84,0x7b,
0x81,0x7e,0x7c,0x85,0x7b,0x81,0x80,0x7e,0x7e,0x82,0x7f,0x7e,0x80,0x81,0x7e,0x7f,
0x83,0x7d,0x7e,0x80,0x7d,0x7e,0x80,0x7e,0x82,0x7e,0x7f,0x82,0x7e,0x80,0x81,0x80,
0x80,0x82,0x7d,0x82,0x7f,0x81,0x7f,0x81,0x7e,0x7e,0x82,0x7d,0x80,0x80,0x7c,0x81,
0x7f,0x7e,0x83,0x7c,0x83,0x7e,0x7e,0x81,0x7e,0x7d,0x81,0x7c,0x81,0x7f,0x7d,0x83,
0x7b,0x7e,0x83,0x7b,0x7f,0x83,0x7c,0x86,0x7d,0x7f,0x83,0x7c,0x83,0x7f,0x80,0x82,
0x7d,0x81,0x7f,0x7d,0x82,0x7f,0x7d,0x82,0x7c,0x81,0x81,0x80,0x81,0x7f,0x82,0x80,
0x7f,0x80,0x81,0x7c,0x83,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x82,0x7d,0x83,0x80,0x7e,
0x82,0x81,0x7b,0x84,0x7e,0x7d,0x82,0x7d,0x7e,0x82,0x7d,0x7e,0x81,0x7d,0x80,0x7f,
0x80,0x7f,0x82,0x7f,0x81,0x7f,0x80,0x82,0x7c,0x81,0x80,0x7e,0x81,0x81,0x7e,0x81,
0x81,0x7d,0x82,0x80,0x7e,0x81,0x80,0x81,0x7f,0x80,0x80,0x81,0x7d,0x80,0x7f,0x7e,
0x81,0x7d,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x80,0x80,0x80,0x80,0x82,0x7d,0x82,
0x7f,0x7f,0x81,0x7f,0x81,0x7d,0x81,0x7f,0x7e,0x81,0x80,0x7f,0x82,0x7f,0x80,0x80,
0x81,0x81,0x80,0x81,0x7f,0x7f,0x80,0x7e,0x7f,0x80,0x7d,0x80,0x7c,0x80,0x7f,0x80,
0x81,0x7f,0x80,0x7f,0x7e,0x80,0x81,0x7e,0x81,0x7f,0x7d,0x7f,0x7e,0x80,0x7f,0x7f,
0x80,0x7d,0x82,0x7f,0x80,0x83,0x80,0x80,0x81,0x81,0x80,0x80,0x81,0x81,0x80,0x80,
0x81,0x81,0x7f,0x82,0x80,0x7f,0x81,0x7f,0x7f,0x7f,0x80,0x7f,0x7e,0x80,0x7d,0x7f,
0x7c,0x7f,0x7e,0x7d,0x80,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7f,0x80,0x7c,0x81,0x7f,
0x7d,0x7e,0x7f,0x7d,0x80,0x80,0x7f,0x81,0x80,0x82,0x81,0x82,0x83,0x82,0x81,0x84,
0x81,0x81,0x83,0x82,0x80,0x81,0x81,0x80,0x81,0x81,0x81,0x7e,0x7f,0x7f,0x7e,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7d,0x7c,0x7c,0x7c,0x7a,0x7c,0x7a,0x7b,0x7c,
0x7b,0x7d,0x7c,0x7e,0x7e,0x7d,0x7f,0x7e,0x7f,0x80,0x80,0x81,0x80,0x81,0x82,0x80,
0x82,0x83,0x83,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x85,0x86,0x84,0x84,0x83,
0x83,0x83,0x82,0x81,0x80,0x7f,0x7d,0x7d,0x7d,0x7b,0x7b,0x79,0x77,0x77,0x76,0x75,
0x75,0x76,0x74,0x75,0x76,0x76,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x80,0x81,0x83,0x83,
0x84,0x85,0x86,0x86,0x87,0x86,0x88,0x86,0x88,0x87,0x85,0x87,0x86,0x86,0x88,0x88,
0x88,0x89,0x88,0x89,0x87,0x87,0x85,0x82,0x82,0x7e,0x7c,0x7b,0x78,0x76,0x74,0x72,
0x71,0x70,0x70,0x70,0x70,0x71,0x72,0x73,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x7f,0x80,
0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x89,0x89,0x89,0x87,0x89,0x88,0x89,
0x8a,0x89,0x8b,0x89,0x8b,0x8d,0x8c,0x8e,0x8a,0x86,0x84,0x7f,0x7e,0x7d,0x7c,0x7a,
0x79,0x73,0x70,0x6d,0x6c,0x6c,0x6f,0x6f,0x70,0x71,0x70,0x6f,0x71,0x74,0x78,0x7c,
0x7f,0x81,0x82,0x82,0x82,0x83,0x85,0x87,0x89,0x89,0x88,0x86,0x84,0x83,0x84,0x85,
0x86,0x88,0x87,0x87,0x88,0x86,0x89,0x8a,0x8d,0x90,0x92,0x94,0x8e,0x8b,0x86,0x82,
0x82,0x81,0x80,0x7e,0x7d,0x76,0x70,0x6e,0x6b,0x6c,0x6f,0x70,0x70,0x71,0x70,0x6e,
0x6f,0x72,0x75,0x79,0x7d,0x7f,0x7f,0x80,0x81,0x80,0x83,0x86,0x88,0x88,0x88,0x86,
0x83,0x83,0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x84,0x84,0x88,0x8a,0x8c,0x90,0x91,
0x93,0x95,0x92,0x8d,0x8d,0x86,0x84,0x84,0x7f,0x7e,0x7c,0x77,0x6f,0x6e,0x6b,0x6a,
0x6c,0x6e,0x6d,0x6f,0x70,0x6f,0x70,0x74,0x76,0x79,0x7d,0x7d,0x7e,0x7f,0x80,0x80,
0x83,0x84,0x84,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x83,
0x84,0x87,0x89,0x8b,0x8d,0x90,0x91,0x94,0x99,0x95,0x92,0x91,0x89,0x85,0x84,0x7f,
0x7c,0x7d,0x77,0x70,0x6e,0x69,0x66,0x68,0x6a,0x69,0x6d,0x70,0x6f,0x70,0x73,0x73,
0x77,0x7c,0x7e,0x81,0x83,0x84,0x82,0x83,0x84,0x84,0x86,0x86,0x86,0x84,0x83,0x80,
0x7f,0x7e,0x7f,0x80,0x80,0x81,0x81,0x83,0x84,0x86,0x89,0x8c,0x8e,0x94,0x95,0x99,
0x9b,0x94,0x93,0x8c,0x88,0x85,0x83,0x7e,0x7e,0x7b,0x72,0x6d,0x69,0x66,0x66,0x68,
0x68,0x6a,0x6d,0x6d,0x6d,0x70,0x73,0x76,0x7b,0x7f,0x80,0x83,0x84,0x84,0x84,0x85,
0x85,0x86,0x87,0x85,0x84,0x82,0x80,0x7e,0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x81,0x82,
0x84,0x88,0x8a,0x8e,0x91,0x94,0x96,0x9d,0x9a,0x96,0x94,0x8d,0x88,0x87,0x83,0x7e,
0x7f,0x79,0x70,0x6c,0x68,0x63,0x65,0x68,0x66,0x69,0x6d,0x6b,0x6c,0x71,0x73,0x77,
0x7d,0x7f,0x81,0x84,0x86,0x84,0x86,0x87,0x87,0x88,0x87,0x85,0x84,0x82,0x80,0x7e,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x80,0x81,0x85,0x86,0x8a,0x8f,0x91,0x95,0x98,0x9e,
0x9c,0x98,0x96,0x8e,0x8a,0x88,0x84,0x7e,0x7f,0x79,0x70,0x6d,0x67,0x63,0x64,0x67,
0x64,0x68,0x6c,0x6b,0x6d,0x71,0x73,0x78,0x7d,0x80,0x82,0x85,0x86,0x86,0x87,0x87,
0x88,0x88,0x86,0x85,0x83,0x81,0x7f,0x7e,0x7c,0x7c,0x7c,0x7b,0x7c,0x7d,0x7f,0x81,
0x84,0x87,0x8a,0x8f,0x91,0x95,0x97,0x9e,0xa0,0x99,0x9a,0x91,0x8b,0x89,0x86,0x7e,
0x80,0x7d,0x71,0x6e,0x69,0x63,0x62,0x67,0x64,0x66,0x6c,0x6b,0x6b,0x6f,0x72,0x75,
0x7c,0x80,0x82,0x85,0x87,0x86,0x86,0x88,0x88,0x89,0x88,0x87,0x84,0x81,0x7f,0x7c,
0x7a,0x7a,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x81,0x83,0x88,0x8c,0x91,0x93,0x96,0x99,
0x9f,0xa2,0x9a,0x9c,0x93,0x8d,0x8a,0x85,0x7f,0x7f,0x7d,0x70,0x6c,0x67,0x61,0x60,
0x64,0x62,0x64,0x6b,0x6a,0x6a,0x6e,0x72,0x75,0x7c,0x81,0x82,0x87,0x87,0x87,0x86,
0x88,0x88,0x89,0x89,0x87,0x85,0x81,0x7f,0x7b,0x7a,0x79,0x7a,0x79,0x78,0x79,0x7a,
0x7b,0x7e,0x81,0x85,0x8b,0x8f,0x91,0x95,0x9a,0x9d,0xa3,0x9e,0x9c,0x98,0x8f,0x8c,
0x87,0x82,0x7e,0x7e,0x73,0x6c,0x67,0x61,0x5f,0x61,0x63,0x62,0x68,0x6a,0x68,0x6c,
0x70,0x74,0x79,0x81,0x83,0x85,0x89,0x88,0x87,0x88,0x8a,0x8a,0x8a,0x89,0x86,0x83,
0x80,0x7d,0x7a,0x7a,0x7a,0x7a,0x78,0x79,0x78,0x7a,0x7b,0x7f,0x83,0x87,0x8c,0x90,
0x91,0x95,0x9a,0x9e,0xa3,0x9e,0x9d,0x97,0x8f,0x8c,0x85,0x80,0x7f,0x7c,0x72,0x6c,
0x66,0x60,0x60,0x61,0x60,0x63,0x68,0x69,0x69,0x6d,0x70,0x75,0x7b,0x81,0x83,0x87,
0x8a,0x89,0x88,0x8a,0x8a,0x8a,0x8a,0x89,0x86,0x82,0x7f,0x7b,0x79,0x78,0x79,0x78,
0x78,0x78,0x79,0x7a,0x7c,0x80,0x84,0x89,0x8f,0x91,0x93,0x9a,0x9b,0xa2,0xa5,0x9d,
0x9e,0x96,0x8e,0x89,0x85,0x7e,0x7d,0x7a,0x6d,0x69,0x63,0x5e,0x5d,0x60,0x60,0x63,
0x69,0x69,0x6a,0x6e,0x73,0x77,0x7e,0x84,0x87,0x8b,0x8c,0x8b,0x8a,0x8b,0x8b,0x8b,
0x8a,0x88,0x85,0x81,0x7d,0x79,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x79,0x7b,0x7f,
0x84,0x89,0x8e,0x91,0x95,0x98,0x9c,0xa0,0xa6,0x9f,0x9f,0x99,0x8e,0x8b,0x85,0x7f,
0x7c,0x7b,0x6f,0x69,0x64,0x5d,0x5c,0x5e,0x60,0x62,0x69,0x6a,0x6b,0x6f,0x73,0x77,
0x7d,0x85,0x87,0x8b,0x8d,0x8b,0x8a,0x8b,0x8b,0x8a,0x8b,0x89,0x85,0x81,0x7d,0x79,
0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x7b,0x7e,0x84,0x89,0x8e,0x92,0x95,0x98,
0x9c,0xa1,0xa6,0xa0,0x9f,0x99,0x8e,0x8b,0x85,0x7d,0x7c,0x7b,0x6f,0x69,0x64,0x5c,
0x5c,0x60,0x60,0x62,0x6a,0x6b,0x6b,0x70,0x73,0x77,0x7f,0x86,0x88,0x8b,0x8e,0x8c,
0x89,0x8b,0x8b,0x8a,0x8b,0x89,0x84,0x81,0x7d,0x78,0x75,0x76,0x75,0x75,0x75,0x75,
0x75,0x76,0x78,0x7b,0x81,0x87,0x8c,0x90,0x93,0x95,0x98,0x9b,0xa1,0xa6,0xa0,0x9f,
0x98,0x8d,0x87,0x83,0x7c,0x79,0x7b,0x6f,0x68,0x65,0x5e,0x5b,0x60,0x61,0x63,0x6b,
0x6e,0x6d,0x71,0x76,0x79,0x7e,0x86,0x88,0x8b,0x8d,0x8c,0x89,0x8a,0x8a,0x88,0x88,
0x87,0x83,0x7f,0x7c,0x77,0x74,0x74,0x75,0x74,0x75,0x76,0x76,0x77,0x7a,0x7e,0x83,
0x89,0x8d,0x90,0x94,0x97,0x9a,0x9d,0xa4,0xa3,0x9c,0x9b,0x92,0x89,0x86,0x81,0x7a,
0x7b,0x77,0x6a,0x66,0x63,0x5d,0x5e,0x63,0x63,0x67,0x6e,0x6e,0x6e,0x73,0x79,0x7c,
0x83,0x89,0x8a,0x8c,0x8e,0x8a,0x87,0x89,0x8a,0x87,0x87,0x85,0x80,0x7c,0x79,0x74,
0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x77,0x7b,0x7e,0x84,0x8a,0x8e,0x90,0x93,0x95,
0x98,0x9b,0xa2,0xa3,0x9e,0x9b,0x93,0x8a,0x84,0x82,0x7d,0x7b,0x7a,0x70,0x68,0x64,
0x60,0x5f,0x63,0x67,0x69,0x6e,0x70,0x70,0x71,0x77,0x7c,0x81,0x88,0x8b,0x8c,0x8b,
0x8a,0x87,0x86,0x88,0x88,0x87,0x86,0x82,0x7d,0x79,0x76,0x74,0x75,0x76,0x76,0x76,
0x75,0x75,0x75,0x78,0x7c,0x82,0x87,0x8b,0x8e,0x90,0x91,0x94,0x98,0x9b,0xa2,0xa1,
0x9b,0x97,0x90,0x88,0x83,0x83,0x7e,0x7d,0x7a,0x70,0x69,0x66,0x64,0x63,0x68,0x6a,
0x6d,0x70,0x70,0x70,0x72,0x78,0x7d,0x82,0x87,0x89,0x89,0x88,0x87,0x85,0x86,0x88,
0x88,0x87,0x85,0x81,0x7d,0x7a,0x77,0x77,0x77,0x78,0x77,0x76,0x75,0x75,0x76,0x78,
0x7b,0x80,0x84,0x87,0x89,0x8b,0x8d,0x90,0x93,0x97,0x9b,0x9d,0x99,0x94,0x8f,0x8a,
0x86,0x84,0x83,0x81,0x7e,0x78,0x71,0x6d,0x6b,0x6a,0x6c,0x6e,0x70,0x72,0x73,0x72,
0x72,0x75,0x79,0x7d,0x80,0x83,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x87,0x86,0x85,
0x83,0x80,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x79,0x7a,0x7c,0x7f,0x82,
0x84,0x86,0x87,0x88,0x8a,0x8c,0x8f,0x92,0x91,0x8f,0x8c,0x89,0x87,0x85,0x83,0x83,
0x83,0x80,0x7c,0x78,0x77,0x76,0x75,0x75,0x76,0x77,0x78,0x78,0x77,0x78,0x79,0x7a,
0x7c,0x7e,0x7f,0x80,0x81,0x80,0x80,0x80,0x81,0x82,0x82,0x81,0x81,0x80,0x7f,0x7e,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7e,0x7f,0x80,0x80,
0x81,0x82,0x83,0x85,0x87,0x88,0x89,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x85,
0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,
0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x83,
0x84,0x86,0x88,0x88,0x88,0x87,0x88,0x88,0x88,0x88,0x88,0x87,0x85,0x84,0x82,0x81,
0x80,0x7f,0x7f,0x7e,0x7e,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x85,0x87,
0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x88,0x87,0x86,0x84,0x83,0x82,0x81,0x80,
0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,
0x7d,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x85,0x87,0x88,0x89,0x89,
0x89,0x89,0x89,0x89,0x89,0x88,0x87,0x85,0x84,0x83,0x82,0x80,0x7f,0x7e,0x7e,0x7d,
0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x84,0x86,0x88,0x89,0x89,0x89,0x89,
0x89,0x89,0x89,0x88,0x88,0x86,0x85,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7f,0x7e,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x84,0x86,0x88,0x89,0x88,0x88,0x88,0x88,
0x88,0x88,0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,
0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,
0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x84,0x86,0x88,0x88,0x88,0x88,0x88,0x88,0x89,
0x88,0x88,0x87,0x85,0x84,0x83,0x82,0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,
0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
0x89,0x88,0x86,0x85,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,
0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,
0x7d,0x7e,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x8a,0x89,
0x89,0x87,0x86,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,
0x7d,0x7e,0x7f,0x81,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
0x89,0x87,0x86,0x85,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,
0x7c,0x7d,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,
0x89,0x87,0x86,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,
0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7e,0x7e,0x7e,
0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7b,
0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
0x89,0x89,0x87,0x86,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,
0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7a,
0x7b,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
0x8a,0x8a,0x89,0x87,0x86,0x84,0x83,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,
0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,
0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,
0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x84,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,
0x8a,0x8a,0x89,0x88,0x87,0x85,0x84,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x7a,
0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x8a,
0x8a,0x8a,0x8a,0x8a,0x89,0x88,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,
0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x81,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8b,
0x8b,0x8b,0x8a,0x8a,0x8a,0x89,0x88,0x87,0x85,0x84,0x82,0x81,0x7f,0x7e,0x7e,0x7d,
0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x83,0x85,0x87,0x89,0x8a,
0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x86,0x85,0x84,0x82,0x81,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x78,
0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x84,0x86,
0x88,0x89,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x87,0x86,0x85,0x84,0x82,
0x81,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,
0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7d,0x7e,0x7f,0x81,
0x82,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8b,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x87,
0x85,0x84,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,
0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7d,
0x7e,0x7f,0x81,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,
0x89,0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x79,
0x7a,0x7b,0x7c,0x7e,0x7f,0x80,0x82,0x84,0x85,0x87,0x89,0x8b,0x8c,0x8c,0x8c,0x8c,
0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,0x84,0x83,0x82,0x80,0x7f,0x7e,0x7e,0x7d,0x7c,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,0x81,0x82,0x84,0x86,0x87,0x89,0x8b,
0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x86,0x85,0x84,0x83,0x81,0x80,0x7f,
0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x77,
0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x83,0x84,
0x86,0x88,0x89,0x8b,0x8c,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,0x84,
0x84,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7d,0x7d,
0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,
0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,
0x80,0x81,0x83,0x85,0x86,0x88,0x8a,0x8c,0x8c,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,
0x88,0x86,0x85,0x84,0x83,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x79,0x79,
0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8d,0x8d,0x8d,0x8d,
0x8c,0x8c,0x8b,0x8a,0x89,0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7c,
0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x76,
0x77,0x77,0x78,0x79,0x79,0x7b,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x85,0x87,0x89,0x8b,
0x8c,0x8d,0x8e,0x8d,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x86,0x85,0x84,0x83,0x81,0x80,
0x7f,0x7e,0x7d,0x7d,0x7c,0x7a,0x78,0x78,0x7a,0x7d,0x80,0x81,0x7f,0x7d,0x7a,0x7a,
0x7b,0x7f,0x83,0x85,0x84,0x80,0x7c,0x79,0x79,0x7a,0x7c,0x7d,0x7d,0x7a,0x76,0x72,
0x71,0x72,0x75,0x78,0x79,0x78,0x77,0x76,0x76,0x78,0x7d,0x81,0x84,0x84,0x83,0x83,
0x86,0x8a,0x8f,0x92,0x90,0x8b,0x8b,0x8f,0x92,0x90,0x8b,0x85,0x84,0x85,0x86,0x83,
0x7f,0x7a,0x7b,0x7d,0x7c,0x78,0x77,0x78,0x7b,0x7c,0x7a,0x79,0x7b,0x7e,0x80,0x80,
0x7e,0x7f,0x82,0x84,0x82,0x80,0x81,0x83,0x82,0x80,0x7e,0x7d,0x7f,0x7e,0x7b,0x78,
0x78,0x78,0x78,0x75,0x72,0x74,0x77,0x76,0x74,0x74,0x76,0x79,0x7a,0x79,0x7a,0x7d,
0x80,0x81,0x81,0x83,0x86,0x89,0x89,0x8a,0x8c,0x92,0x91,0x8a,0x8c,0x93,0x94,0x8a,
0x86,0x88,0x8b,0x88,0x81,0x7d,0x7f,0x80,0x7e,0x7c,0x76,0x77,0x7b,0x7c,0x77,0x77,
0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x80,0x82,0x83,0x81,0x81,0x82,0x82,0x82,0x81,
0x7e,0x7e,0x7f,0x7e,0x7a,0x78,0x79,0x79,0x77,0x75,0x74,0x75,0x75,0x74,0x75,0x75,
0x76,0x78,0x79,0x7a,0x7b,0x7d,0x7f,0x81,0x82,0x85,0x86,0x87,0x88,0x8c,0x8d,0x8f,
0x91,0x8c,0x8f,0x94,0x93,0x89,0x8a,0x8c,0x8b,0x86,0x82,0x81,0x81,0x80,0x7c,0x7e,
0x7a,0x78,0x7a,0x7b,0x78,0x79,0x7b,0x79,0x7d,0x7f,0x7e,0x7d,0x81,0x82,0x82,0x82,
0x82,0x82,0x83,0x82,0x81,0x82,0x7f,0x7f,0x7e,0x7d,0x7b,0x79,0x79,0x78,0x77,0x76,
0x74,0x73,0x74,0x75,0x74,0x74,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7e,0x7f,0x81,0x83,
0x84,0x84,0x88,0x89,0x8c,0x8c,0x91,0x8f,0x8a,0x92,0x94,0x8e,0x88,0x8e,0x8a,0x88,
0x86,0x83,0x82,0x80,0x7f,0x7d,0x7e,0x78,0x7a,0x7a,0x7a,0x79,0x7a,0x79,0x7a,0x7e,
0x7d,0x7c,0x7f,0x81,0x80,0x81,0x82,0x82,0x81,0x82,0x82,0x81,0x80,0x7f,0x7e,0x7e,
0x7c,0x7a,0x79,0x78,0x77,0x75,0x75,0x73,0x73,0x74,0x73,0x73,0x74,0x75,0x76,0x77,
0x78,0x79,0x7b,0x7d,0x7e,0x81,0x82,0x84,0x85,0x88,0x88,0x8c,0x8c,0x91,0x8e,0x8a,
0x93,0x93,0x8e,0x89,0x8f,0x89,0x89,0x86,0x83,0x82,0x81,0x7f,0x7d,0x7f,0x78,0x7a,
0x7a,0x7a,0x79,0x7b,0x79,0x7b,0x7e,0x7d,0x7d,0x80,0x81,0x80,0x82,0x82,0x82,0x82,
0x83,0x82,0x81,0x81,0x7f,0x7e,0x7d,0x7c,0x79,0x79,0x78,0x76,0x75,0x74,0x74,0x73,
0x74,0x73,0x73,0x74,0x75,0x75,0x77,0x78,0x79,0x7a,0x7d,0x7e,0x80,0x82,0x82,0x85,
0x86,0x89,0x88,0x8c,0x8c,0x91,0x8d,0x8c,0x93,0x92,0x8c,0x8a,0x8f,0x88,0x88,0x86,
0x84,0x82,0x81,0x7e,0x7e,0x7e,0x79,0x7a,0x7b,0x7b,0x79,0x7b,0x7b,0x7d,0x7e,0x7e,
0x7e,0x81,0x81,0x80,0x83,0x83,0x81,0x82,0x83,0x82,0x80,0x80,0x7e,0x7e,0x7d,0x7b,
0x79,0x79,0x77,0x75,0x75,0x74,0x73,0x72,0x73,0x73,0x73,0x73,0x74,0x76,0x77,0x77,
0x7a,0x7b,0x7d,0x7e,0x81,0x82,0x84,0x85,0x87,0x89,0x89,0x8d,0x8d,0x92,0x8a,0x8f,
0x93,0x90,0x8b,0x8d,0x8d,0x87,0x89,0x84,0x84,0x81,0x81,0x7d,0x80,0x7c,0x7a,0x7c,
0x7c,0x7b,0x7a,0x7c,0x7c,0x7f,0x7e,0x7f,0x7f,0x82,0x81,0x82,0x83,0x82,0x82,0x82,
0x83,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x73,
0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x7a,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x86,
0x85,0x88,0x89,0x8d,0x8b,0x8f,0x8f,0x8a,0x90,0x91,0x8e,0x88,0x8f,0x89,0x88,0x87,
0x84,0x83,0x82,0x81,0x7f,0x80,0x7b,0x7d,0x7d,0x7d,0x7b,0x7d,0x7d,0x7d,0x7f,0x7f,
0x7f,0x80,0x81,0x81,0x82,0x82,0x81,0x81,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,
0x79,0x78,0x78,0x76,0x75,0x75,0x74,0x73,0x73,0x73,0x73,0x74,0x74,0x75,0x76,0x77,
0x78,0x7a,0x7c,0x7d,0x7e,0x80,0x82,0x84,0x85,0x86,0x87,0x8a,0x8c,0x8b,0x90,0x8a,
0x8e,0x92,0x8f,0x8a,0x8d,0x8c,0x87,0x89,0x85,0x84,0x81,0x82,0x7f,0x80,0x7d,0x7c,
0x7d,0x7d,0x7c,0x7b,0x7d,0x7c,0x7e,0x7f,0x7f,0x7e,0x80,0x80,0x81,0x81,0x81,0x80,
0x81,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x79,0x78,0x78,0x77,0x75,0x74,0x74,0x73,
0x73,0x73,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x81,0x82,
0x85,0x84,0x87,0x88,0x8a,0x8a,0x8d,0x8f,0x88,0x90,0x92,0x8d,0x89,0x8e,0x8a,0x88,
0x88,0x84,0x84,0x82,0x82,0x80,0x82,0x7c,0x7d,0x7f,0x7d,0x7b,0x7d,0x7e,0x7d,0x7f,
0x7f,0x7f,0x80,0x81,0x80,0x81,0x81,0x80,0x80,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,
0x7b,0x79,0x79,0x77,0x76,0x76,0x75,0x73,0x73,0x74,0x73,0x73,0x74,0x75,0x75,0x77,
0x77,0x78,0x7a,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x85,0x85,0x87,0x89,0x8b,0x8a,0x8e,
0x8e,0x8a,0x92,0x90,0x8c,0x8b,0x8f,0x88,0x8a,0x88,0x85,0x84,0x83,0x82,0x81,0x81,
0x7b,0x7f,0x7e,0x7d,0x7b,0x7e,0x7d,0x7d,0x7f,0x7f,0x7f,0x80,0x81,0x80,0x82,0x81,
0x80,0x81,0x82,0x7f,0x7f,0x7f,0x7e,0x7c,0x7c,0x7a,0x79,0x79,0x77,0x76,0x75,0x74,
0x73,0x74,0x73,0x72,0x73,0x74,0x75,0x75,0x77,0x77,0x79,0x7a,0x7c,0x7d,0x7f,0x80,
0x82,0x83,0x84,0x85,0x88,0x88,0x8a,0x8b,0x8c,0x8f,0x8a,0x90,0x90,0x8d,0x8a,0x8e,
0x89,0x88,0x8a,0x86,0x85,0x83,0x83,0x81,0x82,0x7d,0x7e,0x7f,0x7e,0x7c,0x7e,0x7e,
0x7d,0x7f,0x7f,0x7f,0x7f,0x81,0x80,0x81,0x81,0x80,0x80,0x81,0x80,0x7f,0x7e,0x7e,
0x7c,0x7c,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x73,0x73,0x74,0x74,
0x75,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7e,0x80,0x81,0x83,0x84,0x85,0x86,0x89,0x88,
0x8b,0x8b,0x8e,0x8c,0x8c,0x91,0x8e,0x8c,0x8b,0x8e,0x88,0x8a,0x86,0x86,0x83,0x83,
0x82,0x81,0x80,0x7d,0x80,0x7e,0x7e,0x7c,0x7f,0x7d,0x7e,0x7f,0x7f,0x7f,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x7e,0x7e,0x7d,0x7d,0x7b,0x7a,0x79,0x78,0x77,0x76,
0x75,0x74,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,
0x7d,0x7f,0x80,0x82,0x83,0x84,0x86,0x87,0x89,0x89,0x8b,0x8b,0x8f,0x8a,0x8e,0x91,
0x8d,0x8b,0x8d,0x8b,0x88,0x8b,0x86,0x86,0x83,0x84,0x81,0x82,0x7e,0x7e,0x80,0x7e,
0x7d,0x7d,0x7f,0x7d,0x7f,0x7f,0x7f,0x7e,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,
0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x72,
0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x85,
0x86,0x88,0x88,0x8a,0x8b,0x8c,0x8e,0x8a,0x8f,0x90,0x8d,0x8b,0x8d,0x8a,0x89,0x89,
0x86,0x86,0x84,0x83,0x83,0x82,0x7e,0x7f,0x80,0x7e,0x7d,0x7f,0x7f,0x7e,0x7f,0x80,
0x7e,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7e,0x7e,0x7e,0x7d,0x7b,0x7b,0x7a,
0x78,0x78,0x77,0x76,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x74,0x74,0x75,0x76,0x77,
0x78,0x79,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x83,0x83,0x85,0x86,0x87,0x88,0x8a,0x8a,
0x8d,0x8e,0x8a,0x90,0x90,0x8d,0x8c,0x8e,0x8b,0x89,0x8a,0x87,0x86,0x84,0x84,0x82,
0x83,0x7e,0x7f,0x80,0x7f,0x7d,0x7e,0x7e,0x7d,0x7f,0x7f,0x7e,0x7e,0x80,0x7f,0x80,
0x7f,0x7f,0x7f,0x80,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x78,0x78,0x77,0x76,0x75,
0x75,0x74,0x74,0x73,0x73,0x73,0x74,0x75,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7e,
0x7f,0x80,0x81,0x83,0x84,0x85,0x87,0x88,0x89,0x8a,0x8b,0x8d,0x8c,0x8c,0x90,0x8e,
0x8c,0x8c,0x8d,0x89,0x8a,0x89,0x87,0x85,0x85,0x83,0x82,0x81,0x7f,0x80,0x7f,0x7f,
0x7d,0x7f,0x7e,0x7e,0x7f,0x7f,0x7e,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,
0x7d,0x7d,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x75,0x75,0x74,0x74,0x73,0x74,0x73,
0x73,0x74,0x75,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,
0x84,0x86,0x87,0x88,0x88,0x8a,0x8b,0x8e,0x89,0x8e,0x90,0x8d,0x8c,0x8d,0x8c,0x89,
0x8b,0x87,0x87,0x85,0x85,0x82,0x83,0x80,0x7f,0x81,0x7f,0x7d,0x7e,0x7f,0x7c,0x7f,
0x7f,0x7e,0x7d,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,
0x7a,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x74,0x75,0x75,
0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7d,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x88,0x88,
0x8a,0x8a,0x8d,0x8b,0x8b,0x8f,0x8e,0x8c,0x8b,0x8d,0x89,0x8a,0x89,0x87,0x85,0x85,
0x84,0x83,0x82,0x7f,0x80,0x80,0x7f,0x7e,0x7f,0x7e,0x7e,0x7f,0x7f,0x7e,0x7f,0x80,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7b,0x7b,0x7a,0x79,0x78,0x78,
0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x76,0x77,0x79,0x79,
0x7b,0x7c,0x7e,0x7f,0x80,0x81,0x83,0x84,0x86,0x86,0x88,0x89,0x89,0x8b,0x8c,0x8e,
0x8b,0x90,0x8f,0x8e,0x8c,0x8e,0x8c,0x8a,0x8b,0x88,0x87,0x86,0x85,0x83,0x84,0x80,
0x80,0x81,0x7f,0x7e,0x7f,0x7f,0x7d,0x7f,0x7f,0x7e,0x7e,0x80,0x7f,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x79,0x79,0x78,0x77,0x76,0x75,0x74,
0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x75,0x75,0x76,0x78,0x79,0x7a,0x7c,0x7d,0x7e,
0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x89,0x8b,0x8b,0x8c,0x8e,0x8b,0x8f,0x8f,
0x8e,0x8c,0x8d,0x8c,0x8a,0x8a,0x88,0x86,0x85,0x85,0x83,0x83,0x80,0x80,0x80,0x80,
0x7e,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7e,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x76,0x75,0x74,0x74,0x73,0x73,0x72,
0x72,0x72,0x73,0x73,0x74,0x74,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7e,0x80,0x81,0x82,
0x83,0x85,0x86,0x87,0x87,0x89,0x8a,0x8b,0x8b,0x8c,0x8b,0x8c,0x8f,0x8d,0x8c,0x8b,
0x8c,0x89,0x8a,0x88,0x87,0x85,0x85,0x84,0x83,0x81,0x80,0x81,0x80,0x7f,0x7e,0x80,
0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,
0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x72,0x73,
0x73,0x74,0x74,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x80,0x82,0x83,0x85,0x85,
0x86,0x87,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8b,0x8d,0x8e,0x8d,0x8c,0x8c,0x8b,0x8a,
0x8a,0x88,0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,
0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7b,0x7b,
0x7a,0x78,0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,
0x75,0x75,0x77,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,
0x88,0x89,0x8a,0x8a,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8b,0x8c,0x8a,0x8a,0x88,
0x88,0x87,0x86,0x85,0x84,0x84,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,
0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x72,0x72,0x71,0x72,0x72,0x73,0x73,0x74,0x75,
0x76,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,0x87,0x88,
0x89,0x89,0x8a,0x8b,0x8c,0x8b,0x8c,0x8d,0x8d,0x8c,0x8c,0x8c,0x8a,0x8a,0x89,0x89,
0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x80,0x80,
0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,
0x75,0x75,0x74,0x73,0x72,0x72,0x71,0x72,0x71,0x72,0x72,0x73,0x74,0x75,0x76,0x77,
0x78,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,
0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x87,0x88,
0x86,0x86,0x85,0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,
0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
0x74,0x73,0x72,0x72,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x79,
0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x86,0x87,0x88,0x88,0x89,
0x8a,0x8b,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x87,
0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,
0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x7a,
0x7b,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x89,0x8a,
0x8a,0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,
0x86,0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,
0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x74,0x74,
0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,
0x7c,0x7d,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,
0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,
0x86,0x85,0x84,0x84,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x73,
0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x74,0x75,0x76,0x77,0x79,0x7a,0x7c,
0x7d,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x89,0x8a,0x8b,
0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x88,0x87,
0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x80,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,
0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x73,0x73,
0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,
0x7d,0x7f,0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8e,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,
0x85,0x85,0x84,0x83,0x82,0x82,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,
0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x74,0x74,0x73,0x73,
0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x78,0x79,0x7a,0x7c,0x7d,
0x7e,0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,
0x85,0x84,0x83,0x83,0x82,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,
0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x73,0x73,0x73,
0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7e,
0x7f,0x80,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x88,0x87,0x86,
0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,
0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x74,0x73,0x73,0x72,
0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,
0x84,0x83,0x82,0x82,0x81,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x72,
0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,
0x83,0x82,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x74,0x73,0x73,0x73,0x72,
0x72,0x72,0x73,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,0x7f,
0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,
0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x87,0x86,0x85,0x84,
0x83,0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,
0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x73,
0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7f,0x80,0x81,
0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,
0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,
0x82,0x81,0x81,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x75,0x74,0x74,0x74,0x73,0x73,0x73,
0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x82,
0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,
0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,
0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,
0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,
0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,
0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x84,0x83,0x82,0x81,0x81,
0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,
0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x74,
0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,0x80,0x82,0x83,0x84,0x85,
0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,
0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x80,0x80,
0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,
0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,
0x87,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,
0x89,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x76,0x77,
0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,0x87,0x88,
0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x89,0x88,
0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x78,0x79,
0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x8a,
0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x86,
0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,
0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7c,0x7d,
0x7e,0x7f,0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8b,0x8c,
0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x84,0x83,
0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x75,
0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,
0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8b,0x8b,0x8b,
0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x81,
0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,0x84,
0x85,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x8a,0x89,
0x89,0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,
0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
0x79,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x78,
0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
0x88,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x86,
0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,
0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7c,
0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x89,
0x89,0x89,0x89,0x89,0x89,0x89,0x88,0x88,0x88,0x87,0x86,0x86,0x85,0x84,0x84,0x83,
0x82,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,
0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x81,
0x82,0x83,0x83,0x84,0x85,0x86,0x86,0x87,0x87,0x88,0x88,0x89,0x89,0x89,0x89,0x89,
0x88,0x88,0x88,0x87,0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x80,
0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,
0x7a,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,
0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,0x83,0x84,0x84,
0x85,0x86,0x86,0x87,0x87,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x86,
0x86,0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,
0x7d,0x7e,0x7f,0x7f,0x80,0x81,0x82,0x82,0x83,0x84,0x84,0x85,0x86,0x86,0x86,0x87,
0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x82,
0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x81,
0x82,0x82,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
0x85,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,
0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x84,
0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,
0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,
0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,
0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,
0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,
0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,
0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,
0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,
0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,
0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,
0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,
0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x81,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x80,0x81,0x7a,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x81,0x7f,0x81,
0x81,0x82,0x83,0x82,0x86,0x84,0x84,0x83,0x81,0x82,0x82,0x82,0x80,0x80,0x80,0x7e,
0x80,0x80,0x7e,0x7e,0x7d,0x7e,0x7c,0x7f,0x7f,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x80,
0x7f,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x81,0x80,0x80,0x81,0x80,0x7b,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7a,0x7f,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x83,0x81,0x82,0x82,
0x80,0x82,0x82,0x82,0x7f,0x80,0x81,0x7f,0x81,0x80,0x7e,0x7e,0x7f,0x7e,0x7d,0x7f,
0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x7f,0x80,0x82,0x82,0x82,0x84,0x84,0x85,0x86,
0x86,0x86,0x86,0x87,0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x86,0x87,0x87,0x86,0x85,
0x84,0x83,0x82,0x82,0x80,0x7e,0x7d,0x7b,0x79,0x78,0x77,0x75,0x74,0x73,0x74,0x73,
0x73,0x72,0x73,0x74,0x75,0x76,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,
0x81,0x81,0x82,0x83,0x84,0x84,0x85,0x86,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8a,
0x8a,0x8c,0x8d,0x8e,0x8e,0x8f,0x8f,0x8c,0x8b,0x8b,0x8b,0x89,0x85,0x81,0x7f,0x7e,
0x7b,0x77,0x74,0x72,0x71,0x6f,0x6e,0x6e,0x6d,0x6e,0x6e,0x6f,0x71,0x74,0x75,0x76,
0x79,0x7c,0x7f,0x80,0x81,0x83,0x85,0x86,0x86,0x86,0x86,0x85,0x83,0x81,0x81,0x80,
0x7e,0x7b,0x79,0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x7a,0x7c,0x7f,0x82,0x83,0x86,
0x89,0x8e,0x91,0x94,0x94,0x9a,0x9d,0x94,0x98,0x94,0x96,0x92,0x8c,0x87,0x81,0x82,
0x79,0x75,0x71,0x6d,0x6c,0x67,0x65,0x66,0x67,0x67,0x67,0x6a,0x6e,0x71,0x75,0x76,
0x7c,0x81,0x83,0x86,0x87,0x8b,0x8d,0x8d,0x8d,0x8c,0x8c,0x89,0x85,0x83,0x81,0x7f,
0x7a,0x76,0x74,0x73,0x72,0x70,0x70,0x72,0x73,0x77,0x79,0x7d,0x80,0x85,0x8a,0x8e,
0x92,0x98,0x9b,0x9d,0xa1,0x9b,0x9b,0x9b,0x9a,0x96,0x8e,0x89,0x81,0x80,0x78,0x71,
0x6d,0x68,0x65,0x62,0x60,0x60,0x61,0x62,0x63,0x68,0x6d,0x71,0x76,0x79,0x7f,0x85,
0x89,0x8c,0x8f,0x91,0x93,0x94,0x93,0x92,0x90,0x8d,0x89,0x86,0x82,0x7f,0x7b,0x75,
0x72,0x70,0x6e,0x6b,0x69,0x69,0x6a,0x6c,0x6d,0x71,0x75,0x79,0x7d,0x82,0x86,0x8c,
0x90,0x94,0x97,0x9c,0x9d,0xa0,0xa1,0xa5,0xa6,0x97,0x98,0x92,0x93,0x8d,0x82,0x79,
0x72,0x73,0x69,0x65,0x61,0x5e,0x60,0x5e,0x5e,0x63,0x67,0x69,0x6d,0x73,0x7a,0x81,
0x85,0x86,0x8c,0x92,0x93,0x93,0x92,0x93,0x93,0x91,0x8c,0x88,0x85,0x80,0x7a,0x75,
0x72,0x6f,0x6b,0x67,0x67,0x68,0x6b,0x6c,0x6f,0x74,0x7a,0x80,0x85,0x8a,0x90,0x96,
0x9a,0x9e,0xa2,0xa6,0xa7,0xaa,0xa5,0x9b,0x9d,0x99,0x93,0x8a,0x80,0x78,0x73,0x6d,
0x64,0x5f,0x5c,0x59,0x59,0x59,0x5a,0x5f,0x63,0x67,0x6e,0x77,0x7d,0x83,0x87,0x8d,
0x94,0x97,0x97,0x98,0x98,0x98,0x96,0x92,0x8d,0x88,0x83,0x7e,0x7a,0x75,0x70,0x6b,
0x68,0x67,0x67,0x67,0x67,0x69,0x6d,0x71,0x75,0x7a,0x80,0x86,0x8b,0x8f,0x95,0x99,
0x9d,0x9e,0xa0,0xa2,0xa4,0xa4,0xa5,0xa3,0x93,0x94,0x8d,0x89,0x84,0x78,0x70,0x69,
0x67,0x60,0x5d,0x5b,0x58,0x5c,0x5e,0x61,0x67,0x6c,0x71,0x78,0x80,0x86,0x8c,0x8f,
0x91,0x96,0x98,0x98,0x96,0x93,0x90,0x8d,0x89,0x83,0x7f,0x7a,0x72,0x6e,0x6a,0x68,
0x67,0x64,0x63,0x65,0x69,0x6d,0x71,0x76,0x7c,0x83,0x8b,0x8f,0x96,0x9a,0x9f,0xa1,
0xa3,0xa5,0xa7,0xa8,0xa6,0xa6,0x99,0x92,0x90,0x89,0x83,0x77,0x6d,0x66,0x63,0x5e,
0x58,0x57,0x56,0x58,0x5d,0x5f,0x65,0x6c,0x72,0x78,0x81,0x88,0x8e,0x92,0x94,0x97,
0x9b,0x9a,0x97,0x94,0x90,0x8c,0x87,0x81,0x7b,0x76,0x71,0x6c,0x69,0x65,0x63,0x63,
0x63,0x66,0x69,0x6c,0x70,0x76,0x7d,0x84,0x8a,0x8f,0x94,0x99,0x9e,0xa0,0xa2,0xa2,
0xa4,0xa3,0xa3,0xa2,0xa5,0x98,0x8b,0x8a,0x85,0x83,0x77,0x6b,0x63,0x63,0x60,0x5a,
0x59,0x59,0x5b,0x60,0x63,0x68,0x72,0x76,0x7b,0x82,0x8a,0x90,0x94,0x94,0x95,0x98,
0x98,0x94,0x8f,0x8b,0x88,0x83,0x7c,0x77,0x73,0x6e,0x68,0x66,0x65,0x66,0x65,0x64,
0x68,0x6e,0x73,0x76,0x7b,0x81,0x8a,0x8f,0x93,0x97,0x9c,0x9e,0xa1,0xa1,0xa1,0xa1,
0xa1,0xa1,0xa0,0xa0,0x90,0x88,0x87,0x81,0x7d,0x73,0x68,0x63,0x61,0x5e,0x5a,0x5c,
0x5c,0x5f,0x64,0x67,0x70,0x77,0x7b,0x80,0x88,0x8e,0x93,0x94,0x93,0x95,0x97,0x93,
0x8f,0x8a,0x86,0x82,0x7c,0x77,0x72,0x6f,0x6a,0x68,0x67,0x66,0x67,0x68,0x6b,0x6f,
0x73,0x78,0x7c,0x81,0x87,0x8c,0x91,0x94,0x98,0x9a,0x9d,0x9e,0x9e,0x9e,0x9d,0x9d,
0x9e,0x9f,0x9b,0x8a,0x88,0x85,0x81,0x7c,0x6f,0x68,0x64,0x64,0x5e,0x5d,0x5e,0x5f,
0x63,0x66,0x6b,0x74,0x7a,0x7c,0x83,0x8a,0x90,0x93,0x92,0x91,0x94,0x94,0x90,0x8b,
0x87,0x83,0x80,0x7a,0x75,0x72,0x6f,0x6a,0x68,0x68,0x69,0x6a,0x6a,0x6c,0x71,0x77,
0x7b,0x7f,0x83,0x8a,0x8f,0x93,0x96,0x99,0x9b,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0xa0,
0xa0,0x90,0x86,0x82,0x84,0x7e,0x75,0x66,0x62,0x63,0x60,0x5c,0x5b,0x5e,0x61,0x67,
0x69,0x73,0x7a,0x7e,0x81,0x89,0x90,0x95,0x95,0x91,0x92,0x95,0x92,0x8c,0x86,0x81,
0x7f,0x79,0x74,0x6f,0x6d,0x6a,0x66,0x65,0x68,0x6a,0x6b,0x6b,0x71,0x78,0x7c,0x7f,
0x83,0x89,0x8f,0x93,0x95,0x98,0x9b,0x9c,0x9d,0x9c,0x9d,0x9b,0x9c,0x9d,0xa0,0x99,
0x87,0x84,0x82,0x80,0x7b,0x6d,0x63,0x62,0x61,0x5f,0x5d,0x5f,0x5f,0x65,0x69,0x6f,
0x79,0x7d,0x80,0x86,0x8d,0x92,0x96,0x93,0x91,0x93,0x91,0x8c,0x87,0x81,0x7d,0x79,
0x73,0x6f,0x6d,0x6a,0x66,0x66,0x67,0x69,0x6c,0x6e,0x71,0x76,0x7c,0x81,0x85,0x88,
0x8e,0x92,0x96,0x98,0x9a,0x9b,0x9b,0x9a,0x9b,0x9d,0x9e,0x9c,0x9f,0x99,0x86,0x86,
0x81,0x81,0x7a,0x6c,0x63,0x61,0x61,0x5c,0x5d,0x5d,0x5f,0x65,0x6a,0x6f,0x7a,0x7f,
0x82,0x88,0x8e,0x94,0x96,0x94,0x91,0x93,0x91,0x8c,0x86,0x80,0x7b,0x77,0x72,0x6e,
0x6c,0x69,0x66,0x64,0x66,0x6b,0x6e,0x6e,0x70,0x77,0x7e,0x83,0x85,0x89,0x8e,0x93,
0x97,0x98,0x9a,0x9b,0x9b,0x9b,0x9c,0x9e,0x9e,0x9c,0xa0,0x95,0x88,0x86,0x80,0x7f,
0x77,0x6c,0x62,0x61,0x5f,0x5c,0x5e,0x5e,0x61,0x67,0x6b,0x72,0x7d,0x81,0x85,0x8b,
0x90,0x94,0x97,0x94,0x92,0x92,0x8e,0x8a,0x84,0x7e,0x79,0x75,0x70,0x6c,0x6b,0x69,
0x67,0x66,0x67,0x6c,0x70,0x72,0x75,0x79,0x7f,0x85,0x89,0x89,0x8d,0x90,0x94,0x96,
0x97,0x96,0x97,0x97,0x97,0x99,0x99,0x9a,0x9a,0x9f,0x8b,0x89,0x84,0x7f,0x80,0x73,
0x6c,0x62,0x66,0x5e,0x61,0x60,0x60,0x65,0x6a,0x6d,0x77,0x7f,0x80,0x87,0x8b,0x91,
0x93,0x96,0x90,0x91,0x8f,0x8b,0x87,0x81,0x7c,0x78,0x74,0x70,0x6d,0x6b,0x69,0x67,
0x69,0x6a,0x6e,0x70,0x72,0x77,0x7d,0x81,0x85,0x88,0x8d,0x91,0x95,0x96,0x98,0x9a,
0x9c,0x9c,0x9b,0x9a,0x9d,0x9e,0xa2,0x9c,0x85,0x86,0x82,0x81,0x7a,0x6b,0x61,0x60,
0x61,0x5b,0x5e,0x5d,0x5f,0x66,0x6c,0x71,0x7e,0x82,0x85,0x8b,0x92,0x97,0x99,0x95,
0x91,0x92,0x90,0x8a,0x83,0x7c,0x77,0x73,0x6f,0x6c,0x69,0x67,0x62,0x64,0x68,0x6d,
0x6f,0x70,0x74,0x7c,0x83,0x87,0x8a,0x8e,0x91,0x96,0x98,0x99,0x9a,0x99,0x99,0x9a,
0x9b,0x9b,0x9d,0x9c,0x9f,0x8b,0x83,0x81,0x7f,0x7f,0x70,0x65,0x5c,0x62,0x5f,0x5e,
0x5e,0x5f,0x65,0x6d,0x70,0x79,0x83,0x85,0x8a,0x8e,0x95,0x98,0x97,0x91,0x90,0x8f,
0x8b,0x84,0x7d,0x76,0x73,0x6f,0x6b,0x69,0x68,0x67,0x66,0x68,0x6a,0x70,0x72,0x76,
0x7a,0x80,0x84,0x89,0x8a,0x8f,0x91,0x94,0x94,0x96,0x97,0x97,0x97,0x98,0x98,0x9a,
0x9c,0x9c,0xa0,0x87,0x88,0x82,0x80,0x7d,0x71,0x67,0x5f,0x64,0x5a,0x60,0x5f,0x61,
0x64,0x6c,0x6f,0x7c,0x82,0x83,0x8a,0x8f,0x95,0x95,0x96,0x8f,0x91,0x8e,0x88,0x83,
0x7f,0x78,0x73,0x6e,0x6c,0x6a,0x69,0x65,0x63,0x67,0x6c,0x72,0x73,0x74,0x79,0x81,
0x87,0x8b,0x8c,0x8f,0x91,0x95,0x96,0x98,0x97,0x96,0x95,0x97,0x97,0x9b,0x9a,0x9c,
0x9b,0x85,0x87,0x81,0x81,0x7c,0x70,0x64,0x61,0x64,0x5d,0x60,0x60,0x61,0x67,0x6e,
0x71,0x7e,0x82,0x85,0x8a,0x90,0x94,0x96,0x94,0x8f,0x8f,0x8d,0x87,0x81,0x7b,0x76,
0x73,0x6f,0x6c,0x69,0x68,0x66,0x67,0x69,0x6d,0x71,0x73,0x75,0x7c,0x81,0x86,0x89,
0x8c,0x90,0x93,0x95,0x96,0x97,0x96,0x98,0x99,0x9b,0x99,0x9c,0x9a,0xa2,0x93,0x85,
0x85,0x7f,0x80,0x75,0x6a,0x60,0x63,0x5f,0x5d,0x5f,0x60,0x64,0x6c,0x6e,0x77,0x82,
0x85,0x89,0x8d,0x93,0x96,0x98,0x92,0x8f,0x8f,0x8b,0x84,0x7e,0x78,0x74,0x70,0x6b,
0x69,0x69,0x68,0x67,0x68,0x6a,0x6f,0x74,0x77,0x7a,0x80,0x83,0x88,0x8b,0x8e,0x91,
0x93,0x93,0x95,0x96,0x96,0x96,0x95,0x97,0x98,0x9b,0x9b,0xa3,0x8c,0x85,0x84,0x82,
0x82,0x75,0x69,0x60,0x65,0x5e,0x60,0x61,0x60,0x65,0x6b,0x6f,0x7a,0x83,0x83,0x88,
0x8d,0x93,0x96,0x96,0x90,0x8f,0x8e,0x89,0x84,0x7e,0x78,0x74,0x70,0x6c,0x6b,0x6a,
0x68,0x66,0x68,0x6c,0x71,0x74,0x76,0x7a,0x7f,0x84,0x89,0x8b,0x8e,0x91,0x94,0x96,
0x98,0x97,0x98,0x98,0x99,0x99,0x9c,0x9a,0x9f,0x9b,0x84,0x85,0x80,0x81,0x79,0x6d,
0x61,0x60,0x62,0x5b,0x60,0x60,0x63,0x69,0x6e,0x74,0x81,0x84,0x87,0x8c,0x92,0x96,
0x97,0x94,0x8e,0x8f,0x8c,0x85,0x7f,0x79,0x75,0x71,0x6c,0x69,0x68,0x68,0x66,0x67,
0x69,0x6f,0x74,0x76,0x79,0x7f,0x84,0x88,0x8b,0x8d,0x90,0x92,0x94,0x94,0x96,0x95,
0x97,0x94,0x96,0x96,0x9a,0x99,0xa2,0x90,0x83,0x87,0x80,0x82,0x73,0x6b,0x61,0x67,
0x5f,0x5c,0x60,0x60,0x66,0x6b,0x6f,0x77,0x84,0x83,0x88,0x8c,0x94,0x95,0x96,0x90,
0x8e,0x8f,0x89,0x83,0x7d,0x78,0x73,0x70,0x6b,0x6a,0x69,0x67,0x67,0x6b,0x6e,0x71,
0x73,0x77,0x7c,0x82,0x84,0x88,0x8a,0x8d,0x8f,0x91,0x92,0x93,0x94,0x92,0x94,0x95,
0x97,0x97,0x99,0x9a,0xa2,0x8e,0x86,0x86,0x80,0x83,0x75,0x6a,0x61,0x65,0x5f,0x5f,
0x61,0x60,0x66,0x6b,0x6e,0x79,0x82,0x83,0x88,0x8d,0x93,0x96,0x96,0x90,0x8e,0x8d,
0x89,0x83,0x7d,0x77,0x74,0x70,0x6c,0x6a,0x69,0x67,0x68,0x6a,0x6d,0x72,0x75,0x77,
0x7b,0x81,0x85,0x8a,0x8b,0x8d,0x90,0x94,0x93,0x95,0x94,0x96,0x96,0x97,0x97,0x9a,
0x9b,0x9f,0x9b,0x84,0x87,0x83,0x82,0x7c,0x6e,0x64,0x61,0x63,0x5c,0x60,0x60,0x62,
0x68,0x6e,0x74,0x81,0x84,0x86,0x8b,0x92,0x96,0x97,0x94,0x8e,0x8e,0x8b,0x85,0x7f,
0x7a,0x74,0x71,0x6c,0x6a,0x69,0x68,0x68,0x69,0x6c,0x71,0x73,0x76,0x7b,0x80,0x84,
0x87,0x8a,0x8c,0x8f,0x90,0x91,0x92,0x94,0x92,0x93,0x92,0x95,0x95,0x99,0x98,0x9e,
0x9a,0x85,0x88,0x81,0x84,0x7c,0x6f,0x64,0x65,0x65,0x5e,0x62,0x61,0x64,0x6a,0x6f,
0x74,0x81,0x84,0x86,0x8a,0x90,0x94,0x96,0x92,0x8d,0x8e,0x8b,0x85,0x7f,0x79,0x74,
0x73,0x6e,0x6b,0x6a,0x69,0x67,0x68,0x6c,0x71,0x75,0x76,0x79,0x7f,0x85,0x89,0x8c,
0x8d,0x90,0x93,0x94,0x96,0x95,0x95,0x96,0x96,0x97,0x98,0x9a,0x9b,0x9e,0x87,0x83,
0x85,0x7f,0x7f,0x71,0x66,0x61,0x65,0x5f,0x60,0x63,0x62,0x69,0x6f,0x73,0x7f,0x86,
0x86,0x8b,0x8f,0x94,0x96,0x94,0x8e,0x8d,0x8c,0x85,0x80,0x7a,0x74,0x71,0x6e,0x6b,
0x6a,0x69,0x68,0x6a,0x6e,0x72,0x75,0x76,0x79,0x7f,0x85,0x86,0x88,0x89,0x8c,0x8e,
0x8f,0x8f,0x91,0x90,0x91,0x92,0x94,0x95,0x96,0x97,0x9c,0xa3,0x8c,0x89,0x83,0x81,
0x83,0x77,0x69,0x62,0x65,0x5f,0x62,0x60,0x61,0x67,0x6c,0x6f,0x7b,0x83,0x85,0x88,
0x8c,0x92,0x96,0x96,0x8e,0x8d,0x8c,0x88,0x83,0x7d,0x76,0x74,0x70,0x6d,0x6a,0x6a,
0x67,0x67,0x69,0x6e,0x73,0x75,0x76,0x7b,0x81,0x86,0x8a,0x8c,0x8e,0x91,0x94,0x94,
0x95,0x95,0x96,0x94,0x96,0x97,0x9c,0x98,0x9e,0x93,0x81,0x88,0x82,0x81,0x76,0x6b,
0x61,0x65,0x63,0x5c,0x62,0x62,0x66,0x6c,0x71,0x78,0x84,0x85,0x87,0x8d,0x93,0x95,
0x95,0x90,0x8c,0x8d,0x88,0x81,0x7c,0x77,0x73,0x70,0x6b,0x6a,0x6a,0x69,0x69,0x6c,
0x6f,0x73,0x75,0x78,0x7c,0x82,0x86,0x88,0x8a,0x8b,0x8e,0x8f,0x91,0x91,0x92,0x90,
0x91,0x92,0x95,0x95,0x98,0x97,0xa0,0x9a,0x85,0x88,0x81,0x84,0x7c,0x70,0x64,0x65,
0x64,0x5d,0x62,0x62,0x66,0x6b,0x6e,0x74,0x81,0x84,0x86,0x8b,0x90,0x94,0x96,0x92,
0x8c,0x8d,0x89,0x83,0x7e,0x78,0x75,0x72,0x6d,0x6a,0x6b,0x6a,0x69,0x6a,0x6d,0x71,
0x74,0x77,0x7b,0x81,0x84,0x88,0x8a,0x8d,0x90,0x92,0x92,0x94,0x94,0x93,0x93,0x95,
0x96,0x99,0x9a,0x9b,0xa0,0x8a,0x86,0x84,0x83,0x81,0x74,0x66,0x60,0x66,0x5f,0x60,
0x61,0x61,0x68,0x6e,0x73,0x7e,0x85,0x85,0x8a,0x8f,0x94,0x96,0x94,0x8e,0x8d,0x8b,
0x86,0x80,0x7a,0x75,0x72,0x6f,0x6b,0x6a,0x6a,0x68,0x69,0x6b,0x70,0x74,0x76,0x79,
0x7e,0x84,0x87,0x8a,0x8b,0x8e,0x90,0x92,0x91,0x94,0x93,0x93,0x91,0x94,0x97,0x99,
0x97,0x9b,0x9d,0x88,0x88,0x81,0x81,0x7f,0x73,0x67,0x62,0x67,0x60,0x63,0x61,0x63,
0x6b,0x70,0x73,0x7e,0x84,0x86,0x8a,0x8e,0x92,0x95,0x93,0x8c,0x8b,0x89,0x85,0x7f,
0x7a,0x75,0x73,0x6f,0x6c,0x6a,0x6a,0x69,0x6a,0x6e,0x71,0x75,0x77,0x79,0x7f,0x84,
0x87,0x8a,0x8a,0x8d,0x8f,0x91,0x91,0x92,0x91,0x92,0x92,0x94,0x96,0x99,0x97,0x9b,
0x9b,0x8a,0x89,0x82,0x81,0x7d,0x72,0x67,0x63,0x64,0x5f,0x62,0x62,0x64,0x6a,0x6f,
0x74,0x7e,0x84,0x86,0x8b,0x8e,0x92,0x94,0x92,0x8d,0x8c,0x89,0x84,0x7f,0x7a,0x75,
0x72,0x6f,0x6c,0x6b,0x6b,0x6a,0x6c,0x6e,0x72,0x76,0x77,0x7a,0x7f,0x83,0x85,0x87,
0x87,0x8b,0x8d,0x8d,0x8d,0x8e,0x8f,0x8f,0x90,0x90,0x94,0x98,0x9b,0x9a,0xa1,0x94,
0x89,0x8a,0x83,0x83,0x79,0x6f,0x63,0x65,0x61,0x5e,0x62,0x60,0x65,0x6b,0x6f,0x76,
0x81,0x83,0x87,0x8c,0x90,0x93,0x95,0x91,0x8d,0x8c,0x88,0x83,0x7f,0x79,0x75,0x72,
0x6d,0x6c,0x6b,0x6b,0x6a,0x6b,0x6d,0x71,0x75,0x77,0x7a,0x7f,0x84,0x87,0x88,0x89,
0x8d,0x8f,0x90,0x90,0x91,0x92,0x93,0x93,0x95,0x97,0x9b,0x99,0xa0,0x96,0x86,0x89,
0x80,0x82,0x79,0x6e,0x63,0x64,0x62,0x5e,0x64,0x61,0x66,0x6c,0x70,0x77,0x82,0x85,
0x87,0x8d,0x90,0x93,0x95,0x90,0x8c,0x8b,0x87,0x82,0x7e,0x77,0x73,0x71,0x6d,0x6c,
0x6b,0x69,0x69,0x6c,0x6f,0x74,0x76,0x78,0x7b,0x81,0x86,0x89,0x8a,0x8b,0x8e,0x91,
0x91,0x92,0x91,0x92,0x93,0x93,0x94,0x99,0x9a,0x9c,0x9f,0x8d,0x86,0x87,0x82,0x81,
0x76,0x69,0x62,0x65,0x60,0x60,0x64,0x61,0x67,0x6d,0x72,0x7c,0x84,0x85,0x89,0x8f,
0x92,0x95,0x94,0x8e,0x8b,0x8a,0x85,0x80,0x7b,0x74,0x72,0x6e,0x6b,0x6a,0x6a,0x6a,
0x6a,0x6e,0x72,0x76,0x78,0x7a,0x7f,0x85,0x89,0x8a,0x8b,0x8d,0x8f,0x91,0x91,0x91,
0x91,0x92,0x93,0x94,0x96,0x9c,0x9a,0x9e,0x96,0x87,0x8a,0x84,0x81,0x79,0x6e,0x65,
0x64,0x63,0x5d,0x62,0x62,0x65,0x6b,0x70,0x77,0x81,0x85,0x87,0x8d,0x91,0x94,0x94,
0x91,0x8d,0x8c,0x88,0x81,0x7d,0x78,0x74,0x70,0x6c,0x6a,0x6a,0x69,0x68,0x6a,0x6f,
0x74,0x76,0x78,0x7c,0x82,0x87,0x8a,0x8b,0x8d,0x8f,0x91,0x91,0x92,0x92,0x93,0x93,
0x94,0x95,0x98,0x99,0x9b,0x9e,0x89,0x86,0x83,0x80,0x80,0x73,0x68,0x61,0x64,0x60,
0x61,0x64,0x62,0x69,0x6f,0x74,0x7e,0x85,0x86,0x89,0x8e,0x92,0x95,0x94,0x8d,0x8a,
0x89,0x84,0x7f,0x7a,0x74,0x71,0x6d,0x6b,0x6a,0x6b,0x69,0x6a,0x6d,0x72,0x75,0x79,
0x7b,0x7f,0x84,0x88,0x8a,0x8c,0x8d,0x8f,0x91,0x90,0x91,0x92,0x94,0x92,0x94,0x95,
0x9a,0x9b,0xa2,0x93,0x83,0x88,0x81,0x84,0x79,0x6c,0x61,0x64,0x63,0x5e,0x63,0x61,
0x65,0x6c,0x70,0x78,0x84,0x86,0x87,0x8c,0x91,0x95,0x96,0x90,0x8a,0x8a,0x87,0x81,
0x7d,0x76,0x73,0x70,0x6c,0x6a,0x6a,0x6a,0x69,0x6b,0x6f,0x74,0x77,0x78,0x7b,0x81,
0x86,0x89,0x8b,0x8c,0x8e,0x91,0x91,0x92,0x91,0x93,0x92,0x93,0x95,0x98,0x9b,0x9d,
0x9e,0x88,0x86,0x86,0x83,0x80,0x71,0x66,0x62,0x66,0x60,0x60,0x62,0x62,0x69,0x6e,
0x73,0x7e,0x85,0x86,0x89,0x8f,0x94,0x96,0x93,0x8d,0x8b,0x8a,0x85,0x7f,0x79,0x74,
0x72,0x6e,0x6b,0x6b,0x6b,0x6a,0x6b,0x6e,0x72,0x77,0x79,0x7b,0x7f,0x85,0x87,0x8a,
0x89,0x8a,0x8c,0x8d,0x8d,0x8d,0x8d,0x8e,0x90,0x90,0x91,0x95,0x9a,0x9b,0xa5,0x91,
0x89,0x8a,0x84,0x87,0x7b,0x6e,0x63,0x67,0x61,0x5f,0x63,0x61,0x65,0x6b,0x6e,0x78,
0x83,0x84,0x86,0x8b,0x90,0x95,0x96,0x90,0x8c,0x8c,0x88,0x82,0x7e,0x78,0x74,0x71,
0x6d,0x6b,0x6c,0x6b,0x69,0x6a,0x6f,0x74,0x77,0x78,0x7b,0x82,0x86,0x89,0x8a,0x8c,
0x8e,0x91,0x91,0x93,0x92,0x95,0x94,0x94,0x96,0x9c,0x9b,0xa1,0x98,0x84,0x88,0x81,
0x82,0x7c,0x6e,0x63,0x61,0x62,0x5d,0x63,0x62,0x63,0x6c,0x70,0x78,0x84,0x87,0x88,
0x8d,0x92,0x95,0x97,0x93,0x8c,0x8a,0x87,0x81,0x7e,0x77,0x71,0x6f,0x6c,0x6b,0x6a,
0x6b,0x6a,0x6c,0x71,0x75,0x79,0x7b,0x7d,0x83,0x87,0x89,0x8a,0x8b,0x8c,0x8c,0x8d,
0x8d,0x8e,0x8d,0x8d,0x8f,0x92,0x94,0x98,0x99,0xa1,0x99,0x89,0x8a,0x84,0x86,0x7e,
0x71,0x65,0x64,0x64,0x5f,0x62,0x61,0x64,0x6a,0x6e,0x75,0x80,0x85,0x86,0x8a,0x8f,
0x93,0x95,0x92,0x8c,0x8b,0x88,0x83,0x7f,0x79,0x74,0x71,0x6d,0x6c,0x6c,0x6b,0x69,
0x6b,0x6f,0x74,0x77,0x79,0x7b,0x81,0x85,0x87,0x89,0x8a,0x8b,0x8d,0x8e,0x8f,0x8f,
0x8f,0x91,0x91,0x93,0x96,0x9a,0x9b,0xa2,0x92,0x86,0x87,0x82,0x84,0x79,0x6c,0x61,
0x64,0x61,0x5f,0x64,0x62,0x66,0x6c,0x71,0x7a,0x85,0x87,0x88,0x8c,0x92,0x95,0x96,
0x90,0x8a,0x89,0x86,0x80,0x7b,0x75,0x71,0x6f,0x6c,0x6a,0x6b,0x6b,0x6b,0x6e,0x72,
0x76,0x7a,0x7d,0x7f,0x84,0x86,0x89,0x8a,0x8b,0x8b,0x8b,0x8b,0x8c,0x8d,0x8d,0x8d,
0x8f,0x91,0x94,0x99,0x9b,0xa2,0x91,0x87,0x87,0x84,0x87,0x7a,0x6e,0x62,0x66,0x63,
0x61,0x64,0x61,0x66,0x6b,0x71,0x79,0x82,0x85,0x87,0x8c,0x90,0x94,0x95,0x90,0x8b,
0x8a,0x86,0x82,0x7d,0x76,0x73,0x70,0x6d,0x6c,0x6c,0x6a,0x6a,0x6d,0x72,0x75,0x78,
0x79,0x7e,0x82,0x86,0x89,0x8a,0x8b,0x8d,0x8f,0x90,0x92,0x91,0x93,0x93,0x93,0x95,
0x9b,0x9a,0xa3,0x91,0x83,0x85,0x81,0x82,0x77,0x6c,0x60,0x64,0x62,0x5f,0x64,0x64,
0x67,0x6d,0x73,0x7c,0x86,0x88,0x89,0x8d,0x93,0x96,0x95,0x90,0x8a,0x89,0x85,0x7f,
0x7b,0x75,0x71,0x6d,0x6b,0x6a,0x6b,0x6c,0x6b,0x6d,0x73,0x77,0x7b,0x7c,0x7f,0x84,
0x88,0x8a,0x8b,0x8c,0x8c,0x8d,0x8d,0x8e,0x8d,0x8f,0x8f,0x91,0x92,0x97,0x98,0xa0,
0x9d,0x87,0x87,0x82,0x86,0x80,0x74,0x66,0x63,0x66,0x60,0x64,0x63,0x64,0x6a,0x6f,
0x75,0x81,0x87,0x87,0x8a,0x8e,0x93,0x96,0x93,0x8c,0x8a,0x89,0x83,0x7f,0x78,0x73,
0x71,0x6e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6f,0x74,0x78,0x7b,0x7b,0x80,0x85,0x88,0x89,
0x8a,0x8a,0x8e,0x8e,0x90,0x8f,0x90,0x90,0x91,0x93,0x96,0x9a,0x9b,0xa3,0x8d,0x87,
0x84,0x81,0x84,0x78,0x6c,0x61,0x65,0x60,0x61,0x64,0x63,0x68,0x6e,0x73,0x7c,0x86,
0x88,0x8a,0x8e,0x92,0x95,0x96,0x90,0x8a,0x89,0x84,0x7f,0x7a,0x74,0x71,0x6e,0x6b,
0x6b,0x6c,0x6c,0x6c,0x6f,0x73,0x76,0x7a,0x7c,0x7f,0x84,0x87,0x88,0x8b,0x8b,0x8d,
0x8e,0x8f,0x8f,0x90,0x91,0x90,0x93,0x95,0x9a,0x9c,0xa3,0x8f,0x86,0x86,0x82,0x85,
0x77,0x6b,0x60,0x64,0x60,0x60,0x64,0x62,0x67,0x6c,0x72,0x7c,0x86,0x88,0x89,0x8d,
0x92,0x97,0x97,0x90,0x8a,0x89,0x85,0x80,0x7a,0x74,0x70,0x6e,0x6a,0x6a,0x6a,0x6a,
0x6a,0x6b,0x71,0x76,0x7a,0x7c,0x7f,0x84,0x8a,0x8b,0x8d,0x8d,0x91,0x91,0x92,0x91,
0x92,0x91,0x93,0x92,0x96,0x99,0x9c,0xa0,0x83,0x84,0x80,0x83,0x81,0x72,0x66,0x5e,
0x66,0x5f,0x64,0x65,0x65,0x6a,0x70,0x76,0x81,0x8a,0x88,0x8a,0x8f,0x94,0x96,0x94,
0x8c,0x88,0x87,0x82,0x7d,0x78,0x73,0x6f,0x6c,0x69,0x6b,0x6d,0x6c,0x6d,0x70,0x74,
0x78,0x7c,0x7e,0x82,0x85,0x88,0x89,0x8b,0x8a,0x8c,0x8d,0x8d,0x8e,0x8f,0x8f,0x8e,
0x91,0x94,0x9a,0x99,0xa4,0x91,0x85,0x86,0x82,0x86,0x7b,0x6f,0x60,0x65,0x63,0x61,
0x66,0x62,0x66,0x6d,0x72,0x7a,0x85,0x87,0x88,0x8c,0x91,0x94,0x96,0x90,0x89,0x88,
0x85,0x80,0x7c,0x75,0x71,0x6f,0x6d,0x6b,0x6d,0x6c,0x6b,0x6d,0x71,0x76,0x7a,0x7b,
0x7d,0x82,0x87,0x89,0x8c,0x8c,0x8e,0x90,0x91,0x91,0x92,0x94,0x92,0x93,0x94,0x99,
0x9a,0xa2,0x8e,0x81,0x85,0x80,0x83,0x77,0x6c,0x60,0x66,0x63,0x61,0x66,0x65,0x68,
0x6f,0x74,0x7c,0x88,0x89,0x88,0x8d,0x92,0x95,0x95,0x8e,0x88,0x87,0x84,0x7d,0x7a,
0x75,0x70,0x6e,0x6b,0x6b,0x6e,0x6e,0x6d,0x6e,0x73,0x78,0x7c,0x7d,0x7f,0x84,0x87,
0x89,0x8a,0x8b,0x8c,0x8e,0x8d,0x8f,0x8f,0x91,0x8f,0x92,0x92,0x98,0x98,0xa0,0x97,
0x85,0x88,0x81,0x85,0x7d,0x72,0x65,0x64,0x65,0x60,0x66,0x65,0x66,0x6c,0x71,0x77,
0x83,0x87,0x88,0x8b,0x8f,0x93,0x95,0x92,0x8a,0x88,0x85,0x80,0x7c,0x77,0x72,0x6f,
0x6d,0x6c,0x6d,0x6d,0x6c,0x6c,0x70,0x75,0x79,0x7c,0x7e,0x81,0x86,0x88,0x8b,0x8d,
0x8e,0x90,0x90,0x91,0x92,0x94,0x92,0x93,0x93,0x97,0x98,0xa0,0x96,0x81,0x83,0x80,
0x81,0x7c,0x6f,0x63,0x64,0x65,0x60,0x66,0x68,0x68,0x6e,0x73,0x79,0x85,0x8a,0x88,
0x8a,0x8f,0x92,0x94,0x90,0x88,0x85,0x84,0x7e,0x7a,0x76,0x71,0x6f,0x6d,0x6c,0x6e,
0x70,0x6e,0x6e,0x72,0x77,0x7b,0x7d,0x7e,0x82,0x86,0x88,0x88,0x89,0x8a,0x8c,0x8c,
0x8d,0x8d,0x90,0x8f,0x90,0x90,0x96,0x98,0x9d,0xa2,0x89,0x87,0x84,0x83,0x83,0x79,
0x6b,0x62,0x67,0x60,0x63,0x67,0x65,0x69,0x6f,0x72,0x7c,0x87,0x87,0x88,0x8c,0x8f,
0x93,0x94,0x8d,0x87,0x87,0x83,0x7f,0x7c,0x75,0x72,0x70,0x6d,0x6e,0x70,0x6f,0x6e,
0x70,0x74,0x78,0x7b,0x7c,0x7d,0x82,0x84,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8c,
0x8c,0x8c,0x8d,0x90,0x90,0x92,0x93,0x98,0x97,0x8d,0x85,0x81,0x82,0x80,0x79,0x6e,
0x69,0x69,0x68,0x68,0x68,0x6b,0x6f,0x72,0x75,0x7b,0x83,0x86,0x88,0x89,0x8a,0x8d,
0x8d,0x89,0x85,0x83,0x81,0x7d,0x79,0x75,0x74,0x72,0x6f,0x6e,0x6f,0x70,0x71,0x73,
0x76,0x7a,0x7d,0x7f,0x81,0x86,0x89,0x8d,0x8e,0x8f,0x8f,0x92,0x92,0x93,0x92,0x93,
0x93,0x93,0x96,0x98,0xa0,0x8c,0x80,0x7d,0x7c,0x80,0x78,0x6a,0x5f,0x63,0x62,0x64,
0x68,0x69,0x6c,0x72,0x75,0x7e,0x8a,0x8c,0x8a,0x8c,0x8f,0x93,0x93,0x8b,0x84,0x83,
0x80,0x7b,0x77,0x73,0x70,0x6e,0x6c,0x6d,0x72,0x73,0x71,0x72,0x76,0x7d,0x80,0x80,
0x80,0x84,0x86,0x88,0x87,0x86,0x87,0x88,0x87,0x88,0x89,0x89,0x8a,0x8b,0x8c,0x8f,
0x94,0x95,0x99,0x96,0x8d,0x89,0x86,0x85,0x81,0x7a,0x70,0x6b,0x6b,0x68,0x68,0x69,
0x6a,0x6d,0x70,0x75,0x7b,0x81,0x84,0x86,0x89,0x8b,0x8e,0x8d,0x8a,0x86,0x85,0x82,
0x7f,0x7b,0x78,0x75,0x71,0x70,0x6f,0x70,0x70,0x70,0x71,0x75,0x79,0x7b,0x7e,0x81,
0x85,0x88,0x8c,0x8e,0x90,0x91,0x92,0x93,0x95,0x93,0x93,0x92,0x93,0x95,0x95,0x9a,
0x8c,0x83,0x7c,0x79,0x7b,0x77,0x6e,0x63,0x63,0x63,0x66,0x6b,0x6c,0x6e,0x74,0x78,
0x7f,0x88,0x8b,0x8b,0x8b,0x8d,0x8f,0x8f,0x8b,0x84,0x80,0x7d,0x7a,0x77,0x73,0x70,
0x6e,0x6d,0x6e,0x70,0x72,0x73,0x73,0x77,0x7b,0x80,0x82,0x83,0x84,0x87,0x88,0x8a,
0x8b,0x8b,0x8a,0x8a,0x8b,0x8e,0x8f,0x8d,0x8d,0x8e,0x93,0x96,0x9f,0x93,0x86,0x82,
0x7f,0x83,0x7f,0x75,0x68,0x66,0x64,0x65,0x6a,0x6a,0x6a,0x6e,0x71,0x78,0x83,0x87,
0x87,0x88,0x8a,0x8e,0x91,0x8e,0x88,0x84,0x82,0x7f,0x7c,0x78,0x73,0x70,0x6e,0x6f,
0x71,0x70,0x6f,0x6f,0x72,0x77,0x7c,0x7d,0x7e,0x81,0x84,0x88,0x8b,0x8c,0x8d,0x8e,
0x8d,0x8e,0x91,0x92,0x90,0x8f,0x8e,0x94,0x94,0x9b,0x97,0x85,0x80,0x7c,0x80,0x7d,
0x76,0x68,0x63,0x66,0x65,0x69,0x6b,0x6b,0x6f,0x74,0x79,0x82,0x89,0x89,0x89,0x8b,
0x8e,0x90,0x8f,0x88,0x82,0x81,0x7d,0x7a,0x76,0x72,0x70,0x6f,0x6d,0x6e,0x70,0x72,
0x72,0x74,0x77,0x7c,0x80,0x81,0x82,0x85,0x88,0x8b,0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,
0x91,0x90,0x90,0x8e,0x92,0x93,0x9d,0x98,0x83,0x81,0x7d,0x82,0x7e,0x75,0x68,0x66,
0x68,0x64,0x69,0x6b,0x6c,0x70,0x72,0x77,0x82,0x89,0x88,0x87,0x8a,0x8e,0x91,0x8f,
0x88,0x83,0x82,0x7e,0x7b,0x78,0x74,0x71,0x6f,0x6e,0x70,0x73,0x72,0x71,0x73,0x77,
0x7c,0x80,0x81,0x82,0x84,0x87,0x89,0x8b,0x8c,0x8c,0x8b,0x8c,0x8d,0x8f,0x8f,0x8f,
0x8f,0x91,0x93,0x96,0x9f,0x8c,0x84,0x7f,0x7f,0x83,0x7c,0x70,0x64,0x68,0x65,0x68,
0x6b,0x6a,0x6d,0x71,0x73,0x7b,0x86,0x88,0x87,0x88,0x8a,0x8f,0x91,0x8b,0x85,0x83,
0x81,0x7e,0x7a,0x76,0x73,0x71,0x6e,0x6e,0x71,0x71,0x71,0x71,0x74,0x7a,0x7e,0x80,
0x81,0x84,0x87,0x8a,0x8c,0x8e,0x8f,0x8f,0x8f,0x90,0x93,0x91,0x92,0x90,0x93,0x91,
0x9b,0x97,0x83,0x82,0x7c,0x7f,0x7d,0x76,0x69,0x66,0x68,0x64,0x6a,0x6c,0x6d,0x71,
0x73,0x77,0x82,0x89,0x88,0x88,0x8a,0x8c,0x90,0x8e,0x88,0x83,0x81,0x7d,0x7b,0x78,
0x74,0x71,0x6e,0x6d,0x70,0x73,0x72,0x71,0x73,0x77,0x7d,0x80,0x80,0x82,0x85,0x87,
0x89,0x8c,0x8c,0x8e,0x8c,0x8d,0x8e,0x91,0x90,0x8f,0x8e,0x92,0x93,0x9a,0x99,0x83,
0x82,0x7e,0x82,0x80,0x77,0x6a,0x65,0x69,0x65,0x6a,0x6c,0x6b,0x6e,0x72,0x75,0x80,
0x88,0x86,0x86,0x89,0x8c,0x90,0x8f,0x88,0x84,0x83,0x7f,0x7c,0x79,0x75,0x72,0x6f,
0x6d,0x6f,0x71,0x71,0x6f,0x71,0x75,0x7b,0x7e,0x80,0x81,0x85,0x88,0x8b,0x8d,0x8e,
0x8f,0x8e,0x8f,0x90,0x93,0x91,0x91,0x90,0x93,0x93,0x9b,0x8e,0x80,0x80,0x7e,0x81,
0x7a,0x71,0x66,0x68,0x68,0x67,0x6b,0x6c,0x6e,0x71,0x74,0x7a,0x85,0x89,0x87,0x87,
0x8b,0x8e,0x91,0x8b,0x85,0x83,0x82,0x7d,0x7a,0x77,0x73,0x71,0x6f,0x6f,0x71,0x73,
0x72,0x72,0x74,0x79,0x7c,0x7f,0x7f,0x82,0x84,0x86,0x87,0x88,0x89,0x8a,0x8a,0x8a,
0x8b,0x8c,0x8e,0x8d,0x8e,0x8f,0x94,0x95,0x9c,0x90,0x84,0x84,0x83,0x85,0x7d,0x75,
0x68,0x6b,0x69,0x67,0x6a,0x6a,0x6b,0x6f,0x72,0x77,0x82,0x85,0x84,0x86,0x8a,0x8d,
0x90,0x8c,0x87,0x85,0x84,0x80,0x7d,0x79,0x76,0x74,0x71,0x70,0x70,0x71,0x70,0x70,
0x73,0x76,0x7a,0x7c,0x7e,0x81,0x86,0x88,0x8b,0x8b,0x8e,0x8f,0x90,0x8f,0x91,0x92,
0x91,0x90,0x90,0x94,0x94,0x9c,0x8a,0x80,0x81,0x7f,0x80,0x7a,0x71,0x66,0x6a,0x67,
0x67,0x6c,0x6d,0x6e,0x72,0x75,0x7b,0x86,0x88,0x87,0x89,0x8c,0x8e,0x8f,0x8b,0x85,
0x84,0x82,0x7d,0x7b,0x77,0x73,0x71,0x70,0x70,0x72,0x73,0x72,0x73,0x76,0x7b,0x7e,
0x7f,0x80,0x83,0x85,0x87,0x88,0x88,0x88,0x88,0x88,0x89,0x8c,0x8b,0x8c,0x8b,0x8e,
0x8d,0x94,0x93,0x9c,0x95,0x86,0x85,0x82,0x86,0x81,0x7a,0x6b,0x6a,0x6a,0x68,0x6b,
0x6b,0x6b,0x6d,0x71,0x75,0x7e,0x84,0x84,0x84,0x88,0x8b,0x8f,0x8e,0x88,0x85,0x85,
0x82,0x7f,0x7c,0x78,0x76,0x74,0x71,0x71,0x72,0x71,0x71,0x72,0x75,0x78,0x7b,0x7c,
0x7e,0x82,0x85,0x87,0x8a,0x8b,0x8d,0x8e,0x8f,0x8f,0x92,0x91,0x91,0x90,0x92,0x93,
0x98,0x96,0x84,0x81,0x7f,0x82,0x7e,0x76,0x6a,0x67,0x6a,0x67,0x69,0x6b,0x6d,0x6f,
0x73,0x77,0x80,0x87,0x87,0x86,0x89,0x8c,0x8f,0x8e,0x88,0x84,0x83,0x80,0x7c,0x79,
0x76,0x74,0x71,0x70,0x71,0x73,0x71,0x71,0x73,0x77,0x7b,0x7d,0x7d,0x80,0x83,0x85,
0x87,0x88,0x8a,0x8a,0x8a,0x8a,0x8c,0x8d,0x8f,0x8d,0x8e,0x8d,0x93,0x93,0x9a,0x93,
0x84,0x84,0x81,0x83,0x7e,0x78,0x6a,0x6a,0x6a,0x67,0x6b,0x6c,0x6b,0x6e,0x72,0x76,
0x80,0x85,0x84,0x85,0x89,0x8c,0x8f,0x8d,0x88,0x85,0x84,0x81,0x7e,0x7b,0x77,0x75,
0x72,0x71,0x72,0x73,0x72,0x70,0x72,0x76,0x79,0x7c,0x7c,0x7f,0x81,0x85,0x87,0x89,
0x8a,0x8b,0x8b,0x8c,0x8e,0x90,0x8f,0x8d,0x8e,0x91,0x93,0x96,0x9a,0x88,0x83,0x80,
0x81,0x81,0x7b,0x70,0x68,0x6b,0x67,0x6a,0x6c,0x6c,0x6d,0x71,0x74,0x7c,0x84,0x85,
0x85,0x87,0x8a,0x8e,0x8f,0x8a,0x85,0x84,0x82,0x80,0x7d,0x78,0x75,0x74,0x72,0x72,
0x73,0x73,0x73,0x72,0x75,0x78,0x7c,0x7d,0x7e,0x80,0x82,0x86,0x88,0x89,0x89,0x8a,
0x8a,0x8c,0x8d,0x8f,0x8d,0x8e,0x8d,0x91,0x93,0x98,0x99,0x87,0x84,0x81,0x84,0x81,
0x7b,0x6f,0x69,0x6c,0x69,0x6b,0x6c,0x6c,0x6e,0x72,0x74,0x7c,0x83,0x84,0x84,0x86,
0x8a,0x8e,0x8e,0x89,0x85,0x84,0x83,0x80,0x7d,0x79,0x76,0x74,0x72,0x71,0x72,0x72,
0x71,0x71,0x74,0x78,0x7c,0x7d,0x7e,0x81,0x85,0x89,0x8b,0x8b,0x8d,0x8d,0x8e,0x8f,
0x91,0x90,0x90,0x8f,0x90,0x91,0x95,0x99,0x88,0x82,0x7e,0x81,0x81,0x7b,0x70,0x67,
0x6b,0x69,0x6c,0x6d,0x6d,0x6f,0x72,0x75,0x7d,0x85,0x86,0x84,0x86,0x89,0x8e,0x8e,
0x8a,0x84,0x83,0x82,0x7f,0x7c,0x78,0x75,0x73,0x71,0x71,0x74,0x74,0x73,0x72,0x74,
0x7a,0x7f,0x7f,0x7f,0x81,0x84,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8d,0x8f,0x8e,
0x8d,0x8c,0x91,0x93,0x99,0x8f,0x83,0x81,0x81,0x84,0x7d,0x77,0x6c,0x6c,0x6b,0x6a,
0x6d,0x6e,0x6e,0x6f,0x72,0x78,0x80,0x84,0x82,0x83,0x87,0x8b,0x8d,0x8a,0x86,0x84,
0x84,0x81,0x7e,0x7b,0x78,0x75,0x72,0x71,0x72,0x73,0x71,0x71,0x73,0x78,0x7b,0x7d,
0x7e,0x80,0x84,0x88,0x8b,0x8c,0x8d,0x8d,0x8f,0x8f,0x92,0x91,0x91,0x90,0x90,0x90,
0x96,0x94,0x84,0x81,0x7e,0x80,0x7d,0x77,0x6b,0x69,0x6b,0x68,0x6b,0x6d,0x6e,0x70,
0x73,0x76,0x7e,0x85,0x85,0x84,0x87,0x8a,0x8d,0x8d,0x87,0x84,0x83,0x82,0x7e,0x7b,
0x78,0x75,0x73,0x71,0x71,0x73,0x73,0x71,0x72,0x75,0x7b,0x7d,0x7e,0x7f,0x83,0x87,
0x89,0x8a,0x8a,0x8d,0x8e,0x8d,0x8e,0x90,0x8f,0x8f,0x8c,0x8e,0x90,0x97,0x93,0x84,
0x80,0x7f,0x83,0x80,0x7a,0x6e,0x6b,0x6d,0x6a,0x6c,0x6e,0x6e,0x6f,0x71,0x74,0x7c,
0x83,0x83,0x82,0x84,0x88,0x8c,0x8b,0x87,0x84,0x84,0x82,0x7f,0x7d,0x7a,0x77,0x74,
0x71,0x71,0x73,0x73,0x71,0x72,0x75,0x79,0x7c,0x7e,0x7f,0x84,0x87,0x8a,0x8b,0x8e,
0x8f,0x91,0x90,0x91,0x92,0x93,0x92,0x91,0x90,0x93,0x92,0x86,0x80,0x7e,0x7f,0x7d,
0x77,0x6e,0x6a,0x6c,0x6a,0x6b,0x6d,0x6f,0x71,0x73,0x75,0x7c,0x83,0x85,0x85,0x86,
0x88,0x8c,0x8c,0x88,0x85,0x84,0x82,0x7e,0x7b,0x78,0x76,0x74,0x71,0x71,0x72,0x73,
0x72,0x73,0x75,0x79,0x7d,0x7f,0x82,0x84,0x87,0x8a,0x8c,0x8e,0x8f,0x90,0x90,0x92,
0x92,0x92,0x91,0x91,0x8f,0x94,0x92,0x86,0x81,0x7e,0x7f,0x7d,0x78,0x6e,0x6b,0x6c,
0x6a,0x6c,0x6e,0x6f,0x70,0x73,0x74,0x7b,0x82,0x84,0x85,0x85,0x87,0x8a,0x8c,0x89,
0x86,0x84,0x81,0x7f,0x7c,0x79,0x77,0x74,0x71,0x70,0x72,0x73,0x74,0x73,0x75,0x79,
0x7d,0x81,0x82,0x85,0x88,0x8b,0x8e,0x90,0x91,0x92,0x93,0x93,0x93,0x93,0x94,0x93,
0x93,0x92,0x8a,0x83,0x7f,0x7d,0x7b,0x79,0x71,0x6a,0x6a,0x69,0x6a,0x6d,0x6e,0x6e,
0x71,0x74,0x79,0x7f,0x83,0x85,0x86,0x87,0x88,0x8b,0x8b,0x88,0x84,0x81,0x7e,0x7d,
0x7b,0x78,0x74,0x71,0x70,0x71,0x73,0x74,0x75,0x75,0x78,0x7c,0x80,0x82,0x84,0x86,
0x89,0x8c,0x8e,0x8f,0x91,0x91,0x90,0x91,0x92,0x93,0x92,0x90,0x91,0x90,0x88,0x83,
0x7f,0x7d,0x7b,0x78,0x6f,0x6c,0x6c,0x6a,0x6b,0x6c,0x6e,0x70,0x73,0x74,0x79,0x7f,
0x83,0x84,0x84,0x85,0x87,0x89,0x87,0x84,0x82,0x7f,0x7c,0x7a,0x78,0x77,0x75,0x73,
0x72,0x74,0x76,0x78,0x79,0x7a,0x7d,0x80,0x83,0x86,0x88,0x8a,0x8c,0x8d,0x8f,0x91,
0x92,0x92,0x91,0x91,0x91,0x93,0x94,0x91,0x89,0x83,0x80,0x7f,0x7d,0x78,0x71,0x6b,
0x6a,0x69,0x6b,0x6c,0x6d,0x6e,0x6f,0x73,0x78,0x7f,0x81,0x82,0x83,0x85,0x87,0x89,
0x88,0x85,0x82,0x7f,0x7e,0x7c,0x7a,0x78,0x75,0x73,0x72,0x74,0x76,0x77,0x77,0x79,
0x7c,0x7f,0x82,0x85,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x93,0x92,0x91,0x92,0x92,0x93,
0x93,0x91,0x8b,0x84,0x81,0x7f,0x7e,0x79,0x73,0x6d,0x6a,0x69,0x6a,0x6c,0x6d,0x6d,
0x6e,0x72,0x76,0x7c,0x80,0x82,0x82,0x83,0x85,0x88,0x88,0x86,0x83,0x80,0x7e,0x7d,
0x7c,0x7a,0x77,0x75,0x74,0x76,0x77,0x79,0x79,0x7b,0x7c,0x7f,0x83,0x86,0x89,0x8a,
0x8b,0x8c,0x90,0x92,0x92,0x90,0x90,0x90,0x91,0x92,0x91,0x90,0x8a,0x84,0x7f,0x7f,
0x7d,0x7b,0x75,0x6f,0x6b,0x6b,0x6c,0x6d,0x6e,0x6e,0x6f,0x71,0x75,0x7a,0x7e,0x80,
0x80,0x81,0x83,0x86,0x86,0x85,0x83,0x80,0x7f,0x7e,0x7d,0x7c,0x7a,0x78,0x77,0x78,
0x7a,0x7b,0x7c,0x7c,0x7e,0x82,0x85,0x87,0x89,0x8a,0x8c,0x8e,0x90,0x91,0x91,0x90,
0x90,0x8f,0x8f,0x90,0x8f,0x8c,0x88,0x82,0x7f,0x7d,0x7b,0x78,0x74,0x6f,0x6d,0x6d,
0x6d,0x6f,0x6f,0x70,0x71,0x73,0x76,0x7a,0x7e,0x7f,0x7f,0x80,0x82,0x83,0x84,0x83,
0x81,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7a,0x79,0x7a,0x7c,0x7e,0x7f,0x80,0x81,0x83,
0x85,0x89,0x8a,0x8b,0x8b,0x8c,0x8d,0x8e,0x8f,0x8f,0x8e,0x8d,0x8c,0x8b,0x89,0x88,
0x85,0x81,0x7e,0x7a,0x78,0x76,0x74,0x70,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x73,0x76,
0x78,0x7b,0x7d,0x7f,0x7f,0x80,0x80,0x81,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7f,0x81,0x83,0x84,0x84,0x86,0x87,0x89,0x8a,0x8b,0x8a,0x8b,
0x8b,0x8b,0x8b,0x8b,0x89,0x89,0x88,0x86,0x84,0x82,0x7f,0x7d,0x7b,0x78,0x77,0x75,
0x74,0x73,0x72,0x73,0x74,0x75,0x75,0x77,0x79,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,
0x83,0x83,0x85,0x86,0x88,0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x87,0x87,0x86,
0x84,0x83,0x81,0x80,0x7e,0x7c,0x7a,0x79,0x78,0x78,0x77,0x76,0x75,0x76,0x77,0x78,
0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,
0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,0x80,0x81,0x83,0x84,0x85,0x85,0x86,0x85,0x86,
0x86,0x86,0x86,0x86,0x85,0x84,0x84,0x83,0x83,0x82,0x81,0x7f,0x7f,0x7e,0x7e,0x7d,
0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x7b,0x7d,0x7e,0x7f,0x7f,0x7f,
0x7f,0x80,0x80,0x81,0x80,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,
0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x84,0x84,0x84,0x85,0x84,0x84,0x84,0x83,
0x83,0x81,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,
0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,
0x80,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,
0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x7f,0x7f,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7d,0x7d,0x7e,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,
0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,0x81,0x81,
0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,
0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,
0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,
0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,
0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,
0x80,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x80,
0x7f,0x7f,0x7f,0x7e,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,
0x80,0x80,0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x80,0x7f,0x80,0x80,0x81,0x80,0x80,
0x80,0x7f,0x80,0x80,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x81,0x7f,0x80,0x7e,0x7e,
0x7f,0x7e,0x81,0x7f,0x80,0x7e,0x7e,0x80,0x7e,0x81,0x7f,0x80,0x7e,0x7f,0x7f,0x7e,
0x80,0x7f,0x80,0x7f,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,0x80,0x7f,0x80,0x80,
0x82,0x80,0x81,0x80,0x80,0x80,0x7f,0x81,0x80,0x81,0x7f,0x7f,0x7f,0x7f,0x7f,0x81,
0x80,0x81,0x80,0x7f,0x7e,0x7f,0x7f,0x80,0x81,0x7f,0x81,0x7e,0x7f,0x80,0x7f,0x81,
0x80,0x80,0x7f,0x7f,0x7e,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x80,
0x80,0x7e,0x80,0x7f,0x80,0x80,0x80,0x81,0x7f,0x81,0x80,0x80,0x80,0x80,0x81,0x81,
0x7e,0x80,0x7e,0x7f,0x81,0x7f,0x82,0x7e,0x80,0x7e,0x7e,0x82,0x7e,0x82,0x7f,0x7e,
0x80,0x7c,0x81,0x7f,0x7f,0x80,0x7d,0x80,0x7c,0x81,0x7e,0x7f,0x80,0x7d,0x81,0x7d,
0x7f,0x81,0x7d,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7f,0x80,0x81,0x80,0x80,
0x7f,0x7f,0x80,0x7f,0x82,0x7e,0x82,0x7e,0x7f,0x80,0x7d,0x82,0x7e,0x82,0x7f,0x7f,
0x80,0x7e,0x80,0x7f,0x81,0x7f,0x7f,0x80,0x7c,0x80,0x7e,0x80,0x7f,0x80,0x7e,0x7d,
0x80,0x7e,0x80,0x80,0x7f,0x80,0x7d,0x80,0x7e,0x80,0x81,0x7f,0x82,0x7d,0x81,0x7c,
0x80,0x81,0x80,0x83,0x7e,0x7e,0x7d,0x7f,0x80,0x80,0x83,0x7f,0x7e,0x7f,0x7d,0x80,
0x81,0x81,0x81,0x7f,0x7d,0x7f,0x7e,0x81,0x84,0x80,0x81,0x7e,0x7c,0x7f,0x7e,0x83,
0x7f,0x82,0x7e,0x7e,0x7e,0x7d,0x82,0x80,0x82,0x7f,0x7f,0x7d,0x7e,0x7f,0x80,0x81,
0x82,0x7c,0x7f,0x7d,0x7f,0x80,0x7f,0x83,0x7e,0x81,0x7e,0x7f,0x80,0x82,0x80,0x81,
0x7f,0x7e,0x7e,0x7c,0x82,0x7e,0x81,0x81,0x7d,0x81,0x7e,0x7f,0x81,0x80,0x82,0x7d,
0x81,0x7e,0x7f,0x80,0x80,0x81,0x7f,0x82,0x7d,0x80,0x80,0x7f,0x82,0x7f,0x81,0x7e,
0x7e,0x82,0x7d,0x83,0x7d,0x80,0x7f,0x7e,0x80,0x7f,0x81,0x7e,0x7f,0x7e,0x7f,0x7e,
0x83,0x7f,0x82,0x7f,0x80,0x7e,0x80,0x82,0x7f,0x82,0x7e,0x81,0x7e,0x80,0x7f,0x81,
0x7f,0x81,0x80,0x7e,0x82,0x7d,0x81,0x7f,0x7f,0x81,0x7e,0x81,0x7f,0x7f,0x81,0x7e,
0x7f,0x80,0x7f,0x82,0x7e,0x81,0x80,0x7c,0x83,0x7d,0x81,0x7f,0x81,0x7f,0x7e,0x80,
0x7e,0x81,0x7e,0x83,0x7e,0x7e,0x81,0x7e,0x80,0x7e,0x82,0x80,0x7f,0x82,0x7e,0x81,
0x80,0x7f,0x80,0x7f,0x80,0x81,0x7f,0x80,0x7f,0x7f,0x80,0x81,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x7f,0x7f,0x83,0x7d,0x82,0x7e,0x80,0x7f,0x81,0x80,0x7f,0x82,0x7e,0x82,
0x7e,0x81,0x7e,0x84,0x7e,0x81,0x80,0x7d,0x81,0x7c,0x83,0x7e,0x81,0x80,0x7d,0x80,
0x7f,0x81,0x80,0x82,0x7e,0x80,0x80,0x7d,0x81,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x80,
0x81,0x7c,0x84,0x7d,0x7f,0x81,0x7c,0x84,0x7a,0x84,0x7c,0x82,0x80,0x7e,0x82,0x7c,
0x82,0x7e,0x7f,0x82,0x7e,0x7f,0x80,0x7d,0x81,0x7e,0x82,0x7d,0x81,0x7f,0x7e,0x82,
0x7c,0x82,0x7d,0x82,0x7d,0x81,0x7f,0x7e,0x82,0x7c,0x83,0x7c,0x83,0x7d,0x7f,0x7f,
0x7d,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7d,0x81,0x7e,0x81,0x7f,0x81,0x7c,0x81,
0x7f,0x80,0x80,0x7f,0x81,0x7d,0x81,0x7c,0x81,0x7f,0x80,0x80,0x81,0x7d,0x80,0x7f,
0x7e,0x82,0x7d,0x83,0x7c,0x81,0x7e,0x7e,0x82,0x7d,0x84,0x7c,0x82,0x7d,0x7f,0x80,
0x7d,0x83,0x7d,0x81,0x7e,0x7e,0x7f,0x7e,0x80,0x7f,0x80,0x80,0x7e,0x80,0x7f,0x80,
0x80,0x7f,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,0x82,0x7f,0x80,0x7e,0x7f,0x81,0x7d,
0x82,0x7c,0x82,0x7d,0x80,0x80,0x7d,0x82,0x7c,0x82,0x7d,0x81,0x7e,0x80,0x80,0x7f,
0x82,0x7d,0x81,0x7e,0x81,0x7d,0x82,0x7e,0x80,0x7f,0x7e,0x80,0x7e,0x80,0x80,0x7f,
0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x82,0x7e,0x80,0x7e,0x80,0x81,0x80,0x80,0x7f,
0x80,0x7f,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x80,0x7e,0x81,0x7e,0x80,0x80,
0x7e,0x81,0x7e,0x80,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x80,0x80,0x7f,
0x7f,0x80,0x7d,0x81,0x7f,0x80,0x80,0x7e,0x81,0x7e,0x81,0x7f,0x80,0x80,0x7f,0x81,
0x7f,0x7f,0x81,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x81,0x80,0x80,
0x81,0x7e,0x81,0x7e,0x81,0x80,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7d,0x82,0x7e,0x7f,
0x81,0x7d,0x81,0x7f,0x81,0x80,0x7f,0x82,0x7e,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,
0x82,0x7c,0x81,0x7e,0x81,0x7f,0x81,0x80,0x7e,0x80,0x7e,0x82,0x7e,0x80,0x7f,0x80,
0x80,0x80,0x81,0x7e,0x81,0x7e,0x80,0x80,0x7e,0x82,0x7d,0x81,0x7f,0x80,0x7f,0x80,
0x7f,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x81,0x7d,0x82,
0x7d,0x82,0x7f,0x80,0x81,0x7c,0x82,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7e,0x81,
0x7f,0x81,0x7f,0x81,0x7e,0x80,0x7f,0x7f,0x81,0x80,0x81,0x7f,0x80,0x7f,0x7e,0x82,
0x7e,0x80,0x80,0x7e,0x81,0x7d,0x81,0x7e,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x80,
0x80,0x80,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x7e,0x81,0x7e,0x7e,0x80,0x7e,0x7e,0x81,
0x7f,0x80,0x80,0x7f,0x80,0x7e,0x82,0x7f,0x80,0x80,0x7e,0x80,0x7e,0x80,0x7f,0x80,
0x81,0x7e,0x7f,0x7e,0x80,0x7f,0x82,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x82,0x7e,0x82,
0x7d,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x81,0x7e,0x81,0x7f,
0x80,0x7f,0x7e,0x80,0x7f,0x80,0x80,0x80,0x7e,0x80,0x7e,0x81,0x7e,0x80,0x80,0x7e,
0x80,0x7d,0x82,0x7d,0x81,0x80,0x80,0x81,0x7d,0x83,0x7d,0x81,0x7f,0x7f,0x80,0x7e,
0x81,0x7f,0x80,0x80,0x7f,0x81,0x7e,0x80,0x81,0x7e,0x82,0x7d,0x80,0x7f,0x7f,0x80,
0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x80,0x7e,0x82,0x7c,0x82,0x7d,0x81,
0x81,0x7f,0x81,0x7d,0x81,0x7d,0x81,0x7f,0x81,0x7f,0x80,0x7f,0x7e,0x80,0x7e,0x82,
0x7f,0x81,0x7f,0x80,0x7f,0x7e,0x81,0x7f,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x82,0x7f,
0x80,0x81,0x7e,0x81,0x7e,0x81,0x7e,0x82,0x7e,0x80,0x80,0x7e,0x82,0x7c,0x84,0x7d,
0x81,0x80,0x80,0x80,0x7f,0x81,0x7e,0x81,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x80,
0x7e,0x80,0x7f,0x7f,0x81,0x7f,0x80,0x80,0x7e,0x82,0x7c,0x83,0x7e,0x81,0x80,0x7f,
0x81,0x7e,0x82,0x7e,0x81,0x7e,0x82,0x7d,0x81,0x7e,0x80,0x81,0x7e,0x83,0x7e,0x81,
0x7e,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x81,0x7f,0x81,0x7f,
0x81,0x7e,0x81,0x80,0x7e,0x82,0x7d,0x82,0x7e,0x81,0x80,0x7d,0x81,0x7d,0x80,0x7f,
0x80,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x81,0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x81,0x7f,
0x81,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x7f,0x81,0x80,0x7f,0x7f,0x80,0x80,0x7e,0x81,
0x80,0x7e,0x7f,0x7f,0x80,0x7e,0x82,0x7e,0x81,0x7f,0x7f,0x80,0x7d,0x82,0x7d,0x82,
0x7f,0x7f,0x80,0x7d,0x81,0x7e,0x81,0x7f,0x7f,0x80,0x7d,0x80,0x7f,0x81,0x7e,0x81,
0x80,0x7e,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7e,0x81,0x7d,0x81,0x7d,0x81,0x7f,
0x7f,0x81,0x7d,0x80,0x7e,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x81,0x7e,0x80,0x7e,0x81,0x7f,
0x7f,0x81,0x7d,0x81,0x7d,0x81,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x81,0x7f,0x80,0x7f,
0x80,0x80,0x7f,0x81,0x7f,0x80,0x7e,0x80,0x7e,0x80,0x80,0x7e,0x80,0x7f,0x80,0x7e,
0x81,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x7f,0x80,
0x7e,0x80,0x7f,0x7e,0x81,0x7f,0x80,0x7e,0x80,0x7e,0x7f,0x80,0x7e,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x80,
0x7e,0x81,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x81,0x7f,0x7f,0x81,0x7e,0x80,0x7f,0x7f,
0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x7f,0x81,0x7f,0x80,0x81,
0x7e,0x81,0x7e,0x81,0x7e,0x81,0x80,0x7f,0x80,0x7f,0x7f,0x81,0x7f,0x81,0x7f,0x80,
0x80,0x7e,0x81,0x7e,0x80,0x80,0x80,0x7f,0x7f,0x81,0x7f,0x7f,0x82,0x7e,0x81,0x7f,
0x80,0x7f,0x80,0x81,0x7e,0x82,0x7e,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,
0x80,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x81,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x80,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x80,0x7e,0x80,0x80,0x7f,0x81,0x7f,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,
0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x7f,0x80,0x7f,
0x81,0x7f,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x80,
0x7f,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x7e,0x7f,0x80,0x7f,
0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x7e,0x7f,0x7f,
0x7f,0x80,0x80,0x80,0x7e,0x80,0x7e,0x80,0x80,0x80,0x80,0x7e,0x80,0x7e,0x7f,0x80,
0x7f,0x80,0x80,0x7e,0x80,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x7f,0x7f,0x80,0x7e,0x80,
0x7f,0x80,0x7f,0x7e,0x80,0x7d,0x81,0x7e,0x7f,0x81,0x7e,0x80,0x7f,0x80,0x80,0x7e,
0x81,0x7d,0x81,0x7f,0x7f,0x80,0x7e,0x81,0x7d,0x81,0x7e,0x80,0x80,0x7f,0x80,0x7f,
0x81,0x7e,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,
0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x80,0x7f,
0x81,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x7f,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7e,0x81,0x7f,0x82,0x7e,0x80,0x7f,
0x7f,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7e,0x81,0x7f,0x80,0x80,0x7f,0x80,0x7e,
0x81,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,
0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,
0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x81,
0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x81,0x7e,0x80,0x7e,0x80,0x80,
0x7f,0x81,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7e,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x7e,0x80,0x7e,0x80,0x7e,0x80,0x7f,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,
0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x7e,0x80,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x81,
0x7e,0x81,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x81,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x81,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,
0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x80,0x7f,0x7f,0x80,
0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x7f,
0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x80,
0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x80,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,
0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80
};
const byte soundWow[] ={
0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x81,0x80,0x80,0x80,0x7f,
0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,
0x80,0x7e,0x80,0x7e,0x81,0x78,0x79,0x82,0x7b,0x83,0x82,0x84,0x80,0x82,0x7f,0x80,
0x7e,0x80,0x7e,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7a,0x76,0x7e,0x7a,0x80,0x81,0x86,0x83,0x84,0x81,0x80,
0x7d,0x7f,0x7f,0x80,0x7e,0x7d,0x80,0x80,0x83,0x83,0x85,0x83,0x82,0x81,0x75,0x7e,
0x79,0x7d,0x7f,0x83,0x82,0x84,0x82,0x80,0x80,0x7d,0x80,0x7c,0x80,0x7f,0x80,0x80,
0x81,0x7f,0x7f,0x7e,0x7e,0x80,0x7f,0x81,0x7f,0x81,0x7f,0x80,0x7f,0x81,0x7f,0x81,
0x80,0x81,0x80,0x81,0x80,0x81,0x81,0x80,0x7e,0x7f,0x7e,0x7f,0x81,0x80,0x81,0x7f,
0x80,0x7e,0x7f,0x7e,0x80,0x7e,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,
0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x81,
0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x81,0x80,
0x80,0x7f,0x7f,0x80,0x80,0x7f,0x82,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,
0x7f,0x80,0x7e,0x80,0x7e,0x81,0x7f,0x81,0x7f,0x81,0x80,0x7f,0x80,0x7e,0x7f,0x7f,
0x7f,0x7e,0x7e,0x7f,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x80,0x81,
0x7f,0x80,0x7f,0x7e,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
0x7f,0x7f,0x7f,0x7e,0x80,0x7f,0x80,0x80,0x7e,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x80,
0x80,0x81,0x80,0x81,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x7e,0x80,0x7e,0x80,0x80,
0x7f,0x81,0x80,0x81,0x81,0x81,0x80,0x81,0x7e,0x80,0x7f,0x7d,0x7f,0x7d,0x7e,0x7e,
0x7e,0x7f,0x7e,0x7f,0x80,0x81,0x81,0x82,0x83,0x81,0x81,0x81,0x7e,0x7f,0x7e,0x7d,
0x7d,0x7d,0x7b,0x7d,0x7b,0x7e,0x7e,0x81,0x82,0x84,0x88,0x89,0x8a,0x88,0x86,0x81,
0x7c,0x7a,0x75,0x75,0x75,0x74,0x76,0x77,0x78,0x7a,0x7c,0x82,0x88,0x8f,0x97,0x9b,
0x9d,0x98,0x8d,0x83,0x77,0x6e,0x63,0x60,0x61,0x5e,0x68,0x6f,0x79,0x85,0x8e,0x96,
0x9d,0xa2,0xa5,0xa8,0x9c,0x8f,0x7f,0x6a,0x4e,0x4e,0x46,0x4e,0x68,0x77,0x8c,0x99,
0x99,0x97,0x90,0x8f,0x91,0x99,0x9c,0x97,0x8c,0x7e,0x71,0x59,0x58,0x58,0x5b,0x6f,
0x7c,0x87,0x8f,0x8e,0x8c,0x8d,0x8f,0x96,0xa0,0xa5,0x98,0x8a,0x76,0x64,0x55,0x52,
0x5b,0x65,0x74,0x84,0x8c,0x8e,0x8c,0x8a,0x8a,0x8f,0x99,0xa4,0xa5,0x98,0x82,0x71,
0x5a,0x4c,0x52,0x5c,0x6c,0x7f,0x8c,0x90,0x8d,0x88,0x85,0x8a,0x94,0xa2,0xaa,0xa4,
0x8d,0x75,0x60,0x46,0x49,0x53,0x63,0x7e,0x8e,0x95,0x95,0x8a,0x83,0x84,0x8d,0x9b,
0xad,0xa9,0x95,0x7e,0x61,0x4b,0x44,0x4d,0x64,0x7a,0x8f,0x98,0x92,0x89,0x83,0x82,
0x8c,0x9f,0xad,0xaa,0x95,0x7a,0x5e,0x46,0x43,0x55,0x68,0x82,0x95,0x96,0x8f,0x84,
0x7d,0x83,0x91,0xa2,0xb0,0xa5,0x90,0x70,0x59,0x43,0x4a,0x5e,0x74,0x8c,0x96,0x95,
0x87,0x7e,0x7d,0x86,0x9a,0xad,0xaa,0x98,0x7c,0x5b,0x4c,0x44,0x5a,0x75,0x8b,0x9a,
0x99,0x89,0x79,0x78,0x7e,0x91,0xaa,0xad,0x9c,0x80,0x5f,0x47,0x41,0x56,0x74,0x90,
0xa2,0xa1,0x8f,0x7b,0x74,0x7c,0x8e,0xaa,0xaa,0x99,0x7f,0x56,0x43,0x3f,0x58,0x79,
0x97,0xa7,0xa2,0x8f,0x76,0x74,0x7d,0x95,0xaf,0xa6,0x95,0x71,0x47,0x3b,0x40,0x5f,
0x86,0xa3,0xa9,0x9f,0x89,0x76,0x7b,0x8c,0xa3,0xb1,0x9e,0x80,0x59,0x35,0x38,0x4e,
0x73,0x99,0xab,0xa2,0x8f,0x7b,0x76,0x89,0xa5,0xbb,0xb2,0x90,0x67,0x37,0x23,0x3a,
0x60,0x8d,0xad,0xaf,0x96,0x7c,0x6f,0x7a,0x9a,0xbc,0xc5,0xa1,0x7f,0x4d,0x1f,0x30,
0x58,0x7c,0xa2,0xb3,0x94,0x78,0x6c,0x73,0x91,0xb7,0xcd,0xad,0x87,0x5a,0x29,0x2a,
0x54,0x7c,0x9d,0xb0,0x9a,0x75,0x66,0x6f,0x8b,0xb1,0xcb,0xb1,0x84,0x5d,0x2e,0x31,
0x57,0x87,0xa2,0xad,0x98,0x75,0x61,0x6e,0x8c,0xac,0xc3,0xb1,0x7d,0x55,0x35,0x31,
0x57,0x8e,0xa9,0xaa,0x9f,0x7b,0x63,0x71,0x90,0xa5,0xbd,0xaa,0x73,0x50,0x36,0x35,
0x5a,0x94,0xa9,0xa7,0x9c,0x7b,0x67,0x76,0x99,0xad,0xb9,0xa1,0x6b,0x48,0x2f,0x3a,
0x65,0x96,0xa9,0xa2,0x93,0x79,0x6d,0x82,0xa3,0xb2,0xba,0x8e,0x5e,0x3e,0x2d,0x44,
0x74,0x9e,0xa5,0x9c,0x89,0x76,0x73,0x8e,0xae,0xb6,0xae,0x7b,0x53,0x39,0x36,0x56,
0x82,0x9d,0x9c,0x90,0x80,0x79,0x81,0xa1,0xb2,0xb7,0x9f,0x66,0x45,0x37,0x47,0x67,
0x8d,0x9c,0x90,0x7f,0x7c,0x80,0x8d,0xaa,0xb7,0xb1,0x8a,0x57,0x47,0x3d,0x51,0x73,
0x95,0x96,0x84,0x7f,0x7e,0x80,0x95,0xb6,0xb7,0xae,0x79,0x50,0x3b,0x3e,0x60,0x80,
0x9e,0x95,0x81,0x77,0x7d,0x83,0xa4,0xb8,0xb9,0xa4,0x64,0x47,0x39,0x46,0x6a,0x8b,
0x9a,0x89,0x7a,0x7a,0x83,0x8c,0xac,0xb7,0xb9,0x97,0x57,0x4c,0x3c,0x48,0x72,0x91,
0x90,0x82,0x7e,0x7e,0x82,0x95,0xb2,0xb3,0xb4,0x8d,0x57,0x45,0x41,0x51,0x70,0x8f,
0x8e,0x7d,0x7d,0x89,0x87,0x97,0xb3,0xb7,0xaa,0x77,0x53,0x4b,0x45,0x5e,0x82,0x8f,
0x7f,0x78,0x7e,0x83,0x8b,0xa7,0xb6,0xb5,0xa1,0x5f,0x4f,0x4c,0x4d,0x6d,0x8d,0x8e,
0x73,0x73,0x7e,0x82,0x91,0xb4,0xb4,0xb3,0x90,0x55,0x4b,0x49,0x57,0x74,0x8f,0x88,
0x74,0x7a,0x88,0x87,0x98,0xb5,0xb7,0xa8,0x72,0x53,0x4b,0x4b,0x67,0x85,0x91,0x7f,
0x72,0x78,0x84,0x8b,0xa6,0xb6,0xba,0x97,0x5b,0x54,0x48,0x55,0x76,0x91,0x86,0x70,
0x78,0x81,0x84,0x95,0xb2,0xad,0xad,0x7f,0x54,0x4c,0x53,0x64,0x7c,0x8e,0x83,0x75,
0x7b,0x8e,0x8d,0x9d,0xac,0xb2,0x97,0x5d,0x50,0x52,0x5a,0x71,0x8d,0x8d,0x72,0x70,
0x86,0x8c,0x91,0xae,0xb9,0xac,0x74,0x50,0x51,0x4a,0x63,0x83,0x95,0x7f,0x6e,0x7e,
0x8c,0x88,0x9f,0xb6,0xb2,0x97,0x5b,0x51,0x4a,0x5a,0x74,0x8d,0x8a,0x74,0x72,0x88,
0x8f,0x90,0xac,0xb5,0xac,0x70,0x50,0x57,0x4d,0x63,0x84,0x92,0x7a,0x6f,0x80,0x8d,
0x88,0xa0,0xb8,0xae,0x92,0x65,0x56,0x4d,0x53,0x74,0x88,0x84,0x76,0x79,0x86,0x8c,
0x90,0xab,0xb5,0xad,0x81,0x56,0x52,0x4f,0x5b,0x7a,0x8c,0x7d,0x74,0x84,0x90,0x8a,
0x98,0xb3,0xb3,0x97,0x60,0x55,0x55,0x58,0x71,0x8c,0x85,0x6b,0x75,0x89,0x8e,0x8f,
0xad,0xb3,0xa7,0x77,0x5a,0x57,0x50,0x65,0x7f,0x8b,0x7d,0x73,0x81,0x8d,0x86,0x99,
0xb1,0xb5,0x8e,0x5d,0x59,0x54,0x58,0x74,0x8d,0x85,0x70,0x7b,0x91,0x8c,0x8f,0xa7,
0xb0,0x9c,0x6c,0x56,0x5c,0x5e,0x6b,0x81,0x8a,0x73,0x6d,0x8b,0x96,0x8f,0x9e,0xaf,
0xac,0x82,0x53,0x58,0x5a,0x5e,0x73,0x90,0x84,0x6d,0x7e,0x99,0x90,0x92,0xab,0xae,
0x93,0x5e,0x58,0x5d,0x5a,0x6a,0x85,0x86,0x71,0x74,0x92,0x99,0x8d,0xa2,0xb1,0xa6,
0x72,0x54,0x5c,0x5c,0x62,0x7b,0x88,0x77,0x6d,0x87,0x9d,0x94,0x9a,0xac,0xab,0x8a,
0x5a,0x57,0x5d,0x5d,0x70,0x89,0x83,0x6e,0x75,0x95,0x98,0x94,0xa7,0xb1,0xa0,0x63,
0x4f,0x60,0x60,0x65,0x7f,0x8a,0x73,0x68,0x8a,0xa1,0x94,0x9b,0xad,0xa9,0x78,0x55,
0x60,0x63,0x5f,0x73,0x88,0x79,0x6a,0x7d,0x9e,0x98,0x98,0xa9,0xb1,0x91,0x5c,0x54,
0x61,0x5f,0x69,0x85,0x87,0x6d,0x6d,0x90,0x9d,0x95,0xa3,0xaf,0xa2,0x6d,0x51,0x61,
0x63,0x65,0x79,0x8a,0x77,0x66,0x7d,0x9e,0x99,0x9c,0xab,0xad,0x88,0x55,0x57,0x67,
0x65,0x6b,0x85,0x83,0x69,0x6b,0x94,0x9f,0x94,0xa4,0xb2,0x9f,0x65,0x54,0x65,0x63,
0x64,0x7e,0x89,0x74,0x64,0x81,0x9c,0x97,0x9e,0xaf,0xad,0x83,0x55,0x54,0x61,0x64,
0x74,0x86,0x83,0x6b,0x73,0x94,0x9d,0x98,0xa6,0xad,0x99,0x64,0x51,0x60,0x64,0x69,
0x7c,0x88,0x75,0x69,0x85,0x9d,0x97,0x9c,0xaf,0xab,0x79,0x4f,0x59,0x66,0x65,0x74,
0x8b,0x7f,0x65,0x74,0x9a,0x9c,0x97,0xa9,0xaf,0x90,0x5f,0x54,0x63,0x66,0x6c,0x7f,
0x84,0x70,0x6a,0x8a,0x9f,0x98,0x9e,0xaf,0xa5,0x75,0x50,0x5a,0x62,0x6a,0x7a,0x88,
0x7a,0x68,0x78,0x99,0x9e,0x9d,0xa7,0xab,0x8f,0x5a,0x4f,0x62,0x68,0x6f,0x7f,0x85,
0x70,0x6c,0x8c,0xa0,0x9c,0xa2,0xac,0xa0,0x6c,0x50,0x5c,0x66,0x6a,0x7a,0x85,0x77,
0x67,0x7f,0x9c,0x9c,0x9d,0xad,0xae,0x85,0x56,0x55,0x60,0x62,0x70,0x84,0x83,0x6d,
0x71,0x91,0x9d,0x97,0xa2,0xb2,0x9e,0x6a,0x50,0x5e,0x63,0x68,0x7a,0x88,0x76,0x67,
0x7f,0x9e,0x9b,0x9c,0xaa,0xa9,0x83,0x55,0x58,0x69,0x6b,0x6f,0x80,0x80,0x6b,0x6f,
0x92,0x9f,0x99,0xa3,0xae,0x9a,0x66,0x51,0x5f,0x6c,0x6f,0x7a,0x82,0x73,0x69,0x82,
0x9c,0x9a,0x9c,0xab,0xa5,0x7e,0x59,0x57,0x66,0x6c,0x7a,0x82,0x7a,0x6b,0x74,0x91,
0x9b,0x99,0xa3,0xaa,0x98,0x6b,0x54,0x60,0x69,0x6c,0x77,0x81,0x77,0x70,0x84,0x9a,
0x98,0x99,0xa9,0xa6,0x83,0x5b,0x58,0x64,0x67,0x71,0x81,0x7f,0x6e,0x75,0x90,0x9b,
0x97,0xa2,0xae,0x9c,0x6b,0x56,0x5e,0x66,0x69,0x79,0x83,0x76,0x6d,0x84,0x99,0x98,
0x99,0xa8,0xaa,0x88,0x5f,0x58,0x65,0x63,0x6b,0x7c,0x82,0x72,0x76,0x8e,0x9b,0x94,
0x9e,0xad,0xa0,0x74,0x57,0x61,0x66,0x66,0x73,0x82,0x78,0x6d,0x80,0x98,0x97,0x95,
0xa6,0xaa,0x8f,0x66,0x59,0x63,0x66,0x6b,0x78,0x80,0x75,0x73,0x89,0x99,0x96,0x9a,
0xa8,0xa1,0x81,0x5f,0x5e,0x65,0x67,0x6e,0x78,0x7b,0x77,0x7e,0x91,0x96,0x95,0xa1,
0xa6,0x99,0x76,0x5b,0x5b,0x65,0x6e,0x74,0x7b,0x7b,0x77,0x82,0x93,0x99,0x9c,0xa4,
0xa6,0x8b,0x62,0x58,0x62,0x67,0x6d,0x76,0x7d,0x7a,0x7d,0x8d,0x96,0x96,0x9d,0xa6,
0x9f,0x7b,0x5a,0x59,0x64,0x68,0x70,0x7b,0x7f,0x7a,0x82,0x92,0x99,0x99,0xa1,0xa0,
0x90,0x69,0x5b,0x60,0x68,0x6e,0x72,0x7a,0x7d,0x7d,0x88,0x93,0x99,0x9f,0xa2,0xa0,
0x7f,0x5e,0x58,0x64,0x6c,0x6e,0x77,0x7e,0x79,0x7f,0x8f,0x9a,0x9b,0x9f,0xa2,0x97,
0x72,0x59,0x5c,0x67,0x6b,0x70,0x7e,0x80,0x79,0x83,0x94,0x99,0x99,0x9e,0xa3,0x88,
0x61,0x5b,0x68,0x6e,0x6c,0x73,0x7c,0x79,0x79,0x8a,0x99,0x9c,0x9f,0xa2,0x9b,0x7a,
0x60,0x5e,0x63,0x6b,0x6f,0x79,0x7d,0x7c,0x81,0x8d,0x95,0x9b,0xa0,0xa2,0x93,0x72,
0x5b,0x5f,0x66,0x6a,0x70,0x7b,0x7f,0x7b,0x82,0x91,0x99,0x9d,0x9f,0xa1,0x88,0x64,
0x5a,0x65,0x6c,0x6c,0x75,0x7d,0x79,0x79,0x8a,0x97,0x9c,0x9e,0xa6,0x9c,0x79,0x5d,
0x5d,0x66,0x6a,0x6f,0x79,0x7f,0x79,0x7e,0x8e,0x98,0x97,0x9b,0xa1,0x98,0x74,0x5c,
0x60,0x68,0x6a,0x6d,0x7a,0x7f,0x7b,0x82,0x92,0x9a,0x9d,0x9e,0xa2,0x8d,0x6b,0x5d,
0x61,0x69,0x6c,0x72,0x7b,0x7c,0x7c,0x87,0x94,0x98,0x99,0xa0,0xa1,0x84,0x63,0x5b,
0x66,0x6a,0x6e,0x76,0x7d,0x7a,0x7b,0x8a,0x97,0x9a,0x9c,0xa0,0x9a,0x7b,0x60,0x5f,
0x68,0x6c,0x6c,0x75,0x7e,0x7d,0x7f,0x8c,0x98,0x9a,0x9c,0xa0,0x98,0x75,0x5b,0x5f,
0x69,0x6c,0x6f,0x7a,0x7e,0x79,0x7e,0x91,0x9b,0x9e,0x9d,0xa0,0x8f,0x6b,0x5c,0x62,
0x6b,0x6d,0x70,0x7a,0x7d,0x7b,0x85,0x92,0x9a,0x9a,0x9d,0x9e,0x8c,0x68,0x5e,0x67,
0x68,0x66,0x70,0x7f,0x7f,0x7c,0x89,0x96,0x99,0x9d,0xa0,0x9d,0x7d,0x60,0x61,0x69,
0x6a,0x6b,0x75,0x7d,0x7b,0x7e,0x8b,0x94,0x99,0x9c,0xa2,0x9c,0x7b,0x5f,0x5c,0x66,
0x6b,0x70,0x79,0x7d,0x79,0x80,0x8f,0x97,0x99,0x9e,0xa0,0x92,0x72,0x64,0x66,0x67,
0x67,0x6d,0x7a,0x7d,0x7b,0x83,0x90,0x96,0x9b,0xa1,0xa2,0x90,0x6f,0x5f,0x63,0x67,
0x6c,0x73,0x7b,0x79,0x78,0x85,0x92,0x96,0x9a,0xa2,0xa4,0x8b,0x6c,0x5f,0x63,0x65,
0x6b,0x76,0x7b,0x77,0x7b,0x88,0x93,0x95,0x9a,0xa2,0xa3,0x89,0x69,0x5f,0x62,0x66,
0x6e,0x77,0x7b,0x77,0x7a,0x86,0x92,0x98,0x9d,0xa4,0xa2,0x87,0x66,0x5d,0x61,0x65,
0x6f,0x78,0x7c,0x77,0x7a,0x89,0x92,0x94,0x9b,0xa6,0xa2,0x86,0x68,0x5e,0x5f,0x65,
0x70,0x79,0x7a,0x78,0x7c,0x89,0x90,0x95,0x9f,0xa5,0x9f,0x85,0x65,0x5f,0x63,0x65,
0x6c,0x79,0x7c,0x77,0x7b,0x8c,0x92,0x95,0x9b,0xa8,0xa2,0x82,0x65,0x61,0x62,0x65,
0x6e,0x79,0x7a,0x77,0x7d,0x8b,0x91,0x94,0x9c,0xa7,0xa7,0x87,0x64,0x59,0x5e,0x66,
0x6e,0x7a,0x7f,0x78,0x79,0x88,0x91,0x93,0x99,0xa6,0xa8,0x89,0x66,0x5f,0x61,0x61,
0x68,0x78,0x7f,0x7a,0x7b,0x88,0x8f,0x92,0x99,0xa7,0xa7,0x8f,0x6b,0x5d,0x5d,0x61,
0x69,0x75,0x7e,0x7b,0x7a,0x86,0x91,0x93,0x98,0xa4,0xad,0x97,0x6d,0x5a,0x57,0x5d,
0x66,0x77,0x84,0x80,0x79,0x82,0x8c,0x90,0x95,0xa4,0xac,0x9d,0x72,0x5a,0x58,0x5b,
0x63,0x75,0x83,0x82,0x79,0x82,0x8d,0x8f,0x92,0xa2,0xb1,0xa6,0x7a,0x58,0x53,0x56,
0x60,0x74,0x87,0x86,0x7b,0x7c,0x89,0x8d,0x8f,0x9d,0xb0,0xae,0x89,0x5c,0x52,0x53,
0x5b,0x6c,0x83,0x8a,0x80,0x7c,0x87,0x8a,0x8b,0x98,0xaf,0xb6,0x93,0x62,0x51,0x52,
0x56,0x66,0x83,0x8f,0x81,0x76,0x81,0x8a,0x89,0x92,0xad,0xb9,0xa0,0x71,0x55,0x50,
0x4f,0x5e,0x7b,0x90,0x88,0x7a,0x7a,0x83,0x83,0x8c,0xa6,0xb8,0xb6,0x89,0x59,0x4d,
0x4f,0x57,0x6d,0x89,0x93,0x82,0x78,0x7c,0x84,0x85,0x95,0xaf,0xbf,0xa8,0x71,0x50,
0x4d,0x52,0x5e,0x7a,0x91,0x8c,0x79,0x77,0x80,0x83,0x83,0x9d,0xba,0xc1,0x99,0x5b,
0x47,0x4e,0x57,0x6c,0x8b,0x92,0x7f,0x73,0x7b,0x81,0x82,0x89,0xa3,0xbb,0xbf,0x93,
0x55,0x45,0x4b,0x5c,0x7d,0x98,0x8b,0x6d,0x68,0x7d,0x85,0x85,0x88,0x9f,0xb6,0xc0,
0x9b,0x5c,0x42,0x49,0x5b,0x7a,0x9b,0x98,0x6f,0x5e,0x73,0x85,0x81,0x7e,0x97,0xb4,
0xc7,0xb4,0x74,0x45,0x3f,0x4d,0x70,0x9a,0xa5,0x7d,0x5f,0x69,0x7d,0x7e,0x7a,0x86,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80
};
void setup() {
attachInterrupt(INTIR, irInt, CHANGE);
analogWriteFrequency(16000);
pinMode(LED1_M1F, OUTPUT);
pinMode(LED2_M0F, OUTPUT);
pinMode(LED3_M0B, OUTPUT);
pinMode(LED4_M1B, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(SERVO_PIN, OUTPUT);
digitalWrite(LED5, LED_OFF);
digitalWrite(LED6, LED_OFF);
freeMotor();
randomSeed((unsigned int)analogRead(BATT));
Serial.begin(115200);
Wire.begin();
Wire.beginTransmission(0x68); //Gyro sensor
Wire.write(0x6B); // Power management register
Wire.write(0); // wake up MPU-6050
Wire.endTransmission();
SD2.begin(27);
checkVoltage();
selectMode();
delay(100);
readEEPROMbal();
readEEPROMadhoc();
resetPara();
resetVar();
openFiles();
digitalWrite(LED6, LED_ON);
calibGyro();
digitalWrite(LED6, LED_OFF);
pinMode(TONE_PIN, OUTPUT);
analogWrite(TONE_PIN, 0);
delay(10);
if (fGreet) soundStartSD(fGreet, fsizeGreet, vGreet);
else soundStart(soundGreet, sizeof(soundGreet), 70);
while (soundBusy);
if (demoMode==2) soundStartSD(fDemo, fsizeDemo, vDemo);
if (debug) soundStartSD(fDebug, fsizeDebug, vDebug);
}
void loop(){
time0=micros();
getIR();
getGyro();
pendulum();
servoHead();
randomPlay();
if (pendPhase!=-1) monitorVoltage();
counter += 1;
if (counter >= 100) {
counter = 0;
counterSec++;
if (debug) digitalWrite(LED6, LED_ON);
if (serialMonitor) sendSerial();
digitalWrite(LED6, LED_OFF);
}
while (micros() - time0 < pendInterval);
}
void pendulum() {
switch (pendPhase) {
case -1: //wait until upright
calcTarget();
if (upright()) {
pendPhase =0;
digitalWrite(LED5, LED_OFF);
}
break;
case 0: //calib Acc
resetVar();
demoDelayCounter=0;
demoPhase=0;
delay(1300);
if (!upright()) pendPhase=2;
else {
digitalWrite(LED6, LED_ON);
calibAcc();
digitalWrite(LED6, LED_OFF);
if (upright()) pendPhase=1;
else pendPhase=2;
}
break;
case 1: //run
if (!standing()) {
if (musicPlaying) soundStop=true;
soundStart(soundWow, sizeof(soundWow), 70);
pendPhase=6;
}
// else if (bVolt<2.0) resetMotor();
else {
if (demoMode==2) demo8();
calcTarget();
boolean ok=pendDrive();
if (!ok) {
if (musicPlaying) soundStop=true;
delay(1300);
pendPhase=2;
}
}
break;
case 2: //wait until upright
freeMotor();
if (upright()) pendPhase=0;
break;
case 6: //fell
if (laid() && !soundBusy) pendPhase=8;
break;
case 8:
soundStartSD(fTipover, fsizeTipover, vTipover);
pendPhase=2;
break;
}
}
void openFiles() {
fGreet=SD2.open("kon168m.wav");
fsizeGreet=fGreet.size();
vGreet=getVolume(SD2.open("kon168m.ini"));
fStop=SD2.open("tom168m.wav");
fsizeStop=fStop.size();
vStop=getVolume(SD2.open("tom168m.ini"));
fRight=SD2.open("mig168m.wav");
fsizeRight=fRight.size();
vRight=getVolume(SD2.open("mig168m.ini"));
fLeft=SD2.open("hid168m.wav");
fsizeLeft=fLeft.size();
vLeft=getVolume(SD2.open("hid168m.ini"));
fForward=SD2.open("sus168m.wav");
fsizeForward=fForward.size();
vForward=getVolume(SD2.open("sus168m.ini"));
fBack=SD2.open("bac168m.wav");
fsizeBack=fBack.size();
vBack=getVolume(SD2.open("bac168m.ini"));
fSpin=SD2.open("maw168m.wav");
fsizeSpin=fSpin.size();
vSpin=getVolume(SD2.open("maw168m.ini"));
fAccel=SD2.open("kaso168m.wav");
fsizeAccel=fAccel.size();
vAccel=getVolume(SD2.open("kaso168m.ini"));
fTipover=SD2.open("koro168m.wav");
fsizeTipover=fTipover.size();
vTipover=getVolume(SD2.open("koro168m.ini"));
fDemo=SD2.open("demo168m.wav");
fsizeDemo=fDemo.size();
vDemo=getVolume(SD2.open("demo168m.ini"));
fDebug=SD2.open("debu168m.wav");
fsizeDebug=fDebug.size();
vDebug=getVolume(SD2.open("debu168m.ini"));
fBattery=SD2.open("denc168m.wav");
fsizeBattery=fBattery.size();
vBattery=getVolume(SD2.open("denc168m.ini"));
fReplace=SD2.open("kouk168m.wav");
fsizeReplace=fReplace.size();
vReplace=getVolume(SD2.open("kouk168m.ini"));
voiceFile[0]=SD2.open(soundVoice[0]);
if (voiceFile[0]) {
fsizeVoice[0]=voiceFile[0].size();
vVoice[0]=getVolume(SD2.open(soundVoiceIni[0]));
if (serialMonitor) {Serial.print(soundVoice[0]);Serial.print(" size=");Serial.println(fsizeVoice[0]);}
minVoiceFile=0;
}
for (int i=1; i<sizeof(soundVoice)/2; i++) {
voiceFile[i]=SD2.open(soundVoice[i]);
if (voiceFile[i]) {
fsizeVoice[i]=voiceFile[i].size();
vVoice[i]=getVolume(SD2.open(soundVoiceIni[i]));
if (serialMonitor) {Serial.print(soundVoice[i]);Serial.print(" size=");Serial.println(fsizeVoice[i]);}
maxVoiceFile=i;
}
}
if (minVoiceFile==-1 && maxVoiceFile>=1) minVoiceFile=1;
for (int i=0; i<sizeof(soundMusic)/2; i++) {
musicFile[i]=SD2.open(soundMusic[i]);
if (musicFile[i]) {
fsizeMusic[i]=musicFile[i].size();
vMusic[i]=getVolume(SD2.open(soundMusicIni[i]));
if (serialMonitor) {Serial.print(soundMusic[i]);Serial.print(" size=");Serial.println(fsizeMusic[i]);}
minMusicFile=0;
maxMusicFile=i;
}
}
}
int getVolume(File f) {
if (f) {
int vol=0;
while(f.available()) {
char c=f.read();
if (c>=0x30 && c<0x39) vol=vol*10+c-0x30;
}
f.close();
if (vol>=0 && vol<=100) return vol;
else return 10;
}
else return 10;
}
void randomPlay() {
if (!randomSoundOn || minVoiceFile==-1) return;
switch (soundPhase) {
case 1:
if (!soundBusy) {
counterSec0=counterSec;
soundInterval=(int)random(MINSINTERVAL, MAXSINTERVAL+1);
soundPhase=2;
}
break;
case 2:
if (counterSec-counterSec0>soundInterval) {
soundId=(int)random(minVoiceFile, maxVoiceFile+1);
soundStartSD(voiceFile[soundId], fsizeVoice[soundId], vVoice[soundId]);
if (soundId==0) {
if (minMusicFile!=-1 && demoMode==0) soundPhase=3;
else soundPhase=1;
}
else soundPhase=1;
}
break;
case 3:
if (!soundBusy) {
musicPlaying=true;
int id=(int)random(minMusicFile, maxMusicFile+1);
soundStartSD(musicFile[id], fsizeMusic[id], vMusic[id]);
soundPhase=1;
}
break;
}
}
void servoHead() {
switch(servoPhase) {
case 1:
servoDrive();
if (servoComplete) {
servoComplete=false;
servoPhase=2;
}
break;
case 2:
servoContinue(90.0, 1.0);
servoPhase=3;
break;
case 3:
servoDrive();
if (servoComplete) {
servoComplete=false;
servoPhase=4;
}
break;
case 4:
break;
}
}
void servoStart(double ang, double stp) {
servoPhase=1;
servoContinue(ang, stp);
}
void servoContinue(double ang, double stp) {
if (ang<servoAngTarget) stp=-stp;
servoAngDestination=ang;
servoAngStep=stp;
}
void servoDrive() {
if (servoAngStep>=0) {
if (servoAngDestination-servoAngStep>servoAngTarget) servoAngTarget+=servoAngStep;
else {
servoAngTarget=servoAngDestination;
servoComplete=true;
}
}
else {
if (servoAngDestination-servoAngStep<servoAngTarget) servoAngTarget+=servoAngStep;
else {
servoAngTarget=servoAngDestination;
servoComplete=true;
}
}
servoPulseWidth=600+(int)(servoAngTarget*10.0);
digitalWrite(SERVO_PIN, HIGH);
delayMicroseconds(servoPulseWidth);
digitalWrite(SERVO_PIN, LOW);
}
void calcTarget() {
if (spinContinuous) spinTarget += spinStep;
else {
if (spinTarget < spinDestination) spinTarget += spinStep;
if (spinTarget > spinDestination) spinTarget -= spinStep;
}
moveTarget -= moveStep * moveRate;
}
boolean pendDrive() {
varSpd += power * pendClk;
varDst += Kdst * (varSpd * pendClk - moveTarget);
varIang += KIang * varAng * pendClk;
varIdst += KIdst * varDst * pendClk;
power = varIang + varIdst + varDst + (Kspd * varSpd) + (Kang * varAng) + (Komg * varOmg);
if (abs(power) > 5000.0) counterOverSpd +=1;
else counterOverSpd=0;
if (counterOverSpd > maxOverSpd) {
resetMotor();
resetVar();
return false;
}
spinPower = (spinAngle - spinTarget) * Kspin;
powerL = power - spinPower;
powerR = power + spinPower;
motor();
return true;
}
void motor() {
ipowerL = (int) (constrain(powerL * mechFactorL * battFactor, -maxSpd, maxSpd));
if (ipowerL > 0) {
if (motorLdir == 1) drvMotorL(ipowerL);
else drvMotorL(ipowerL + backlashSpd); //compensate backlash
motorLdir = 1;
}
else if (ipowerL < 0) {
if (motorLdir == -1) drvMotorL(ipowerL);
else drvMotorL(ipowerL - backlashSpd);
motorLdir = -1;
}
else {
drvMotorL(0);
motorLdir = 0;
}
ipowerR = (int) (constrain(powerR * mechFactorR * battFactor, -maxSpd, maxSpd));
if (ipowerR > 0) {
if (motorRdir == 1) drvMotorR(ipowerR);
else drvMotorR(ipowerR + backlashSpd); //compensate backlash
motorRdir = 1;
}
else if (ipowerR < 0) {
if (motorRdir == -1) drvMotorR(ipowerR);
else drvMotorR(ipowerR - backlashSpd);
motorRdir = -1;
}
else {
drvMotorR(0);
motorRdir = 0;
}
}
void drvMotorL(int pwm) {
switch (MotorConfig) {
case 0: drvMotor1(pwm);
break;
case 1: drvMotor1(-pwm);
break;
case 2: drvMotor1(pwm);
break;
case 3: drvMotor1(-pwm);
break;
}
}
void drvMotorR(int pwm) {
switch (MotorConfig) {
case 0: drvMotor0(pwm);
break;
case 1: drvMotor0(-pwm);
break;
case 2: drvMotor0(-pwm);
break;
case 3: drvMotor0(pwm);
break;
}
}
void drvMotor0(int pwm) {
if (pwm >0) {
digitalWrite(LED3_M0B,LOW);
analogWrite(LED2_M0F,constrain(pwm+drvHLbalance, 0,PWMMAX));
}
else if (pwm < 0) {
digitalWrite(LED3_M0B,HIGH);
analogWrite(LED2_M0F,constrain(PWMMAX+pwm, 0,PWMMAX));
}
else {
pinMode(LED2_M0F, OUTPUT);
digitalWrite(LED2_M0F,HIGH);
digitalWrite(LED3_M0B,HIGH);
}
}
void drvMotor1(int pwm) {
if (pwm >0) {
digitalWrite(LED4_M1B,LOW);
analogWrite(LED1_M1F,constrain(pwm+drvHLbalance, 0,PWMMAX));
}
else if (pwm < 0) {
digitalWrite(LED4_M1B,HIGH);
analogWrite(LED1_M1F,constrain(PWMMAX+pwm, 0,PWMMAX));
}
else {
pinMode(LED1_M1F, OUTPUT);
digitalWrite(LED1_M1F,HIGH);
digitalWrite(LED4_M1B,HIGH);
}
}
void getGyro() {
readGyro();
snsGyroY = (gyroDataY - gyroOffsetY) * gyroLSB;
varOmg = (gyroDataZ - gyroOffsetZ) * gyroLSB; // unit:deg/sec
snsAccX = (accDataX - accOffsetX) * accLSB; //unit:g
spinAngle += snsGyroY * pendClk;
varAng += (varOmg + (snsAccX * 57.3 - varAng) * cutoff ) * pendClk;
//angle filter accX=g*sin(ang) -> accX/g=sin(ang)=ang [rad] (if ang is small) -> ang=accX*57.3[deg]
// varAng += varOmg * pendClk;
}
void readGyro() {
Wire.beginTransmission(0x68);
Wire.write(0x3B);
Wire.endTransmission();
Wire.requestFrom(0x68, 14);
accX=Wire.read()<<8|Wire.read(); //0x3B
accY=Wire.read()<<8|Wire.read(); //0x3D
accZ=Wire.read()<<8|Wire.read(); //0x3F
temp=Wire.read()<<8|Wire.read(); //0x41
gyroX=Wire.read()<<8|Wire.read(); //0x43
gyroY=Wire.read()<<8|Wire.read(); //0x45
gyroZ=Wire.read()<<8|Wire.read(); //0x47
gyroDataY = (double) gyroY;
gyroDataZ = -(double) gyroX;
accDataX = -(double) accZ;
aveAccX = aveAccX * 0.9 + accDataX * 0.1;
accDataY = -(double) accY;
aveAccY = aveAccY * 0.9 + accDataY * 0.1;
}
boolean laid() {
if (abs(aveAccX) >13000.0) return true;
else return false;
}
boolean upright() {
if (abs(aveAccY) >13000.0) return true;
else return false;
}
boolean standing() {
if (abs(aveAccY) >8000.0 && abs(varAng) < 40.0) return true;
else {
resetMotor();
resetVar();
return false;
}
}
void calibAcc() {
accOffsetX=0.0;
for (int i=1; i <= 30; i++) {
readGyro();
accOffsetX += accDataX;
delay(20);
}
accOffsetX /= 30.0;
}
void calibGyro() {
gyroOffsetZ=gyroOffsetY=0.0;
for (int i=1; i <= 30; i++) {
readGyro();
gyroOffsetZ += gyroDataZ;
gyroOffsetY += gyroDataY;
delay(20);
}
gyroOffsetY /= 30.0;
gyroOffsetZ /= 30.0;
}
void resetPara() {
Kang=150.0;
Komg=3.0;
KIang=1300.0;
Kspin=15.0;
Kdst=80.0;
Kspd=3.5;
KIdst=0.0;
mechFactorR=0.38;
mechFactorL=0.38;
backlashSpd=30;
}
void resetVar() {
power=0.0;
moveTarget=0.0;
spinDestination=0.0;
spinTarget=0.0;
spinAngle=0.0;
varAng=0.0;
varOmg=0.0;
varDst=0.0;
varSpd=0.0;
varIang=0.0;
varIdst=0.0;
counterOverSpd=0;
spinContinuous=false;
moveRate=0.0;
}
void resetMotor() {
drvMotorL(0);
drvMotorR(0);
}
void freeMotor() {
pinMode(LED2_M0F, OUTPUT);
pinMode(LED1_M1F, OUTPUT);
digitalWrite(LED2_M0F, LOW);
digitalWrite(LED3_M0B, LOW);
digitalWrite(LED1_M1F, LOW);
digitalWrite(LED4_M1B, LOW);
}
void checkVoltage() {
monitorVoltage();
if (serialMonitor) {Serial.print("Batt=");Serial.println(bVolt);}
if (!usbPower && bVolt<3.8) {
soundStartSD(fBattery, fsizeBattery, vBattery);
blinkLED(5); //Batt Low
soundStartSD(fReplace, fsizeReplace, vReplace);
blinkLED(45);
}
}
void blinkLED(int n) {
for (int i=0; i<n; i++) {
digitalWrite(LED6, LED_ON);
delay(10);
digitalWrite(LED6, LED_OFF);
delay(200);
}
}
void monitorVoltage() {
bVolt=getBattVolt();
aveVolt = aveVolt * 0.98 + bVolt * 0.02;
if (bVolt<minVolt) minVolt=bVolt;
if (bVolt<0.5) { //USB POWER
usbPower=true;
battFactor=1.3;
setColor(0,0,1);
}
else {
battFactor = 18.0 / aveVolt / aveVolt;
// battFactor = 4.5 / aveVolt;
// battFactor = 4.5 / bVolt;
if (bVolt<3.6) setColor(1,0,1);
else if (bVolt<4.0) setColor(1,0,0);
else if (bVolt<4.4) setColor(1,1,0);
else setColor(0,1,0);
}
}
double getBattVolt() {
return ((double) analogRead(BATT)) * 0.0064516; // analogRead / 1023.0 * 6.6;
}
void selectMode() {
pinMode(SW1_SINT_PIN, INPUT_PULLUP);
pinMode(SW2_IRINT_PIN, INPUT_PULLUP);
delay(10);
if (digitalRead(SW1_SINT_PIN) == LOW) { //debug
debug=true;
serialMonitor=true;
spinStep=0.0;
blinkLED(1);
while(digitalRead(SW1_SINT_PIN)==LOW);
}
else if (digitalRead(SW2_IRINT_PIN) == LOW) { //demo
demoMode=2;
blinkLED(2);
while(digitalRead(SW2_IRINT_PIN) == LOW);
}
else spinStep=0.0;
pinMode(SW1_SINT_PIN, INPUT);
pinMode(SW2_IRINT_PIN, INPUT);
}
void demo8() {
switch (demoPhase) {
case 0:
demoDelayCounter=200;
demoPhase=1;
break;
case 1:
if (demoDelayCounter>1) demoDelayCounter--;
else {
moveRate=3.0;
spinStep=0.5;
spinDestination += 270.0;
demoPhase=2;
}
break;
case 2:
if (abs(spinTarget-spinDestination)<5.0) {
demoDelayCounter=100;
moveRate=5.0;
demoPhase=3;
}
break;
case 3:
if (demoDelayCounter>1) demoDelayCounter--;
else {
moveRate=3.0;
spinDestination -= 270.0;
demoPhase=4;
}
break;
case 4:
if (abs(spinTarget-spinDestination)<5.0) {
demoDelayCounter=100;
moveRate=5.0;
demoPhase=1;
}
break;
}
}
void setColor(int r, int g, int b) {
digitalWrite(LED_R, r);
digitalWrite(LED_G, g);
digitalWrite(LED_B, b);
}
void readEEPROMbal() {
if (EEPROM.read(0)==HCODE) {
drvHLbalance=EEPROM.read(1);
if (serialMonitor) {Serial.print("drvHLbal=");Serial.println(drvHLbalance);}
}
else {
drvHLbalance=30;
noInterrupts();
EEPROM.write(0, HCODE);
EEPROM.write(1, drvHLbalance);
interrupts();
}
}
void writeEEPROMbal() {
noInterrupts();
EEPROM.write(1, drvHLbalance);
interrupts();
}
void readEEPROMadhoc() {
if (EEPROM.read(2)==HCODE) {
for (int i=0; i<ADHOC_IR_MAX; i++) {
ADHOC_CUSTOMER[i]=EEPROM.read(3+i*4)<<8|EEPROM.read(4+i*4);
ADHOC_IR[i]=EEPROM.read(5+i*4)<<8|EEPROM.read(6+i*4);
if (serialMonitor) {
Serial.print("CUST=");Serial.print(ADHOC_CUSTOMER[i],HEX);Serial.print(" CODE=");Serial.println(ADHOC_IR[i],HEX);
}
}
}
}
void writeEEPROMadhoc() {
noInterrupts();
EEPROM.write(2, HCODE);
for (int i=0; i<ADHOC_IR_MAX; i++) {
EEPROM.write(3+i*4, (byte)((ADHOC_CUSTOMER[i]>>8)&0xFF));
EEPROM.write(4+i*4, (byte)(ADHOC_CUSTOMER[i]&0xFF));
EEPROM.write(5+i*4, (byte)((ADHOC_IR[i]>>8)&0xFF));
EEPROM.write(6+i*4, (byte)(ADHOC_IR[i]&0xFF));
}
interrupts();
}
void sendSerial () {
Serial.print(micros()-time0);
Serial.print(" phase=");Serial.print(pendPhase);
Serial.print(" accX="); Serial.print(aveAccX);
Serial.print(" accY="); Serial.print(aveAccY);
Serial.print(" ang=");Serial.print(varAng);
// Serial.print(" temp = "); Serial.print(temp/340.0+36.53);
Serial.print(" drvBal="); Serial.print(drvHLbalance);
Serial.print(" mVolt="); Serial.print(minVolt);
Serial.print(", ");
Serial.print(micros()-time0);
Serial.println();
}
void getIR() {
if (!(irStarted && (micros()-irMicroOff>10000))) return;
if ((irDataOn[0]>1800) && musicPlaying) soundStop=true;
irStarted=false;
irDecoding=true;
if (irDataOn[0]>7000) { //NEC
if (irOffIndex >=33) {
decodeNECAEHA();
printIrData("NEC");
}
}
else if (irDataOn[0]>2600) { //AEHA
if (irOffIndex >=41) {
decodeNECAEHA();
printIrData("AEHA");
}
}
else if (irDataOn[0]>1800) { //SONY
if (irOnIndex >=12) {
decodeSONY();
printIrData("SONY");
}
}
if (irReady) {
irReady=false;
lastIrTime=millis();
if (adhoc_ir_num>=0 && adhoc_ir_num<ADHOC_IR_MAX && pendPhase==-1) regIR();
else irCommand();
}
irDecoding=false;
}
void irCommand() {
if (
((ircode==AKI_REMO_CENTER)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_CENTER])&&(customer_code==ADHOC_CUSTOMER[IR_CENTER])) ) {
if (pendPhase!=-1) {
if (abs(moveRate)>1.0 || abs(spinStep)>0.1) {
if (fStop) soundStartSD(fStop, fsizeStop, vStop);
else tone(TONE_PIN, 500, 100);
}
button=IR_CENTER;
demoMode=0;
spinContinuous=false;
spinStep=0.0;
moveRate=0.0;
spinDestination = spinTarget;
}
}
else if (
((ircode==AKI_REMO_RIGHT)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_RIGHT])&&(customer_code==ADHOC_CUSTOMER[IR_RIGHT])) ) {
if (pendPhase==-1) {
servoStart(60.0, 0.5);
drvMotorR(-80);
delay(1000);
drvMotorR(0);
}
else if (demoMode==0) {
servoStart(headRight, 3.0);
if (button!=IR_RIGHT && fRight) soundStartSD(fRight, fsizeRight, vRight);
else tone(TONE_PIN, 2000, 100);
button=IR_RIGHT;
if (spinContinuous) spinDestination=spinTarget;
spinContinuous=false;
spinStep=0.6;
spinDestination -= 30.0;
}
}
else if (
((ircode==AKI_REMO_LEFT)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_LEFT])&&(customer_code==ADHOC_CUSTOMER[IR_LEFT])) ) {
if (pendPhase==-1) {
servoStart(120.0, 0.5);
drvMotorL(-80);
delay(1000);
drvMotorL(0);
}
else if (demoMode==0) {
servoStart(headLeft, 3.0);
if (button!=IR_LEFT && fLeft) soundStartSD(fLeft, fsizeLeft, vLeft);
else tone(TONE_PIN, 2000, 100);
button=IR_LEFT;
if (spinContinuous) spinDestination=spinTarget;
spinContinuous=false;
spinStep=0.6;
spinDestination += 30.0;
}
}
else if (
((ircode==AKI_REMO_UP)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_UP])&&(customer_code==ADHOC_CUSTOMER[IR_UP])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=IR_UP;
if (abs(moveRate)<1.0 && fForward) soundStartSD(fForward, fsizeForward, vForward);
else if (abs(moveRate)>10.0 && fAccel) soundStartSD(fAccel, fsizeAccel, vAccel);
else tone(TONE_PIN, 1000, 100);
moveRate+=4.0;
}
}
else if (
((ircode==AKI_REMO_DOWN)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_DOWN])&&(customer_code==ADHOC_CUSTOMER[IR_DOWN])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=IR_DOWN;
if (abs(moveRate)<1.0 && fBack) soundStartSD(fBack, fsizeBack, vBack);
else tone(TONE_PIN, 1000, 100);
moveRate-=4.0;
}
}
else if (
((ircode==AKI_REMO_UL)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_CIRL])&&(customer_code==ADHOC_CUSTOMER[IR_CIRL])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=IR_CIRL;
if (abs(spinStep)<0.1 && fSpin) soundStartSD(fSpin, fsizeSpin, vSpin);
else tone(TONE_PIN, 2000, 20);
if (!spinContinuous) spinStep=0.0;
spinContinuous=true;
spinStep+=0.3;
}
}
else if (
((ircode==AKI_REMO_UR)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_CIRR])&&(customer_code==ADHOC_CUSTOMER[IR_CIRR])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=IR_CIRR;
if (abs(spinStep)<0.1 && fSpin) soundStartSD(fSpin, fsizeSpin, vSpin);
else tone(TONE_PIN, 2000, 20);
if (!spinContinuous) spinStep=0.0;
spinContinuous=true;
spinStep-=0.3;
}
}
else if (
((ircode==AKI_REMO_DL)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_BALF])&&(customer_code==ADHOC_CUSTOMER[IR_BALF])) ) {
if (demoMode==0) {
if (moveRate==0.0 && spinTarget==spinDestination) {
if (drvHLbalance>=-100) {
tone(TONE_PIN, 4000, 10);
drvHLbalance-=5;
setColor(1,1,1);
digitalWrite(LED5,LED_ON);
writeEEPROMbal();
digitalWrite(LED5,LED_OFF);
}
else tone(TONE_PIN, 4000, 40);
}
}
}
else if (
((ircode==AKI_REMO_DR)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_BALB])&&(customer_code==ADHOC_CUSTOMER[IR_BALB])) ) {
if (demoMode==0) {
if (moveRate==0.0 && spinTarget==spinDestination) {
if (drvHLbalance<=100) {
tone(TONE_PIN, 4000, 10);
drvHLbalance+=5;
setColor(1,1,1);
digitalWrite(LED5,LED_ON);
writeEEPROMbal();
digitalWrite(LED5,LED_OFF);
}
else tone(TONE_PIN, 4000, 40);
}
}
}
else {
if (pendPhase == -1 && debug && adhoc_ir_num==-1) {
setColor(1,1,1);
digitalWrite(LED5, LED_ON);
randomSoundOn=false;
adhoc_ir_num=0;
}
}
}
void regIR() {
// Ad hoc IR code registration
if (adhoc_ir_num<ADHOC_IR_MAX) {
ADHOC_IR[adhoc_ir_num]=ircode;
ADHOC_CUSTOMER[adhoc_ir_num]=customer_code;
if (serialMonitor) {
Serial.print("set ADHOC_IR[");
Serial.print(adhoc_ir_num);
Serial.print("] = ");
Serial.println(ircode, HEX);
Serial.print("set ADHOC_CUSTOMER[");
Serial.print(adhoc_ir_num);
Serial.print("] = ");
Serial.println(customer_code, HEX);
}
if (adhoc_ir_num==0) adhoc_ir_num++;
else if (ADHOC_IR[adhoc_ir_num-1]!=ircode) adhoc_ir_num++;
for (int i=1; i<=adhoc_ir_num; i++) {
digitalWrite(LED5, LED_OFF);
delay(200);
digitalWrite(LED5, LED_ON);
delay(100);
}
if (adhoc_ir_num==ADHOC_IR_MAX) {
writeEEPROMadhoc();
digitalWrite(LED5, LED_OFF);
randomSoundOn=true;
}
}
}
void irInt() {
if (millis()-lastIrTime<MINIRINTERVAL) return;
if (irDecoding) return;
if (pendPhase!=-1) digitalWrite(LED5, LED_ON);
if (digitalRead(SW2_IRINT_PIN) == IRON) {
irMicroOn=micros();
if (irStarted) {
irDataOff[irOffIndex]=irMicroOn-irMicroOff;
irOffIndex++;
if (irOffIndex>=IRBUFFLEN) irStarted=false;
}
else {
irStarted=true;
irOnIndex=0;
irOffIndex=0;
irMicroOff=irMicroOn;
}
}
else {
irMicroOff=micros();
irDataOn[irOnIndex]=irMicroOff-irMicroOn;
irOnIndex++;
if (irOnIndex>=IRBUFFLEN) irStarted=false;
}
digitalWrite(LED5, LED_OFF);
}
void decodeNECAEHA() {
int len=irOffIndex/8;
int idx=1;
for (int i=0; i<len; i++) {
irData[i]=0;
for (int j=0; j<8; j++) {
irData[i]>>=1;
if (irDataOff[idx]>1000) irData[i]|=0x80;
idx++;
}
}
customer_code=irData[0]<<8|irData[1];
ircode=irData[len-2]<<8|irData[len-1];
irReady=true;
}
void decodeSONY() {
byte data=0;
for (int i=1; i<=7; i++) {
if (irDataOn[i]>900) data|=0x80;
data>>=1;
}
unsigned int addr=0;
int idx=8;
for (int i=0; i<16; i++) {
addr>>=1;
if (idx<irOnIndex && irDataOn[idx]<1800) {
if (irDataOn[idx]>900) addr|=0x8000;
idx++;
}
}
customer_code=addr;
ircode=(unsigned int)data;
irReady=true;
}
void printIrData(String s) {
if (!serialMonitor) return;
/*
for (int i=0; i<irOffIndex; i++) {
Serial.print(irDataOn[i]);Serial.print(" ");Serial.println(irDataOff[i]);
}
Serial.println("");
*/
Serial.println(s);
Serial.print("Customer=");Serial.println(customer_code, HEX);
Serial.print("Code=");Serial.println(ircode, HEX);
}
void soundIntSD() {
if (filePointer<fileSize && !soundStop) {
byte d=sdfile.read();
filePointer++;
if (soundGain!=10) {
int di=(int)d-128;
di=(di*soundGain)/10;
d=(byte)constrain((di+128), 10, 250);
}
else d=constrain(d, 10, 250);
analogWrite(TONE_PIN, d);
}
else {
detachInterrupt(INTSOUND);
analogWrite(TONE_PIN, 0);
musicPlaying=false;
soundBusy=false;
}
}
void soundStartSD(File s, unsigned long sz, int gain) {
if (soundBusy || !s) return;
sdfile=s;
fileSize=sz;
soundBusy=true;
soundStop=false;
if (sdfile.seek(44)) {
soundGain=gain;
filePointer=44;
attachInterrupt(INTSOUND, soundIntSD, RISING);
analogWrite(TONE_PIN, 128);
}
}
void soundStart(const byte* ptr, unsigned long sz, int gain) {
if (soundBusy) return;
counterSec0=counterSec;
soundBusy=true;
soundIndex=0;
soundPtr=ptr;
soundSize=sz;
soundGain=gain;
attachInterrupt(INTSOUND, soundInt, RISING);
analogWrite(TONE_PIN, 128);
}
void soundInt() {
byte d=soundPtr[soundIndex];
if (soundGain!=10) {
int di=(int)d-128;
di=(di*soundGain)/10;
d=(byte)constrain((di+128), 10, 250);
}
else d=constrain(d, 10, 250);
analogWrite(TONE_PIN, d);
soundIndex++;
if (soundIndex>=soundSize) {
detachInterrupt(INTSOUND);
analogWrite(TONE_PIN, 0);
soundBusy=false;
}
}

2017年7月10日月曜日

GR-ADZUKIで倒立振子ロボADZUMIN v41

//ADZUMIN Inverted Pendulum Robot
//Copyright MAENOH! & KIRAKULABO 2017
//wheele dia ~= 58mm
//Gear ratio ~= 114 (TAMIYA Double Gear Box)
//Battery: Alkaline x 3
//MPU/Driver: GR-ADZUKI
//Gyro/Acc: MPU6050 (I2C)
//Adhoc IR remote control registration during laying just after power up.
//SW1: Stand still with debug and serialMonito on (1 blink)
//SW2: demo (2 blinks)
//Default: Stand still (no blink)
#include "Arduino.h"
#include <Wire.h>
#include <EEPROM.h>
#include <SD.h>
#define LED_R 22
#define LED_G 23
#define LED_B 24
#define HCODE 0x4D //M
#define PWMMAX 255
#define M1F 6
#define M0F 9
#define M0B 10
#define M1B 11
#define LED1_M1F 6
#define LED2_M0F 9
#define LED3_M0B 10
#define LED4_M1B 11
#define LED5 12
#define LED6 13
#define LED_ON 1
#define LED_OFF 0
#define SW1 3
#define SW2 2
#define GP2Y A0
#define BATT A1
#define TONE_PIN 5
#define AKI_REMO_CUSTOMER (0x10EF)
#define AKI_REMO_POWER (0xD827)
#define AKI_REMO_A (0xF807)
#define AKI_REMO_B (0x7887)
#define AKI_REMO_C (0x58A7)
#define AKI_REMO_UP (0xA05F)
#define AKI_REMO_DOWN (0x00FF)
#define AKI_REMO_RIGHT (0x807F)
#define AKI_REMO_LEFT (0x10EF)
#define AKI_REMO_CENTER (0x20DF)
#define AKI_REMO_UR (0x21DE)
#define AKI_REMO_UL (0xB14E)
#define AKI_REMO_DR (0x817E)
#define AKI_REMO_DL (0x11EE)
#define SW_ON 0
#define SW_OFF 1
#define SOUTPIN 5
#define SINTPIN 3
#define INTSOUND 1
#define IRIN 2 // IR RECEIVE PIN
#define INTIR 0 // IR RECEIVE interrupt number
#define IRON LOW
#define IROFF HIGH
#define IRBUFFLEN 200
// Ad hoc IR code
#define IR_UP 1
#define IR_DOWN 7
#define IR_RIGHT 5
#define IR_LEFT 3
#define IR_CENTER 4
#define IR_CIRL 0
#define IR_CIRR 2
#define IR_BALF 6
#define IR_BALB 8
#define ADHOC_IR_MAX 9
#define MAXSINTERVAL 15
#define MINSINTERVAL 5
unsigned int ADHOC_CUSTOMER[ADHOC_IR_MAX] = {0xFFFF,0xFFFF,0XFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}; //1,2,3,4,5,6,7,8,9
unsigned int ADHOC_IR[ADHOC_IR_MAX] = {0xFFFF,0xFFFF,0XFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}; // 1,2,3,4,5,6,7,8,9
int adhoc_ir_num=-1;
void selectMode();
void sendSerial();
void resetPara();
void resetVar();
void getGyro();
void readGyro();
void calibGyro();
void calibAcc();
void calcTarget();
void drive();
void motor();
void resetMotor();
boolean laid();
boolean upright();
boolean standing();
void drvMotorL(int pwm);
void drvMotorR(int pwm);
void checkVoltage();
void monitorVoltage();
double getBattVolt();
void blinkLED(int n);
void setColor(int r, int g, int b);
void readEEPROMbal();
void writeEEPROMbal();
void readEEPROMadhoc();
void writeEEPROMadhoc();
void demo8();
void getIR();
void regIR();
void printIrData();
void decodeNECAEHA();
void decodeSONY();
void irInt();
void irCommand();
void printIrData(String s);
void soundIntSD();
void soundInt();
void soundStartSD(File s, int gain);
void soundStart(const byte* ptr, unsigned long sz, int gain);
void servoStart(double ang, double stp);
void servoContinue(double ang, double stp);
void servoDrive();
void pendulum();
void servoHead();
void randomPlay();
void openFiles();
int button=0;
volatile unsigned long irMicroOn;
volatile unsigned long irMicroOff;
volatile unsigned int irDataOn[200];
volatile unsigned int irDataOff[200];
volatile int irOnIndex=0;
volatile int irOffIndex=0;
volatile boolean irStarted=false;
volatile boolean irDecoding=false;
volatile unsigned long lastIrTime=0;
boolean irReady=false;
byte irData[30];
unsigned int ircode;
unsigned int customer_code;
int MotorConfig = 0; // 0 to 3
int accX, accY, accZ, temp, gyroX, gyroY, gyroZ;
int counter=0;
volatile int counterSec=0;
volatile int counterSec0=0;
unsigned long time1=0;
unsigned long time0=0;
double power, powerR, powerL;
double snsGyroY, snsAccX;
double varAng, varOmg, varSpd, varDst, varIang, varIdst;
double gyroOffsetY, gyroOffsetZ, accOffsetX;
double gyroDataY, gyroDataZ, accDataX, accDataY;
double gyroLSB=1.0/131.0; // deg/sec
double accLSB=1.0/16384.0; // g
double pendClk = 0.01; // in sec,
unsigned long pendInterval = 10000; // in usec
double cutoff = 0.1; // 2 * PI * f (f=Hz) //0.1
double Kang, Komg, Kdst, Kspd, Kspin, KIang, KIdst;
double spinPower;
double moveTarget, moveRate=0.0; //moveRate 0:stop, +:forward, -:backward
double moveStep = 0.0013;
double spinDestination, spinTarget;
double spinStep = 0.0;
double spinAngle;
boolean spinContinuous=false;
int pendPhase=-1;
int ipowerR = 0;
int ipowerL = 0;
int motorRdir=0; //stop 1:+ -1:-
int motorLdir=0; //stop
int backlashSpd;
double mechFactorR, mechFactorL;
double battFactor=1.3; // 2016.07.14
double bVolt;
double maxSpd=250.0;
int counterOverSpd;
int maxOverSpd=15;
double aveAccX=0.0;
double aveAccY=0.0;
boolean debug=false;
boolean serialMonitor=false;
double aveVolt=4.5;
boolean usbPower=false;
int8_t drvHLbalance=0;
int demoPhase=0;
int demoDelayCounter=0;
int demoMode=0;
int servoPhase=1;
boolean servoComplete=false;
int servoPulseWidth=1500;
double servoAngDestination=90.0;
double servoAngTarget=90.0;
double servoAngStep=1.0;
int servoWidth=1500; //in usec
File voiceFile[11];
File musicFile[10];
File sdfile;
File fGreet, fStop, fRight, fLeft, fForward, fBack, fSpin, fAccel, fTipover, fDemo, fDebug, fBattery, fReplace;
volatile boolean soundBusy=false;
volatile unsigned long soundIndex=0;
volatile const byte *soundPtr;
volatile unsigned long soundSize;
volatile int soundGain=10; //10=100%
boolean soundSD;
boolean soundFlg=false;
int soundInterval=MAXSINTERVAL;
volatile boolean soundStop=false;
int soundId;
boolean musicPlaying=false;
boolean soundOn=true;
boolean randomSoundOn=true;
int soundPhase=1;
int maxVoiceFile=0;
int minVoiceFile=-1;
int maxMusicFile=0;
int minMusicFile=-1;
const char *soundVoice[] = {"vmu_168m.wav", "v1_168m.wav", "v2_168m.wav", "v3_168m.wav", "v4_168m.wav", "v5_168m.wav", "v6_168m.wav", "v7_168m.wav", "v8_168m.wav", "v9_168m.wav", "v10_168m.wav"};
const char *soundMusic[] = {"mu1_168m.wav", "mu2_168m.wav", "mu3_168m.wav", "mu4_168m.wav", "mu5_168m.wav", "mu6_168m.wav", "mu7_168m.wav", "mu8_168m.wav", "mu9_168m.wav", "mu10_168m.wav"};
const double headLeft=150.0;
const double headRight=30.0;
const byte soundGreet[] = {
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x75,0x74,0x71,0x6e,
0x6f,0x73,0x7b,0x81,0x8b,0x8e,0x8e,0x8c,0x8a,0x86,0x80,0x7e,0x80,0x7f,0x81,0x80,
0x80,0x7f,0x7e,0x80,0x78,0x77,0x76,0x7c,0x7f,0x84,0x8d,0x8f,0x95,0x92,0x8e,0x86,
0x80,0x7d,0x79,0x79,0x7c,0x7f,0x80,0x80,0x7d,0x79,0x7a,0x7a,0x7d,0x7f,0x84,0x87,
0x88,0x88,0x87,0x85,0x85,0x81,0x72,0x67,0x60,0x61,0x68,0x76,0x85,0x90,0x98,0x96,
0x8c,0x81,0x7d,0x7e,0x80,0x86,0x89,0x8b,0x8a,0x88,0x81,0x76,0x78,0x77,0x7c,0x82,
0x8a,0x91,0x92,0x8d,0x80,0x73,0x6a,0x69,0x6a,0x71,0x7b,0x84,0x85,0x84,0x80,0x7a,
0x75,0x73,0x74,0x73,0x77,0x7b,0x7f,0x81,0x87,0x8d,0x90,0x91,0x8f,0x8a,0x82,0x7c,
0x77,0x71,0x70,0x74,0x79,0x81,0x8d,0x9a,0xa1,0xa2,0x9c,0x93,0x85,0x78,0x70,0x6a,
0x69,0x6a,0x6d,0x6d,0x6f,0x72,0x72,0x71,0x75,0x7d,0x85,0x8e,0x96,0x97,0x93,0x8c,
0x84,0x78,0x72,0x73,0x76,0x7b,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x76,0x71,0x6d,0x70,
0x78,0x81,0x8d,0x94,0x98,0x94,0x8e,0x84,0x7f,0x7e,0x7f,0x81,0x84,0x88,0x89,0x87,
0x83,0x7b,0x72,0x6c,0x6a,0x6b,0x6e,0x78,0x7f,0x86,0x8b,0x8e,0x8f,0x8e,0x8b,0x87,
0x83,0x7d,0x77,0x70,0x68,0x62,0x60,0x63,0x6a,0x78,0x89,0x96,0xa1,0xa3,0xa1,0x98,
0x91,0x8a,0x86,0x82,0x86,0x7e,0x7d,0x76,0x57,0x52,0x50,0x60,0x78,0xa2,0xbe,0xc9,
0xc8,0xac,0x83,0x60,0x57,0x57,0x66,0x7c,0x90,0x92,0x8b,0x7d,0x67,0x56,0x57,0x5f,
0x6d,0x81,0x95,0x9b,0x94,0x89,0x7b,0x70,0x6f,0x78,0x80,0x88,0x88,0x82,0x72,0x68,
0x64,0x69,0x73,0x83,0x90,0x95,0x98,0x91,0x8e,0x8b,0x93,0x9d,0x9f,0xa1,0x95,0x82,
0x6a,0x5c,0x5c,0x67,0x87,0x92,0x97,0x94,0x7d,0x65,0x53,0x5e,0x75,0x9b,0xbc,0xbc,
0xa9,0x92,0x75,0x5a,0x4d,0x50,0x5d,0x6d,0x7c,0x81,0x7d,0x7a,0x74,0x6b,0x66,0x6c,
0x78,0x83,0x8a,0x8c,0x89,0x80,0x7b,0x76,0x76,0x7a,0x83,0x8a,0x8c,0x8d,0x8d,0x8c,
0x88,0x8d,0x91,0x9a,0xa3,0xad,0xad,0xa6,0xa3,0xa2,0xa4,0xa4,0x8b,0x66,0x50,0x3c,
0x33,0x33,0x3f,0x53,0x6d,0x8c,0x9a,0x9e,0xa4,0xa8,0x9f,0x91,0x87,0x7a,0x72,0x6d,
0x64,0x58,0x52,0x54,0x58,0x5c,0x66,0x74,0x82,0x8a,0x90,0x90,0x8c,0x89,0x87,0x84,
0x83,0x86,0x8a,0x88,0x87,0x89,0x8b,0x8b,0x8e,0x90,0x94,0x9b,0xa2,0xaa,0xa8,0xb0,
0xa8,0xac,0x8f,0x66,0x57,0x3d,0x39,0x45,0x5b,0x69,0x84,0x94,0x8e,0x86,0x81,0x82,
0x7d,0x84,0x8e,0x91,0x92,0x91,0x81,0x6b,0x5b,0x54,0x50,0x54,0x62,0x74,0x7d,0x83,
0x81,0x7c,0x75,0x77,0x7a,0x7d,0x87,0x91,0x93,0x8b,0x84,0x7c,0x77,0x78,0x7c,0x86,
0x8e,0x97,0x9b,0x96,0x99,0x97,0x9e,0xa3,0xb0,0xb6,0xb5,0xb0,0x7e,0x5f,0x55,0x40,
0x38,0x4b,0x5d,0x6a,0x80,0x89,0x80,0x81,0x8c,0x8a,0x87,0x94,0x9f,0x96,0x8d,0x81,
0x6a,0x5c,0x5b,0x5b,0x5d,0x67,0x73,0x75,0x72,0x73,0x77,0x7a,0x82,0x8a,0x8e,0x90,
0x8f,0x87,0x7c,0x76,0x77,0x7a,0x7c,0x7e,0x80,0x7d,0x79,0x74,0x76,0x7c,0x8a,0x97,
0xa2,0xab,0xb5,0xbb,0xbd,0xc1,0xc2,0xc1,0xa0,0x72,0x45,0x2d,0x26,0x2a,0x3d,0x50,
0x70,0x88,0x8f,0x80,0x7f,0x8e,0x9a,0xa7,0xa9,0xa8,0xa2,0x97,0x7f,0x5b,0x46,0x45,
0x4d,0x54,0x5f,0x6b,0x72,0x78,0x79,0x77,0x7b,0x89,0x95,0x97,0x96,0x90,0x88,0x7d,
0x75,0x71,0x74,0x7b,0x82,0x83,0x82,0x80,0x83,0x85,0x8e,0x9b,0xab,0xbb,0xc6,0xd0,
0xd0,0xcb,0x9c,0x78,0x5a,0x32,0x25,0x30,0x40,0x59,0x6c,0x6e,0x70,0x70,0x80,0x89,
0x96,0xb0,0xbf,0xbb,0xa5,0x8a,0x6f,0x5b,0x56,0x57,0x5f,0x68,0x71,0x69,0x58,0x56,
0x5b,0x6b,0x7d,0x93,0x9f,0xa2,0x9c,0x8d,0x7c,0x75,0x7a,0x80,0x84,0x85,0x82,0x77,
0x6c,0x65,0x67,0x72,0x87,0x99,0xa6,0xaf,0xb5,0xb7,0xbd,0xc6,0xd1,0xde,0xb9,0x84,
0x5c,0x35,0x18,0x17,0x2a,0x45,0x6c,0x76,0x74,0x6e,0x7b,0x8f,0x97,0xab,0xbc,0xc5,
0xb9,0x9b,0x76,0x5b,0x53,0x53,0x55,0x58,0x63,0x69,0x63,0x54,0x56,0x67,0x7e,0x93,
0x9f,0xa3,0xa0,0x9b,0x88,0x77,0x74,0x7d,0x7f,0x7e,0x7a,0x74,0x70,0x6e,0x6f,0x78,
0x88,0x9d,0xac,0xb2,0xb9,0xbc,0xc4,0xcf,0xe5,0xb4,0x7f,0x77,0x3b,0x19,0x27,0x37,
0x4c,0x61,0x78,0x63,0x62,0x7b,0x7a,0x85,0xad,0xc8,0xb7,0xb4,0xa5,0x89,0x6d,0x57,
0x54,0x57,0x69,0x65,0x59,0x4f,0x4d,0x5f,0x68,0x75,0x8e,0xa8,0xa8,0x9a,0x8d,0x7d,
0x7d,0x81,0x80,0x7c,0x85,0x88,0x7d,0x6a,0x6b,0x72,0x7b,0x89,0x9b,0xab,0xb1,0xb0,
0xa5,0xb1,0xb4,0xc8,0xc6,0xb2,0x83,0x4e,0x35,0x1b,0x31,0x4f,0x63,0x68,0x6f,0x69,
0x5d,0x71,0x85,0x96,0xb0,0xbe,0xb9,0xa6,0x97,0x7f,0x6a,0x5b,0x53,0x54,0x5f,0x67,
0x5e,0x5a,0x55,0x5a,0x6b,0x7f,0x92,0xa3,0xab,0x9e,0x8e,0x82,0x7b,0x7b,0x7f,0x84,
0x80,0x81,0x7b,0x72,0x6f,0x78,0x85,0x94,0xa3,0xad,0xb4,0xbc,0xc2,0xc6,0xd0,0xae,
0x96,0x74,0x49,0x3b,0x38,0x3d,0x44,0x56,0x4e,0x4a,0x52,0x60,0x77,0x92,0xaf,0xb6,
0xba,0xb2,0xa0,0x90,0x85,0x7f,0x76,0x6f,0x62,0x58,0x4d,0x48,0x49,0x53,0x65,0x78,
0x88,0x91,0x95,0x95,0x94,0x8f,0x90,0x90,0x8f,0x8a,0x83,0x78,0x70,0x6c,0x6c,0x70,
0x7b,0x87,0x91,0x9b,0xa1,0xa8,0xaf,0xbd,0xc7,0xda,0xc4,0xa9,0x8d,0x5d,0x4c,0x42,
0x43,0x49,0x57,0x58,0x4c,0x4f,0x54,0x64,0x7c,0x96,0xa7,0xaf,0xb2,0xa4,0x97,0x8b,
0x85,0x7f,0x7a,0x70,0x63,0x58,0x4d,0x4a,0x4e,0x5b,0x6b,0x79,0x82,0x87,0x8b,0x8e,
0x8f,0x91,0x93,0x94,0x90,0x8c,0x85,0x7f,0x7f,0x7e,0x80,0x84,0x8a,0x8f,0x97,0x9f,
0xaa,0xb4,0xc5,0xc7,0xac,0x9a,0x79,0x60,0x58,0x55,0x57,0x5c,0x61,0x54,0x4b,0x4e,
0x57,0x6b,0x83,0x95,0x9e,0xa2,0x9e,0x94,0x8c,0x8a,0x8b,0x8b,0x83,0x77,0x68,0x5a,
0x51,0x51,0x59,0x65,0x74,0x7a,0x79,0x79,0x7c,0x80,0x88,0x92,0x97,0x96,0x92,0x88,
0x7f,0x7d,0x80,0x84,0x89,0x8d,0x8e,0x8e,0x91,0x95,0xa3,0xb2,0xc3,0xca,0xb0,0x9d,
0x7e,0x63,0x5c,0x5b,0x60,0x62,0x67,0x55,0x47,0x47,0x4d,0x62,0x7c,0x91,0x99,0x9e,
0x98,0x8d,0x8a,0x8c,0x90,0x92,0x8e,0x7e,0x6f,0x60,0x56,0x54,0x5c,0x68,0x71,0x77,
0x73,0x72,0x73,0x78,0x80,0x8b,0x93,0x96,0x94,0x8d,0x86,0x85,0x87,0x8a,0x8e,0x90,
0x90,0x91,0x93,0x95,0xa2,0xa9,0xb9,0xb9,0xa1,0x95,0x78,0x68,0x65,0x66,0x67,0x6a,
0x6b,0x57,0x4c,0x4c,0x52,0x65,0x7c,0x8a,0x8e,0x93,0x8d,0x86,0x88,0x8c,0x90,0x94,
0x8e,0x80,0x73,0x67,0x5f,0x5f,0x65,0x6b,0x72,0x70,0x6c,0x6c,0x6e,0x74,0x7f,0x8a,
0x90,0x93,0x90,0x8a,0x88,0x8a,0x8e,0x93,0x96,0x97,0x95,0x95,0x94,0x9b,0xa3,0xaf,
0xb1,0xa3,0x97,0x80,0x70,0x6a,0x66,0x69,0x6c,0x6c,0x60,0x55,0x52,0x54,0x61,0x72,
0x7e,0x86,0x8b,0x88,0x83,0x85,0x89,0x8e,0x93,0x91,0x87,0x7d,0x72,0x69,0x67,0x6c,
0x70,0x74,0x73,0x6f,0x6c,0x6c,0x70,0x77,0x82,0x88,0x8c,0x8b,0x88,0x85,0x87,0x8b,
0x8f,0x93,0x96,0x96,0x93,0x93,0x96,0x9c,0xa4,0xaf,0xa9,0x9d,0x93,0x7e,0x74,0x70,
0x6e,0x6f,0x71,0x6c,0x5d,0x58,0x56,0x59,0x65,0x72,0x79,0x7e,0x82,0x7e,0x7e,0x83,
0x88,0x8e,0x91,0x8f,0x87,0x80,0x77,0x73,0x73,0x75,0x77,0x77,0x72,0x6e,0x6c,0x6c,
0x70,0x77,0x7e,0x82,0x86,0x86,0x84,0x86,0x89,0x8b,0x90,0x93,0x95,0x94,0x95,0x94,
0x97,0x99,0xa1,0xa1,0x98,0x95,0x86,0x7e,0x7a,0x78,0x74,0x75,0x73,0x67,0x62,0x5f,
0x5f,0x64,0x6c,0x71,0x73,0x79,0x77,0x79,0x7b,0x80,0x84,0x88,0x89,0x86,0x86,0x80,
0x7f,0x7d,0x7e,0x7e,0x7f,0x7c,0x78,0x76,0x74,0x75,0x77,0x7a,0x7c,0x7e,0x7f,0x7e,
0x7f,0x83,0x85,0x8a,0x8d,0x8f,0x8f,0x91,0x8f,0x92,0x95,0x9a,0x9c,0x97,0x94,0x8b,
0x85,0x82,0x7f,0x7d,0x7c,0x7a,0x72,0x6c,0x68,0x66,0x69,0x6d,0x71,0x72,0x75,0x74,
0x74,0x76,0x79,0x7e,0x82,0x85,0x84,0x84,0x81,0x81,0x80,0x81,0x83,0x83,0x82,0x7f,
0x7e,0x7b,0x7b,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7e,0x80,0x82,0x85,0x86,0x88,0x89,
0x8b,0x8b,0x8d,0x8e,0x90,0x91,0x90,0x8d,0x89,0x87,0x84,0x83,0x81,0x7f,0x7d,0x79,
0x75,0x72,0x71,0x71,0x72,0x73,0x73,0x74,0x73,0x74,0x75,0x77,0x7a,0x7d,0x7f,0x80,
0x80,0x80,0x81,0x81,0x83,0x83,0x83,0x82,0x7f,0x7d,0x7c,0x7c,0x7e,0x7e,0x80,0x7f,
0x7f,0x7d,0x7e,0x80,0x80,0x84,0x86,0x85,0x87,0x87,0x87,0x8a,0x8a,0x8d,0x8c,0x8b,
0x8a,0x85,0x85,0x83,0x83,0x83,0x82,0x80,0x7d,0x7a,0x77,0x76,0x76,0x76,0x76,0x76,
0x76,0x75,0x76,0x75,0x76,0x79,0x7b,0x7d,0x7f,0x80,0x80,0x81,0x81,0x81,0x82,0x82,
0x81,0x80,0x80,0x7f,0x7d,0x7f,0x7d,0x7e,0x7e,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x82,
0x82,0x83,0x83,0x85,0x86,0x87,0x89,0x87,0x88,0x87,0x85,0x84,0x84,0x83,0x83,0x83,
0x82,0x80,0x7f,0x7d,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,0x78,0x79,0x7b,
0x7c,0x7e,0x7e,0x7f,0x7e,0x7f,0x7e,0x80,0x7f,0x82,0x81,0x80,0x80,0x7e,0x7d,0x7d,
0x7e,0x7e,0x80,0x7e,0x7f,0x7d,0x80,0x80,0x81,0x84,0x83,0x83,0x85,0x84,0x85,0x88,
0x87,0x88,0x86,0x85,0x83,0x81,0x82,0x81,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,
0x7c,0x7c,0x7b,0x79,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7b,0x7c,0x7c,0x7e,
0x82,0x82,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x80,0x7f,0x7f,0x7f,0x7d,0x7e,0x7f,0x80,
0x82,0x84,0x83,0x84,0x84,0x83,0x85,0x85,0x88,0x88,0x87,0x87,0x84,0x83,0x81,0x81,
0x80,0x80,0x80,0x7f,0x7e,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,
0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x7b,0x7c,0x7e,0x80,0x81,0x81,0x81,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x7f,0x81,0x7f,0x7e,0x80,0x7e,0x81,0x81,0x82,0x83,0x83,0x84,0x82,
0x85,0x84,0x84,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x81,0x80,0x7f,0x7f,0x7d,0x7d,
0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7b,0x7c,
0x7c,0x7c,0x7e,0x7c,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x80,0x7e,0x82,0x80,
0x81,0x80,0x80,0x81,0x80,0x83,0x81,0x84,0x83,0x83,0x82,0x84,0x82,0x83,0x83,0x82,
0x83,0x81,0x82,0x80,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7e,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7c,0x7e,0x7d,0x7f,0x80,
0x80,0x80,0x7f,0x81,0x7f,0x80,0x80,0x81,0x7e,0x81,0x81,0x80,0x80,0x81,0x81,0x81,
0x83,0x83,0x81,0x83,0x84,0x81,0x83,0x82,0x82,0x81,0x82,0x80,0x80,0x80,0x7f,0x80,
0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7e,0x80,0x7c,0x7f,
0x7e,0x7e,0x7f,0x7e,0x7f,0x7d,0x80,0x7d,0x7f,0x7e,0x80,0x7e,0x81,0x7f,0x80,0x80,
0x7e,0x81,0x7d,0x82,0x7e,0x82,0x81,0x81,0x81,0x80,0x81,0x7f,0x82,0x81,0x81,0x81,
0x81,0x81,0x80,0x80,0x81,0x80,0x7f,0x80,0x81,0x7f,0x7f,0x7f,0x7e,0x7d,0x7f,0x7d,
0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x81,0x7d,0x81,0x7e,0x7e,0x81,0x7e,
0x80,0x7f,0x7e,0x7f,0x7d,0x80,0x80,0x7e,0x81,0x81,0x7e,0x80,0x81,0x7f,0x80,0x81,
0x80,0x81,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x81,0x80,0x81,0x80,0x81,0x7f,
0x80,0x80,0x7f,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x80,0x7c,0x81,
0x7e,0x7f,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7e,0x81,0x7d,0x7f,0x7e,
0x80,0x7f,0x80,0x83,0x7e,0x81,0x82,0x7d,0x80,0x82,0x7f,0x81,0x83,0x80,0x7f,0x82,
0x7e,0x7f,0x80,0x80,0x7f,0x7f,0x81,0x80,0x7f,0x81,0x80,0x80,0x7f,0x81,0x7e,0x7f,
0x7f,0x7e,0x7f,0x7e,0x80,0x7f,0x80,0x7d,0x80,0x7e,0x7f,0x81,0x80,0x7f,0x82,0x7f,
0x80,0x81,0x7e,0x81,0x7f,0x81,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x82,0x7e,0x81,
0x7e,0x82,0x7e,0x81,0x82,0x7f,0x80,0x81,0x81,0x7c,0x84,0x7d,0x7f,0x80,0x7d,0x81,
0x7f,0x7f,0x81,0x7e,0x80,0x81,0x80,0x80,0x7f,0x81,0x7f,0x7e,0x82,0x7e,0x7e,0x81,
0x7c,0x80,0x7e,0x7e,0x82,0x7e,0x82,0x7f,0x7f,0x82,0x7c,0x83,0x7f,0x7f,0x84,0x7b,
0x83,0x7f,0x7d,0x84,0x79,0x82,0x7d,0x7e,0x84,0x7d,0x81,0x82,0x7f,0x7d,0x84,0x7d,
0x81,0x80,0x81,0x7e,0x7f,0x7f,0x7d,0x80,0x7d,0x80,0x7e,0x7f,0x7e,0x81,0x7f,0x80,
0x7e,0x82,0x7d,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x7d,0x81,0x7c,0x81,0x7e,0x7f,0x80,
0x7e,0x81,0x7f,0x80,0x80,0x81,0x81,0x80,0x7f,0x83,0x7c,0x81,0x7f,0x7f,0x80,0x7c,
0x85,0x79,0x83,0x7f,0x7f,0x83,0x7b,0x83,0x7f,0x81,0x7f,0x81,0x80,0x7e,0x81,0x7d,
0x7d,0x80,0x7b,0x82,0x7c,0x7f,0x82,0x7a,0x85,0x7d,0x7e,0x86,0x79,0x80,0x83,0x7b,
0x83,0x7f,0x82,0x7d,0x7c,0x84,0x7a,0x7f,0x82,0x7d,0x82,0x7c,0x84,0x7c,0x7f,0x86,
0x7c,0x82,0x81,0x81,0x7d,0x83,0x7e,0x7f,0x80,0x7e,0x82,0x7d,0x82,0x7d,0x7f,0x80,
0x7d,0x83,0x7e,0x80,0x82,0x7d,0x7e,0x82,0x7c,0x81,0x7d,0x80,0x80,0x78,0x83,0x7d,
0x7c,0x7f,0x83,0x7b,0x82,0x82,0x7d,0x82,0x7d,0x83,0x7e,0x81,0x81,0x80,0x7d,0x80,
0x7f,0x7e,0x7f,0x82,0x7e,0x7f,0x83,0x7a,0x85,0x7b,0x85,0x81,0x80,0x82,0x7f,0x81,
0x7c,0x83,0x7e,0x80,0x7e,0x82,0x7c,0x7f,0x81,0x7f,0x80,0x81,0x7f,0x80,0x7f,0x80,
0x7e,0x80,0x80,0x7f,0x83,0x7a,0x82,0x7e,0x7a,0x81,0x7c,0x80,0x80,0x7e,0x83,0x7d,
0x80,0x81,0x7d,0x83,0x80,0x80,0x82,0x7d,0x83,0x7c,0x83,0x7e,0x7f,0x82,0x78,0x86,
0x79,0x84,0x80,0x7f,0x83,0x7f,0x81,0x7e,0x80,0x82,0x7c,0x82,0x82,0x7d,0x7f,0x7e,
0x83,0x79,0x84,0x80,0x7d,0x7f,0x83,0x7d,0x7f,0x83,0x7e,0x81,0x7d,0x83,0x7c,0x80,
0x81,0x7b,0x83,0x7b,0x7f,0x80,0x7c,0x83,0x7d,0x85,0x7b,0x84,0x7f,0x7d,0x84,0x7e,
0x83,0x80,0x82,0x7c,0x80,0x80,0x7e,0x82,0x83,0x7a,0x85,0x7d,0x7b,0x88,0x7a,0x84,
0x81,0x7b,0x86,0x7b,0x80,0x82,0x7d,0x83,0x7d,0x7f,0x82,0x7c,0x82,0x7e,0x80,0x7e,
0x7f,0x82,0x7c,0x83,0x7f,0x7e,0x80,0x81,0x7a,0x85,0x7a,0x7f,0x82,0x78,0x83,0x7c,
0x81,0x83,0x7c,0x80,0x84,0x7a,0x82,0x85,0x7d,0x82,0x84,0x7e,0x7f,0x81,0x83,0x7b,
0x83,0x80,0x7e,0x7d,0x80,0x82,0x7d,0x82,0x7d,0x7e,0x81,0x7e,0x82,0x82,0x7d,0x81,
0x7e,0x81,0x7a,0x83,0x7e,0x80,0x80,0x7d,0x83,0x7a,0x80,0x85,0x77,0x83,0x81,0x79,
0x82,0x7e,0x7f,0x7f,0x82,0x7b,0x83,0x7a,0x85,0x7a,0x82,0x81,0x79,0x88,0x78,0x84,
0x81,0x7d,0x81,0x7f,0x7e,0x83,0x7d,0x83,0x80,0x7d,0x83,0x7c,0x7f,0x83,0x79,0x83,
0x7d,0x7f,0x82,0x7a,0x85,0x7a,0x81,0x81,0x7b,0x87,0x7c,0x7e,0x85,0x79,0x84,0x7b,
0x81,0x7e,0x7c,0x85,0x7b,0x81,0x80,0x7e,0x7e,0x82,0x7f,0x7e,0x80,0x81,0x7e,0x7f,
0x83,0x7d,0x7e,0x80,0x7d,0x7e,0x80,0x7e,0x82,0x7e,0x7f,0x82,0x7e,0x80,0x81,0x80,
0x80,0x82,0x7d,0x82,0x7f,0x81,0x7f,0x81,0x7e,0x7e,0x82,0x7d,0x80,0x80,0x7c,0x81,
0x7f,0x7e,0x83,0x7c,0x83,0x7e,0x7e,0x81,0x7e,0x7d,0x81,0x7c,0x81,0x7f,0x7d,0x83,
0x7b,0x7e,0x83,0x7b,0x7f,0x83,0x7c,0x86,0x7d,0x7f,0x83,0x7c,0x83,0x7f,0x80,0x82,
0x7d,0x81,0x7f,0x7d,0x82,0x7f,0x7d,0x82,0x7c,0x81,0x81,0x80,0x81,0x7f,0x82,0x80,
0x7f,0x80,0x81,0x7c,0x83,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x82,0x7d,0x83,0x80,0x7e,
0x82,0x81,0x7b,0x84,0x7e,0x7d,0x82,0x7d,0x7e,0x82,0x7d,0x7e,0x81,0x7d,0x80,0x7f,
0x80,0x7f,0x82,0x7f,0x81,0x7f,0x80,0x82,0x7c,0x81,0x80,0x7e,0x81,0x81,0x7e,0x81,
0x81,0x7d,0x82,0x80,0x7e,0x81,0x80,0x81,0x7f,0x80,0x80,0x81,0x7d,0x80,0x7f,0x7e,
0x81,0x7d,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x80,0x80,0x80,0x80,0x82,0x7d,0x82,
0x7f,0x7f,0x81,0x7f,0x81,0x7d,0x81,0x7f,0x7e,0x81,0x80,0x7f,0x82,0x7f,0x80,0x80,
0x81,0x81,0x80,0x81,0x7f,0x7f,0x80,0x7e,0x7f,0x80,0x7d,0x80,0x7c,0x80,0x7f,0x80,
0x81,0x7f,0x80,0x7f,0x7e,0x80,0x81,0x7e,0x81,0x7f,0x7d,0x7f,0x7e,0x80,0x7f,0x7f,
0x80,0x7d,0x82,0x7f,0x80,0x83,0x80,0x80,0x81,0x81,0x80,0x80,0x81,0x81,0x80,0x80,
0x81,0x81,0x7f,0x82,0x80,0x7f,0x81,0x7f,0x7f,0x7f,0x80,0x7f,0x7e,0x80,0x7d,0x7f,
0x7c,0x7f,0x7e,0x7d,0x80,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7f,0x80,0x7c,0x81,0x7f,
0x7d,0x7e,0x7f,0x7d,0x80,0x80,0x7f,0x81,0x80,0x82,0x81,0x82,0x83,0x82,0x81,0x84,
0x81,0x81,0x83,0x82,0x80,0x81,0x81,0x80,0x81,0x81,0x81,0x7e,0x7f,0x7f,0x7e,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7d,0x7c,0x7c,0x7c,0x7a,0x7c,0x7a,0x7b,0x7c,
0x7b,0x7d,0x7c,0x7e,0x7e,0x7d,0x7f,0x7e,0x7f,0x80,0x80,0x81,0x80,0x81,0x82,0x80,
0x82,0x83,0x83,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x85,0x86,0x84,0x84,0x83,
0x83,0x83,0x82,0x81,0x80,0x7f,0x7d,0x7d,0x7d,0x7b,0x7b,0x79,0x77,0x77,0x76,0x75,
0x75,0x76,0x74,0x75,0x76,0x76,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x80,0x81,0x83,0x83,
0x84,0x85,0x86,0x86,0x87,0x86,0x88,0x86,0x88,0x87,0x85,0x87,0x86,0x86,0x88,0x88,
0x88,0x89,0x88,0x89,0x87,0x87,0x85,0x82,0x82,0x7e,0x7c,0x7b,0x78,0x76,0x74,0x72,
0x71,0x70,0x70,0x70,0x70,0x71,0x72,0x73,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x7f,0x80,
0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x89,0x89,0x89,0x87,0x89,0x88,0x89,
0x8a,0x89,0x8b,0x89,0x8b,0x8d,0x8c,0x8e,0x8a,0x86,0x84,0x7f,0x7e,0x7d,0x7c,0x7a,
0x79,0x73,0x70,0x6d,0x6c,0x6c,0x6f,0x6f,0x70,0x71,0x70,0x6f,0x71,0x74,0x78,0x7c,
0x7f,0x81,0x82,0x82,0x82,0x83,0x85,0x87,0x89,0x89,0x88,0x86,0x84,0x83,0x84,0x85,
0x86,0x88,0x87,0x87,0x88,0x86,0x89,0x8a,0x8d,0x90,0x92,0x94,0x8e,0x8b,0x86,0x82,
0x82,0x81,0x80,0x7e,0x7d,0x76,0x70,0x6e,0x6b,0x6c,0x6f,0x70,0x70,0x71,0x70,0x6e,
0x6f,0x72,0x75,0x79,0x7d,0x7f,0x7f,0x80,0x81,0x80,0x83,0x86,0x88,0x88,0x88,0x86,
0x83,0x83,0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x84,0x84,0x88,0x8a,0x8c,0x90,0x91,
0x93,0x95,0x92,0x8d,0x8d,0x86,0x84,0x84,0x7f,0x7e,0x7c,0x77,0x6f,0x6e,0x6b,0x6a,
0x6c,0x6e,0x6d,0x6f,0x70,0x6f,0x70,0x74,0x76,0x79,0x7d,0x7d,0x7e,0x7f,0x80,0x80,
0x83,0x84,0x84,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x83,
0x84,0x87,0x89,0x8b,0x8d,0x90,0x91,0x94,0x99,0x95,0x92,0x91,0x89,0x85,0x84,0x7f,
0x7c,0x7d,0x77,0x70,0x6e,0x69,0x66,0x68,0x6a,0x69,0x6d,0x70,0x6f,0x70,0x73,0x73,
0x77,0x7c,0x7e,0x81,0x83,0x84,0x82,0x83,0x84,0x84,0x86,0x86,0x86,0x84,0x83,0x80,
0x7f,0x7e,0x7f,0x80,0x80,0x81,0x81,0x83,0x84,0x86,0x89,0x8c,0x8e,0x94,0x95,0x99,
0x9b,0x94,0x93,0x8c,0x88,0x85,0x83,0x7e,0x7e,0x7b,0x72,0x6d,0x69,0x66,0x66,0x68,
0x68,0x6a,0x6d,0x6d,0x6d,0x70,0x73,0x76,0x7b,0x7f,0x80,0x83,0x84,0x84,0x84,0x85,
0x85,0x86,0x87,0x85,0x84,0x82,0x80,0x7e,0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x81,0x82,
0x84,0x88,0x8a,0x8e,0x91,0x94,0x96,0x9d,0x9a,0x96,0x94,0x8d,0x88,0x87,0x83,0x7e,
0x7f,0x79,0x70,0x6c,0x68,0x63,0x65,0x68,0x66,0x69,0x6d,0x6b,0x6c,0x71,0x73,0x77,
0x7d,0x7f,0x81,0x84,0x86,0x84,0x86,0x87,0x87,0x88,0x87,0x85,0x84,0x82,0x80,0x7e,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x80,0x81,0x85,0x86,0x8a,0x8f,0x91,0x95,0x98,0x9e,
0x9c,0x98,0x96,0x8e,0x8a,0x88,0x84,0x7e,0x7f,0x79,0x70,0x6d,0x67,0x63,0x64,0x67,
0x64,0x68,0x6c,0x6b,0x6d,0x71,0x73,0x78,0x7d,0x80,0x82,0x85,0x86,0x86,0x87,0x87,
0x88,0x88,0x86,0x85,0x83,0x81,0x7f,0x7e,0x7c,0x7c,0x7c,0x7b,0x7c,0x7d,0x7f,0x81,
0x84,0x87,0x8a,0x8f,0x91,0x95,0x97,0x9e,0xa0,0x99,0x9a,0x91,0x8b,0x89,0x86,0x7e,
0x80,0x7d,0x71,0x6e,0x69,0x63,0x62,0x67,0x64,0x66,0x6c,0x6b,0x6b,0x6f,0x72,0x75,
0x7c,0x80,0x82,0x85,0x87,0x86,0x86,0x88,0x88,0x89,0x88,0x87,0x84,0x81,0x7f,0x7c,
0x7a,0x7a,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x81,0x83,0x88,0x8c,0x91,0x93,0x96,0x99,
0x9f,0xa2,0x9a,0x9c,0x93,0x8d,0x8a,0x85,0x7f,0x7f,0x7d,0x70,0x6c,0x67,0x61,0x60,
0x64,0x62,0x64,0x6b,0x6a,0x6a,0x6e,0x72,0x75,0x7c,0x81,0x82,0x87,0x87,0x87,0x86,
0x88,0x88,0x89,0x89,0x87,0x85,0x81,0x7f,0x7b,0x7a,0x79,0x7a,0x79,0x78,0x79,0x7a,
0x7b,0x7e,0x81,0x85,0x8b,0x8f,0x91,0x95,0x9a,0x9d,0xa3,0x9e,0x9c,0x98,0x8f,0x8c,
0x87,0x82,0x7e,0x7e,0x73,0x6c,0x67,0x61,0x5f,0x61,0x63,0x62,0x68,0x6a,0x68,0x6c,
0x70,0x74,0x79,0x81,0x83,0x85,0x89,0x88,0x87,0x88,0x8a,0x8a,0x8a,0x89,0x86,0x83,
0x80,0x7d,0x7a,0x7a,0x7a,0x7a,0x78,0x79,0x78,0x7a,0x7b,0x7f,0x83,0x87,0x8c,0x90,
0x91,0x95,0x9a,0x9e,0xa3,0x9e,0x9d,0x97,0x8f,0x8c,0x85,0x80,0x7f,0x7c,0x72,0x6c,
0x66,0x60,0x60,0x61,0x60,0x63,0x68,0x69,0x69,0x6d,0x70,0x75,0x7b,0x81,0x83,0x87,
0x8a,0x89,0x88,0x8a,0x8a,0x8a,0x8a,0x89,0x86,0x82,0x7f,0x7b,0x79,0x78,0x79,0x78,
0x78,0x78,0x79,0x7a,0x7c,0x80,0x84,0x89,0x8f,0x91,0x93,0x9a,0x9b,0xa2,0xa5,0x9d,
0x9e,0x96,0x8e,0x89,0x85,0x7e,0x7d,0x7a,0x6d,0x69,0x63,0x5e,0x5d,0x60,0x60,0x63,
0x69,0x69,0x6a,0x6e,0x73,0x77,0x7e,0x84,0x87,0x8b,0x8c,0x8b,0x8a,0x8b,0x8b,0x8b,
0x8a,0x88,0x85,0x81,0x7d,0x79,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x79,0x7b,0x7f,
0x84,0x89,0x8e,0x91,0x95,0x98,0x9c,0xa0,0xa6,0x9f,0x9f,0x99,0x8e,0x8b,0x85,0x7f,
0x7c,0x7b,0x6f,0x69,0x64,0x5d,0x5c,0x5e,0x60,0x62,0x69,0x6a,0x6b,0x6f,0x73,0x77,
0x7d,0x85,0x87,0x8b,0x8d,0x8b,0x8a,0x8b,0x8b,0x8a,0x8b,0x89,0x85,0x81,0x7d,0x79,
0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x7b,0x7e,0x84,0x89,0x8e,0x92,0x95,0x98,
0x9c,0xa1,0xa6,0xa0,0x9f,0x99,0x8e,0x8b,0x85,0x7d,0x7c,0x7b,0x6f,0x69,0x64,0x5c,
0x5c,0x60,0x60,0x62,0x6a,0x6b,0x6b,0x70,0x73,0x77,0x7f,0x86,0x88,0x8b,0x8e,0x8c,
0x89,0x8b,0x8b,0x8a,0x8b,0x89,0x84,0x81,0x7d,0x78,0x75,0x76,0x75,0x75,0x75,0x75,
0x75,0x76,0x78,0x7b,0x81,0x87,0x8c,0x90,0x93,0x95,0x98,0x9b,0xa1,0xa6,0xa0,0x9f,
0x98,0x8d,0x87,0x83,0x7c,0x79,0x7b,0x6f,0x68,0x65,0x5e,0x5b,0x60,0x61,0x63,0x6b,
0x6e,0x6d,0x71,0x76,0x79,0x7e,0x86,0x88,0x8b,0x8d,0x8c,0x89,0x8a,0x8a,0x88,0x88,
0x87,0x83,0x7f,0x7c,0x77,0x74,0x74,0x75,0x74,0x75,0x76,0x76,0x77,0x7a,0x7e,0x83,
0x89,0x8d,0x90,0x94,0x97,0x9a,0x9d,0xa4,0xa3,0x9c,0x9b,0x92,0x89,0x86,0x81,0x7a,
0x7b,0x77,0x6a,0x66,0x63,0x5d,0x5e,0x63,0x63,0x67,0x6e,0x6e,0x6e,0x73,0x79,0x7c,
0x83,0x89,0x8a,0x8c,0x8e,0x8a,0x87,0x89,0x8a,0x87,0x87,0x85,0x80,0x7c,0x79,0x74,
0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x77,0x7b,0x7e,0x84,0x8a,0x8e,0x90,0x93,0x95,
0x98,0x9b,0xa2,0xa3,0x9e,0x9b,0x93,0x8a,0x84,0x82,0x7d,0x7b,0x7a,0x70,0x68,0x64,
0x60,0x5f,0x63,0x67,0x69,0x6e,0x70,0x70,0x71,0x77,0x7c,0x81,0x88,0x8b,0x8c,0x8b,
0x8a,0x87,0x86,0x88,0x88,0x87,0x86,0x82,0x7d,0x79,0x76,0x74,0x75,0x76,0x76,0x76,
0x75,0x75,0x75,0x78,0x7c,0x82,0x87,0x8b,0x8e,0x90,0x91,0x94,0x98,0x9b,0xa2,0xa1,
0x9b,0x97,0x90,0x88,0x83,0x83,0x7e,0x7d,0x7a,0x70,0x69,0x66,0x64,0x63,0x68,0x6a,
0x6d,0x70,0x70,0x70,0x72,0x78,0x7d,0x82,0x87,0x89,0x89,0x88,0x87,0x85,0x86,0x88,
0x88,0x87,0x85,0x81,0x7d,0x7a,0x77,0x77,0x77,0x78,0x77,0x76,0x75,0x75,0x76,0x78,
0x7b,0x80,0x84,0x87,0x89,0x8b,0x8d,0x90,0x93,0x97,0x9b,0x9d,0x99,0x94,0x8f,0x8a,
0x86,0x84,0x83,0x81,0x7e,0x78,0x71,0x6d,0x6b,0x6a,0x6c,0x6e,0x70,0x72,0x73,0x72,
0x72,0x75,0x79,0x7d,0x80,0x83,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x87,0x86,0x85,
0x83,0x80,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x79,0x7a,0x7c,0x7f,0x82,
0x84,0x86,0x87,0x88,0x8a,0x8c,0x8f,0x92,0x91,0x8f,0x8c,0x89,0x87,0x85,0x83,0x83,
0x83,0x80,0x7c,0x78,0x77,0x76,0x75,0x75,0x76,0x77,0x78,0x78,0x77,0x78,0x79,0x7a,
0x7c,0x7e,0x7f,0x80,0x81,0x80,0x80,0x80,0x81,0x82,0x82,0x81,0x81,0x80,0x7f,0x7e,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7e,0x7f,0x80,0x80,
0x81,0x82,0x83,0x85,0x87,0x88,0x89,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x85,
0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,
0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x83,
0x84,0x86,0x88,0x88,0x88,0x87,0x88,0x88,0x88,0x88,0x88,0x87,0x85,0x84,0x82,0x81,
0x80,0x7f,0x7f,0x7e,0x7e,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x85,0x87,
0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x88,0x87,0x86,0x84,0x83,0x82,0x81,0x80,
0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,
0x7d,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x85,0x87,0x88,0x89,0x89,
0x89,0x89,0x89,0x89,0x89,0x88,0x87,0x85,0x84,0x83,0x82,0x80,0x7f,0x7e,0x7e,0x7d,
0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x84,0x86,0x88,0x89,0x89,0x89,0x89,
0x89,0x89,0x89,0x88,0x88,0x86,0x85,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7f,0x7e,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x84,0x86,0x88,0x89,0x88,0x88,0x88,0x88,
0x88,0x88,0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,
0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,
0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x84,0x86,0x88,0x88,0x88,0x88,0x88,0x88,0x89,
0x88,0x88,0x87,0x85,0x84,0x83,0x82,0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,
0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
0x89,0x88,0x86,0x85,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,
0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,
0x7d,0x7e,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x8a,0x89,
0x89,0x87,0x86,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,
0x7d,0x7e,0x7f,0x81,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
0x89,0x87,0x86,0x85,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,
0x7c,0x7d,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,
0x89,0x87,0x86,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,
0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7e,0x7e,0x7e,
0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7b,
0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
0x89,0x89,0x87,0x86,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,
0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7a,
0x7b,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
0x8a,0x8a,0x89,0x87,0x86,0x84,0x83,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,
0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,
0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,
0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x84,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,
0x8a,0x8a,0x89,0x88,0x87,0x85,0x84,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x7a,
0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x8a,
0x8a,0x8a,0x8a,0x8a,0x89,0x88,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,
0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x81,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8b,
0x8b,0x8b,0x8a,0x8a,0x8a,0x89,0x88,0x87,0x85,0x84,0x82,0x81,0x7f,0x7e,0x7e,0x7d,
0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x83,0x85,0x87,0x89,0x8a,
0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x86,0x85,0x84,0x82,0x81,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x78,
0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x84,0x86,
0x88,0x89,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x87,0x86,0x85,0x84,0x82,
0x81,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,
0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7d,0x7e,0x7f,0x81,
0x82,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8b,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x87,
0x85,0x84,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,
0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7d,
0x7e,0x7f,0x81,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,
0x89,0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x79,
0x7a,0x7b,0x7c,0x7e,0x7f,0x80,0x82,0x84,0x85,0x87,0x89,0x8b,0x8c,0x8c,0x8c,0x8c,
0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,0x84,0x83,0x82,0x80,0x7f,0x7e,0x7e,0x7d,0x7c,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,0x81,0x82,0x84,0x86,0x87,0x89,0x8b,
0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x86,0x85,0x84,0x83,0x81,0x80,0x7f,
0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x77,
0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x83,0x84,
0x86,0x88,0x89,0x8b,0x8c,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,0x84,
0x84,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7d,0x7d,
0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,
0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,
0x80,0x81,0x83,0x85,0x86,0x88,0x8a,0x8c,0x8c,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,
0x88,0x86,0x85,0x84,0x83,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x79,0x79,
0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8d,0x8d,0x8d,0x8d,
0x8c,0x8c,0x8b,0x8a,0x89,0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7c,
0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x76,
0x77,0x77,0x78,0x79,0x79,0x7b,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x85,0x87,0x89,0x8b,
0x8c,0x8d,0x8e,0x8d,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x86,0x85,0x84,0x83,0x81,0x80,
0x7f,0x7e,0x7d,0x7d,0x7c,0x7a,0x78,0x78,0x7a,0x7d,0x80,0x81,0x7f,0x7d,0x7a,0x7a,
0x7b,0x7f,0x83,0x85,0x84,0x80,0x7c,0x79,0x79,0x7a,0x7c,0x7d,0x7d,0x7a,0x76,0x72,
0x71,0x72,0x75,0x78,0x79,0x78,0x77,0x76,0x76,0x78,0x7d,0x81,0x84,0x84,0x83,0x83,
0x86,0x8a,0x8f,0x92,0x90,0x8b,0x8b,0x8f,0x92,0x90,0x8b,0x85,0x84,0x85,0x86,0x83,
0x7f,0x7a,0x7b,0x7d,0x7c,0x78,0x77,0x78,0x7b,0x7c,0x7a,0x79,0x7b,0x7e,0x80,0x80,
0x7e,0x7f,0x82,0x84,0x82,0x80,0x81,0x83,0x82,0x80,0x7e,0x7d,0x7f,0x7e,0x7b,0x78,
0x78,0x78,0x78,0x75,0x72,0x74,0x77,0x76,0x74,0x74,0x76,0x79,0x7a,0x79,0x7a,0x7d,
0x80,0x81,0x81,0x83,0x86,0x89,0x89,0x8a,0x8c,0x92,0x91,0x8a,0x8c,0x93,0x94,0x8a,
0x86,0x88,0x8b,0x88,0x81,0x7d,0x7f,0x80,0x7e,0x7c,0x76,0x77,0x7b,0x7c,0x77,0x77,
0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x80,0x82,0x83,0x81,0x81,0x82,0x82,0x82,0x81,
0x7e,0x7e,0x7f,0x7e,0x7a,0x78,0x79,0x79,0x77,0x75,0x74,0x75,0x75,0x74,0x75,0x75,
0x76,0x78,0x79,0x7a,0x7b,0x7d,0x7f,0x81,0x82,0x85,0x86,0x87,0x88,0x8c,0x8d,0x8f,
0x91,0x8c,0x8f,0x94,0x93,0x89,0x8a,0x8c,0x8b,0x86,0x82,0x81,0x81,0x80,0x7c,0x7e,
0x7a,0x78,0x7a,0x7b,0x78,0x79,0x7b,0x79,0x7d,0x7f,0x7e,0x7d,0x81,0x82,0x82,0x82,
0x82,0x82,0x83,0x82,0x81,0x82,0x7f,0x7f,0x7e,0x7d,0x7b,0x79,0x79,0x78,0x77,0x76,
0x74,0x73,0x74,0x75,0x74,0x74,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7e,0x7f,0x81,0x83,
0x84,0x84,0x88,0x89,0x8c,0x8c,0x91,0x8f,0x8a,0x92,0x94,0x8e,0x88,0x8e,0x8a,0x88,
0x86,0x83,0x82,0x80,0x7f,0x7d,0x7e,0x78,0x7a,0x7a,0x7a,0x79,0x7a,0x79,0x7a,0x7e,
0x7d,0x7c,0x7f,0x81,0x80,0x81,0x82,0x82,0x81,0x82,0x82,0x81,0x80,0x7f,0x7e,0x7e,
0x7c,0x7a,0x79,0x78,0x77,0x75,0x75,0x73,0x73,0x74,0x73,0x73,0x74,0x75,0x76,0x77,
0x78,0x79,0x7b,0x7d,0x7e,0x81,0x82,0x84,0x85,0x88,0x88,0x8c,0x8c,0x91,0x8e,0x8a,
0x93,0x93,0x8e,0x89,0x8f,0x89,0x89,0x86,0x83,0x82,0x81,0x7f,0x7d,0x7f,0x78,0x7a,
0x7a,0x7a,0x79,0x7b,0x79,0x7b,0x7e,0x7d,0x7d,0x80,0x81,0x80,0x82,0x82,0x82,0x82,
0x83,0x82,0x81,0x81,0x7f,0x7e,0x7d,0x7c,0x79,0x79,0x78,0x76,0x75,0x74,0x74,0x73,
0x74,0x73,0x73,0x74,0x75,0x75,0x77,0x78,0x79,0x7a,0x7d,0x7e,0x80,0x82,0x82,0x85,
0x86,0x89,0x88,0x8c,0x8c,0x91,0x8d,0x8c,0x93,0x92,0x8c,0x8a,0x8f,0x88,0x88,0x86,
0x84,0x82,0x81,0x7e,0x7e,0x7e,0x79,0x7a,0x7b,0x7b,0x79,0x7b,0x7b,0x7d,0x7e,0x7e,
0x7e,0x81,0x81,0x80,0x83,0x83,0x81,0x82,0x83,0x82,0x80,0x80,0x7e,0x7e,0x7d,0x7b,
0x79,0x79,0x77,0x75,0x75,0x74,0x73,0x72,0x73,0x73,0x73,0x73,0x74,0x76,0x77,0x77,
0x7a,0x7b,0x7d,0x7e,0x81,0x82,0x84,0x85,0x87,0x89,0x89,0x8d,0x8d,0x92,0x8a,0x8f,
0x93,0x90,0x8b,0x8d,0x8d,0x87,0x89,0x84,0x84,0x81,0x81,0x7d,0x80,0x7c,0x7a,0x7c,
0x7c,0x7b,0x7a,0x7c,0x7c,0x7f,0x7e,0x7f,0x7f,0x82,0x81,0x82,0x83,0x82,0x82,0x82,
0x83,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x73,
0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x7a,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x86,
0x85,0x88,0x89,0x8d,0x8b,0x8f,0x8f,0x8a,0x90,0x91,0x8e,0x88,0x8f,0x89,0x88,0x87,
0x84,0x83,0x82,0x81,0x7f,0x80,0x7b,0x7d,0x7d,0x7d,0x7b,0x7d,0x7d,0x7d,0x7f,0x7f,
0x7f,0x80,0x81,0x81,0x82,0x82,0x81,0x81,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,
0x79,0x78,0x78,0x76,0x75,0x75,0x74,0x73,0x73,0x73,0x73,0x74,0x74,0x75,0x76,0x77,
0x78,0x7a,0x7c,0x7d,0x7e,0x80,0x82,0x84,0x85,0x86,0x87,0x8a,0x8c,0x8b,0x90,0x8a,
0x8e,0x92,0x8f,0x8a,0x8d,0x8c,0x87,0x89,0x85,0x84,0x81,0x82,0x7f,0x80,0x7d,0x7c,
0x7d,0x7d,0x7c,0x7b,0x7d,0x7c,0x7e,0x7f,0x7f,0x7e,0x80,0x80,0x81,0x81,0x81,0x80,
0x81,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x79,0x78,0x78,0x77,0x75,0x74,0x74,0x73,
0x73,0x73,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x81,0x82,
0x85,0x84,0x87,0x88,0x8a,0x8a,0x8d,0x8f,0x88,0x90,0x92,0x8d,0x89,0x8e,0x8a,0x88,
0x88,0x84,0x84,0x82,0x82,0x80,0x82,0x7c,0x7d,0x7f,0x7d,0x7b,0x7d,0x7e,0x7d,0x7f,
0x7f,0x7f,0x80,0x81,0x80,0x81,0x81,0x80,0x80,0x82,0x81,0x7f,0x7f,0x7e,0x7d,0x7c,
0x7b,0x79,0x79,0x77,0x76,0x76,0x75,0x73,0x73,0x74,0x73,0x73,0x74,0x75,0x75,0x77,
0x77,0x78,0x7a,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x85,0x85,0x87,0x89,0x8b,0x8a,0x8e,
0x8e,0x8a,0x92,0x90,0x8c,0x8b,0x8f,0x88,0x8a,0x88,0x85,0x84,0x83,0x82,0x81,0x81,
0x7b,0x7f,0x7e,0x7d,0x7b,0x7e,0x7d,0x7d,0x7f,0x7f,0x7f,0x80,0x81,0x80,0x82,0x81,
0x80,0x81,0x82,0x7f,0x7f,0x7f,0x7e,0x7c,0x7c,0x7a,0x79,0x79,0x77,0x76,0x75,0x74,
0x73,0x74,0x73,0x72,0x73,0x74,0x75,0x75,0x77,0x77,0x79,0x7a,0x7c,0x7d,0x7f,0x80,
0x82,0x83,0x84,0x85,0x88,0x88,0x8a,0x8b,0x8c,0x8f,0x8a,0x90,0x90,0x8d,0x8a,0x8e,
0x89,0x88,0x8a,0x86,0x85,0x83,0x83,0x81,0x82,0x7d,0x7e,0x7f,0x7e,0x7c,0x7e,0x7e,
0x7d,0x7f,0x7f,0x7f,0x7f,0x81,0x80,0x81,0x81,0x80,0x80,0x81,0x80,0x7f,0x7e,0x7e,
0x7c,0x7c,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x73,0x73,0x74,0x74,
0x75,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7e,0x80,0x81,0x83,0x84,0x85,0x86,0x89,0x88,
0x8b,0x8b,0x8e,0x8c,0x8c,0x91,0x8e,0x8c,0x8b,0x8e,0x88,0x8a,0x86,0x86,0x83,0x83,
0x82,0x81,0x80,0x7d,0x80,0x7e,0x7e,0x7c,0x7f,0x7d,0x7e,0x7f,0x7f,0x7f,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x7e,0x7e,0x7d,0x7d,0x7b,0x7a,0x79,0x78,0x77,0x76,
0x75,0x74,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,
0x7d,0x7f,0x80,0x82,0x83,0x84,0x86,0x87,0x89,0x89,0x8b,0x8b,0x8f,0x8a,0x8e,0x91,
0x8d,0x8b,0x8d,0x8b,0x88,0x8b,0x86,0x86,0x83,0x84,0x81,0x82,0x7e,0x7e,0x80,0x7e,
0x7d,0x7d,0x7f,0x7d,0x7f,0x7f,0x7f,0x7e,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,
0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x72,
0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x85,
0x86,0x88,0x88,0x8a,0x8b,0x8c,0x8e,0x8a,0x8f,0x90,0x8d,0x8b,0x8d,0x8a,0x89,0x89,
0x86,0x86,0x84,0x83,0x83,0x82,0x7e,0x7f,0x80,0x7e,0x7d,0x7f,0x7f,0x7e,0x7f,0x80,
0x7e,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7e,0x7e,0x7e,0x7d,0x7b,0x7b,0x7a,
0x78,0x78,0x77,0x76,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x74,0x74,0x75,0x76,0x77,
0x78,0x79,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x83,0x83,0x85,0x86,0x87,0x88,0x8a,0x8a,
0x8d,0x8e,0x8a,0x90,0x90,0x8d,0x8c,0x8e,0x8b,0x89,0x8a,0x87,0x86,0x84,0x84,0x82,
0x83,0x7e,0x7f,0x80,0x7f,0x7d,0x7e,0x7e,0x7d,0x7f,0x7f,0x7e,0x7e,0x80,0x7f,0x80,
0x7f,0x7f,0x7f,0x80,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x78,0x78,0x77,0x76,0x75,
0x75,0x74,0x74,0x73,0x73,0x73,0x74,0x75,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7e,
0x7f,0x80,0x81,0x83,0x84,0x85,0x87,0x88,0x89,0x8a,0x8b,0x8d,0x8c,0x8c,0x90,0x8e,
0x8c,0x8c,0x8d,0x89,0x8a,0x89,0x87,0x85,0x85,0x83,0x82,0x81,0x7f,0x80,0x7f,0x7f,
0x7d,0x7f,0x7e,0x7e,0x7f,0x7f,0x7e,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,
0x7d,0x7d,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x75,0x75,0x74,0x74,0x73,0x74,0x73,
0x73,0x74,0x75,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,
0x84,0x86,0x87,0x88,0x88,0x8a,0x8b,0x8e,0x89,0x8e,0x90,0x8d,0x8c,0x8d,0x8c,0x89,
0x8b,0x87,0x87,0x85,0x85,0x82,0x83,0x80,0x7f,0x81,0x7f,0x7d,0x7e,0x7f,0x7c,0x7f,
0x7f,0x7e,0x7d,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,
0x7a,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x74,0x75,0x75,
0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7d,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x88,0x88,
0x8a,0x8a,0x8d,0x8b,0x8b,0x8f,0x8e,0x8c,0x8b,0x8d,0x89,0x8a,0x89,0x87,0x85,0x85,
0x84,0x83,0x82,0x7f,0x80,0x80,0x7f,0x7e,0x7f,0x7e,0x7e,0x7f,0x7f,0x7e,0x7f,0x80,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7b,0x7b,0x7a,0x79,0x78,0x78,
0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x76,0x77,0x79,0x79,
0x7b,0x7c,0x7e,0x7f,0x80,0x81,0x83,0x84,0x86,0x86,0x88,0x89,0x89,0x8b,0x8c,0x8e,
0x8b,0x90,0x8f,0x8e,0x8c,0x8e,0x8c,0x8a,0x8b,0x88,0x87,0x86,0x85,0x83,0x84,0x80,
0x80,0x81,0x7f,0x7e,0x7f,0x7f,0x7d,0x7f,0x7f,0x7e,0x7e,0x80,0x7f,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x79,0x79,0x78,0x77,0x76,0x75,0x74,
0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x75,0x75,0x76,0x78,0x79,0x7a,0x7c,0x7d,0x7e,
0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x89,0x8b,0x8b,0x8c,0x8e,0x8b,0x8f,0x8f,
0x8e,0x8c,0x8d,0x8c,0x8a,0x8a,0x88,0x86,0x85,0x85,0x83,0x83,0x80,0x80,0x80,0x80,
0x7e,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7e,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x76,0x75,0x74,0x74,0x73,0x73,0x72,
0x72,0x72,0x73,0x73,0x74,0x74,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7e,0x80,0x81,0x82,
0x83,0x85,0x86,0x87,0x87,0x89,0x8a,0x8b,0x8b,0x8c,0x8b,0x8c,0x8f,0x8d,0x8c,0x8b,
0x8c,0x89,0x8a,0x88,0x87,0x85,0x85,0x84,0x83,0x81,0x80,0x81,0x80,0x7f,0x7e,0x80,
0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,
0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x72,0x73,
0x73,0x74,0x74,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x80,0x82,0x83,0x85,0x85,
0x86,0x87,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8b,0x8d,0x8e,0x8d,0x8c,0x8c,0x8b,0x8a,
0x8a,0x88,0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,
0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7b,0x7b,
0x7a,0x78,0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,
0x75,0x75,0x77,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,
0x88,0x89,0x8a,0x8a,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8b,0x8c,0x8a,0x8a,0x88,
0x88,0x87,0x86,0x85,0x84,0x84,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,
0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x72,0x72,0x71,0x72,0x72,0x73,0x73,0x74,0x75,
0x76,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,0x87,0x88,
0x89,0x89,0x8a,0x8b,0x8c,0x8b,0x8c,0x8d,0x8d,0x8c,0x8c,0x8c,0x8a,0x8a,0x89,0x89,
0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x80,0x80,
0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,
0x75,0x75,0x74,0x73,0x72,0x72,0x71,0x72,0x71,0x72,0x72,0x73,0x74,0x75,0x76,0x77,
0x78,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,
0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x87,0x88,
0x86,0x86,0x85,0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,
0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
0x74,0x73,0x72,0x72,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x79,
0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x86,0x87,0x88,0x88,0x89,
0x8a,0x8b,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x87,
0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,
0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x7a,
0x7b,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x89,0x8a,
0x8a,0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,
0x86,0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,
0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x74,0x74,
0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,
0x7c,0x7d,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,
0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,
0x86,0x85,0x84,0x84,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,
0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x73,
0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x74,0x75,0x76,0x77,0x79,0x7a,0x7c,
0x7d,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x89,0x8a,0x8b,
0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x88,0x87,
0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x80,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,
0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x73,0x73,
0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,
0x7d,0x7f,0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8e,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,
0x85,0x85,0x84,0x83,0x82,0x82,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,
0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x74,0x74,0x73,0x73,
0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x78,0x79,0x7a,0x7c,0x7d,
0x7e,0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,
0x85,0x84,0x83,0x83,0x82,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,
0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x73,0x73,0x73,
0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7e,
0x7f,0x80,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x88,0x87,0x86,
0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,
0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x74,0x73,0x73,0x72,
0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,
0x84,0x83,0x82,0x82,0x81,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x72,
0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8b,0x8c,
0x8c,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,
0x83,0x82,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x74,0x73,0x73,0x73,0x72,
0x72,0x72,0x73,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,0x7f,
0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,
0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x87,0x86,0x85,0x84,
0x83,0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,
0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x73,
0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7f,0x80,0x81,
0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,
0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,
0x82,0x81,0x81,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x75,0x74,0x74,0x74,0x73,0x73,0x73,
0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x81,0x82,
0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,
0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,
0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,
0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,
0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,
0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x84,0x83,0x82,0x81,0x81,
0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,
0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x74,
0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,0x80,0x82,0x83,0x84,0x85,
0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,
0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x80,0x80,
0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,
0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,
0x87,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,
0x89,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,
0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x76,0x77,
0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,0x87,0x88,
0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x89,0x88,
0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x78,0x79,
0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x8a,
0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x86,
0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,
0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7c,0x7d,
0x7e,0x7f,0x80,0x81,0x82,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8b,0x8c,
0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x84,0x83,
0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x75,
0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,
0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8b,0x8b,0x8b,
0x8b,0x8b,0x8a,0x89,0x89,0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x81,
0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,0x84,
0x85,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x8a,0x89,
0x89,0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,
0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
0x79,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x78,
0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
0x88,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x86,
0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,
0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7c,
0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x89,
0x89,0x89,0x89,0x89,0x89,0x89,0x88,0x88,0x88,0x87,0x86,0x86,0x85,0x84,0x84,0x83,
0x82,0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,
0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x81,
0x82,0x83,0x83,0x84,0x85,0x86,0x86,0x87,0x87,0x88,0x88,0x89,0x89,0x89,0x89,0x89,
0x88,0x88,0x88,0x87,0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x80,
0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,
0x7a,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,
0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,0x83,0x84,0x84,
0x85,0x86,0x86,0x87,0x87,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x86,
0x86,0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,
0x7d,0x7e,0x7f,0x7f,0x80,0x81,0x82,0x82,0x83,0x84,0x84,0x85,0x86,0x86,0x86,0x87,
0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x82,
0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x81,
0x82,0x82,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
0x85,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,
0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x84,
0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,
0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,
0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,
0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,
0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,
0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,
0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,
0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,
0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,
0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,
0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,
0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x81,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,
0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x80,0x81,0x7a,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x81,0x7f,0x81,
0x81,0x82,0x83,0x82,0x86,0x84,0x84,0x83,0x81,0x82,0x82,0x82,0x80,0x80,0x80,0x7e,
0x80,0x80,0x7e,0x7e,0x7d,0x7e,0x7c,0x7f,0x7f,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x80,
0x7f,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x81,0x80,0x80,0x81,0x80,0x7b,0x7c,0x7c,
0x7c,0x7b,0x7b,0x7b,0x7a,0x7f,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x83,0x81,0x82,0x82,
0x80,0x82,0x82,0x82,0x7f,0x80,0x81,0x7f,0x81,0x80,0x7e,0x7e,0x7f,0x7e,0x7d,0x7f,
0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x7f,0x80,0x82,0x82,0x82,0x84,0x84,0x85,0x86,
0x86,0x86,0x86,0x87,0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x86,0x87,0x87,0x86,0x85,
0x84,0x83,0x82,0x82,0x80,0x7e,0x7d,0x7b,0x79,0x78,0x77,0x75,0x74,0x73,0x74,0x73,
0x73,0x72,0x73,0x74,0x75,0x76,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,
0x81,0x81,0x82,0x83,0x84,0x84,0x85,0x86,0x86,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8a,
0x8a,0x8c,0x8d,0x8e,0x8e,0x8f,0x8f,0x8c,0x8b,0x8b,0x8b,0x89,0x85,0x81,0x7f,0x7e,
0x7b,0x77,0x74,0x72,0x71,0x6f,0x6e,0x6e,0x6d,0x6e,0x6e,0x6f,0x71,0x74,0x75,0x76,
0x79,0x7c,0x7f,0x80,0x81,0x83,0x85,0x86,0x86,0x86,0x86,0x85,0x83,0x81,0x81,0x80,
0x7e,0x7b,0x79,0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x7a,0x7c,0x7f,0x82,0x83,0x86,
0x89,0x8e,0x91,0x94,0x94,0x9a,0x9d,0x94,0x98,0x94,0x96,0x92,0x8c,0x87,0x81,0x82,
0x79,0x75,0x71,0x6d,0x6c,0x67,0x65,0x66,0x67,0x67,0x67,0x6a,0x6e,0x71,0x75,0x76,
0x7c,0x81,0x83,0x86,0x87,0x8b,0x8d,0x8d,0x8d,0x8c,0x8c,0x89,0x85,0x83,0x81,0x7f,
0x7a,0x76,0x74,0x73,0x72,0x70,0x70,0x72,0x73,0x77,0x79,0x7d,0x80,0x85,0x8a,0x8e,
0x92,0x98,0x9b,0x9d,0xa1,0x9b,0x9b,0x9b,0x9a,0x96,0x8e,0x89,0x81,0x80,0x78,0x71,
0x6d,0x68,0x65,0x62,0x60,0x60,0x61,0x62,0x63,0x68,0x6d,0x71,0x76,0x79,0x7f,0x85,
0x89,0x8c,0x8f,0x91,0x93,0x94,0x93,0x92,0x90,0x8d,0x89,0x86,0x82,0x7f,0x7b,0x75,
0x72,0x70,0x6e,0x6b,0x69,0x69,0x6a,0x6c,0x6d,0x71,0x75,0x79,0x7d,0x82,0x86,0x8c,
0x90,0x94,0x97,0x9c,0x9d,0xa0,0xa1,0xa5,0xa6,0x97,0x98,0x92,0x93,0x8d,0x82,0x79,
0x72,0x73,0x69,0x65,0x61,0x5e,0x60,0x5e,0x5e,0x63,0x67,0x69,0x6d,0x73,0x7a,0x81,
0x85,0x86,0x8c,0x92,0x93,0x93,0x92,0x93,0x93,0x91,0x8c,0x88,0x85,0x80,0x7a,0x75,
0x72,0x6f,0x6b,0x67,0x67,0x68,0x6b,0x6c,0x6f,0x74,0x7a,0x80,0x85,0x8a,0x90,0x96,
0x9a,0x9e,0xa2,0xa6,0xa7,0xaa,0xa5,0x9b,0x9d,0x99,0x93,0x8a,0x80,0x78,0x73,0x6d,
0x64,0x5f,0x5c,0x59,0x59,0x59,0x5a,0x5f,0x63,0x67,0x6e,0x77,0x7d,0x83,0x87,0x8d,
0x94,0x97,0x97,0x98,0x98,0x98,0x96,0x92,0x8d,0x88,0x83,0x7e,0x7a,0x75,0x70,0x6b,
0x68,0x67,0x67,0x67,0x67,0x69,0x6d,0x71,0x75,0x7a,0x80,0x86,0x8b,0x8f,0x95,0x99,
0x9d,0x9e,0xa0,0xa2,0xa4,0xa4,0xa5,0xa3,0x93,0x94,0x8d,0x89,0x84,0x78,0x70,0x69,
0x67,0x60,0x5d,0x5b,0x58,0x5c,0x5e,0x61,0x67,0x6c,0x71,0x78,0x80,0x86,0x8c,0x8f,
0x91,0x96,0x98,0x98,0x96,0x93,0x90,0x8d,0x89,0x83,0x7f,0x7a,0x72,0x6e,0x6a,0x68,
0x67,0x64,0x63,0x65,0x69,0x6d,0x71,0x76,0x7c,0x83,0x8b,0x8f,0x96,0x9a,0x9f,0xa1,
0xa3,0xa5,0xa7,0xa8,0xa6,0xa6,0x99,0x92,0x90,0x89,0x83,0x77,0x6d,0x66,0x63,0x5e,
0x58,0x57,0x56,0x58,0x5d,0x5f,0x65,0x6c,0x72,0x78,0x81,0x88,0x8e,0x92,0x94,0x97,
0x9b,0x9a,0x97,0x94,0x90,0x8c,0x87,0x81,0x7b,0x76,0x71,0x6c,0x69,0x65,0x63,0x63,
0x63,0x66,0x69,0x6c,0x70,0x76,0x7d,0x84,0x8a,0x8f,0x94,0x99,0x9e,0xa0,0xa2,0xa2,
0xa4,0xa3,0xa3,0xa2,0xa5,0x98,0x8b,0x8a,0x85,0x83,0x77,0x6b,0x63,0x63,0x60,0x5a,
0x59,0x59,0x5b,0x60,0x63,0x68,0x72,0x76,0x7b,0x82,0x8a,0x90,0x94,0x94,0x95,0x98,
0x98,0x94,0x8f,0x8b,0x88,0x83,0x7c,0x77,0x73,0x6e,0x68,0x66,0x65,0x66,0x65,0x64,
0x68,0x6e,0x73,0x76,0x7b,0x81,0x8a,0x8f,0x93,0x97,0x9c,0x9e,0xa1,0xa1,0xa1,0xa1,
0xa1,0xa1,0xa0,0xa0,0x90,0x88,0x87,0x81,0x7d,0x73,0x68,0x63,0x61,0x5e,0x5a,0x5c,
0x5c,0x5f,0x64,0x67,0x70,0x77,0x7b,0x80,0x88,0x8e,0x93,0x94,0x93,0x95,0x97,0x93,
0x8f,0x8a,0x86,0x82,0x7c,0x77,0x72,0x6f,0x6a,0x68,0x67,0x66,0x67,0x68,0x6b,0x6f,
0x73,0x78,0x7c,0x81,0x87,0x8c,0x91,0x94,0x98,0x9a,0x9d,0x9e,0x9e,0x9e,0x9d,0x9d,
0x9e,0x9f,0x9b,0x8a,0x88,0x85,0x81,0x7c,0x6f,0x68,0x64,0x64,0x5e,0x5d,0x5e,0x5f,
0x63,0x66,0x6b,0x74,0x7a,0x7c,0x83,0x8a,0x90,0x93,0x92,0x91,0x94,0x94,0x90,0x8b,
0x87,0x83,0x80,0x7a,0x75,0x72,0x6f,0x6a,0x68,0x68,0x69,0x6a,0x6a,0x6c,0x71,0x77,
0x7b,0x7f,0x83,0x8a,0x8f,0x93,0x96,0x99,0x9b,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0xa0,
0xa0,0x90,0x86,0x82,0x84,0x7e,0x75,0x66,0x62,0x63,0x60,0x5c,0x5b,0x5e,0x61,0x67,
0x69,0x73,0x7a,0x7e,0x81,0x89,0x90,0x95,0x95,0x91,0x92,0x95,0x92,0x8c,0x86,0x81,
0x7f,0x79,0x74,0x6f,0x6d,0x6a,0x66,0x65,0x68,0x6a,0x6b,0x6b,0x71,0x78,0x7c,0x7f,
0x83,0x89,0x8f,0x93,0x95,0x98,0x9b,0x9c,0x9d,0x9c,0x9d,0x9b,0x9c,0x9d,0xa0,0x99,
0x87,0x84,0x82,0x80,0x7b,0x6d,0x63,0x62,0x61,0x5f,0x5d,0x5f,0x5f,0x65,0x69,0x6f,
0x79,0x7d,0x80,0x86,0x8d,0x92,0x96,0x93,0x91,0x93,0x91,0x8c,0x87,0x81,0x7d,0x79,
0x73,0x6f,0x6d,0x6a,0x66,0x66,0x67,0x69,0x6c,0x6e,0x71,0x76,0x7c,0x81,0x85,0x88,
0x8e,0x92,0x96,0x98,0x9a,0x9b,0x9b,0x9a,0x9b,0x9d,0x9e,0x9c,0x9f,0x99,0x86,0x86,
0x81,0x81,0x7a,0x6c,0x63,0x61,0x61,0x5c,0x5d,0x5d,0x5f,0x65,0x6a,0x6f,0x7a,0x7f,
0x82,0x88,0x8e,0x94,0x96,0x94,0x91,0x93,0x91,0x8c,0x86,0x80,0x7b,0x77,0x72,0x6e,
0x6c,0x69,0x66,0x64,0x66,0x6b,0x6e,0x6e,0x70,0x77,0x7e,0x83,0x85,0x89,0x8e,0x93,
0x97,0x98,0x9a,0x9b,0x9b,0x9b,0x9c,0x9e,0x9e,0x9c,0xa0,0x95,0x88,0x86,0x80,0x7f,
0x77,0x6c,0x62,0x61,0x5f,0x5c,0x5e,0x5e,0x61,0x67,0x6b,0x72,0x7d,0x81,0x85,0x8b,
0x90,0x94,0x97,0x94,0x92,0x92,0x8e,0x8a,0x84,0x7e,0x79,0x75,0x70,0x6c,0x6b,0x69,
0x67,0x66,0x67,0x6c,0x70,0x72,0x75,0x79,0x7f,0x85,0x89,0x89,0x8d,0x90,0x94,0x96,
0x97,0x96,0x97,0x97,0x97,0x99,0x99,0x9a,0x9a,0x9f,0x8b,0x89,0x84,0x7f,0x80,0x73,
0x6c,0x62,0x66,0x5e,0x61,0x60,0x60,0x65,0x6a,0x6d,0x77,0x7f,0x80,0x87,0x8b,0x91,
0x93,0x96,0x90,0x91,0x8f,0x8b,0x87,0x81,0x7c,0x78,0x74,0x70,0x6d,0x6b,0x69,0x67,
0x69,0x6a,0x6e,0x70,0x72,0x77,0x7d,0x81,0x85,0x88,0x8d,0x91,0x95,0x96,0x98,0x9a,
0x9c,0x9c,0x9b,0x9a,0x9d,0x9e,0xa2,0x9c,0x85,0x86,0x82,0x81,0x7a,0x6b,0x61,0x60,
0x61,0x5b,0x5e,0x5d,0x5f,0x66,0x6c,0x71,0x7e,0x82,0x85,0x8b,0x92,0x97,0x99,0x95,
0x91,0x92,0x90,0x8a,0x83,0x7c,0x77,0x73,0x6f,0x6c,0x69,0x67,0x62,0x64,0x68,0x6d,
0x6f,0x70,0x74,0x7c,0x83,0x87,0x8a,0x8e,0x91,0x96,0x98,0x99,0x9a,0x99,0x99,0x9a,
0x9b,0x9b,0x9d,0x9c,0x9f,0x8b,0x83,0x81,0x7f,0x7f,0x70,0x65,0x5c,0x62,0x5f,0x5e,
0x5e,0x5f,0x65,0x6d,0x70,0x79,0x83,0x85,0x8a,0x8e,0x95,0x98,0x97,0x91,0x90,0x8f,
0x8b,0x84,0x7d,0x76,0x73,0x6f,0x6b,0x69,0x68,0x67,0x66,0x68,0x6a,0x70,0x72,0x76,
0x7a,0x80,0x84,0x89,0x8a,0x8f,0x91,0x94,0x94,0x96,0x97,0x97,0x97,0x98,0x98,0x9a,
0x9c,0x9c,0xa0,0x87,0x88,0x82,0x80,0x7d,0x71,0x67,0x5f,0x64,0x5a,0x60,0x5f,0x61,
0x64,0x6c,0x6f,0x7c,0x82,0x83,0x8a,0x8f,0x95,0x95,0x96,0x8f,0x91,0x8e,0x88,0x83,
0x7f,0x78,0x73,0x6e,0x6c,0x6a,0x69,0x65,0x63,0x67,0x6c,0x72,0x73,0x74,0x79,0x81,
0x87,0x8b,0x8c,0x8f,0x91,0x95,0x96,0x98,0x97,0x96,0x95,0x97,0x97,0x9b,0x9a,0x9c,
0x9b,0x85,0x87,0x81,0x81,0x7c,0x70,0x64,0x61,0x64,0x5d,0x60,0x60,0x61,0x67,0x6e,
0x71,0x7e,0x82,0x85,0x8a,0x90,0x94,0x96,0x94,0x8f,0x8f,0x8d,0x87,0x81,0x7b,0x76,
0x73,0x6f,0x6c,0x69,0x68,0x66,0x67,0x69,0x6d,0x71,0x73,0x75,0x7c,0x81,0x86,0x89,
0x8c,0x90,0x93,0x95,0x96,0x97,0x96,0x98,0x99,0x9b,0x99,0x9c,0x9a,0xa2,0x93,0x85,
0x85,0x7f,0x80,0x75,0x6a,0x60,0x63,0x5f,0x5d,0x5f,0x60,0x64,0x6c,0x6e,0x77,0x82,
0x85,0x89,0x8d,0x93,0x96,0x98,0x92,0x8f,0x8f,0x8b,0x84,0x7e,0x78,0x74,0x70,0x6b,
0x69,0x69,0x68,0x67,0x68,0x6a,0x6f,0x74,0x77,0x7a,0x80,0x83,0x88,0x8b,0x8e,0x91,
0x93,0x93,0x95,0x96,0x96,0x96,0x95,0x97,0x98,0x9b,0x9b,0xa3,0x8c,0x85,0x84,0x82,
0x82,0x75,0x69,0x60,0x65,0x5e,0x60,0x61,0x60,0x65,0x6b,0x6f,0x7a,0x83,0x83,0x88,
0x8d,0x93,0x96,0x96,0x90,0x8f,0x8e,0x89,0x84,0x7e,0x78,0x74,0x70,0x6c,0x6b,0x6a,
0x68,0x66,0x68,0x6c,0x71,0x74,0x76,0x7a,0x7f,0x84,0x89,0x8b,0x8e,0x91,0x94,0x96,
0x98,0x97,0x98,0x98,0x99,0x99,0x9c,0x9a,0x9f,0x9b,0x84,0x85,0x80,0x81,0x79,0x6d,
0x61,0x60,0x62,0x5b,0x60,0x60,0x63,0x69,0x6e,0x74,0x81,0x84,0x87,0x8c,0x92,0x96,
0x97,0x94,0x8e,0x8f,0x8c,0x85,0x7f,0x79,0x75,0x71,0x6c,0x69,0x68,0x68,0x66,0x67,
0x69,0x6f,0x74,0x76,0x79,0x7f,0x84,0x88,0x8b,0x8d,0x90,0x92,0x94,0x94,0x96,0x95,
0x97,0x94,0x96,0x96,0x9a,0x99,0xa2,0x90,0x83,0x87,0x80,0x82,0x73,0x6b,0x61,0x67,
0x5f,0x5c,0x60,0x60,0x66,0x6b,0x6f,0x77,0x84,0x83,0x88,0x8c,0x94,0x95,0x96,0x90,
0x8e,0x8f,0x89,0x83,0x7d,0x78,0x73,0x70,0x6b,0x6a,0x69,0x67,0x67,0x6b,0x6e,0x71,
0x73,0x77,0x7c,0x82,0x84,0x88,0x8a,0x8d,0x8f,0x91,0x92,0x93,0x94,0x92,0x94,0x95,
0x97,0x97,0x99,0x9a,0xa2,0x8e,0x86,0x86,0x80,0x83,0x75,0x6a,0x61,0x65,0x5f,0x5f,
0x61,0x60,0x66,0x6b,0x6e,0x79,0x82,0x83,0x88,0x8d,0x93,0x96,0x96,0x90,0x8e,0x8d,
0x89,0x83,0x7d,0x77,0x74,0x70,0x6c,0x6a,0x69,0x67,0x68,0x6a,0x6d,0x72,0x75,0x77,
0x7b,0x81,0x85,0x8a,0x8b,0x8d,0x90,0x94,0x93,0x95,0x94,0x96,0x96,0x97,0x97,0x9a,
0x9b,0x9f,0x9b,0x84,0x87,0x83,0x82,0x7c,0x6e,0x64,0x61,0x63,0x5c,0x60,0x60,0x62,
0x68,0x6e,0x74,0x81,0x84,0x86,0x8b,0x92,0x96,0x97,0x94,0x8e,0x8e,0x8b,0x85,0x7f,
0x7a,0x74,0x71,0x6c,0x6a,0x69,0x68,0x68,0x69,0x6c,0x71,0x73,0x76,0x7b,0x80,0x84,
0x87,0x8a,0x8c,0x8f,0x90,0x91,0x92,0x94,0x92,0x93,0x92,0x95,0x95,0x99,0x98,0x9e,
0x9a,0x85,0x88,0x81,0x84,0x7c,0x6f,0x64,0x65,0x65,0x5e,0x62,0x61,0x64,0x6a,0x6f,
0x74,0x81,0x84,0x86,0x8a,0x90,0x94,0x96,0x92,0x8d,0x8e,0x8b,0x85,0x7f,0x79,0x74,
0x73,0x6e,0x6b,0x6a,0x69,0x67,0x68,0x6c,0x71,0x75,0x76,0x79,0x7f,0x85,0x89,0x8c,
0x8d,0x90,0x93,0x94,0x96,0x95,0x95,0x96,0x96,0x97,0x98,0x9a,0x9b,0x9e,0x87,0x83,
0x85,0x7f,0x7f,0x71,0x66,0x61,0x65,0x5f,0x60,0x63,0x62,0x69,0x6f,0x73,0x7f,0x86,
0x86,0x8b,0x8f,0x94,0x96,0x94,0x8e,0x8d,0x8c,0x85,0x80,0x7a,0x74,0x71,0x6e,0x6b,
0x6a,0x69,0x68,0x6a,0x6e,0x72,0x75,0x76,0x79,0x7f,0x85,0x86,0x88,0x89,0x8c,0x8e,
0x8f,0x8f,0x91,0x90,0x91,0x92,0x94,0x95,0x96,0x97,0x9c,0xa3,0x8c,0x89,0x83,0x81,
0x83,0x77,0x69,0x62,0x65,0x5f,0x62,0x60,0x61,0x67,0x6c,0x6f,0x7b,0x83,0x85,0x88,
0x8c,0x92,0x96,0x96,0x8e,0x8d,0x8c,0x88,0x83,0x7d,0x76,0x74,0x70,0x6d,0x6a,0x6a,
0x67,0x67,0x69,0x6e,0x73,0x75,0x76,0x7b,0x81,0x86,0x8a,0x8c,0x8e,0x91,0x94,0x94,
0x95,0x95,0x96,0x94,0x96,0x97,0x9c,0x98,0x9e,0x93,0x81,0x88,0x82,0x81,0x76,0x6b,
0x61,0x65,0x63,0x5c,0x62,0x62,0x66,0x6c,0x71,0x78,0x84,0x85,0x87,0x8d,0x93,0x95,
0x95,0x90,0x8c,0x8d,0x88,0x81,0x7c,0x77,0x73,0x70,0x6b,0x6a,0x6a,0x69,0x69,0x6c,
0x6f,0x73,0x75,0x78,0x7c,0x82,0x86,0x88,0x8a,0x8b,0x8e,0x8f,0x91,0x91,0x92,0x90,
0x91,0x92,0x95,0x95,0x98,0x97,0xa0,0x9a,0x85,0x88,0x81,0x84,0x7c,0x70,0x64,0x65,
0x64,0x5d,0x62,0x62,0x66,0x6b,0x6e,0x74,0x81,0x84,0x86,0x8b,0x90,0x94,0x96,0x92,
0x8c,0x8d,0x89,0x83,0x7e,0x78,0x75,0x72,0x6d,0x6a,0x6b,0x6a,0x69,0x6a,0x6d,0x71,
0x74,0x77,0x7b,0x81,0x84,0x88,0x8a,0x8d,0x90,0x92,0x92,0x94,0x94,0x93,0x93,0x95,
0x96,0x99,0x9a,0x9b,0xa0,0x8a,0x86,0x84,0x83,0x81,0x74,0x66,0x60,0x66,0x5f,0x60,
0x61,0x61,0x68,0x6e,0x73,0x7e,0x85,0x85,0x8a,0x8f,0x94,0x96,0x94,0x8e,0x8d,0x8b,
0x86,0x80,0x7a,0x75,0x72,0x6f,0x6b,0x6a,0x6a,0x68,0x69,0x6b,0x70,0x74,0x76,0x79,
0x7e,0x84,0x87,0x8a,0x8b,0x8e,0x90,0x92,0x91,0x94,0x93,0x93,0x91,0x94,0x97,0x99,
0x97,0x9b,0x9d,0x88,0x88,0x81,0x81,0x7f,0x73,0x67,0x62,0x67,0x60,0x63,0x61,0x63,
0x6b,0x70,0x73,0x7e,0x84,0x86,0x8a,0x8e,0x92,0x95,0x93,0x8c,0x8b,0x89,0x85,0x7f,
0x7a,0x75,0x73,0x6f,0x6c,0x6a,0x6a,0x69,0x6a,0x6e,0x71,0x75,0x77,0x79,0x7f,0x84,
0x87,0x8a,0x8a,0x8d,0x8f,0x91,0x91,0x92,0x91,0x92,0x92,0x94,0x96,0x99,0x97,0x9b,
0x9b,0x8a,0x89,0x82,0x81,0x7d,0x72,0x67,0x63,0x64,0x5f,0x62,0x62,0x64,0x6a,0x6f,
0x74,0x7e,0x84,0x86,0x8b,0x8e,0x92,0x94,0x92,0x8d,0x8c,0x89,0x84,0x7f,0x7a,0x75,
0x72,0x6f,0x6c,0x6b,0x6b,0x6a,0x6c,0x6e,0x72,0x76,0x77,0x7a,0x7f,0x83,0x85,0x87,
0x87,0x8b,0x8d,0x8d,0x8d,0x8e,0x8f,0x8f,0x90,0x90,0x94,0x98,0x9b,0x9a,0xa1,0x94,
0x89,0x8a,0x83,0x83,0x79,0x6f,0x63,0x65,0x61,0x5e,0x62,0x60,0x65,0x6b,0x6f,0x76,
0x81,0x83,0x87,0x8c,0x90,0x93,0x95,0x91,0x8d,0x8c,0x88,0x83,0x7f,0x79,0x75,0x72,
0x6d,0x6c,0x6b,0x6b,0x6a,0x6b,0x6d,0x71,0x75,0x77,0x7a,0x7f,0x84,0x87,0x88,0x89,
0x8d,0x8f,0x90,0x90,0x91,0x92,0x93,0x93,0x95,0x97,0x9b,0x99,0xa0,0x96,0x86,0x89,
0x80,0x82,0x79,0x6e,0x63,0x64,0x62,0x5e,0x64,0x61,0x66,0x6c,0x70,0x77,0x82,0x85,
0x87,0x8d,0x90,0x93,0x95,0x90,0x8c,0x8b,0x87,0x82,0x7e,0x77,0x73,0x71,0x6d,0x6c,
0x6b,0x69,0x69,0x6c,0x6f,0x74,0x76,0x78,0x7b,0x81,0x86,0x89,0x8a,0x8b,0x8e,0x91,
0x91,0x92,0x91,0x92,0x93,0x93,0x94,0x99,0x9a,0x9c,0x9f,0x8d,0x86,0x87,0x82,0x81,
0x76,0x69,0x62,0x65,0x60,0x60,0x64,0x61,0x67,0x6d,0x72,0x7c,0x84,0x85,0x89,0x8f,
0x92,0x95,0x94,0x8e,0x8b,0x8a,0x85,0x80,0x7b,0x74,0x72,0x6e,0x6b,0x6a,0x6a,0x6a,
0x6a,0x6e,0x72,0x76,0x78,0x7a,0x7f,0x85,0x89,0x8a,0x8b,0x8d,0x8f,0x91,0x91,0x91,
0x91,0x92,0x93,0x94,0x96,0x9c,0x9a,0x9e,0x96,0x87,0x8a,0x84,0x81,0x79,0x6e,0x65,
0x64,0x63,0x5d,0x62,0x62,0x65,0x6b,0x70,0x77,0x81,0x85,0x87,0x8d,0x91,0x94,0x94,
0x91,0x8d,0x8c,0x88,0x81,0x7d,0x78,0x74,0x70,0x6c,0x6a,0x6a,0x69,0x68,0x6a,0x6f,
0x74,0x76,0x78,0x7c,0x82,0x87,0x8a,0x8b,0x8d,0x8f,0x91,0x91,0x92,0x92,0x93,0x93,
0x94,0x95,0x98,0x99,0x9b,0x9e,0x89,0x86,0x83,0x80,0x80,0x73,0x68,0x61,0x64,0x60,
0x61,0x64,0x62,0x69,0x6f,0x74,0x7e,0x85,0x86,0x89,0x8e,0x92,0x95,0x94,0x8d,0x8a,
0x89,0x84,0x7f,0x7a,0x74,0x71,0x6d,0x6b,0x6a,0x6b,0x69,0x6a,0x6d,0x72,0x75,0x79,
0x7b,0x7f,0x84,0x88,0x8a,0x8c,0x8d,0x8f,0x91,0x90,0x91,0x92,0x94,0x92,0x94,0x95,
0x9a,0x9b,0xa2,0x93,0x83,0x88,0x81,0x84,0x79,0x6c,0x61,0x64,0x63,0x5e,0x63,0x61,
0x65,0x6c,0x70,0x78,0x84,0x86,0x87,0x8c,0x91,0x95,0x96,0x90,0x8a,0x8a,0x87,0x81,
0x7d,0x76,0x73,0x70,0x6c,0x6a,0x6a,0x6a,0x69,0x6b,0x6f,0x74,0x77,0x78,0x7b,0x81,
0x86,0x89,0x8b,0x8c,0x8e,0x91,0x91,0x92,0x91,0x93,0x92,0x93,0x95,0x98,0x9b,0x9d,
0x9e,0x88,0x86,0x86,0x83,0x80,0x71,0x66,0x62,0x66,0x60,0x60,0x62,0x62,0x69,0x6e,
0x73,0x7e,0x85,0x86,0x89,0x8f,0x94,0x96,0x93,0x8d,0x8b,0x8a,0x85,0x7f,0x79,0x74,
0x72,0x6e,0x6b,0x6b,0x6b,0x6a,0x6b,0x6e,0x72,0x77,0x79,0x7b,0x7f,0x85,0x87,0x8a,
0x89,0x8a,0x8c,0x8d,0x8d,0x8d,0x8d,0x8e,0x90,0x90,0x91,0x95,0x9a,0x9b,0xa5,0x91,
0x89,0x8a,0x84,0x87,0x7b,0x6e,0x63,0x67,0x61,0x5f,0x63,0x61,0x65,0x6b,0x6e,0x78,
0x83,0x84,0x86,0x8b,0x90,0x95,0x96,0x90,0x8c,0x8c,0x88,0x82,0x7e,0x78,0x74,0x71,
0x6d,0x6b,0x6c,0x6b,0x69,0x6a,0x6f,0x74,0x77,0x78,0x7b,0x82,0x86,0x89,0x8a,0x8c,
0x8e,0x91,0x91,0x93,0x92,0x95,0x94,0x94,0x96,0x9c,0x9b,0xa1,0x98,0x84,0x88,0x81,
0x82,0x7c,0x6e,0x63,0x61,0x62,0x5d,0x63,0x62,0x63,0x6c,0x70,0x78,0x84,0x87,0x88,
0x8d,0x92,0x95,0x97,0x93,0x8c,0x8a,0x87,0x81,0x7e,0x77,0x71,0x6f,0x6c,0x6b,0x6a,
0x6b,0x6a,0x6c,0x71,0x75,0x79,0x7b,0x7d,0x83,0x87,0x89,0x8a,0x8b,0x8c,0x8c,0x8d,
0x8d,0x8e,0x8d,0x8d,0x8f,0x92,0x94,0x98,0x99,0xa1,0x99,0x89,0x8a,0x84,0x86,0x7e,
0x71,0x65,0x64,0x64,0x5f,0x62,0x61,0x64,0x6a,0x6e,0x75,0x80,0x85,0x86,0x8a,0x8f,
0x93,0x95,0x92,0x8c,0x8b,0x88,0x83,0x7f,0x79,0x74,0x71,0x6d,0x6c,0x6c,0x6b,0x69,
0x6b,0x6f,0x74,0x77,0x79,0x7b,0x81,0x85,0x87,0x89,0x8a,0x8b,0x8d,0x8e,0x8f,0x8f,
0x8f,0x91,0x91,0x93,0x96,0x9a,0x9b,0xa2,0x92,0x86,0x87,0x82,0x84,0x79,0x6c,0x61,
0x64,0x61,0x5f,0x64,0x62,0x66,0x6c,0x71,0x7a,0x85,0x87,0x88,0x8c,0x92,0x95,0x96,
0x90,0x8a,0x89,0x86,0x80,0x7b,0x75,0x71,0x6f,0x6c,0x6a,0x6b,0x6b,0x6b,0x6e,0x72,
0x76,0x7a,0x7d,0x7f,0x84,0x86,0x89,0x8a,0x8b,0x8b,0x8b,0x8b,0x8c,0x8d,0x8d,0x8d,
0x8f,0x91,0x94,0x99,0x9b,0xa2,0x91,0x87,0x87,0x84,0x87,0x7a,0x6e,0x62,0x66,0x63,
0x61,0x64,0x61,0x66,0x6b,0x71,0x79,0x82,0x85,0x87,0x8c,0x90,0x94,0x95,0x90,0x8b,
0x8a,0x86,0x82,0x7d,0x76,0x73,0x70,0x6d,0x6c,0x6c,0x6a,0x6a,0x6d,0x72,0x75,0x78,
0x79,0x7e,0x82,0x86,0x89,0x8a,0x8b,0x8d,0x8f,0x90,0x92,0x91,0x93,0x93,0x93,0x95,
0x9b,0x9a,0xa3,0x91,0x83,0x85,0x81,0x82,0x77,0x6c,0x60,0x64,0x62,0x5f,0x64,0x64,
0x67,0x6d,0x73,0x7c,0x86,0x88,0x89,0x8d,0x93,0x96,0x95,0x90,0x8a,0x89,0x85,0x7f,
0x7b,0x75,0x71,0x6d,0x6b,0x6a,0x6b,0x6c,0x6b,0x6d,0x73,0x77,0x7b,0x7c,0x7f,0x84,
0x88,0x8a,0x8b,0x8c,0x8c,0x8d,0x8d,0x8e,0x8d,0x8f,0x8f,0x91,0x92,0x97,0x98,0xa0,
0x9d,0x87,0x87,0x82,0x86,0x80,0x74,0x66,0x63,0x66,0x60,0x64,0x63,0x64,0x6a,0x6f,
0x75,0x81,0x87,0x87,0x8a,0x8e,0x93,0x96,0x93,0x8c,0x8a,0x89,0x83,0x7f,0x78,0x73,
0x71,0x6e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6f,0x74,0x78,0x7b,0x7b,0x80,0x85,0x88,0x89,
0x8a,0x8a,0x8e,0x8e,0x90,0x8f,0x90,0x90,0x91,0x93,0x96,0x9a,0x9b,0xa3,0x8d,0x87,
0x84,0x81,0x84,0x78,0x6c,0x61,0x65,0x60,0x61,0x64,0x63,0x68,0x6e,0x73,0x7c,0x86,
0x88,0x8a,0x8e,0x92,0x95,0x96,0x90,0x8a,0x89,0x84,0x7f,0x7a,0x74,0x71,0x6e,0x6b,
0x6b,0x6c,0x6c,0x6c,0x6f,0x73,0x76,0x7a,0x7c,0x7f,0x84,0x87,0x88,0x8b,0x8b,0x8d,
0x8e,0x8f,0x8f,0x90,0x91,0x90,0x93,0x95,0x9a,0x9c,0xa3,0x8f,0x86,0x86,0x82,0x85,
0x77,0x6b,0x60,0x64,0x60,0x60,0x64,0x62,0x67,0x6c,0x72,0x7c,0x86,0x88,0x89,0x8d,
0x92,0x97,0x97,0x90,0x8a,0x89,0x85,0x80,0x7a,0x74,0x70,0x6e,0x6a,0x6a,0x6a,0x6a,
0x6a,0x6b,0x71,0x76,0x7a,0x7c,0x7f,0x84,0x8a,0x8b,0x8d,0x8d,0x91,0x91,0x92,0x91,
0x92,0x91,0x93,0x92,0x96,0x99,0x9c,0xa0,0x83,0x84,0x80,0x83,0x81,0x72,0x66,0x5e,
0x66,0x5f,0x64,0x65,0x65,0x6a,0x70,0x76,0x81,0x8a,0x88,0x8a,0x8f,0x94,0x96,0x94,
0x8c,0x88,0x87,0x82,0x7d,0x78,0x73,0x6f,0x6c,0x69,0x6b,0x6d,0x6c,0x6d,0x70,0x74,
0x78,0x7c,0x7e,0x82,0x85,0x88,0x89,0x8b,0x8a,0x8c,0x8d,0x8d,0x8e,0x8f,0x8f,0x8e,
0x91,0x94,0x9a,0x99,0xa4,0x91,0x85,0x86,0x82,0x86,0x7b,0x6f,0x60,0x65,0x63,0x61,
0x66,0x62,0x66,0x6d,0x72,0x7a,0x85,0x87,0x88,0x8c,0x91,0x94,0x96,0x90,0x89,0x88,
0x85,0x80,0x7c,0x75,0x71,0x6f,0x6d,0x6b,0x6d,0x6c,0x6b,0x6d,0x71,0x76,0x7a,0x7b,
0x7d,0x82,0x87,0x89,0x8c,0x8c,0x8e,0x90,0x91,0x91,0x92,0x94,0x92,0x93,0x94,0x99,
0x9a,0xa2,0x8e,0x81,0x85,0x80,0x83,0x77,0x6c,0x60,0x66,0x63,0x61,0x66,0x65,0x68,
0x6f,0x74,0x7c,0x88,0x89,0x88,0x8d,0x92,0x95,0x95,0x8e,0x88,0x87,0x84,0x7d,0x7a,
0x75,0x70,0x6e,0x6b,0x6b,0x6e,0x6e,0x6d,0x6e,0x73,0x78,0x7c,0x7d,0x7f,0x84,0x87,
0x89,0x8a,0x8b,0x8c,0x8e,0x8d,0x8f,0x8f,0x91,0x8f,0x92,0x92,0x98,0x98,0xa0,0x97,
0x85,0x88,0x81,0x85,0x7d,0x72,0x65,0x64,0x65,0x60,0x66,0x65,0x66,0x6c,0x71,0x77,
0x83,0x87,0x88,0x8b,0x8f,0x93,0x95,0x92,0x8a,0x88,0x85,0x80,0x7c,0x77,0x72,0x6f,
0x6d,0x6c,0x6d,0x6d,0x6c,0x6c,0x70,0x75,0x79,0x7c,0x7e,0x81,0x86,0x88,0x8b,0x8d,
0x8e,0x90,0x90,0x91,0x92,0x94,0x92,0x93,0x93,0x97,0x98,0xa0,0x96,0x81,0x83,0x80,
0x81,0x7c,0x6f,0x63,0x64,0x65,0x60,0x66,0x68,0x68,0x6e,0x73,0x79,0x85,0x8a,0x88,
0x8a,0x8f,0x92,0x94,0x90,0x88,0x85,0x84,0x7e,0x7a,0x76,0x71,0x6f,0x6d,0x6c,0x6e,
0x70,0x6e,0x6e,0x72,0x77,0x7b,0x7d,0x7e,0x82,0x86,0x88,0x88,0x89,0x8a,0x8c,0x8c,
0x8d,0x8d,0x90,0x8f,0x90,0x90,0x96,0x98,0x9d,0xa2,0x89,0x87,0x84,0x83,0x83,0x79,
0x6b,0x62,0x67,0x60,0x63,0x67,0x65,0x69,0x6f,0x72,0x7c,0x87,0x87,0x88,0x8c,0x8f,
0x93,0x94,0x8d,0x87,0x87,0x83,0x7f,0x7c,0x75,0x72,0x70,0x6d,0x6e,0x70,0x6f,0x6e,
0x70,0x74,0x78,0x7b,0x7c,0x7d,0x82,0x84,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8c,
0x8c,0x8c,0x8d,0x90,0x90,0x92,0x93,0x98,0x97,0x8d,0x85,0x81,0x82,0x80,0x79,0x6e,
0x69,0x69,0x68,0x68,0x68,0x6b,0x6f,0x72,0x75,0x7b,0x83,0x86,0x88,0x89,0x8a,0x8d,
0x8d,0x89,0x85,0x83,0x81,0x7d,0x79,0x75,0x74,0x72,0x6f,0x6e,0x6f,0x70,0x71,0x73,
0x76,0x7a,0x7d,0x7f,0x81,0x86,0x89,0x8d,0x8e,0x8f,0x8f,0x92,0x92,0x93,0x92,0x93,
0x93,0x93,0x96,0x98,0xa0,0x8c,0x80,0x7d,0x7c,0x80,0x78,0x6a,0x5f,0x63,0x62,0x64,
0x68,0x69,0x6c,0x72,0x75,0x7e,0x8a,0x8c,0x8a,0x8c,0x8f,0x93,0x93,0x8b,0x84,0x83,
0x80,0x7b,0x77,0x73,0x70,0x6e,0x6c,0x6d,0x72,0x73,0x71,0x72,0x76,0x7d,0x80,0x80,
0x80,0x84,0x86,0x88,0x87,0x86,0x87,0x88,0x87,0x88,0x89,0x89,0x8a,0x8b,0x8c,0x8f,
0x94,0x95,0x99,0x96,0x8d,0x89,0x86,0x85,0x81,0x7a,0x70,0x6b,0x6b,0x68,0x68,0x69,
0x6a,0x6d,0x70,0x75,0x7b,0x81,0x84,0x86,0x89,0x8b,0x8e,0x8d,0x8a,0x86,0x85,0x82,
0x7f,0x7b,0x78,0x75,0x71,0x70,0x6f,0x70,0x70,0x70,0x71,0x75,0x79,0x7b,0x7e,0x81,
0x85,0x88,0x8c,0x8e,0x90,0x91,0x92,0x93,0x95,0x93,0x93,0x92,0x93,0x95,0x95,0x9a,
0x8c,0x83,0x7c,0x79,0x7b,0x77,0x6e,0x63,0x63,0x63,0x66,0x6b,0x6c,0x6e,0x74,0x78,
0x7f,0x88,0x8b,0x8b,0x8b,0x8d,0x8f,0x8f,0x8b,0x84,0x80,0x7d,0x7a,0x77,0x73,0x70,
0x6e,0x6d,0x6e,0x70,0x72,0x73,0x73,0x77,0x7b,0x80,0x82,0x83,0x84,0x87,0x88,0x8a,
0x8b,0x8b,0x8a,0x8a,0x8b,0x8e,0x8f,0x8d,0x8d,0x8e,0x93,0x96,0x9f,0x93,0x86,0x82,
0x7f,0x83,0x7f,0x75,0x68,0x66,0x64,0x65,0x6a,0x6a,0x6a,0x6e,0x71,0x78,0x83,0x87,
0x87,0x88,0x8a,0x8e,0x91,0x8e,0x88,0x84,0x82,0x7f,0x7c,0x78,0x73,0x70,0x6e,0x6f,
0x71,0x70,0x6f,0x6f,0x72,0x77,0x7c,0x7d,0x7e,0x81,0x84,0x88,0x8b,0x8c,0x8d,0x8e,
0x8d,0x8e,0x91,0x92,0x90,0x8f,0x8e,0x94,0x94,0x9b,0x97,0x85,0x80,0x7c,0x80,0x7d,
0x76,0x68,0x63,0x66,0x65,0x69,0x6b,0x6b,0x6f,0x74,0x79,0x82,0x89,0x89,0x89,0x8b,
0x8e,0x90,0x8f,0x88,0x82,0x81,0x7d,0x7a,0x76,0x72,0x70,0x6f,0x6d,0x6e,0x70,0x72,
0x72,0x74,0x77,0x7c,0x80,0x81,0x82,0x85,0x88,0x8b,0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,
0x91,0x90,0x90,0x8e,0x92,0x93,0x9d,0x98,0x83,0x81,0x7d,0x82,0x7e,0x75,0x68,0x66,
0x68,0x64,0x69,0x6b,0x6c,0x70,0x72,0x77,0x82,0x89,0x88,0x87,0x8a,0x8e,0x91,0x8f,
0x88,0x83,0x82,0x7e,0x7b,0x78,0x74,0x71,0x6f,0x6e,0x70,0x73,0x72,0x71,0x73,0x77,
0x7c,0x80,0x81,0x82,0x84,0x87,0x89,0x8b,0x8c,0x8c,0x8b,0x8c,0x8d,0x8f,0x8f,0x8f,
0x8f,0x91,0x93,0x96,0x9f,0x8c,0x84,0x7f,0x7f,0x83,0x7c,0x70,0x64,0x68,0x65,0x68,
0x6b,0x6a,0x6d,0x71,0x73,0x7b,0x86,0x88,0x87,0x88,0x8a,0x8f,0x91,0x8b,0x85,0x83,
0x81,0x7e,0x7a,0x76,0x73,0x71,0x6e,0x6e,0x71,0x71,0x71,0x71,0x74,0x7a,0x7e,0x80,
0x81,0x84,0x87,0x8a,0x8c,0x8e,0x8f,0x8f,0x8f,0x90,0x93,0x91,0x92,0x90,0x93,0x91,
0x9b,0x97,0x83,0x82,0x7c,0x7f,0x7d,0x76,0x69,0x66,0x68,0x64,0x6a,0x6c,0x6d,0x71,
0x73,0x77,0x82,0x89,0x88,0x88,0x8a,0x8c,0x90,0x8e,0x88,0x83,0x81,0x7d,0x7b,0x78,
0x74,0x71,0x6e,0x6d,0x70,0x73,0x72,0x71,0x73,0x77,0x7d,0x80,0x80,0x82,0x85,0x87,
0x89,0x8c,0x8c,0x8e,0x8c,0x8d,0x8e,0x91,0x90,0x8f,0x8e,0x92,0x93,0x9a,0x99,0x83,
0x82,0x7e,0x82,0x80,0x77,0x6a,0x65,0x69,0x65,0x6a,0x6c,0x6b,0x6e,0x72,0x75,0x80,
0x88,0x86,0x86,0x89,0x8c,0x90,0x8f,0x88,0x84,0x83,0x7f,0x7c,0x79,0x75,0x72,0x6f,
0x6d,0x6f,0x71,0x71,0x6f,0x71,0x75,0x7b,0x7e,0x80,0x81,0x85,0x88,0x8b,0x8d,0x8e,
0x8f,0x8e,0x8f,0x90,0x93,0x91,0x91,0x90,0x93,0x93,0x9b,0x8e,0x80,0x80,0x7e,0x81,
0x7a,0x71,0x66,0x68,0x68,0x67,0x6b,0x6c,0x6e,0x71,0x74,0x7a,0x85,0x89,0x87,0x87,
0x8b,0x8e,0x91,0x8b,0x85,0x83,0x82,0x7d,0x7a,0x77,0x73,0x71,0x6f,0x6f,0x71,0x73,
0x72,0x72,0x74,0x79,0x7c,0x7f,0x7f,0x82,0x84,0x86,0x87,0x88,0x89,0x8a,0x8a,0x8a,
0x8b,0x8c,0x8e,0x8d,0x8e,0x8f,0x94,0x95,0x9c,0x90,0x84,0x84,0x83,0x85,0x7d,0x75,
0x68,0x6b,0x69,0x67,0x6a,0x6a,0x6b,0x6f,0x72,0x77,0x82,0x85,0x84,0x86,0x8a,0x8d,
0x90,0x8c,0x87,0x85,0x84,0x80,0x7d,0x79,0x76,0x74,0x71,0x70,0x70,0x71,0x70,0x70,
0x73,0x76,0x7a,0x7c,0x7e,0x81,0x86,0x88,0x8b,0x8b,0x8e,0x8f,0x90,0x8f,0x91,0x92,
0x91,0x90,0x90,0x94,0x94,0x9c,0x8a,0x80,0x81,0x7f,0x80,0x7a,0x71,0x66,0x6a,0x67,
0x67,0x6c,0x6d,0x6e,0x72,0x75,0x7b,0x86,0x88,0x87,0x89,0x8c,0x8e,0x8f,0x8b,0x85,
0x84,0x82,0x7d,0x7b,0x77,0x73,0x71,0x70,0x70,0x72,0x73,0x72,0x73,0x76,0x7b,0x7e,
0x7f,0x80,0x83,0x85,0x87,0x88,0x88,0x88,0x88,0x88,0x89,0x8c,0x8b,0x8c,0x8b,0x8e,
0x8d,0x94,0x93,0x9c,0x95,0x86,0x85,0x82,0x86,0x81,0x7a,0x6b,0x6a,0x6a,0x68,0x6b,
0x6b,0x6b,0x6d,0x71,0x75,0x7e,0x84,0x84,0x84,0x88,0x8b,0x8f,0x8e,0x88,0x85,0x85,
0x82,0x7f,0x7c,0x78,0x76,0x74,0x71,0x71,0x72,0x71,0x71,0x72,0x75,0x78,0x7b,0x7c,
0x7e,0x82,0x85,0x87,0x8a,0x8b,0x8d,0x8e,0x8f,0x8f,0x92,0x91,0x91,0x90,0x92,0x93,
0x98,0x96,0x84,0x81,0x7f,0x82,0x7e,0x76,0x6a,0x67,0x6a,0x67,0x69,0x6b,0x6d,0x6f,
0x73,0x77,0x80,0x87,0x87,0x86,0x89,0x8c,0x8f,0x8e,0x88,0x84,0x83,0x80,0x7c,0x79,
0x76,0x74,0x71,0x70,0x71,0x73,0x71,0x71,0x73,0x77,0x7b,0x7d,0x7d,0x80,0x83,0x85,
0x87,0x88,0x8a,0x8a,0x8a,0x8a,0x8c,0x8d,0x8f,0x8d,0x8e,0x8d,0x93,0x93,0x9a,0x93,
0x84,0x84,0x81,0x83,0x7e,0x78,0x6a,0x6a,0x6a,0x67,0x6b,0x6c,0x6b,0x6e,0x72,0x76,
0x80,0x85,0x84,0x85,0x89,0x8c,0x8f,0x8d,0x88,0x85,0x84,0x81,0x7e,0x7b,0x77,0x75,
0x72,0x71,0x72,0x73,0x72,0x70,0x72,0x76,0x79,0x7c,0x7c,0x7f,0x81,0x85,0x87,0x89,
0x8a,0x8b,0x8b,0x8c,0x8e,0x90,0x8f,0x8d,0x8e,0x91,0x93,0x96,0x9a,0x88,0x83,0x80,
0x81,0x81,0x7b,0x70,0x68,0x6b,0x67,0x6a,0x6c,0x6c,0x6d,0x71,0x74,0x7c,0x84,0x85,
0x85,0x87,0x8a,0x8e,0x8f,0x8a,0x85,0x84,0x82,0x80,0x7d,0x78,0x75,0x74,0x72,0x72,
0x73,0x73,0x73,0x72,0x75,0x78,0x7c,0x7d,0x7e,0x80,0x82,0x86,0x88,0x89,0x89,0x8a,
0x8a,0x8c,0x8d,0x8f,0x8d,0x8e,0x8d,0x91,0x93,0x98,0x99,0x87,0x84,0x81,0x84,0x81,
0x7b,0x6f,0x69,0x6c,0x69,0x6b,0x6c,0x6c,0x6e,0x72,0x74,0x7c,0x83,0x84,0x84,0x86,
0x8a,0x8e,0x8e,0x89,0x85,0x84,0x83,0x80,0x7d,0x79,0x76,0x74,0x72,0x71,0x72,0x72,
0x71,0x71,0x74,0x78,0x7c,0x7d,0x7e,0x81,0x85,0x89,0x8b,0x8b,0x8d,0x8d,0x8e,0x8f,
0x91,0x90,0x90,0x8f,0x90,0x91,0x95,0x99,0x88,0x82,0x7e,0x81,0x81,0x7b,0x70,0x67,
0x6b,0x69,0x6c,0x6d,0x6d,0x6f,0x72,0x75,0x7d,0x85,0x86,0x84,0x86,0x89,0x8e,0x8e,
0x8a,0x84,0x83,0x82,0x7f,0x7c,0x78,0x75,0x73,0x71,0x71,0x74,0x74,0x73,0x72,0x74,
0x7a,0x7f,0x7f,0x7f,0x81,0x84,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8d,0x8f,0x8e,
0x8d,0x8c,0x91,0x93,0x99,0x8f,0x83,0x81,0x81,0x84,0x7d,0x77,0x6c,0x6c,0x6b,0x6a,
0x6d,0x6e,0x6e,0x6f,0x72,0x78,0x80,0x84,0x82,0x83,0x87,0x8b,0x8d,0x8a,0x86,0x84,
0x84,0x81,0x7e,0x7b,0x78,0x75,0x72,0x71,0x72,0x73,0x71,0x71,0x73,0x78,0x7b,0x7d,
0x7e,0x80,0x84,0x88,0x8b,0x8c,0x8d,0x8d,0x8f,0x8f,0x92,0x91,0x91,0x90,0x90,0x90,
0x96,0x94,0x84,0x81,0x7e,0x80,0x7d,0x77,0x6b,0x69,0x6b,0x68,0x6b,0x6d,0x6e,0x70,
0x73,0x76,0x7e,0x85,0x85,0x84,0x87,0x8a,0x8d,0x8d,0x87,0x84,0x83,0x82,0x7e,0x7b,
0x78,0x75,0x73,0x71,0x71,0x73,0x73,0x71,0x72,0x75,0x7b,0x7d,0x7e,0x7f,0x83,0x87,
0x89,0x8a,0x8a,0x8d,0x8e,0x8d,0x8e,0x90,0x8f,0x8f,0x8c,0x8e,0x90,0x97,0x93,0x84,
0x80,0x7f,0x83,0x80,0x7a,0x6e,0x6b,0x6d,0x6a,0x6c,0x6e,0x6e,0x6f,0x71,0x74,0x7c,
0x83,0x83,0x82,0x84,0x88,0x8c,0x8b,0x87,0x84,0x84,0x82,0x7f,0x7d,0x7a,0x77,0x74,
0x71,0x71,0x73,0x73,0x71,0x72,0x75,0x79,0x7c,0x7e,0x7f,0x84,0x87,0x8a,0x8b,0x8e,
0x8f,0x91,0x90,0x91,0x92,0x93,0x92,0x91,0x90,0x93,0x92,0x86,0x80,0x7e,0x7f,0x7d,
0x77,0x6e,0x6a,0x6c,0x6a,0x6b,0x6d,0x6f,0x71,0x73,0x75,0x7c,0x83,0x85,0x85,0x86,
0x88,0x8c,0x8c,0x88,0x85,0x84,0x82,0x7e,0x7b,0x78,0x76,0x74,0x71,0x71,0x72,0x73,
0x72,0x73,0x75,0x79,0x7d,0x7f,0x82,0x84,0x87,0x8a,0x8c,0x8e,0x8f,0x90,0x90,0x92,
0x92,0x92,0x91,0x91,0x8f,0x94,0x92,0x86,0x81,0x7e,0x7f,0x7d,0x78,0x6e,0x6b,0x6c,
0x6a,0x6c,0x6e,0x6f,0x70,0x73,0x74,0x7b,0x82,0x84,0x85,0x85,0x87,0x8a,0x8c,0x89,
0x86,0x84,0x81,0x7f,0x7c,0x79,0x77,0x74,0x71,0x70,0x72,0x73,0x74,0x73,0x75,0x79,
0x7d,0x81,0x82,0x85,0x88,0x8b,0x8e,0x90,0x91,0x92,0x93,0x93,0x93,0x93,0x94,0x93,
0x93,0x92,0x8a,0x83,0x7f,0x7d,0x7b,0x79,0x71,0x6a,0x6a,0x69,0x6a,0x6d,0x6e,0x6e,
0x71,0x74,0x79,0x7f,0x83,0x85,0x86,0x87,0x88,0x8b,0x8b,0x88,0x84,0x81,0x7e,0x7d,
0x7b,0x78,0x74,0x71,0x70,0x71,0x73,0x74,0x75,0x75,0x78,0x7c,0x80,0x82,0x84,0x86,
0x89,0x8c,0x8e,0x8f,0x91,0x91,0x90,0x91,0x92,0x93,0x92,0x90,0x91,0x90,0x88,0x83,
0x7f,0x7d,0x7b,0x78,0x6f,0x6c,0x6c,0x6a,0x6b,0x6c,0x6e,0x70,0x73,0x74,0x79,0x7f,
0x83,0x84,0x84,0x85,0x87,0x89,0x87,0x84,0x82,0x7f,0x7c,0x7a,0x78,0x77,0x75,0x73,
0x72,0x74,0x76,0x78,0x79,0x7a,0x7d,0x80,0x83,0x86,0x88,0x8a,0x8c,0x8d,0x8f,0x91,
0x92,0x92,0x91,0x91,0x91,0x93,0x94,0x91,0x89,0x83,0x80,0x7f,0x7d,0x78,0x71,0x6b,
0x6a,0x69,0x6b,0x6c,0x6d,0x6e,0x6f,0x73,0x78,0x7f,0x81,0x82,0x83,0x85,0x87,0x89,
0x88,0x85,0x82,0x7f,0x7e,0x7c,0x7a,0x78,0x75,0x73,0x72,0x74,0x76,0x77,0x77,0x79,
0x7c,0x7f,0x82,0x85,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x93,0x92,0x91,0x92,0x92,0x93,
0x93,0x91,0x8b,0x84,0x81,0x7f,0x7e,0x79,0x73,0x6d,0x6a,0x69,0x6a,0x6c,0x6d,0x6d,
0x6e,0x72,0x76,0x7c,0x80,0x82,0x82,0x83,0x85,0x88,0x88,0x86,0x83,0x80,0x7e,0x7d,
0x7c,0x7a,0x77,0x75,0x74,0x76,0x77,0x79,0x79,0x7b,0x7c,0x7f,0x83,0x86,0x89,0x8a,
0x8b,0x8c,0x90,0x92,0x92,0x90,0x90,0x90,0x91,0x92,0x91,0x90,0x8a,0x84,0x7f,0x7f,
0x7d,0x7b,0x75,0x6f,0x6b,0x6b,0x6c,0x6d,0x6e,0x6e,0x6f,0x71,0x75,0x7a,0x7e,0x80,
0x80,0x81,0x83,0x86,0x86,0x85,0x83,0x80,0x7f,0x7e,0x7d,0x7c,0x7a,0x78,0x77,0x78,
0x7a,0x7b,0x7c,0x7c,0x7e,0x82,0x85,0x87,0x89,0x8a,0x8c,0x8e,0x90,0x91,0x91,0x90,
0x90,0x8f,0x8f,0x90,0x8f,0x8c,0x88,0x82,0x7f,0x7d,0x7b,0x78,0x74,0x6f,0x6d,0x6d,
0x6d,0x6f,0x6f,0x70,0x71,0x73,0x76,0x7a,0x7e,0x7f,0x7f,0x80,0x82,0x83,0x84,0x83,
0x81,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7a,0x79,0x7a,0x7c,0x7e,0x7f,0x80,0x81,0x83,
0x85,0x89,0x8a,0x8b,0x8b,0x8c,0x8d,0x8e,0x8f,0x8f,0x8e,0x8d,0x8c,0x8b,0x89,0x88,
0x85,0x81,0x7e,0x7a,0x78,0x76,0x74,0x70,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x73,0x76,
0x78,0x7b,0x7d,0x7f,0x7f,0x80,0x80,0x81,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7e,
0x7e,0x7d,0x7d,0x7d,0x7f,0x81,0x83,0x84,0x84,0x86,0x87,0x89,0x8a,0x8b,0x8a,0x8b,
0x8b,0x8b,0x8b,0x8b,0x89,0x89,0x88,0x86,0x84,0x82,0x7f,0x7d,0x7b,0x78,0x77,0x75,
0x74,0x73,0x72,0x73,0x74,0x75,0x75,0x77,0x79,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,
0x83,0x83,0x85,0x86,0x88,0x88,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x87,0x87,0x86,
0x84,0x83,0x81,0x80,0x7e,0x7c,0x7a,0x79,0x78,0x78,0x77,0x76,0x75,0x76,0x77,0x78,
0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,
0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,0x80,0x81,0x83,0x84,0x85,0x85,0x86,0x85,0x86,
0x86,0x86,0x86,0x86,0x85,0x84,0x84,0x83,0x83,0x82,0x81,0x7f,0x7f,0x7e,0x7e,0x7d,
0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x7b,0x7d,0x7e,0x7f,0x7f,0x7f,
0x7f,0x80,0x80,0x81,0x80,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,
0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x84,0x84,0x84,0x85,0x84,0x84,0x84,0x83,
0x83,0x81,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,
0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,
0x80,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,
0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x7f,0x7f,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7d,0x7d,0x7e,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,
0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,0x81,0x81,
0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
0x7e,0x7e,0x7e,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,
0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,
0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,
0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,
0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,
0x80,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x80,
0x7f,0x7f,0x7f,0x7e,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,
0x80,0x80,0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x80,0x7f,0x80,0x80,0x81,0x80,0x80,
0x80,0x7f,0x80,0x80,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x81,0x7f,0x80,0x7e,0x7e,
0x7f,0x7e,0x81,0x7f,0x80,0x7e,0x7e,0x80,0x7e,0x81,0x7f,0x80,0x7e,0x7f,0x7f,0x7e,
0x80,0x7f,0x80,0x7f,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,0x80,0x7f,0x80,0x80,
0x82,0x80,0x81,0x80,0x80,0x80,0x7f,0x81,0x80,0x81,0x7f,0x7f,0x7f,0x7f,0x7f,0x81,
0x80,0x81,0x80,0x7f,0x7e,0x7f,0x7f,0x80,0x81,0x7f,0x81,0x7e,0x7f,0x80,0x7f,0x81,
0x80,0x80,0x7f,0x7f,0x7e,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x80,
0x80,0x7e,0x80,0x7f,0x80,0x80,0x80,0x81,0x7f,0x81,0x80,0x80,0x80,0x80,0x81,0x81,
0x7e,0x80,0x7e,0x7f,0x81,0x7f,0x82,0x7e,0x80,0x7e,0x7e,0x82,0x7e,0x82,0x7f,0x7e,
0x80,0x7c,0x81,0x7f,0x7f,0x80,0x7d,0x80,0x7c,0x81,0x7e,0x7f,0x80,0x7d,0x81,0x7d,
0x7f,0x81,0x7d,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7f,0x80,0x81,0x80,0x80,
0x7f,0x7f,0x80,0x7f,0x82,0x7e,0x82,0x7e,0x7f,0x80,0x7d,0x82,0x7e,0x82,0x7f,0x7f,
0x80,0x7e,0x80,0x7f,0x81,0x7f,0x7f,0x80,0x7c,0x80,0x7e,0x80,0x7f,0x80,0x7e,0x7d,
0x80,0x7e,0x80,0x80,0x7f,0x80,0x7d,0x80,0x7e,0x80,0x81,0x7f,0x82,0x7d,0x81,0x7c,
0x80,0x81,0x80,0x83,0x7e,0x7e,0x7d,0x7f,0x80,0x80,0x83,0x7f,0x7e,0x7f,0x7d,0x80,
0x81,0x81,0x81,0x7f,0x7d,0x7f,0x7e,0x81,0x84,0x80,0x81,0x7e,0x7c,0x7f,0x7e,0x83,
0x7f,0x82,0x7e,0x7e,0x7e,0x7d,0x82,0x80,0x82,0x7f,0x7f,0x7d,0x7e,0x7f,0x80,0x81,
0x82,0x7c,0x7f,0x7d,0x7f,0x80,0x7f,0x83,0x7e,0x81,0x7e,0x7f,0x80,0x82,0x80,0x81,
0x7f,0x7e,0x7e,0x7c,0x82,0x7e,0x81,0x81,0x7d,0x81,0x7e,0x7f,0x81,0x80,0x82,0x7d,
0x81,0x7e,0x7f,0x80,0x80,0x81,0x7f,0x82,0x7d,0x80,0x80,0x7f,0x82,0x7f,0x81,0x7e,
0x7e,0x82,0x7d,0x83,0x7d,0x80,0x7f,0x7e,0x80,0x7f,0x81,0x7e,0x7f,0x7e,0x7f,0x7e,
0x83,0x7f,0x82,0x7f,0x80,0x7e,0x80,0x82,0x7f,0x82,0x7e,0x81,0x7e,0x80,0x7f,0x81,
0x7f,0x81,0x80,0x7e,0x82,0x7d,0x81,0x7f,0x7f,0x81,0x7e,0x81,0x7f,0x7f,0x81,0x7e,
0x7f,0x80,0x7f,0x82,0x7e,0x81,0x80,0x7c,0x83,0x7d,0x81,0x7f,0x81,0x7f,0x7e,0x80,
0x7e,0x81,0x7e,0x83,0x7e,0x7e,0x81,0x7e,0x80,0x7e,0x82,0x80,0x7f,0x82,0x7e,0x81,
0x80,0x7f,0x80,0x7f,0x80,0x81,0x7f,0x80,0x7f,0x7f,0x80,0x81,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x7f,0x7f,0x83,0x7d,0x82,0x7e,0x80,0x7f,0x81,0x80,0x7f,0x82,0x7e,0x82,
0x7e,0x81,0x7e,0x84,0x7e,0x81,0x80,0x7d,0x81,0x7c,0x83,0x7e,0x81,0x80,0x7d,0x80,
0x7f,0x81,0x80,0x82,0x7e,0x80,0x80,0x7d,0x81,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x80,
0x81,0x7c,0x84,0x7d,0x7f,0x81,0x7c,0x84,0x7a,0x84,0x7c,0x82,0x80,0x7e,0x82,0x7c,
0x82,0x7e,0x7f,0x82,0x7e,0x7f,0x80,0x7d,0x81,0x7e,0x82,0x7d,0x81,0x7f,0x7e,0x82,
0x7c,0x82,0x7d,0x82,0x7d,0x81,0x7f,0x7e,0x82,0x7c,0x83,0x7c,0x83,0x7d,0x7f,0x7f,
0x7d,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7d,0x81,0x7e,0x81,0x7f,0x81,0x7c,0x81,
0x7f,0x80,0x80,0x7f,0x81,0x7d,0x81,0x7c,0x81,0x7f,0x80,0x80,0x81,0x7d,0x80,0x7f,
0x7e,0x82,0x7d,0x83,0x7c,0x81,0x7e,0x7e,0x82,0x7d,0x84,0x7c,0x82,0x7d,0x7f,0x80,
0x7d,0x83,0x7d,0x81,0x7e,0x7e,0x7f,0x7e,0x80,0x7f,0x80,0x80,0x7e,0x80,0x7f,0x80,
0x80,0x7f,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,0x82,0x7f,0x80,0x7e,0x7f,0x81,0x7d,
0x82,0x7c,0x82,0x7d,0x80,0x80,0x7d,0x82,0x7c,0x82,0x7d,0x81,0x7e,0x80,0x80,0x7f,
0x82,0x7d,0x81,0x7e,0x81,0x7d,0x82,0x7e,0x80,0x7f,0x7e,0x80,0x7e,0x80,0x80,0x7f,
0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x82,0x7e,0x80,0x7e,0x80,0x81,0x80,0x80,0x7f,
0x80,0x7f,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x80,0x7e,0x81,0x7e,0x80,0x80,
0x7e,0x81,0x7e,0x80,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x80,0x80,0x7f,
0x7f,0x80,0x7d,0x81,0x7f,0x80,0x80,0x7e,0x81,0x7e,0x81,0x7f,0x80,0x80,0x7f,0x81,
0x7f,0x7f,0x81,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x81,0x80,0x80,
0x81,0x7e,0x81,0x7e,0x81,0x80,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7d,0x82,0x7e,0x7f,
0x81,0x7d,0x81,0x7f,0x81,0x80,0x7f,0x82,0x7e,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,
0x82,0x7c,0x81,0x7e,0x81,0x7f,0x81,0x80,0x7e,0x80,0x7e,0x82,0x7e,0x80,0x7f,0x80,
0x80,0x80,0x81,0x7e,0x81,0x7e,0x80,0x80,0x7e,0x82,0x7d,0x81,0x7f,0x80,0x7f,0x80,
0x7f,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x81,0x7d,0x82,
0x7d,0x82,0x7f,0x80,0x81,0x7c,0x82,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7e,0x81,
0x7f,0x81,0x7f,0x81,0x7e,0x80,0x7f,0x7f,0x81,0x80,0x81,0x7f,0x80,0x7f,0x7e,0x82,
0x7e,0x80,0x80,0x7e,0x81,0x7d,0x81,0x7e,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x80,
0x80,0x80,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x7e,0x81,0x7e,0x7e,0x80,0x7e,0x7e,0x81,
0x7f,0x80,0x80,0x7f,0x80,0x7e,0x82,0x7f,0x80,0x80,0x7e,0x80,0x7e,0x80,0x7f,0x80,
0x81,0x7e,0x7f,0x7e,0x80,0x7f,0x82,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x82,0x7e,0x82,
0x7d,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x81,0x7e,0x81,0x7f,
0x80,0x7f,0x7e,0x80,0x7f,0x80,0x80,0x80,0x7e,0x80,0x7e,0x81,0x7e,0x80,0x80,0x7e,
0x80,0x7d,0x82,0x7d,0x81,0x80,0x80,0x81,0x7d,0x83,0x7d,0x81,0x7f,0x7f,0x80,0x7e,
0x81,0x7f,0x80,0x80,0x7f,0x81,0x7e,0x80,0x81,0x7e,0x82,0x7d,0x80,0x7f,0x7f,0x80,
0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x80,0x7e,0x82,0x7c,0x82,0x7d,0x81,
0x81,0x7f,0x81,0x7d,0x81,0x7d,0x81,0x7f,0x81,0x7f,0x80,0x7f,0x7e,0x80,0x7e,0x82,
0x7f,0x81,0x7f,0x80,0x7f,0x7e,0x81,0x7f,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x82,0x7f,
0x80,0x81,0x7e,0x81,0x7e,0x81,0x7e,0x82,0x7e,0x80,0x80,0x7e,0x82,0x7c,0x84,0x7d,
0x81,0x80,0x80,0x80,0x7f,0x81,0x7e,0x81,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x80,
0x7e,0x80,0x7f,0x7f,0x81,0x7f,0x80,0x80,0x7e,0x82,0x7c,0x83,0x7e,0x81,0x80,0x7f,
0x81,0x7e,0x82,0x7e,0x81,0x7e,0x82,0x7d,0x81,0x7e,0x80,0x81,0x7e,0x83,0x7e,0x81,
0x7e,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x81,0x7f,0x81,0x7f,
0x81,0x7e,0x81,0x80,0x7e,0x82,0x7d,0x82,0x7e,0x81,0x80,0x7d,0x81,0x7d,0x80,0x7f,
0x80,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x81,0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x81,0x7f,
0x81,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x7f,0x81,0x80,0x7f,0x7f,0x80,0x80,0x7e,0x81,
0x80,0x7e,0x7f,0x7f,0x80,0x7e,0x82,0x7e,0x81,0x7f,0x7f,0x80,0x7d,0x82,0x7d,0x82,
0x7f,0x7f,0x80,0x7d,0x81,0x7e,0x81,0x7f,0x7f,0x80,0x7d,0x80,0x7f,0x81,0x7e,0x81,
0x80,0x7e,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7e,0x81,0x7d,0x81,0x7d,0x81,0x7f,
0x7f,0x81,0x7d,0x80,0x7e,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x81,0x7e,0x80,0x7e,0x81,0x7f,
0x7f,0x81,0x7d,0x81,0x7d,0x81,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x81,0x7f,0x80,0x7f,
0x80,0x80,0x7f,0x81,0x7f,0x80,0x7e,0x80,0x7e,0x80,0x80,0x7e,0x80,0x7f,0x80,0x7e,
0x81,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x7f,0x80,
0x7e,0x80,0x7f,0x7e,0x81,0x7f,0x80,0x7e,0x80,0x7e,0x7f,0x80,0x7e,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x80,
0x7e,0x81,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x81,0x7f,0x7f,0x81,0x7e,0x80,0x7f,0x7f,
0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x80,0x7f,0x81,0x7f,0x80,0x81,
0x7e,0x81,0x7e,0x81,0x7e,0x81,0x80,0x7f,0x80,0x7f,0x7f,0x81,0x7f,0x81,0x7f,0x80,
0x80,0x7e,0x81,0x7e,0x80,0x80,0x80,0x7f,0x7f,0x81,0x7f,0x7f,0x82,0x7e,0x81,0x7f,
0x80,0x7f,0x80,0x81,0x7e,0x82,0x7e,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,
0x80,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x81,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x80,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x80,0x7e,0x80,0x80,0x7f,0x81,0x7f,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,
0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x81,0x7f,0x80,0x7f,
0x81,0x7f,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x80,
0x7f,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x7e,0x7f,0x80,0x7f,
0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x7e,0x7f,0x7f,
0x7f,0x80,0x80,0x80,0x7e,0x80,0x7e,0x80,0x80,0x80,0x80,0x7e,0x80,0x7e,0x7f,0x80,
0x7f,0x80,0x80,0x7e,0x80,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x7f,0x7f,0x80,0x7e,0x80,
0x7f,0x80,0x7f,0x7e,0x80,0x7d,0x81,0x7e,0x7f,0x81,0x7e,0x80,0x7f,0x80,0x80,0x7e,
0x81,0x7d,0x81,0x7f,0x7f,0x80,0x7e,0x81,0x7d,0x81,0x7e,0x80,0x80,0x7f,0x80,0x7f,
0x81,0x7e,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,
0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x80,0x7f,
0x81,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,0x7f,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7e,0x81,0x7f,0x82,0x7e,0x80,0x7f,
0x7f,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7e,0x81,0x7f,0x80,0x80,0x7f,0x80,0x7e,
0x81,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,
0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,
0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x81,
0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x81,0x7e,0x81,0x7e,0x80,0x7e,0x80,0x80,
0x7f,0x81,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7e,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x81,0x7e,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7e,0x81,0x7e,0x81,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x7e,0x80,0x7e,0x80,0x7e,0x80,0x7f,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x7e,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x81,
0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x81,0x7e,0x80,0x7e,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x81,
0x7e,0x81,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x81,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x81,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,
0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x80,0x7f,0x7f,0x80,
0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,
0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x7f,
0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x80,
0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x80,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,
0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x7f,0x80,0x7f,0x80,0x7f,
0x80,0x7f,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,
0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x7f,0x80,0x80,0x80
};
const byte soundWow[] ={
0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x81,0x80,0x80,0x80,0x7f,
0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,
0x80,0x7e,0x80,0x7e,0x81,0x78,0x79,0x82,0x7b,0x83,0x82,0x84,0x80,0x82,0x7f,0x80,
0x7e,0x80,0x7e,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,
0x7f,0x7f,0x7f,0x7f,0x7f,0x7a,0x76,0x7e,0x7a,0x80,0x81,0x86,0x83,0x84,0x81,0x80,
0x7d,0x7f,0x7f,0x80,0x7e,0x7d,0x80,0x80,0x83,0x83,0x85,0x83,0x82,0x81,0x75,0x7e,
0x79,0x7d,0x7f,0x83,0x82,0x84,0x82,0x80,0x80,0x7d,0x80,0x7c,0x80,0x7f,0x80,0x80,
0x81,0x7f,0x7f,0x7e,0x7e,0x80,0x7f,0x81,0x7f,0x81,0x7f,0x80,0x7f,0x81,0x7f,0x81,
0x80,0x81,0x80,0x81,0x80,0x81,0x81,0x80,0x7e,0x7f,0x7e,0x7f,0x81,0x80,0x81,0x7f,
0x80,0x7e,0x7f,0x7e,0x80,0x7e,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,
0x7f,0x81,0x7f,0x7f,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x81,
0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x81,0x80,
0x80,0x7f,0x7f,0x80,0x80,0x7f,0x82,0x7f,0x81,0x7f,0x80,0x7f,0x7f,0x7f,0x80,0x7f,
0x7f,0x80,0x7e,0x80,0x7e,0x81,0x7f,0x81,0x7f,0x81,0x80,0x7f,0x80,0x7e,0x7f,0x7f,
0x7f,0x7e,0x7e,0x7f,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x80,0x81,
0x7f,0x80,0x7f,0x7e,0x7f,0x81,0x7f,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
0x7f,0x7f,0x7f,0x7e,0x80,0x7f,0x80,0x80,0x7e,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x80,
0x80,0x81,0x80,0x81,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7f,0x7e,0x80,0x7e,0x80,0x80,
0x7f,0x81,0x80,0x81,0x81,0x81,0x80,0x81,0x7e,0x80,0x7f,0x7d,0x7f,0x7d,0x7e,0x7e,
0x7e,0x7f,0x7e,0x7f,0x80,0x81,0x81,0x82,0x83,0x81,0x81,0x81,0x7e,0x7f,0x7e,0x7d,
0x7d,0x7d,0x7b,0x7d,0x7b,0x7e,0x7e,0x81,0x82,0x84,0x88,0x89,0x8a,0x88,0x86,0x81,
0x7c,0x7a,0x75,0x75,0x75,0x74,0x76,0x77,0x78,0x7a,0x7c,0x82,0x88,0x8f,0x97,0x9b,
0x9d,0x98,0x8d,0x83,0x77,0x6e,0x63,0x60,0x61,0x5e,0x68,0x6f,0x79,0x85,0x8e,0x96,
0x9d,0xa2,0xa5,0xa8,0x9c,0x8f,0x7f,0x6a,0x4e,0x4e,0x46,0x4e,0x68,0x77,0x8c,0x99,
0x99,0x97,0x90,0x8f,0x91,0x99,0x9c,0x97,0x8c,0x7e,0x71,0x59,0x58,0x58,0x5b,0x6f,
0x7c,0x87,0x8f,0x8e,0x8c,0x8d,0x8f,0x96,0xa0,0xa5,0x98,0x8a,0x76,0x64,0x55,0x52,
0x5b,0x65,0x74,0x84,0x8c,0x8e,0x8c,0x8a,0x8a,0x8f,0x99,0xa4,0xa5,0x98,0x82,0x71,
0x5a,0x4c,0x52,0x5c,0x6c,0x7f,0x8c,0x90,0x8d,0x88,0x85,0x8a,0x94,0xa2,0xaa,0xa4,
0x8d,0x75,0x60,0x46,0x49,0x53,0x63,0x7e,0x8e,0x95,0x95,0x8a,0x83,0x84,0x8d,0x9b,
0xad,0xa9,0x95,0x7e,0x61,0x4b,0x44,0x4d,0x64,0x7a,0x8f,0x98,0x92,0x89,0x83,0x82,
0x8c,0x9f,0xad,0xaa,0x95,0x7a,0x5e,0x46,0x43,0x55,0x68,0x82,0x95,0x96,0x8f,0x84,
0x7d,0x83,0x91,0xa2,0xb0,0xa5,0x90,0x70,0x59,0x43,0x4a,0x5e,0x74,0x8c,0x96,0x95,
0x87,0x7e,0x7d,0x86,0x9a,0xad,0xaa,0x98,0x7c,0x5b,0x4c,0x44,0x5a,0x75,0x8b,0x9a,
0x99,0x89,0x79,0x78,0x7e,0x91,0xaa,0xad,0x9c,0x80,0x5f,0x47,0x41,0x56,0x74,0x90,
0xa2,0xa1,0x8f,0x7b,0x74,0x7c,0x8e,0xaa,0xaa,0x99,0x7f,0x56,0x43,0x3f,0x58,0x79,
0x97,0xa7,0xa2,0x8f,0x76,0x74,0x7d,0x95,0xaf,0xa6,0x95,0x71,0x47,0x3b,0x40,0x5f,
0x86,0xa3,0xa9,0x9f,0x89,0x76,0x7b,0x8c,0xa3,0xb1,0x9e,0x80,0x59,0x35,0x38,0x4e,
0x73,0x99,0xab,0xa2,0x8f,0x7b,0x76,0x89,0xa5,0xbb,0xb2,0x90,0x67,0x37,0x23,0x3a,
0x60,0x8d,0xad,0xaf,0x96,0x7c,0x6f,0x7a,0x9a,0xbc,0xc5,0xa1,0x7f,0x4d,0x1f,0x30,
0x58,0x7c,0xa2,0xb3,0x94,0x78,0x6c,0x73,0x91,0xb7,0xcd,0xad,0x87,0x5a,0x29,0x2a,
0x54,0x7c,0x9d,0xb0,0x9a,0x75,0x66,0x6f,0x8b,0xb1,0xcb,0xb1,0x84,0x5d,0x2e,0x31,
0x57,0x87,0xa2,0xad,0x98,0x75,0x61,0x6e,0x8c,0xac,0xc3,0xb1,0x7d,0x55,0x35,0x31,
0x57,0x8e,0xa9,0xaa,0x9f,0x7b,0x63,0x71,0x90,0xa5,0xbd,0xaa,0x73,0x50,0x36,0x35,
0x5a,0x94,0xa9,0xa7,0x9c,0x7b,0x67,0x76,0x99,0xad,0xb9,0xa1,0x6b,0x48,0x2f,0x3a,
0x65,0x96,0xa9,0xa2,0x93,0x79,0x6d,0x82,0xa3,0xb2,0xba,0x8e,0x5e,0x3e,0x2d,0x44,
0x74,0x9e,0xa5,0x9c,0x89,0x76,0x73,0x8e,0xae,0xb6,0xae,0x7b,0x53,0x39,0x36,0x56,
0x82,0x9d,0x9c,0x90,0x80,0x79,0x81,0xa1,0xb2,0xb7,0x9f,0x66,0x45,0x37,0x47,0x67,
0x8d,0x9c,0x90,0x7f,0x7c,0x80,0x8d,0xaa,0xb7,0xb1,0x8a,0x57,0x47,0x3d,0x51,0x73,
0x95,0x96,0x84,0x7f,0x7e,0x80,0x95,0xb6,0xb7,0xae,0x79,0x50,0x3b,0x3e,0x60,0x80,
0x9e,0x95,0x81,0x77,0x7d,0x83,0xa4,0xb8,0xb9,0xa4,0x64,0x47,0x39,0x46,0x6a,0x8b,
0x9a,0x89,0x7a,0x7a,0x83,0x8c,0xac,0xb7,0xb9,0x97,0x57,0x4c,0x3c,0x48,0x72,0x91,
0x90,0x82,0x7e,0x7e,0x82,0x95,0xb2,0xb3,0xb4,0x8d,0x57,0x45,0x41,0x51,0x70,0x8f,
0x8e,0x7d,0x7d,0x89,0x87,0x97,0xb3,0xb7,0xaa,0x77,0x53,0x4b,0x45,0x5e,0x82,0x8f,
0x7f,0x78,0x7e,0x83,0x8b,0xa7,0xb6,0xb5,0xa1,0x5f,0x4f,0x4c,0x4d,0x6d,0x8d,0x8e,
0x73,0x73,0x7e,0x82,0x91,0xb4,0xb4,0xb3,0x90,0x55,0x4b,0x49,0x57,0x74,0x8f,0x88,
0x74,0x7a,0x88,0x87,0x98,0xb5,0xb7,0xa8,0x72,0x53,0x4b,0x4b,0x67,0x85,0x91,0x7f,
0x72,0x78,0x84,0x8b,0xa6,0xb6,0xba,0x97,0x5b,0x54,0x48,0x55,0x76,0x91,0x86,0x70,
0x78,0x81,0x84,0x95,0xb2,0xad,0xad,0x7f,0x54,0x4c,0x53,0x64,0x7c,0x8e,0x83,0x75,
0x7b,0x8e,0x8d,0x9d,0xac,0xb2,0x97,0x5d,0x50,0x52,0x5a,0x71,0x8d,0x8d,0x72,0x70,
0x86,0x8c,0x91,0xae,0xb9,0xac,0x74,0x50,0x51,0x4a,0x63,0x83,0x95,0x7f,0x6e,0x7e,
0x8c,0x88,0x9f,0xb6,0xb2,0x97,0x5b,0x51,0x4a,0x5a,0x74,0x8d,0x8a,0x74,0x72,0x88,
0x8f,0x90,0xac,0xb5,0xac,0x70,0x50,0x57,0x4d,0x63,0x84,0x92,0x7a,0x6f,0x80,0x8d,
0x88,0xa0,0xb8,0xae,0x92,0x65,0x56,0x4d,0x53,0x74,0x88,0x84,0x76,0x79,0x86,0x8c,
0x90,0xab,0xb5,0xad,0x81,0x56,0x52,0x4f,0x5b,0x7a,0x8c,0x7d,0x74,0x84,0x90,0x8a,
0x98,0xb3,0xb3,0x97,0x60,0x55,0x55,0x58,0x71,0x8c,0x85,0x6b,0x75,0x89,0x8e,0x8f,
0xad,0xb3,0xa7,0x77,0x5a,0x57,0x50,0x65,0x7f,0x8b,0x7d,0x73,0x81,0x8d,0x86,0x99,
0xb1,0xb5,0x8e,0x5d,0x59,0x54,0x58,0x74,0x8d,0x85,0x70,0x7b,0x91,0x8c,0x8f,0xa7,
0xb0,0x9c,0x6c,0x56,0x5c,0x5e,0x6b,0x81,0x8a,0x73,0x6d,0x8b,0x96,0x8f,0x9e,0xaf,
0xac,0x82,0x53,0x58,0x5a,0x5e,0x73,0x90,0x84,0x6d,0x7e,0x99,0x90,0x92,0xab,0xae,
0x93,0x5e,0x58,0x5d,0x5a,0x6a,0x85,0x86,0x71,0x74,0x92,0x99,0x8d,0xa2,0xb1,0xa6,
0x72,0x54,0x5c,0x5c,0x62,0x7b,0x88,0x77,0x6d,0x87,0x9d,0x94,0x9a,0xac,0xab,0x8a,
0x5a,0x57,0x5d,0x5d,0x70,0x89,0x83,0x6e,0x75,0x95,0x98,0x94,0xa7,0xb1,0xa0,0x63,
0x4f,0x60,0x60,0x65,0x7f,0x8a,0x73,0x68,0x8a,0xa1,0x94,0x9b,0xad,0xa9,0x78,0x55,
0x60,0x63,0x5f,0x73,0x88,0x79,0x6a,0x7d,0x9e,0x98,0x98,0xa9,0xb1,0x91,0x5c,0x54,
0x61,0x5f,0x69,0x85,0x87,0x6d,0x6d,0x90,0x9d,0x95,0xa3,0xaf,0xa2,0x6d,0x51,0x61,
0x63,0x65,0x79,0x8a,0x77,0x66,0x7d,0x9e,0x99,0x9c,0xab,0xad,0x88,0x55,0x57,0x67,
0x65,0x6b,0x85,0x83,0x69,0x6b,0x94,0x9f,0x94,0xa4,0xb2,0x9f,0x65,0x54,0x65,0x63,
0x64,0x7e,0x89,0x74,0x64,0x81,0x9c,0x97,0x9e,0xaf,0xad,0x83,0x55,0x54,0x61,0x64,
0x74,0x86,0x83,0x6b,0x73,0x94,0x9d,0x98,0xa6,0xad,0x99,0x64,0x51,0x60,0x64,0x69,
0x7c,0x88,0x75,0x69,0x85,0x9d,0x97,0x9c,0xaf,0xab,0x79,0x4f,0x59,0x66,0x65,0x74,
0x8b,0x7f,0x65,0x74,0x9a,0x9c,0x97,0xa9,0xaf,0x90,0x5f,0x54,0x63,0x66,0x6c,0x7f,
0x84,0x70,0x6a,0x8a,0x9f,0x98,0x9e,0xaf,0xa5,0x75,0x50,0x5a,0x62,0x6a,0x7a,0x88,
0x7a,0x68,0x78,0x99,0x9e,0x9d,0xa7,0xab,0x8f,0x5a,0x4f,0x62,0x68,0x6f,0x7f,0x85,
0x70,0x6c,0x8c,0xa0,0x9c,0xa2,0xac,0xa0,0x6c,0x50,0x5c,0x66,0x6a,0x7a,0x85,0x77,
0x67,0x7f,0x9c,0x9c,0x9d,0xad,0xae,0x85,0x56,0x55,0x60,0x62,0x70,0x84,0x83,0x6d,
0x71,0x91,0x9d,0x97,0xa2,0xb2,0x9e,0x6a,0x50,0x5e,0x63,0x68,0x7a,0x88,0x76,0x67,
0x7f,0x9e,0x9b,0x9c,0xaa,0xa9,0x83,0x55,0x58,0x69,0x6b,0x6f,0x80,0x80,0x6b,0x6f,
0x92,0x9f,0x99,0xa3,0xae,0x9a,0x66,0x51,0x5f,0x6c,0x6f,0x7a,0x82,0x73,0x69,0x82,
0x9c,0x9a,0x9c,0xab,0xa5,0x7e,0x59,0x57,0x66,0x6c,0x7a,0x82,0x7a,0x6b,0x74,0x91,
0x9b,0x99,0xa3,0xaa,0x98,0x6b,0x54,0x60,0x69,0x6c,0x77,0x81,0x77,0x70,0x84,0x9a,
0x98,0x99,0xa9,0xa6,0x83,0x5b,0x58,0x64,0x67,0x71,0x81,0x7f,0x6e,0x75,0x90,0x9b,
0x97,0xa2,0xae,0x9c,0x6b,0x56,0x5e,0x66,0x69,0x79,0x83,0x76,0x6d,0x84,0x99,0x98,
0x99,0xa8,0xaa,0x88,0x5f,0x58,0x65,0x63,0x6b,0x7c,0x82,0x72,0x76,0x8e,0x9b,0x94,
0x9e,0xad,0xa0,0x74,0x57,0x61,0x66,0x66,0x73,0x82,0x78,0x6d,0x80,0x98,0x97,0x95,
0xa6,0xaa,0x8f,0x66,0x59,0x63,0x66,0x6b,0x78,0x80,0x75,0x73,0x89,0x99,0x96,0x9a,
0xa8,0xa1,0x81,0x5f,0x5e,0x65,0x67,0x6e,0x78,0x7b,0x77,0x7e,0x91,0x96,0x95,0xa1,
0xa6,0x99,0x76,0x5b,0x5b,0x65,0x6e,0x74,0x7b,0x7b,0x77,0x82,0x93,0x99,0x9c,0xa4,
0xa6,0x8b,0x62,0x58,0x62,0x67,0x6d,0x76,0x7d,0x7a,0x7d,0x8d,0x96,0x96,0x9d,0xa6,
0x9f,0x7b,0x5a,0x59,0x64,0x68,0x70,0x7b,0x7f,0x7a,0x82,0x92,0x99,0x99,0xa1,0xa0,
0x90,0x69,0x5b,0x60,0x68,0x6e,0x72,0x7a,0x7d,0x7d,0x88,0x93,0x99,0x9f,0xa2,0xa0,
0x7f,0x5e,0x58,0x64,0x6c,0x6e,0x77,0x7e,0x79,0x7f,0x8f,0x9a,0x9b,0x9f,0xa2,0x97,
0x72,0x59,0x5c,0x67,0x6b,0x70,0x7e,0x80,0x79,0x83,0x94,0x99,0x99,0x9e,0xa3,0x88,
0x61,0x5b,0x68,0x6e,0x6c,0x73,0x7c,0x79,0x79,0x8a,0x99,0x9c,0x9f,0xa2,0x9b,0x7a,
0x60,0x5e,0x63,0x6b,0x6f,0x79,0x7d,0x7c,0x81,0x8d,0x95,0x9b,0xa0,0xa2,0x93,0x72,
0x5b,0x5f,0x66,0x6a,0x70,0x7b,0x7f,0x7b,0x82,0x91,0x99,0x9d,0x9f,0xa1,0x88,0x64,
0x5a,0x65,0x6c,0x6c,0x75,0x7d,0x79,0x79,0x8a,0x97,0x9c,0x9e,0xa6,0x9c,0x79,0x5d,
0x5d,0x66,0x6a,0x6f,0x79,0x7f,0x79,0x7e,0x8e,0x98,0x97,0x9b,0xa1,0x98,0x74,0x5c,
0x60,0x68,0x6a,0x6d,0x7a,0x7f,0x7b,0x82,0x92,0x9a,0x9d,0x9e,0xa2,0x8d,0x6b,0x5d,
0x61,0x69,0x6c,0x72,0x7b,0x7c,0x7c,0x87,0x94,0x98,0x99,0xa0,0xa1,0x84,0x63,0x5b,
0x66,0x6a,0x6e,0x76,0x7d,0x7a,0x7b,0x8a,0x97,0x9a,0x9c,0xa0,0x9a,0x7b,0x60,0x5f,
0x68,0x6c,0x6c,0x75,0x7e,0x7d,0x7f,0x8c,0x98,0x9a,0x9c,0xa0,0x98,0x75,0x5b,0x5f,
0x69,0x6c,0x6f,0x7a,0x7e,0x79,0x7e,0x91,0x9b,0x9e,0x9d,0xa0,0x8f,0x6b,0x5c,0x62,
0x6b,0x6d,0x70,0x7a,0x7d,0x7b,0x85,0x92,0x9a,0x9a,0x9d,0x9e,0x8c,0x68,0x5e,0x67,
0x68,0x66,0x70,0x7f,0x7f,0x7c,0x89,0x96,0x99,0x9d,0xa0,0x9d,0x7d,0x60,0x61,0x69,
0x6a,0x6b,0x75,0x7d,0x7b,0x7e,0x8b,0x94,0x99,0x9c,0xa2,0x9c,0x7b,0x5f,0x5c,0x66,
0x6b,0x70,0x79,0x7d,0x79,0x80,0x8f,0x97,0x99,0x9e,0xa0,0x92,0x72,0x64,0x66,0x67,
0x67,0x6d,0x7a,0x7d,0x7b,0x83,0x90,0x96,0x9b,0xa1,0xa2,0x90,0x6f,0x5f,0x63,0x67,
0x6c,0x73,0x7b,0x79,0x78,0x85,0x92,0x96,0x9a,0xa2,0xa4,0x8b,0x6c,0x5f,0x63,0x65,
0x6b,0x76,0x7b,0x77,0x7b,0x88,0x93,0x95,0x9a,0xa2,0xa3,0x89,0x69,0x5f,0x62,0x66,
0x6e,0x77,0x7b,0x77,0x7a,0x86,0x92,0x98,0x9d,0xa4,0xa2,0x87,0x66,0x5d,0x61,0x65,
0x6f,0x78,0x7c,0x77,0x7a,0x89,0x92,0x94,0x9b,0xa6,0xa2,0x86,0x68,0x5e,0x5f,0x65,
0x70,0x79,0x7a,0x78,0x7c,0x89,0x90,0x95,0x9f,0xa5,0x9f,0x85,0x65,0x5f,0x63,0x65,
0x6c,0x79,0x7c,0x77,0x7b,0x8c,0x92,0x95,0x9b,0xa8,0xa2,0x82,0x65,0x61,0x62,0x65,
0x6e,0x79,0x7a,0x77,0x7d,0x8b,0x91,0x94,0x9c,0xa7,0xa7,0x87,0x64,0x59,0x5e,0x66,
0x6e,0x7a,0x7f,0x78,0x79,0x88,0x91,0x93,0x99,0xa6,0xa8,0x89,0x66,0x5f,0x61,0x61,
0x68,0x78,0x7f,0x7a,0x7b,0x88,0x8f,0x92,0x99,0xa7,0xa7,0x8f,0x6b,0x5d,0x5d,0x61,
0x69,0x75,0x7e,0x7b,0x7a,0x86,0x91,0x93,0x98,0xa4,0xad,0x97,0x6d,0x5a,0x57,0x5d,
0x66,0x77,0x84,0x80,0x79,0x82,0x8c,0x90,0x95,0xa4,0xac,0x9d,0x72,0x5a,0x58,0x5b,
0x63,0x75,0x83,0x82,0x79,0x82,0x8d,0x8f,0x92,0xa2,0xb1,0xa6,0x7a,0x58,0x53,0x56,
0x60,0x74,0x87,0x86,0x7b,0x7c,0x89,0x8d,0x8f,0x9d,0xb0,0xae,0x89,0x5c,0x52,0x53,
0x5b,0x6c,0x83,0x8a,0x80,0x7c,0x87,0x8a,0x8b,0x98,0xaf,0xb6,0x93,0x62,0x51,0x52,
0x56,0x66,0x83,0x8f,0x81,0x76,0x81,0x8a,0x89,0x92,0xad,0xb9,0xa0,0x71,0x55,0x50,
0x4f,0x5e,0x7b,0x90,0x88,0x7a,0x7a,0x83,0x83,0x8c,0xa6,0xb8,0xb6,0x89,0x59,0x4d,
0x4f,0x57,0x6d,0x89,0x93,0x82,0x78,0x7c,0x84,0x85,0x95,0xaf,0xbf,0xa8,0x71,0x50,
0x4d,0x52,0x5e,0x7a,0x91,0x8c,0x79,0x77,0x80,0x83,0x83,0x9d,0xba,0xc1,0x99,0x5b,
0x47,0x4e,0x57,0x6c,0x8b,0x92,0x7f,0x73,0x7b,0x81,0x82,0x89,0xa3,0xbb,0xbf,0x93,
0x55,0x45,0x4b,0x5c,0x7d,0x98,0x8b,0x6d,0x68,0x7d,0x85,0x85,0x88,0x9f,0xb6,0xc0,
0x9b,0x5c,0x42,0x49,0x5b,0x7a,0x9b,0x98,0x6f,0x5e,0x73,0x85,0x81,0x7e,0x97,0xb4,
0xc7,0xb4,0x74,0x45,0x3f,0x4d,0x70,0x9a,0xa5,0x7d,0x5f,0x69,0x7d,0x7e,0x7a,0x86,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80
};
void setup() {
attachInterrupt(INTIR, irInt, CHANGE);
analogWriteFrequency(16000);
pinMode(LED1_M1F, OUTPUT);
pinMode(LED2_M0F, OUTPUT);
pinMode(LED3_M0B, OUTPUT);
pinMode(LED4_M1B, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(4, OUTPUT);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
digitalWrite(LED1_M1F, LED_OFF);
digitalWrite(LED2_M0F, LED_OFF);
digitalWrite(LED3_M0B, LED_OFF);
digitalWrite(LED4_M1B, LED_OFF);
digitalWrite(LED5, LED_OFF);
digitalWrite(LED6, LED_OFF);
randomSeed((unsigned int)analogRead(BATT));
Serial.begin(115200);
Wire.begin();
Wire.beginTransmission(0x68); //Gyro sensor
Wire.write(0x6B); // Power management register
Wire.write(0); // wake up MPU-6050
Wire.endTransmission(true);
SD2.begin(27);
checkVoltage();
selectMode();
pinMode(SW1, INPUT);
pinMode(SW2, INPUT);
pinMode(SOUTPIN, OUTPUT);
analogWrite(SOUTPIN, 0);
delay(100); //allow gyro to stabilize
readEEPROMbal();
readEEPROMadhoc();
resetPara();
resetVar();
digitalWrite(LED6, LED_ON);
calibGyro();
digitalWrite(LED6, LED_OFF);
soundStart(soundGreet, sizeof(soundGreet), 70);
openFiles();
while (soundBusy);
if (demoMode==2) soundStartSD(fDemo, 70);
if (debug) soundStartSD(fDebug, 70);
}
void loop(){
time0=micros();
getIR();
getGyro();
pendulum();
servoHead();
randomPlay();
if (pendPhase!=-1) monitorVoltage();
counter += 1;
if (counter >= 100) {
counter = 0;
counterSec++;
if (debug) digitalWrite(LED6, LED_ON);
if (serialMonitor) sendSerial();
digitalWrite(LED6, LED_OFF);
}
while (micros() - time0 < pendInterval);
}
void pendulum() {
switch (pendPhase) {
case -1: //wait until upright
calcTarget();
if (upright()) {
pendPhase =0;
digitalWrite(LED5, LED_OFF);
}
break;
case 0: //calib Acc
resetVar();
demoDelayCounter=0;
demoPhase=0;
delay(1300);
if (!upright()) pendPhase=2;
else {
digitalWrite(LED6, LED_ON);
calibAcc();
digitalWrite(LED6, LED_OFF);
if (upright()) pendPhase=1;
else pendPhase=2;
}
break;
case 1: //run
if (!standing()) {
if (musicPlaying) soundStop=true;
soundStart(soundWow, sizeof(soundWow), 70);
pendPhase=6;
}
else {
if (demoMode==2) demo8();
calcTarget();
drive();
if (counterOverSpd > maxOverSpd) {
if (musicPlaying) soundStop=true;
delay(1300);
pendPhase=2;
}
}
break;
case 2: //wait until upright
if (upright()) pendPhase=0;
break;
case 6: //fell
if (laid() && !soundBusy) pendPhase=8;
break;
case 8:
if (soundSD) soundStartSD(fTipover, 70);
pendPhase=2;
break;
}
}
void openFiles() {
fGreet=SD2.open("kon168m.wav");
if (!fGreet) {
soundSD=false;
return;
}
soundSD=true;
fStop=SD2.open("tom168m.wav");
fRight=SD2.open("mig168m.wav");
fLeft=SD2.open("hid168m.wav");
fForward=SD2.open("sus168m.wav");
fBack=SD2.open("bac168m.wav");
fSpin=SD2.open("maw168m.wav");
fAccel=SD2.open("kaso168m.wav");
fTipover=SD2.open("koro168m.wav");
fDemo=SD2.open("demo168m.wav");
fDebug=SD2.open("debu168m.wav");
fBattery=SD2.open("denc168m.wav");
fReplace=SD2.open("kouk168m.wav");
voiceFile[0]=SD2.open(soundVoice[0]);
if (voiceFile[0]) {
if (serialMonitor) Serial.println(soundVoice[0]);
minVoiceFile=0;
}
for (int i=1; i<sizeof(soundVoice)/2; i++) {
voiceFile[i]=SD2.open(soundVoice[i]);
if (voiceFile[i]) {
if (serialMonitor) Serial.println(soundVoice[i]);
maxVoiceFile=i;
}
}
if (minVoiceFile==-1 && maxVoiceFile>=1) minVoiceFile=1;
for (int i=0; i<sizeof(soundMusic)/2; i++) {
musicFile[i]=SD2.open(soundMusic[i]);
if (musicFile[i]) {
if (serialMonitor) Serial.println(soundMusic[i]);
minMusicFile=0;
maxMusicFile=i;
}
}
}
void randomPlay() {
if (!randomSoundOn || minVoiceFile==-1) return;
switch (soundPhase) {
case 1:
if (!soundBusy) {
counterSec0=counterSec;
soundInterval=(int)random(MINSINTERVAL, MAXSINTERVAL+1);
soundPhase=2;
}
break;
case 2:
if (counterSec-counterSec0>soundInterval) {
soundId=random(minVoiceFile, maxVoiceFile+1);
soundStartSD(voiceFile[soundId], 10);
if (soundId==0) {
if (minMusicFile!=-1 && demoMode==0) soundPhase=3;
else soundPhase=1;
}
else soundPhase=1;
}
break;
case 3:
if (!soundBusy) {
musicPlaying=true;
soundStartSD(musicFile[random(minMusicFile, maxMusicFile+1)], 10);
soundPhase=1;
}
break;
}
}
void servoHead() {
switch(servoPhase) {
case 1:
servoDrive();
if (servoComplete) {
servoComplete=false;
servoPhase=2;
}
break;
case 2:
servoContinue(90.0, 1.0);
servoPhase=3;
break;
case 3:
servoDrive();
if (servoComplete) {
servoComplete=false;
servoPhase=4;
}
break;
case 4:
break;
}
}
void servoStart(double ang, double stp) {
servoPhase=1;
servoContinue(ang, stp);
}
void servoContinue(double ang, double stp) {
if (ang<servoAngTarget) stp=-stp;
servoAngDestination=ang;
servoAngStep=stp;
}
void servoDrive() {
if (servoAngStep>=0) {
if (servoAngDestination-servoAngStep>servoAngTarget) servoAngTarget+=servoAngStep;
else {
servoAngTarget=servoAngDestination;
servoComplete=true;
}
}
else {
if (servoAngDestination-servoAngStep<servoAngTarget) servoAngTarget+=servoAngStep;
else {
servoAngTarget=servoAngDestination;
servoComplete=true;
}
}
servoPulseWidth=600+(int)(servoAngTarget*10.0);
digitalWrite(4, HIGH);
delayMicroseconds(servoPulseWidth);
digitalWrite(4, LOW);
}
void calcTarget() {
if (spinContinuous) spinTarget += spinStep;
else {
if (spinTarget < spinDestination) spinTarget += spinStep;
if (spinTarget > spinDestination) spinTarget -= spinStep;
}
moveTarget -= moveStep * moveRate;
}
void drive() {
varSpd += power * pendClk;
varDst += Kdst * (varSpd * pendClk - moveTarget);
varIang += KIang * varAng * pendClk;
varIdst += KIdst * varDst * pendClk;
power = varIang + varIdst + varDst + (Kspd * varSpd) + (Kang * varAng) + (Komg * varOmg);
if (abs(power) > 5000.0) counterOverSpd +=1;
else counterOverSpd=0;
if (counterOverSpd > maxOverSpd) {
resetMotor();
return;
}
spinPower = (spinAngle - spinTarget) * Kspin;
powerR = power - spinPower;
powerL = power + spinPower;
motor();
}
void motor() {
ipowerR = (int) (constrain(powerR * mechFactorR * battFactor, -maxSpd, maxSpd));
if (ipowerR > 0) {
if (motorRdir == 1) drvMotorL(ipowerR);
else drvMotorL(ipowerR + backlashSpd); //compensate backlash
motorRdir = 1;
}
else if (ipowerR < 0) {
if (motorRdir == -1) drvMotorL(ipowerR);
else drvMotorL(ipowerR - backlashSpd);
motorRdir = -1;
}
else {
drvMotorL(0);
motorRdir = 0;
}
ipowerL = (int) (constrain(powerL * mechFactorL * battFactor, -maxSpd, maxSpd));
if (ipowerL > 0) {
if (motorLdir == 1) drvMotorR(ipowerL);
else drvMotorR(ipowerL + backlashSpd); //compensate backlash
motorLdir = 1;
}
else if (ipowerL < 0) {
if (motorLdir == -1) drvMotorR(ipowerL);
else drvMotorR(ipowerL - backlashSpd);
motorLdir = -1;
}
else {
drvMotorR(0);
motorLdir = 0;
}
}
void drvMotor0(int pwm) {
if (pwm >0) {
digitalWrite(M0B,LOW);
analogWrite(M0F,constrain(pwm+drvHLbalance, 0,PWMMAX));
}
else if (pwm < 0) {
digitalWrite(M0B,HIGH);
analogWrite(M0F,constrain(PWMMAX+pwm, 0,PWMMAX));
}
else {
digitalWrite(M0B,LOW);
pinMode(M0F, OUTPUT);
digitalWrite(M0F,LOW);
}
}
void drvMotor1(int pwm) {
if (pwm >0) {
digitalWrite(M1B,LOW);
analogWrite(M1F,constrain(pwm+drvHLbalance, 0,PWMMAX));
}
else if (pwm < 0) {
digitalWrite(M1B,HIGH);
analogWrite(M1F,constrain(PWMMAX+pwm, 0,PWMMAX));
}
else {
digitalWrite(M1B,LOW);
pinMode(M1F, OUTPUT);
digitalWrite(M1F,LOW);
}
}
void drvMotorL(int pwm) {
switch (MotorConfig) {
case 0: drvMotor1(pwm);
break;
case 1: drvMotor1(-pwm);
break;
case 2: drvMotor1(pwm);
break;
case 3: drvMotor1(-pwm);
break;
}
}
void drvMotorR(int pwm) {
switch (MotorConfig) {
case 0: drvMotor0(pwm);
break;
case 1: drvMotor0(-pwm);
break;
case 2: drvMotor0(-pwm);
break;
case 3: drvMotor0(pwm);
break;
}
}
void getGyro() {
readGyro();
snsGyroY = (gyroDataY - gyroOffsetY) * gyroLSB;
varOmg = (gyroDataZ - gyroOffsetZ) * gyroLSB; // unit:deg/sec
snsAccX = (accDataX - accOffsetX) * accLSB; //unit:g
spinAngle += snsGyroY * pendClk;
varAng += (varOmg + (snsAccX * 57.3 - varAng) * cutoff ) * pendClk;
//angle filter accX=g*sin(ang) -> accX/g=sin(ang)=ang [rad] (if ang is small) -> ang=accX*57.3[deg]
// varAng += varOmg * pendClk;
}
void readGyro() {
Wire.beginTransmission(0x68);
Wire.write(0x3B);
Wire.endTransmission(false); //enable incremental read
Wire.requestFrom(0x68, 14, (int)true);
accX=Wire.read()<<8|Wire.read(); //0x3B
accY=Wire.read()<<8|Wire.read(); //0x3D
accZ=Wire.read()<<8|Wire.read(); //0x3F
temp=Wire.read()<<8|Wire.read(); //0x41
gyroX=Wire.read()<<8|Wire.read(); //0x43
gyroY=Wire.read()<<8|Wire.read(); //0x45
gyroZ=Wire.read()<<8|Wire.read(); //0x47
gyroDataY = (double) gyroY;
gyroDataZ = -(double) gyroX;
accDataX = -(double) accZ;
aveAccX = aveAccX * 0.9 + accDataX * 0.1;
accDataY = -(double) accY;
aveAccY = aveAccY * 0.9 + accDataY * 0.1;
}
boolean laid() {
if (abs(aveAccX) >13000.0) return true;
else return false;
}
boolean upright() {
if (abs(aveAccY) >13000.0) return true;
else return false;
}
boolean standing() {
if (abs(aveAccY) >8000.0 && abs(varAng) < 40.0) return true;
else {
resetMotor();
return false;
}
}
void calibAcc() {
accOffsetX=0.0;
for (int i=1; i <= 30; i++) {
readGyro();
accOffsetX += accDataX;
delay(20);
}
accOffsetX /= 30.0;
}
void calibGyro() {
gyroOffsetZ=gyroOffsetY=0.0;
for (int i=1; i <= 30; i++) {
readGyro();
gyroOffsetZ += gyroDataZ;
gyroOffsetY += gyroDataY;
delay(20);
}
gyroOffsetY /= 30.0;
gyroOffsetZ /= 30.0;
}
void resetPara() {
Kang=150.0;
Komg=3.0;
KIang=1200.0;
Kspin=15.0;
Kdst=80.0;
Kspd=3.5;
KIdst=0.0;
mechFactorR=0.4;
mechFactorL=0.4;
backlashSpd=30;
}
void resetVar() {
power=0.0;
moveTarget=0.0;
spinDestination=0.0;
spinTarget=0.0;
spinAngle=0.0;
varAng=0.0;
varOmg=0.0;
varDst=0.0;
varSpd=0.0;
varIang=0.0;
varIdst=0.0;
counterOverSpd=0;
spinContinuous=false;
moveRate=0.0;
}
void resetMotor() {
digitalWrite(M0B,LOW);
pinMode(M0F, OUTPUT);
digitalWrite(M0F,LOW);
digitalWrite(M1B,LOW);
pinMode(M1F, OUTPUT);
digitalWrite(M1F,LOW);
}
void checkVoltage() {
monitorVoltage();
if (serialMonitor) {Serial.print("Batt=");Serial.println(bVolt);}
if (bVolt>=0.5 && bVolt<3.8) {
if (soundSD) soundStartSD(fBattery, 70);
blinkLED(5); //Batt Low
if (soundSD) soundStartSD(fReplace, 70);
blinkLED(45);
}
}
void blinkLED(int n) {
for (int i=0; i<n; i++) {
digitalWrite(LED6, LED_ON);
delay(10);
digitalWrite(LED6, LED_OFF);
delay(200);
}
}
void monitorVoltage() {
bVolt=getBattVolt();
aveVolt = aveVolt * 0.98 + bVolt * 0.02;
if (bVolt<0.5) { //USB POWER
battFactor=1.3;
setColor(0,0,1);
}
else {
battFactor = 18.0 / aveVolt / aveVolt;
// battFactor = 4.5 / aveVolt;
// battFactor = 4.5 / bVolt;
if (bVolt<3.6) setColor(0,0,0);
else if (bVolt<4.0) setColor(1,0,0);
else if (bVolt<4.4) setColor(1,1,0);
else setColor(0,1,0);
}
}
double getBattVolt() {
return ((double) analogRead(BATT)) / 1023.0 * 6.6;
}
void selectMode() {
if (digitalRead(SW1) == LOW) { //debug
debug=true;
serialMonitor=true;
spinStep=0.0;
blinkLED(1);
}
else if (digitalRead(SW2) == LOW) { //demo
demoMode=2;
blinkLED(2);
}
else spinStep=0.0;
}
void demo8() {
switch (demoPhase) {
case 0:
demoDelayCounter=200;
demoPhase=1;
break;
case 1:
if (demoDelayCounter>1) demoDelayCounter--;
else {
moveRate=3.0;
spinStep=0.5;
spinDestination += 270.0;
demoPhase=2;
}
break;
case 2:
if (abs(spinTarget-spinDestination)<5.0) {
demoDelayCounter=100;
moveRate=5.0;
demoPhase=3;
}
break;
case 3:
if (demoDelayCounter>1) demoDelayCounter--;
else {
moveRate=3.0;
spinDestination -= 270.0;
demoPhase=4;
}
break;
case 4:
if (abs(spinTarget-spinDestination)<5.0) {
demoDelayCounter=100;
moveRate=5.0;
demoPhase=1;
}
break;
}
}
void setColor(int r, int g, int b) {
digitalWrite(LED_R, r);
digitalWrite(LED_G, g);
digitalWrite(LED_B, b);
}
void readEEPROMbal() {
if (EEPROM.read(0)==HCODE) {
drvHLbalance=EEPROM.read(1);
if (serialMonitor) {Serial.print("drvHLbal=");Serial.println(drvHLbalance);}
}
else {
drvHLbalance=30;
noInterrupts();
EEPROM.write(0, HCODE);
EEPROM.write(1, drvHLbalance);
interrupts();
}
}
void writeEEPROMbal() {
noInterrupts();
EEPROM.write(1, drvHLbalance);
interrupts();
}
void readEEPROMadhoc() {
if (EEPROM.read(2)==HCODE) {
for (int i=0; i<ADHOC_IR_MAX; i++) {
ADHOC_CUSTOMER[i]=EEPROM.read(3+i*4)<<8|EEPROM.read(4+i*4);
ADHOC_IR[i]=EEPROM.read(5+i*4)<<8|EEPROM.read(6+i*4);
if (serialMonitor) {
Serial.print("CUST=");Serial.print(ADHOC_CUSTOMER[i],HEX);Serial.print(" CODE=");Serial.println(ADHOC_IR[i],HEX);
}
}
}
}
void writeEEPROMadhoc() {
noInterrupts();
EEPROM.write(2, HCODE);
for (int i=0; i<ADHOC_IR_MAX; i++) {
EEPROM.write(3+i*4, (byte)((ADHOC_CUSTOMER[i]>>8)&0xFF));
EEPROM.write(4+i*4, (byte)(ADHOC_CUSTOMER[i]&0xFF));
EEPROM.write(5+i*4, (byte)((ADHOC_IR[i]>>8)&0xFF));
EEPROM.write(6+i*4, (byte)(ADHOC_IR[i]&0xFF));
}
interrupts();
}
void sendSerial () {
Serial.print(micros()-time0);
Serial.print(" phase=");Serial.print(pendPhase);
Serial.print(" accX="); Serial.print(aveAccX);
Serial.print(" accY="); Serial.print(aveAccY);
Serial.print(" ang=");Serial.print(varAng);
// Serial.print(" temp = "); Serial.print(temp/340.0+36.53);
Serial.print(" drvBal="); Serial.print(drvHLbalance);
Serial.print(F(" apinA=")); Serial.print(spinAngle);
Serial.print(F(" batt=")); Serial.print(aveVolt);
Serial.print(", ");
Serial.print(micros()-time0);
Serial.println();
}
void getIR() {
if (!(irStarted && (micros()-irMicroOff>10000))) return;
if ((irDataOn[0]>1800) && musicPlaying) soundStop=true;
irStarted=false;
irDecoding=true;
if (irDataOn[0]>7000) { //NEC
if (irOffIndex >=33) {
decodeNECAEHA();
printIrData("NEC");
}
}
else if (irDataOn[0]>2600) { //AEHA
if (irOffIndex >=41) {
decodeNECAEHA();
printIrData("AEHA");
}
}
else if (irDataOn[0]>1800) { //SONY
if (irOnIndex >=12) {
decodeSONY();
printIrData("SONY");
}
}
if (irReady) {
irReady=false;
lastIrTime=millis();
if (serialMonitor) {
Serial.print("IR code=");Serial.println(ircode, HEX);
Serial.print("Cust Code=");Serial.println(customer_code, HEX);
}
if (adhoc_ir_num>=0 && adhoc_ir_num<ADHOC_IR_MAX && pendPhase==-1) regIR();
else irCommand();
}
irDecoding=false;
}
void irCommand() {
if (
((ircode==AKI_REMO_CENTER)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_CENTER])&&(customer_code==ADHOC_CUSTOMER[IR_CENTER])) ) {
if (pendPhase!=-1) {
if (abs(moveRate)>1.0 || abs(spinStep)>0.1) {
if (soundSD) soundStartSD(fStop, 10);
else tone(TONE_PIN, 500, 100);
}
button=5;
demoMode=0;
spinContinuous=false;
spinStep=0.0;
moveRate=0.0;
spinDestination = spinTarget;
}
}
else if (
((ircode==AKI_REMO_RIGHT)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_RIGHT])&&(customer_code==ADHOC_CUSTOMER[IR_RIGHT])) ) {
if (pendPhase==-1) {
servoStart(60.0, 0.5);
drvMotorR(-80);
delay(1000);
drvMotorR(0);
}
else if (demoMode==0) {
servoStart(headRight, 3.0);
if (button!=6) {
if (soundSD) soundStartSD(fRight, 10);
else tone(TONE_PIN, 2000, 100);
}
button=6;
if (spinContinuous) spinDestination=spinTarget;
spinContinuous=false;
spinStep=0.6;
spinDestination -= 30.0;
}
}
else if (
((ircode==AKI_REMO_LEFT)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_LEFT])&&(customer_code==ADHOC_CUSTOMER[IR_LEFT])) ) {
if (pendPhase==-1) {
servoStart(120.0, 0.5);
drvMotorL(-80);
delay(1000);
drvMotorL(0);
}
else if (demoMode==0) {
servoStart(headLeft, 3.0);
if (button!=4) {
if (soundSD) soundStartSD(fLeft, 10);
else tone(TONE_PIN, 2000, 100);
}
button=4;
if (spinContinuous) spinDestination=spinTarget;
spinContinuous=false;
spinStep=0.6;
spinDestination += 30.0;
}
}
else if (
((ircode==AKI_REMO_UP)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_UP])&&(customer_code==ADHOC_CUSTOMER[IR_UP])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=2;
if (abs(moveRate)<1.0) {
if (soundSD) soundStartSD(fForward, 10);
else tone(TONE_PIN, 1000, 100);
}
if (moveRate>10.0) {
if (soundSD) soundStartSD(fAccel, 70);
else soundStart(soundWow, sizeof(soundWow), 10);
}
moveRate+=4.0;
}
}
else if (
((ircode==AKI_REMO_DOWN)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_DOWN])&&(customer_code==ADHOC_CUSTOMER[IR_DOWN])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=8;
if (abs(moveRate)<1.0) {
if (soundSD) soundStartSD(fBack, 10);
else tone(TONE_PIN, 1000, 100);
}
moveRate-=4.0;
}
}
else if (
((ircode==AKI_REMO_UL)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_CIRL])&&(customer_code==ADHOC_CUSTOMER[IR_CIRL])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=1;
if (abs(spinStep)<0.1) {
if (soundSD) soundStartSD(fSpin, 10);
else tone(TONE_PIN, 2000, 20);
}
if (!spinContinuous) spinStep=0.0;
spinContinuous=true;
spinStep+=0.3;
}
}
else if (
((ircode==AKI_REMO_UR)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_CIRR])&&(customer_code==ADHOC_CUSTOMER[IR_CIRR])) ) {
if (pendPhase!=-1 && demoMode==0) {
button=3;
if (abs(spinStep)<0.1) {
if (soundSD) soundStartSD(fSpin, 10);
else tone(TONE_PIN, 2000, 20);
}
if (!spinContinuous) spinStep=0.0;
spinContinuous=true;
spinStep-=0.3;
}
}
else if (
((ircode==AKI_REMO_DL)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_BALF])&&(customer_code==ADHOC_CUSTOMER[IR_BALF])) ) {
if (demoMode==0) {
if (moveRate==0.0 && spinTarget==spinDestination) {
if (drvHLbalance<100) {
drvHLbalance-=5;
setColor(1,0,1);
digitalWrite(LED5,LED_ON);
writeEEPROMbal();
digitalWrite(LED5,LED_OFF);
}
}
}
}
else if (
((ircode==AKI_REMO_DR)&&(customer_code==AKI_REMO_CUSTOMER))||
((ircode==ADHOC_IR[IR_BALB])&&(customer_code==ADHOC_CUSTOMER[IR_BALB])) ) {
if (demoMode==0) {
if (moveRate==0.0 && spinTarget==spinDestination) {
if (drvHLbalance>-100) {
drvHLbalance+=5;
setColor(1,0,1);
digitalWrite(LED5,LED_ON);
writeEEPROMbal();
digitalWrite(LED5,LED_OFF);
}
}
}
}
else {
if (pendPhase == -1 && debug && adhoc_ir_num==-1) {
setColor(1,0,1);
digitalWrite(LED5, LED_ON);
randomSoundOn=false;
adhoc_ir_num=0;
}
}
}
void regIR() {
// Ad hoc IR code registration
if (adhoc_ir_num<ADHOC_IR_MAX) {
ADHOC_IR[adhoc_ir_num]=ircode;
ADHOC_CUSTOMER[adhoc_ir_num]=customer_code;
if (serialMonitor) {
Serial.print("set ADHOC_IR[");
Serial.print(adhoc_ir_num);
Serial.print("] = ");
Serial.println(ircode, HEX);
Serial.print("set ADHOC_CUSTOMER[");
Serial.print(adhoc_ir_num);
Serial.print("] = ");
Serial.println(customer_code, HEX);
}
if (adhoc_ir_num==0) adhoc_ir_num++;
else if (ADHOC_IR[adhoc_ir_num-1]!=ircode) adhoc_ir_num++;
for (int i=1; i<=adhoc_ir_num; i++) {
digitalWrite(LED5, LED_OFF);
delay(200);
digitalWrite(LED5, LED_ON);
delay(100);
}
if (adhoc_ir_num==ADHOC_IR_MAX) {
writeEEPROMadhoc();
digitalWrite(LED5, LED_OFF);
randomSoundOn=true;
}
}
}
void irInt() {
if (millis()-lastIrTime<250) return;
if (irDecoding) return;
if (digitalRead(IRIN) == IRON) {
irMicroOn=micros();
if (irStarted) {
irDataOff[irOffIndex]=irMicroOn-irMicroOff;
irOffIndex++;
if (irOffIndex>=IRBUFFLEN) irStarted=false;
}
else {
irStarted=true;
irOnIndex=0;
irOffIndex=0;
irMicroOff=irMicroOn;
}
}
else {
irMicroOff=micros();
irDataOn[irOnIndex]=irMicroOff-irMicroOn;
irOnIndex++;
if (irOnIndex>=IRBUFFLEN) irStarted=false;
}
}
void decodeNECAEHA() {
int len=irOffIndex/8;
int idx=1;
for (int i=0; i<len; i++) {
irData[i]=0;
for (int j=0; j<8; j++) {
irData[i]>>=1;
if (irDataOff[idx]>1000) irData[i]|=0x80;
idx++;
}
}
customer_code=irData[0]<<8|irData[1];
ircode=irData[len-2]<<8|irData[len-1];
irReady=true;
}
void decodeSONY() {
byte data=0;
for (int i=1; i<=7; i++) {
if (irDataOn[i]>900) data|=0x80;
data>>=1;
}
unsigned int addr=0;
int idx=8;
for (int i=0; i<16; i++) {
addr>>=1;
if (idx<irOnIndex && irDataOn[idx]<1800) {
if (irDataOn[idx]>900) addr|=0x8000;
idx++;
}
}
customer_code=addr;
ircode=(unsigned int)data;
irReady=true;
}
void printIrData(String s) {
if (!serialMonitor) return;
Serial.println(s);
Serial.print("Customer=");Serial.println(customer_code, HEX);
Serial.print("Code=");Serial.println(ircode, HEX);
/*
for (int i=0; i<irOffIndex; i++) {
Serial.print(irDataOn[i]);Serial.print(" ");Serial.println(irDataOff[i]);
}
Serial.println("");
*/
}
void soundIntSD() {
if (sdfile.available() && !soundStop) {
byte d=sdfile.read();
if (soundGain!=10) {
int di=(int)d-128;
di=(di*soundGain)/10;
d=(byte)constrain((di+128), 10, 250);
}
else d=constrain(d, 10, 250);
analogWrite(SOUTPIN, d);
}
else {
detachInterrupt(INTSOUND);
analogWrite(SOUTPIN, 0);
musicPlaying=false;
soundBusy=false;
}
}
void soundStartSD(File s, int gain) {
if (soundBusy || !soundSD || !soundOn) return;
sdfile=s;
soundBusy=true;
soundStop=false;
if (sdfile.seek(44)) {
soundGain=gain;
attachInterrupt(INTSOUND, soundIntSD, RISING);
analogWrite(SOUTPIN, 128);
}
}
void soundStart(const byte* ptr, unsigned long sz, int gain) {
if (soundBusy || !soundOn) return;
counterSec0=counterSec;
soundBusy=true;
soundIndex=0;
soundPtr=ptr;
soundSize=sz;
soundGain=gain;
attachInterrupt(INTSOUND, soundInt, RISING);
analogWrite(SOUTPIN, 128);
}
void soundInt() {
byte d=soundPtr[soundIndex];
if (soundGain!=10) {
int di=(int)d-128;
di=(di*soundGain)/10;
d=(byte)constrain((di+128), 10, 250);
}
else d=constrain(d, 10, 250);
analogWrite(SOUTPIN, d);
soundIndex++;
if (soundIndex>=soundSize) {
detachInterrupt(INTSOUND);
analogWrite(SOUTPIN, 0);
soundBusy=false;
}
}