diff --git a/MCUME_teensy/3dmodels/.DS_Store b/MCUME_teensy/3dmodels/.DS_Store new file mode 100644 index 0000000..ee0fc7d Binary files /dev/null and b/MCUME_teensy/3dmodels/.DS_Store differ diff --git a/MCUME_teensy/pcb_t4/.DS_Store b/MCUME_teensy/3dmodels/micro-no-keyboard/.DS_Store similarity index 100% rename from MCUME_teensy/pcb_t4/.DS_Store rename to MCUME_teensy/3dmodels/micro-no-keyboard/.DS_Store diff --git a/MCUME_teensy/3dmodels/micro-no-keyboard/box bottom v31.stl b/MCUME_teensy/3dmodels/micro-no-keyboard/box bottom v31.stl new file mode 100644 index 0000000..797d220 Binary files /dev/null and b/MCUME_teensy/3dmodels/micro-no-keyboard/box bottom v31.stl differ diff --git a/MCUME_teensy/3dmodels/micro-no-keyboard/box top v28.stl b/MCUME_teensy/3dmodels/micro-no-keyboard/box top v28.stl new file mode 100644 index 0000000..07ab907 Binary files /dev/null and b/MCUME_teensy/3dmodels/micro-no-keyboard/box top v28.stl differ diff --git a/MCUME_teensy/3dmodels/micro-no-keyboard/butplate v10.stl b/MCUME_teensy/3dmodels/micro-no-keyboard/butplate v10.stl new file mode 100644 index 0000000..df5a5a7 Binary files /dev/null and b/MCUME_teensy/3dmodels/micro-no-keyboard/butplate v10.stl differ diff --git a/MCUME_teensy/3dmodels/micro-no-keyboard/buttons v4.stl b/MCUME_teensy/3dmodels/micro-no-keyboard/buttons v4.stl new file mode 100644 index 0000000..1c89bb9 Binary files /dev/null and b/MCUME_teensy/3dmodels/micro-no-keyboard/buttons v4.stl differ diff --git a/MCUME_teensy/3dmodels/micro-no-keyboard/screenplate v17.stl b/MCUME_teensy/3dmodels/micro-no-keyboard/screenplate v17.stl new file mode 100644 index 0000000..e117fb1 Binary files /dev/null and b/MCUME_teensy/3dmodels/micro-no-keyboard/screenplate v17.stl differ diff --git a/MCUME_teensy/3dmodels/micro-no-keyboard/test v4.stl b/MCUME_teensy/3dmodels/micro-no-keyboard/test v4.stl new file mode 100644 index 0000000..f0c69c6 Binary files /dev/null and b/MCUME_teensy/3dmodels/micro-no-keyboard/test v4.stl differ diff --git a/MCUME_teensy/3dmodels/mini-with-keyboard/box bottom keyb v10.stl b/MCUME_teensy/3dmodels/mini-with-keyboard/box bottom keyb v10.stl new file mode 100644 index 0000000..09a37ce Binary files /dev/null and b/MCUME_teensy/3dmodels/mini-with-keyboard/box bottom keyb v10.stl differ diff --git a/MCUME_teensy/3dmodels/mini-with-keyboard/box top keyb v13.stl b/MCUME_teensy/3dmodels/mini-with-keyboard/box top keyb v13.stl new file mode 100644 index 0000000..7e52c3b Binary files /dev/null and b/MCUME_teensy/3dmodels/mini-with-keyboard/box top keyb v13.stl differ diff --git a/MCUME_teensy/3dmodels/mini-with-keyboard/butplate keyb v16.stl b/MCUME_teensy/3dmodels/mini-with-keyboard/butplate keyb v16.stl new file mode 100644 index 0000000..0b7b529 Binary files /dev/null and b/MCUME_teensy/3dmodels/mini-with-keyboard/butplate keyb v16.stl differ diff --git a/MCUME_teensy/3dmodels/mini-with-keyboard/buttons keyb keyboard v4.stl b/MCUME_teensy/3dmodels/mini-with-keyboard/buttons keyb keyboard v4.stl new file mode 100644 index 0000000..10885ee Binary files /dev/null and b/MCUME_teensy/3dmodels/mini-with-keyboard/buttons keyb keyboard v4.stl differ diff --git a/MCUME_teensy/3dmodels/mini-with-keyboard/buttons keyb pad v2.stl b/MCUME_teensy/3dmodels/mini-with-keyboard/buttons keyb pad v2.stl new file mode 100644 index 0000000..61517ed Binary files /dev/null and b/MCUME_teensy/3dmodels/mini-with-keyboard/buttons keyb pad v2.stl differ diff --git a/MCUME_teensy/3dmodels/mini-with-keyboard/screenplate keyb v14.stl b/MCUME_teensy/3dmodels/mini-with-keyboard/screenplate keyb v14.stl new file mode 100644 index 0000000..e29dfe5 Binary files /dev/null and b/MCUME_teensy/3dmodels/mini-with-keyboard/screenplate keyb v14.stl differ diff --git a/MCUME_teensy/pcb_t4/mcumev1.kicad_pcb b/MCUME_teensy/pcb_t4/ILI9341_version/mcumev1.kicad_pcb similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev1.kicad_pcb rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumev1.kicad_pcb diff --git a/MCUME_teensy/pcb_t4/mcumev1.pro b/MCUME_teensy/pcb_t4/ILI9341_version/mcumev1.pro similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev1.pro rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumev1.pro diff --git a/MCUME_teensy/pcb_t4/mcumev2psram.kicad_pcb b/MCUME_teensy/pcb_t4/ILI9341_version/mcumev2psram.kicad_pcb similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev2psram.kicad_pcb rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumev2psram.kicad_pcb diff --git a/MCUME_teensy/pcb_t4/mcumev2psram.pro b/MCUME_teensy/pcb_t4/ILI9341_version/mcumev2psram.pro similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev2psram.pro rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumev2psram.pro diff --git a/MCUME_teensy/pcb_t4/mcumev4minkeys9341.kicad_pcb b/MCUME_teensy/pcb_t4/ILI9341_version/mcumev4minkeys9341.kicad_pcb similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev4minkeys9341.kicad_pcb rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumev4minkeys9341.kicad_pcb diff --git a/MCUME_teensy/pcb_t4/mcumev4minkeys9341.pro b/MCUME_teensy/pcb_t4/ILI9341_version/mcumev4minkeys9341.pro similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev4minkeys9341.pro rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumev4minkeys9341.pro diff --git a/MCUME_teensy/pcb_t4/mcumevall.kicad_pcb b/MCUME_teensy/pcb_t4/ILI9341_version/mcumevall.kicad_pcb similarity index 100% rename from MCUME_teensy/pcb_t4/mcumevall.kicad_pcb rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumevall.kicad_pcb diff --git a/MCUME_teensy/pcb_t4/mcumev3mini.pro b/MCUME_teensy/pcb_t4/ILI9341_version/mcumevall.pro similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev3mini.pro rename to MCUME_teensy/pcb_t4/ILI9341_version/mcumevall.pro diff --git a/MCUME_teensy/pcb_t4/mcumev3mini.kicad_pcb b/MCUME_teensy/pcb_t4/ST7789_version/mcumev3mini.kicad_pcb similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev3mini.kicad_pcb rename to MCUME_teensy/pcb_t4/ST7789_version/mcumev3mini.kicad_pcb diff --git a/MCUME_teensy/pcb_t4/mcumev4minkeys7789.pro b/MCUME_teensy/pcb_t4/ST7789_version/mcumev3mini.pro similarity index 100% rename from MCUME_teensy/pcb_t4/mcumev4minkeys7789.pro rename to MCUME_teensy/pcb_t4/ST7789_version/mcumev3mini.pro diff --git a/MCUME_teensy/pcb_t4/mcumev4minkeys7789.kicad_pcb b/MCUME_teensy/pcb_t4/ST7789_version/mcumev4minkeys7789.kicad_pcb similarity index 98% rename from MCUME_teensy/pcb_t4/mcumev4minkeys7789.kicad_pcb rename to MCUME_teensy/pcb_t4/ST7789_version/mcumev4minkeys7789.kicad_pcb index 17fd7cb..4437afe 100644 --- a/MCUME_teensy/pcb_t4/mcumev4minkeys7789.kicad_pcb +++ b/MCUME_teensy/pcb_t4/ST7789_version/mcumev4minkeys7789.kicad_pcb @@ -3,7 +3,7 @@ (general (thickness 1.6) (drawings 12) - (tracks 1131) + (tracks 1142) (zones 0) (modules 1) (nets 1) @@ -1357,5 +1357,16 @@ (segment (start 144.907 48.768) (end 144.907 48.133) (width 0.59944) (layer B.Cu) (net 0)) (segment (start 138.43 55.245) (end 144.907 48.768) (width 0.59944) (layer B.Cu) (net 0)) (segment (start 145.415 47.625) (end 144.907 48.133) (width 0.59944) (layer B.Cu) (net 0)) + (segment (start 58.801 21.911625) (end 39.302375 21.911625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 58.928 24.451625) (end 39.429375 24.451625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.055 26.864625) (end 39.556375 26.864625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.055 29.404625) (end 39.556375 29.404625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.055 31.944625) (end 39.556375 31.944625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.055 34.484625) (end 39.556375 34.484625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.055 37.024625) (end 39.556375 37.024625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.055 39.564625) (end 39.556375 39.564625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.182 42.104625) (end 39.683375 42.104625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 59.309 39.564625) (end 39.810375 39.564625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) + (segment (start 60.071 21.911625) (end 40.572375 21.911625) (width 0.8) (layer B.Cu) (net 0) (tstamp 5E5A2C89)) ) diff --git a/MCUME_teensy/pcb_t4/ST7789_version/mcumev4minkeys7789.pro b/MCUME_teensy/pcb_t4/ST7789_version/mcumev4minkeys7789.pro new file mode 100644 index 0000000..152769c --- /dev/null +++ b/MCUME_teensy/pcb_t4/ST7789_version/mcumev4minkeys7789.pro @@ -0,0 +1,33 @@ +update=22/05/2015 07:44:53 +version=1 +last_client=kicad +[general] +version=1 +RootSch= +BoardNm= +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=0.600000000000 +PadDrillOvalY=0.600000000000 +PadSizeH=1.500000000000 +PadSizeV=1.500000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[cvpcb] +version=1 +NetIExt=net +[eeschema] +version=1 +LibDir= +[eeschema/libraries] diff --git a/MCUME_teensy/teensy8086/platform_config.h b/MCUME_teensy/teensy8086/platform_config.h index c6ccb01..430c11c 100644 --- a/MCUME_teensy/teensy8086/platform_config.h +++ b/MCUME_teensy/teensy8086/platform_config.h @@ -3,9 +3,9 @@ //#define OLD_LAYOUT 1 -#define ILI9341 1 -//#define ST7789 1 -//#define SWAP_JOYSTICK 1 +//#define ILI9341 1 +#define ST7789 1 +#define SWAP_JOYSTICK 1 //#define LOHRES 1 //#define ROTATE_SCREEN 1 #define EXTERNAL_SD 1 diff --git a/MCUME_teensy/teensycastaway/platform_config.h b/MCUME_teensy/teensycastaway/platform_config.h index c6ccb01..430c11c 100644 --- a/MCUME_teensy/teensycastaway/platform_config.h +++ b/MCUME_teensy/teensycastaway/platform_config.h @@ -3,9 +3,9 @@ //#define OLD_LAYOUT 1 -#define ILI9341 1 -//#define ST7789 1 -//#define SWAP_JOYSTICK 1 +//#define ILI9341 1 +#define ST7789 1 +#define SWAP_JOYSTICK 1 //#define LOHRES 1 //#define ROTATE_SCREEN 1 #define EXTERNAL_SD 1 diff --git a/MCUME_teensy/teensymsx/.DS_Store b/MCUME_teensy/teensymsx/.DS_Store new file mode 100644 index 0000000..77cd3c4 Binary files /dev/null and b/MCUME_teensy/teensymsx/.DS_Store differ diff --git a/MCUME_teensy/teensymsx/AY8910.c b/MCUME_teensy/teensymsx/AY8910.c new file mode 100644 index 0000000..0d40a25 --- /dev/null +++ b/MCUME_teensy/teensymsx/AY8910.c @@ -0,0 +1,317 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** AY8910.c **/ +/** **/ +/** This file contains emulation for the AY8910 sound chip **/ +/** produced by General Instruments, Yamaha, etc. See **/ +/** AY8910.h for declarations. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +#include "AY8910.h" +#include "Sound.h" +#include + +/** Reset8910() **********************************************/ +/** Reset the sound chip and use sound channels from the **/ +/** one given in First. **/ +/*************************************************************/ +void Reset8910(register AY8910 *D,int First) +{ + static byte RegInit[16] = + { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD, + 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00 + }; + int J; + + for(J=0;JFreq[J]=D->Volume[J]=0; + memcpy(D->R,RegInit,sizeof(D->R)); + D->Phase[0]=D->Phase[1]=D->Phase[2]=0; + D->First = First; + D->Sync = AY8910_ASYNC; + D->Changed = 0x00; + D->EPeriod = 0; + D->ECount = 0; + D->Latch = 0x00; + + /* Set sound types */ + SetSound(0+First,SND_MELODIC); + SetSound(1+First,SND_MELODIC); + SetSound(2+First,SND_MELODIC); + SetSound(3+First,SND_NOISE); + SetSound(4+First,SND_NOISE); + SetSound(5+First,SND_NOISE); +} + +/** WrCtrl8910() *********************************************/ +/** Write a value V to the PSG Control Port. **/ +/*************************************************************/ +void WrCtrl8910(AY8910 *D,byte V) +{ + D->Latch=V&0x0F; +} + +/** WrData8910() *********************************************/ +/** Write a value V to the PSG Data Port. **/ +/*************************************************************/ +void WrData8910(AY8910 *D,byte V) +{ + Write8910(D,D->Latch,V); +} + +/** RdData8910() *********************************************/ +/** Read a value from the PSG Data Port. **/ +/*************************************************************/ +byte RdData8910(AY8910 *D) +{ + return(D->R[D->Latch]); +} + +/** Write8910() **********************************************/ +/** Call this function to output a value V into the sound **/ +/** chip. **/ +/*************************************************************/ +void Write8910(register AY8910 *D,register byte R,register byte V) +{ + register int J,I; + + /* Exit if no change */ + if((R>15)||((V==D->R[R])&&(R<8)&&(R>10))) return; + + switch(R) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + /* Write value */ + D->R[R]=V; + /* Exit if the channel is silenced */ + if(D->R[7]&(1<<(R>>1))) return; + /* Go to the first register in the pair */ + R&=0xFE; + /* Compute frequency */ + J=((int)(D->R[R+1]&0x0F)<<8)+D->R[R]; + /* Compute channel number */ + R>>=1; + /* Assign frequency */ + D->Freq[R]=AY8910_BASE/(J+1); + /* Compute changed channels mask */ + D->Changed|=1<R[6]=V; + /* Exit if noise channels are silenced */ + if(!(~D->R[7]&0x38)) return; + /* Compute and assign noise frequency */ + J=AY8910_BASE/((V&0x1F)+1); + if(!(D->R[7]&0x08)) D->Freq[3]=J; + if(!(D->R[7]&0x10)) D->Freq[4]=J; + if(!(D->R[7]&0x20)) D->Freq[5]=J; + /* Compute changed channels mask */ + D->Changed|=0x38&~D->R[7]; + break; + + case 7: + /* Find changed channels */ + R=(V^D->R[7])&0x3F; + D->Changed|=R; + /* Write value */ + D->R[7]=V; + /* Update frequencies */ + for(J=0;R&&(J>=1,V>>=1) + if(R&1) + { + if(V&1) D->Freq[J]=0; + else + { + I=J<3? (((int)(D->R[J*2+1]&0x0F)<<8)+D->R[J*2]):(D->R[6]&0x1F); + D->Freq[J]=AY8910_BASE/(I+1); + } + } + break; + + case 8: + case 9: + case 10: + /* Write value */ + D->R[R]=V; + /* Compute channel number */ + R-=8; + /* Compute and assign new volume */ + D->Volume[R+3]=D->Volume[R]=255*(V&0x0F)/15; + /* Start/stop envelope */ + D->Phase[R]=V&0x10? 1:0; + /* Compute changed channels mask */ + D->Changed|=(0x09<R[7]; + break; + + case 11: + case 12: + /* Write value */ + D->R[R]=V; + /* Compute frequency */ + J=((int)D->R[12]<<8)+D->R[11]; + D->EPeriod=1000*J/AY8910_BASE/16; + D->ECount=0; + /* No channels changed */ + return; + + case 13: + case 14: + case 15: + /* Write value */ + D->R[R]=V; + /* No channels changed */ + return; + + default: + /* Wrong register, do nothing */ + return; + } + + /* For asynchronous mode, make Sound() calls right away */ + if(!D->Sync&&D->Changed) Sync8910(D,AY8910_FLUSH); +} + +/** Loop8910() ***********************************************/ +/** Call this function periodically to update volume **/ +/** envelopes. Use mS to pass the time since the last call **/ +/** of Loop8910() in milliseconds. **/ +/*************************************************************/ +void Loop8910(register AY8910 *D,int mS) +{ + register int J,I,Step; + + /* Exit if no envelope running */ + if(!D->EPeriod) return; + + /* Count milliseconds */ + D->ECount+=mS; + if(D->ECountEPeriod) return; + D->ECount-=D->EPeriod; + + /* By how much do we change volume? */ + Step=mS>=D->EPeriod? mS/D->EPeriod:1; + + for(J=0;J<3;J++) + if(D->Phase[J]&&(D->R[J+8]&0x10)) + switch(D->R[13]&0x0F) + { + case 0: + case 1: + case 2: + case 3: + case 9: + I=D->Volume[J]-Step; + D->Volume[J+3]=D->Volume[J]=I=I>=0? I:0; + if(!I) D->Phase[J]=0; + D->Changed|=(0x09<R[7]; + break; + case 4: + case 5: + case 6: + case 7: + I=D->Volume[J]+Step; + D->Volume[J+3]=D->Volume[J]=I=I<256? I:0; + if(!I) D->Phase[J]=0; + D->Changed|=(0x09<R[7]; + break; + case 8: + I=D->Volume[J]-Step; + D->Volume[J+3]=D->Volume[J]=I>=0? I:255; + D->Changed|=(0x09<R[7]; + break; + case 10: + if(D->Phase[J]==2) + { + I=D->Volume[J]+Step; + D->Volume[J+3]=D->Volume[J]=I=I<256? I:255; + if(I==255) D->Phase[J]=1; + } + else + { + I=D->Volume[J]-Step; + D->Volume[J+3]=D->Volume[J]=I=I>=0? I:0; + if(!I) D->Phase[J]=2; + } + D->Changed|=(0x09<R[7]; + break; + case 11: + I=D->Volume[J]-Step; + D->Volume[J+3]=D->Volume[J]=I=I>=0? I:255; + if(I==255) D->Phase[J]=0; + D->Changed|=(0x09<R[7]; + break; + case 12: + I=D->Volume[J]+Step; + D->Volume[J+3]=D->Volume[J]=I<256? I:0; + D->Changed|=(0x09<R[7]; + break; + case 13: + case 15: + I=D->Volume[J]+Step; + D->Volume[J+3]=D->Volume[J]=I<256? I:255; + if(I==255) D->Phase[J]=0; + D->Changed|=(0x09<R[7]; + break; + case 14: + if(D->Phase[J]==2) + { + I=D->Volume[J]-Step; + D->Volume[J+3]=D->Volume[J]=I=I>=0? I:0; + if(!I) D->Phase[J]=1; + } + else + { + I=D->Volume[J]+Step; + D->Volume[J+3]=D->Volume[J]=I=I<256? I:255; + if(I==255) D->Phase[J]=2; + } + D->Changed|=(0x09<R[7]; + break; + } + + /* For asynchronous mode, make Sound() calls right away */ + if(!D->Sync&&D->Changed) Sync8910(D,AY8910_FLUSH); +} + +/** Sync8910() ***********************************************/ +/** Flush all accumulated changes by issuing Sound() calls **/ +/** and set the synchronization on/off. The second argument **/ +/** should be AY8910_SYNC/AY8910_ASYNC to set/reset sync, **/ +/** or AY8910_FLUSH to leave sync mode as it is. To emulate **/ +/** noise channels with MIDI drums, OR second argument with **/ +/** AY8910_DRUMS. **/ +/*************************************************************/ +void Sync8910(register AY8910 *D,register byte Sync) +{ + register int J,I; + + /* Hit MIDI drums for noise channels, if requested */ + if(Sync&AY8910_DRUMS) + { + Sync&=~AY8910_DRUMS; + J=0; + if(D->Volume[3]&&D->Freq[3]) J+=D->Volume[3]; + if(D->Volume[4]&&D->Freq[4]) J+=D->Volume[4]; + if(D->Volume[5]&&D->Freq[5]) J+=D->Volume[5]; + if(J) Drum(DRM_MIDI|28,(J+2)/3); + } + + if(Sync!=AY8910_FLUSH) D->Sync=Sync; + + for(J=0,I=D->Changed;I&&(J>=1) + if(I&1) Sound(J+D->First,D->Freq[J],D->Volume[J]); + + D->Changed=0x00; +} diff --git a/MCUME_teensy/teensymsx/AY8910.h b/MCUME_teensy/teensymsx/AY8910.h new file mode 100644 index 0000000..eff685e --- /dev/null +++ b/MCUME_teensy/teensymsx/AY8910.h @@ -0,0 +1,91 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** AY8910.h **/ +/** **/ +/** This file contains emulation for the AY8910 sound chip **/ +/** produced by General Instruments, Yamaha, etc. See **/ +/** AY8910.c for the actual code. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef AY8910_H +#define AY8910_H + +#define AY8910_BASE 111861 /* Base frequency for AY8910 */ +#define AY8910_CHANNELS 6 /* 3 melodic + 3 noise chanls */ + +#define AY8910_ASYNC 0 /* Asynchronous emulation */ +#define AY8910_SYNC 1 /* Synchronous emulation */ +#define AY8910_FLUSH 2 /* Flush buffers only */ +#define AY8910_DRUMS 0x80 /* Hit drums for noise chnls */ + +#ifndef BYTE_TYPE_DEFINED +#define BYTE_TYPE_DEFINED +typedef unsigned char byte; +#endif + +/** AY8910 ***************************************************/ +/** This data structure stores AY8910 state. **/ +/*************************************************************/ +typedef struct +{ + byte R[16]; /* PSG registers contents */ + int Freq[AY8910_CHANNELS]; /* Frequencies (0 for off) */ + int Volume[AY8910_CHANNELS]; /* Volumes (0..255) */ + int First; /* First used Sound() channel */ + byte Changed; /* Bitmap of changed channels */ + byte Sync; /* AY8910_SYNC/AY8910_ASYNC */ + byte Latch; /* Latch for the register num */ + int EPeriod; /* Envelope step in msecs */ + int ECount; /* Envelope step counter */ + byte Phase[3]; /* Envelope phase (0 for off) */ +} AY8910; + +/** Reset8910() **********************************************/ +/** Reset the sound chip and use sound channels from the **/ +/** one given in First. **/ +/*************************************************************/ +void Reset8910(register AY8910 *D,int First); + +/** Write8910() **********************************************/ +/** Call this function to output a value V into the sound **/ +/** chip. **/ +/*************************************************************/ +void Write8910(register AY8910 *D,register byte R,register byte V); + +/** WrCtrl8910() *********************************************/ +/** Write a value V to the PSG Control Port. **/ +/*************************************************************/ +void WrCtrl8910(AY8910 *D,byte V); + +/** WrData8910() *********************************************/ +/** Write a value V to the PSG Data Port. **/ +/*************************************************************/ +void WrData8910(AY8910 *D,byte V); + +/** RdData8910() *********************************************/ +/** Read a value from the PSG Data Port. **/ +/*************************************************************/ +byte RdData8910(AY8910 *D); + +/** Sync8910() ***********************************************/ +/** Flush all accumulated changes by issuing Sound() calls **/ +/** and set the synchronization on/off. The second argument **/ +/** should be AY8910_SYNC/AY8910_ASYNC to set/reset sync, **/ +/** or AY8910_FLUSH to leave sync mode as it is. To emulate **/ +/** noise channels with MIDI drums, OR second argument with **/ +/** AY8910_DRUMS. **/ +/*************************************************************/ +void Sync8910(register AY8910 *D,register byte Sync); + +/** Loop8910() ***********************************************/ +/** Call this function periodically to update volume **/ +/** envelopes. Use mS to pass the time since the last call **/ +/** of Loop8910() in milliseconds. **/ +/*************************************************************/ +void Loop8910(register AY8910 *D,int mS); + +#endif /* AY8910_H */ diff --git a/MCUME_teensy/teensymsx/AudioPlaySystem.cpp b/MCUME_teensy/teensymsx/AudioPlaySystem.cpp new file mode 100644 index 0000000..bafb186 --- /dev/null +++ b/MCUME_teensy/teensymsx/AudioPlaySystem.cpp @@ -0,0 +1,198 @@ +#include "emuapi.h" + +#ifdef HAS_SND + +#include "AudioPlaySystem.h" +#include +#define SAMPLERATE AUDIO_SAMPLE_RATE_EXACT +#define CLOCKFREQ 985248 + +#ifndef CUSTOM_SND +PROGMEM static const short square[]={ +32767,32767,32767,32767, +32767,32767,32767,32767, +32767,32767,32767,32767, +32767,32767,32767,32767, +32767,32767,32767,32767, +32767,32767,32767,32767, +32767,32767,32767,32767, +32767,32767,32767,32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767, +}; + +PROGMEM const short noise[] { +-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767, +-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,32767,-32767, +-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,32767,-32767, +-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,32767,32767,-32767, +-32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,-32767,-32767,32767,32767,-32767, +-32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,-32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,-32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,-32767,-32767, +32767,-32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,32767,-32767,32767,32767,32767,-32767,-32767, +32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,-32767,32767,32767,-32767,32767,-32767,32767,-32767,-32767, +32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767, +32767,-32767,32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,32767,-32767,32767,-32767,-32767, +}; + +#define NOISEBSIZE 0x100 + +typedef struct +{ + unsigned int spos; + unsigned int sinc; + unsigned int vol; +} Channel; + +static Channel chan[6] = { + {0,0,0}, + {0,0,0}, + {0,0,0}, + {0,0,0}, + {0,0,0}, + {0,0,0} }; + +#endif + +volatile bool playing = false; + + + + +PROGMEM static void snd_Reset(void) +{ +#ifndef CUSTOM_SND + chan[0].vol = 0; + chan[1].vol = 0; + chan[2].vol = 0; + chan[3].vol = 0; + chan[4].vol = 0; + chan[5].vol = 0; + chan[0].sinc = 0; + chan[1].sinc = 0; + chan[2].sinc = 0; + chan[3].sinc = 0; + chan[4].sinc = 0; + chan[5].sinc = 0; +#endif +} + + +#ifdef CUSTOM_SND +extern "C" { +void SND_Process(void *sndbuffer, int sndn); +} +#endif + +PROGMEM static void snd_Mixer(short * stream, int len ) +{ + if (playing) + { +#ifdef CUSTOM_SND + SND_Process((void*)stream, len); +#else + int i; + long s; + len = len >> 1; + + short v0=chan[0].vol; + short v1=chan[1].vol; + short v2=chan[2].vol; + short v3=chan[3].vol; + short v4=chan[4].vol; + short v5=chan[5].vol; + for (i=0;i>8)&0x3f])>>11); + s+=((v1*square[(chan[1].spos>>8)&0x3f])>>11); + s+=((v2*square[(chan[2].spos>>8)&0x3f])>>11); + s+=((v3*noise[(chan[3].spos>>8)&(NOISEBSIZE-1)])>>11); + s+=((v4*noise[(chan[4].spos>>8)&(NOISEBSIZE-1)])>>11); + s+=((v5*noise[(chan[5].spos>>8)&(NOISEBSIZE-1)])>>11); + *stream++ = (short)(s); + *stream++ = (short)(s); + chan[0].spos += chan[0].sinc; + chan[1].spos += chan[1].sinc; + chan[2].spos += chan[2].sinc; + chan[3].spos += chan[3].sinc; + chan[4].spos += chan[4].sinc; + chan[5].spos += chan[5].sinc; + } +#endif + } +} + +PROGMEM void AudioPlaySystem::begin(void) +{ + //emu_printf("AudioPlaySystem constructor"); + this->reset(); + setSampleParameters(CLOCKFREQ, SAMPLERATE); +} + +PROGMEM void AudioPlaySystem::start(void) +{ + //emu_printf("allocating sound buf"); + playing = true; +} + +PROGMEM void AudioPlaySystem::setSampleParameters(float clockfreq, float samplerate) { +} + +PROGMEM void AudioPlaySystem::reset(void) +{ + snd_Reset(); +} + +PROGMEM void AudioPlaySystem::stop(void) +{ + //__disable_irq(); + playing = false; + //__enable_irq(); +} + +PROGMEM bool AudioPlaySystem::isPlaying(void) +{ + return playing; +} + +PROGMEM void AudioPlaySystem::update(void) { + audio_block_t *block; + + // only update if we're playing + if (!playing) return; + + // allocate the audio blocks to transmit + block = allocate(); + if (block == NULL) return; + + snd_Mixer((short*)block->data,AUDIO_BLOCK_SAMPLES); + //memset( (void*)block->data, 0, AUDIO_BLOCK_SAMPLES*2); + + transmit(block); + release(block); +} + +PROGMEM void AudioPlaySystem::sound(int C, int F, int V) { +#ifndef CUSTOM_SND + if (C < 6) { + chan[C].vol = V; + chan[C].sinc = F>>1; + } +#endif +} + +PROGMEM void AudioPlaySystem::step(void) { +} +#endif + diff --git a/MCUME_teensy/teensymsx/AudioPlaySystem.h b/MCUME_teensy/teensymsx/AudioPlaySystem.h new file mode 100644 index 0000000..0333adb --- /dev/null +++ b/MCUME_teensy/teensymsx/AudioPlaySystem.h @@ -0,0 +1,28 @@ +#ifndef audioplaysystem_h_ +#define audioplaysystem_h_ + +#ifdef HAS_SND + +#include + +class AudioPlaySystem : public AudioStream +{ +public: + AudioPlaySystem(void) : AudioStream(0, NULL) { begin(); } + void begin(void); + void setSampleParameters(float clockfreq, float samplerate); + void reset(void); + void start(void); + void stop(void); + bool isPlaying(void); + void sound(int C, int F, int V); + void buzz(int size, int val); + void step(void); + +private: + virtual void update(void); +}; +#endif + +#endif + diff --git a/MCUME_teensy/teensymsx/Boot.c b/MCUME_teensy/teensymsx/Boot.c new file mode 100644 index 0000000..26b0cd1 --- /dev/null +++ b/MCUME_teensy/teensymsx/Boot.c @@ -0,0 +1,48 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** Boot.h **/ +/** **/ +/** This file contains MSX boot sector image used to create **/ +/** new disk images during FORMAT operation. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#include "arduinoproto.h" +PROGMEM const unsigned char BootBlock[] = +{ + 0xEB,0xFE,0x90,0x56,0x46,0x42,0x2D,0x31,0x39,0x38,0x39,0x00,0x02,0x02,0x01,0x00, + 0x02,0x70,0x00,0xA0,0x05,0xF9,0x03,0x00,0x09,0x00,0x02,0x00,0x00,0x00,0xD0,0xED, + 0x53,0x58,0xC0,0x32,0xC2,0xC0,0x36,0x55,0x23,0x36,0xC0,0x31,0x1F,0xF5,0x11,0x9D, + 0xC0,0x0E,0x0F,0xCD,0x7D,0xF3,0x3C,0x28,0x28,0x11,0x00,0x01,0x0E,0x1A,0xCD,0x7D, + 0xF3,0x21,0x01,0x00,0x22,0xAB,0xC0,0x21,0x00,0x3F,0x11,0x9D,0xC0,0x0E,0x27,0xCD, + 0x7D,0xF3,0xC3,0x00,0x01,0x57,0xC0,0xCD,0x00,0x00,0x79,0xE6,0xFE,0xFE,0x02,0x20, + 0x07,0x3A,0xC2,0xC0,0xA7,0xCA,0x22,0x40,0x11,0x77,0xC0,0x0E,0x09,0xCD,0x7D,0xF3, + 0x0E,0x07,0xCD,0x7D,0xF3,0x18,0xB4,0x42,0x6F,0x6F,0x74,0x20,0x65,0x72,0x72,0x6F, + 0x72,0x0D,0x0A,0x50,0x72,0x65,0x73,0x73,0x20,0x61,0x6E,0x79,0x20,0x6B,0x65,0x79, + 0x20,0x66,0x6F,0x72,0x20,0x72,0x65,0x74,0x72,0x79,0x0D,0x0A,0x24,0x00,0x4D,0x53, + 0x58,0x44,0x4F,0x53,0x20,0x20,0x53,0x59,0x53,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x2A, + 0x51,0xF3,0x11,0x00,0x01,0x19,0x01,0x00,0x01,0x11,0x00,0xC1,0xED,0xB0,0x3A,0xEE, + 0xC0,0x47,0x11,0xEF,0xC0,0x21,0x00,0x00,0xCD,0x51,0x52,0xF3,0x76,0xC9,0x18,0x64, + 0x3A,0xAF,0x80,0xF9,0xCA,0x6D,0x48,0xD3,0xA5,0x0C,0x8C,0x2F,0x9C,0xCB,0xE9,0x89, + 0xD2,0x00,0x32,0x26,0x40,0x94,0x61,0x19,0x20,0xE6,0x80,0x6D,0x8A,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; diff --git a/MCUME_teensy/teensymsx/Boot.h b/MCUME_teensy/teensymsx/Boot.h new file mode 100644 index 0000000..f2e883a --- /dev/null +++ b/MCUME_teensy/teensymsx/Boot.h @@ -0,0 +1,13 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** Boot.h **/ +/** **/ +/** This file contains MSX boot sector image used to create **/ +/** new disk images during FORMAT operation. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +extern const byte BootBlock[]; diff --git a/MCUME_teensy/teensymsx/Codes.h b/MCUME_teensy/teensymsx/Codes.h new file mode 100644 index 0000000..fc13a5e --- /dev/null +++ b/MCUME_teensy/teensymsx/Codes.h @@ -0,0 +1,378 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** Codes.h **/ +/** **/ +/** This file contains implementation for the main table of **/ +/** Z80 commands. It is included from Z80.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +case JR_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W++; else { R->ICount-=5;M_JR; } break; +case JR_NC: if(R->AF.B.l&C_FLAG) R->PC.W++; else { R->ICount-=5;M_JR; } break; +case JR_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=5;M_JR; } else R->PC.W++; break; +case JR_C: if(R->AF.B.l&C_FLAG) { R->ICount-=5;M_JR; } else R->PC.W++; break; + +case JP_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_Z: if(R->AF.B.l&Z_FLAG) { M_JP; } else R->PC.W+=2; break; +case JP_C: if(R->AF.B.l&C_FLAG) { M_JP; } else R->PC.W+=2; break; +case JP_PE: if(R->AF.B.l&P_FLAG) { M_JP; } else R->PC.W+=2; break; +case JP_M: if(R->AF.B.l&S_FLAG) { M_JP; } else R->PC.W+=2; break; + +case RET_NZ: if(!(R->AF.B.l&Z_FLAG)) { R->ICount-=6;M_RET; } break; +case RET_NC: if(!(R->AF.B.l&C_FLAG)) { R->ICount-=6;M_RET; } break; +case RET_PO: if(!(R->AF.B.l&P_FLAG)) { R->ICount-=6;M_RET; } break; +case RET_P: if(!(R->AF.B.l&S_FLAG)) { R->ICount-=6;M_RET; } break; +case RET_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=6;M_RET; } break; +case RET_C: if(R->AF.B.l&C_FLAG) { R->ICount-=6;M_RET; } break; +case RET_PE: if(R->AF.B.l&P_FLAG) { R->ICount-=6;M_RET; } break; +case RET_M: if(R->AF.B.l&S_FLAG) { R->ICount-=6;M_RET; } break; + +case CALL_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; +case CALL_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; +case CALL_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; +case CALL_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; +case CALL_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; +case CALL_C: if(R->AF.B.l&C_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; +case CALL_PE: if(R->AF.B.l&P_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; +case CALL_M: if(R->AF.B.l&S_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; + +case ADD_B: M_ADD(R->BC.B.h);break; +case ADD_C: M_ADD(R->BC.B.l);break; +case ADD_D: M_ADD(R->DE.B.h);break; +case ADD_E: M_ADD(R->DE.B.l);break; +case ADD_H: M_ADD(R->HL.B.h);break; +case ADD_L: M_ADD(R->HL.B.l);break; +case ADD_A: M_ADD(R->AF.B.h);break; +case ADD_xHL: I=RdZ80(R->HL.W);M_ADD(I);break; +case ADD_BYTE: I=RdZ80(R->PC.W++);M_ADD(I);break; + +case SUB_B: M_SUB(R->BC.B.h);break; +case SUB_C: M_SUB(R->BC.B.l);break; +case SUB_D: M_SUB(R->DE.B.h);break; +case SUB_E: M_SUB(R->DE.B.l);break; +case SUB_H: M_SUB(R->HL.B.h);break; +case SUB_L: M_SUB(R->HL.B.l);break; +case SUB_A: R->AF.B.h=0;R->AF.B.l=N_FLAG|Z_FLAG;break; +case SUB_xHL: I=RdZ80(R->HL.W);M_SUB(I);break; +case SUB_BYTE: I=RdZ80(R->PC.W++);M_SUB(I);break; + +case AND_B: M_AND(R->BC.B.h);break; +case AND_C: M_AND(R->BC.B.l);break; +case AND_D: M_AND(R->DE.B.h);break; +case AND_E: M_AND(R->DE.B.l);break; +case AND_H: M_AND(R->HL.B.h);break; +case AND_L: M_AND(R->HL.B.l);break; +case AND_A: M_AND(R->AF.B.h);break; +case AND_xHL: I=RdZ80(R->HL.W);M_AND(I);break; +case AND_BYTE: I=RdZ80(R->PC.W++);M_AND(I);break; + +case OR_B: M_OR(R->BC.B.h);break; +case OR_C: M_OR(R->BC.B.l);break; +case OR_D: M_OR(R->DE.B.h);break; +case OR_E: M_OR(R->DE.B.l);break; +case OR_H: M_OR(R->HL.B.h);break; +case OR_L: M_OR(R->HL.B.l);break; +case OR_A: M_OR(R->AF.B.h);break; +case OR_xHL: I=RdZ80(R->HL.W);M_OR(I);break; +case OR_BYTE: I=RdZ80(R->PC.W++);M_OR(I);break; + +case ADC_B: M_ADC(R->BC.B.h);break; +case ADC_C: M_ADC(R->BC.B.l);break; +case ADC_D: M_ADC(R->DE.B.h);break; +case ADC_E: M_ADC(R->DE.B.l);break; +case ADC_H: M_ADC(R->HL.B.h);break; +case ADC_L: M_ADC(R->HL.B.l);break; +case ADC_A: M_ADC(R->AF.B.h);break; +case ADC_xHL: I=RdZ80(R->HL.W);M_ADC(I);break; +case ADC_BYTE: I=RdZ80(R->PC.W++);M_ADC(I);break; + +case SBC_B: M_SBC(R->BC.B.h);break; +case SBC_C: M_SBC(R->BC.B.l);break; +case SBC_D: M_SBC(R->DE.B.h);break; +case SBC_E: M_SBC(R->DE.B.l);break; +case SBC_H: M_SBC(R->HL.B.h);break; +case SBC_L: M_SBC(R->HL.B.l);break; +case SBC_A: M_SBC(R->AF.B.h);break; +case SBC_xHL: I=RdZ80(R->HL.W);M_SBC(I);break; +case SBC_BYTE: I=RdZ80(R->PC.W++);M_SBC(I);break; + +case XOR_B: M_XOR(R->BC.B.h);break; +case XOR_C: M_XOR(R->BC.B.l);break; +case XOR_D: M_XOR(R->DE.B.h);break; +case XOR_E: M_XOR(R->DE.B.l);break; +case XOR_H: M_XOR(R->HL.B.h);break; +case XOR_L: M_XOR(R->HL.B.l);break; +case XOR_A: R->AF.B.h=0;R->AF.B.l=P_FLAG|Z_FLAG;break; +case XOR_xHL: I=RdZ80(R->HL.W);M_XOR(I);break; +case XOR_BYTE: I=RdZ80(R->PC.W++);M_XOR(I);break; + +case CP_B: M_CP(R->BC.B.h);break; +case CP_C: M_CP(R->BC.B.l);break; +case CP_D: M_CP(R->DE.B.h);break; +case CP_E: M_CP(R->DE.B.l);break; +case CP_H: M_CP(R->HL.B.h);break; +case CP_L: M_CP(R->HL.B.l);break; +case CP_A: R->AF.B.l=N_FLAG|Z_FLAG;break; +case CP_xHL: I=RdZ80(R->HL.W);M_CP(I);break; +case CP_BYTE: I=RdZ80(R->PC.W++);M_CP(I);break; + +case LD_BC_WORD: M_LDWORD(BC);break; +case LD_DE_WORD: M_LDWORD(DE);break; +case LD_HL_WORD: M_LDWORD(HL);break; +case LD_SP_WORD: M_LDWORD(SP);break; + +case LD_PC_HL: R->PC.W=R->HL.W;break; +case LD_SP_HL: R->SP.W=R->HL.W;break; +case LD_A_xBC: R->AF.B.h=RdZ80(R->BC.W);break; +case LD_A_xDE: R->AF.B.h=RdZ80(R->DE.W);break; + +case ADD_HL_BC: M_ADDW(HL,BC);break; +case ADD_HL_DE: M_ADDW(HL,DE);break; +case ADD_HL_HL: M_ADDW(HL,HL);break; +case ADD_HL_SP: M_ADDW(HL,SP);break; + +case DEC_BC: R->BC.W--;break; +case DEC_DE: R->DE.W--;break; +case DEC_HL: R->HL.W--;break; +case DEC_SP: R->SP.W--;break; + +case INC_BC: R->BC.W++;break; +case INC_DE: R->DE.W++;break; +case INC_HL: R->HL.W++;break; +case INC_SP: R->SP.W++;break; + +case DEC_B: M_DEC(R->BC.B.h);break; +case DEC_C: M_DEC(R->BC.B.l);break; +case DEC_D: M_DEC(R->DE.B.h);break; +case DEC_E: M_DEC(R->DE.B.l);break; +case DEC_H: M_DEC(R->HL.B.h);break; +case DEC_L: M_DEC(R->HL.B.l);break; +case DEC_A: M_DEC(R->AF.B.h);break; +case DEC_xHL: I=RdZ80(R->HL.W);M_DEC(I);WrZ80(R->HL.W,I);break; + +case INC_B: M_INC(R->BC.B.h);break; +case INC_C: M_INC(R->BC.B.l);break; +case INC_D: M_INC(R->DE.B.h);break; +case INC_E: M_INC(R->DE.B.l);break; +case INC_H: M_INC(R->HL.B.h);break; +case INC_L: M_INC(R->HL.B.l);break; +case INC_A: M_INC(R->AF.B.h);break; +case INC_xHL: I=RdZ80(R->HL.W);M_INC(I);WrZ80(R->HL.W,I);break; + +case RLCA: + I=R->AF.B.h&0x80? C_FLAG:0; + R->AF.B.h=(R->AF.B.h<<1)|I; + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; +case RLA: + I=R->AF.B.h&0x80? C_FLAG:0; + R->AF.B.h=(R->AF.B.h<<1)|(R->AF.B.l&C_FLAG); + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; +case RRCA: + I=R->AF.B.h&0x01; + R->AF.B.h=(R->AF.B.h>>1)|(I? 0x80:0); + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; +case RRA: + I=R->AF.B.h&0x01; + R->AF.B.h=(R->AF.B.h>>1)|(R->AF.B.l&C_FLAG? 0x80:0); + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; + +case RST00: M_RST(0x0000);break; +case RST08: M_RST(0x0008);break; +case RST10: M_RST(0x0010);break; +case RST18: M_RST(0x0018);break; +case RST20: M_RST(0x0020);break; +case RST28: M_RST(0x0028);break; +case RST30: M_RST(0x0030);break; +case RST38: M_RST(0x0038);break; + +case PUSH_BC: M_PUSH(BC);break; +case PUSH_DE: M_PUSH(DE);break; +case PUSH_HL: M_PUSH(HL);break; +case PUSH_AF: M_PUSH(AF);break; + +case POP_BC: M_POP(BC);break; +case POP_DE: M_POP(DE);break; +case POP_HL: M_POP(HL);break; +case POP_AF: M_POP(AF);break; + +case DJNZ: if(--R->BC.B.h) { M_JR; } else R->PC.W++;break; +case JP: M_JP;break; +case JR: M_JR;break; +case CALL: M_CALL;break; +case RET: M_RET;break; +case SCF: S(C_FLAG);R(N_FLAG|H_FLAG);break; +case CPL: R->AF.B.h=~R->AF.B.h;S(N_FLAG|H_FLAG);break; +case NOP: break; +case OUTA: OutZ80(RdZ80(R->PC.W++),R->AF.B.h);break; +case INA: R->AF.B.h=InZ80(RdZ80(R->PC.W++));break; +case HALT: R->PC.W--;R->IFF|=0x80;R->ICount=0;break; + +case DI: + R->IFF&=0xFE; + break; +case EI: + R->IFF|=0x01; + if(R->IRequest!=INT_NONE) + { + R->IFF|=0x20; + R->IBackup=R->ICount; + R->ICount=1; + } + break; + +case CCF: + R->AF.B.l^=C_FLAG;R(N_FLAG|H_FLAG); + R->AF.B.l|=R->AF.B.l&C_FLAG? 0:H_FLAG; + break; + +case EXX: + J.W=R->BC.W;R->BC.W=R->BC1.W;R->BC1.W=J.W; + J.W=R->DE.W;R->DE.W=R->DE1.W;R->DE1.W=J.W; + J.W=R->HL.W;R->HL.W=R->HL1.W;R->HL1.W=J.W; + break; + +case EX_DE_HL: J.W=R->DE.W;R->DE.W=R->HL.W;R->HL.W=J.W;break; +case EX_AF_AF: J.W=R->AF.W;R->AF.W=R->AF1.W;R->AF1.W=J.W;break; + +case LD_B_B: R->BC.B.h=R->BC.B.h;break; +case LD_C_B: R->BC.B.l=R->BC.B.h;break; +case LD_D_B: R->DE.B.h=R->BC.B.h;break; +case LD_E_B: R->DE.B.l=R->BC.B.h;break; +case LD_H_B: R->HL.B.h=R->BC.B.h;break; +case LD_L_B: R->HL.B.l=R->BC.B.h;break; +case LD_A_B: R->AF.B.h=R->BC.B.h;break; +case LD_xHL_B: WrZ80(R->HL.W,R->BC.B.h);break; + +case LD_B_C: R->BC.B.h=R->BC.B.l;break; +case LD_C_C: R->BC.B.l=R->BC.B.l;break; +case LD_D_C: R->DE.B.h=R->BC.B.l;break; +case LD_E_C: R->DE.B.l=R->BC.B.l;break; +case LD_H_C: R->HL.B.h=R->BC.B.l;break; +case LD_L_C: R->HL.B.l=R->BC.B.l;break; +case LD_A_C: R->AF.B.h=R->BC.B.l;break; +case LD_xHL_C: WrZ80(R->HL.W,R->BC.B.l);break; + +case LD_B_D: R->BC.B.h=R->DE.B.h;break; +case LD_C_D: R->BC.B.l=R->DE.B.h;break; +case LD_D_D: R->DE.B.h=R->DE.B.h;break; +case LD_E_D: R->DE.B.l=R->DE.B.h;break; +case LD_H_D: R->HL.B.h=R->DE.B.h;break; +case LD_L_D: R->HL.B.l=R->DE.B.h;break; +case LD_A_D: R->AF.B.h=R->DE.B.h;break; +case LD_xHL_D: WrZ80(R->HL.W,R->DE.B.h);break; + +case LD_B_E: R->BC.B.h=R->DE.B.l;break; +case LD_C_E: R->BC.B.l=R->DE.B.l;break; +case LD_D_E: R->DE.B.h=R->DE.B.l;break; +case LD_E_E: R->DE.B.l=R->DE.B.l;break; +case LD_H_E: R->HL.B.h=R->DE.B.l;break; +case LD_L_E: R->HL.B.l=R->DE.B.l;break; +case LD_A_E: R->AF.B.h=R->DE.B.l;break; +case LD_xHL_E: WrZ80(R->HL.W,R->DE.B.l);break; + +case LD_B_H: R->BC.B.h=R->HL.B.h;break; +case LD_C_H: R->BC.B.l=R->HL.B.h;break; +case LD_D_H: R->DE.B.h=R->HL.B.h;break; +case LD_E_H: R->DE.B.l=R->HL.B.h;break; +case LD_H_H: R->HL.B.h=R->HL.B.h;break; +case LD_L_H: R->HL.B.l=R->HL.B.h;break; +case LD_A_H: R->AF.B.h=R->HL.B.h;break; +case LD_xHL_H: WrZ80(R->HL.W,R->HL.B.h);break; + +case LD_B_L: R->BC.B.h=R->HL.B.l;break; +case LD_C_L: R->BC.B.l=R->HL.B.l;break; +case LD_D_L: R->DE.B.h=R->HL.B.l;break; +case LD_E_L: R->DE.B.l=R->HL.B.l;break; +case LD_H_L: R->HL.B.h=R->HL.B.l;break; +case LD_L_L: R->HL.B.l=R->HL.B.l;break; +case LD_A_L: R->AF.B.h=R->HL.B.l;break; +case LD_xHL_L: WrZ80(R->HL.W,R->HL.B.l);break; + +case LD_B_A: R->BC.B.h=R->AF.B.h;break; +case LD_C_A: R->BC.B.l=R->AF.B.h;break; +case LD_D_A: R->DE.B.h=R->AF.B.h;break; +case LD_E_A: R->DE.B.l=R->AF.B.h;break; +case LD_H_A: R->HL.B.h=R->AF.B.h;break; +case LD_L_A: R->HL.B.l=R->AF.B.h;break; +case LD_A_A: R->AF.B.h=R->AF.B.h;break; +case LD_xHL_A: WrZ80(R->HL.W,R->AF.B.h);break; + +case LD_xBC_A: WrZ80(R->BC.W,R->AF.B.h);break; +case LD_xDE_A: WrZ80(R->DE.W,R->AF.B.h);break; + +case LD_B_xHL: R->BC.B.h=RdZ80(R->HL.W);break; +case LD_C_xHL: R->BC.B.l=RdZ80(R->HL.W);break; +case LD_D_xHL: R->DE.B.h=RdZ80(R->HL.W);break; +case LD_E_xHL: R->DE.B.l=RdZ80(R->HL.W);break; +case LD_H_xHL: R->HL.B.h=RdZ80(R->HL.W);break; +case LD_L_xHL: R->HL.B.l=RdZ80(R->HL.W);break; +case LD_A_xHL: R->AF.B.h=RdZ80(R->HL.W);break; + +case LD_B_BYTE: R->BC.B.h=RdZ80(R->PC.W++);break; +case LD_C_BYTE: R->BC.B.l=RdZ80(R->PC.W++);break; +case LD_D_BYTE: R->DE.B.h=RdZ80(R->PC.W++);break; +case LD_E_BYTE: R->DE.B.l=RdZ80(R->PC.W++);break; +case LD_H_BYTE: R->HL.B.h=RdZ80(R->PC.W++);break; +case LD_L_BYTE: R->HL.B.l=RdZ80(R->PC.W++);break; +case LD_A_BYTE: R->AF.B.h=RdZ80(R->PC.W++);break; +case LD_xHL_BYTE: WrZ80(R->HL.W,RdZ80(R->PC.W++));break; + +case LD_xWORD_HL: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W++,R->HL.B.l); + WrZ80(J.W,R->HL.B.h); + break; + +case LD_HL_xWORD: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->HL.B.l=RdZ80(J.W++); + R->HL.B.h=RdZ80(J.W); + break; + +case LD_A_xWORD: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->AF.B.h=RdZ80(J.W); + break; + +case LD_xWORD_A: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W,R->AF.B.h); + break; + +case EX_HL_xSP: + J.B.l=RdZ80(R->SP.W);WrZ80(R->SP.W++,R->HL.B.l); + J.B.h=RdZ80(R->SP.W);WrZ80(R->SP.W--,R->HL.B.h); + R->HL.W=J.W; + break; + +case DAA: + J.W=R->AF.B.h; + if(R->AF.B.l&C_FLAG) J.W|=256; + if(R->AF.B.l&H_FLAG) J.W|=512; + if(R->AF.B.l&N_FLAG) J.W|=1024; + R->AF.W=DAATable[J.W]; + break; + +default: + if(R->TrapBadOps) + printf + ( + "[Z80 %lX] Unrecognized instruction: %02X at PC=%04X\n", + (long)R->User,RdZ80(R->PC.W-1),R->PC.W-1 + ); + break; diff --git a/MCUME_teensy/teensymsx/CodesCB.h b/MCUME_teensy/teensymsx/CodesCB.h new file mode 100644 index 0000000..c8a5f91 --- /dev/null +++ b/MCUME_teensy/teensymsx/CodesCB.h @@ -0,0 +1,204 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** CodesCB.h **/ +/** **/ +/** This file contains implementation for the CB table of **/ +/** Z80 commands. It is included from Z80.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +case RLC_B: M_RLC(R->BC.B.h);break; case RLC_C: M_RLC(R->BC.B.l);break; +case RLC_D: M_RLC(R->DE.B.h);break; case RLC_E: M_RLC(R->DE.B.l);break; +case RLC_H: M_RLC(R->HL.B.h);break; case RLC_L: M_RLC(R->HL.B.l);break; +case RLC_xHL: I=RdZ80(R->HL.W);M_RLC(I);WrZ80(R->HL.W,I);break; +case RLC_A: M_RLC(R->AF.B.h);break; + +case RRC_B: M_RRC(R->BC.B.h);break; case RRC_C: M_RRC(R->BC.B.l);break; +case RRC_D: M_RRC(R->DE.B.h);break; case RRC_E: M_RRC(R->DE.B.l);break; +case RRC_H: M_RRC(R->HL.B.h);break; case RRC_L: M_RRC(R->HL.B.l);break; +case RRC_xHL: I=RdZ80(R->HL.W);M_RRC(I);WrZ80(R->HL.W,I);break; +case RRC_A: M_RRC(R->AF.B.h);break; + +case RL_B: M_RL(R->BC.B.h);break; case RL_C: M_RL(R->BC.B.l);break; +case RL_D: M_RL(R->DE.B.h);break; case RL_E: M_RL(R->DE.B.l);break; +case RL_H: M_RL(R->HL.B.h);break; case RL_L: M_RL(R->HL.B.l);break; +case RL_xHL: I=RdZ80(R->HL.W);M_RL(I);WrZ80(R->HL.W,I);break; +case RL_A: M_RL(R->AF.B.h);break; + +case RR_B: M_RR(R->BC.B.h);break; case RR_C: M_RR(R->BC.B.l);break; +case RR_D: M_RR(R->DE.B.h);break; case RR_E: M_RR(R->DE.B.l);break; +case RR_H: M_RR(R->HL.B.h);break; case RR_L: M_RR(R->HL.B.l);break; +case RR_xHL: I=RdZ80(R->HL.W);M_RR(I);WrZ80(R->HL.W,I);break; +case RR_A: M_RR(R->AF.B.h);break; + +case SLA_B: M_SLA(R->BC.B.h);break; case SLA_C: M_SLA(R->BC.B.l);break; +case SLA_D: M_SLA(R->DE.B.h);break; case SLA_E: M_SLA(R->DE.B.l);break; +case SLA_H: M_SLA(R->HL.B.h);break; case SLA_L: M_SLA(R->HL.B.l);break; +case SLA_xHL: I=RdZ80(R->HL.W);M_SLA(I);WrZ80(R->HL.W,I);break; +case SLA_A: M_SLA(R->AF.B.h);break; + +case SRA_B: M_SRA(R->BC.B.h);break; case SRA_C: M_SRA(R->BC.B.l);break; +case SRA_D: M_SRA(R->DE.B.h);break; case SRA_E: M_SRA(R->DE.B.l);break; +case SRA_H: M_SRA(R->HL.B.h);break; case SRA_L: M_SRA(R->HL.B.l);break; +case SRA_xHL: I=RdZ80(R->HL.W);M_SRA(I);WrZ80(R->HL.W,I);break; +case SRA_A: M_SRA(R->AF.B.h);break; + +case SLL_B: M_SLL(R->BC.B.h);break; case SLL_C: M_SLL(R->BC.B.l);break; +case SLL_D: M_SLL(R->DE.B.h);break; case SLL_E: M_SLL(R->DE.B.l);break; +case SLL_H: M_SLL(R->HL.B.h);break; case SLL_L: M_SLL(R->HL.B.l);break; +case SLL_xHL: I=RdZ80(R->HL.W);M_SLL(I);WrZ80(R->HL.W,I);break; +case SLL_A: M_SLL(R->AF.B.h);break; + +case SRL_B: M_SRL(R->BC.B.h);break; case SRL_C: M_SRL(R->BC.B.l);break; +case SRL_D: M_SRL(R->DE.B.h);break; case SRL_E: M_SRL(R->DE.B.l);break; +case SRL_H: M_SRL(R->HL.B.h);break; case SRL_L: M_SRL(R->HL.B.l);break; +case SRL_xHL: I=RdZ80(R->HL.W);M_SRL(I);WrZ80(R->HL.W,I);break; +case SRL_A: M_SRL(R->AF.B.h);break; + +case BIT0_B: M_BIT(0,R->BC.B.h);break; case BIT0_C: M_BIT(0,R->BC.B.l);break; +case BIT0_D: M_BIT(0,R->DE.B.h);break; case BIT0_E: M_BIT(0,R->DE.B.l);break; +case BIT0_H: M_BIT(0,R->HL.B.h);break; case BIT0_L: M_BIT(0,R->HL.B.l);break; +case BIT0_xHL: I=RdZ80(R->HL.W);M_BIT(0,I);break; +case BIT0_A: M_BIT(0,R->AF.B.h);break; + +case BIT1_B: M_BIT(1,R->BC.B.h);break; case BIT1_C: M_BIT(1,R->BC.B.l);break; +case BIT1_D: M_BIT(1,R->DE.B.h);break; case BIT1_E: M_BIT(1,R->DE.B.l);break; +case BIT1_H: M_BIT(1,R->HL.B.h);break; case BIT1_L: M_BIT(1,R->HL.B.l);break; +case BIT1_xHL: I=RdZ80(R->HL.W);M_BIT(1,I);break; +case BIT1_A: M_BIT(1,R->AF.B.h);break; + +case BIT2_B: M_BIT(2,R->BC.B.h);break; case BIT2_C: M_BIT(2,R->BC.B.l);break; +case BIT2_D: M_BIT(2,R->DE.B.h);break; case BIT2_E: M_BIT(2,R->DE.B.l);break; +case BIT2_H: M_BIT(2,R->HL.B.h);break; case BIT2_L: M_BIT(2,R->HL.B.l);break; +case BIT2_xHL: I=RdZ80(R->HL.W);M_BIT(2,I);break; +case BIT2_A: M_BIT(2,R->AF.B.h);break; + +case BIT3_B: M_BIT(3,R->BC.B.h);break; case BIT3_C: M_BIT(3,R->BC.B.l);break; +case BIT3_D: M_BIT(3,R->DE.B.h);break; case BIT3_E: M_BIT(3,R->DE.B.l);break; +case BIT3_H: M_BIT(3,R->HL.B.h);break; case BIT3_L: M_BIT(3,R->HL.B.l);break; +case BIT3_xHL: I=RdZ80(R->HL.W);M_BIT(3,I);break; +case BIT3_A: M_BIT(3,R->AF.B.h);break; + +case BIT4_B: M_BIT(4,R->BC.B.h);break; case BIT4_C: M_BIT(4,R->BC.B.l);break; +case BIT4_D: M_BIT(4,R->DE.B.h);break; case BIT4_E: M_BIT(4,R->DE.B.l);break; +case BIT4_H: M_BIT(4,R->HL.B.h);break; case BIT4_L: M_BIT(4,R->HL.B.l);break; +case BIT4_xHL: I=RdZ80(R->HL.W);M_BIT(4,I);break; +case BIT4_A: M_BIT(4,R->AF.B.h);break; + +case BIT5_B: M_BIT(5,R->BC.B.h);break; case BIT5_C: M_BIT(5,R->BC.B.l);break; +case BIT5_D: M_BIT(5,R->DE.B.h);break; case BIT5_E: M_BIT(5,R->DE.B.l);break; +case BIT5_H: M_BIT(5,R->HL.B.h);break; case BIT5_L: M_BIT(5,R->HL.B.l);break; +case BIT5_xHL: I=RdZ80(R->HL.W);M_BIT(5,I);break; +case BIT5_A: M_BIT(5,R->AF.B.h);break; + +case BIT6_B: M_BIT(6,R->BC.B.h);break; case BIT6_C: M_BIT(6,R->BC.B.l);break; +case BIT6_D: M_BIT(6,R->DE.B.h);break; case BIT6_E: M_BIT(6,R->DE.B.l);break; +case BIT6_H: M_BIT(6,R->HL.B.h);break; case BIT6_L: M_BIT(6,R->HL.B.l);break; +case BIT6_xHL: I=RdZ80(R->HL.W);M_BIT(6,I);break; +case BIT6_A: M_BIT(6,R->AF.B.h);break; + +case BIT7_B: M_BIT(7,R->BC.B.h);break; case BIT7_C: M_BIT(7,R->BC.B.l);break; +case BIT7_D: M_BIT(7,R->DE.B.h);break; case BIT7_E: M_BIT(7,R->DE.B.l);break; +case BIT7_H: M_BIT(7,R->HL.B.h);break; case BIT7_L: M_BIT(7,R->HL.B.l);break; +case BIT7_xHL: I=RdZ80(R->HL.W);M_BIT(7,I);break; +case BIT7_A: M_BIT(7,R->AF.B.h);break; + +case RES0_B: M_RES(0,R->BC.B.h);break; case RES0_C: M_RES(0,R->BC.B.l);break; +case RES0_D: M_RES(0,R->DE.B.h);break; case RES0_E: M_RES(0,R->DE.B.l);break; +case RES0_H: M_RES(0,R->HL.B.h);break; case RES0_L: M_RES(0,R->HL.B.l);break; +case RES0_xHL: I=RdZ80(R->HL.W);M_RES(0,I);WrZ80(R->HL.W,I);break; +case RES0_A: M_RES(0,R->AF.B.h);break; + +case RES1_B: M_RES(1,R->BC.B.h);break; case RES1_C: M_RES(1,R->BC.B.l);break; +case RES1_D: M_RES(1,R->DE.B.h);break; case RES1_E: M_RES(1,R->DE.B.l);break; +case RES1_H: M_RES(1,R->HL.B.h);break; case RES1_L: M_RES(1,R->HL.B.l);break; +case RES1_xHL: I=RdZ80(R->HL.W);M_RES(1,I);WrZ80(R->HL.W,I);break; +case RES1_A: M_RES(1,R->AF.B.h);break; + +case RES2_B: M_RES(2,R->BC.B.h);break; case RES2_C: M_RES(2,R->BC.B.l);break; +case RES2_D: M_RES(2,R->DE.B.h);break; case RES2_E: M_RES(2,R->DE.B.l);break; +case RES2_H: M_RES(2,R->HL.B.h);break; case RES2_L: M_RES(2,R->HL.B.l);break; +case RES2_xHL: I=RdZ80(R->HL.W);M_RES(2,I);WrZ80(R->HL.W,I);break; +case RES2_A: M_RES(2,R->AF.B.h);break; + +case RES3_B: M_RES(3,R->BC.B.h);break; case RES3_C: M_RES(3,R->BC.B.l);break; +case RES3_D: M_RES(3,R->DE.B.h);break; case RES3_E: M_RES(3,R->DE.B.l);break; +case RES3_H: M_RES(3,R->HL.B.h);break; case RES3_L: M_RES(3,R->HL.B.l);break; +case RES3_xHL: I=RdZ80(R->HL.W);M_RES(3,I);WrZ80(R->HL.W,I);break; +case RES3_A: M_RES(3,R->AF.B.h);break; + +case RES4_B: M_RES(4,R->BC.B.h);break; case RES4_C: M_RES(4,R->BC.B.l);break; +case RES4_D: M_RES(4,R->DE.B.h);break; case RES4_E: M_RES(4,R->DE.B.l);break; +case RES4_H: M_RES(4,R->HL.B.h);break; case RES4_L: M_RES(4,R->HL.B.l);break; +case RES4_xHL: I=RdZ80(R->HL.W);M_RES(4,I);WrZ80(R->HL.W,I);break; +case RES4_A: M_RES(4,R->AF.B.h);break; + +case RES5_B: M_RES(5,R->BC.B.h);break; case RES5_C: M_RES(5,R->BC.B.l);break; +case RES5_D: M_RES(5,R->DE.B.h);break; case RES5_E: M_RES(5,R->DE.B.l);break; +case RES5_H: M_RES(5,R->HL.B.h);break; case RES5_L: M_RES(5,R->HL.B.l);break; +case RES5_xHL: I=RdZ80(R->HL.W);M_RES(5,I);WrZ80(R->HL.W,I);break; +case RES5_A: M_RES(5,R->AF.B.h);break; + +case RES6_B: M_RES(6,R->BC.B.h);break; case RES6_C: M_RES(6,R->BC.B.l);break; +case RES6_D: M_RES(6,R->DE.B.h);break; case RES6_E: M_RES(6,R->DE.B.l);break; +case RES6_H: M_RES(6,R->HL.B.h);break; case RES6_L: M_RES(6,R->HL.B.l);break; +case RES6_xHL: I=RdZ80(R->HL.W);M_RES(6,I);WrZ80(R->HL.W,I);break; +case RES6_A: M_RES(6,R->AF.B.h);break; + +case RES7_B: M_RES(7,R->BC.B.h);break; case RES7_C: M_RES(7,R->BC.B.l);break; +case RES7_D: M_RES(7,R->DE.B.h);break; case RES7_E: M_RES(7,R->DE.B.l);break; +case RES7_H: M_RES(7,R->HL.B.h);break; case RES7_L: M_RES(7,R->HL.B.l);break; +case RES7_xHL: I=RdZ80(R->HL.W);M_RES(7,I);WrZ80(R->HL.W,I);break; +case RES7_A: M_RES(7,R->AF.B.h);break; + +case SET0_B: M_SET(0,R->BC.B.h);break; case SET0_C: M_SET(0,R->BC.B.l);break; +case SET0_D: M_SET(0,R->DE.B.h);break; case SET0_E: M_SET(0,R->DE.B.l);break; +case SET0_H: M_SET(0,R->HL.B.h);break; case SET0_L: M_SET(0,R->HL.B.l);break; +case SET0_xHL: I=RdZ80(R->HL.W);M_SET(0,I);WrZ80(R->HL.W,I);break; +case SET0_A: M_SET(0,R->AF.B.h);break; + +case SET1_B: M_SET(1,R->BC.B.h);break; case SET1_C: M_SET(1,R->BC.B.l);break; +case SET1_D: M_SET(1,R->DE.B.h);break; case SET1_E: M_SET(1,R->DE.B.l);break; +case SET1_H: M_SET(1,R->HL.B.h);break; case SET1_L: M_SET(1,R->HL.B.l);break; +case SET1_xHL: I=RdZ80(R->HL.W);M_SET(1,I);WrZ80(R->HL.W,I);break; +case SET1_A: M_SET(1,R->AF.B.h);break; + +case SET2_B: M_SET(2,R->BC.B.h);break; case SET2_C: M_SET(2,R->BC.B.l);break; +case SET2_D: M_SET(2,R->DE.B.h);break; case SET2_E: M_SET(2,R->DE.B.l);break; +case SET2_H: M_SET(2,R->HL.B.h);break; case SET2_L: M_SET(2,R->HL.B.l);break; +case SET2_xHL: I=RdZ80(R->HL.W);M_SET(2,I);WrZ80(R->HL.W,I);break; +case SET2_A: M_SET(2,R->AF.B.h);break; + +case SET3_B: M_SET(3,R->BC.B.h);break; case SET3_C: M_SET(3,R->BC.B.l);break; +case SET3_D: M_SET(3,R->DE.B.h);break; case SET3_E: M_SET(3,R->DE.B.l);break; +case SET3_H: M_SET(3,R->HL.B.h);break; case SET3_L: M_SET(3,R->HL.B.l);break; +case SET3_xHL: I=RdZ80(R->HL.W);M_SET(3,I);WrZ80(R->HL.W,I);break; +case SET3_A: M_SET(3,R->AF.B.h);break; + +case SET4_B: M_SET(4,R->BC.B.h);break; case SET4_C: M_SET(4,R->BC.B.l);break; +case SET4_D: M_SET(4,R->DE.B.h);break; case SET4_E: M_SET(4,R->DE.B.l);break; +case SET4_H: M_SET(4,R->HL.B.h);break; case SET4_L: M_SET(4,R->HL.B.l);break; +case SET4_xHL: I=RdZ80(R->HL.W);M_SET(4,I);WrZ80(R->HL.W,I);break; +case SET4_A: M_SET(4,R->AF.B.h);break; + +case SET5_B: M_SET(5,R->BC.B.h);break; case SET5_C: M_SET(5,R->BC.B.l);break; +case SET5_D: M_SET(5,R->DE.B.h);break; case SET5_E: M_SET(5,R->DE.B.l);break; +case SET5_H: M_SET(5,R->HL.B.h);break; case SET5_L: M_SET(5,R->HL.B.l);break; +case SET5_xHL: I=RdZ80(R->HL.W);M_SET(5,I);WrZ80(R->HL.W,I);break; +case SET5_A: M_SET(5,R->AF.B.h);break; + +case SET6_B: M_SET(6,R->BC.B.h);break; case SET6_C: M_SET(6,R->BC.B.l);break; +case SET6_D: M_SET(6,R->DE.B.h);break; case SET6_E: M_SET(6,R->DE.B.l);break; +case SET6_H: M_SET(6,R->HL.B.h);break; case SET6_L: M_SET(6,R->HL.B.l);break; +case SET6_xHL: I=RdZ80(R->HL.W);M_SET(6,I);WrZ80(R->HL.W,I);break; +case SET6_A: M_SET(6,R->AF.B.h);break; + +case SET7_B: M_SET(7,R->BC.B.h);break; case SET7_C: M_SET(7,R->BC.B.l);break; +case SET7_D: M_SET(7,R->DE.B.h);break; case SET7_E: M_SET(7,R->DE.B.l);break; +case SET7_H: M_SET(7,R->HL.B.h);break; case SET7_L: M_SET(7,R->HL.B.l);break; +case SET7_xHL: I=RdZ80(R->HL.W);M_SET(7,I);WrZ80(R->HL.W,I);break; +case SET7_A: M_SET(7,R->AF.B.h);break; diff --git a/MCUME_teensy/teensymsx/CodesED.h b/MCUME_teensy/teensymsx/CodesED.h new file mode 100644 index 0000000..56a7c69 --- /dev/null +++ b/MCUME_teensy/teensymsx/CodesED.h @@ -0,0 +1,282 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** CodesED.h **/ +/** **/ +/** This file contains implementation for the ED table of **/ +/** Z80 commands. It is included from Z80.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +/** This is a special patch for emulating BIOS calls: ********/ +case DB_FE: PatchZ80(R);break; +/*************************************************************/ + +case ADC_HL_BC: M_ADCW(BC);break; +case ADC_HL_DE: M_ADCW(DE);break; +case ADC_HL_HL: M_ADCW(HL);break; +case ADC_HL_SP: M_ADCW(SP);break; + +case SBC_HL_BC: M_SBCW(BC);break; +case SBC_HL_DE: M_SBCW(DE);break; +case SBC_HL_HL: M_SBCW(HL);break; +case SBC_HL_SP: M_SBCW(SP);break; + +case LD_xWORDe_HL: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W++,R->HL.B.l); + WrZ80(J.W,R->HL.B.h); + break; +case LD_xWORDe_DE: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W++,R->DE.B.l); + WrZ80(J.W,R->DE.B.h); + break; +case LD_xWORDe_BC: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W++,R->BC.B.l); + WrZ80(J.W,R->BC.B.h); + break; +case LD_xWORDe_SP: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W++,R->SP.B.l); + WrZ80(J.W,R->SP.B.h); + break; + +case LD_HL_xWORDe: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->HL.B.l=RdZ80(J.W++); + R->HL.B.h=RdZ80(J.W); + break; +case LD_DE_xWORDe: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->DE.B.l=RdZ80(J.W++); + R->DE.B.h=RdZ80(J.W); + break; +case LD_BC_xWORDe: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->BC.B.l=RdZ80(J.W++); + R->BC.B.h=RdZ80(J.W); + break; +case LD_SP_xWORDe: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->SP.B.l=RdZ80(J.W++); + R->SP.B.h=RdZ80(J.W); + break; + +case RRD: + I=RdZ80(R->HL.W); + J.B.l=(I>>4)|(R->AF.B.h<<4); + WrZ80(R->HL.W,J.B.l); + R->AF.B.h=(I&0x0F)|(R->AF.B.h&0xF0); + R->AF.B.l=PZSTable[R->AF.B.h]|(R->AF.B.l&C_FLAG); + break; +case RLD: + I=RdZ80(R->HL.W); + J.B.l=(I<<4)|(R->AF.B.h&0x0F); + WrZ80(R->HL.W,J.B.l); + R->AF.B.h=(I>>4)|(R->AF.B.h&0xF0); + R->AF.B.l=PZSTable[R->AF.B.h]|(R->AF.B.l&C_FLAG); + break; + +case LD_A_I: + R->AF.B.h=R->I; + R->AF.B.l=(R->AF.B.l&C_FLAG)|(R->IFF&1? P_FLAG:0)|ZSTable[R->AF.B.h]; + break; + +case LD_A_R: + R->R++; + R->AF.B.h=(byte)(R->R-R->ICount); + R->AF.B.l=(R->AF.B.l&C_FLAG)|(R->IFF&1? P_FLAG:0)|ZSTable[R->AF.B.h]; + break; + +case LD_I_A: R->I=R->AF.B.h;break; +case LD_R_A: break; + +case IM_0: R->IFF&=0xF9;break; +case IM_1: R->IFF=(R->IFF&0xF9)|2;break; +case IM_2: R->IFF=(R->IFF&0xF9)|4;break; + +case RETI: M_RET;break; +case RETN: if(R->IFF&0x40) R->IFF|=0x01; else R->IFF&=0xFE; + M_RET;break; + +case NEG: I=R->AF.B.h;R->AF.B.h=0;M_SUB(I);break; + +case IN_B_xC: M_IN(R->BC.B.h);break; +case IN_C_xC: M_IN(R->BC.B.l);break; +case IN_D_xC: M_IN(R->DE.B.h);break; +case IN_E_xC: M_IN(R->DE.B.l);break; +case IN_H_xC: M_IN(R->HL.B.h);break; +case IN_L_xC: M_IN(R->HL.B.l);break; +case IN_A_xC: M_IN(R->AF.B.h);break; +case IN_F_xC: M_IN(J.B.l);break; + +case OUT_xC_B: OutZ80(R->BC.B.l,R->BC.B.h);break; +case OUT_xC_C: OutZ80(R->BC.B.l,R->BC.B.l);break; +case OUT_xC_D: OutZ80(R->BC.B.l,R->DE.B.h);break; +case OUT_xC_E: OutZ80(R->BC.B.l,R->DE.B.l);break; +case OUT_xC_H: OutZ80(R->BC.B.l,R->HL.B.h);break; +case OUT_xC_L: OutZ80(R->BC.B.l,R->HL.B.l);break; +case OUT_xC_A: OutZ80(R->BC.B.l,R->AF.B.h);break; + +case INI: + WrZ80(R->HL.W++,InZ80(R->BC.B.l)); + R->BC.B.h--; + R->AF.B.l=N_FLAG|(R->BC.B.h? 0:Z_FLAG); + break; + +case INIR: + do + { + WrZ80(R->HL.W++,InZ80(R->BC.B.l)); + R->BC.B.h--;R->ICount-=21; + } + while(R->BC.B.h&&(R->ICount>0)); + if(R->BC.B.h) { R->AF.B.l=N_FLAG;R->PC.W-=2; } + else { R->AF.B.l=Z_FLAG|N_FLAG;R->ICount+=5; } + break; + +case IND: + WrZ80(R->HL.W--,InZ80(R->BC.B.l)); + R->BC.B.h--; + R->AF.B.l=N_FLAG|(R->BC.B.h? 0:Z_FLAG); + break; + +case INDR: + do + { + WrZ80(R->HL.W--,InZ80(R->BC.B.l)); + R->BC.B.h--;R->ICount-=21; + } + while(R->BC.B.h&&(R->ICount>0)); + if(R->BC.B.h) { R->AF.B.l=N_FLAG;R->PC.W-=2; } + else { R->AF.B.l=Z_FLAG|N_FLAG;R->ICount+=5; } + break; + +case OUTI: + OutZ80(R->BC.B.l,RdZ80(R->HL.W++)); + R->BC.B.h--; + R->AF.B.l=N_FLAG|(R->BC.B.h? 0:Z_FLAG); + break; + +case OTIR: + do + { + OutZ80(R->BC.B.l,RdZ80(R->HL.W++)); + R->BC.B.h--;R->ICount-=21; + } + while(R->BC.B.h&&(R->ICount>0)); + if(R->BC.B.h) { R->AF.B.l=N_FLAG;R->PC.W-=2; } + else { R->AF.B.l=Z_FLAG|N_FLAG;R->ICount+=5; } + break; + +case OUTD: + OutZ80(R->BC.B.l,RdZ80(R->HL.W--)); + R->BC.B.h--; + R->AF.B.l=N_FLAG|(R->BC.B.h? 0:Z_FLAG); + break; + +case OTDR: + do + { + OutZ80(R->BC.B.l,RdZ80(R->HL.W--)); + R->BC.B.h--;R->ICount-=21; + } + while(R->BC.B.h&&(R->ICount>0)); + if(R->BC.B.h) { R->AF.B.l=N_FLAG;R->PC.W-=2; } + else { R->AF.B.l=Z_FLAG|N_FLAG;R->ICount+=5; } + break; + +case LDI: + WrZ80(R->DE.W++,RdZ80(R->HL.W++)); + R->BC.W--; + R->AF.B.l=(R->AF.B.l&~(N_FLAG|H_FLAG|P_FLAG))|(R->BC.W? P_FLAG:0); + break; + +case LDIR: + do + { + WrZ80(R->DE.W++,RdZ80(R->HL.W++)); + R->BC.W--;R->ICount-=21; + } + while(R->BC.W&&(R->ICount>0)); + R->AF.B.l&=~(N_FLAG|H_FLAG|P_FLAG); + if(R->BC.W) { R->AF.B.l|=N_FLAG;R->PC.W-=2; } + else R->ICount+=5; + break; + +case LDD: + WrZ80(R->DE.W--,RdZ80(R->HL.W--)); + R->BC.W--; + R->AF.B.l=(R->AF.B.l&~(N_FLAG|H_FLAG|P_FLAG))|(R->BC.W? P_FLAG:0); + break; + +case LDDR: + do + { + WrZ80(R->DE.W--,RdZ80(R->HL.W--)); + R->BC.W--;R->ICount-=21; + } + while(R->BC.W&&(R->ICount>0)); + R->AF.B.l&=~(N_FLAG|H_FLAG|P_FLAG); + if(R->BC.W) { R->AF.B.l|=N_FLAG;R->PC.W-=2; } + else R->ICount+=5; + break; + +case CPI: + I=RdZ80(R->HL.W++); + J.B.l=R->AF.B.h-I; + R->BC.W--; + R->AF.B.l = + N_FLAG|(R->AF.B.l&C_FLAG)|ZSTable[J.B.l]| + ((R->AF.B.h^I^J.B.l)&H_FLAG)|(R->BC.W? P_FLAG:0); + break; + +case CPIR: + do + { + I=RdZ80(R->HL.W++); + J.B.l=R->AF.B.h-I; + R->BC.W--;R->ICount-=21; + } + while(R->BC.W&&J.B.l&&(R->ICount>0)); + R->AF.B.l = + N_FLAG|(R->AF.B.l&C_FLAG)|ZSTable[J.B.l]| + ((R->AF.B.h^I^J.B.l)&H_FLAG)|(R->BC.W? P_FLAG:0); + if(R->BC.W&&J.B.l) R->PC.W-=2; else R->ICount+=5; + break; + +case CPD: + I=RdZ80(R->HL.W--); + J.B.l=R->AF.B.h-I; + R->BC.W--; + R->AF.B.l = + N_FLAG|(R->AF.B.l&C_FLAG)|ZSTable[J.B.l]| + ((R->AF.B.h^I^J.B.l)&H_FLAG)|(R->BC.W? P_FLAG:0); + break; + +case CPDR: + do + { + I=RdZ80(R->HL.W--); + J.B.l=R->AF.B.h-I; + R->BC.W--;R->ICount-=21; + } + while(R->BC.W&&J.B.l); + R->AF.B.l = + N_FLAG|(R->AF.B.l&C_FLAG)|ZSTable[J.B.l]| + ((R->AF.B.h^I^J.B.l)&H_FLAG)|(R->BC.W? P_FLAG:0); + if(R->BC.W&&J.B.l) R->PC.W-=2; else R->ICount+=5; + break; diff --git a/MCUME_teensy/teensymsx/CodesXCB.h b/MCUME_teensy/teensymsx/CodesXCB.h new file mode 100644 index 0000000..0b84ca2 --- /dev/null +++ b/MCUME_teensy/teensymsx/CodesXCB.h @@ -0,0 +1,64 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** CodesXCB.h **/ +/** **/ +/** This file contains implementation for FD/DD-CB tables **/ +/** of Z80 commands. It is included from Z80.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +case RLC_xHL: I=RdZ80(J.W);M_RLC(I);WrZ80(J.W,I);break; +case RRC_xHL: I=RdZ80(J.W);M_RRC(I);WrZ80(J.W,I);break; +case RL_xHL: I=RdZ80(J.W);M_RL(I);WrZ80(J.W,I);break; +case RR_xHL: I=RdZ80(J.W);M_RR(I);WrZ80(J.W,I);break; +case SLA_xHL: I=RdZ80(J.W);M_SLA(I);WrZ80(J.W,I);break; +case SRA_xHL: I=RdZ80(J.W);M_SRA(I);WrZ80(J.W,I);break; +case SLL_xHL: I=RdZ80(J.W);M_SLL(I);WrZ80(J.W,I);break; +case SRL_xHL: I=RdZ80(J.W);M_SRL(I);WrZ80(J.W,I);break; + +case BIT0_B: case BIT0_C: case BIT0_D: case BIT0_E: +case BIT0_H: case BIT0_L: case BIT0_A: +case BIT0_xHL: I=RdZ80(J.W);M_BIT(0,I);break; +case BIT1_B: case BIT1_C: case BIT1_D: case BIT1_E: +case BIT1_H: case BIT1_L: case BIT1_A: +case BIT1_xHL: I=RdZ80(J.W);M_BIT(1,I);break; +case BIT2_B: case BIT2_C: case BIT2_D: case BIT2_E: +case BIT2_H: case BIT2_L: case BIT2_A: +case BIT2_xHL: I=RdZ80(J.W);M_BIT(2,I);break; +case BIT3_B: case BIT3_C: case BIT3_D: case BIT3_E: +case BIT3_H: case BIT3_L: case BIT3_A: +case BIT3_xHL: I=RdZ80(J.W);M_BIT(3,I);break; +case BIT4_B: case BIT4_C: case BIT4_D: case BIT4_E: +case BIT4_H: case BIT4_L: case BIT4_A: +case BIT4_xHL: I=RdZ80(J.W);M_BIT(4,I);break; +case BIT5_B: case BIT5_C: case BIT5_D: case BIT5_E: +case BIT5_H: case BIT5_L: case BIT5_A: +case BIT5_xHL: I=RdZ80(J.W);M_BIT(5,I);break; +case BIT6_B: case BIT6_C: case BIT6_D: case BIT6_E: +case BIT6_H: case BIT6_L: case BIT6_A: +case BIT6_xHL: I=RdZ80(J.W);M_BIT(6,I);break; +case BIT7_B: case BIT7_C: case BIT7_D: case BIT7_E: +case BIT7_H: case BIT7_L: case BIT7_A: +case BIT7_xHL: I=RdZ80(J.W);M_BIT(7,I);break; + +case RES0_xHL: I=RdZ80(J.W);M_RES(0,I);WrZ80(J.W,I);break; +case RES1_xHL: I=RdZ80(J.W);M_RES(1,I);WrZ80(J.W,I);break; +case RES2_xHL: I=RdZ80(J.W);M_RES(2,I);WrZ80(J.W,I);break; +case RES3_xHL: I=RdZ80(J.W);M_RES(3,I);WrZ80(J.W,I);break; +case RES4_xHL: I=RdZ80(J.W);M_RES(4,I);WrZ80(J.W,I);break; +case RES5_xHL: I=RdZ80(J.W);M_RES(5,I);WrZ80(J.W,I);break; +case RES6_xHL: I=RdZ80(J.W);M_RES(6,I);WrZ80(J.W,I);break; +case RES7_xHL: I=RdZ80(J.W);M_RES(7,I);WrZ80(J.W,I);break; + +case SET0_xHL: I=RdZ80(J.W);M_SET(0,I);WrZ80(J.W,I);break; +case SET1_xHL: I=RdZ80(J.W);M_SET(1,I);WrZ80(J.W,I);break; +case SET2_xHL: I=RdZ80(J.W);M_SET(2,I);WrZ80(J.W,I);break; +case SET3_xHL: I=RdZ80(J.W);M_SET(3,I);WrZ80(J.W,I);break; +case SET4_xHL: I=RdZ80(J.W);M_SET(4,I);WrZ80(J.W,I);break; +case SET5_xHL: I=RdZ80(J.W);M_SET(5,I);WrZ80(J.W,I);break; +case SET6_xHL: I=RdZ80(J.W);M_SET(6,I);WrZ80(J.W,I);break; +case SET7_xHL: I=RdZ80(J.W);M_SET(7,I);WrZ80(J.W,I);break; diff --git a/MCUME_teensy/teensymsx/CodesXX.h b/MCUME_teensy/teensymsx/CodesXX.h new file mode 100644 index 0000000..98733cd --- /dev/null +++ b/MCUME_teensy/teensymsx/CodesXX.h @@ -0,0 +1,388 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** CodesXX.h **/ +/** **/ +/** This file contains implementation for FD/DD tables of **/ +/** Z80 commands. It is included from Z80.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +case JR_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W++; else { M_JR; } break; +case JR_NC: if(R->AF.B.l&C_FLAG) R->PC.W++; else { M_JR; } break; +case JR_Z: if(R->AF.B.l&Z_FLAG) { M_JR; } else R->PC.W++; break; +case JR_C: if(R->AF.B.l&C_FLAG) { M_JR; } else R->PC.W++; break; + +case JP_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { M_JP; } break; +case JP_Z: if(R->AF.B.l&Z_FLAG) { M_JP; } else R->PC.W+=2; break; +case JP_C: if(R->AF.B.l&C_FLAG) { M_JP; } else R->PC.W+=2; break; +case JP_PE: if(R->AF.B.l&P_FLAG) { M_JP; } else R->PC.W+=2; break; +case JP_M: if(R->AF.B.l&S_FLAG) { M_JP; } else R->PC.W+=2; break; + +case RET_NZ: if(!(R->AF.B.l&Z_FLAG)) { M_RET; } break; +case RET_NC: if(!(R->AF.B.l&C_FLAG)) { M_RET; } break; +case RET_PO: if(!(R->AF.B.l&P_FLAG)) { M_RET; } break; +case RET_P: if(!(R->AF.B.l&S_FLAG)) { M_RET; } break; +case RET_Z: if(R->AF.B.l&Z_FLAG) { M_RET; } break; +case RET_C: if(R->AF.B.l&C_FLAG) { M_RET; } break; +case RET_PE: if(R->AF.B.l&P_FLAG) { M_RET; } break; +case RET_M: if(R->AF.B.l&S_FLAG) { M_RET; } break; + +case CALL_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { M_CALL; } break; +case CALL_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { M_CALL; } break; +case CALL_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { M_CALL; } break; +case CALL_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { M_CALL; } break; +case CALL_Z: if(R->AF.B.l&Z_FLAG) { M_CALL; } else R->PC.W+=2; break; +case CALL_C: if(R->AF.B.l&C_FLAG) { M_CALL; } else R->PC.W+=2; break; +case CALL_PE: if(R->AF.B.l&P_FLAG) { M_CALL; } else R->PC.W+=2; break; +case CALL_M: if(R->AF.B.l&S_FLAG) { M_CALL; } else R->PC.W+=2; break; + +case ADD_B: M_ADD(R->BC.B.h);break; +case ADD_C: M_ADD(R->BC.B.l);break; +case ADD_D: M_ADD(R->DE.B.h);break; +case ADD_E: M_ADD(R->DE.B.l);break; +case ADD_H: M_ADD(R->XX.B.h);break; +case ADD_L: M_ADD(R->XX.B.l);break; +case ADD_A: M_ADD(R->AF.B.h);break; +case ADD_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_ADD(I);break; +case ADD_BYTE: I=RdZ80(R->PC.W++);M_ADD(I);break; + +case SUB_B: M_SUB(R->BC.B.h);break; +case SUB_C: M_SUB(R->BC.B.l);break; +case SUB_D: M_SUB(R->DE.B.h);break; +case SUB_E: M_SUB(R->DE.B.l);break; +case SUB_H: M_SUB(R->XX.B.h);break; +case SUB_L: M_SUB(R->XX.B.l);break; +case SUB_A: R->AF.B.h=0;R->AF.B.l=N_FLAG|Z_FLAG;break; +case SUB_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_SUB(I);break; +case SUB_BYTE: I=RdZ80(R->PC.W++);M_SUB(I);break; + +case AND_B: M_AND(R->BC.B.h);break; +case AND_C: M_AND(R->BC.B.l);break; +case AND_D: M_AND(R->DE.B.h);break; +case AND_E: M_AND(R->DE.B.l);break; +case AND_H: M_AND(R->XX.B.h);break; +case AND_L: M_AND(R->XX.B.l);break; +case AND_A: M_AND(R->AF.B.h);break; +case AND_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_AND(I);break; +case AND_BYTE: I=RdZ80(R->PC.W++);M_AND(I);break; + +case OR_B: M_OR(R->BC.B.h);break; +case OR_C: M_OR(R->BC.B.l);break; +case OR_D: M_OR(R->DE.B.h);break; +case OR_E: M_OR(R->DE.B.l);break; +case OR_H: M_OR(R->XX.B.h);break; +case OR_L: M_OR(R->XX.B.l);break; +case OR_A: M_OR(R->AF.B.h);break; +case OR_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_OR(I);break; +case OR_BYTE: I=RdZ80(R->PC.W++);M_OR(I);break; + +case ADC_B: M_ADC(R->BC.B.h);break; +case ADC_C: M_ADC(R->BC.B.l);break; +case ADC_D: M_ADC(R->DE.B.h);break; +case ADC_E: M_ADC(R->DE.B.l);break; +case ADC_H: M_ADC(R->XX.B.h);break; +case ADC_L: M_ADC(R->XX.B.l);break; +case ADC_A: M_ADC(R->AF.B.h);break; +case ADC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_ADC(I);break; +case ADC_BYTE: I=RdZ80(R->PC.W++);M_ADC(I);break; + +case SBC_B: M_SBC(R->BC.B.h);break; +case SBC_C: M_SBC(R->BC.B.l);break; +case SBC_D: M_SBC(R->DE.B.h);break; +case SBC_E: M_SBC(R->DE.B.l);break; +case SBC_H: M_SBC(R->XX.B.h);break; +case SBC_L: M_SBC(R->XX.B.l);break; +case SBC_A: M_SBC(R->AF.B.h);break; +case SBC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_SBC(I);break; +case SBC_BYTE: I=RdZ80(R->PC.W++);M_SBC(I);break; + +case XOR_B: M_XOR(R->BC.B.h);break; +case XOR_C: M_XOR(R->BC.B.l);break; +case XOR_D: M_XOR(R->DE.B.h);break; +case XOR_E: M_XOR(R->DE.B.l);break; +case XOR_H: M_XOR(R->XX.B.h);break; +case XOR_L: M_XOR(R->XX.B.l);break; +case XOR_A: R->AF.B.h=0;R->AF.B.l=P_FLAG|Z_FLAG;break; +case XOR_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_XOR(I);break; +case XOR_BYTE: I=RdZ80(R->PC.W++);M_XOR(I);break; + +case CP_B: M_CP(R->BC.B.h);break; +case CP_C: M_CP(R->BC.B.l);break; +case CP_D: M_CP(R->DE.B.h);break; +case CP_E: M_CP(R->DE.B.l);break; +case CP_H: M_CP(R->XX.B.h);break; +case CP_L: M_CP(R->XX.B.l);break; +case CP_A: R->AF.B.l=N_FLAG|Z_FLAG;break; +case CP_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++)); + M_CP(I);break; +case CP_BYTE: I=RdZ80(R->PC.W++);M_CP(I);break; + +case LD_BC_WORD: M_LDWORD(BC);break; +case LD_DE_WORD: M_LDWORD(DE);break; +case LD_HL_WORD: M_LDWORD(XX);break; +case LD_SP_WORD: M_LDWORD(SP);break; + +case LD_PC_HL: R->PC.W=R->XX.W;break; +case LD_SP_HL: R->SP.W=R->XX.W;break; +case LD_A_xBC: R->AF.B.h=RdZ80(R->BC.W);break; +case LD_A_xDE: R->AF.B.h=RdZ80(R->DE.W);break; + +case ADD_HL_BC: M_ADDW(XX,BC);break; +case ADD_HL_DE: M_ADDW(XX,DE);break; +case ADD_HL_HL: M_ADDW(XX,XX);break; +case ADD_HL_SP: M_ADDW(XX,SP);break; + +case DEC_BC: R->BC.W--;break; +case DEC_DE: R->DE.W--;break; +case DEC_HL: R->XX.W--;break; +case DEC_SP: R->SP.W--;break; + +case INC_BC: R->BC.W++;break; +case INC_DE: R->DE.W++;break; +case INC_HL: R->XX.W++;break; +case INC_SP: R->SP.W++;break; + +case DEC_B: M_DEC(R->BC.B.h);break; +case DEC_C: M_DEC(R->BC.B.l);break; +case DEC_D: M_DEC(R->DE.B.h);break; +case DEC_E: M_DEC(R->DE.B.l);break; +case DEC_H: M_DEC(R->XX.B.h);break; +case DEC_L: M_DEC(R->XX.B.l);break; +case DEC_A: M_DEC(R->AF.B.h);break; +case DEC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W));M_DEC(I); + WrZ80(R->XX.W+(offset)RdZ80(R->PC.W++),I); + break; + +case INC_B: M_INC(R->BC.B.h);break; +case INC_C: M_INC(R->BC.B.l);break; +case INC_D: M_INC(R->DE.B.h);break; +case INC_E: M_INC(R->DE.B.l);break; +case INC_H: M_INC(R->XX.B.h);break; +case INC_L: M_INC(R->XX.B.l);break; +case INC_A: M_INC(R->AF.B.h);break; +case INC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W));M_INC(I); + WrZ80(R->XX.W+(offset)RdZ80(R->PC.W++),I); + break; + +case RLCA: + I=(R->AF.B.h&0x80? C_FLAG:0); + R->AF.B.h=(R->AF.B.h<<1)|I; + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; +case RLA: + I=(R->AF.B.h&0x80? C_FLAG:0); + R->AF.B.h=(R->AF.B.h<<1)|(R->AF.B.l&C_FLAG); + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; +case RRCA: + I=R->AF.B.h&0x01; + R->AF.B.h=(R->AF.B.h>>1)|(I? 0x80:0); + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; +case RRA: + I=R->AF.B.h&0x01; + R->AF.B.h=(R->AF.B.h>>1)|(R->AF.B.l&C_FLAG? 0x80:0); + R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; + break; + +case RST00: M_RST(0x0000);break; +case RST08: M_RST(0x0008);break; +case RST10: M_RST(0x0010);break; +case RST18: M_RST(0x0018);break; +case RST20: M_RST(0x0020);break; +case RST28: M_RST(0x0028);break; +case RST30: M_RST(0x0030);break; +case RST38: M_RST(0x0038);break; + +case PUSH_BC: M_PUSH(BC);break; +case PUSH_DE: M_PUSH(DE);break; +case PUSH_HL: M_PUSH(XX);break; +case PUSH_AF: M_PUSH(AF);break; + +case POP_BC: M_POP(BC);break; +case POP_DE: M_POP(DE);break; +case POP_HL: M_POP(XX);break; +case POP_AF: M_POP(AF);break; + +case DJNZ: if(--R->BC.B.h) { M_JR; } else R->PC.W++;break; +case JP: M_JP;break; +case JR: M_JR;break; +case CALL: M_CALL;break; +case RET: M_RET;break; +case SCF: S(C_FLAG);R(N_FLAG|H_FLAG);break; +case CPL: R->AF.B.h=~R->AF.B.h;S(N_FLAG|H_FLAG);break; +case NOP: break; +case OUTA: OutZ80(RdZ80(R->PC.W++),R->AF.B.h);break; +case INA: R->AF.B.h=InZ80(RdZ80(R->PC.W++));break; + +case DI: + R->IFF&=0xFE; + break; +case EI: + R->IFF|=0x01; + if(R->IRequest!=INT_NONE) + { + R->IFF|=0x20; + R->IBackup=R->ICount; + R->ICount=1; + } + break; + +case CCF: + R->AF.B.l^=C_FLAG;R(N_FLAG|H_FLAG); + R->AF.B.l|=R->AF.B.l&C_FLAG? 0:H_FLAG; + break; + +case EXX: + J.W=R->BC.W;R->BC.W=R->BC1.W;R->BC1.W=J.W; + J.W=R->DE.W;R->DE.W=R->DE1.W;R->DE1.W=J.W; + J.W=R->HL.W;R->HL.W=R->HL1.W;R->HL1.W=J.W; + break; + +case EX_DE_HL: J.W=R->DE.W;R->DE.W=R->HL.W;R->HL.W=J.W;break; +case EX_AF_AF: J.W=R->AF.W;R->AF.W=R->AF1.W;R->AF1.W=J.W;break; + +case LD_B_B: R->BC.B.h=R->BC.B.h;break; +case LD_C_B: R->BC.B.l=R->BC.B.h;break; +case LD_D_B: R->DE.B.h=R->BC.B.h;break; +case LD_E_B: R->DE.B.l=R->BC.B.h;break; +case LD_H_B: R->XX.B.h=R->BC.B.h;break; +case LD_L_B: R->XX.B.l=R->BC.B.h;break; +case LD_A_B: R->AF.B.h=R->BC.B.h;break; +case LD_xHL_B: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->BC.B.h);break; + +case LD_B_C: R->BC.B.h=R->BC.B.l;break; +case LD_C_C: R->BC.B.l=R->BC.B.l;break; +case LD_D_C: R->DE.B.h=R->BC.B.l;break; +case LD_E_C: R->DE.B.l=R->BC.B.l;break; +case LD_H_C: R->XX.B.h=R->BC.B.l;break; +case LD_L_C: R->XX.B.l=R->BC.B.l;break; +case LD_A_C: R->AF.B.h=R->BC.B.l;break; +case LD_xHL_C: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->BC.B.l);break; + +case LD_B_D: R->BC.B.h=R->DE.B.h;break; +case LD_C_D: R->BC.B.l=R->DE.B.h;break; +case LD_D_D: R->DE.B.h=R->DE.B.h;break; +case LD_E_D: R->DE.B.l=R->DE.B.h;break; +case LD_H_D: R->XX.B.h=R->DE.B.h;break; +case LD_L_D: R->XX.B.l=R->DE.B.h;break; +case LD_A_D: R->AF.B.h=R->DE.B.h;break; +case LD_xHL_D: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->DE.B.h);break; + +case LD_B_E: R->BC.B.h=R->DE.B.l;break; +case LD_C_E: R->BC.B.l=R->DE.B.l;break; +case LD_D_E: R->DE.B.h=R->DE.B.l;break; +case LD_E_E: R->DE.B.l=R->DE.B.l;break; +case LD_H_E: R->XX.B.h=R->DE.B.l;break; +case LD_L_E: R->XX.B.l=R->DE.B.l;break; +case LD_A_E: R->AF.B.h=R->DE.B.l;break; +case LD_xHL_E: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->DE.B.l);break; + +case LD_B_H: R->BC.B.h=R->XX.B.h;break; +case LD_C_H: R->BC.B.l=R->XX.B.h;break; +case LD_D_H: R->DE.B.h=R->XX.B.h;break; +case LD_E_H: R->DE.B.l=R->XX.B.h;break; +case LD_H_H: R->XX.B.h=R->XX.B.h;break; +case LD_L_H: R->XX.B.l=R->XX.B.h;break; +case LD_A_H: R->AF.B.h=R->XX.B.h;break; +case LD_xHL_H: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->HL.B.h);break; + +case LD_B_L: R->BC.B.h=R->XX.B.l;break; +case LD_C_L: R->BC.B.l=R->XX.B.l;break; +case LD_D_L: R->DE.B.h=R->XX.B.l;break; +case LD_E_L: R->DE.B.l=R->XX.B.l;break; +case LD_H_L: R->XX.B.h=R->XX.B.l;break; +case LD_L_L: R->XX.B.l=R->XX.B.l;break; +case LD_A_L: R->AF.B.h=R->XX.B.l;break; +case LD_xHL_L: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->HL.B.l);break; + +case LD_B_A: R->BC.B.h=R->AF.B.h;break; +case LD_C_A: R->BC.B.l=R->AF.B.h;break; +case LD_D_A: R->DE.B.h=R->AF.B.h;break; +case LD_E_A: R->DE.B.l=R->AF.B.h;break; +case LD_H_A: R->XX.B.h=R->AF.B.h;break; +case LD_L_A: R->XX.B.l=R->AF.B.h;break; +case LD_A_A: R->AF.B.h=R->AF.B.h;break; +case LD_xHL_A: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,R->AF.B.h);break; + +case LD_xBC_A: WrZ80(R->BC.W,R->AF.B.h);break; +case LD_xDE_A: WrZ80(R->DE.W,R->AF.B.h);break; + +case LD_B_xHL: R->BC.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; +case LD_C_xHL: R->BC.B.l=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; +case LD_D_xHL: R->DE.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; +case LD_E_xHL: R->DE.B.l=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; +case LD_H_xHL: R->HL.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; +case LD_L_xHL: R->HL.B.l=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; +case LD_A_xHL: R->AF.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break; + +case LD_B_BYTE: R->BC.B.h=RdZ80(R->PC.W++);break; +case LD_C_BYTE: R->BC.B.l=RdZ80(R->PC.W++);break; +case LD_D_BYTE: R->DE.B.h=RdZ80(R->PC.W++);break; +case LD_E_BYTE: R->DE.B.l=RdZ80(R->PC.W++);break; +case LD_H_BYTE: R->XX.B.h=RdZ80(R->PC.W++);break; +case LD_L_BYTE: R->XX.B.l=RdZ80(R->PC.W++);break; +case LD_A_BYTE: R->AF.B.h=RdZ80(R->PC.W++);break; +case LD_xHL_BYTE: J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + WrZ80(J.W,RdZ80(R->PC.W++));break; + +case LD_xWORD_HL: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W++,R->XX.B.l); + WrZ80(J.W,R->XX.B.h); + break; + +case LD_HL_xWORD: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->XX.B.l=RdZ80(J.W++); + R->XX.B.h=RdZ80(J.W); + break; + +case LD_A_xWORD: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + R->AF.B.h=RdZ80(J.W); + break; + +case LD_xWORD_A: + J.B.l=RdZ80(R->PC.W++); + J.B.h=RdZ80(R->PC.W++); + WrZ80(J.W,R->AF.B.h); + break; + +case EX_HL_xSP: + J.B.l=RdZ80(R->SP.W);WrZ80(R->SP.W++,R->XX.B.l); + J.B.h=RdZ80(R->SP.W);WrZ80(R->SP.W--,R->XX.B.h); + R->XX.W=J.W; + break; + +case DAA: + J.W=R->AF.B.h; + if(R->AF.B.l&C_FLAG) J.W|=256; + if(R->AF.B.l&H_FLAG) J.W|=512; + if(R->AF.B.l&N_FLAG) J.W|=1024; + R->AF.W=DAATable[J.W]; + break; diff --git a/MCUME_teensy/teensymsx/Disk.c b/MCUME_teensy/teensymsx/Disk.c new file mode 100644 index 0000000..1949ee6 --- /dev/null +++ b/MCUME_teensy/teensymsx/Disk.c @@ -0,0 +1,96 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** Disk.c **/ +/** **/ +/** This file contains standard disk access drivers working **/ +/** with disk images from files. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#include "MSX.h" + +#include +#include +#include +#include + +#ifdef __BORLANDC__ +#include +#endif + +#ifdef UNIX +#include +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static int Drives[2] = { -1,-1 }; /* Disk image files */ +static int RdOnly[2]; /* 1 = read-only */ + +/** DiskPresent() ********************************************/ +/** Return 1 if disk drive with a given ID is present. **/ +/*************************************************************/ +byte DiskPresent(byte ID) +{ + return((ID=0)); +} + +/** DiskRead() ***********************************************/ +/** Read requested sector from the drive into a buffer. **/ +/*************************************************************/ +byte DiskRead(byte ID,byte *Buf,int N) +{ +#ifdef unused + if((ID=0)) + if(lseek(Drives[ID],N*512L,0)==N*512L) + return(read(Drives[ID],Buf,512)==512); +#endif + return(0); +} + +/** DiskWrite() **********************************************/ +/** Write contents of the buffer into a given sector of the **/ +/** disk. **/ +/*************************************************************/ +byte DiskWrite(byte ID,byte *Buf,int N) +{ +#ifdef unused + if((ID=0)&&!RdOnly[ID]) + if(lseek(Drives[ID],N*512L,0)==N*512L) + return(write(Drives[ID],Buf,512)==512); +#endif + return(0); +} + +/** ChangeDisk() *********************************************/ +/** Change disk image in a given drive. Closes current disk **/ +/** image if Name=0 was given. Returns 1 on success or 0 on **/ +/** failure. **/ +/*************************************************************/ +byte ChangeDisk(byte ID,char *Name) +{ +#ifdef unused + /* We only have MAXDRIVES drives */ + if(ID>=MAXDRIVES) return(0); + /* Close previous disk image */ + if(Drives[ID]>=0) { close(Drives[ID]);Drives[ID]=-1; } + /* If no disk image given, consider drive empty */ + if(!Name) return(1); + /* Open new disk image */ + Drives[ID]=open(Name,O_RDWR|O_BINARY); + RdOnly[ID]=0; + /* If failed to open for writing, open read-only */ + if(Drives[ID]<0) + { + Drives[ID]=open(Name,O_RDONLY|O_BINARY); + RdOnly[ID]=1; + } +#endif + /* Return operation result */ + return(Drives[ID]>=0); +} diff --git a/MCUME_teensy/teensymsx/DiskUtil.h b/MCUME_teensy/teensymsx/DiskUtil.h new file mode 100644 index 0000000..a674391 --- /dev/null +++ b/MCUME_teensy/teensymsx/DiskUtil.h @@ -0,0 +1,95 @@ +/*************************************************************/ +/** **/ +/** diskwork.h **/ +/** **/ +/** Common definitions for programs working with **/ +/** disk-images that can be used with fMSX **/ +/** **/ +/** **/ +/** Copyright (c) Arnold Metselaar 1996 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#define usint unsigned short int +#define byte unsigned char + +#define EOF_FAT 0xFFF /* signals EOF in FAT */ + +typedef struct de { + char d_fname[8]; + char d_ext[3]; + char d_attrib; + char d_reserv[10]; /* unused */ + byte d_time[2]; /* byte-ordering of ints is machine-dependent */ + byte d_date[2]; + byte d_first[2]; + byte d_size[4]; +} DirEntry; + +/* macros to change DirEntries */ +#define setsh(x,y) {x[0]=y;x[1]=y>>8;} +#define setlg(x,y) {x[0]=y;x[1]=y>>8;x[2]=y>>16;x[3]=y>>24;} + +/* macros to read DirEntries */ +#define rdsh(x) (x[0]+(x[1]<<8)) +#define rdlg(x) (x[0]+(x[1]<<8)+(x[2]<<16)+(x[3]<<24)) + +#define PError(x) { fprintf(stderr,"%s: ",progname); perror(x); } + +#define seclen 512 /* length of sector */ +#define cluslen 1024 /* length of cluster */ + +void *xalloc(size_t len) +{ + void *p; + + if (!(p=malloc(len))) + { + puts("Out of memory\n"); exit(2); + } + return p; +} + +extern byte *FAT; + +/* read FAT-entry from FAT in memory */ +usint ReadFAT(usint clnr) +{ register byte *P; + + P=FAT+(clnr*3)/2; + return (clnr&1)? (P[0]>>4)+(P[1]<<4) : P[0]+((P[1]&0x0F)<<8); +} + +/* write an entry to FAT in memory */ +void WriteFAT(usint clnr, usint val) +{ register byte *P; + + P=FAT+(clnr*3)/2; + if (clnr&1) + { + P[0]=(P[0]&0x0F)+(val<<4); + P[1]=val>>4; + } + else + { + P[0]=val; + P[1]=(P[1]&0xF0)+((val>>8)&0x0F); + } +} + + + + + + + + + + + diff --git a/MCUME_teensy/teensymsx/I8251.c b/MCUME_teensy/teensymsx/I8251.c new file mode 100644 index 0000000..306141c --- /dev/null +++ b/MCUME_teensy/teensymsx/I8251.c @@ -0,0 +1,196 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** I8251.c **/ +/** **/ +/** This file contains emulation for the Intel 8251 UART **/ +/** chip and the 8253 timer chip implementing a generic **/ +/** RS232 interface. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 2003 **/ +/** Maarten ter Huurne 2000 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +#include "I8251.h" + +/** Reset8251 ************************************************/ +/** Reset 8251 chip, assigning In and Out to the input and **/ +/** output streams. **/ +/*************************************************************/ +void Reset8251(register I8251 *D,FILE *In,FILE *Out) +{ + D->IRQMask = 0x0F; /* All interrupts on */ + D->IRQs = 0x00; /* No interrupts yet */ + D->Mode = 1; /* Setting mode next */ + D->Flow = 0x00; /* Flow control off */ + D->NextChr = -1; /* No data yet */ + + /* Assign input and output streams */ + D->In = In? In:stdin; + D->Out = Out? Out:stdout; +} + +/** Rd8251 ***************************************************/ +/** Read a byte from a given 8251 register. All values of R **/ +/** will be truncated to 3 bits as there are only 8 regs. **/ +/*************************************************************/ +byte Rd8251(register I8251 *D,register byte R) +{ + register int J; + + /* We only have 8 addressable ports */ + R&=0x07; + + switch(R) + { + case 0: /* Data */ + if(D->Flow) + { + if(D->NextChr<0) D->NextChr=fgetc(D->In); + J=D->NextChr; + D->NextChr=-1; + return((J<0? 0xFF:J)&((0x20<<((D->Control&0x0C)>>2))-1)); + } + return(0xFF); + + case 1: /* Status */ + if(D->NextChr<0) D->NextChr=fgetc(D->In); + return(D->Flow&&(D->NextChr>=0)? 0x87:0x85); + /* + 76543210 + 1....... data set ready (dsr) + .1...... sync detect, sync only + ..1..... framing error (fe), async only + ...1.... overrun error (oe) + ....1... parity error (pe) + .....1.. transmitter empty + ......1. receiver ready + .......1 transmitter ready + + D->Flow is checked first, so that stdin input doesn't block + fMSX until it's actually being read by the emulated MSX. + */ + + case 0x82: /* Status of CTS, timer/counter 2, RI and CD */ + return(0x7F); + /* + 76543210 + 1....... CTS (Clear To Send) 0=asserted + .1...... timer/counter output-2 from 8253 + ..XXXX.. reserved + ......1. RI (Ring Indicator) 0=asserted + .......1 CD (Carrier Detect) 0=asserted + + RI and CD are optional. If only one of them is implemented, + it must be CD. Implemented like this: + - CTS always returns 0 (asserted) + - Everything else is not implemented + */ + } + + /* Other RS232 ports: + 3: not standardised - unused + 4: 8253 counter 0 - not implemented + 5: 8253 counter 1 - not implemented + 6: 8253 counter 2 - not implemented + 7: 8253 mode register - write only + */ + + return(0xFF); +} + +/** Wr8251 ***************************************************/ +/** Write a byte to a given 8251 register. All values of R **/ +/** will be truncated to 3 bits as there are only 8 regs. **/ +/*************************************************************/ +void Wr8251(register I8251 *D,register byte R,register byte V) +{ + /* We only have 8 addressable ports */ + R&=0x07; + + switch(R) + { + case 0: /* Data */ + fputc(V&((0x20<<((D->Control&0x0C)>>2))-1),D->Out); + fflush(D->Out); + return; + /* + TODO: Flush the stream at appropriate intervals, instead of + flushing for every single character. If flushing after every + character remains, make the stream unbuffered. + */ + + case 1: /* Command */ + if(D->Mode) + { + D->Control=V; + D->Mode=0; + /* Set mode: + ......00 sync mode + ......01 async, baud rate factor is 1 + ......10 async, baud rate factor is 16 + ......11 async, baud rate factor is 64 + ....00.. character length is 5 bits + ....01.. character length is 6 bits + ....10.. character length is 7 bits + ....11.. character length is 8 bits + ...1.... parity enable + ..1..... even/odd parity + .1...... sync: external sync detect (syndet) is an input/output + 1....... sync: single/double character sync + 00...... async: invalid + 01...... async: 1 stop bit + 10...... async: 1.5 stop bits + 11...... async: 2 stop bits + */ + } + else + { + D->Mode=V&0x40; + D->Flow=(V>>4)&0x02; + /* Execute command: + 76543210 + 1....... enter hunt mode (enable search for sync characters) + .1...... internal reset + ..1..... request to send (rts) + ...1.... reset error flags (pe,oe,fe) + ....1... send break character + .....1.. receive enable + ......1. data terminal ready (dtr) + .......1 transmit enable + + Only RESET (bit6) and DTR (bit2) are implemented. + */ + } + return; + + case 2: /* Interrupt mask register */ + D->IRQMask=V; + return; + /* + 76543210 + XXXX.... reserved + ....1... timer interrupt from 8253 channel-2 (0=enable int) + .....1.. sync character detect/break detect (0=enable int) + ......1. transmit data ready (TxReady) (0=enable int) + .......1 receive data ready (RxReady) (0=enable int) + + Initially all interrupts are disabled. RxReady interrupt must be + implemented, the others are optional. + + However, currently no interrupt at all is implemented. The result + is that only one character is read per VDP interrupt, so serial + communication is 50/60 baud. + */ + } + + /* Other RS232 ports: + 3: not standardised - unused + 4: 8253 counter 0 - not implemented + 5: 8253 counter 1 - not implemented + 6: 8253 counter 2 - not implemented + 7: 8253 mode register - not implemented + */ +} \ No newline at end of file diff --git a/MCUME_teensy/teensymsx/I8251.h b/MCUME_teensy/teensymsx/I8251.h new file mode 100644 index 0000000..e2a9f99 --- /dev/null +++ b/MCUME_teensy/teensymsx/I8251.h @@ -0,0 +1,57 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** I8251.h **/ +/** **/ +/** This file contains definitions and declarations for **/ +/** routines in I8251.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 2003 **/ +/** Maarten ter Huurne 2000 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef I8251_H +#define I8251_H + +#include + +#ifndef BYTE_TYPE_DEFINED +#define BYTE_TYPE_DEFINED +typedef unsigned char byte; +#endif + +/** I8251 ****************************************************/ +/** This data structure stores I8251 state. **/ +/*************************************************************/ +typedef struct +{ + byte Control; /* 8251 ACIA control reg. */ + byte IRQMask; /* RS232 interrupt mask */ + byte IRQs; /* RS232 interrupts */ + byte Mode; /* 8251 mode/cmd select */ + byte Flow; /* Flow control state */ + int NextChr; /* Next char or -1 */ + FILE *In; /* Input stream */ + FILE *Out; /* Output stream */ +} I8251; + +/** Reset8251 ************************************************/ +/** Reset 8251 chip, assigning In and Out to the input and **/ +/** output streams. **/ +/*************************************************************/ +void Reset8251(register I8251 *D,FILE *In,FILE *Out); + +/** Rd8251 ***************************************************/ +/** Read a byte from a given 8251 register. All values of R **/ +/** will be truncated to 3 bits as there are only 8 regs. **/ +/*************************************************************/ +byte Rd8251(register I8251 *D,register byte R); + +/** Wr8251 ***************************************************/ +/** Write a byte to a given 8251 register. All values of R **/ +/** will be truncated to 3 bits as there are only 8 regs. **/ +/*************************************************************/ +void Wr8251(register I8251 *D,register byte R,register byte V); + +#endif /* I8251_H */ diff --git a/MCUME_teensy/teensymsx/I8255.c b/MCUME_teensy/teensymsx/I8255.c new file mode 100644 index 0000000..b952efe --- /dev/null +++ b/MCUME_teensy/teensymsx/I8255.c @@ -0,0 +1,88 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** I8255.c **/ +/** **/ +/** This file contains emulation for the i8255 parallel **/ +/** port interface (PPI) chip from Intel. See I8255.h for **/ +/** declarations. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 2001-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#include "I8255.h" + +/** Reset8255 ************************************************/ +/** Reset the chip. Set all data to 0x00. Set all ports to **/ +/** "input" mode. **/ +/*************************************************************/ +void Reset8255(register I8255 *D) +{ + /* Initialize all registers and ports */ + D->R[0]=D->Rout[0]=D->Rin[0]=0x00; + D->R[1]=D->Rout[1]=D->Rin[1]=0x00; + D->R[2]=D->Rout[2]=D->Rin[2]=0x00; + D->R[3]=0x9B; +} + +/** Write8255 ************************************************/ +/** Write value V into i8255 register A. Returns 0 when A **/ +/** is out of range, 1 otherwise. **/ +/*************************************************************/ +byte Write8255(register I8255 *D,register byte A,register byte V) +{ + switch(A) + { + case 0: + case 1: + case 2: + /* Data registers */ + D->R[A]=V; + break; + case 3: + /* Control register */ + if(V&0x80) D->R[A]=V; + else + { + A=1<<((V&0x0E)>>1); + if(V&0x01) D->R[2]|=A; else D->R[2]&=~A; + } + break; + default: + /* Invalid register */ + return(0); + } + + /* Set output ports */ + V=D->R[3]; + D->Rout[0] = V&0x10? 0x00:D->R[0]; + D->Rout[1] = V&0x02? 0x00:D->R[1]; + D->Rout[2] = ((V&0x01? 0x00:D->R[2])&0x0F) + | ((V&0x08? 0x00:D->R[2])&0xF0); + + /* Done */ + return(1); +} + +/** Read8255 *************************************************/ +/** Read value from an i8255 register A. Returns 0 when A **/ +/** is out of range. **/ +/*************************************************************/ +byte Read8255(register I8255 *D,register byte A) +{ + switch(A) + { + case 0: return(D->R[3]&0x10? D->Rin[0]:D->R[0]); + case 1: return(D->R[3]&0x02? D->Rin[1]:D->R[1]); + case 2: return + ( + ((D->R[3]&0x01? D->Rin[2]:D->R[2])&0x0F)| + ((D->R[3]&0x08? D->Rin[2]:D->R[2])&0xF0) + ); + case 3: return(D->R[3]); + } + + /* Invalid address */ + return(0x00); +} diff --git a/MCUME_teensy/teensymsx/I8255.h b/MCUME_teensy/teensymsx/I8255.h new file mode 100644 index 0000000..f81b23f --- /dev/null +++ b/MCUME_teensy/teensymsx/I8255.h @@ -0,0 +1,50 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** I8255.h **/ +/** **/ +/** This file contains emulation for the i8255 parallel **/ +/** port interface (PPI) chip from Intel. See I8255.h for **/ +/** the actual code. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 2001-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef I8255_H +#define I8255_H + +#ifndef BYTE_TYPE_DEFINED +#define BYTE_TYPE_DEFINED +typedef unsigned char byte; +#endif + +/** I8255 ****************************************************/ +/** This data structure stores i8255 state and port values. **/ +/*************************************************************/ +typedef struct +{ + byte R[4]; /* Registers */ + byte Rout[3]; /* Output ports */ + byte Rin[3]; /* Input ports */ +} I8255; + +/** Reset8255 ************************************************/ +/** Reset the i8255 chip. Set all data to 0x00. Set all **/ +/** ports to "input" mode. **/ +/*************************************************************/ +void Reset8255(register I8255 *D); + +/** Write8255 ************************************************/ +/** Write value V into i8255 register A. Returns 0 when A **/ +/** is out of range, 1 otherwise. **/ +/*************************************************************/ +byte Write8255(register I8255 *D,register byte A,register byte V); + +/** Read8255 *************************************************/ +/** Read value from an i8255 register A. Returns 0 when A **/ +/** is out of range. **/ +/*************************************************************/ +byte Read8255(register I8255 *D,register byte A); + +#endif /* I8255_H */ diff --git a/MCUME_teensy/teensymsx/MIDIFreq.h b/MCUME_teensy/teensymsx/MIDIFreq.h new file mode 100644 index 0000000..1e58de2 --- /dev/null +++ b/MCUME_teensy/teensymsx/MIDIFreq.h @@ -0,0 +1,1024 @@ +{ -36, 8063 },{ -12, 8063 },{ -3, 8298 },{ 3, 8358 }, +{ 8, 8201 },{ 12, 8063 },{ 15, 8054 },{ 17, 8238 }, +{ 19, 8311 },{ 21, 8298 },{ 23, 8217 },{ 25, 8080 }, +{ 26, 8238 },{ 27, 8358 },{ 29, 8102 },{ 30, 8159 }, +{ 31, 8191 },{ 32, 8201 },{ 33, 8191 },{ 34, 8164 }, +{ 35, 8121 },{ 36, 8063 },{ 36, 8334 },{ 37, 8251 }, +{ 38, 8158 },{ 39, 8054 },{ 39, 8283 },{ 40, 8162 }, +{ 41, 8033 },{ 41, 8238 },{ 42, 8095 },{ 42, 8287 }, +{ 43, 8131 },{ 43, 8311 },{ 44, 8144 },{ 44, 8314 }, +{ 45, 8137 },{ 45, 8298 },{ 46, 8113 },{ 46, 8265 }, +{ 47, 8072 },{ 47, 8217 },{ 47, 8358 },{ 48, 8155 }, +{ 48, 8289 },{ 49, 8080 },{ 49, 8209 },{ 49, 8335 }, +{ 50, 8117 },{ 50, 8238 },{ 50, 8357 },{ 51, 8132 }, +{ 51, 8246 },{ 51, 8358 },{ 52, 8126 },{ 52, 8234 }, +{ 52, 8340 },{ 53, 8102 },{ 53, 8204 },{ 53, 8305 }, +{ 54, 8062 },{ 54, 8159 },{ 54, 8255 },{ 54, 8349 }, +{ 55, 8100 },{ 55, 8191 },{ 55, 8281 },{ 56, 8028 }, +{ 56, 8115 },{ 56, 8201 },{ 56, 8286 },{ 57, 8028 }, +{ 57, 8110 },{ 57, 8191 },{ 57, 8271 },{ 57, 8350 }, +{ 58, 8087 },{ 58, 8164 },{ 58, 8240 },{ 58, 8315 }, +{ 59, 8047 },{ 59, 8121 },{ 59, 8193 },{ 59, 8264 }, +{ 59, 8335 },{ 60, 8063 },{ 60, 8132 },{ 60, 8200 }, +{ 60, 8267 },{ 60, 8334 },{ 61, 8058 },{ 61, 8123 }, +{ 61, 8188 },{ 61, 8251 },{ 61, 8314 },{ 62, 8035 }, +{ 62, 8097 },{ 62, 8158 },{ 62, 8218 },{ 62, 8278 }, +{ 62, 8337 },{ 63, 8054 },{ 63, 8112 },{ 63, 8170 }, +{ 63, 8227 },{ 63, 8283 },{ 63, 8339 },{ 64, 8053 }, +{ 64, 8108 },{ 64, 8162 },{ 64, 8216 },{ 64, 8269 }, +{ 64, 8322 },{ 65, 8033 },{ 65, 8085 },{ 65, 8137 }, +{ 65, 8188 },{ 65, 8238 },{ 65, 8288 },{ 65, 8338 }, +{ 66, 8046 },{ 66, 8095 },{ 66, 8143 },{ 66, 8191 }, +{ 66, 8239 },{ 66, 8287 },{ 66, 8334 },{ 67, 8039 }, +{ 67, 8085 },{ 67, 8131 },{ 67, 8176 },{ 67, 8222 }, +{ 67, 8266 },{ 67, 8311 },{ 67, 8355 },{ 68, 8057 }, +{ 68, 8101 },{ 68, 8144 },{ 68, 8187 },{ 68, 8230 }, +{ 68, 8272 },{ 68, 8314 },{ 68, 8356 },{ 69, 8056 }, +{ 69, 8097 },{ 69, 8137 },{ 69, 8178 },{ 69, 8218 }, +{ 69, 8258 },{ 69, 8298 },{ 69, 8337 },{ 70, 8035 }, +{ 70, 8074 },{ 70, 8113 },{ 70, 8151 },{ 70, 8189 }, +{ 70, 8227 },{ 70, 8265 },{ 70, 8302 },{ 70, 8340 }, +{ 71, 8035 },{ 71, 8072 },{ 71, 8108 },{ 71, 8145 }, +{ 71, 8181 },{ 71, 8217 },{ 71, 8252 },{ 71, 8288 }, +{ 71, 8323 },{ 71, 8358 },{ 72, 8051 },{ 72, 8086 }, +{ 72, 8120 },{ 72, 8155 },{ 72, 8189 },{ 72, 8222 }, +{ 72, 8256 },{ 72, 8289 },{ 72, 8323 },{ 72, 8356 }, +{ 73, 8047 },{ 73, 8080 },{ 73, 8112 },{ 73, 8145 }, +{ 73, 8177 },{ 73, 8209 },{ 73, 8241 },{ 73, 8272 }, +{ 73, 8304 },{ 73, 8335 },{ 74, 8025 },{ 74, 8056 }, +{ 74, 8087 },{ 74, 8117 },{ 74, 8148 },{ 74, 8178 }, +{ 74, 8208 },{ 74, 8238 },{ 74, 8268 },{ 74, 8298 }, +{ 74, 8327 },{ 74, 8357 },{ 75, 8045 },{ 75, 8074 }, +{ 75, 8103 },{ 75, 8132 },{ 75, 8160 },{ 75, 8189 }, +{ 75, 8217 },{ 75, 8246 },{ 75, 8274 },{ 75, 8302 }, +{ 75, 8330 },{ 75, 8358 },{ 76, 8044 },{ 76, 8071 }, +{ 76, 8099 },{ 76, 8126 },{ 76, 8153 },{ 76, 8180 }, +{ 76, 8207 },{ 76, 8234 },{ 76, 8260 },{ 76, 8287 }, +{ 76, 8313 },{ 76, 8340 },{ 77, 8024 },{ 77, 8051 }, +{ 77, 8076 },{ 77, 8102 },{ 77, 8128 },{ 77, 8154 }, +{ 77, 8179 },{ 77, 8204 },{ 77, 8230 },{ 77, 8255 }, +{ 77, 8280 },{ 77, 8305 },{ 77, 8330 },{ 77, 8354 }, +{ 78, 8038 },{ 78, 8062 },{ 78, 8087 },{ 78, 8111 }, +{ 78, 8135 },{ 78, 8159 },{ 78, 8183 },{ 78, 8207 }, +{ 78, 8231 },{ 78, 8255 },{ 78, 8279 },{ 78, 8302 }, +{ 78, 8326 },{ 78, 8349 },{ 79, 8031 },{ 79, 8054 }, +{ 79, 8077 },{ 79, 8100 },{ 79, 8123 },{ 79, 8146 }, +{ 79, 8169 },{ 79, 8191 },{ 79, 8214 },{ 79, 8237 }, +{ 79, 8259 },{ 79, 8281 },{ 79, 8303 },{ 79, 8326 }, +{ 79, 8348 },{ 80, 8028 },{ 80, 8050 },{ 80, 8072 }, +{ 80, 8094 },{ 80, 8115 },{ 80, 8137 },{ 80, 8159 }, +{ 80, 8180 },{ 80, 8201 },{ 80, 8223 },{ 80, 8244 }, +{ 80, 8265 },{ 80, 8286 },{ 80, 8307 },{ 80, 8328 }, +{ 80, 8349 },{ 81, 8028 },{ 81, 8049 },{ 81, 8069 }, +{ 81, 8090 },{ 81, 8110 },{ 81, 8131 },{ 81, 8151 }, +{ 81, 8171 },{ 81, 8191 },{ 81, 8212 },{ 81, 8232 }, +{ 81, 8252 },{ 81, 8271 },{ 81, 8291 },{ 81, 8311 }, +{ 81, 8331 },{ 81, 8350 },{ 82, 8029 },{ 82, 8048 }, +{ 82, 8068 },{ 82, 8087 },{ 82, 8106 },{ 82, 8126 }, +{ 82, 8145 },{ 82, 8164 },{ 82, 8183 },{ 82, 8202 }, +{ 82, 8221 },{ 82, 8240 },{ 82, 8259 },{ 82, 8277 }, +{ 82, 8296 },{ 82, 8315 },{ 82, 8333 },{ 82, 8352 }, +{ 83, 8029 },{ 83, 8047 },{ 83, 8066 },{ 83, 8084 }, +{ 83, 8102 },{ 83, 8121 },{ 83, 8139 },{ 83, 8157 }, +{ 83, 8175 },{ 83, 8193 },{ 83, 8211 },{ 83, 8229 }, +{ 83, 8246 },{ 83, 8264 },{ 83, 8282 },{ 83, 8299 }, +{ 83, 8317 },{ 83, 8335 },{ 83, 8352 },{ 84, 8028 }, +{ 84, 8046 },{ 84, 8063 },{ 84, 8080 },{ 84, 8097 }, +{ 84, 8115 },{ 84, 8132 },{ 84, 8149 },{ 84, 8166 }, +{ 84, 8183 },{ 84, 8200 },{ 84, 8217 },{ 84, 8234 }, +{ 84, 8250 },{ 84, 8267 },{ 84, 8284 },{ 84, 8300 }, +{ 84, 8317 },{ 84, 8334 },{ 84, 8350 },{ 85, 8025 }, +{ 85, 8042 },{ 85, 8058 },{ 85, 8074 },{ 85, 8091 }, +{ 85, 8107 },{ 85, 8123 },{ 85, 8139 },{ 85, 8155 }, +{ 85, 8171 },{ 85, 8188 },{ 85, 8203 },{ 85, 8219 }, +{ 85, 8235 },{ 85, 8251 },{ 85, 8267 },{ 85, 8283 }, +{ 85, 8298 },{ 85, 8314 },{ 85, 8330 },{ 85, 8345 }, +{ 85, 8361 },{ 86, 8035 },{ 86, 8051 },{ 86, 8066 }, +{ 86, 8081 },{ 86, 8097 },{ 86, 8112 },{ 86, 8127 }, +{ 86, 8143 },{ 86, 8158 },{ 86, 8173 },{ 86, 8188 }, +{ 86, 8203 },{ 86, 8218 },{ 86, 8233 },{ 86, 8248 }, +{ 86, 8263 },{ 86, 8278 },{ 86, 8293 },{ 86, 8308 }, +{ 86, 8322 },{ 86, 8337 },{ 86, 8352 },{ 87, 8025 }, +{ 87, 8040 },{ 87, 8054 },{ 87, 8069 },{ 87, 8084 }, +{ 87, 8098 },{ 87, 8112 },{ 87, 8127 },{ 87, 8141 }, +{ 87, 8156 },{ 87, 8170 },{ 87, 8184 },{ 87, 8198 }, +{ 87, 8213 },{ 87, 8227 },{ 87, 8241 },{ 87, 8255 }, +{ 87, 8269 },{ 87, 8283 },{ 87, 8297 },{ 87, 8311 }, +{ 87, 8325 },{ 87, 8339 },{ 87, 8353 },{ 88, 8025 }, +{ 88, 8039 },{ 88, 8053 },{ 88, 8067 },{ 88, 8081 }, +{ 88, 8094 },{ 88, 8108 },{ 88, 8121 },{ 88, 8135 }, +{ 88, 8149 },{ 88, 8162 },{ 88, 8176 },{ 88, 8189 }, +{ 88, 8203 },{ 88, 8216 },{ 88, 8229 },{ 88, 8243 }, +{ 88, 8256 },{ 88, 8269 },{ 88, 8283 },{ 88, 8296 }, +{ 88, 8309 },{ 88, 8322 },{ 88, 8335 },{ 88, 8348 }, +{ 88, 8361 },{ 89, 8033 },{ 89, 8046 },{ 89, 8059 }, +{ 89, 8072 },{ 89, 8085 },{ 89, 8098 },{ 89, 8111 }, +{ 89, 8124 },{ 89, 8137 },{ 89, 8149 },{ 89, 8162 }, +{ 89, 8175 },{ 89, 8188 },{ 89, 8200 },{ 89, 8213 }, +{ 89, 8226 },{ 89, 8238 },{ 89, 8251 },{ 89, 8263 }, +{ 89, 8276 },{ 89, 8288 },{ 89, 8301 },{ 89, 8313 }, +{ 89, 8326 },{ 89, 8338 },{ 89, 8350 },{ 90, 8021 }, +{ 90, 8034 },{ 90, 8046 },{ 90, 8058 },{ 90, 8070 }, +{ 90, 8083 },{ 90, 8095 },{ 90, 8107 },{ 90, 8119 }, +{ 90, 8131 },{ 90, 8143 },{ 90, 8155 },{ 90, 8167 }, +{ 90, 8179 },{ 90, 8191 },{ 90, 8203 },{ 90, 8215 }, +{ 90, 8227 },{ 90, 8239 },{ 90, 8251 },{ 90, 8263 }, +{ 90, 8275 },{ 90, 8287 },{ 90, 8298 },{ 90, 8310 }, +{ 90, 8322 },{ 90, 8334 },{ 90, 8345 },{ 90, 8357 }, +{ 91, 8027 },{ 91, 8039 },{ 91, 8050 },{ 91, 8062 }, +{ 91, 8073 },{ 91, 8085 },{ 91, 8096 },{ 91, 8108 }, +{ 91, 8119 },{ 91, 8131 },{ 91, 8142 },{ 91, 8154 }, +{ 91, 8165 },{ 91, 8176 },{ 91, 8188 },{ 91, 8199 }, +{ 91, 8210 },{ 91, 8222 },{ 91, 8233 },{ 91, 8244 }, +{ 91, 8255 },{ 91, 8266 },{ 91, 8278 },{ 91, 8289 }, +{ 91, 8300 },{ 91, 8311 },{ 91, 8322 },{ 91, 8333 }, +{ 91, 8344 },{ 91, 8355 },{ 92, 8025 },{ 92, 8036 }, +{ 92, 8047 },{ 92, 8057 },{ 92, 8068 },{ 92, 8079 }, +{ 92, 8090 },{ 92, 8101 },{ 92, 8112 },{ 92, 8123 }, +{ 92, 8133 },{ 92, 8144 },{ 92, 8155 },{ 92, 8166 }, +{ 92, 8176 },{ 92, 8187 },{ 92, 8198 },{ 92, 8208 }, +{ 92, 8219 },{ 92, 8230 },{ 92, 8240 },{ 92, 8251 }, +{ 92, 8261 },{ 92, 8272 },{ 92, 8282 },{ 92, 8293 }, +{ 92, 8303 },{ 92, 8314 },{ 92, 8324 },{ 92, 8335 }, +{ 92, 8345 },{ 92, 8356 },{ 93, 8025 },{ 93, 8035 }, +{ 93, 8045 },{ 93, 8056 },{ 93, 8066 },{ 93, 8076 }, +{ 93, 8086 },{ 93, 8097 },{ 93, 8107 },{ 93, 8117 }, +{ 93, 8127 },{ 93, 8137 },{ 93, 8148 },{ 93, 8158 }, +{ 93, 8168 },{ 93, 8178 },{ 93, 8188 },{ 93, 8198 }, +{ 93, 8208 },{ 93, 8218 },{ 93, 8228 },{ 93, 8238 }, +{ 93, 8248 },{ 93, 8258 },{ 93, 8268 },{ 93, 8278 }, +{ 93, 8288 },{ 93, 8298 },{ 93, 8308 },{ 93, 8318 }, +{ 93, 8327 },{ 93, 8337 },{ 93, 8347 },{ 93, 8357 }, +{ 94, 8025 },{ 94, 8035 },{ 94, 8045 },{ 94, 8055 }, +{ 94, 8064 },{ 94, 8074 },{ 94, 8084 },{ 94, 8093 }, +{ 94, 8103 },{ 94, 8113 },{ 94, 8122 },{ 94, 8132 }, +{ 94, 8142 },{ 94, 8151 },{ 94, 8161 },{ 94, 8170 }, +{ 94, 8180 },{ 94, 8189 },{ 94, 8199 },{ 94, 8208 }, +{ 94, 8218 },{ 94, 8227 },{ 94, 8237 },{ 94, 8246 }, +{ 94, 8256 },{ 94, 8265 },{ 94, 8274 },{ 94, 8284 }, +{ 94, 8293 },{ 94, 8302 },{ 94, 8312 },{ 94, 8321 }, +{ 94, 8330 },{ 94, 8340 },{ 94, 8349 },{ 94, 8358 }, +{ 95, 8026 },{ 95, 8035 },{ 95, 8044 },{ 95, 8054 }, +{ 95, 8063 },{ 95, 8072 },{ 95, 8081 },{ 95, 8090 }, +{ 95, 8099 },{ 95, 8108 },{ 95, 8118 },{ 95, 8127 }, +{ 95, 8136 },{ 95, 8145 },{ 95, 8154 },{ 95, 8163 }, +{ 95, 8172 },{ 95, 8181 },{ 95, 8190 },{ 95, 8199 }, +{ 95, 8208 },{ 95, 8217 },{ 95, 8226 },{ 95, 8235 }, +{ 95, 8243 },{ 95, 8252 },{ 95, 8261 },{ 95, 8270 }, +{ 95, 8279 },{ 95, 8288 },{ 95, 8297 },{ 95, 8305 }, +{ 95, 8314 },{ 95, 8323 },{ 95, 8332 },{ 95, 8340 }, +{ 95, 8349 },{ 95, 8358 },{ 96, 8025 },{ 96, 8034 }, +{ 96, 8043 },{ 96, 8051 },{ 96, 8060 },{ 96, 8069 }, +{ 96, 8077 },{ 96, 8086 },{ 96, 8095 },{ 96, 8103 }, +{ 96, 8112 },{ 96, 8120 },{ 96, 8129 },{ 96, 8137 }, +{ 96, 8146 },{ 96, 8155 },{ 96, 8163 },{ 96, 8172 }, +{ 96, 8180 },{ 96, 8189 },{ 96, 8197 },{ 96, 8205 }, +{ 96, 8214 },{ 96, 8222 },{ 96, 8231 },{ 96, 8239 }, +{ 96, 8248 },{ 96, 8256 },{ 96, 8264 },{ 96, 8273 }, +{ 96, 8281 },{ 96, 8289 },{ 96, 8298 },{ 96, 8306 }, +{ 96, 8314 },{ 96, 8323 },{ 96, 8331 },{ 96, 8339 }, +{ 96, 8347 },{ 96, 8356 },{ 97, 8023 },{ 97, 8031 }, +{ 97, 8039 },{ 97, 8047 },{ 97, 8055 },{ 97, 8064 }, +{ 97, 8072 },{ 97, 8080 },{ 97, 8088 },{ 97, 8096 }, +{ 97, 8104 },{ 97, 8112 },{ 97, 8120 },{ 97, 8129 }, +{ 97, 8137 },{ 97, 8145 },{ 97, 8153 },{ 97, 8161 }, +{ 97, 8169 },{ 97, 8177 },{ 97, 8185 },{ 97, 8193 }, +{ 97, 8201 },{ 97, 8209 },{ 97, 8217 },{ 97, 8225 }, +{ 97, 8233 },{ 97, 8241 },{ 97, 8249 },{ 97, 8256 }, +{ 97, 8264 },{ 97, 8272 },{ 97, 8280 },{ 97, 8288 }, +{ 97, 8296 },{ 97, 8304 },{ 97, 8312 },{ 97, 8319 }, +{ 97, 8327 },{ 97, 8335 },{ 97, 8343 },{ 97, 8351 }, +{ 97, 8358 },{ 98, 8025 },{ 98, 8033 },{ 98, 8040 }, +{ 98, 8048 },{ 98, 8056 },{ 98, 8063 },{ 98, 8071 }, +{ 98, 8079 },{ 98, 8087 },{ 98, 8094 },{ 98, 8102 }, +{ 98, 8110 },{ 98, 8117 },{ 98, 8125 },{ 98, 8132 }, +{ 98, 8140 },{ 98, 8148 },{ 98, 8155 },{ 98, 8163 }, +{ 98, 8170 },{ 98, 8178 },{ 98, 8186 },{ 98, 8193 }, +{ 98, 8201 },{ 98, 8208 },{ 98, 8216 },{ 98, 8223 }, +{ 98, 8231 },{ 98, 8238 },{ 98, 8246 },{ 98, 8253 }, +{ 98, 8261 },{ 98, 8268 },{ 98, 8276 },{ 98, 8283 }, +{ 98, 8290 },{ 98, 8298 },{ 98, 8305 },{ 98, 8313 }, +{ 98, 8320 },{ 98, 8327 },{ 98, 8335 },{ 98, 8342 }, +{ 98, 8349 },{ 98, 8357 },{ 99, 8023 },{ 99, 8030 }, +{ 99, 8037 },{ 99, 8045 },{ 99, 8052 },{ 99, 8059 }, +{ 99, 8067 },{ 99, 8074 },{ 99, 8081 },{ 99, 8088 }, +{ 99, 8096 },{ 99, 8103 },{ 99, 8110 },{ 99, 8117 }, +{ 99, 8125 },{ 99, 8132 },{ 99, 8139 },{ 99, 8146 }, +{ 99, 8153 },{ 99, 8160 },{ 99, 8168 },{ 99, 8175 }, +{ 99, 8182 },{ 99, 8189 },{ 99, 8196 },{ 99, 8203 }, +{ 99, 8210 },{ 99, 8217 },{ 99, 8225 },{ 99, 8232 }, +{ 99, 8239 },{ 99, 8246 },{ 99, 8253 },{ 99, 8260 }, +{ 99, 8267 },{ 99, 8274 },{ 99, 8281 },{ 99, 8288 }, +{ 99, 8295 },{ 99, 8302 },{ 99, 8309 },{ 99, 8316 }, +{ 99, 8323 },{ 99, 8330 },{ 99, 8337 },{ 99, 8344 }, +{ 99, 8351 },{ 99, 8358 },{ 100, 8023 },{ 100, 8030 }, +{ 100, 8037 },{ 100, 8044 },{ 100, 8051 },{ 100, 8058 }, +{ 100, 8065 },{ 100, 8071 },{ 100, 8078 },{ 100, 8085 }, +{ 100, 8092 },{ 100, 8099 },{ 100, 8106 },{ 100, 8112 }, +{ 100, 8119 },{ 100, 8126 },{ 100, 8133 },{ 100, 8140 }, +{ 100, 8146 },{ 100, 8153 },{ 100, 8160 },{ 100, 8167 }, +{ 100, 8173 },{ 100, 8180 },{ 100, 8187 },{ 100, 8194 }, +{ 100, 8200 },{ 100, 8207 },{ 100, 8214 },{ 100, 8220 }, +{ 100, 8227 },{ 100, 8234 },{ 100, 8240 },{ 100, 8247 }, +{ 100, 8254 },{ 100, 8260 },{ 100, 8267 },{ 100, 8274 }, +{ 100, 8280 },{ 100, 8287 },{ 100, 8294 },{ 100, 8300 }, +{ 100, 8307 },{ 100, 8313 },{ 100, 8320 },{ 100, 8326 }, +{ 100, 8333 },{ 100, 8340 },{ 100, 8346 },{ 100, 8353 }, +{ 100, 8359 },{ 101, 8024 },{ 101, 8031 },{ 101, 8037 }, +{ 101, 8044 },{ 101, 8051 },{ 101, 8057 },{ 101, 8063 }, +{ 101, 8070 },{ 101, 8076 },{ 101, 8083 },{ 101, 8089 }, +{ 101, 8096 },{ 101, 8102 },{ 101, 8109 },{ 101, 8115 }, +{ 101, 8122 },{ 101, 8128 },{ 101, 8134 },{ 101, 8141 }, +{ 101, 8147 },{ 101, 8154 },{ 101, 8160 },{ 101, 8166 }, +{ 101, 8173 },{ 101, 8179 },{ 101, 8185 },{ 101, 8192 }, +{ 101, 8198 },{ 101, 8204 },{ 101, 8211 },{ 101, 8217 }, +{ 101, 8223 },{ 101, 8230 },{ 101, 8236 },{ 101, 8242 }, +{ 101, 8249 },{ 101, 8255 },{ 101, 8261 },{ 101, 8267 }, +{ 101, 8274 },{ 101, 8280 },{ 101, 8286 },{ 101, 8292 }, +{ 101, 8299 },{ 101, 8305 },{ 101, 8311 },{ 101, 8317 }, +{ 101, 8324 },{ 101, 8330 },{ 101, 8336 },{ 101, 8342 }, +{ 101, 8348 },{ 101, 8354 },{ 101, 8361 },{ 102, 8025 }, +{ 102, 8032 },{ 102, 8038 },{ 102, 8044 },{ 102, 8050 }, +{ 102, 8056 },{ 102, 8062 },{ 102, 8068 },{ 102, 8075 }, +{ 102, 8081 },{ 102, 8087 },{ 102, 8093 },{ 102, 8099 }, +{ 102, 8105 },{ 102, 8111 },{ 102, 8117 },{ 102, 8123 }, +{ 102, 8129 },{ 102, 8135 },{ 102, 8141 },{ 102, 8147 }, +{ 102, 8153 },{ 102, 8159 },{ 102, 8165 },{ 102, 8171 }, +{ 102, 8177 },{ 102, 8183 },{ 102, 8189 },{ 102, 8195 }, +{ 102, 8201 },{ 102, 8207 },{ 102, 8213 },{ 102, 8219 }, +{ 102, 8225 },{ 102, 8231 },{ 102, 8237 },{ 102, 8243 }, +{ 102, 8249 },{ 102, 8255 },{ 102, 8261 },{ 102, 8267 }, +{ 102, 8273 },{ 102, 8279 },{ 102, 8285 },{ 102, 8290 }, +{ 102, 8296 },{ 102, 8302 },{ 102, 8308 },{ 102, 8314 }, +{ 102, 8320 },{ 102, 8326 },{ 102, 8332 },{ 102, 8337 }, +{ 102, 8343 },{ 102, 8349 },{ 102, 8355 },{ 102, 8361 }, +{ 103, 8025 },{ 103, 8031 },{ 103, 8037 },{ 103, 8043 }, +{ 103, 8048 },{ 103, 8054 },{ 103, 8060 },{ 103, 8066 }, +{ 103, 8072 },{ 103, 8077 },{ 103, 8083 },{ 103, 8089 }, +{ 103, 8095 },{ 103, 8100 },{ 103, 8106 },{ 103, 8112 }, +{ 103, 8118 },{ 103, 8123 },{ 103, 8129 },{ 103, 8135 }, +{ 103, 8140 },{ 103, 8146 },{ 103, 8152 },{ 103, 8157 }, +{ 103, 8163 },{ 103, 8169 },{ 103, 8174 },{ 103, 8180 }, +{ 103, 8186 },{ 103, 8191 },{ 103, 8197 },{ 103, 8203 }, +{ 103, 8208 },{ 103, 8214 },{ 103, 8220 },{ 103, 8225 }, +{ 103, 8231 },{ 103, 8237 },{ 103, 8242 },{ 103, 8248 }, +{ 103, 8253 },{ 103, 8259 },{ 103, 8265 },{ 103, 8270 }, +{ 103, 8276 },{ 103, 8281 },{ 103, 8287 },{ 103, 8292 }, +{ 103, 8298 },{ 103, 8303 },{ 103, 8309 },{ 103, 8315 }, +{ 103, 8320 },{ 103, 8326 },{ 103, 8331 },{ 103, 8337 }, +{ 103, 8342 },{ 103, 8348 },{ 103, 8353 },{ 103, 8359 }, +{ 104, 8023 },{ 104, 8028 },{ 104, 8034 },{ 104, 8039 }, +{ 104, 8045 },{ 104, 8050 },{ 104, 8056 },{ 104, 8061 }, +{ 104, 8067 },{ 104, 8072 },{ 104, 8077 },{ 104, 8083 }, +{ 104, 8088 },{ 104, 8094 },{ 104, 8099 },{ 104, 8105 }, +{ 104, 8110 },{ 104, 8115 },{ 104, 8121 },{ 104, 8126 }, +{ 104, 8132 },{ 104, 8137 },{ 104, 8142 },{ 104, 8148 }, +{ 104, 8153 },{ 104, 8159 },{ 104, 8164 },{ 104, 8169 }, +{ 104, 8175 },{ 104, 8180 },{ 104, 8185 },{ 104, 8191 }, +{ 104, 8196 },{ 104, 8201 },{ 104, 8207 },{ 104, 8212 }, +{ 104, 8217 },{ 104, 8223 },{ 104, 8228 },{ 104, 8233 }, +{ 104, 8238 },{ 104, 8244 },{ 104, 8249 },{ 104, 8254 }, +{ 104, 8260 },{ 104, 8265 },{ 104, 8270 },{ 104, 8275 }, +{ 104, 8281 },{ 104, 8286 },{ 104, 8291 },{ 104, 8296 }, +{ 104, 8302 },{ 104, 8307 },{ 104, 8312 },{ 104, 8317 }, +{ 104, 8323 },{ 104, 8328 },{ 104, 8333 },{ 104, 8338 }, +{ 104, 8343 },{ 104, 8349 },{ 104, 8354 },{ 104, 8359 }, +{ 105, 8023 },{ 105, 8028 },{ 105, 8033 },{ 105, 8038 }, +{ 105, 8044 },{ 105, 8049 },{ 105, 8054 },{ 105, 8059 }, +{ 105, 8064 },{ 105, 8069 },{ 105, 8074 },{ 105, 8080 }, +{ 105, 8085 },{ 105, 8090 },{ 105, 8095 },{ 105, 8100 }, +{ 105, 8105 },{ 105, 8110 },{ 105, 8115 },{ 105, 8120 }, +{ 105, 8126 },{ 105, 8131 },{ 105, 8136 },{ 105, 8141 }, +{ 105, 8146 },{ 105, 8151 },{ 105, 8156 },{ 105, 8161 }, +{ 105, 8166 },{ 105, 8171 },{ 105, 8176 },{ 105, 8181 }, +{ 105, 8186 },{ 105, 8191 },{ 105, 8196 },{ 105, 8201 }, +{ 105, 8206 },{ 105, 8212 },{ 105, 8217 },{ 105, 8222 }, +{ 105, 8227 },{ 105, 8232 },{ 105, 8237 },{ 105, 8242 }, +{ 105, 8247 },{ 105, 8252 },{ 105, 8257 },{ 105, 8261 }, +{ 105, 8266 },{ 105, 8271 },{ 105, 8276 },{ 105, 8281 }, +{ 105, 8286 },{ 105, 8291 },{ 105, 8296 },{ 105, 8301 }, +{ 105, 8306 },{ 105, 8311 },{ 105, 8316 },{ 105, 8321 }, +{ 105, 8326 },{ 105, 8331 },{ 105, 8336 },{ 105, 8341 }, +{ 105, 8345 },{ 105, 8350 },{ 105, 8355 },{ 105, 8360 }, +{ 106, 8024 },{ 106, 8029 },{ 106, 8034 },{ 106, 8038 }, +{ 106, 8043 },{ 106, 8048 },{ 106, 8053 },{ 106, 8058 }, +{ 106, 8063 },{ 106, 8068 },{ 106, 8072 },{ 106, 8077 }, +{ 106, 8082 },{ 106, 8087 },{ 106, 8092 },{ 106, 8097 }, +{ 106, 8101 },{ 106, 8106 },{ 106, 8111 },{ 106, 8116 }, +{ 106, 8121 },{ 106, 8126 },{ 106, 8130 },{ 106, 8135 }, +{ 106, 8140 },{ 106, 8145 },{ 106, 8150 },{ 106, 8154 }, +{ 106, 8159 },{ 106, 8164 },{ 106, 8169 },{ 106, 8173 }, +{ 106, 8178 },{ 106, 8183 },{ 106, 8188 },{ 106, 8192 }, +{ 106, 8197 },{ 106, 8202 },{ 106, 8207 },{ 106, 8211 }, +{ 106, 8216 },{ 106, 8221 },{ 106, 8226 },{ 106, 8230 }, +{ 106, 8235 },{ 106, 8240 },{ 106, 8245 },{ 106, 8249 }, +{ 106, 8254 },{ 106, 8259 },{ 106, 8263 },{ 106, 8268 }, +{ 106, 8273 },{ 106, 8277 },{ 106, 8282 },{ 106, 8287 }, +{ 106, 8291 },{ 106, 8296 },{ 106, 8301 },{ 106, 8305 }, +{ 106, 8310 },{ 106, 8315 },{ 106, 8319 },{ 106, 8324 }, +{ 106, 8329 },{ 106, 8333 },{ 106, 8338 },{ 106, 8343 }, +{ 106, 8347 },{ 106, 8352 },{ 106, 8357 },{ 106, 8361 }, +{ 107, 8024 },{ 107, 8029 },{ 107, 8034 },{ 107, 8038 }, +{ 107, 8043 },{ 107, 8047 },{ 107, 8052 },{ 107, 8057 }, +{ 107, 8061 },{ 107, 8066 },{ 107, 8070 },{ 107, 8075 }, +{ 107, 8080 },{ 107, 8084 },{ 107, 8089 },{ 107, 8093 }, +{ 107, 8098 },{ 107, 8102 },{ 107, 8107 },{ 107, 8111 }, +{ 107, 8116 },{ 107, 8121 },{ 107, 8125 },{ 107, 8130 }, +{ 107, 8134 },{ 107, 8139 },{ 107, 8143 },{ 107, 8148 }, +{ 107, 8152 },{ 107, 8157 },{ 107, 8161 },{ 107, 8166 }, +{ 107, 8170 },{ 107, 8175 },{ 107, 8179 },{ 107, 8184 }, +{ 107, 8188 },{ 107, 8193 },{ 107, 8197 },{ 107, 8202 }, +{ 107, 8206 },{ 107, 8211 },{ 107, 8215 },{ 107, 8220 }, +{ 107, 8224 },{ 107, 8229 },{ 107, 8233 },{ 107, 8237 }, +{ 107, 8242 },{ 107, 8246 },{ 107, 8251 },{ 107, 8255 }, +{ 107, 8260 },{ 107, 8264 },{ 107, 8269 },{ 107, 8273 }, +{ 107, 8277 },{ 107, 8282 },{ 107, 8286 },{ 107, 8291 }, +{ 107, 8295 },{ 107, 8299 },{ 107, 8304 },{ 107, 8308 }, +{ 107, 8313 },{ 107, 8317 },{ 107, 8321 },{ 107, 8326 }, +{ 107, 8330 },{ 107, 8335 },{ 107, 8339 },{ 107, 8343 }, +{ 107, 8348 },{ 107, 8352 },{ 107, 8356 },{ 107, 8361 }, +{ 108, 8024 },{ 108, 8028 },{ 108, 8033 },{ 108, 8037 }, +{ 108, 8041 },{ 108, 8046 },{ 108, 8050 },{ 108, 8054 }, +{ 108, 8059 },{ 108, 8063 },{ 108, 8067 },{ 108, 8072 }, +{ 108, 8076 },{ 108, 8080 },{ 108, 8085 },{ 108, 8089 }, +{ 108, 8093 },{ 108, 8097 },{ 108, 8102 },{ 108, 8106 }, +{ 108, 8110 },{ 108, 8115 },{ 108, 8119 },{ 108, 8123 }, +{ 108, 8128 },{ 108, 8132 },{ 108, 8136 },{ 108, 8140 }, +{ 108, 8145 },{ 108, 8149 },{ 108, 8153 },{ 108, 8157 }, +{ 108, 8162 },{ 108, 8166 },{ 108, 8170 },{ 108, 8174 }, +{ 108, 8179 },{ 108, 8183 },{ 108, 8187 },{ 108, 8191 }, +{ 108, 8196 },{ 108, 8200 },{ 108, 8204 },{ 108, 8208 }, +{ 108, 8213 },{ 108, 8217 },{ 108, 8221 },{ 108, 8225 }, +{ 108, 8229 },{ 108, 8234 },{ 108, 8238 },{ 108, 8242 }, +{ 108, 8246 },{ 108, 8250 },{ 108, 8255 },{ 108, 8259 }, +{ 108, 8263 },{ 108, 8267 },{ 108, 8271 },{ 108, 8275 }, +{ 108, 8280 },{ 108, 8284 },{ 108, 8288 },{ 108, 8292 }, +{ 108, 8296 },{ 108, 8300 },{ 108, 8305 },{ 108, 8309 }, +{ 108, 8313 },{ 108, 8317 },{ 108, 8321 },{ 108, 8325 }, +{ 108, 8330 },{ 108, 8334 },{ 108, 8338 },{ 108, 8342 }, +{ 108, 8346 },{ 108, 8350 },{ 108, 8354 },{ 108, 8358 }, +{ 109, 8021 },{ 109, 8025 },{ 109, 8029 },{ 109, 8034 }, +{ 109, 8038 },{ 109, 8042 },{ 109, 8046 },{ 109, 8050 }, +{ 109, 8054 },{ 109, 8058 },{ 109, 8062 },{ 109, 8066 }, +{ 109, 8070 },{ 109, 8074 },{ 109, 8079 },{ 109, 8083 }, +{ 109, 8087 },{ 109, 8091 },{ 109, 8095 },{ 109, 8099 }, +{ 109, 8103 },{ 109, 8107 },{ 109, 8111 },{ 109, 8115 }, +{ 109, 8119 },{ 109, 8123 },{ 109, 8127 },{ 109, 8131 }, +{ 109, 8135 },{ 109, 8139 },{ 109, 8143 },{ 109, 8147 }, +{ 109, 8151 },{ 109, 8155 },{ 109, 8159 },{ 109, 8163 }, +{ 109, 8167 },{ 109, 8171 },{ 109, 8175 },{ 109, 8179 }, +{ 109, 8184 },{ 109, 8188 },{ 109, 8192 },{ 109, 8195 }, +{ 109, 8199 },{ 109, 8203 },{ 109, 8207 },{ 109, 8211 }, +{ 109, 8215 },{ 109, 8219 },{ 109, 8223 },{ 109, 8227 }, +{ 109, 8231 },{ 109, 8235 },{ 109, 8239 },{ 109, 8243 }, +{ 109, 8247 },{ 109, 8251 },{ 109, 8255 },{ 109, 8259 }, +{ 109, 8263 },{ 109, 8267 },{ 109, 8271 },{ 109, 8275 }, +{ 109, 8279 },{ 109, 8283 },{ 109, 8287 },{ 109, 8291 }, +{ 109, 8295 },{ 109, 8298 },{ 109, 8302 },{ 109, 8306 }, +{ 109, 8310 },{ 109, 8314 },{ 109, 8318 },{ 109, 8322 }, +{ 109, 8326 },{ 109, 8330 },{ 109, 8334 },{ 109, 8338 }, +{ 109, 8341 },{ 109, 8345 },{ 109, 8349 },{ 109, 8353 }, +{ 109, 8357 },{ 109, 8361 },{ 110, 8023 },{ 110, 8027 }, +{ 110, 8031 },{ 110, 8035 },{ 110, 8039 },{ 110, 8043 }, +{ 110, 8047 },{ 110, 8051 },{ 110, 8054 },{ 110, 8058 }, +{ 110, 8062 },{ 110, 8066 },{ 110, 8070 },{ 110, 8074 }, +{ 110, 8078 },{ 110, 8081 },{ 110, 8085 },{ 110, 8089 }, +{ 110, 8093 },{ 110, 8097 },{ 110, 8101 },{ 110, 8104 }, +{ 110, 8108 },{ 110, 8112 },{ 110, 8116 },{ 110, 8120 }, +{ 110, 8124 },{ 110, 8127 },{ 110, 8131 },{ 110, 8135 }, +{ 110, 8139 },{ 110, 8143 },{ 110, 8146 },{ 110, 8150 }, +{ 110, 8154 },{ 110, 8158 },{ 110, 8162 },{ 110, 8165 }, +{ 110, 8169 },{ 110, 8173 },{ 110, 8177 },{ 110, 8181 }, +{ 110, 8184 },{ 110, 8188 },{ 110, 8192 },{ 110, 8196 }, +{ 110, 8199 },{ 110, 8203 },{ 110, 8207 },{ 110, 8211 }, +{ 110, 8214 },{ 110, 8218 },{ 110, 8222 },{ 110, 8226 }, +{ 110, 8229 },{ 110, 8233 },{ 110, 8237 },{ 110, 8241 }, +{ 110, 8244 },{ 110, 8248 },{ 110, 8252 },{ 110, 8256 }, +{ 110, 8259 },{ 110, 8263 },{ 110, 8267 },{ 110, 8271 }, +{ 110, 8274 },{ 110, 8278 },{ 110, 8282 },{ 110, 8285 }, +{ 110, 8289 },{ 110, 8293 },{ 110, 8297 },{ 110, 8300 }, +{ 110, 8304 },{ 110, 8308 },{ 110, 8311 },{ 110, 8315 }, +{ 110, 8319 },{ 110, 8322 },{ 110, 8326 },{ 110, 8330 }, +{ 110, 8334 },{ 110, 8337 },{ 110, 8341 },{ 110, 8345 }, +{ 110, 8348 },{ 110, 8352 },{ 110, 8356 },{ 110, 8359 }, +{ 111, 8022 },{ 111, 8025 },{ 111, 8029 },{ 111, 8033 }, +{ 111, 8036 },{ 111, 8040 },{ 111, 8044 },{ 111, 8047 }, +{ 111, 8051 },{ 111, 8054 },{ 111, 8058 },{ 111, 8062 }, +{ 111, 8065 },{ 111, 8069 },{ 111, 8073 },{ 111, 8076 }, +{ 111, 8080 },{ 111, 8084 },{ 111, 8087 },{ 111, 8091 }, +{ 111, 8094 },{ 111, 8098 },{ 111, 8102 },{ 111, 8105 }, +{ 111, 8109 },{ 111, 8112 },{ 111, 8116 },{ 111, 8120 }, +{ 111, 8123 },{ 111, 8127 },{ 111, 8131 },{ 111, 8134 }, +{ 111, 8138 },{ 111, 8141 },{ 111, 8145 },{ 111, 8148 }, +{ 111, 8152 },{ 111, 8156 },{ 111, 8159 },{ 111, 8163 }, +{ 111, 8166 },{ 111, 8170 },{ 111, 8174 },{ 111, 8177 }, +{ 111, 8181 },{ 111, 8184 },{ 111, 8188 },{ 111, 8191 }, +{ 111, 8195 },{ 111, 8198 },{ 111, 8202 },{ 111, 8206 }, +{ 111, 8209 },{ 111, 8213 },{ 111, 8216 },{ 111, 8220 }, +{ 111, 8223 },{ 111, 8227 },{ 111, 8230 },{ 111, 8234 }, +{ 111, 8237 },{ 111, 8241 },{ 111, 8245 },{ 111, 8248 }, +{ 111, 8252 },{ 111, 8255 },{ 111, 8259 },{ 111, 8262 }, +{ 111, 8266 },{ 111, 8269 },{ 111, 8273 },{ 111, 8276 }, +{ 111, 8280 },{ 111, 8283 },{ 111, 8287 },{ 111, 8290 }, +{ 111, 8294 },{ 111, 8297 },{ 111, 8301 },{ 111, 8304 }, +{ 111, 8308 },{ 111, 8311 },{ 111, 8315 },{ 111, 8318 }, +{ 111, 8322 },{ 111, 8325 },{ 111, 8329 },{ 111, 8332 }, +{ 111, 8336 },{ 111, 8339 },{ 111, 8343 },{ 111, 8346 }, +{ 111, 8349 },{ 111, 8353 },{ 111, 8356 },{ 111, 8360 }, +{ 112, 8022 },{ 112, 8025 },{ 112, 8029 },{ 112, 8032 }, +{ 112, 8036 },{ 112, 8039 },{ 112, 8043 },{ 112, 8046 }, +{ 112, 8050 },{ 112, 8053 },{ 112, 8056 },{ 112, 8060 }, +{ 112, 8063 },{ 112, 8067 },{ 112, 8070 },{ 112, 8074 }, +{ 112, 8077 },{ 112, 8081 },{ 112, 8084 },{ 112, 8087 }, +{ 112, 8091 },{ 112, 8094 },{ 112, 8098 },{ 112, 8101 }, +{ 112, 8104 },{ 112, 8108 },{ 112, 8111 },{ 112, 8115 }, +{ 112, 8118 },{ 112, 8121 },{ 112, 8125 },{ 112, 8128 }, +{ 112, 8132 },{ 112, 8135 },{ 112, 8138 },{ 112, 8142 }, +{ 112, 8145 },{ 112, 8149 },{ 112, 8152 },{ 112, 8155 }, +{ 112, 8159 },{ 112, 8162 },{ 112, 8166 },{ 112, 8169 }, +{ 112, 8172 },{ 112, 8176 },{ 112, 8179 },{ 112, 8182 }, +{ 112, 8186 },{ 112, 8189 },{ 112, 8192 },{ 112, 8196 }, +{ 112, 8199 },{ 112, 8203 },{ 112, 8206 },{ 112, 8209 }, +{ 112, 8213 },{ 112, 8216 },{ 112, 8219 },{ 112, 8223 }, +{ 112, 8226 },{ 112, 8229 },{ 112, 8233 },{ 112, 8236 }, +{ 112, 8239 },{ 112, 8243 },{ 112, 8246 },{ 112, 8249 }, +{ 112, 8253 },{ 112, 8256 },{ 112, 8259 },{ 112, 8263 }, +{ 112, 8266 },{ 112, 8269 },{ 112, 8273 },{ 112, 8276 }, +{ 112, 8279 },{ 112, 8283 },{ 112, 8286 },{ 112, 8289 }, +{ 112, 8292 },{ 112, 8296 },{ 112, 8299 },{ 112, 8302 }, +{ 112, 8306 },{ 112, 8309 },{ 112, 8312 },{ 112, 8316 }, +{ 112, 8319 },{ 112, 8322 },{ 112, 8325 },{ 112, 8329 }, +{ 112, 8332 },{ 112, 8335 },{ 112, 8339 },{ 112, 8342 }, +{ 112, 8345 },{ 112, 8348 },{ 112, 8352 },{ 112, 8355 }, +{ 112, 8358 },{ 112, 8361 },{ 113, 8023 },{ 113, 8027 }, +{ 113, 8030 },{ 113, 8033 },{ 113, 8036 },{ 113, 8040 }, +{ 113, 8043 },{ 113, 8046 },{ 113, 8049 },{ 113, 8053 }, +{ 113, 8056 },{ 113, 8059 },{ 113, 8062 },{ 113, 8066 }, +{ 113, 8069 },{ 113, 8072 },{ 113, 8075 },{ 113, 8079 }, +{ 113, 8082 },{ 113, 8085 },{ 113, 8088 },{ 113, 8092 }, +{ 113, 8095 },{ 113, 8098 },{ 113, 8101 },{ 113, 8104 }, +{ 113, 8108 },{ 113, 8111 },{ 113, 8114 },{ 113, 8117 }, +{ 113, 8120 },{ 113, 8124 },{ 113, 8127 },{ 113, 8130 }, +{ 113, 8133 },{ 113, 8137 },{ 113, 8140 },{ 113, 8143 }, +{ 113, 8146 },{ 113, 8149 },{ 113, 8153 },{ 113, 8156 }, +{ 113, 8159 },{ 113, 8162 },{ 113, 8165 },{ 113, 8168 }, +{ 113, 8172 },{ 113, 8175 },{ 113, 8178 },{ 113, 8181 }, +{ 113, 8184 },{ 113, 8188 },{ 113, 8191 },{ 113, 8194 }, +{ 113, 8197 },{ 113, 8200 },{ 113, 8203 },{ 113, 8207 }, +{ 113, 8210 },{ 113, 8213 },{ 113, 8216 },{ 113, 8219 }, +{ 113, 8222 },{ 113, 8226 },{ 113, 8229 },{ 113, 8232 }, +{ 113, 8235 },{ 113, 8238 },{ 113, 8241 },{ 113, 8244 }, +{ 113, 8248 },{ 113, 8251 },{ 113, 8254 },{ 113, 8257 }, +{ 113, 8260 },{ 113, 8263 },{ 113, 8266 },{ 113, 8270 }, +{ 113, 8273 },{ 113, 8276 },{ 113, 8279 },{ 113, 8282 }, +{ 113, 8285 },{ 113, 8288 },{ 113, 8291 },{ 113, 8295 }, +{ 113, 8298 },{ 113, 8301 },{ 113, 8304 },{ 113, 8307 }, +{ 113, 8310 },{ 113, 8313 },{ 113, 8316 },{ 113, 8319 }, +{ 113, 8322 },{ 113, 8326 },{ 113, 8329 },{ 113, 8332 }, +{ 113, 8335 },{ 113, 8338 },{ 113, 8341 },{ 113, 8344 }, +{ 113, 8347 },{ 113, 8350 },{ 113, 8353 },{ 113, 8357 }, +{ 113, 8360 },{ 114, 8021 },{ 114, 8024 },{ 114, 8028 }, +{ 114, 8031 },{ 114, 8034 },{ 114, 8037 },{ 114, 8040 }, +{ 114, 8043 },{ 114, 8046 },{ 114, 8049 },{ 114, 8052 }, +{ 114, 8055 },{ 114, 8058 },{ 114, 8061 },{ 114, 8064 }, +{ 114, 8067 },{ 114, 8070 },{ 114, 8074 },{ 114, 8077 }, +{ 114, 8080 },{ 114, 8083 },{ 114, 8086 },{ 114, 8089 }, +{ 114, 8092 },{ 114, 8095 },{ 114, 8098 },{ 114, 8101 }, +{ 114, 8104 },{ 114, 8107 },{ 114, 8110 },{ 114, 8113 }, +{ 114, 8116 },{ 114, 8119 },{ 114, 8122 },{ 114, 8125 }, +{ 114, 8128 },{ 114, 8131 },{ 114, 8134 },{ 114, 8137 }, +{ 114, 8140 },{ 114, 8143 },{ 114, 8146 },{ 114, 8149 }, +{ 114, 8152 },{ 114, 8155 },{ 114, 8158 },{ 114, 8161 }, +{ 114, 8164 },{ 114, 8167 },{ 114, 8170 },{ 114, 8173 }, +{ 114, 8176 },{ 114, 8179 },{ 114, 8182 },{ 114, 8185 }, +{ 114, 8188 },{ 114, 8191 },{ 114, 8194 },{ 114, 8197 }, +{ 114, 8200 },{ 114, 8203 },{ 114, 8206 },{ 114, 8209 }, +{ 114, 8212 },{ 114, 8215 },{ 114, 8218 },{ 114, 8221 }, +{ 114, 8224 },{ 114, 8227 },{ 114, 8230 },{ 114, 8233 }, +{ 114, 8236 },{ 114, 8239 },{ 114, 8242 },{ 114, 8245 }, +{ 114, 8248 },{ 114, 8251 },{ 114, 8254 },{ 114, 8257 }, +{ 114, 8260 },{ 114, 8263 },{ 114, 8266 },{ 114, 8269 }, +{ 114, 8272 },{ 114, 8275 },{ 114, 8278 },{ 114, 8281 }, +{ 114, 8284 },{ 114, 8287 },{ 114, 8289 },{ 114, 8292 }, +{ 114, 8295 },{ 114, 8298 },{ 114, 8301 },{ 114, 8304 }, +{ 114, 8307 },{ 114, 8310 },{ 114, 8313 },{ 114, 8316 }, +{ 114, 8319 },{ 114, 8322 },{ 114, 8325 },{ 114, 8328 }, +{ 114, 8331 },{ 114, 8334 },{ 114, 8336 },{ 114, 8339 }, +{ 114, 8342 },{ 114, 8345 },{ 114, 8348 },{ 114, 8351 }, +{ 114, 8354 },{ 114, 8357 },{ 114, 8360 },{ 115, 8021 }, +{ 115, 8024 },{ 115, 8027 },{ 115, 8030 },{ 115, 8033 }, +{ 115, 8036 },{ 115, 8039 },{ 115, 8042 },{ 115, 8045 }, +{ 115, 8047 },{ 115, 8050 },{ 115, 8053 },{ 115, 8056 }, +{ 115, 8059 },{ 115, 8062 },{ 115, 8065 },{ 115, 8068 }, +{ 115, 8071 },{ 115, 8073 },{ 115, 8076 },{ 115, 8079 }, +{ 115, 8082 },{ 115, 8085 },{ 115, 8088 },{ 115, 8091 }, +{ 115, 8094 },{ 115, 8096 },{ 115, 8099 },{ 115, 8102 }, +{ 115, 8105 },{ 115, 8108 },{ 115, 8111 },{ 115, 8114 }, +{ 115, 8117 },{ 115, 8119 },{ 115, 8122 },{ 115, 8125 }, +{ 115, 8128 },{ 115, 8131 },{ 115, 8134 },{ 115, 8137 }, +{ 115, 8139 },{ 115, 8142 },{ 115, 8145 },{ 115, 8148 }, +{ 115, 8151 },{ 115, 8154 },{ 115, 8157 },{ 115, 8159 }, +{ 115, 8162 },{ 115, 8165 },{ 115, 8168 },{ 115, 8171 }, +{ 115, 8174 },{ 115, 8176 },{ 115, 8179 },{ 115, 8182 }, +{ 115, 8185 },{ 115, 8188 },{ 115, 8191 },{ 115, 8193 }, +{ 115, 8196 },{ 115, 8199 },{ 115, 8202 },{ 115, 8205 }, +{ 115, 8207 },{ 115, 8210 },{ 115, 8213 },{ 115, 8216 }, +{ 115, 8219 },{ 115, 8222 },{ 115, 8224 },{ 115, 8227 }, +{ 115, 8230 },{ 115, 8233 },{ 115, 8236 },{ 115, 8238 }, +{ 115, 8241 },{ 115, 8244 },{ 115, 8247 },{ 115, 8250 }, +{ 115, 8252 },{ 115, 8255 },{ 115, 8258 },{ 115, 8261 }, +{ 115, 8264 },{ 115, 8266 },{ 115, 8269 },{ 115, 8272 }, +{ 115, 8275 },{ 115, 8278 },{ 115, 8280 },{ 115, 8283 }, +{ 115, 8286 },{ 115, 8289 },{ 115, 8291 },{ 115, 8294 }, +{ 115, 8297 },{ 115, 8300 },{ 115, 8303 },{ 115, 8305 }, +{ 115, 8308 },{ 115, 8311 },{ 115, 8314 },{ 115, 8316 }, +{ 115, 8319 },{ 115, 8322 },{ 115, 8325 },{ 115, 8327 }, +{ 115, 8330 },{ 115, 8333 },{ 115, 8336 },{ 115, 8338 }, +{ 115, 8341 },{ 115, 8344 },{ 115, 8347 },{ 115, 8350 }, +{ 115, 8352 },{ 115, 8355 },{ 115, 8358 },{ 115, 8361 }, +{ 116, 8022 },{ 116, 8025 },{ 116, 8027 },{ 116, 8030 }, +{ 116, 8033 },{ 116, 8036 },{ 116, 8038 },{ 116, 8041 }, +{ 116, 8044 },{ 116, 8047 },{ 116, 8049 },{ 116, 8052 }, +{ 116, 8055 },{ 116, 8057 },{ 116, 8060 },{ 116, 8063 }, +{ 116, 8066 },{ 116, 8068 },{ 116, 8071 },{ 116, 8074 }, +{ 116, 8077 },{ 116, 8079 },{ 116, 8082 },{ 116, 8085 }, +{ 116, 8087 },{ 116, 8090 },{ 116, 8093 },{ 116, 8096 }, +{ 116, 8098 },{ 116, 8101 },{ 116, 8104 },{ 116, 8106 }, +{ 116, 8109 },{ 116, 8112 },{ 116, 8115 },{ 116, 8117 }, +{ 116, 8120 },{ 116, 8123 },{ 116, 8125 },{ 116, 8128 }, +{ 116, 8131 },{ 116, 8133 },{ 116, 8136 },{ 116, 8139 }, +{ 116, 8142 },{ 116, 8144 },{ 116, 8147 },{ 116, 8150 }, +{ 116, 8152 },{ 116, 8155 },{ 116, 8158 },{ 116, 8160 }, +{ 116, 8163 },{ 116, 8166 },{ 116, 8168 },{ 116, 8171 }, +{ 116, 8174 },{ 116, 8176 },{ 116, 8179 },{ 116, 8182 }, +{ 116, 8184 },{ 116, 8187 },{ 116, 8190 },{ 116, 8192 }, +{ 116, 8195 },{ 116, 8198 },{ 116, 8200 },{ 116, 8203 }, +{ 116, 8206 },{ 116, 8208 },{ 116, 8211 },{ 116, 8214 }, +{ 116, 8216 },{ 116, 8219 },{ 116, 8222 },{ 116, 8224 }, +{ 116, 8227 },{ 116, 8230 },{ 116, 8232 },{ 116, 8235 }, +{ 116, 8238 },{ 116, 8240 },{ 116, 8243 },{ 116, 8246 }, +{ 116, 8248 },{ 116, 8251 },{ 116, 8253 },{ 116, 8256 }, +{ 116, 8259 },{ 116, 8261 },{ 116, 8264 },{ 116, 8267 }, +{ 116, 8269 },{ 116, 8272 },{ 116, 8275 },{ 116, 8277 }, +{ 116, 8280 },{ 116, 8282 },{ 116, 8285 },{ 116, 8288 }, +{ 116, 8290 },{ 116, 8293 },{ 116, 8296 },{ 116, 8298 }, +{ 116, 8301 },{ 116, 8303 },{ 116, 8306 },{ 116, 8309 }, +{ 116, 8311 },{ 116, 8314 },{ 116, 8316 },{ 116, 8319 }, +{ 116, 8322 },{ 116, 8324 },{ 116, 8327 },{ 116, 8330 }, +{ 116, 8332 },{ 116, 8335 },{ 116, 8337 },{ 116, 8340 }, +{ 116, 8343 },{ 116, 8345 },{ 116, 8348 },{ 116, 8350 }, +{ 116, 8353 },{ 116, 8356 },{ 116, 8358 },{ 116, 8361 }, +{ 117, 8022 },{ 117, 8025 },{ 117, 8027 },{ 117, 8030 }, +{ 117, 8032 },{ 117, 8035 },{ 117, 8037 },{ 117, 8040 }, +{ 117, 8043 },{ 117, 8045 },{ 117, 8048 },{ 117, 8050 }, +{ 117, 8053 },{ 117, 8056 },{ 117, 8058 },{ 117, 8061 }, +{ 117, 8063 },{ 117, 8066 },{ 117, 8068 },{ 117, 8071 }, +{ 117, 8074 },{ 117, 8076 },{ 117, 8079 },{ 117, 8081 }, +{ 117, 8084 },{ 117, 8086 },{ 117, 8089 },{ 117, 8092 }, +{ 117, 8094 },{ 117, 8097 },{ 117, 8099 },{ 117, 8102 }, +{ 117, 8104 },{ 117, 8107 },{ 117, 8109 },{ 117, 8112 }, +{ 117, 8115 },{ 117, 8117 },{ 117, 8120 },{ 117, 8122 }, +{ 117, 8125 },{ 117, 8127 },{ 117, 8130 },{ 117, 8132 }, +{ 117, 8135 },{ 117, 8137 },{ 117, 8140 },{ 117, 8143 }, +{ 117, 8145 },{ 117, 8148 },{ 117, 8150 },{ 117, 8153 }, +{ 117, 8155 },{ 117, 8158 },{ 117, 8160 },{ 117, 8163 }, +{ 117, 8165 },{ 117, 8168 },{ 117, 8170 },{ 117, 8173 }, +{ 117, 8175 },{ 117, 8178 },{ 117, 8180 },{ 117, 8183 }, +{ 117, 8186 },{ 117, 8188 },{ 117, 8191 },{ 117, 8193 }, +{ 117, 8196 },{ 117, 8198 },{ 117, 8201 },{ 117, 8203 }, +{ 117, 8206 },{ 117, 8208 },{ 117, 8211 },{ 117, 8213 }, +{ 117, 8216 },{ 117, 8218 },{ 117, 8221 },{ 117, 8223 }, +{ 117, 8226 },{ 117, 8228 },{ 117, 8231 },{ 117, 8233 }, +{ 117, 8236 },{ 117, 8238 },{ 117, 8241 },{ 117, 8243 }, +{ 117, 8246 },{ 117, 8248 },{ 117, 8251 },{ 117, 8253 }, +{ 117, 8256 },{ 117, 8258 },{ 117, 8261 },{ 117, 8263 }, +{ 117, 8266 },{ 117, 8268 },{ 117, 8271 },{ 117, 8273 }, +{ 117, 8276 },{ 117, 8278 },{ 117, 8281 },{ 117, 8283 }, +{ 117, 8285 },{ 117, 8288 },{ 117, 8290 },{ 117, 8293 }, +{ 117, 8295 },{ 117, 8298 },{ 117, 8300 },{ 117, 8303 }, +{ 117, 8305 },{ 117, 8308 },{ 117, 8310 },{ 117, 8313 }, +{ 117, 8315 },{ 117, 8318 },{ 117, 8320 },{ 117, 8323 }, +{ 117, 8325 },{ 117, 8327 },{ 117, 8330 },{ 117, 8332 }, +{ 117, 8335 },{ 117, 8337 },{ 117, 8340 },{ 117, 8342 }, +{ 117, 8345 },{ 117, 8347 },{ 117, 8350 },{ 117, 8352 }, +{ 117, 8354 },{ 117, 8357 },{ 117, 8359 },{ 117, 8362 }, +{ 118, 8023 },{ 118, 8025 },{ 118, 8028 },{ 118, 8030 }, +{ 118, 8033 },{ 118, 8035 },{ 118, 8038 },{ 118, 8040 }, +{ 118, 8042 },{ 118, 8045 },{ 118, 8047 },{ 118, 8050 }, +{ 118, 8052 },{ 118, 8055 },{ 118, 8057 },{ 118, 8060 }, +{ 118, 8062 },{ 118, 8064 },{ 118, 8067 },{ 118, 8069 }, +{ 118, 8072 },{ 118, 8074 },{ 118, 8077 },{ 118, 8079 }, +{ 118, 8081 },{ 118, 8084 },{ 118, 8086 },{ 118, 8089 }, +{ 118, 8091 },{ 118, 8093 },{ 118, 8096 },{ 118, 8098 }, +{ 118, 8101 },{ 118, 8103 },{ 118, 8106 },{ 118, 8108 }, +{ 118, 8110 },{ 118, 8113 },{ 118, 8115 },{ 118, 8118 }, +{ 118, 8120 },{ 118, 8122 },{ 118, 8125 },{ 118, 8127 }, +{ 118, 8130 },{ 118, 8132 },{ 118, 8134 },{ 118, 8137 }, +{ 118, 8139 },{ 118, 8142 },{ 118, 8144 },{ 118, 8146 }, +{ 118, 8149 },{ 118, 8151 },{ 118, 8154 },{ 118, 8156 }, +{ 118, 8158 },{ 118, 8161 },{ 118, 8163 },{ 118, 8165 }, +{ 118, 8168 },{ 118, 8170 },{ 118, 8173 },{ 118, 8175 }, +{ 118, 8177 },{ 118, 8180 },{ 118, 8182 },{ 118, 8185 }, +{ 118, 8187 },{ 118, 8189 },{ 118, 8192 },{ 118, 8194 }, +{ 118, 8196 },{ 118, 8199 },{ 118, 8201 },{ 118, 8204 }, +{ 118, 8206 },{ 118, 8208 },{ 118, 8211 },{ 118, 8213 }, +{ 118, 8215 },{ 118, 8218 },{ 118, 8220 },{ 118, 8223 }, +{ 118, 8225 },{ 118, 8227 },{ 118, 8230 },{ 118, 8232 }, +{ 118, 8234 },{ 118, 8237 },{ 118, 8239 },{ 118, 8241 }, +{ 118, 8244 },{ 118, 8246 },{ 118, 8248 },{ 118, 8251 }, +{ 118, 8253 },{ 118, 8256 },{ 118, 8258 },{ 118, 8260 }, +{ 118, 8263 },{ 118, 8265 },{ 118, 8267 },{ 118, 8270 }, +{ 118, 8272 },{ 118, 8274 },{ 118, 8277 },{ 118, 8279 }, +{ 118, 8281 },{ 118, 8284 },{ 118, 8286 },{ 118, 8288 }, +{ 118, 8291 },{ 118, 8293 },{ 118, 8295 },{ 118, 8298 }, +{ 118, 8300 },{ 118, 8302 },{ 118, 8305 },{ 118, 8307 }, +{ 118, 8309 },{ 118, 8312 },{ 118, 8314 },{ 118, 8316 }, +{ 118, 8319 },{ 118, 8321 },{ 118, 8323 },{ 118, 8326 }, +{ 118, 8328 },{ 118, 8330 },{ 118, 8333 },{ 118, 8335 }, +{ 118, 8337 },{ 118, 8340 },{ 118, 8342 },{ 118, 8344 }, +{ 118, 8347 },{ 118, 8349 },{ 118, 8351 },{ 118, 8353 }, +{ 118, 8356 },{ 118, 8358 },{ 118, 8360 },{ 119, 8021 }, +{ 119, 8024 },{ 119, 8026 },{ 119, 8028 },{ 119, 8031 }, +{ 119, 8033 },{ 119, 8035 },{ 119, 8038 },{ 119, 8040 }, +{ 119, 8042 },{ 119, 8044 },{ 119, 8047 },{ 119, 8049 }, +{ 119, 8051 },{ 119, 8054 },{ 119, 8056 },{ 119, 8058 }, +{ 119, 8060 },{ 119, 8063 },{ 119, 8065 },{ 119, 8067 }, +{ 119, 8070 },{ 119, 8072 },{ 119, 8074 },{ 119, 8077 }, +{ 119, 8079 },{ 119, 8081 },{ 119, 8083 },{ 119, 8086 }, +{ 119, 8088 },{ 119, 8090 },{ 119, 8093 },{ 119, 8095 }, +{ 119, 8097 },{ 119, 8099 },{ 119, 8102 },{ 119, 8104 }, +{ 119, 8106 },{ 119, 8108 },{ 119, 8111 },{ 119, 8113 }, +{ 119, 8115 },{ 119, 8118 },{ 119, 8120 },{ 119, 8122 }, +{ 119, 8124 },{ 119, 8127 },{ 119, 8129 },{ 119, 8131 }, +{ 119, 8133 },{ 119, 8136 },{ 119, 8138 },{ 119, 8140 }, +{ 119, 8142 },{ 119, 8145 },{ 119, 8147 },{ 119, 8149 }, +{ 119, 8152 },{ 119, 8154 },{ 119, 8156 },{ 119, 8158 }, +{ 119, 8161 },{ 119, 8163 },{ 119, 8165 },{ 119, 8167 }, +{ 119, 8170 },{ 119, 8172 },{ 119, 8174 },{ 119, 8176 }, +{ 119, 8179 },{ 119, 8181 },{ 119, 8183 },{ 119, 8185 }, +{ 119, 8188 },{ 119, 8190 },{ 119, 8192 },{ 119, 8194 }, +{ 119, 8197 },{ 119, 8199 },{ 119, 8201 },{ 119, 8203 }, +{ 119, 8205 },{ 119, 8208 },{ 119, 8210 },{ 119, 8212 }, +{ 119, 8214 },{ 119, 8217 },{ 119, 8219 },{ 119, 8221 }, +{ 119, 8223 },{ 119, 8226 },{ 119, 8228 },{ 119, 8230 }, +{ 119, 8232 },{ 119, 8235 },{ 119, 8237 },{ 119, 8239 }, +{ 119, 8241 },{ 119, 8243 },{ 119, 8246 },{ 119, 8248 }, +{ 119, 8250 },{ 119, 8252 },{ 119, 8255 },{ 119, 8257 }, +{ 119, 8259 },{ 119, 8261 },{ 119, 8263 },{ 119, 8266 }, +{ 119, 8268 },{ 119, 8270 },{ 119, 8272 },{ 119, 8274 }, +{ 119, 8277 },{ 119, 8279 },{ 119, 8281 },{ 119, 8283 }, +{ 119, 8286 },{ 119, 8288 },{ 119, 8290 },{ 119, 8292 }, +{ 119, 8294 },{ 119, 8297 },{ 119, 8299 },{ 119, 8301 }, +{ 119, 8303 },{ 119, 8305 },{ 119, 8308 },{ 119, 8310 }, +{ 119, 8312 },{ 119, 8314 },{ 119, 8316 },{ 119, 8319 }, +{ 119, 8321 },{ 119, 8323 },{ 119, 8325 },{ 119, 8327 }, +{ 119, 8330 },{ 119, 8332 },{ 119, 8334 },{ 119, 8336 }, +{ 119, 8338 },{ 119, 8340 },{ 119, 8343 },{ 119, 8345 }, +{ 119, 8347 },{ 119, 8349 },{ 119, 8351 },{ 119, 8354 }, +{ 119, 8356 },{ 119, 8358 },{ 119, 8360 },{ 120, 8021 }, +{ 120, 8023 },{ 120, 8025 },{ 120, 8027 },{ 120, 8030 }, +{ 120, 8032 },{ 120, 8034 },{ 120, 8036 },{ 120, 8038 }, +{ 120, 8041 },{ 120, 8043 },{ 120, 8045 },{ 120, 8047 }, +{ 120, 8049 },{ 120, 8051 },{ 120, 8054 },{ 120, 8056 }, +{ 120, 8058 },{ 120, 8060 },{ 120, 8062 },{ 120, 8064 }, +{ 120, 8067 },{ 120, 8069 },{ 120, 8071 },{ 120, 8073 }, +{ 120, 8075 },{ 120, 8077 },{ 120, 8080 },{ 120, 8082 }, +{ 120, 8084 },{ 120, 8086 },{ 120, 8088 },{ 120, 8090 }, +{ 120, 8092 },{ 120, 8095 },{ 120, 8097 },{ 120, 8099 }, +{ 120, 8101 },{ 120, 8103 },{ 120, 8105 },{ 120, 8108 }, +{ 120, 8110 },{ 120, 8112 },{ 120, 8114 },{ 120, 8116 }, +{ 120, 8118 },{ 120, 8120 },{ 120, 8123 },{ 120, 8125 }, +{ 120, 8127 },{ 120, 8129 },{ 120, 8131 },{ 120, 8133 }, +{ 120, 8135 },{ 120, 8137 },{ 120, 8140 },{ 120, 8142 }, +{ 120, 8144 },{ 120, 8146 },{ 120, 8148 },{ 120, 8150 }, +{ 120, 8152 },{ 120, 8155 },{ 120, 8157 },{ 120, 8159 }, +{ 120, 8161 },{ 120, 8163 },{ 120, 8165 },{ 120, 8167 }, +{ 120, 8169 },{ 120, 8172 },{ 120, 8174 },{ 120, 8176 }, +{ 120, 8178 },{ 120, 8180 },{ 120, 8182 },{ 120, 8184 }, +{ 120, 8186 },{ 120, 8189 },{ 120, 8191 },{ 120, 8193 }, +{ 120, 8195 },{ 120, 8197 },{ 120, 8199 },{ 120, 8201 }, +{ 120, 8203 },{ 120, 8205 },{ 120, 8208 },{ 120, 8210 }, +{ 120, 8212 },{ 120, 8214 },{ 120, 8216 },{ 120, 8218 }, +{ 120, 8220 },{ 120, 8222 },{ 120, 8224 },{ 120, 8227 }, +{ 120, 8229 },{ 120, 8231 },{ 120, 8233 },{ 120, 8235 }, +{ 120, 8237 },{ 120, 8239 },{ 120, 8241 },{ 120, 8243 }, +{ 120, 8245 },{ 120, 8248 },{ 120, 8250 },{ 120, 8252 }, +{ 120, 8254 },{ 120, 8256 },{ 120, 8258 },{ 120, 8260 }, +{ 120, 8262 },{ 120, 8264 },{ 120, 8266 },{ 120, 8269 }, +{ 120, 8271 },{ 120, 8273 },{ 120, 8275 },{ 120, 8277 }, +{ 120, 8279 },{ 120, 8281 },{ 120, 8283 },{ 120, 8285 }, +{ 120, 8287 },{ 120, 8289 },{ 120, 8291 },{ 120, 8294 }, +{ 120, 8296 },{ 120, 8298 },{ 120, 8300 },{ 120, 8302 }, +{ 120, 8304 },{ 120, 8306 },{ 120, 8308 },{ 120, 8310 }, +{ 120, 8312 },{ 120, 8314 },{ 120, 8316 },{ 120, 8318 }, +{ 120, 8321 },{ 120, 8323 },{ 120, 8325 },{ 120, 8327 }, +{ 120, 8329 },{ 120, 8331 },{ 120, 8333 },{ 120, 8335 }, +{ 120, 8337 },{ 120, 8339 },{ 120, 8341 },{ 120, 8343 }, +{ 120, 8345 },{ 120, 8347 },{ 120, 8349 },{ 120, 8352 }, +{ 120, 8354 },{ 120, 8356 },{ 120, 8358 },{ 120, 8360 }, +{ 120, 8362 },{ 121, 8023 },{ 121, 8025 },{ 121, 8027 }, +{ 121, 8029 },{ 121, 8031 },{ 121, 8033 },{ 121, 8035 }, +{ 121, 8037 },{ 121, 8039 },{ 121, 8041 },{ 121, 8043 }, +{ 121, 8045 },{ 121, 8047 },{ 121, 8049 },{ 121, 8051 }, +{ 121, 8053 },{ 121, 8055 },{ 121, 8057 },{ 121, 8059 }, +{ 121, 8062 },{ 121, 8064 },{ 121, 8066 },{ 121, 8068 }, +{ 121, 8070 },{ 121, 8072 },{ 121, 8074 },{ 121, 8076 }, +{ 121, 8078 },{ 121, 8080 },{ 121, 8082 },{ 121, 8084 }, +{ 121, 8086 },{ 121, 8088 },{ 121, 8090 },{ 121, 8092 }, +{ 121, 8094 },{ 121, 8096 },{ 121, 8098 },{ 121, 8100 }, +{ 121, 8102 },{ 121, 8104 },{ 121, 8106 },{ 121, 8108 }, +{ 121, 8110 },{ 121, 8112 },{ 121, 8114 },{ 121, 8116 }, +{ 121, 8118 },{ 121, 8120 },{ 121, 8122 },{ 121, 8125 }, +{ 121, 8127 },{ 121, 8129 },{ 121, 8131 },{ 121, 8133 }, +{ 121, 8135 },{ 121, 8137 },{ 121, 8139 },{ 121, 8141 }, +{ 121, 8143 },{ 121, 8145 },{ 121, 8147 },{ 121, 8149 }, +{ 121, 8151 },{ 121, 8153 },{ 121, 8155 },{ 121, 8157 }, +{ 121, 8159 },{ 121, 8161 },{ 121, 8163 },{ 121, 8165 }, +{ 121, 8167 },{ 121, 8169 },{ 121, 8171 },{ 121, 8173 }, +{ 121, 8175 },{ 121, 8177 },{ 121, 8179 },{ 121, 8181 }, +{ 121, 8183 },{ 121, 8185 },{ 121, 8187 },{ 121, 8189 }, +{ 121, 8191 },{ 121, 8193 },{ 121, 8195 },{ 121, 8197 }, +{ 121, 8199 },{ 121, 8201 },{ 121, 8203 },{ 121, 8205 }, +{ 121, 8207 },{ 121, 8209 },{ 121, 8211 },{ 121, 8213 }, +{ 121, 8215 },{ 121, 8217 },{ 121, 8219 },{ 121, 8221 }, +{ 121, 8223 },{ 121, 8225 },{ 121, 8227 },{ 121, 8229 }, +{ 121, 8231 },{ 121, 8233 },{ 121, 8235 },{ 121, 8237 }, +{ 121, 8239 },{ 121, 8241 },{ 121, 8243 },{ 121, 8245 }, +{ 121, 8247 },{ 121, 8249 },{ 121, 8251 },{ 121, 8252 }, +{ 121, 8254 },{ 121, 8256 },{ 121, 8258 },{ 121, 8260 }, +{ 121, 8262 },{ 121, 8264 },{ 121, 8266 },{ 121, 8268 }, +{ 121, 8270 },{ 121, 8272 },{ 121, 8274 },{ 121, 8276 }, +{ 121, 8278 },{ 121, 8280 },{ 121, 8282 },{ 121, 8284 }, +{ 121, 8286 },{ 121, 8288 },{ 121, 8290 },{ 121, 8292 }, +{ 121, 8294 },{ 121, 8296 },{ 121, 8298 },{ 121, 8300 }, +{ 121, 8302 },{ 121, 8304 },{ 121, 8306 },{ 121, 8308 }, +{ 121, 8310 },{ 121, 8312 },{ 121, 8313 },{ 121, 8315 }, +{ 121, 8317 },{ 121, 8319 },{ 121, 8321 },{ 121, 8323 }, +{ 121, 8325 },{ 121, 8327 },{ 121, 8329 },{ 121, 8331 }, +{ 121, 8333 },{ 121, 8335 },{ 121, 8337 },{ 121, 8339 }, +{ 121, 8341 },{ 121, 8343 },{ 121, 8345 },{ 121, 8347 }, +{ 121, 8349 },{ 121, 8351 },{ 121, 8353 },{ 121, 8354 }, +{ 121, 8356 },{ 121, 8358 },{ 121, 8360 },{ 122, 8021 }, +{ 122, 8023 },{ 122, 8025 },{ 122, 8027 },{ 122, 8029 }, +{ 122, 8031 },{ 122, 8033 },{ 122, 8034 },{ 122, 8036 }, +{ 122, 8038 },{ 122, 8040 },{ 122, 8042 },{ 122, 8044 }, +{ 122, 8046 },{ 122, 8048 },{ 122, 8050 },{ 122, 8052 }, +{ 122, 8054 },{ 122, 8056 },{ 122, 8058 },{ 122, 8060 }, +{ 122, 8062 },{ 122, 8063 },{ 122, 8065 },{ 122, 8067 }, +{ 122, 8069 },{ 122, 8071 },{ 122, 8073 },{ 122, 8075 }, +{ 122, 8077 },{ 122, 8079 },{ 122, 8081 },{ 122, 8083 }, +{ 122, 8085 },{ 122, 8087 },{ 122, 8088 },{ 122, 8090 }, +{ 122, 8092 },{ 122, 8094 },{ 122, 8096 },{ 122, 8098 }, +{ 122, 8100 },{ 122, 8102 },{ 122, 8104 },{ 122, 8106 }, +{ 122, 8108 },{ 122, 8110 },{ 122, 8111 },{ 122, 8113 }, +{ 122, 8115 },{ 122, 8117 },{ 122, 8119 },{ 122, 8121 }, +{ 122, 8123 },{ 122, 8125 },{ 122, 8127 },{ 122, 8129 }, +{ 122, 8131 },{ 122, 8132 },{ 122, 8134 },{ 122, 8136 }, +{ 122, 8138 },{ 122, 8140 },{ 122, 8142 },{ 122, 8144 }, +{ 122, 8146 },{ 122, 8148 },{ 122, 8150 },{ 122, 8151 }, +{ 122, 8153 },{ 122, 8155 },{ 122, 8157 },{ 122, 8159 }, +{ 122, 8161 },{ 122, 8163 },{ 122, 8165 },{ 122, 8167 }, +{ 122, 8169 },{ 122, 8170 },{ 122, 8172 },{ 122, 8174 }, +{ 122, 8176 },{ 122, 8178 },{ 122, 8180 },{ 122, 8182 }, +{ 122, 8184 },{ 122, 8186 },{ 122, 8187 },{ 122, 8189 }, +{ 122, 8191 },{ 122, 8193 },{ 122, 8195 },{ 122, 8197 }, +{ 122, 8199 },{ 122, 8201 },{ 122, 8203 },{ 122, 8204 }, +{ 122, 8206 },{ 122, 8208 },{ 122, 8210 },{ 122, 8212 }, +{ 122, 8214 },{ 122, 8216 },{ 122, 8218 },{ 122, 8219 }, +{ 122, 8221 },{ 122, 8223 },{ 122, 8225 },{ 122, 8227 }, +{ 122, 8229 },{ 122, 8231 },{ 122, 8233 },{ 122, 8234 }, +{ 122, 8236 },{ 122, 8238 },{ 122, 8240 },{ 122, 8242 }, +{ 122, 8244 },{ 122, 8246 },{ 122, 8248 },{ 122, 8249 }, +{ 122, 8251 },{ 122, 8253 },{ 122, 8255 },{ 122, 8257 }, +{ 122, 8259 },{ 122, 8261 },{ 122, 8262 },{ 122, 8264 }, +{ 122, 8266 },{ 122, 8268 },{ 122, 8270 },{ 122, 8272 }, +{ 122, 8274 },{ 122, 8276 },{ 122, 8277 },{ 122, 8279 }, +{ 122, 8281 },{ 122, 8283 },{ 122, 8285 },{ 122, 8287 }, +{ 122, 8289 },{ 122, 8290 },{ 122, 8292 },{ 122, 8294 }, +{ 122, 8296 },{ 122, 8298 },{ 122, 8300 },{ 122, 8301 }, +{ 122, 8303 },{ 122, 8305 },{ 122, 8307 },{ 122, 8309 }, +{ 122, 8311 },{ 122, 8313 },{ 122, 8314 },{ 122, 8316 }, +{ 122, 8318 },{ 122, 8320 },{ 122, 8322 },{ 122, 8324 }, +{ 122, 8326 },{ 122, 8327 },{ 122, 8329 },{ 122, 8331 }, +{ 122, 8333 },{ 122, 8335 },{ 122, 8337 },{ 122, 8338 }, +{ 122, 8340 },{ 122, 8342 },{ 122, 8344 },{ 122, 8346 }, +{ 122, 8348 },{ 122, 8349 },{ 122, 8351 },{ 122, 8353 }, +{ 122, 8355 },{ 122, 8357 },{ 122, 8359 },{ 122, 8360 }, +{ 123, 8021 },{ 123, 8023 },{ 123, 8025 },{ 123, 8026 }, +{ 123, 8028 },{ 123, 8030 },{ 123, 8032 },{ 123, 8034 }, +{ 123, 8036 },{ 123, 8037 },{ 123, 8039 },{ 123, 8041 }, +{ 123, 8043 },{ 123, 8045 },{ 123, 8047 },{ 123, 8048 }, +{ 123, 8050 },{ 123, 8052 },{ 123, 8054 },{ 123, 8056 }, +{ 123, 8057 },{ 123, 8059 },{ 123, 8061 },{ 123, 8063 }, +{ 123, 8065 },{ 123, 8067 },{ 123, 8068 },{ 123, 8070 }, +{ 123, 8072 },{ 123, 8074 },{ 123, 8076 },{ 123, 8077 }, +{ 123, 8079 },{ 123, 8081 },{ 123, 8083 },{ 123, 8085 }, +{ 123, 8087 },{ 123, 8088 },{ 123, 8090 },{ 123, 8092 }, +{ 123, 8094 },{ 123, 8096 },{ 123, 8097 },{ 123, 8099 }, +{ 123, 8101 },{ 123, 8103 },{ 123, 8105 },{ 123, 8106 }, +{ 123, 8108 },{ 123, 8110 },{ 123, 8112 },{ 123, 8114 }, +{ 123, 8115 },{ 123, 8117 },{ 123, 8119 },{ 123, 8121 }, +{ 123, 8123 },{ 123, 8125 },{ 123, 8126 },{ 123, 8128 }, +{ 123, 8130 },{ 123, 8132 },{ 123, 8134 },{ 123, 8135 }, +{ 123, 8137 },{ 123, 8139 },{ 123, 8141 },{ 123, 8142 }, +{ 123, 8144 },{ 123, 8146 },{ 123, 8148 },{ 123, 8150 }, +{ 123, 8151 },{ 123, 8153 },{ 123, 8155 },{ 123, 8157 }, +{ 123, 8159 },{ 123, 8160 },{ 123, 8162 },{ 123, 8164 }, +{ 123, 8166 },{ 123, 8168 },{ 123, 8169 },{ 123, 8171 }, +{ 123, 8173 },{ 123, 8175 },{ 123, 8177 },{ 123, 8178 }, +{ 123, 8180 },{ 123, 8182 },{ 123, 8184 },{ 123, 8185 }, +{ 123, 8187 },{ 123, 8189 },{ 123, 8191 },{ 123, 8193 }, +{ 123, 8194 },{ 123, 8196 },{ 123, 8198 },{ 123, 8200 }, +{ 123, 8201 },{ 123, 8203 },{ 123, 8205 },{ 123, 8207 }, +{ 123, 8209 },{ 123, 8210 },{ 123, 8212 },{ 123, 8214 }, +{ 123, 8216 },{ 123, 8217 },{ 123, 8219 },{ 123, 8221 }, +{ 123, 8223 },{ 123, 8225 },{ 123, 8226 },{ 123, 8228 }, +{ 123, 8230 },{ 123, 8232 },{ 123, 8233 },{ 123, 8235 }, +{ 123, 8237 },{ 123, 8239 },{ 123, 8240 },{ 123, 8242 }, +{ 123, 8244 },{ 123, 8246 },{ 123, 8247 },{ 123, 8249 }, +{ 123, 8251 },{ 123, 8253 },{ 123, 8255 },{ 123, 8256 }, +{ 123, 8258 },{ 123, 8260 },{ 123, 8262 },{ 123, 8263 }, +{ 123, 8265 },{ 123, 8267 },{ 123, 8269 },{ 123, 8270 }, +{ 123, 8272 },{ 123, 8274 },{ 123, 8276 },{ 123, 8277 }, +{ 123, 8279 },{ 123, 8281 },{ 123, 8283 },{ 123, 8284 }, +{ 123, 8286 },{ 123, 8288 },{ 123, 8290 },{ 123, 8291 }, +{ 123, 8293 },{ 123, 8295 },{ 123, 8297 },{ 123, 8298 }, +{ 123, 8300 },{ 123, 8302 },{ 123, 8304 },{ 123, 8305 }, +{ 123, 8307 },{ 123, 8309 },{ 123, 8311 },{ 123, 8312 }, +{ 123, 8314 },{ 123, 8316 },{ 123, 8318 },{ 123, 8319 }, +{ 123, 8321 },{ 123, 8323 },{ 123, 8325 },{ 123, 8326 }, +{ 123, 8328 },{ 123, 8330 },{ 123, 8332 },{ 123, 8333 }, +{ 123, 8335 },{ 123, 8337 },{ 123, 8338 },{ 123, 8340 }, +{ 123, 8342 },{ 123, 8344 },{ 123, 8345 },{ 123, 8347 }, +{ 123, 8349 },{ 123, 8351 },{ 123, 8352 },{ 123, 8354 }, +{ 123, 8356 },{ 123, 8358 },{ 123, 8359 },{ 123, 8361 }, +{ 124, 8021 },{ 124, 8023 },{ 124, 8025 },{ 124, 8027 }, +{ 124, 8028 },{ 124, 8030 },{ 124, 8032 },{ 124, 8034 }, +{ 124, 8035 },{ 124, 8037 },{ 124, 8039 },{ 124, 8040 }, +{ 124, 8042 },{ 124, 8044 },{ 124, 8046 },{ 124, 8047 }, +{ 124, 8049 },{ 124, 8051 },{ 124, 8052 },{ 124, 8054 }, +{ 124, 8056 },{ 124, 8058 },{ 124, 8059 },{ 124, 8061 }, +{ 124, 8063 },{ 124, 8065 },{ 124, 8066 },{ 124, 8068 }, +{ 124, 8070 },{ 124, 8071 },{ 124, 8073 },{ 124, 8075 }, +{ 124, 8077 },{ 124, 8078 },{ 124, 8080 },{ 124, 8082 }, +{ 124, 8083 },{ 124, 8085 },{ 124, 8087 },{ 124, 8089 }, +{ 124, 8090 },{ 124, 8092 },{ 124, 8094 },{ 124, 8095 }, +{ 124, 8097 },{ 124, 8099 },{ 124, 8100 },{ 124, 8102 }, +{ 124, 8104 },{ 124, 8106 },{ 124, 8107 },{ 124, 8109 }, +{ 124, 8111 },{ 124, 8112 },{ 124, 8114 },{ 124, 8116 }, +{ 124, 8118 },{ 124, 8119 },{ 124, 8121 },{ 124, 8123 }, +{ 124, 8124 },{ 124, 8126 },{ 124, 8128 },{ 124, 8129 }, +{ 124, 8131 },{ 124, 8133 },{ 124, 8134 },{ 124, 8136 }, +{ 124, 8138 },{ 124, 8140 },{ 124, 8141 },{ 124, 8143 }, +{ 124, 8145 },{ 124, 8146 },{ 124, 8148 },{ 124, 8150 }, +{ 124, 8151 },{ 124, 8153 },{ 124, 8155 },{ 124, 8157 }, +{ 124, 8158 },{ 124, 8160 },{ 124, 8162 },{ 124, 8163 }, +{ 124, 8165 },{ 124, 8167 },{ 124, 8168 },{ 124, 8170 }, +{ 124, 8172 },{ 124, 8173 },{ 124, 8175 },{ 124, 8177 }, +{ 124, 8178 },{ 124, 8180 },{ 124, 8182 },{ 124, 8184 }, +{ 124, 8185 },{ 124, 8187 },{ 124, 8189 },{ 124, 8190 }, +{ 124, 8192 },{ 124, 8194 },{ 124, 8195 },{ 124, 8197 }, +{ 124, 8199 },{ 124, 8200 },{ 124, 8202 },{ 124, 8204 }, +{ 124, 8205 },{ 124, 8207 },{ 124, 8209 },{ 124, 8210 }, +{ 124, 8212 },{ 124, 8214 },{ 124, 8215 },{ 124, 8217 }, +{ 124, 8219 },{ 124, 8220 },{ 124, 8222 },{ 124, 8224 }, +{ 124, 8225 },{ 124, 8227 },{ 124, 8229 },{ 124, 8230 }, +{ 124, 8232 },{ 124, 8234 },{ 124, 8235 },{ 124, 8237 }, +{ 124, 8239 },{ 124, 8240 },{ 124, 8242 },{ 124, 8244 }, +{ 124, 8245 },{ 124, 8247 },{ 124, 8249 },{ 124, 8250 }, +{ 124, 8252 },{ 124, 8254 },{ 124, 8255 },{ 124, 8257 }, +{ 124, 8259 },{ 124, 8260 },{ 124, 8262 },{ 124, 8264 }, +{ 124, 8265 },{ 124, 8267 },{ 124, 8269 },{ 124, 8270 }, +{ 124, 8272 },{ 124, 8274 },{ 124, 8275 },{ 124, 8277 }, +{ 124, 8279 },{ 124, 8280 },{ 124, 8282 },{ 124, 8284 }, +{ 124, 8285 },{ 124, 8287 },{ 124, 8289 },{ 124, 8290 }, +{ 124, 8292 },{ 124, 8294 },{ 124, 8295 },{ 124, 8297 }, +{ 124, 8299 },{ 124, 8300 },{ 124, 8302 },{ 124, 8303 }, +{ 124, 8305 },{ 124, 8307 },{ 124, 8308 },{ 124, 8310 }, +{ 124, 8312 },{ 124, 8313 },{ 124, 8315 },{ 124, 8317 }, +{ 124, 8318 },{ 124, 8320 },{ 124, 8322 },{ 124, 8323 }, +{ 124, 8325 },{ 124, 8326 },{ 124, 8328 },{ 124, 8330 }, +{ 124, 8331 },{ 124, 8333 },{ 124, 8335 },{ 124, 8336 }, +{ 124, 8338 },{ 124, 8340 },{ 124, 8341 },{ 124, 8343 }, +{ 124, 8345 },{ 124, 8346 },{ 124, 8348 },{ 124, 8349 }, +{ 124, 8351 },{ 124, 8353 },{ 124, 8354 },{ 124, 8356 }, +{ 124, 8358 },{ 124, 8359 },{ 124, 8361 },{ 125, 8021 }, +{ 125, 8023 },{ 125, 8024 },{ 125, 8026 },{ 125, 8028 }, +{ 125, 8029 },{ 125, 8031 },{ 125, 8033 },{ 125, 8034 }, +{ 125, 8036 },{ 125, 8037 },{ 125, 8039 },{ 125, 8041 }, +{ 125, 8042 },{ 125, 8044 },{ 125, 8046 },{ 125, 8047 }, +{ 125, 8049 },{ 125, 8051 },{ 125, 8052 },{ 125, 8054 }, +{ 125, 8055 },{ 125, 8057 },{ 125, 8059 },{ 125, 8060 }, +{ 125, 8062 },{ 125, 8063 },{ 125, 8065 },{ 125, 8067 }, +{ 125, 8068 },{ 125, 8070 },{ 125, 8072 },{ 125, 8073 }, +{ 125, 8075 },{ 125, 8076 },{ 125, 8078 },{ 125, 8080 }, +{ 125, 8081 },{ 125, 8083 },{ 125, 8085 },{ 125, 8086 }, +{ 125, 8088 },{ 125, 8089 },{ 125, 8091 },{ 125, 8093 }, +{ 125, 8094 },{ 125, 8096 },{ 125, 8097 },{ 125, 8099 }, +{ 125, 8101 },{ 125, 8102 },{ 125, 8104 },{ 125, 8105 }, +{ 125, 8107 },{ 125, 8109 },{ 125, 8110 },{ 125, 8112 }, +{ 125, 8114 },{ 125, 8115 },{ 125, 8117 },{ 125, 8118 }, +{ 125, 8120 },{ 125, 8122 },{ 125, 8123 },{ 125, 8125 }, +{ 125, 8126 },{ 125, 8128 },{ 125, 8130 },{ 125, 8131 }, +{ 125, 8133 },{ 125, 8134 },{ 125, 8136 },{ 125, 8138 }, +{ 125, 8139 },{ 125, 8141 },{ 125, 8142 },{ 125, 8144 }, +{ 125, 8146 },{ 125, 8147 },{ 125, 8149 },{ 125, 8150 }, +{ 125, 8152 },{ 125, 8154 },{ 125, 8155 },{ 125, 8157 }, +{ 125, 8158 },{ 125, 8160 },{ 125, 8162 },{ 125, 8163 }, +{ 125, 8165 },{ 125, 8166 },{ 125, 8168 },{ 125, 8170 }, +{ 125, 8171 },{ 125, 8173 },{ 125, 8174 },{ 125, 8176 }, +{ 125, 8177 },{ 125, 8179 },{ 125, 8181 },{ 125, 8182 }, +{ 125, 8184 },{ 125, 8185 },{ 125, 8187 },{ 125, 8189 }, +{ 125, 8190 },{ 125, 8192 },{ 125, 8193 },{ 125, 8195 }, +{ 125, 8197 },{ 125, 8198 },{ 125, 8200 },{ 125, 8201 }, +{ 125, 8203 },{ 125, 8204 },{ 125, 8206 },{ 125, 8208 }, +{ 125, 8209 },{ 125, 8211 },{ 125, 8212 },{ 125, 8214 }, +{ 125, 8216 },{ 125, 8217 },{ 125, 8219 },{ 125, 8220 }, +{ 125, 8222 },{ 125, 8223 },{ 125, 8225 },{ 125, 8227 }, +{ 125, 8228 },{ 125, 8230 },{ 125, 8231 },{ 125, 8233 }, +{ 125, 8234 },{ 125, 8236 },{ 125, 8238 },{ 125, 8239 }, +{ 125, 8241 },{ 125, 8242 },{ 125, 8244 },{ 125, 8245 }, +{ 125, 8247 },{ 125, 8249 },{ 125, 8250 },{ 125, 8252 }, +{ 125, 8253 },{ 125, 8255 },{ 125, 8256 },{ 125, 8258 }, +{ 125, 8260 },{ 125, 8261 },{ 125, 8263 },{ 125, 8264 }, +{ 125, 8266 },{ 125, 8267 },{ 125, 8269 },{ 125, 8271 }, +{ 125, 8272 },{ 125, 8274 },{ 125, 8275 },{ 125, 8277 }, +{ 125, 8278 },{ 125, 8280 },{ 125, 8281 },{ 125, 8283 }, +{ 125, 8285 },{ 125, 8286 },{ 125, 8288 },{ 125, 8289 }, +{ 125, 8291 },{ 125, 8292 },{ 125, 8294 },{ 125, 8296 }, +{ 125, 8297 },{ 125, 8299 },{ 125, 8300 },{ 125, 8302 }, +{ 125, 8303 },{ 125, 8305 },{ 125, 8306 },{ 125, 8308 }, +{ 125, 8310 },{ 125, 8311 },{ 125, 8313 },{ 125, 8314 }, +{ 125, 8316 },{ 125, 8317 },{ 125, 8319 },{ 125, 8320 }, +{ 125, 8322 },{ 125, 8324 },{ 125, 8325 },{ 125, 8327 }, +{ 125, 8328 },{ 125, 8330 },{ 125, 8331 },{ 125, 8333 }, +{ 125, 8334 },{ 125, 8336 },{ 125, 8337 },{ 125, 8339 }, +{ 125, 8341 },{ 125, 8342 },{ 125, 8344 },{ 125, 8345 }, +{ 125, 8347 },{ 125, 8348 },{ 125, 8350 },{ 125, 8351 }, +{ 125, 8353 },{ 125, 8354 },{ 125, 8356 },{ 125, 8358 }, +{ 125, 8359 },{ 125, 8361 },{ 126, 8021 },{ 126, 8022 }, +{ 126, 8024 },{ 126, 8025 },{ 126, 8027 },{ 126, 8029 }, +{ 126, 8030 },{ 126, 8032 },{ 126, 8033 },{ 126, 8035 }, +{ 126, 8036 },{ 126, 8038 },{ 126, 8039 },{ 126, 8041 }, +{ 126, 8042 },{ 126, 8044 },{ 126, 8045 },{ 126, 8047 }, +{ 126, 8049 },{ 126, 8050 },{ 126, 8052 },{ 126, 8053 }, +{ 126, 8055 },{ 126, 8056 },{ 126, 8058 },{ 126, 8059 }, +{ 126, 8061 },{ 126, 8062 },{ 126, 8064 },{ 126, 8065 }, +{ 126, 8067 },{ 126, 8068 },{ 126, 8070 },{ 126, 8071 }, +{ 126, 8073 },{ 126, 8075 },{ 126, 8076 },{ 126, 8078 }, +{ 126, 8079 },{ 126, 8081 },{ 126, 8082 },{ 126, 8084 }, +{ 126, 8085 },{ 126, 8087 },{ 126, 8088 },{ 126, 8090 }, +{ 126, 8091 },{ 126, 8093 },{ 126, 8094 },{ 126, 8096 }, +{ 126, 8097 },{ 126, 8099 },{ 126, 8100 },{ 126, 8102 }, +{ 126, 8103 },{ 126, 8105 },{ 126, 8107 },{ 126, 8108 }, +{ 126, 8110 },{ 126, 8111 },{ 126, 8113 },{ 126, 8114 }, +{ 126, 8116 },{ 126, 8117 },{ 126, 8119 },{ 126, 8120 }, +{ 126, 8122 },{ 126, 8123 },{ 126, 8125 },{ 126, 8126 }, +{ 126, 8128 },{ 126, 8129 },{ 126, 8131 },{ 126, 8132 }, +{ 126, 8134 },{ 126, 8135 },{ 126, 8137 },{ 126, 8138 }, +{ 126, 8140 },{ 126, 8141 },{ 126, 8143 },{ 126, 8144 }, +{ 126, 8146 },{ 126, 8147 },{ 126, 8149 },{ 126, 8150 }, +{ 126, 8152 },{ 126, 8153 },{ 126, 8155 },{ 126, 8156 }, +{ 126, 8158 },{ 126, 8159 },{ 126, 8161 },{ 126, 8162 }, +{ 126, 8164 },{ 126, 8165 },{ 126, 8167 },{ 126, 8168 }, +{ 126, 8170 },{ 126, 8171 },{ 126, 8173 },{ 126, 8174 }, +{ 126, 8176 },{ 126, 8177 },{ 126, 8179 },{ 126, 8180 }, +{ 126, 8182 },{ 126, 8183 },{ 126, 8185 },{ 126, 8186 }, +{ 126, 8188 },{ 126, 8189 },{ 126, 8191 },{ 126, 8192 }, +{ 126, 8194 },{ 126, 8195 },{ 126, 8197 },{ 126, 8198 }, +{ 126, 8200 },{ 126, 8201 },{ 126, 8203 },{ 126, 8204 }, +{ 126, 8206 },{ 126, 8207 },{ 126, 8209 },{ 126, 8210 }, +{ 126, 8212 },{ 126, 8213 },{ 126, 8215 },{ 126, 8216 }, +{ 126, 8218 },{ 126, 8219 },{ 126, 8221 },{ 126, 8222 }, +{ 126, 8224 },{ 126, 8225 },{ 126, 8227 },{ 126, 8228 }, +{ 126, 8230 },{ 126, 8231 },{ 126, 8233 },{ 126, 8234 }, +{ 126, 8236 },{ 126, 8237 },{ 126, 8239 },{ 126, 8240 }, +{ 126, 8242 },{ 126, 8243 },{ 126, 8245 },{ 126, 8246 }, +{ 126, 8248 },{ 126, 8249 },{ 126, 8251 },{ 126, 8252 }, +{ 126, 8254 },{ 126, 8255 },{ 126, 8257 },{ 126, 8258 }, +{ 126, 8259 },{ 126, 8261 },{ 126, 8262 },{ 126, 8264 }, +{ 126, 8265 },{ 126, 8267 },{ 126, 8268 },{ 126, 8270 }, +{ 126, 8271 },{ 126, 8273 },{ 126, 8274 },{ 126, 8276 }, +{ 126, 8277 },{ 126, 8279 },{ 126, 8280 },{ 126, 8282 }, +{ 126, 8283 },{ 126, 8285 },{ 126, 8286 },{ 126, 8288 }, +{ 126, 8289 },{ 126, 8290 },{ 126, 8292 },{ 126, 8293 }, +{ 126, 8295 },{ 126, 8296 },{ 126, 8298 },{ 126, 8299 }, +{ 126, 8301 },{ 126, 8302 },{ 126, 8304 },{ 126, 8305 }, +{ 126, 8307 },{ 126, 8308 },{ 126, 8310 },{ 126, 8311 }, +{ 126, 8313 },{ 126, 8314 },{ 126, 8315 },{ 126, 8317 }, +{ 126, 8318 },{ 126, 8320 },{ 126, 8321 },{ 126, 8323 }, +{ 126, 8324 },{ 126, 8326 },{ 126, 8327 },{ 126, 8329 }, +{ 126, 8330 },{ 126, 8332 },{ 126, 8333 },{ 126, 8334 }, +{ 126, 8336 },{ 126, 8337 },{ 126, 8339 },{ 126, 8340 }, +{ 126, 8342 },{ 126, 8343 },{ 126, 8345 },{ 126, 8346 }, +{ 126, 8348 },{ 126, 8349 },{ 126, 8351 },{ 126, 8352 }, +{ 126, 8353 },{ 126, 8355 },{ 126, 8356 },{ 126, 8358 }, +{ 126, 8359 },{ 126, 8361 },{ 127, 8021 },{ 127, 8022 }, +{ 127, 8024 },{ 127, 8025 },{ 127, 8027 },{ 127, 8028 }, +{ 127, 8030 },{ 127, 8031 },{ 127, 8032 },{ 127, 8034 }, +{ 127, 8035 },{ 127, 8037 },{ 127, 8038 },{ 127, 8040 }, +{ 127, 8041 },{ 127, 8043 },{ 127, 8044 },{ 127, 8046 }, +{ 127, 8047 },{ 127, 8048 },{ 127, 8050 },{ 127, 8051 }, +{ 127, 8053 },{ 127, 8054 },{ 127, 8056 },{ 127, 8057 }, +{ 127, 8059 },{ 127, 8060 },{ 127, 8061 },{ 127, 8063 }, +{ 127, 8064 },{ 127, 8066 },{ 127, 8067 },{ 127, 8069 } diff --git a/MCUME_teensy/teensymsx/MSX.h b/MCUME_teensy/teensymsx/MSX.h new file mode 100644 index 0000000..00ac5f7 --- /dev/null +++ b/MCUME_teensy/teensymsx/MSX.h @@ -0,0 +1,222 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** MSX.h **/ +/** **/ +/** This file contains declarations relevant to the drivers **/ +/** and MSX emulation itself. See Z80.h for #defines **/ +/** related to Z80 emulation. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef MSX_H +#define MSX_H + +#include "Z80.h" /* Z80 CPU emulation */ +#include "V9938.h" /* V9938 VDP opcode emulation */ +#include "AY8910.h" /* AY8910 PSG emulation */ +#include "YM2413.h" /* YM2413 OPLL emulation */ +#include "SCC.h" /* Konami SCC chip emulation */ +#include "I8255.h" /* Intel 8255 PPI emulation */ +#include "I8251.h" /* Intel 8251 UART emulation */ + +#include + +#define CPU_CLOCK 3580 /* CPU clock frequency, kHz */ +#define VDP_CLOCK 21480 /* VDP clock frequency, kHz */ + +#define HPERIOD 1368 /* HPeriod, VDP cycles */ +#define VPERIOD_PAL (HPERIOD*313) /* PAL VPeriod, VDP ccls */ +#define VPERIOD_NTSC (HPERIOD*262) /* NTSC VPeriod, VDP ccls */ +#define HREFRESH_240 960 /* 240dot scanline refresh */ +#define HREFRESH_256 1024 /* 256dot scanline refresh */ + +#define CPU_VPERIOD (VPERIOD_NTSC/6) +#define CPU_V262 (VPERIOD_NTSC/6) +#define CPU_V313 (VPERIOD_PAL/6) +#define CPU_HPERIOD (HPERIOD/6) +#define CPU_H240 (HREFRESH_240/6) +#define CPU_H256 (HREFRESH_256/6) + +#define INT_IE0 0x01 +#define INT_IE1 0x02 +#define INT_IE2 0x04 + +#define PAGESIZE 0x4000L /* Size of a RAM page */ +#define NORAM 0xFF /* Byte to be returned from */ + /* non-existing pages and ports */ +#define MAXSCREEN 12 /* Highest screen mode supported */ +#define MAXSPRITE1 4 /* Sprites/line in SCREEN 1-3 */ +#define MAXSPRITE2 8 /* Sprites/line in SCREEN 4-8 */ +#define MAXDRIVES 2 /* Number of disk drives */ +#define MAXDISKS 32 /* Number of disks for a drive */ +#define MAXMAPPERS 7 /* Total defined MegaROM mappers */ + +#define MAXCHANNELS (AY8910_CHANNELS+YM2413_CHANNELS) + /* Number of sound channels used by the emulation */ + +/** Following macros can be used in screen drivers ***********/ +#define BigSprites (VDP[1]&0x01) /* Zoomed sprites */ +#define Sprites16x16 (VDP[1]&0x02) /* 16x16/8x8 sprites */ +#define ScreenON (VDP[1]&0x40) /* Show screen */ +#define SpritesOFF (VDP[8]&0x02) /* Don't show sprites */ +#define SolidColor0 (VDP[8]&0x20) /* Solid/Tran. COLOR 0 */ +#define PALVideo (VDP[9]&0x02) /* PAL/NTSC video */ +#define FlipEvenOdd (VDP[9]&0x04) /* Flip even/odd pages */ +#define InterlaceON (VDP[9]&0x08) /* Interlaced screen */ +#define ScanLines212 (VDP[9]&0x80) /* 212/192 scanlines */ +#define HScroll512 (VDP[25]&0x01) /* HScroll both pages */ +#define MaskEdges (VDP[25]&0x02) /* Mask 8-pixel edges */ +#define ModeYJK (VDP[25]&0x08) /* YJK screen mode */ +#define ModeYAE (VDP[25]&0x10) /* YJK/YAE screen mode */ +#define VScroll VDP[23] +#define HScroll ((VDP[27]&0x07)|((int)(VDP[26]&0x3F)<<3)) +#define VAdjust (-((signed char)(VDP[18])>>4)) +#define HAdjust (-((signed char)(VDP[18]<<4)>>4)) +/*************************************************************/ + +/** Variables used to control emulator behavior **************/ +extern byte Verbose; /* Debug msgs ON/OFF */ +extern byte MSXVersion; /* 0=MSX,1=MSX2,2=MSX2+*/ +extern byte ROMTypeA,ROMTypeB; /* MegaROM types */ +extern int RAMPages,VRAMPages; /* Number of RAM pages */ +extern int VPeriod; /* CPU cycles / VBlank */ +extern int HPeriod; /* CPU cycles / HBlank */ +extern byte UPeriod; /* Int-pts/Scr. update */ +extern byte JoyTypeA,JoyTypeB; /* 0=No,1=Jstk,2/3=Mse */ +extern byte AutoFire; /* Autofire on [SPACE] */ +extern byte UseDrums; /* Drums for PSG noise */ +/*************************************************************/ + +extern Z80 CPU; /* CPU state/registers */ +extern byte *VRAM; /* Video RAM */ +extern byte VDP[64]; /* VDP control reg-ers */ +extern byte VDPStatus[16]; /* VDP status reg-ers */ +extern byte *ChrGen,*ChrTab,*ColTab; /* VDP tables (screen) */ +extern byte *SprGen,*SprTab; /* VDP tables (sprites)*/ +extern int ChrGenM,ChrTabM,ColTabM; /* VDP masks (screen) */ +extern int SprTabM; /* VDP masks (sprites) */ +extern byte FGColor,BGColor; /* Colors */ +extern byte XFGColor,XBGColor; /* Alternative colors */ +extern byte ScrMode; /* Current screen mode */ +extern int ScanLine; /* Current scanline */ + +extern byte KeyMap[16]; /* Keyboard map */ +extern byte ExitNow; /* 1: Exit emulator */ + +extern byte PSLReg; /* Primary slot reg. */ +extern byte SSLReg; /* Secondary slot reg. */ + +//extern char *DiskA; /* Drive A disk image */ +//extern char *DiskB; /* Drive B disk image */ +#ifdef unused +extern char *SndName; /* Soundtrack log file */ +extern char *PrnName; /* Printer redir. file */ +extern char *CasName; /* Tape image file */ +extern char *ComName; /* Serial redir. file */ +extern int *CasStream; /* Cassette I/O stream */ +#endif + +extern char *FontName; /* Font file for text */ +extern byte *FontBuf; /* Font for text modes */ +extern byte UseFont; /* 1: Use external font*/ + +/** StartMSX() ***********************************************/ +/** Allocate memory, load ROM image, initialize hardware, **/ +/** CPU and start the emulation. This function returns 0 in **/ +/** the case of failure. **/ +/*************************************************************/ +int StartMSX(void); + +/** TrashMSX() ***********************************************/ +/** Free memory allocated by StartMSX(). **/ +/*************************************************************/ +void TrashMSX(void); + +/** SaveState() **********************************************/ +/** Save emulation state to a .STA file. **/ +/*************************************************************/ +int SaveState(const char *FileName); + +/** LoadState() **********************************************/ +/** Load emulation state from a .STA file. **/ +/*************************************************************/ +int LoadState(const char *FileName); + +/** ChangeDisk() *********************************************/ +/** Change disk image in a given drive. Closes current disk **/ +/** image if Name=0 was given. Returns 1 on success or 0 on **/ +/** failure. This function is part of generic disk drivers **/ +/** in Disk.c. It is compiled when DISK is #defined. **/ +/*************************************************************/ +#ifdef DISK +byte ChangeDisk(byte ID,char *Name); +#endif + +/** InitMachine() ********************************************/ +/** Allocate resources needed by the machine-dependent code.**/ +/************************************ TO BE WRITTEN BY USER **/ +int InitMachine(void); + +/** TrashMachine() *******************************************/ +/** Deallocate all resources taken by InitMachine(). **/ +/************************************ TO BE WRITTEN BY USER **/ +void TrashMachine(void); + +/** Keyboard() ***********************************************/ +/** This function is periodically called to poll keyboard. **/ +/************************************ TO BE WRITTEN BY USER **/ +void Keyboard(void); + +/** Joystick() ***********************************************/ +/** Query position of a joystick connected to port N. **/ +/** Returns 0.0.F2.F1.R.L.D.U. **/ +/************************************ TO BE WRITTEN BY USER **/ +byte Joystick(byte N); + +/** Mouse() **************************************************/ +/** Query coordinates of a mouse connected to port N. **/ +/** Returns F2.F1.Y.Y.Y.Y.Y.Y.Y.Y.X.X.X.X.X.X.X.X. **/ +/************************************ TO BE WRITTEN BY USER **/ +int Mouse(byte N); + +/** DiskPresent()/DiskRead()/DiskWrite() *********************/ +/*** These three functions are called to check for floppyd **/ +/*** disk presence in the "drive", and to read/write given **/ +/*** sector to the disk. **/ +/************************************ TO BE WRITTEN BY USER **/ +byte DiskPresent(byte ID); +byte DiskRead(byte ID,byte *Buf,int N); +byte DiskWrite(byte ID,byte *Buf,int N); + +/** SetColor() ***********************************************/ +/** Set color N (0..15) to (R,G,B). **/ +/************************************ TO BE WRITTEN BY USER **/ +void SetColor(byte N,byte R,byte G,byte B); + +/** RefreshScreen() ******************************************/ +/** Refresh screen. This function is called in the end of **/ +/** refresh cycle to show the entire screen. **/ +/************************************ TO BE WRITTEN BY USER **/ +void RefreshScreen(void); + +/** RefreshLine#() *******************************************/ +/** Refresh line Y (0..191/211), on an appropriate SCREEN#, **/ +/** including sprites in this line. **/ +/************************************ TO BE WRITTEN BY USER **/ +//void RefreshLineTx80(byte Y); +//void RefreshLine0(byte Y); +//void RefreshLine1(byte Y); +//void RefreshLine2(byte Y); +//void RefreshLine3(byte Y); +//void RefreshLine4(byte Y); +//void RefreshLine5(byte Y); +//void RefreshLine6(byte Y); +//void RefreshLine7(byte Y); +//void RefreshLine8(byte Y); +//void RefreshLine10(byte Y); +//void RefreshLine12(byte Y); + +#endif /* MSX_H */ diff --git a/MCUME_teensy/teensymsx/Patch.c b/MCUME_teensy/teensymsx/Patch.c new file mode 100644 index 0000000..6e76b04 --- /dev/null +++ b/MCUME_teensy/teensymsx/Patch.c @@ -0,0 +1,437 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** Patch.c **/ +/** **/ +/** This file contains implementation for the PatchZ80() **/ +/** function necessary for emulating MSX disk and tape IO. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#include "MSX.h" +#include "Boot.h" +#include +#include +#include +#include + +#include "shared.h" + + +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif + +void SSlot(byte Value); /* Used to switch secondary slots */ + +#ifdef FMSX +extern byte *RAM[],PSL[],SSLReg; +static byte RdZ80(word A) +{ + if(A!=0xFFFF) return(RAM[A>>13][A&0x1FFF]); + else return((PSL[3]==3)? ~SSLReg:RAM[7][0x1FFF]); +} +#endif + +/** PatchZ80() ***********************************************/ +/** Emulate BIOS calls. This function is called on an ED FE **/ +/** instruction to emulate disk/tape access, etc. **/ +/*************************************************************/ +void PatchZ80(Z80 *R) +{ + static const byte TapeHeader[8] = { 0x1F,0xA6,0xDE,0xBA,0xCC,0x13,0x7D,0x74 }; + + static const struct + { int Sectors;byte Heads,Names,PerTrack,PerFAT,PerCluster; } + Info[8] = + { + { 720,1,112,9,2,2 }, + { 1440,2,112,9,3,2 }, + { 640,1,112,8,1,2 }, + { 1280,2,112,8,2,2 }, + { 360,1, 64,9,2,1 }, + { 720,2,112,9,2,2 }, + { 320,1, 64,8,1,1 }, + { 640,2,112,8,1,2 } + }; + + byte Buf[512],Count,PS,SS,N,*P; + int J,I,Sector; + word Addr; + + switch(R->PC.W-2) + { + +case 0x4010: +/** PHYDIO: Read/write sectors to disk ************************** +*** Input: *** +*** [F] CARRY=WRITE [A] Drive number (0=A:) *** +*** [B] Number of sectors to write [C] Media descriptor *** +*** [DE] Logical sector number (starts at 0) *** +*** [HL] Transfer address *** +*** Output: *** +*** [F] CARRY=ERROR [A] If error: errorcode *** +*** [B] Number of sectors remaining (not read/written) *** +*** Error codes in [A] can be: *** +*** 0 Write protected 8 Record not found *** +*** 2 Not ready 10 Write fault *** +*** 4 Data (CRC) error 12 Other errors *** +*** 6 Seek error *** +****************************************************************/ +{ + //if(Verbose&0x04) + // printf + // ( + // "%s DISK %c: %d sectors starting from %04Xh [buffer at %04Xh]\n", + // R->AF.B.l&C_FLAG? "WRITE":"READ",R->AF.B.h+'A',R->BC.B.h, + // R->DE.W,R->HL.W + // ); + + R->IFF|=1; + Addr = R->HL.W; + Count = R->BC.B.h; + + if(!DiskPresent(R->AF.B.h)) + { R->AF.W=0x0201;return; } /* No disk -> "Not ready" */ + if((int)(R->DE.W)+Count>Info[R->BC.B.l-0xF8].Sectors) + { R->AF.W=0x0801;return; } /* Wrong sector -> "Record not found" */ + + /* If data does not fit into 64kB address space, trim it */ + if((int)(R->HL.W)+Count*512>0x10000) Count=(0x10000-R->HL.W)/512; + + /* Save slot states */ + PS=PSLReg;SS=SSLReg; + + /* Turn on RAM in all slots */ + OutZ80(0xA8,0xFF); + SSlot(0xAA); + + if(R->AF.B.l&C_FLAG) + for(Sector=R->DE.W;Count--;Sector++) /* WRITE */ + { + for(J=0;J<512;J++) Buf[J]=RdZ80(Addr++); + + if(DiskWrite(R->AF.B.h,Buf,Sector)) R->BC.B.h--; + else + { + R->AF.W=0x0A01; + SSlot(SS); + OutZ80(0xA8,PS); + return; + } + } + else + for(Sector=R->DE.W;Count--;Sector++) /* READ */ + { + if(DiskRead(R->AF.B.h,Buf,Sector)) R->BC.B.h--; + else + { + R->AF.W=0x0401; + SSlot(SS); + OutZ80(0xA8,PS); + return; + } + + for(J=0;J<512;J++) WrZ80(Addr++,Buf[J]); + } + + /* Restore slot states */ + SSlot(SS); + OutZ80(0xA8,PS); + + /* Return "Success" */ + R->AF.B.l&=~C_FLAG; + return; +} + +case 0x4013: +/** DSKCHG: Check if the disk was changed *********************** +*** Input: *** +*** [A] Drive number (0=A:) [B] Media descriptor *** +*** [C] Media descriptor [HL] Base address of DPB *** +*** Output: *** +*** [F] CARRY=ERROR [A] If error: errorcode (see DSKIO) *** +*** [B] If success: 1=Unchanged, 0=Unknown, -1=Changed *** +*** Note: *** +*** If the disk has been changed or may have been changed *** +*** (unknown) read the boot sector or the FAT sector for disk *** +*** media descriptor and transfer a new DPB as with GETDPB. *** +****************************************************************/ +{ + //if(Verbose&0x04) printf("CHECK DISK %c\n",R->AF.B.h+'A'); + + R->IFF|=1; + + /* If no disk, return "Not ready": */ + if(!DiskPresent(R->AF.B.h)) { R->AF.W=0x0201;return; } + + /* This requires some major work to be done: */ + R->BC.B.h=0;R->AF.B.l&=~C_FLAG; + + /* We continue with GETDPB now... */ +} + +case 0x4016: +/** GETDPB: Disk format ***************************************** +*** Input: *** +*** [A] Drive number [B] 1st byte of FAT (media descriptor) *** +*** [C] Media descriptor [HL] Base address of DPB *** +*** Output: *** +*** [HL+1] .. [HL+18] = DPB for specified drive *** +*** DPB consists of: *** +*** Name Offset Size Description *** +*** MEDIA 0 1 Media type (F8..FF) *** +*** SECSIZ 1 2 Sector size (must be 2^n) *** +*** DIRMSK 3 1 (SECSIZE/32)-1 *** +*** DIRSHFT 4 1 Number of one bits in DIRMSK *** +*** CLUSMSK 5 1 (Sectors per cluster)-1 *** +*** CLUSSHFT 6 1 (Number of one bits in CLUSMSK)+1 *** +*** FIRFAT 7 2 Logical sector number of first FAT *** +*** FATCNT 8 1 Number of FATs *** +*** MAXENT A 1 Number of directory entries (max 254) *** +*** FIRREC B 2 Logical sector number of first data *** +*** MAXCLUS D 2 Number of clusters (not including *** +*** reserved, FAT and directory sectors)+1 *** +*** FATSIZ F 1 Number of sectors used *** +*** FIRDIR 10 2 FAT logical sector number of start of *** +*** directory *** +****************************************************************/ +{ + int BytesPerSector,SectorsPerDisk,SectorsPerFAT,ReservedSectors; + + /* If no disk, return "Not ready": */ + if(!DiskPresent(R->AF.B.h)) { R->AF.W=0x0201;return; } + /* If can't read, return "Other error": */ + if(!DiskRead(R->AF.B.h,Buf,0)) { R->AF.W=0x0C01;return; } + + BytesPerSector = (int)Buf[0x0C]*256+Buf[0x0B]; + SectorsPerDisk = (int)Buf[0x14]*256+Buf[0x13]; + SectorsPerFAT = (int)Buf[0x17]*256+Buf[0x16]; + ReservedSectors = (int)Buf[0x0F]*256+Buf[0x0E]; + + Addr=R->HL.W+1; + WrZ80(Addr++,Buf[0x15]); /* Format ID [F8h-FFh] */ + WrZ80(Addr++,Buf[0x0B]); /* Sector size */ + WrZ80(Addr++,Buf[0x0C]); + J=(BytesPerSector>>5)-1; + for(I=0;J&(1<>8)&0xFF); + J=(SectorsPerDisk-J)/Buf[0x0D]; + WrZ80(Addr++,J&0xFF); /* Number of clusters */ + WrZ80(Addr++,(J>>8)&0xFF); + WrZ80(Addr++,Buf[0x16]); /* Sectors per FAT */ + J=ReservedSectors+Buf[0x10]*SectorsPerFAT; + WrZ80(Addr++,J&0xFF); /* Sector # of dir. */ + WrZ80(Addr,(J>>8)&0xFF); + + /* Return success */ + R->AF.B.l&=~C_FLAG; + return; +} + +case 0x401C: +/** DSKFMT: Disk format ***************************************** +*** Input: *** +*** [A] Specified choice (1-9) [D] Drive number (0=A:) *** +*** [HL] Begin address of work area [BC] Length of work area *** +*** Output: *** +*** [F] CARRY=ERROR *** +*** Notes: *** +*** 1) Also writes a MSX boot sector at sector 0, clears all *** +*** FATs (media descriptor at first byte, 0FFh at second/ *** +*** third byte and rest zero) and clears the directory *** +*** filling it with zeros. *** +*** 2) Error codes are: *** +*** 0 Write protected 10 Write fault *** +*** 2 Not ready 12 Bad parameter *** +*** 4 Data (CRC) error 14 Insufficient memory *** +*** 6 Seek error 16 Other errors *** +*** 8 Record not found *** +****************************************************************/ +{ + R->IFF|=1; + + /* If invalid choice, return "Bad parameter": */ + if(!R->AF.B.h||(R->AF.B.h>2)) { R->AF.W=0x0C01;return; } + /* If no disk, return "Not ready": */ + if(!DiskPresent(R->DE.B.h)) { R->AF.W=0x0201;return; } + + /* Fill bootblock with data: */ + P=BootBlock+3; + N=2-R->AF.B.h; + memcpy(P,"fMSXdisk",8);P+=10; /* Manufacturer's ID */ + *P=Info[N].PerCluster;P+=4; /* Sectors per cluster */ + *P++=Info[N].Names;*P++=0x00; /* Number of names */ + *P++=Info[N].Sectors&0xFF; /* Number of sectors */ + *P++=(Info[N].Sectors>>8)&0xFF; + *P++=N+0xF8; /* Format ID [F8h-FFh] */ + *P++=Info[N].PerFAT;*P++=0x00; /* Sectors per FAT */ + *P++=Info[N].PerTrack;*P++=0x00; /* Sectors per track */ + *P++=Info[N].Heads;*P=0x00; /* Number of heads */ + + /* If can't write bootblock, return "Write protected": */ + if(!DiskWrite(R->DE.B.h,BootBlock,0)) { R->AF.W=0x0001;return; }; + + /* Writing FATs: */ + for(Sector=1,J=0;J<2;J++) + { + Buf[0]=N+0xF8; + Buf[1]=Buf[2]=0xFF; + memset(Buf+3,0x00,509); + + if(!DiskWrite(R->DE.B.h,Buf,Sector++)) { R->AF.W=0x0A01;return; } + + memset(Buf,0x00,512); + + for(I=Info[N].PerFAT;I>1;I--) + if(!DiskWrite(R->DE.B.h,Buf,Sector++)) { R->AF.W=0x0A01;return; } + } + + J=Info[N].Names/16; /* Directory size */ + I=Info[N].Sectors-2*Info[N].PerFAT-J-1; /* Data size */ + + for(memset(Buf,0x00,512);J;J--) + if(!DiskWrite(R->DE.B.h,Buf,Sector++)) { R->AF.W=0x0A01;return; } + for(memset(Buf,0xFF,512);I;I--) + if(!DiskWrite(R->DE.B.h,Buf,Sector++)) { R->AF.W=0x0A01;return; } + + /* Return success */ + R->AF.B.l&=~C_FLAG; + return; +} + +case 0x401F: +/** DRVOFF: Stop drives ***************************************** +*** Input: None *** +*** Output: None *** +****************************************************************/ + return; + +case 0x00E1: +/** TAPION: Open for read and read header *********************** +****************************************************************/ +{ + long Pos; + + //if(Verbose&0x04) printf("TAPE: Looking for header..."); + + R->AF.B.l|=C_FLAG; +#ifdef unused + if(CasStream) + { + Pos=ftell(CasStream); + if(Pos&7) + if(fseek(CasStream,8-(Pos&7),SEEK_CUR)) + { + if(Verbose&0x04) puts("FAILED"); + rewind(CasStream);return; + } + + while(fread(Buf,1,8,CasStream)==8) + if(!memcmp(Buf,TapeHeader,8)) + { + if(Verbose&0x04) puts("OK"); + R->AF.B.l&=~C_FLAG;return; + } + + rewind(CasStream); + } + if(Verbose&0x04) puts("FAILED"); +#endif + return; +} + +case 0x00E4: +/** TAPIN: Read tape ******************************************** +****************************************************************/ +{ + R->AF.B.l|=C_FLAG; + +#ifdef unused + if(CasStream) + { + J=fgetc(CasStream); + if(J<0) rewind(CasStream); + else { R->AF.B.h=J;R->AF.B.l&=~C_FLAG; } + } +#endif + + return; +} +case 0x00E7: +/** TAPIOF: ***************************************************** +****************************************************************/ + R->AF.B.l&=~C_FLAG; + return; + +case 0x00EA: +/** TAPOON: ***************************************************** +****************************************************************/ +{ + long Pos; + + R->AF.B.l|=C_FLAG; + +#ifdef unused + if(CasStream) + { + Pos=ftell(CasStream); + if(Pos&7) + if(fseek(CasStream,8-(Pos&7),SEEK_CUR)) + { R->AF.B.l|=C_FLAG;return; } + + fwrite(TapeHeader,1,8,CasStream); + R->AF.B.l&=~C_FLAG; + } +#endif + + return; +} + +case 0x00ED: +/** TAPOUT: Write tape ****************************************** +****************************************************************/ + R->AF.B.l|=C_FLAG; + +#ifdef unused + if(CasStream) + { + fputc(R->AF.B.h,CasStream); + R->AF.B.l&=~C_FLAG; + } +#endif + + return; + +case 0x00F0: +/** TAPOOF: ***************************************************** +****************************************************************/ + R->AF.B.l&=~C_FLAG; + return; + +case 0x00F3: +/** STMOTR: ***************************************************** +****************************************************************/ + R->AF.B.l&=~C_FLAG; + return; + +default: + //printf("Unknown BIOS trap called at PC=%04Xh\n",R->PC.W-2); + break; + } +} diff --git a/MCUME_teensy/teensymsx/SCC.c b/MCUME_teensy/teensymsx/SCC.c new file mode 100644 index 0000000..76c3ba8 --- /dev/null +++ b/MCUME_teensy/teensymsx/SCC.c @@ -0,0 +1,187 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** SCC.c **/ +/** **/ +/** This file contains emulation for the SCC sound chip **/ +/** produced by Konami. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +#include "SCC.h" +#include "Sound.h" +#include + +/** ResetSCC() ***********************************************/ +/** Reset the sound chip and use sound channels from the **/ +/** one given in First. **/ +/*************************************************************/ +void ResetSCC(register SCC *D,int First) +{ + int J; + + /* Reset registers */ + memset(D->R,0x00,sizeof(D->R)); + + /* Set instruments, frequencies, volumes */ + for(J=0;JFreq[J]=D->Volume[J]=0; + } + + D->First = First; + D->Sync = SCC_ASYNC; + D->Changed = 0x00; + D->WChanged = 0x00; +} + +/** ReadSCC() ************************************************/ +/** Call this function to read contents of the generic SCC **/ +/** sound chip registers. **/ +/*************************************************************/ +byte ReadSCC(register SCC *D,register byte R) +{ + return(R<0x80? D->R[R]:0xFF); +} + +/** ReadSCCP() ***********************************************/ +/** Call this function to read contents of the newer SCC+ **/ +/** sound chip registers. **/ +/*************************************************************/ +byte ReadSCCP(register SCC *D,register byte R) +{ + return(R<0xA0? D->R[R]:0xFF); +} + +/** WriteSCC() ***********************************************/ +/** Call this function to output a value V into the generic **/ +/** SCC sound chip. **/ +/*************************************************************/ +void WriteSCC(register SCC *D,register byte R,register byte V) +{ + /* Prevent rollover */ + if(R>=0xE0) return; + /* Generic SCC has one waveform less than SCC+ */ + if(R>=0x80) { WriteSCCP(D,R+0x20,V);return; } + /* The last waveform applies to both channels 3 and 4 */ + if(R>=0x60) { WriteSCCP(D,R,V);WriteSCCP(D,R+0x20,V);return; } + /* Other waveforms are the same */ + WriteSCCP(D,R,V); +} + +/** WriteSCCP() **********************************************/ +/** Call this function to output a value V into the newer **/ +/** SCC+ sound chip. **/ +/*************************************************************/ +void WriteSCCP(register SCC *D,register byte R,register byte V) +{ + register int J; + register byte I; + + /* Exit if no change */ + if(V==D->R[R]) return; + + if((R&0xE0)==0xA0) + { + /* Emulate melodic features */ + + /* Save active channel mask in I */ + I=D->R[0xAF]; + /* Write to a register */ + R&=0xEF; + D->R[R]=D->R[R+0x10]=V; + + /* Melodic register number 0..15 */ + R&=0x0F; + switch(R) + { + case 0: case 1: case 2: case 3: case 4: + case 5: case 6: case 7: case 8: case 9: + /* Exit if the channel is silenced */ + if(!(I&(1<<(R>>1)))) return; + /* Go to the first register of the pair */ + R=(R&0xFE)+0xA0; + /* Compute frequency */ + J=((int)(D->R[R+1]&0x0F)<<8)+D->R[R]; + /* Compute channel number */ + R=(R&0x0F)>>1; + /* Assign frequency */ + D->Freq[R]=J? SCC_BASE/J:0; + /* Compute changed channels mask */ + D->Changed|=1<Volume[R]=255*(V&0x0F)/15; + /* Compute changed channels mask */ + D->Changed|=(1<Changed|=R; + /* Update frequencies */ + for(I=0;R&&(I>=1,V>>=1) + if(R&1) + { + if(!(V&1)) D->Freq[I]=0; + else + { + J=I*2+0xA0; + J=((int)(D->R[J+1]&0x0F)<<8)+D->R[J]; + D->Freq[I]=J? SCC_BASE/J:0; + } + } + break; + + default: + /* Wrong register, do nothing */ + return; + } + } + else + { + /* Emulate wave table features */ + + /* Write data to SCC */ + D->R[R]=V; + /* Wrong register, do nothing */ + if(R>=0xA0) return; + /* Mark channel waveform as changed */ + D->WChanged|=1<<(R>>5); + } + + /* For asynchronous mode, make Sound() calls right away */ + if(!D->Sync&&(D->Changed||D->WChanged)) SyncSCC(D,SCC_FLUSH); +} + +/** SyncSCC() ************************************************/ +/** Flush all accumulated changes by issuing Sound() calls **/ +/** and set the synchronization on/off. The second argument **/ +/** should be SCC_SYNC/SCC_ASYNC to set/reset sync, or **/ +/** SCC_FLUSH to leave sync mode as it is. **/ +/*************************************************************/ +void SyncSCC(register SCC *D,register byte Sync) +{ + register int J,I; + + if(Sync!=SCC_FLUSH) D->Sync=Sync; + + /* Modify waveforms */ + for(J=0,I=D->WChanged;I&&(J>=1) + if(I&1) SetWave(J+D->First,(signed char *)(D->R+(J<<5)),32,0); + + /* Modify frequencies and volumes */ + for(J=0,I=D->Changed;I&&(J>=1) + if(I&1) Sound(J+D->First,D->Freq[J],D->Volume[J]); + + D->Changed=D->WChanged=0x00; +} diff --git a/MCUME_teensy/teensymsx/SCC.h b/MCUME_teensy/teensymsx/SCC.h new file mode 100644 index 0000000..eae1ce5 --- /dev/null +++ b/MCUME_teensy/teensymsx/SCC.h @@ -0,0 +1,80 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** SCC.h **/ +/** **/ +/** This file contains definitions and declarations for **/ +/** routines in SCC.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef SCC_H +#define SCC_H + +#define SCC_BASE 111861 /* Base frequency for SCC */ +#define SCC_CHANNELS 5 /* 5 melodic channels */ + +#define SCC_ASYNC 0 /* Asynchronous emulation */ +#define SCC_SYNC 1 /* Synchronous emulation mode */ +#define SCC_FLUSH 2 /* Flush buffers only */ + +#ifndef BYTE_TYPE_DEFINED +#define BYTE_TYPE_DEFINED +typedef unsigned char byte; +#endif + +/** SCC ******************************************************/ +/** This data structure stores SCC state. **/ +/*************************************************************/ +typedef struct +{ + byte R[256]; /* SCC register contents */ + int Freq[SCC_CHANNELS]; /* Frequencies (0 for off) */ + int Volume[SCC_CHANNELS]; /* Volumes (0..255) */ + int First; /* First used Sound() channel */ + byte Changed; /* Bitmap of changed channels */ + byte WChanged; /* Bitmap of changed waveforms */ + byte Sync; /* SCC_SYNC/SCC_ASYNC */ +} SCC; + +/** ResetSCC() ***********************************************/ +/** Reset the sound chip and use sound channels from the **/ +/** one given in First. **/ +/*************************************************************/ +void ResetSCC(register SCC *D,int First); + +/** ReadSCC() ************************************************/ +/** Call this function to read contents of the generic SCC **/ +/** sound chip registers. **/ +/*************************************************************/ +byte ReadSCC(register SCC *D,register byte R); + +/** ReadSCCP() ***********************************************/ +/** Call this function to read contents of the newer SCC+ **/ +/** sound chip registers. **/ +/*************************************************************/ +byte ReadSCCP(register SCC *D,register byte R); + +/** WriteSCC() ***********************************************/ +/** Call this function to output a value V into the generic **/ +/** SCC sound chip. **/ +/*************************************************************/ +void WriteSCC(register SCC *D,register byte R,register byte V); + +/** WriteSCCP() **********************************************/ +/** Call this function to output a value V into the newer **/ +/** SCC+ sound chip. **/ +/*************************************************************/ +void WriteSCCP(register SCC *D,register byte R,register byte V); + +/** SyncSCC() ************************************************/ +/** Flush all accumulated changes by issuing Sound() calls **/ +/** and set the synchronization on/off. The second argument **/ +/** should be SCC_SYNC/SCC_ASYNC to set/reset sync, or **/ +/** SCC_FLUSH to leave sync mode as it is. **/ +/*************************************************************/ +void SyncSCC(register SCC *D,register byte Sync); + +#endif /* SCC_H */ diff --git a/MCUME_teensy/teensymsx/Sound.c b/MCUME_teensy/teensymsx/Sound.c new file mode 100644 index 0000000..980c6f5 --- /dev/null +++ b/MCUME_teensy/teensymsx/Sound.c @@ -0,0 +1,485 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** Sound.c **/ +/** **/ +/** This file file implements core part of the sound API **/ +/** and functions needed to log soundtrack into a MIDI **/ +/** file. See Sound.h for declarations. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#include "Sound.h" + +#include +#include + +#ifdef UNIX +#include +#endif + +typedef unsigned char byte; +typedef unsigned short word; + +struct SndDriverStruct SndDriver = +{ + (void (*)(int,int))0, + (void (*)(int,int))0, + (void (*)(int,int))0, + (void (*)(int,int,int))0, + (void (*)(int,const signed char *,int,int))0 +}; + +#ifdef unused +static const struct { byte Note;word Wheel; } Freqs[4096] = +{ +#include "MIDIFreq.h" +}; +#endif + +static const int Programs[5] = +{ + 80, /* SND_MELODIC/SND_RECTANGLE */ + 80, /* SND_TRIANGLE */ + 122, /* SND_NOISE */ + 122, /* SND_PERIODIC */ + 80 /* SND_WAVE */ +}; + +#ifdef unused +static struct +{ + int Type; + int Note; + int Pitch; + int Level; +} CH[MIDI_CHANNELS]; + +static const char *LogName = 0; +static int Logging = MIDI_OFF; +static int TickCount = 0; +static int LastMsg = -1; +static FILE *MIDIOut = 0; + +static void MIDISound(int Channel,int Freq,int Volume); +static void MIDISetSound(int Channel,int Type); +static void MIDIDrum(int Type,int Force); +static void MIDIMessage(byte D0,byte D1,byte D2); +static void NoteOn(byte Channel,byte Note,byte Level); +static void NoteOff(byte Channel); +static void WriteDelta(void); +static void WriteTempo(int Freq); + +/** SHIFT() **************************************************/ +/** Make MIDI channel#10 last, as it is normally used for **/ +/** percussion instruments only and doesn't sound nice. **/ +/*************************************************************/ +#define SHIFT(Ch) (Ch==15? 9:Ch>8? Ch+1:Ch) +#endif + +/** Sound() **************************************************/ +/** Generate sound of given frequency (Hz) and volume **/ +/** (0..255) via given channel. Setting Freq=0 or Volume=0 **/ +/** turns sound off. **/ +/*************************************************************/ +void Sound(int Channel,int Freq,int Volume) +{ + if(Channel<0) return; + Freq = Freq<0? 0:Freq; + Volume = Volume<0? 0:Volume>255? 255:Volume; + + /* Call sound driver if present */ + if(SndDriver.Sound) (*SndDriver.Sound)(Channel,Freq,Volume); + +#ifdef unused + /* Log sound to MIDI file */ + MIDISound(Channel,Freq,Volume); +#endif +} + +/** Drum() ***************************************************/ +/** Hit a drum of given type with given force (0..255). **/ +/** MIDI drums can be used by ORing their numbers with **/ +/** SND_MIDI. **/ +/*************************************************************/ +void Drum(int Type,int Force) +{ + Force = Force<0? 0:Force>255? 255:Force; + + if(SndDriver.Drum) (*SndDriver.Drum)(Type,Force); + +#ifdef unused + /* Log drum to MIDI file */ + MIDIDrum(Type,Force); +#endif +} + +/** SetSound() ***********************************************/ +/** Set sound type at a given channel. MIDI instruments can **/ +/** be set directly by ORing their numbers with SND_MIDI. **/ +/*************************************************************/ +void SetSound(int Channel,int Type) +{ + if(Channel<0) return; + + if(SndDriver.SetSound) (*SndDriver.SetSound)(Channel,Type); + +#ifdef unused + /* Log instrument change to MIDI file */ + MIDISetSound(Channel,Type); +#endif +} + +/** SetChannels() ********************************************/ +/** Set master volume (0..255) and switch channels on/off. **/ +/** Each channel N has corresponding bit 2^N in Switch. Set **/ +/** or reset this bit to turn the channel on or off. **/ +/*************************************************************/ +void SetChannels(int Volume,int Switch) +{ + Volume = Volume<0? 0:Volume>255? 255:Volume; + + if(SndDriver.SetChannels) (*SndDriver.SetChannels)(Volume,Switch); +} + +/** SetWave() ************************************************/ +/** Set waveform for a given channel. The channel will be **/ +/** marked with sound type SND_WAVE. Set Rate=0 if you want **/ +/** waveform to be an instrument or set it to the waveform **/ +/** own playback rate. **/ +/*************************************************************/ +void SetWave(int Channel,const signed char *Data,int Length,int Rate) +{ + if((Channel<0)||(Length<=0)) return; + + if(SndDriver.SetWave) (*SndDriver.SetWave)(Channel,Data,Length,Rate); + +#ifdef unused + /* Log instrument change to MIDI file */ + MIDISetSound(Channel,Rate? -1:SND_MELODIC); +#endif +} + +#ifdef unused +/** InitMIDI() ***********************************************/ +/** Initialize soundtrack logging into MIDI file FileName. **/ +/** Repeated calls to InitMIDI() will close current MIDI **/ +/** file and continue logging into a new one. **/ +/*************************************************************/ + +void InitMIDI(const char *FileName) +{ + int WasLogging,J; + + /* Must pass a name! */ + if(!FileName) return; + + /* Memorize logging status */ + WasLogging=Logging; + + /* If MIDI logging in progress, close current file */ + if(MIDIOut) TrashMIDI(); + + /* Clear instrument types */ + for(J=0;J>24)&0xFF,MIDIOut); + fputc((Length>>16)&0xFF,MIDIOut); + fputc((Length>>8)&0xFF,MIDIOut); + fputc(Length&0xFF,MIDIOut); + /* Done logging */ + fclose(MIDIOut); + Logging = MIDI_OFF; + LastMsg = -1; + TickCount = 0; + MIDIOut = 0; +} + +/** MIDILogging() ********************************************/ +/** Turn soundtrack logging on/off and return its current **/ +/** status. Possible values of Switch are MIDI_OFF (turn **/ +/** logging off), MIDI_ON (turn logging on), MIDI_TOGGLE **/ +/** (toggle logging), and MIDI_QUERY (just return current **/ +/** state of logging). **/ +/*************************************************************/ +int MIDILogging(int Switch) +{ + static const char MThd[] = "MThd\0\0\0\006\0\0\0\1"; + /* ID DataLen Fmt Trks */ + static const char MTrk[] = "MTrk\0\0\0\0"; + /* ID TrkLen */ + int J,I; + + /* Toggle logging if requested */ + if(Switch==MIDI_TOGGLE) Switch=!Logging; + + if((Switch==MIDI_ON)||(Switch==MIDI_OFF)) + if(Switch^Logging) + { + /* When turning logging off, silence all channels */ + if(!Switch&&MIDIOut) + for(J=0;J>8)&0xFF,MIDIOut); + fputc(MIDI_DIVISIONS&0xFF,MIDIOut); + if(fwrite(MTrk,1,8,MIDIOut)!=8) + { fclose(MIDIOut);MIDIOut=0;return(MIDI_OFF); } + + /* Write out the tempo */ + WriteTempo(MIDI_DIVISIONS); + } + + /* Turn logging off on failure to open MIDIOut */ + if(!MIDIOut) Switch=MIDI_OFF; + + /* Assign new switch value */ + Logging=Switch; + + /* If switching logging on... */ + if(Switch) + { + /* Start logging without a pause */ + TickCount=0; + + /* Write instrument changes */ + for(J=0;J=0)&&(CH[J].Type&0x10000)) + { + I=CH[J].Type&~0x10000; + CH[J].Type=-1; + MIDISetSound(J,I); + } + } + } + + /* Return current logging status */ + return(Logging); +} + +/** MIDITicks() **********************************************/ +/** Log N 1ms MIDI ticks. **/ +/*************************************************************/ +void MIDITicks(int N) +{ + if(Logging&&MIDIOut&&(N>0)) TickCount+=N; +} + +/** MIDISound() **********************************************/ +/** Set sound frequency (Hz) and volume (0..255) for a **/ +/** given channel. **/ +/*************************************************************/ +void MIDISound(int Channel,int Freq,int Volume) +{ + int MIDIVolume,MIDINote,MIDIWheel; + + /* If logging off, file closed, or invalid channel, drop out */ + if(!Logging||!MIDIOut||(Channel>=MIDI_CHANNELS-1)||(Channel<0)) return; + /* Frequency must be in range */ + if((FreqMIDI_MAXFREQ)) Freq=0; + /* Volume must be in range */ + if(Volume<0) Volume=0; else if(Volume>255) Volume=255; + /* Instrument number must be valid */ + if(CH[Channel].Type<0) Freq=0; + + if(!Volume||!Freq) NoteOff(Channel); + else + { + /* SND_TRIANGLE is twice quieter than SND_MELODIC */ + if(CH[Channel].Type==SND_TRIANGLE) Volume=(Volume+1)/2; + /* Compute MIDI note parameters */ + MIDIVolume = Volume=(Volume+1)/2;; + MIDINote = Freqs[Freq/3].Note; + MIDIWheel = Freqs[Freq/3].Wheel; + + /* Play new note */ + NoteOn(Channel,MIDINote,MIDIVolume); + + /* Change pitch */ + if(CH[Channel].Pitch!=MIDIWheel) + { + MIDIMessage(0xE0+SHIFT(Channel),MIDIWheel&0x7F,(MIDIWheel>>7)&0x7F); + CH[Channel].Pitch=MIDIWheel; + } + } +} + +/** MIDISetSound() *******************************************/ +/** Set sound type for a given channel. **/ +/*************************************************************/ +void MIDISetSound(int Channel,int Type) +{ + /* Channel must be valid */ + if((Channel>=MIDI_CHANNELS-1)||(Channel<0)) return; + + /* If instrument changed... */ + if(CH[Channel].Type!=Type) + { + /* If logging off or file closed, drop out */ + if(!Logging||!MIDIOut) CH[Channel].Type=Type|0x10000; + else + { + CH[Channel].Type=Type; + if(Type<0) NoteOff(Channel); + else + { + Type=Type&SND_MIDI? (Type&0x7F):Programs[Type%5]; + MIDIMessage(0xC0+SHIFT(Channel),Type,255); + } + } + } +} + +/** MIDIDrum() ***********************************************/ +/** Hit a drum of a given type with given force. **/ +/*************************************************************/ +void MIDIDrum(int Type,int Force) +{ + /* If logging off or invalid channel, drop out */ + if(!Logging||!MIDIOut) return; + /* The only non-MIDI drum is a click ("Low Wood Block") */ + Type=Type&DRM_MIDI? (Type&0x7F):77; + MIDIMessage(0x99,Type,(Force&0xFF)/2); +} + +/** MIDIMessage() ********************************************/ +/** Write out a MIDI message. **/ +/*************************************************************/ +void MIDIMessage(byte D0,byte D1,byte D2) +{ + /* Write number of ticks that passed */ + WriteDelta(); + + /* Write out the command */ + if(D0!=LastMsg) { LastMsg=D0;fputc(D0,MIDIOut); } + + /* Write out the arguments */ + if(D1<128) + { + fputc(D1,MIDIOut); + if(D2<128) fputc(D2,MIDIOut); + } +} + +/** NoteOn() *************************************************/ +/** Turn on a note on a given channel. **/ +/*************************************************************/ +void NoteOn(byte Channel,byte Note,byte Level) +{ + Note&=0x7F; + Level&=0x7F; + + if((CH[Channel].Note!=Note)||(CH[Channel].Level!=Level)) + { + if(CH[Channel].Note==Note) + MIDIMessage(0xA0+SHIFT(Channel),Note,Level); + else + { + if(CH[Channel].Note>=0) NoteOff(Channel); + MIDIMessage(0x90+SHIFT(Channel),Note,Level); + } + + CH[Channel].Note=Note; + CH[Channel].Level=Level; + } +} + +/** NoteOff() ************************************************/ +/** Turn off a note on a given channel. **/ +/*************************************************************/ +void NoteOff(byte Channel) +{ + if(CH[Channel].Note>=0) + { + MIDIMessage(0x80+SHIFT(Channel),CH[Channel].Note,127); + CH[Channel].Note=-1; + } +} + +/** WriteDelta() *********************************************/ +/** Write number of ticks since the last MIDI command and **/ +/** reset the counter. **/ +/*************************************************************/ +void WriteDelta(void) +{ + if(TickCount<128) fputc(TickCount,MIDIOut); + else + { + if(TickCount<128*128) + { + fputc((TickCount>>7)|0x80,MIDIOut); + fputc(TickCount&0x7F,MIDIOut); + } + else + { + fputc(((TickCount>>14)&0x7F)|0x80,MIDIOut); + fputc(((TickCount>>7)&0x7F)|0x80,MIDIOut); + fputc(TickCount&0x7F,MIDIOut); + } + } + + TickCount=0; +} + +/** WriteTempo() *********************************************/ +/** Write out soundtrack tempo (Hz). **/ +/*************************************************************/ +void WriteTempo(int Freq) +{ + int J; + + J=500000*MIDI_DIVISIONS*2/Freq; + WriteDelta(); + fputc(0xFF,MIDIOut); + fputc(0x51,MIDIOut); + fputc(0x03,MIDIOut); + fputc((J>>16)&0xFF,MIDIOut); + fputc((J>>8)&0xFF,MIDIOut); + fputc(J&0xFF,MIDIOut); +} +#endif diff --git a/MCUME_teensy/teensymsx/Sound.h b/MCUME_teensy/teensymsx/Sound.h new file mode 100644 index 0000000..9103ca5 --- /dev/null +++ b/MCUME_teensy/teensymsx/Sound.h @@ -0,0 +1,152 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** Sound.h **/ +/** **/ +/** This file defines standard sound generation API and **/ +/** functions needed to log soundtrack into a MIDI file. **/ +/** See Sound.c and the sound drivers for the code. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef SOUND_H +#define SOUND_H + + /* SetSound() arguments: */ +#define SND_MELODIC 0 /* Melodic sound (default) */ +#define SND_RECTANGLE 0 /* Rectangular wave */ +#define SND_TRIANGLE 1 /* Triangular wave (1/2 rect.)*/ +#define SND_NOISE 2 /* White noise */ +#define SND_PERIODIC 3 /* Periodic noise (not im-ed) */ +#define SND_WAVE 4 /* Wave sound set by SetWave()*/ +#define SND_MIDI 0x100 /* MIDI instrument (ORable) */ + + /* Drum() arguments: */ +#define DRM_CLICK 0 /* Click (default) */ +#define DRM_MIDI 0x100 /* MIDI drum (ORable) */ + + /* MIDI characteristics: */ +#define MIDI_CHANNELS 16 /* Number of MIDI channels */ +#define MIDI_MINFREQ 9 /* Min MIDI frequency (Hz) */ +#define MIDI_MAXFREQ 12285 /* Max MIDI frequency (Hz) */ +#define MIDI_DIVISIONS 1000 /* Number of ticks per second */ + + /* MIDILogging() arguments: */ +#define MIDI_OFF 0 /* Turn MIDI logging off */ +#define MIDI_ON 1 /* Turn MIDI logging on */ +#define MIDI_TOGGLE 2 /* Toggle MIDI logging */ +#define MIDI_QUERY 3 /* Query MIDI logging status */ + +/** TrashSound() *********************************************/ +/** Shut down sound driver. Each driver implements its own **/ +/** TrashSound() function. **/ +/*************************************************************/ +void TrashSound(void); + +/** Sound() **************************************************/ +/** Generate sound of given frequency (Hz) and volume **/ +/** (0..255) via given channel. Setting Freq=0 or Volume=0 **/ +/** turns sound off. **/ +/*************************************************************/ +void Sound(int Channel,int Freq,int Volume); + +/** Drum() ***************************************************/ +/** Hit a drum of given type with given force (0..255). **/ +/** MIDI drums can be used by ORing their numbers with **/ +/** SND_MIDI. **/ +/*************************************************************/ +void Drum(int Type,int Force); + +/** SetSound() ***********************************************/ +/** Set sound type at a given channel. MIDI instruments can **/ +/** be set directly by ORing their numbers with SND_MIDI. **/ +/*************************************************************/ +void SetSound(int Channel,int NewType); + +/** SetChannels() ********************************************/ +/** Set master volume (0..255) and switch channels on/off. **/ +/** Each channel N has corresponding bit 2^N in Switch. Set **/ +/** or reset this bit to turn the channel on or off. **/ +/*************************************************************/ +void SetChannels(int Volume,int Switch); + +/** SetWave() ************************************************/ +/** Set waveform for a given channel. The channel will be **/ +/** marked with sound type SND_WAVE. Set Rate=0 if you want **/ +/** waveform to be an instrument or set it to the waveform **/ +/** own playback rate. **/ +/*************************************************************/ +void SetWave(int Channel,const signed char *Data,int Length,int Rate); + +/** InitMIDI() ***********************************************/ +/** Initialize soundtrack logging into MIDI file FileName. **/ +/** Repeated calls to InitMIDI() will close current MIDI **/ +/** file and continue logging into a new one. **/ +/*************************************************************/ +void InitMIDI(const char *FileName); + +/** TrashMIDI() **********************************************/ +/** Finish logging soundtrack and close the MIDI file. **/ +/*************************************************************/ +void TrashMIDI(void); + +/** MIDILogging() ********************************************/ +/** Turn soundtrack logging on/off and return its current **/ +/** status. Possible values of Switch are MIDI_OFF (turn **/ +/** logging off), MIDI_ON (turn logging on), MIDI_TOGGLE **/ +/** (toggle logging), and MIDI_QUERY (just return current **/ +/** state of logging). **/ +/*************************************************************/ +int MIDILogging(int Switch); + +/** MIDITicks() **********************************************/ +/** Log N 1ms MIDI ticks. **/ +/*************************************************************/ +void MIDITicks(int N); + +#define SND_CHANNELS 16 /* Number of channels */ +#define SND_SAMPLESIZE 128 //256 /* Max. SetWave() sample size */ +#define SND_BUFSIZE 128 //256 /* Buffer size, <= 2^SND_BITS */ +#define SND_BITS 8 /* Number of bits in a fragment */ +#define SND_BUFFERS 8 /* Number of fragments, >= 2 */ + /* Bigger value results in better behaviour on loaded */ + /* but output gets more delayed. */ + +/** InitSound() **********************************************/ +/** Initialize Unix sound driver with given synthesis rate. **/ +/** Returns Rate on success, 0 otherwise. Pass Rate=0 to **/ +/** skip initialization and be silent. Pass Verbose!=0 to **/ +/** see initialization messages. **/ +/*************************************************************/ +int InitSound(int Rate,int Verbose); + +/** StopSound() **********************************************/ +/** Temporarily suspend sound. **/ +/*************************************************************/ +void StopSound(void); + +/** ResumeSound() ********************************************/ +/** Resume sound after StopSound(). **/ +/*************************************************************/ +void ResumeSound(void); + + +/** SndDriver ************************************************/ +/** Each sound driver should fill this structure with **/ +/** pointers to hardware-dependent handlers. This has to be **/ +/** done inside the InitSound() function. **/ +/*************************************************************/ +struct SndDriverStruct +{ + void (*SetSound)(int Channel,int NewType); + void (*Drum)(int Type,int Force); + void (*SetChannels)(int Volume,int Switch); + void (*Sound)(int Channel,int NewFreq,int NewVolume); + void (*SetWave)(int Channel,const signed char *Data,int Length,int Freq); +}; +extern struct SndDriverStruct SndDriver; + +#endif /* SOUND_H */ + diff --git a/MCUME_teensy/teensymsx/Tables.h b/MCUME_teensy/teensymsx/Tables.h new file mode 100644 index 0000000..5e3a275 --- /dev/null +++ b/MCUME_teensy/teensymsx/Tables.h @@ -0,0 +1,447 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** Tables.h **/ +/** **/ +/** This file contains tables of used by Z80 emulation to **/ +/** compute SIGN,ZERO, PARITY flags, and decimal correction **/ +/** There are also timing tables for Z80 opcodes. This file **/ +/** is included from Z80.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +static const byte Cycles[256] = +{ + 4,10, 7, 6, 4, 4, 7, 4, 4,11, 7, 6, 4, 4, 7, 4, + 8,10, 7, 6, 4, 4, 7, 4,12,11, 7, 6, 4, 4, 7, 4, + 7,10,16, 6, 4, 4, 7, 4, 7,11,16, 6, 4, 4, 7, 4, + 7,10,13, 6,11,11,10, 4, 7,11,13, 6, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 7, 7, 7, 7, 7, 7, 4, 7, 4, 4, 4, 4, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4, + 5,10,10,10,10,11, 7,11, 5,10,10, 0,10,17, 7,11, + 5,10,10,11,10,11, 7,11, 5, 4,10,11,10, 0, 7,11, + 5,10,10,19,10,11, 7,11, 5, 4,10, 4,10, 0, 7,11, + 5,10,10, 4,10,11, 7,11, 5, 6,10, 4,10, 0, 7,11 +}; + +static const byte CyclesCB[256] = +{ + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8, + 8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8, + 8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8, + 8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8, + 8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8 +}; + +static const byte CyclesED[256] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12,12,15,20, 8,14, 8, 9,12,12,15,20, 0,14, 0, 9, + 12,12,15,20, 0, 0, 8, 9,12,12,15,20, 0, 0, 8, 9, + 12,12,15,20, 0, 0, 0,18,12,12,15,20, 0, 0, 0,18, + 12, 0,15,20, 0, 0, 0, 0,12,12,15,20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,16,16,16, 0, 0, 0, 0,16,16,16,16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const byte CyclesXX[256] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, 0, 0, 0, 0, 0, + 0,14,20,10, 9, 9, 9, 0, 0,15,20,10, 9, 9, 9, 0, + 0, 0, 0, 0,23,23,19, 0, 0,15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9,19, 0, 0, 0, 0, 0, 9, 9,19, 0, + 0, 0, 0, 0, 9, 9,19, 0, 0, 0, 0, 0, 9, 9,19, 0, + 9, 9, 9, 9, 9, 9,19, 9, 9, 9, 9, 9, 9, 9,19, 9, + 19,19,19,19,19,19,19,19, 0, 0, 0, 0, 9, 9,19, 0, + 0, 0, 0, 0, 9, 9,19, 0, 0, 0, 0, 0, 9, 9,19, 0, + 0, 0, 0, 0, 9, 9,19, 0, 0, 0, 0, 0, 9, 9,19, 0, + 0, 0, 0, 0, 9, 9,19, 0, 0, 0, 0, 0, 9, 9,19, 0, + 0, 0, 0, 0, 9, 9,19, 0, 0, 0, 0, 0, 9, 9,19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,14, 0,23, 0,15, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0, 0 +}; + +static const byte CyclesXXCB[256] = +{ + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0, + 0, 0, 0, 0, 0, 0,23, 0, 0, 0, 0, 0, 0, 0,23, 0 +}; + +static const byte ZSTable[256] = +{ + Z_FLAG,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG, + S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG,S_FLAG +}; + +static const byte PZSTable[256] = +{ + Z_FLAG|P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0, + 0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG, + 0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG,P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0, + 0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG,P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0, + P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0,0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG, + 0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG,P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0, + P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0,0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG, + P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0,0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG, + 0,P_FLAG,P_FLAG,0,P_FLAG,0,0,P_FLAG,P_FLAG,0,0,P_FLAG,0,P_FLAG,P_FLAG,0, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG,S_FLAG|P_FLAG,S_FLAG|P_FLAG,S_FLAG, + S_FLAG|P_FLAG,S_FLAG,S_FLAG,S_FLAG|P_FLAG +}; + +static const word DAATable[2048] = +{ + 0x0044,0x0100,0x0200,0x0304,0x0400,0x0504,0x0604,0x0700, + 0x0808,0x090C,0x1010,0x1114,0x1214,0x1310,0x1414,0x1510, + 0x1000,0x1104,0x1204,0x1300,0x1404,0x1500,0x1600,0x1704, + 0x180C,0x1908,0x2030,0x2134,0x2234,0x2330,0x2434,0x2530, + 0x2020,0x2124,0x2224,0x2320,0x2424,0x2520,0x2620,0x2724, + 0x282C,0x2928,0x3034,0x3130,0x3230,0x3334,0x3430,0x3534, + 0x3024,0x3120,0x3220,0x3324,0x3420,0x3524,0x3624,0x3720, + 0x3828,0x392C,0x4010,0x4114,0x4214,0x4310,0x4414,0x4510, + 0x4000,0x4104,0x4204,0x4300,0x4404,0x4500,0x4600,0x4704, + 0x480C,0x4908,0x5014,0x5110,0x5210,0x5314,0x5410,0x5514, + 0x5004,0x5100,0x5200,0x5304,0x5400,0x5504,0x5604,0x5700, + 0x5808,0x590C,0x6034,0x6130,0x6230,0x6334,0x6430,0x6534, + 0x6024,0x6120,0x6220,0x6324,0x6420,0x6524,0x6624,0x6720, + 0x6828,0x692C,0x7030,0x7134,0x7234,0x7330,0x7434,0x7530, + 0x7020,0x7124,0x7224,0x7320,0x7424,0x7520,0x7620,0x7724, + 0x782C,0x7928,0x8090,0x8194,0x8294,0x8390,0x8494,0x8590, + 0x8080,0x8184,0x8284,0x8380,0x8484,0x8580,0x8680,0x8784, + 0x888C,0x8988,0x9094,0x9190,0x9290,0x9394,0x9490,0x9594, + 0x9084,0x9180,0x9280,0x9384,0x9480,0x9584,0x9684,0x9780, + 0x9888,0x998C,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515, + 0x0045,0x0101,0x0201,0x0305,0x0401,0x0505,0x0605,0x0701, + 0x0809,0x090D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511, + 0x1001,0x1105,0x1205,0x1301,0x1405,0x1501,0x1601,0x1705, + 0x180D,0x1909,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531, + 0x2021,0x2125,0x2225,0x2321,0x2425,0x2521,0x2621,0x2725, + 0x282D,0x2929,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535, + 0x3025,0x3121,0x3221,0x3325,0x3421,0x3525,0x3625,0x3721, + 0x3829,0x392D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511, + 0x4001,0x4105,0x4205,0x4301,0x4405,0x4501,0x4601,0x4705, + 0x480D,0x4909,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515, + 0x5005,0x5101,0x5201,0x5305,0x5401,0x5505,0x5605,0x5701, + 0x5809,0x590D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535, + 0x6025,0x6121,0x6221,0x6325,0x6421,0x6525,0x6625,0x6721, + 0x6829,0x692D,0x7031,0x7135,0x7235,0x7331,0x7435,0x7531, + 0x7021,0x7125,0x7225,0x7321,0x7425,0x7521,0x7621,0x7725, + 0x782D,0x7929,0x8091,0x8195,0x8295,0x8391,0x8495,0x8591, + 0x8081,0x8185,0x8285,0x8381,0x8485,0x8581,0x8681,0x8785, + 0x888D,0x8989,0x9095,0x9191,0x9291,0x9395,0x9491,0x9595, + 0x9085,0x9181,0x9281,0x9385,0x9481,0x9585,0x9685,0x9781, + 0x9889,0x998D,0xA0B5,0xA1B1,0xA2B1,0xA3B5,0xA4B1,0xA5B5, + 0xA0A5,0xA1A1,0xA2A1,0xA3A5,0xA4A1,0xA5A5,0xA6A5,0xA7A1, + 0xA8A9,0xA9AD,0xB0B1,0xB1B5,0xB2B5,0xB3B1,0xB4B5,0xB5B1, + 0xB0A1,0xB1A5,0xB2A5,0xB3A1,0xB4A5,0xB5A1,0xB6A1,0xB7A5, + 0xB8AD,0xB9A9,0xC095,0xC191,0xC291,0xC395,0xC491,0xC595, + 0xC085,0xC181,0xC281,0xC385,0xC481,0xC585,0xC685,0xC781, + 0xC889,0xC98D,0xD091,0xD195,0xD295,0xD391,0xD495,0xD591, + 0xD081,0xD185,0xD285,0xD381,0xD485,0xD581,0xD681,0xD785, + 0xD88D,0xD989,0xE0B1,0xE1B5,0xE2B5,0xE3B1,0xE4B5,0xE5B1, + 0xE0A1,0xE1A5,0xE2A5,0xE3A1,0xE4A5,0xE5A1,0xE6A1,0xE7A5, + 0xE8AD,0xE9A9,0xF0B5,0xF1B1,0xF2B1,0xF3B5,0xF4B1,0xF5B5, + 0xF0A5,0xF1A1,0xF2A1,0xF3A5,0xF4A1,0xF5A5,0xF6A5,0xF7A1, + 0xF8A9,0xF9AD,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515, + 0x0045,0x0101,0x0201,0x0305,0x0401,0x0505,0x0605,0x0701, + 0x0809,0x090D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511, + 0x1001,0x1105,0x1205,0x1301,0x1405,0x1501,0x1601,0x1705, + 0x180D,0x1909,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531, + 0x2021,0x2125,0x2225,0x2321,0x2425,0x2521,0x2621,0x2725, + 0x282D,0x2929,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535, + 0x3025,0x3121,0x3221,0x3325,0x3421,0x3525,0x3625,0x3721, + 0x3829,0x392D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511, + 0x4001,0x4105,0x4205,0x4301,0x4405,0x4501,0x4601,0x4705, + 0x480D,0x4909,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515, + 0x5005,0x5101,0x5201,0x5305,0x5401,0x5505,0x5605,0x5701, + 0x5809,0x590D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535, + 0x0604,0x0700,0x0808,0x090C,0x0A0C,0x0B08,0x0C0C,0x0D08, + 0x0E08,0x0F0C,0x1010,0x1114,0x1214,0x1310,0x1414,0x1510, + 0x1600,0x1704,0x180C,0x1908,0x1A08,0x1B0C,0x1C08,0x1D0C, + 0x1E0C,0x1F08,0x2030,0x2134,0x2234,0x2330,0x2434,0x2530, + 0x2620,0x2724,0x282C,0x2928,0x2A28,0x2B2C,0x2C28,0x2D2C, + 0x2E2C,0x2F28,0x3034,0x3130,0x3230,0x3334,0x3430,0x3534, + 0x3624,0x3720,0x3828,0x392C,0x3A2C,0x3B28,0x3C2C,0x3D28, + 0x3E28,0x3F2C,0x4010,0x4114,0x4214,0x4310,0x4414,0x4510, + 0x4600,0x4704,0x480C,0x4908,0x4A08,0x4B0C,0x4C08,0x4D0C, + 0x4E0C,0x4F08,0x5014,0x5110,0x5210,0x5314,0x5410,0x5514, + 0x5604,0x5700,0x5808,0x590C,0x5A0C,0x5B08,0x5C0C,0x5D08, + 0x5E08,0x5F0C,0x6034,0x6130,0x6230,0x6334,0x6430,0x6534, + 0x6624,0x6720,0x6828,0x692C,0x6A2C,0x6B28,0x6C2C,0x6D28, + 0x6E28,0x6F2C,0x7030,0x7134,0x7234,0x7330,0x7434,0x7530, + 0x7620,0x7724,0x782C,0x7928,0x7A28,0x7B2C,0x7C28,0x7D2C, + 0x7E2C,0x7F28,0x8090,0x8194,0x8294,0x8390,0x8494,0x8590, + 0x8680,0x8784,0x888C,0x8988,0x8A88,0x8B8C,0x8C88,0x8D8C, + 0x8E8C,0x8F88,0x9094,0x9190,0x9290,0x9394,0x9490,0x9594, + 0x9684,0x9780,0x9888,0x998C,0x9A8C,0x9B88,0x9C8C,0x9D88, + 0x9E88,0x9F8C,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515, + 0x0605,0x0701,0x0809,0x090D,0x0A0D,0x0B09,0x0C0D,0x0D09, + 0x0E09,0x0F0D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511, + 0x1601,0x1705,0x180D,0x1909,0x1A09,0x1B0D,0x1C09,0x1D0D, + 0x1E0D,0x1F09,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531, + 0x2621,0x2725,0x282D,0x2929,0x2A29,0x2B2D,0x2C29,0x2D2D, + 0x2E2D,0x2F29,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535, + 0x3625,0x3721,0x3829,0x392D,0x3A2D,0x3B29,0x3C2D,0x3D29, + 0x3E29,0x3F2D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511, + 0x4601,0x4705,0x480D,0x4909,0x4A09,0x4B0D,0x4C09,0x4D0D, + 0x4E0D,0x4F09,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515, + 0x5605,0x5701,0x5809,0x590D,0x5A0D,0x5B09,0x5C0D,0x5D09, + 0x5E09,0x5F0D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535, + 0x6625,0x6721,0x6829,0x692D,0x6A2D,0x6B29,0x6C2D,0x6D29, + 0x6E29,0x6F2D,0x7031,0x7135,0x7235,0x7331,0x7435,0x7531, + 0x7621,0x7725,0x782D,0x7929,0x7A29,0x7B2D,0x7C29,0x7D2D, + 0x7E2D,0x7F29,0x8091,0x8195,0x8295,0x8391,0x8495,0x8591, + 0x8681,0x8785,0x888D,0x8989,0x8A89,0x8B8D,0x8C89,0x8D8D, + 0x8E8D,0x8F89,0x9095,0x9191,0x9291,0x9395,0x9491,0x9595, + 0x9685,0x9781,0x9889,0x998D,0x9A8D,0x9B89,0x9C8D,0x9D89, + 0x9E89,0x9F8D,0xA0B5,0xA1B1,0xA2B1,0xA3B5,0xA4B1,0xA5B5, + 0xA6A5,0xA7A1,0xA8A9,0xA9AD,0xAAAD,0xABA9,0xACAD,0xADA9, + 0xAEA9,0xAFAD,0xB0B1,0xB1B5,0xB2B5,0xB3B1,0xB4B5,0xB5B1, + 0xB6A1,0xB7A5,0xB8AD,0xB9A9,0xBAA9,0xBBAD,0xBCA9,0xBDAD, + 0xBEAD,0xBFA9,0xC095,0xC191,0xC291,0xC395,0xC491,0xC595, + 0xC685,0xC781,0xC889,0xC98D,0xCA8D,0xCB89,0xCC8D,0xCD89, + 0xCE89,0xCF8D,0xD091,0xD195,0xD295,0xD391,0xD495,0xD591, + 0xD681,0xD785,0xD88D,0xD989,0xDA89,0xDB8D,0xDC89,0xDD8D, + 0xDE8D,0xDF89,0xE0B1,0xE1B5,0xE2B5,0xE3B1,0xE4B5,0xE5B1, + 0xE6A1,0xE7A5,0xE8AD,0xE9A9,0xEAA9,0xEBAD,0xECA9,0xEDAD, + 0xEEAD,0xEFA9,0xF0B5,0xF1B1,0xF2B1,0xF3B5,0xF4B1,0xF5B5, + 0xF6A5,0xF7A1,0xF8A9,0xF9AD,0xFAAD,0xFBA9,0xFCAD,0xFDA9, + 0xFEA9,0xFFAD,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515, + 0x0605,0x0701,0x0809,0x090D,0x0A0D,0x0B09,0x0C0D,0x0D09, + 0x0E09,0x0F0D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511, + 0x1601,0x1705,0x180D,0x1909,0x1A09,0x1B0D,0x1C09,0x1D0D, + 0x1E0D,0x1F09,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531, + 0x2621,0x2725,0x282D,0x2929,0x2A29,0x2B2D,0x2C29,0x2D2D, + 0x2E2D,0x2F29,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535, + 0x3625,0x3721,0x3829,0x392D,0x3A2D,0x3B29,0x3C2D,0x3D29, + 0x3E29,0x3F2D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511, + 0x4601,0x4705,0x480D,0x4909,0x4A09,0x4B0D,0x4C09,0x4D0D, + 0x4E0D,0x4F09,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515, + 0x5605,0x5701,0x5809,0x590D,0x5A0D,0x5B09,0x5C0D,0x5D09, + 0x5E09,0x5F0D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535, + 0x0046,0x0102,0x0202,0x0306,0x0402,0x0506,0x0606,0x0702, + 0x080A,0x090E,0x0402,0x0506,0x0606,0x0702,0x080A,0x090E, + 0x1002,0x1106,0x1206,0x1302,0x1406,0x1502,0x1602,0x1706, + 0x180E,0x190A,0x1406,0x1502,0x1602,0x1706,0x180E,0x190A, + 0x2022,0x2126,0x2226,0x2322,0x2426,0x2522,0x2622,0x2726, + 0x282E,0x292A,0x2426,0x2522,0x2622,0x2726,0x282E,0x292A, + 0x3026,0x3122,0x3222,0x3326,0x3422,0x3526,0x3626,0x3722, + 0x382A,0x392E,0x3422,0x3526,0x3626,0x3722,0x382A,0x392E, + 0x4002,0x4106,0x4206,0x4302,0x4406,0x4502,0x4602,0x4706, + 0x480E,0x490A,0x4406,0x4502,0x4602,0x4706,0x480E,0x490A, + 0x5006,0x5102,0x5202,0x5306,0x5402,0x5506,0x5606,0x5702, + 0x580A,0x590E,0x5402,0x5506,0x5606,0x5702,0x580A,0x590E, + 0x6026,0x6122,0x6222,0x6326,0x6422,0x6526,0x6626,0x6722, + 0x682A,0x692E,0x6422,0x6526,0x6626,0x6722,0x682A,0x692E, + 0x7022,0x7126,0x7226,0x7322,0x7426,0x7522,0x7622,0x7726, + 0x782E,0x792A,0x7426,0x7522,0x7622,0x7726,0x782E,0x792A, + 0x8082,0x8186,0x8286,0x8382,0x8486,0x8582,0x8682,0x8786, + 0x888E,0x898A,0x8486,0x8582,0x8682,0x8786,0x888E,0x898A, + 0x9086,0x9182,0x9282,0x9386,0x9482,0x9586,0x9686,0x9782, + 0x988A,0x998E,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F, + 0x4003,0x4107,0x4207,0x4303,0x4407,0x4503,0x4603,0x4707, + 0x480F,0x490B,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B, + 0x5007,0x5103,0x5203,0x5307,0x5403,0x5507,0x5607,0x5703, + 0x580B,0x590F,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F, + 0x6027,0x6123,0x6223,0x6327,0x6423,0x6527,0x6627,0x6723, + 0x682B,0x692F,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F, + 0x7023,0x7127,0x7227,0x7323,0x7427,0x7523,0x7623,0x7727, + 0x782F,0x792B,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B, + 0x8083,0x8187,0x8287,0x8383,0x8487,0x8583,0x8683,0x8787, + 0x888F,0x898B,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B, + 0x9087,0x9183,0x9283,0x9387,0x9483,0x9587,0x9687,0x9783, + 0x988B,0x998F,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F, + 0xA0A7,0xA1A3,0xA2A3,0xA3A7,0xA4A3,0xA5A7,0xA6A7,0xA7A3, + 0xA8AB,0xA9AF,0xA4A3,0xA5A7,0xA6A7,0xA7A3,0xA8AB,0xA9AF, + 0xB0A3,0xB1A7,0xB2A7,0xB3A3,0xB4A7,0xB5A3,0xB6A3,0xB7A7, + 0xB8AF,0xB9AB,0xB4A7,0xB5A3,0xB6A3,0xB7A7,0xB8AF,0xB9AB, + 0xC087,0xC183,0xC283,0xC387,0xC483,0xC587,0xC687,0xC783, + 0xC88B,0xC98F,0xC483,0xC587,0xC687,0xC783,0xC88B,0xC98F, + 0xD083,0xD187,0xD287,0xD383,0xD487,0xD583,0xD683,0xD787, + 0xD88F,0xD98B,0xD487,0xD583,0xD683,0xD787,0xD88F,0xD98B, + 0xE0A3,0xE1A7,0xE2A7,0xE3A3,0xE4A7,0xE5A3,0xE6A3,0xE7A7, + 0xE8AF,0xE9AB,0xE4A7,0xE5A3,0xE6A3,0xE7A7,0xE8AF,0xE9AB, + 0xF0A7,0xF1A3,0xF2A3,0xF3A7,0xF4A3,0xF5A7,0xF6A7,0xF7A3, + 0xF8AB,0xF9AF,0xF4A3,0xF5A7,0xF6A7,0xF7A3,0xF8AB,0xF9AF, + 0x0047,0x0103,0x0203,0x0307,0x0403,0x0507,0x0607,0x0703, + 0x080B,0x090F,0x0403,0x0507,0x0607,0x0703,0x080B,0x090F, + 0x1003,0x1107,0x1207,0x1303,0x1407,0x1503,0x1603,0x1707, + 0x180F,0x190B,0x1407,0x1503,0x1603,0x1707,0x180F,0x190B, + 0x2023,0x2127,0x2227,0x2323,0x2427,0x2523,0x2623,0x2727, + 0x282F,0x292B,0x2427,0x2523,0x2623,0x2727,0x282F,0x292B, + 0x3027,0x3123,0x3223,0x3327,0x3423,0x3527,0x3627,0x3723, + 0x382B,0x392F,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F, + 0x4003,0x4107,0x4207,0x4303,0x4407,0x4503,0x4603,0x4707, + 0x480F,0x490B,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B, + 0x5007,0x5103,0x5203,0x5307,0x5403,0x5507,0x5607,0x5703, + 0x580B,0x590F,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F, + 0x6027,0x6123,0x6223,0x6327,0x6423,0x6527,0x6627,0x6723, + 0x682B,0x692F,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F, + 0x7023,0x7127,0x7227,0x7323,0x7427,0x7523,0x7623,0x7727, + 0x782F,0x792B,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B, + 0x8083,0x8187,0x8287,0x8383,0x8487,0x8583,0x8683,0x8787, + 0x888F,0x898B,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B, + 0x9087,0x9183,0x9283,0x9387,0x9483,0x9587,0x9687,0x9783, + 0x988B,0x998F,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F, + 0xFABE,0xFBBA,0xFCBE,0xFDBA,0xFEBA,0xFFBE,0x0046,0x0102, + 0x0202,0x0306,0x0402,0x0506,0x0606,0x0702,0x080A,0x090E, + 0x0A1E,0x0B1A,0x0C1E,0x0D1A,0x0E1A,0x0F1E,0x1002,0x1106, + 0x1206,0x1302,0x1406,0x1502,0x1602,0x1706,0x180E,0x190A, + 0x1A1A,0x1B1E,0x1C1A,0x1D1E,0x1E1E,0x1F1A,0x2022,0x2126, + 0x2226,0x2322,0x2426,0x2522,0x2622,0x2726,0x282E,0x292A, + 0x2A3A,0x2B3E,0x2C3A,0x2D3E,0x2E3E,0x2F3A,0x3026,0x3122, + 0x3222,0x3326,0x3422,0x3526,0x3626,0x3722,0x382A,0x392E, + 0x3A3E,0x3B3A,0x3C3E,0x3D3A,0x3E3A,0x3F3E,0x4002,0x4106, + 0x4206,0x4302,0x4406,0x4502,0x4602,0x4706,0x480E,0x490A, + 0x4A1A,0x4B1E,0x4C1A,0x4D1E,0x4E1E,0x4F1A,0x5006,0x5102, + 0x5202,0x5306,0x5402,0x5506,0x5606,0x5702,0x580A,0x590E, + 0x5A1E,0x5B1A,0x5C1E,0x5D1A,0x5E1A,0x5F1E,0x6026,0x6122, + 0x6222,0x6326,0x6422,0x6526,0x6626,0x6722,0x682A,0x692E, + 0x6A3E,0x6B3A,0x6C3E,0x6D3A,0x6E3A,0x6F3E,0x7022,0x7126, + 0x7226,0x7322,0x7426,0x7522,0x7622,0x7726,0x782E,0x792A, + 0x7A3A,0x7B3E,0x7C3A,0x7D3E,0x7E3E,0x7F3A,0x8082,0x8186, + 0x8286,0x8382,0x8486,0x8582,0x8682,0x8786,0x888E,0x898A, + 0x8A9A,0x8B9E,0x8C9A,0x8D9E,0x8E9E,0x8F9A,0x9086,0x9182, + 0x9282,0x9386,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F, + 0x3A3F,0x3B3B,0x3C3F,0x3D3B,0x3E3B,0x3F3F,0x4003,0x4107, + 0x4207,0x4303,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B, + 0x4A1B,0x4B1F,0x4C1B,0x4D1F,0x4E1F,0x4F1B,0x5007,0x5103, + 0x5203,0x5307,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F, + 0x5A1F,0x5B1B,0x5C1F,0x5D1B,0x5E1B,0x5F1F,0x6027,0x6123, + 0x6223,0x6327,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F, + 0x6A3F,0x6B3B,0x6C3F,0x6D3B,0x6E3B,0x6F3F,0x7023,0x7127, + 0x7227,0x7323,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B, + 0x7A3B,0x7B3F,0x7C3B,0x7D3F,0x7E3F,0x7F3B,0x8083,0x8187, + 0x8287,0x8383,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B, + 0x8A9B,0x8B9F,0x8C9B,0x8D9F,0x8E9F,0x8F9B,0x9087,0x9183, + 0x9283,0x9387,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F, + 0x9A9F,0x9B9B,0x9C9F,0x9D9B,0x9E9B,0x9F9F,0xA0A7,0xA1A3, + 0xA2A3,0xA3A7,0xA4A3,0xA5A7,0xA6A7,0xA7A3,0xA8AB,0xA9AF, + 0xAABF,0xABBB,0xACBF,0xADBB,0xAEBB,0xAFBF,0xB0A3,0xB1A7, + 0xB2A7,0xB3A3,0xB4A7,0xB5A3,0xB6A3,0xB7A7,0xB8AF,0xB9AB, + 0xBABB,0xBBBF,0xBCBB,0xBDBF,0xBEBF,0xBFBB,0xC087,0xC183, + 0xC283,0xC387,0xC483,0xC587,0xC687,0xC783,0xC88B,0xC98F, + 0xCA9F,0xCB9B,0xCC9F,0xCD9B,0xCE9B,0xCF9F,0xD083,0xD187, + 0xD287,0xD383,0xD487,0xD583,0xD683,0xD787,0xD88F,0xD98B, + 0xDA9B,0xDB9F,0xDC9B,0xDD9F,0xDE9F,0xDF9B,0xE0A3,0xE1A7, + 0xE2A7,0xE3A3,0xE4A7,0xE5A3,0xE6A3,0xE7A7,0xE8AF,0xE9AB, + 0xEABB,0xEBBF,0xECBB,0xEDBF,0xEEBF,0xEFBB,0xF0A7,0xF1A3, + 0xF2A3,0xF3A7,0xF4A3,0xF5A7,0xF6A7,0xF7A3,0xF8AB,0xF9AF, + 0xFABF,0xFBBB,0xFCBF,0xFDBB,0xFEBB,0xFFBF,0x0047,0x0103, + 0x0203,0x0307,0x0403,0x0507,0x0607,0x0703,0x080B,0x090F, + 0x0A1F,0x0B1B,0x0C1F,0x0D1B,0x0E1B,0x0F1F,0x1003,0x1107, + 0x1207,0x1303,0x1407,0x1503,0x1603,0x1707,0x180F,0x190B, + 0x1A1B,0x1B1F,0x1C1B,0x1D1F,0x1E1F,0x1F1B,0x2023,0x2127, + 0x2227,0x2323,0x2427,0x2523,0x2623,0x2727,0x282F,0x292B, + 0x2A3B,0x2B3F,0x2C3B,0x2D3F,0x2E3F,0x2F3B,0x3027,0x3123, + 0x3223,0x3327,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F, + 0x3A3F,0x3B3B,0x3C3F,0x3D3B,0x3E3B,0x3F3F,0x4003,0x4107, + 0x4207,0x4303,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B, + 0x4A1B,0x4B1F,0x4C1B,0x4D1F,0x4E1F,0x4F1B,0x5007,0x5103, + 0x5203,0x5307,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F, + 0x5A1F,0x5B1B,0x5C1F,0x5D1B,0x5E1B,0x5F1F,0x6027,0x6123, + 0x6223,0x6327,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F, + 0x6A3F,0x6B3B,0x6C3F,0x6D3B,0x6E3B,0x6F3F,0x7023,0x7127, + 0x7227,0x7323,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B, + 0x7A3B,0x7B3F,0x7C3B,0x7D3F,0x7E3F,0x7F3B,0x8083,0x8187, + 0x8287,0x8383,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B, + 0x8A9B,0x8B9F,0x8C9B,0x8D9F,0x8E9F,0x8F9B,0x9087,0x9183, + 0x9283,0x9387,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F +}; diff --git a/MCUME_teensy/teensymsx/V9938.c b/MCUME_teensy/teensymsx/V9938.c new file mode 100644 index 0000000..3a3d186 --- /dev/null +++ b/MCUME_teensy/teensymsx/V9938.c @@ -0,0 +1,1058 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** V9938.c **/ +/** **/ +/** This file contains implementation for the V9938 special **/ +/** graphical operations. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/** **/ +/** Completely rewritten by Alex Wulms: **/ +/** - VDP Command execution 'in parallel' with CPU **/ +/** - Corrected behaviour of VDP commands **/ +/** - Made it easier to implement correct S7/8 mapping **/ +/** by concentrating VRAM access in one single place **/ +/** - Made use of the 'in parallel' VDP command exec **/ +/** and correct timing. You must call the function **/ +/** LoopVDP() from LoopZ80 in MSX.c. You must call it **/ +/** exactly 256 times per screen refresh. **/ +/** Started on : 11-11-1999 **/ +/** Beta release 1 on: 9-12-1999 **/ +/** Beta release 2 on: 20-01-2000 **/ +/** - Corrected behaviour of VRM <-> Z80 transfer **/ +/** - Improved performance of the code **/ +/** Public release 1.0: 20-04-2000 **/ +/*************************************************************/ +#include "V9938.h" +#include + +#include "shared.h" + + +/** INLINE ***************************************************/ +/** Different compilers inline C functions differently. **/ +/*************************************************************/ +#ifdef __GNUC__ +#define INLINE inline +#else +#define INLINE static +#endif + +/*************************************************************/ +/** Other usefull defines **/ +/*************************************************************/ +#define VDP_VRMP5(X, Y) (VRAM + ((Y&1023)<<7) + ((X&255)>>1)) +#define VDP_VRMP6(X, Y) (VRAM + ((Y&1023)<<7) + ((X&511)>>2)) +#define VDP_VRMP7(X, Y) (VRAM + ((Y&511)<<8) + ((X&511)>>1)) +#define VDP_VRMP8(X, Y) (VRAM + ((Y&511)<<8) + (X&255)) + +#define VDP_VRMP(M, X, Y) VDPVRMP(M, X, Y) +#define VDP_POINT(M, X, Y) VDPpoint(M, X, Y) +#define VDP_PSET(M, X, Y, C, O) VDPpset(M, X, Y, C, O) + +#define CM_ABRT 0x0 +#define CM_POINT 0x4 +#define CM_PSET 0x5 +#define CM_SRCH 0x6 +#define CM_LINE 0x7 +#define CM_LMMV 0x8 +#define CM_LMMM 0x9 +#define CM_LMCM 0xA +#define CM_LMMC 0xB +#define CM_HMMV 0xC +#define CM_HMMM 0xD +#define CM_YMMM 0xE +#define CM_HMMC 0xF + +/*************************************************************/ +/* Many VDP commands are executed in some kind of loop but */ +/* essentially, there are only a few basic loop structures */ +/* that are re-used. We define the loop structures that are */ +/* re-used here so that they have to be entered only once */ +/*************************************************************/ +#define pre_loop \ + while ((cnt-=delta) > 0) { + +/* Loop over DX, DY */ +#define post__x_y(MX) \ + if (!--ANX || ((ADX+=TX)&MX)) { \ + if (!(--NY&1023) || (DY+=TY)==-1) \ + break; \ + else { \ + ADX=DX; \ + ANX=NX; \ + } \ + } \ + } + +/* Loop over DX, SY, DY */ +#define post__xyy(MX) \ + if ((ADX+=TX)&MX) { \ + if (!(--NY&1023) || (SY+=TY)==-1 || (DY+=TY)==-1) \ + break; \ + else \ + ADX=DX; \ + } \ + } + +/* Loop over SX, DX, SY, DY */ +#define post_xxyy(MX) \ + if (!--ANX || ((ASX+=TX)&MX) || ((ADX+=TX)&MX)) { \ + if (!(--NY&1023) || (SY+=TY)==-1 || (DY+=TY)==-1) \ + break; \ + else { \ + ASX=SX; \ + ADX=DX; \ + ANX=NX; \ + } \ + } \ + } + +/*************************************************************/ +/** Structures and stuff **/ +/*************************************************************/ +static struct { + int SX,SY; + int DX,DY; + int TX,TY; + int NX,NY; + int MX; + int ASX,ADX,ANX; + byte CL; + byte LO; + byte CM; +} MMC; + +/*************************************************************/ +/** Function prototypes **/ +/*************************************************************/ +static byte *VDPVRMP(register byte M, register int X, register int Y); + +static byte VDPpoint5(register int SX, register int SY); +static byte VDPpoint6(register int SX, register int SY); +static byte VDPpoint7(register int SX, register int SY); +static byte VDPpoint8(register int SX, register int SY); + +static byte VDPpoint(register byte SM, + register int SX, register int SY); + +static void VDPpsetlowlevel(register byte *P, register byte CL, + register byte M, register byte OP); + +static void VDPpset5(register int DX, register int DY, + register byte CL, register byte OP); +static void VDPpset6(register int DX, register int DY, + register byte CL, register byte OP); +static void VDPpset7(register int DX, register int DY, + register byte CL, register byte OP); +static void VDPpset8(register int DX, register int DY, + register byte CL, register byte OP); + +static void VDPpset(register byte SM, + register int DX, register int DY, + register byte CL, register byte OP); + +static int GetVdpTimingValue(register int *); + +static void SrchEngine(void); +static void LineEngine(void); +static void LmmvEngine(void); +static void LmmmEngine(void); +static void LmcmEngine(void); +static void LmmcEngine(void); +static void HmmvEngine(void); +static void HmmmEngine(void); +static void YmmmEngine(void); +static void HmmcEngine(void); + +void ReportVdpCommand(register byte Op); + +/*************************************************************/ +/** Variables visible only in this module **/ +/*************************************************************/ +static byte Mask[4] = { 0x0F,0x03,0x0F,0xFF }; +static int PPB[4] = { 2,4,2,1 }; +static int PPL[4] = { 256,512,512,256 }; +static int VdpOpsCnt=1; +static void (*VdpEngine)(void)=0; + + /* SprOn SprOn SprOf SprOf */ + /* ScrOf ScrOn ScrOf ScrOn */ +static int srch_timing[8]={ 818, 1025, 818, 830, /* ntsc */ + 696, 854, 696, 684 }; /* pal */ +static int line_timing[8]={ 1063, 1259, 1063, 1161, + 904, 1026, 904, 953 }; +static int hmmv_timing[8]={ 439, 549, 439, 531, + 366, 439, 366, 427 }; +static int lmmv_timing[8]={ 873, 1135, 873, 1056, + 732, 909, 732, 854 }; +static int ymmm_timing[8]={ 586, 952, 586, 610, + 488, 720, 488, 500 }; +static int hmmm_timing[8]={ 818, 1111, 818, 854, + 684, 879, 684, 708 }; +static int lmmm_timing[8]={ 1160, 1599, 1160, 1172, + 964, 1257, 964, 977 }; + + +/** VDPVRMP() **********************************************/ +/** Calculate addr of a pixel in vram **/ +/*************************************************************/ +INLINE byte *VDPVRMP(byte M,int X,int Y) +{ + switch(M) + { + case 0: return VDP_VRMP5(X,Y); + case 1: return VDP_VRMP6(X,Y); + case 2: return VDP_VRMP7(X,Y); + case 3: return VDP_VRMP8(X,Y); + } + + return(VRAM); +} + +/** VDPpoint5() ***********************************************/ +/** Get a pixel on screen 5 **/ +/*************************************************************/ +INLINE byte VDPpoint5(int SX, int SY) +{ + return (*VDP_VRMP5(SX, SY) >> + (((~SX)&1)<<2) + )&15; +} + +/** VDPpoint6() ***********************************************/ +/** Get a pixel on screen 6 **/ +/*************************************************************/ +INLINE byte VDPpoint6(int SX, int SY) +{ + return (*VDP_VRMP6(SX, SY) >> + (((~SX)&3)<<1) + )&3; +} + +/** VDPpoint7() ***********************************************/ +/** Get a pixel on screen 7 **/ +/*************************************************************/ +INLINE byte VDPpoint7(int SX, int SY) +{ + return (*VDP_VRMP7(SX, SY) >> + (((~SX)&1)<<2) + )&15; +} + +/** VDPpoint8() ***********************************************/ +/** Get a pixel on screen 8 **/ +/*************************************************************/ +INLINE byte VDPpoint8(int SX, int SY) +{ + return *VDP_VRMP8(SX, SY); +} + +/** VDPpoint() ************************************************/ +/** Get a pixel on a screen **/ +/*************************************************************/ +INLINE byte VDPpoint(byte SM, int SX, int SY) +{ + switch(SM) + { + case 0: return VDPpoint5(SX,SY); + case 1: return VDPpoint6(SX,SY); + case 2: return VDPpoint7(SX,SY); + case 3: return VDPpoint8(SX,SY); + } + + return(0); +} + +/** VDPpsetlowlevel() ****************************************/ +/** Low level function to set a pixel on a screen **/ +/** Make it inline to make it fast **/ +/*************************************************************/ +INLINE void VDPpsetlowlevel(byte *P, byte CL, byte M, byte OP) +{ + switch (OP) + { + case 0: *P = (*P & M) | CL; break; + case 1: *P = *P & (CL | M); break; + case 2: *P |= CL; break; + case 3: *P ^= CL; break; + case 4: *P = (*P & M) | ~(CL | M); break; + case 8: if (CL) *P = (*P & M) | CL; break; + case 9: if (CL) *P = *P & (CL | M); break; + case 10: if (CL) *P |= CL; break; + case 11: if (CL) *P ^= CL; break; + case 12: if (CL) *P = (*P & M) | ~(CL|M); break; + } +} + +/** VDPpset5() ***********************************************/ +/** Set a pixel on screen 5 **/ +/*************************************************************/ +INLINE void VDPpset5(int DX, int DY, byte CL, byte OP) +{ + register byte SH = ((~DX)&1)<<2; + + VDPpsetlowlevel(VDP_VRMP5(DX, DY), + CL << SH, ~(15<>6)&1)|(VDP[8]&2)|((VDP[9]<<1)&4)]); +} + +/** SrchEgine()** ********************************************/ +/** Search a dot **/ +/*************************************************************/ +void SrchEngine(void) +{ + register int SX=MMC.SX; + register int SY=MMC.SY; + register int TX=MMC.TX; + register int ANX=MMC.ANX; + register byte CL=MMC.CL; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(srch_timing); + cnt = VdpOpsCnt; + +#define pre_srch \ + pre_loop \ + if (( +#define post_srch(MX) \ + ==CL) ^ANX) { \ + VDPStatus[2]|=0x10; /* Border detected */ \ + break; \ + } \ + if ((SX+=TX) & MX) { \ + VDPStatus[2]&=0xEF; /* Border not detected */ \ + break; \ + } \ + } + + switch (ScrMode) { + case 5: pre_srch VDPpoint5(SX, SY) post_srch(256) + break; + case 6: pre_srch VDPpoint6(SX, SY) post_srch(512) + break; + case 7: pre_srch VDPpoint7(SX, SY) post_srch(512) + break; + case 8: pre_srch VDPpoint8(SX, SY) post_srch(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + /* Update SX in VDP registers */ + VDPStatus[8]=SX&0xFF; + VDPStatus[9]=(SX>>8)|0xFE; + } + else { + MMC.SX=SX; + } +} + +/** LineEgine()** ********************************************/ +/** Draw a line **/ +/*************************************************************/ +void LineEngine(void) +{ + register int DX=MMC.DX; + register int DY=MMC.DY; + register int TX=MMC.TX; + register int TY=MMC.TY; + register int NX=MMC.NX; + register int NY=MMC.NY; + register int ASX=MMC.ASX; + register int ADX=MMC.ADX; + register byte CL=MMC.CL; + register byte LO=MMC.LO; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(line_timing); + cnt = VdpOpsCnt; + +#define post_linexmaj(MX) \ + DX+=TX; \ + if ((ASX-=NY)<0) { \ + ASX+=NX; \ + DY+=TY; \ + } \ + ASX&=1023; /* Mask to 10 bits range */ \ + if (ADX++==NX || (DX&MX)) \ + break; \ + } +#define post_lineymaj(MX) \ + DY+=TY; \ + if ((ASX-=NY)<0) { \ + ASX+=NX; \ + DX+=TX; \ + } \ + ASX&=1023; /* Mask to 10 bits range */ \ + if (ADX++==NX || (DX&MX)) \ + break; \ + } + + if ((VDP[45]&0x01)==0) + /* X-Axis is major direction */ + switch (ScrMode) { + case 5: pre_loop VDPpset5(DX, DY, CL, LO); post_linexmaj(256) + break; + case 6: pre_loop VDPpset6(DX, DY, CL, LO); post_linexmaj(512) + break; + case 7: pre_loop VDPpset7(DX, DY, CL, LO); post_linexmaj(512) + break; + case 8: pre_loop VDPpset8(DX, DY, CL, LO); post_linexmaj(256) + break; + } + else + /* Y-Axis is major direction */ + switch (ScrMode) { + case 5: pre_loop VDPpset5(DX, DY, CL, LO); post_lineymaj(256) + break; + case 6: pre_loop VDPpset6(DX, DY, CL, LO); post_lineymaj(512) + break; + case 7: pre_loop VDPpset7(DX, DY, CL, LO); post_lineymaj(512) + break; + case 8: pre_loop VDPpset8(DX, DY, CL, LO); post_lineymaj(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + VDP[38]=DY & 0xFF; + VDP[39]=(DY>>8) & 0x03; + } + else { + MMC.DX=DX; + MMC.DY=DY; + MMC.ASX=ASX; + MMC.ADX=ADX; + } +} + +/** LmmvEngine() *********************************************/ +/** VDP -> Vram **/ +/*************************************************************/ +void LmmvEngine(void) +{ + register int DX=MMC.DX; + register int DY=MMC.DY; + register int TX=MMC.TX; + register int TY=MMC.TY; + register int NX=MMC.NX; + register int NY=MMC.NY; + register int ADX=MMC.ADX; + register int ANX=MMC.ANX; + register byte CL=MMC.CL; + register byte LO=MMC.LO; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(lmmv_timing); + cnt = VdpOpsCnt; + + switch (ScrMode) { + case 5: pre_loop VDPpset5(ADX, DY, CL, LO); post__x_y(256) + break; + case 6: pre_loop VDPpset6(ADX, DY, CL, LO); post__x_y(512) + break; + case 7: pre_loop VDPpset7(ADX, DY, CL, LO); post__x_y(512) + break; + case 8: pre_loop VDPpset8(ADX, DY, CL, LO); post__x_y(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!NY) + DY+=TY; + VDP[38]=DY & 0xFF; + VDP[39]=(DY>>8) & 0x03; + VDP[42]=NY & 0xFF; + VDP[43]=(NY>>8) & 0x03; + } + else { + MMC.DY=DY; + MMC.NY=NY; + MMC.ANX=ANX; + MMC.ADX=ADX; + } +} + +/** LmmmEngine() *********************************************/ +/** Vram -> Vram **/ +/*************************************************************/ +void LmmmEngine(void) +{ + register int SX=MMC.SX; + register int SY=MMC.SY; + register int DX=MMC.DX; + register int DY=MMC.DY; + register int TX=MMC.TX; + register int TY=MMC.TY; + register int NX=MMC.NX; + register int NY=MMC.NY; + register int ASX=MMC.ASX; + register int ADX=MMC.ADX; + register int ANX=MMC.ANX; + register byte LO=MMC.LO; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(lmmm_timing); + cnt = VdpOpsCnt; + + switch (ScrMode) { + case 5: pre_loop VDPpset5(ADX, DY, VDPpoint5(ASX, SY), LO); post_xxyy(256) + break; + case 6: pre_loop VDPpset6(ADX, DY, VDPpoint6(ASX, SY), LO); post_xxyy(512) + break; + case 7: pre_loop VDPpset7(ADX, DY, VDPpoint7(ASX, SY), LO); post_xxyy(512) + break; + case 8: pre_loop VDPpset8(ADX, DY, VDPpoint8(ASX, SY), LO); post_xxyy(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!NY) { + SY+=TY; + DY+=TY; + } + else + if (SY==-1) + DY+=TY; + VDP[42]=NY & 0xFF; + VDP[43]=(NY>>8) & 0x03; + VDP[34]=SY & 0xFF; + VDP[35]=(SY>>8) & 0x03; + VDP[38]=DY & 0xFF; + VDP[39]=(DY>>8) & 0x03; + } + else { + MMC.SY=SY; + MMC.DY=DY; + MMC.NY=NY; + MMC.ANX=ANX; + MMC.ASX=ASX; + MMC.ADX=ADX; + } +} + +/** LmcmEngine() *********************************************/ +/** Vram -> CPU **/ +/*************************************************************/ +void LmcmEngine() +{ + if ((VDPStatus[2]&0x80)!=0x80) { + + VDPStatus[7]=VDP[44]=VDP_POINT(ScrMode-5, MMC.ASX, MMC.SY); + VdpOpsCnt-=GetVdpTimingValue(lmmv_timing); + VDPStatus[2]|=0x80; + + if (!--MMC.ANX || ((MMC.ASX+=MMC.TX)&MMC.MX)) { + if (!(--MMC.NY & 1023) || (MMC.SY+=MMC.TY)==-1) { + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!MMC.NY) + MMC.DY+=MMC.TY; + VDP[42]=MMC.NY & 0xFF; + VDP[43]=(MMC.NY>>8) & 0x03; + VDP[34]=MMC.SY & 0xFF; + VDP[35]=(MMC.SY>>8) & 0x03; + } + else { + MMC.ASX=MMC.SX; + MMC.ANX=MMC.NX; + } + } + } +} + +/** LmmcEngine() *********************************************/ +/** CPU -> Vram **/ +/*************************************************************/ +void LmmcEngine(void) +{ + if ((VDPStatus[2]&0x80)!=0x80) { + register byte SM=ScrMode-5; + + VDPStatus[7]=VDP[44]&=Mask[SM]; + VDP_PSET(SM, MMC.ADX, MMC.DY, VDP[44], MMC.LO); + VdpOpsCnt-=GetVdpTimingValue(lmmv_timing); + VDPStatus[2]|=0x80; + + if (!--MMC.ANX || ((MMC.ADX+=MMC.TX)&MMC.MX)) { + if (!(--MMC.NY&1023) || (MMC.DY+=MMC.TY)==-1) { + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!MMC.NY) + MMC.DY+=MMC.TY; + VDP[42]=MMC.NY & 0xFF; + VDP[43]=(MMC.NY>>8) & 0x03; + VDP[38]=MMC.DY & 0xFF; + VDP[39]=(MMC.DY>>8) & 0x03; + } + else { + MMC.ADX=MMC.DX; + MMC.ANX=MMC.NX; + } + } + } +} + +/** HmmvEngine() *********************************************/ +/** VDP --> Vram **/ +/*************************************************************/ +void HmmvEngine(void) +{ + register int DX=MMC.DX; + register int DY=MMC.DY; + register int TX=MMC.TX; + register int TY=MMC.TY; + register int NX=MMC.NX; + register int NY=MMC.NY; + register int ADX=MMC.ADX; + register int ANX=MMC.ANX; + register byte CL=MMC.CL; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(hmmv_timing); + cnt = VdpOpsCnt; + + switch (ScrMode) { + case 5: pre_loop *VDP_VRMP5(ADX, DY) = CL; post__x_y(256) + break; + case 6: pre_loop *VDP_VRMP6(ADX, DY) = CL; post__x_y(512) + break; + case 7: pre_loop *VDP_VRMP7(ADX, DY) = CL; post__x_y(512) + break; + case 8: pre_loop *VDP_VRMP8(ADX, DY) = CL; post__x_y(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!NY) + DY+=TY; + VDP[42]=NY & 0xFF; + VDP[43]=(NY>>8) & 0x03; + VDP[38]=DY & 0xFF; + VDP[39]=(DY>>8) & 0x03; + } + else { + MMC.DY=DY; + MMC.NY=NY; + MMC.ANX=ANX; + MMC.ADX=ADX; + } +} + +/** HmmmEngine() *********************************************/ +/** Vram -> Vram **/ +/*************************************************************/ +void HmmmEngine(void) +{ + register int SX=MMC.SX; + register int SY=MMC.SY; + register int DX=MMC.DX; + register int DY=MMC.DY; + register int TX=MMC.TX; + register int TY=MMC.TY; + register int NX=MMC.NX; + register int NY=MMC.NY; + register int ASX=MMC.ASX; + register int ADX=MMC.ADX; + register int ANX=MMC.ANX; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(hmmm_timing); + cnt = VdpOpsCnt; + + switch (ScrMode) { + case 5: pre_loop *VDP_VRMP5(ADX, DY) = *VDP_VRMP5(ASX, SY); post_xxyy(256) + break; + case 6: pre_loop *VDP_VRMP6(ADX, DY) = *VDP_VRMP6(ASX, SY); post_xxyy(512) + break; + case 7: pre_loop *VDP_VRMP7(ADX, DY) = *VDP_VRMP7(ASX, SY); post_xxyy(512) + break; + case 8: pre_loop *VDP_VRMP8(ADX, DY) = *VDP_VRMP8(ASX, SY); post_xxyy(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!NY) { + SY+=TY; + DY+=TY; + } + else + if (SY==-1) + DY+=TY; + VDP[42]=NY & 0xFF; + VDP[43]=(NY>>8) & 0x03; + VDP[34]=SY & 0xFF; + VDP[35]=(SY>>8) & 0x03; + VDP[38]=DY & 0xFF; + VDP[39]=(DY>>8) & 0x03; + } + else { + MMC.SY=SY; + MMC.DY=DY; + MMC.NY=NY; + MMC.ANX=ANX; + MMC.ASX=ASX; + MMC.ADX=ADX; + } +} + +/** YmmmEngine() *********************************************/ +/** Vram -> Vram **/ +/*************************************************************/ +void YmmmEngine(void) +{ + register int SY=MMC.SY; + register int DX=MMC.DX; + register int DY=MMC.DY; + register int TX=MMC.TX; + register int TY=MMC.TY; + register int NY=MMC.NY; + register int ADX=MMC.ADX; + register int cnt; + register int delta; + + delta = GetVdpTimingValue(ymmm_timing); + cnt = VdpOpsCnt; + + switch (ScrMode) { + case 5: pre_loop *VDP_VRMP5(ADX, DY) = *VDP_VRMP5(ADX, SY); post__xyy(256) + break; + case 6: pre_loop *VDP_VRMP6(ADX, DY) = *VDP_VRMP6(ADX, SY); post__xyy(512) + break; + case 7: pre_loop *VDP_VRMP7(ADX, DY) = *VDP_VRMP7(ADX, SY); post__xyy(512) + break; + case 8: pre_loop *VDP_VRMP8(ADX, DY) = *VDP_VRMP8(ADX, SY); post__xyy(256) + break; + } + + if ((VdpOpsCnt=cnt)>0) { + /* Command execution done */ + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!NY) { + SY+=TY; + DY+=TY; + } + else + if (SY==-1) + DY+=TY; + VDP[42]=NY & 0xFF; + VDP[43]=(NY>>8) & 0x03; + VDP[34]=SY & 0xFF; + VDP[35]=(SY>>8) & 0x03; + VDP[38]=DY & 0xFF; + VDP[39]=(DY>>8) & 0x03; + } + else { + MMC.SY=SY; + MMC.DY=DY; + MMC.NY=NY; + MMC.ADX=ADX; + } +} + +/** HmmcEngine() *********************************************/ +/** CPU -> Vram **/ +/*************************************************************/ +void HmmcEngine(void) +{ + if ((VDPStatus[2]&0x80)!=0x80) { + + *VDP_VRMP(ScrMode-5, MMC.ADX, MMC.DY)=VDP[44]; + VdpOpsCnt-=GetVdpTimingValue(hmmv_timing); + VDPStatus[2]|=0x80; + + if (!--MMC.ANX || ((MMC.ADX+=MMC.TX)&MMC.MX)) { + if (!(--MMC.NY&1023) || (MMC.DY+=MMC.TY)==-1) { + VDPStatus[2]&=0xFE; + VdpEngine=0; + if (!MMC.NY) + MMC.DY+=MMC.TY; + VDP[42]=MMC.NY & 0xFF; + VDP[43]=(MMC.NY>>8) & 0x03; + VDP[38]=MMC.DY & 0xFF; + VDP[39]=(MMC.DY>>8) & 0x03; + } + else { + MMC.ADX=MMC.DX; + MMC.ANX=MMC.NX; + } + } + } +} + +/** VDPWrite() ***********************************************/ +/** Use this function to transfer pixel(s) from CPU to VDP. **/ +/*************************************************************/ +void VDPWrite(byte V) +{ + VDPStatus[2]&=0x7F; + VDPStatus[7]=VDP[44]=V; + if(VdpEngine&&(VdpOpsCnt>0)) VdpEngine(); +} + +/** VDPRead() ************************************************/ +/** Use this function to transfer pixel(s) from VDP to CPU. **/ +/*************************************************************/ +byte VDPRead(void) +{ + VDPStatus[2]&=0x7F; + if(VdpEngine&&(VdpOpsCnt>0)) VdpEngine(); + return(VDP[44]); +} + +/** ReportVdpCommand() ***************************************/ +/** Report VDP Command to be executed **/ +/*************************************************************/ +void ReportVdpCommand(register byte Op) +{ + static char *Ops[16] = + { + "SET ","AND ","OR ","XOR ","NOT ","NOP ","NOP ","NOP ", + "TSET","TAND","TOR ","TXOR","TNOT","NOP ","NOP ","NOP " + }; + static char *Commands[16] = + { + " ABRT"," ????"," ????"," ????","POINT"," PSET"," SRCH"," LINE", + " LMMV"," LMMM"," LMCM"," LMMC"," HMMV"," HMMM"," YMMM"," HMMC" + }; + register byte CL, CM, LO; + register int SX,SY, DX,DY, NX,NY; + + /* Fetch arguments */ + CL = VDP[44]; + SX = (VDP[32]+((int)VDP[33]<<8)) & 511; + SY = (VDP[34]+((int)VDP[35]<<8)) & 1023; + DX = (VDP[36]+((int)VDP[37]<<8)) & 511; + DY = (VDP[38]+((int)VDP[39]<<8)) & 1023; + NX = (VDP[40]+((int)VDP[41]<<8)) & 1023; + NY = (VDP[42]+((int)VDP[43]<<8)) & 1023; + CM = Op>>4; + LO = Op&0x0F; + + printf("V9938: Opcode %02Xh %s-%s (%d,%d)->(%d,%d),%d [%d,%d]%s\n", + Op, Commands[CM], Ops[LO], + SX,SY, DX,DY, CL, VDP[45]&0x04? -NX:NX, + VDP[45]&0x08? -NY:NY, + VDP[45]&0x70? " on ExtVRAM":"" + ); +} + +/** VDPDraw() ************************************************/ +/** Perform a given V9938 operation Op. **/ +/*************************************************************/ +byte VDPDraw(byte Op) +{ + register int SM; + + /* V9938 ops only work in SCREENs 5-8 */ + if (ScrMode<5) + return(0); + + SM = ScrMode-5; /* Screen mode index 0..3 */ + + MMC.CM = Op>>4; + if ((MMC.CM & 0x0C) != 0x0C && MMC.CM != 0) + /* Dot operation: use only relevant bits of color */ + VDPStatus[7]=(VDP[44]&=Mask[SM]); + + if(Verbose&0x02) + ReportVdpCommand(Op); + + switch(Op>>4) { + case CM_ABRT: + VDPStatus[2]&=0xFE; + VdpEngine=0; + return 1; + case CM_POINT: + VDPStatus[2]&=0xFE; + VdpEngine=0; + VDPStatus[7]=VDP[44]= + VDP_POINT(SM, VDP[32]+((int)VDP[33]<<8), + VDP[34]+((int)VDP[35]<<8)); + return 1; + case CM_PSET: + VDPStatus[2]&=0xFE; + VdpEngine=0; + VDP_PSET(SM, + VDP[36]+((int)VDP[37]<<8), + VDP[38]+((int)VDP[39]<<8), + VDP[44], + Op&0x0F); + return 1; + case CM_SRCH: + VdpEngine=SrchEngine; + break; + case CM_LINE: + VdpEngine=LineEngine; + break; + case CM_LMMV: + VdpEngine=LmmvEngine; + break; + case CM_LMMM: + VdpEngine=LmmmEngine; + break; + case CM_LMCM: + VdpEngine=LmcmEngine; + break; + case CM_LMMC: + VdpEngine=LmmcEngine; + break; + case CM_HMMV: + VdpEngine=HmmvEngine; + break; + case CM_HMMM: + VdpEngine=HmmmEngine; + break; + case CM_YMMM: + VdpEngine=YmmmEngine; + break; + case CM_HMMC: + VdpEngine=HmmcEngine; + break; + default: + if(Verbose&0x02) printf("V9938: Unrecognized opcode %02Xh\n",Op); + return(0); + } + + /* Fetch unconditional arguments */ + MMC.SX = (VDP[32]+((int)VDP[33]<<8)) & 511; + MMC.SY = (VDP[34]+((int)VDP[35]<<8)) & 1023; + MMC.DX = (VDP[36]+((int)VDP[37]<<8)) & 511; + MMC.DY = (VDP[38]+((int)VDP[39]<<8)) & 1023; + MMC.NY = (VDP[42]+((int)VDP[43]<<8)) & 1023; + MMC.TY = VDP[45]&0x08? -1:1; + MMC.MX = PPL[SM]; + MMC.CL = VDP[44]; + MMC.LO = Op&0x0F; + + /* Argument depends on byte or dot operation */ + if ((MMC.CM & 0x0C) == 0x0C) { + MMC.TX = VDP[45]&0x04? -PPB[SM]:PPB[SM]; + MMC.NX = ((VDP[40]+((int)VDP[41]<<8)) & 1023)/PPB[SM]; + } + else { + MMC.TX = VDP[45]&0x04? -1:1; + MMC.NX = (VDP[40]+((int)VDP[41]<<8)) & 1023; + } + + /* X loop variables are treated specially for LINE command */ + if (MMC.CM == CM_LINE) { + MMC.ASX=((MMC.NX-1)>>1); + MMC.ADX=0; + } + else { + MMC.ASX = MMC.SX; + MMC.ADX = MMC.DX; + } + + /* NX loop variable is treated specially for SRCH command */ + if (MMC.CM == CM_SRCH) + MMC.ANX=(VDP[45]&0x02)!=0; /* Do we look for "==" or "!="? */ + else + MMC.ANX = MMC.NX; + + /* Command execution started */ + VDPStatus[2]|=0x01; + + /* Start execution if we still have time slices */ + if(VdpEngine&&(VdpOpsCnt>0)) VdpEngine(); + + /* Operation successfull initiated */ + return(1); +} + +/** LoopVDP() ************************************************/ +/** Run X steps of active VDP command **/ +/*************************************************************/ +void LoopVDP(void) +{ + if(VdpOpsCnt<=0) + { + VdpOpsCnt+=12500; + if(VdpEngine&&(VdpOpsCnt>0)) VdpEngine(); + } + else + { + VdpOpsCnt=12500; + if(VdpEngine) VdpEngine(); + } +} + diff --git a/MCUME_teensy/teensymsx/V9938.h b/MCUME_teensy/teensymsx/V9938.h new file mode 100644 index 0000000..1f35c48 --- /dev/null +++ b/MCUME_teensy/teensymsx/V9938.h @@ -0,0 +1,38 @@ +/** fMSX: portable MSX emulator ******************************/ +/** **/ +/** V9938.h **/ +/** **/ +/** This file contains declarations for V9938 special **/ +/** graphical operations support implemented in V9938.c. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef V9938_H +#define V9938_H + +#include "MSX.h" + +/** VDPWrite() ***********************************************/ +/** Use this function to transfer pixel(s) from CPU to VDP. **/ +/*************************************************************/ +void VDPWrite(register byte V); + +/** VDPRead() ************************************************/ +/** Use this function to transfer pixel(s) from VDP to CPU. **/ +/*************************************************************/ +byte VDPRead(void); + +/** VDPDraw() ************************************************/ +/** Perform a given V9938 graphical operation. **/ +/*************************************************************/ +byte VDPDraw(register byte Op); + +/** LoopVDP() ************************************************/ +/** Perform a number of steps of the active operation **/ +/*************************************************************/ +void LoopVDP(void); + +#endif /* V9938_H */ diff --git a/MCUME_teensy/teensymsx/YM2413.c b/MCUME_teensy/teensymsx/YM2413.c new file mode 100644 index 0000000..39b33bf --- /dev/null +++ b/MCUME_teensy/teensymsx/YM2413.c @@ -0,0 +1,289 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** YM2413.c **/ +/** **/ +/** This file contains emulation for the OPLL sound chip **/ +/** produced by Yamaha (also see OPL2, OPL3, OPL4 chips). **/ +/** See YM2413.h for declarations. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ + +#include "YM2413.h" +#include "Sound.h" +#include +#include "arduinoproto.h" + +/** Patches2413() ********************************************/ +/** MIDI instruments corresponding to the OPLL patches. **/ +/*************************************************************/ +PROGMEM static const byte Patches2413[16] = +{ + /*** OPLL ***/ /*** MIDI ***/ + 90, /* Original */ /* User (Polysynth) */ + 40, /* Violin */ /* Violin */ + 27, /* Guitar */ /* Electric Guitar (clean) */ + 1, /* Piano */ /* Bright Acoustic Piano */ + 73, /* Flute */ /* Flute */ + 71, /* Clarinet */ /* Clarinet */ + 68, /* Oboe */ /* Oboe */ + 56, /* Trumpet */ /* Trumpet */ + 20, /* Organ */ /* Reed Organ */ + 58, /* Horn */ /* Tuba */ + 50, /* Synthesizer */ /* Synth Strings 1 */ + 6, /* Harpsichord */ /* Harpsichord */ + 11, /* Vibraphone */ /* Vibraphone */ + 38, /* Synth Bass */ /* Synth Bass 1 */ + 34, /* Wood Bass */ /* Electric Bass (pick) */ + 33 /* Elec Guitar */ /* Electric Bass (finger) */ +}; + +/** Drums2413() **********************************************/ +/** MIDI instruments corresponding to the OPLL drums. **/ +/*************************************************************/ +PROGMEM static const byte Drums2413[5] = +{ + /*** OPLL ***/ /*** MIDI ***/ + 42, /* High Hat */ /* Closed Hi Hat */ + 49, /* Top Cymbal */ /* Crash Cymbal 1 */ + 47, /* Tom-Tom */ /* Low-Mid Tom */ + 40, /* Snare Drum */ /* Electric Snare */ + 36 /* Bass Drum */ /* Bass Drum 1 */ +}; + +/** Synth2413() **********************************************/ +/** Synthesizer parameters corresponding to OPLL patches. **/ +/*************************************************************/ +PROGMEM static const byte Synth2413[19*16] = +{ + 0x49,0x4c,0x4c,0x32,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x61,0x61,0x1e,0x17,0xf0,0x7f,0x00,0x17, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x13,0x41,0x16,0x0e,0xfd,0xf4,0x23,0x23, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x03,0x01,0x9a,0x04,0xf3,0xf3,0x13,0xf3, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x11,0x61,0x0e,0x07,0xfa,0x64,0x70,0x17, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x22,0x21,0x1e,0x06,0xf0,0x76,0x00,0x28, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x21,0x22,0x16,0x05,0xf0,0x71,0x00,0x18, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x21,0x61,0x1d,0x07,0x82,0x80,0x17,0x17, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x23,0x21,0x2d,0x16,0x90,0x90,0x00,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x21,0x21,0x1b,0x06,0x64,0x65,0x10,0x17, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x21,0x21,0x0b,0x1a,0x85,0xa0,0x70,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x23,0x01,0x83,0x10,0xff,0xb4,0x10,0xf4, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x97,0xc1,0x20,0x07,0xff,0xf4,0x22,0x22, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x61,0x00,0x0c,0x05,0xc2,0xf6,0x40,0x44, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x01,0x56,0x03,0x94,0xc2,0x03,0x12, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x21,0x01,0x89,0x03,0xf1,0xe4,0xf0,0x23, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x07,0x21,0x14,0x00,0xee,0xf8,0xff,0xf8, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x31,0x00,0x00,0xf8,0xf7,0xf8,0xf7, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x25,0x11,0x00,0x00,0xf8,0xfa,0xf8,0x55, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +/** Reset2413() **********************************************/ +/** Reset the sound chip and use sound channels from the **/ +/** one given in First. **/ +/*************************************************************/ +void Reset2413(register YM2413 *D,int First) +{ + int J; + + /* All registers filled with 0x00 by default */ + memset(D->R,0x00,sizeof(D->R)); + + /* Set initial frequencies, volumes, and instruments */ + for(J=0;JFreq[J] = 0; + D->Volume[J] = 0; + D->R[J+0x30] = 0x0F; + } + + D->First = First; + D->Sync = YM2413_ASYNC; + D->Changed = 0x000; + D->PChanged = 0x000; + D->DChanged = 0x000; + D->Latch = 0; +} + +/** WrCtrl2413() *********************************************/ +/** Write a value V to the OPLL Control Port. **/ +/*************************************************************/ +void WrCtrl2413(register YM2413 *D,register byte V) +{ + D->Latch=V&0x3F; +} + +/** WrData2413() *********************************************/ +/** Write a value V to the OPLL Data Port. **/ +/*************************************************************/ +void WrData2413(register YM2413 *D,register byte V) +{ + Write2413(D,D->Latch,V); +} + +/** Write2413() **********************************************/ +/** Call this function to output a value V into the sound **/ +/** chip. **/ +/*************************************************************/ +void Write2413(register YM2413 *D,register byte R,register byte V) +{ + register byte C,Oct; + register int Frq; + + /* OPLL registers are 0..63 */ + R&=0x3F; + + /* Lowest 4 bits are channel number */ + C=R&0x0F; + + switch(R>>4) + { + case 0: + switch(C) + { + case 0x0E: + if(V==D->R[R]) return; + /* Keep all drums off when drum mode is off */ + if(!(V&0x20)) V&=0xE0; + /* Mark all activated drums as changed */ + D->DChanged|=(V^D->R[R])&0x1F; + /* If drum mode was turned on... */ + if((V^D->R[R])&V&0x20) + { + /* Turn off melodic channels 6,7,8 */ + D->Freq[6]=D->Freq[7]=D->Freq[8]=0; + /* Mark channels 6,7,8 as changed */ + D->Changed|=0x1C0; + } + /* Done */ + break; + } + break; + + case 1: + if((C>8)||(V==D->R[R])) return; + if(!YM2413_DRUMS(D)||(C<6)) + if(D->R[R+0x10]&0x10) + { + /* Set channel frequency */ + Oct=D->R[R+0x10]; + Frq=((int)(Oct&0x01)<<8)+V; + Oct=(Oct&0x0E)>>1; + D->Freq[C]=(3125*Frq*(1<>15; + + /* Mark channel as changed */ + D->Changed|=1<8) return; + if(!YM2413_DRUMS(D)||(C<6)) + { + /* Depending on whether channel is on/off... */ + if(!(V&0x10)) D->Freq[C]=0; + else + { + /* Set channel frequency */ + Frq=((int)(V&0x01)<<8)+D->R[R-0x10]; + Oct=(V&0x0E)>>1; + D->Freq[C]=(3125*Frq*(1<>15; + } + + /* Mark channel as changed */ + D->Changed|=1<8)||(V==D->R[R])) return; + /* Register any patch changes */ + if((V^D->R[R])&0xF0) D->PChanged|=1<R[R])&0x0F) + { + /* Set channel volume */ + D->Volume[C]=255*(~V&0x0F)/15; + /* Mark channel as changed */ + D->Changed|=1<DChanged|=0x10&D->R[0x0E];break; + case 7: D->DChanged|=0x09&D->R[0x0E];break; + case 8: D->DChanged|=0x06&D->R[0x0E];break; + } + /* Done */ + break; + } + + /* Write value into the register */ + D->R[R]=V; + + /* For asynchronous mode, make Sound() calls right away */ + if(!D->Sync&&(D->Changed||D->PChanged||D->DChanged)) + Sync2413(D,YM2413_FLUSH); +} + +/** Sync2413() ***********************************************/ +/** Flush all accumulated changes by issuing Sound() calls **/ +/** and set the synchronization on/off. The second argument **/ +/** should be YM2413_SYNC/YM2413_ASYNC to set/reset sync, **/ +/** or YM2413_FLUSH to leave sync mode as it is. **/ +/*************************************************************/ +void Sync2413(register YM2413 *D,register byte Sync) +{ + register int J,I; + + /* Change sync mode as requested */ + if(Sync!=YM2413_FLUSH) D->Sync=Sync; + + /* Convert channel instrument changes into SetSound() calls */ + for(J=0,I=D->PChanged;I&&(J>=1) + if(I&1) SetSound(J+D->First,SND_MIDI|Patches2413[D->R[J+0x30]>>4]); + + /* Convert channel freq/volume changes into Sound() calls */ + for(J=0,I=D->Changed;I&&(J>=1) + if(I&1) Sound(J+D->First,D->Freq[J],D->Volume[J]); + + /* If there were any changes to the drums... */ + I=D->DChanged; + J=D->R[0x0E]; + if(I) + { + /* Turn drums on/off as requested */ + if(I&0x01) Drum(DRM_MIDI|Drums2413[0],J&0x01? 255*(D->R[0x37]>>4)/15:0); + if(I&0x02) Drum(DRM_MIDI|Drums2413[1],J&0x02? 255*(D->R[0x38]&0x0F)/15:0); + if(I&0x04) Drum(DRM_MIDI|Drums2413[2],J&0x04? 255*(D->R[0x38]>>4)/15:0); + if(I&0x08) Drum(DRM_MIDI|Drums2413[3],J&0x08? 255*(D->R[0x37]&0x0F)/15:0); + if(I&0x10) Drum(DRM_MIDI|Drums2413[4],J&0x10? 255*(D->R[0x36]&0x0F)/15:0); + } + + D->Changed=D->PChanged=D->DChanged=0x000; +} diff --git a/MCUME_teensy/teensymsx/YM2413.h b/MCUME_teensy/teensymsx/YM2413.h new file mode 100644 index 0000000..ad3ea40 --- /dev/null +++ b/MCUME_teensy/teensymsx/YM2413.h @@ -0,0 +1,77 @@ +/** EMULib Emulation Library *********************************/ +/** **/ +/** YM2413.h **/ +/** **/ +/** This file contains emulation for the OPLL sound chip **/ +/** produced by Yamaha (also see OPL2, OPL3, OPL4 chips). **/ +/** See YM2413.h for the code. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1996-2003 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef YM2413_H +#define YM2413_H + +#define YM2413_BASE 3125 /* Base frequency for OPLL */ +#define YM2413_CHANNELS 9 /* 9 melodic channels */ + +#define YM2413_ASYNC 0 /* Asynchronous emulation */ +#define YM2413_SYNC 1 /* Synchronous emulation mode */ +#define YM2413_FLUSH 2 /* Flush buffers only */ + +#define YM2413_DRUMS(D) ((D)->R[0x0E]&0x20) + +#ifndef BYTE_TYPE_DEFINED +#define BYTE_TYPE_DEFINED +typedef unsigned char byte; +#endif + +/** YM2413 ***************************************************/ +/** This data structure stores OPLL state. **/ +/*************************************************************/ +typedef struct +{ + byte R[64]; /* OPLL register contents */ + int Freq[YM2413_CHANNELS]; /* Frequencies (0 for off) */ + int Volume[YM2413_CHANNELS]; /* Volumes (0..255) */ + int First; /* First used Sound() channel */ + int Changed; /* Bitmap of changed channels */ + int PChanged; /* Bitmap of changed patches */ + int DChanged; /* Bitmap of changed drums */ + byte Sync; /* YM2413_SYNC/YM2413_ASYNC */ + byte Latch; /* Latch for the register num */ +} YM2413; + +/** Reset2413() **********************************************/ +/** Reset the sound chip and use sound channels from the **/ +/** one given in First. **/ +/*************************************************************/ +void Reset2413(register YM2413 *D,int First); + +/** WrCtrl2413() *********************************************/ +/** Write a value V to the OPLL Control Port. **/ +/*************************************************************/ +void WrCtrl2413(register YM2413 *D,register byte V); + +/** WrData2413() *********************************************/ +/** Write a value V to the OPLL Data Port. **/ +/*************************************************************/ +void WrData2413(register YM2413 *D,register byte V); + +/** Write2413() **********************************************/ +/** Call this function to output a value V into given OPLL **/ +/** register R. **/ +/*************************************************************/ +void Write2413(register YM2413 *D,register byte R,register byte V); + +/** Sync2413() ***********************************************/ +/** Flush all accumulated changes by issuing Sound() calls **/ +/** and set the synchronization on/off. The second argument **/ +/** should be YM2413_SYNC/YM2413_ASYNC to set/reset sync, **/ +/** or YM2413_FLUSH to leave sync mode as it is. **/ +/*************************************************************/ +void Sync2413(register YM2413 *D,register byte Sync); + +#endif /* YM2413_H */ diff --git a/MCUME_teensy/teensymsx/Z80.c b/MCUME_teensy/teensymsx/Z80.c new file mode 100644 index 0000000..f9c1a86 --- /dev/null +++ b/MCUME_teensy/teensymsx/Z80.c @@ -0,0 +1,583 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** Z80.c **/ +/** **/ +/** This file contains implementation for Z80 CPU. Don't **/ +/** forget to provide RdZ80(), WrZ80(), InZ80(), OutZ80(), **/ +/** LoopZ80(), and PatchZ80() functions to accomodate the **/ +/** emulated machine's architecture. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#include "shared.h" // For endianess!!! + +#include "Z80.h" +#include "Tables.h" + + +/** INLINE ***************************************************/ +/** Different compilers inline C functions differently. **/ +/*************************************************************/ +#ifdef __GNUC__ +#define INLINE inline +#else +#define INLINE static +#endif + +/** System-Dependent Stuff ***********************************/ +/** This is system-dependent code put here to speed things **/ +/** up. It has to stay inlined to be fast. **/ +/*************************************************************/ +#ifdef COLEM +extern byte *RAM; +INLINE byte RdZ80(word A) { return(RAM[A]); } +#endif +#ifdef MG +extern byte *Page[]; +INLINE byte RdZ80(word A) { return(Page[A>>13][A&0x1FFF]); } +#endif +#ifdef FMSX +extern byte *RAM[],PSL[],SSLReg; +INLINE byte RdZ80(word A) +{ + if(A!=0xFFFF) return(RAM[A>>13][A&0x1FFF]); + else return((PSL[3]==3)? ~SSLReg:RAM[7][0x1FFF]); +} +#endif + +#define S(Fl) R->AF.B.l|=Fl +#define R(Fl) R->AF.B.l&=~(Fl) +#define FLAGS(Rg,Fl) R->AF.B.l=Fl|ZSTable[Rg] + +#define M_RLC(Rg) \ + R->AF.B.l=Rg>>7;Rg=(Rg<<1)|R->AF.B.l;R->AF.B.l|=PZSTable[Rg] +#define M_RRC(Rg) \ + R->AF.B.l=Rg&0x01;Rg=(Rg>>1)|(R->AF.B.l<<7);R->AF.B.l|=PZSTable[Rg] +#define M_RL(Rg) \ + if(Rg&0x80) \ + { \ + Rg=(Rg<<1)|(R->AF.B.l&C_FLAG); \ + R->AF.B.l=PZSTable[Rg]|C_FLAG; \ + } \ + else \ + { \ + Rg=(Rg<<1)|(R->AF.B.l&C_FLAG); \ + R->AF.B.l=PZSTable[Rg]; \ + } +#define M_RR(Rg) \ + if(Rg&0x01) \ + { \ + Rg=(Rg>>1)|(R->AF.B.l<<7); \ + R->AF.B.l=PZSTable[Rg]|C_FLAG; \ + } \ + else \ + { \ + Rg=(Rg>>1)|(R->AF.B.l<<7); \ + R->AF.B.l=PZSTable[Rg]; \ + } + +#define M_SLA(Rg) \ + R->AF.B.l=Rg>>7;Rg<<=1;R->AF.B.l|=PZSTable[Rg] +#define M_SRA(Rg) \ + R->AF.B.l=Rg&C_FLAG;Rg=(Rg>>1)|(Rg&0x80);R->AF.B.l|=PZSTable[Rg] + +#define M_SLL(Rg) \ + R->AF.B.l=Rg>>7;Rg=(Rg<<1)|0x01;R->AF.B.l|=PZSTable[Rg] +#define M_SRL(Rg) \ + R->AF.B.l=Rg&0x01;Rg>>=1;R->AF.B.l|=PZSTable[Rg] + +#define M_BIT(Bit,Rg) \ + R->AF.B.l=(R->AF.B.l&~(N_FLAG|Z_FLAG))|H_FLAG|(Rg&(1<Rg.B.l=RdZ80(R->SP.W++);R->Rg.B.h=RdZ80(R->SP.W++) +#define M_PUSH(Rg) \ + WrZ80(--R->SP.W,R->Rg.B.h);WrZ80(--R->SP.W,R->Rg.B.l) + +#define M_CALL \ + J.B.l=RdZ80(R->PC.W++);J.B.h=RdZ80(R->PC.W++); \ + WrZ80(--R->SP.W,R->PC.B.h);WrZ80(--R->SP.W,R->PC.B.l); \ + R->PC.W=J.W + +#define M_JP J.B.l=RdZ80(R->PC.W++);J.B.h=RdZ80(R->PC.W);R->PC.W=J.W +#define M_JR R->PC.W+=(offset)RdZ80(R->PC.W)+1 +#define M_RET R->PC.B.l=RdZ80(R->SP.W++);R->PC.B.h=RdZ80(R->SP.W++) + +#define M_RST(Ad) \ + WrZ80(--R->SP.W,R->PC.B.h);WrZ80(--R->SP.W,R->PC.B.l);R->PC.W=Ad + +#define M_LDWORD(Rg) \ + R->Rg.B.l=RdZ80(R->PC.W++);R->Rg.B.h=RdZ80(R->PC.W++) + +#define M_ADD(Rg) \ + J.W=R->AF.B.h+Rg; \ + R->AF.B.l= \ + (~(R->AF.B.h^Rg)&(Rg^J.B.l)&0x80? V_FLAG:0)| \ + J.B.h|ZSTable[J.B.l]| \ + ((R->AF.B.h^Rg^J.B.l)&H_FLAG); \ + R->AF.B.h=J.B.l + +#define M_SUB(Rg) \ + J.W=R->AF.B.h-Rg; \ + R->AF.B.l= \ + ((R->AF.B.h^Rg)&(R->AF.B.h^J.B.l)&0x80? V_FLAG:0)| \ + N_FLAG|-J.B.h|ZSTable[J.B.l]| \ + ((R->AF.B.h^Rg^J.B.l)&H_FLAG); \ + R->AF.B.h=J.B.l + +#define M_ADC(Rg) \ + J.W=R->AF.B.h+Rg+(R->AF.B.l&C_FLAG); \ + R->AF.B.l= \ + (~(R->AF.B.h^Rg)&(Rg^J.B.l)&0x80? V_FLAG:0)| \ + J.B.h|ZSTable[J.B.l]| \ + ((R->AF.B.h^Rg^J.B.l)&H_FLAG); \ + R->AF.B.h=J.B.l + +#define M_SBC(Rg) \ + J.W=R->AF.B.h-Rg-(R->AF.B.l&C_FLAG); \ + R->AF.B.l= \ + ((R->AF.B.h^Rg)&(R->AF.B.h^J.B.l)&0x80? V_FLAG:0)| \ + N_FLAG|-J.B.h|ZSTable[J.B.l]| \ + ((R->AF.B.h^Rg^J.B.l)&H_FLAG); \ + R->AF.B.h=J.B.l + +#define M_CP(Rg) \ + J.W=R->AF.B.h-Rg; \ + R->AF.B.l= \ + ((R->AF.B.h^Rg)&(R->AF.B.h^J.B.l)&0x80? V_FLAG:0)| \ + N_FLAG|-J.B.h|ZSTable[J.B.l]| \ + ((R->AF.B.h^Rg^J.B.l)&H_FLAG) + +#define M_AND(Rg) R->AF.B.h&=Rg;R->AF.B.l=H_FLAG|PZSTable[R->AF.B.h] +#define M_OR(Rg) R->AF.B.h|=Rg;R->AF.B.l=PZSTable[R->AF.B.h] +#define M_XOR(Rg) R->AF.B.h^=Rg;R->AF.B.l=PZSTable[R->AF.B.h] +#define M_IN(Rg) Rg=InZ80(R->BC.B.l);R->AF.B.l=PZSTable[Rg]|(R->AF.B.l&C_FLAG) + +#define M_INC(Rg) \ + Rg++; \ + R->AF.B.l= \ + (R->AF.B.l&C_FLAG)|ZSTable[Rg]| \ + (Rg==0x80? V_FLAG:0)|(Rg&0x0F? 0:H_FLAG) + +#define M_DEC(Rg) \ + Rg--; \ + R->AF.B.l= \ + N_FLAG|(R->AF.B.l&C_FLAG)|ZSTable[Rg]| \ + (Rg==0x7F? V_FLAG:0)|((Rg&0x0F)==0x0F? H_FLAG:0) + +#define M_ADDW(Rg1,Rg2) \ + J.W=(R->Rg1.W+R->Rg2.W)&0xFFFF; \ + R->AF.B.l= \ + (R->AF.B.l&~(H_FLAG|N_FLAG|C_FLAG))| \ + ((R->Rg1.W^R->Rg2.W^J.W)&0x1000? H_FLAG:0)| \ + (((long)R->Rg1.W+(long)R->Rg2.W)&0x10000? C_FLAG:0); \ + R->Rg1.W=J.W + +#define M_ADCW(Rg) \ + I=R->AF.B.l&C_FLAG;J.W=(R->HL.W+R->Rg.W+I)&0xFFFF; \ + R->AF.B.l= \ + (((long)R->HL.W+(long)R->Rg.W+(long)I)&0x10000? C_FLAG:0)| \ + (~(R->HL.W^R->Rg.W)&(R->Rg.W^J.W)&0x8000? V_FLAG:0)| \ + ((R->HL.W^R->Rg.W^J.W)&0x1000? H_FLAG:0)| \ + (J.W? 0:Z_FLAG)|(J.B.h&S_FLAG); \ + R->HL.W=J.W + +#define M_SBCW(Rg) \ + I=R->AF.B.l&C_FLAG;J.W=(R->HL.W-R->Rg.W-I)&0xFFFF; \ + R->AF.B.l= \ + N_FLAG| \ + (((long)R->HL.W-(long)R->Rg.W-(long)I)&0x10000? C_FLAG:0)| \ + ((R->HL.W^R->Rg.W)&(R->HL.W^J.W)&0x8000? V_FLAG:0)| \ + ((R->HL.W^R->Rg.W^J.W)&0x1000? H_FLAG:0)| \ + (J.W? 0:Z_FLAG)|(J.B.h&S_FLAG); \ + R->HL.W=J.W + +enum Codes +{ + NOP,LD_BC_WORD,LD_xBC_A,INC_BC,INC_B,DEC_B,LD_B_BYTE,RLCA, + EX_AF_AF,ADD_HL_BC,LD_A_xBC,DEC_BC,INC_C,DEC_C,LD_C_BYTE,RRCA, + DJNZ,LD_DE_WORD,LD_xDE_A,INC_DE,INC_D,DEC_D,LD_D_BYTE,RLA, + JR,ADD_HL_DE,LD_A_xDE,DEC_DE,INC_E,DEC_E,LD_E_BYTE,RRA, + JR_NZ,LD_HL_WORD,LD_xWORD_HL,INC_HL,INC_H,DEC_H,LD_H_BYTE,DAA, + JR_Z,ADD_HL_HL,LD_HL_xWORD,DEC_HL,INC_L,DEC_L,LD_L_BYTE,CPL, + JR_NC,LD_SP_WORD,LD_xWORD_A,INC_SP,INC_xHL,DEC_xHL,LD_xHL_BYTE,SCF, + JR_C,ADD_HL_SP,LD_A_xWORD,DEC_SP,INC_A,DEC_A,LD_A_BYTE,CCF, + LD_B_B,LD_B_C,LD_B_D,LD_B_E,LD_B_H,LD_B_L,LD_B_xHL,LD_B_A, + LD_C_B,LD_C_C,LD_C_D,LD_C_E,LD_C_H,LD_C_L,LD_C_xHL,LD_C_A, + LD_D_B,LD_D_C,LD_D_D,LD_D_E,LD_D_H,LD_D_L,LD_D_xHL,LD_D_A, + LD_E_B,LD_E_C,LD_E_D,LD_E_E,LD_E_H,LD_E_L,LD_E_xHL,LD_E_A, + LD_H_B,LD_H_C,LD_H_D,LD_H_E,LD_H_H,LD_H_L,LD_H_xHL,LD_H_A, + LD_L_B,LD_L_C,LD_L_D,LD_L_E,LD_L_H,LD_L_L,LD_L_xHL,LD_L_A, + LD_xHL_B,LD_xHL_C,LD_xHL_D,LD_xHL_E,LD_xHL_H,LD_xHL_L,HALT,LD_xHL_A, + LD_A_B,LD_A_C,LD_A_D,LD_A_E,LD_A_H,LD_A_L,LD_A_xHL,LD_A_A, + ADD_B,ADD_C,ADD_D,ADD_E,ADD_H,ADD_L,ADD_xHL,ADD_A, + ADC_B,ADC_C,ADC_D,ADC_E,ADC_H,ADC_L,ADC_xHL,ADC_A, + SUB_B,SUB_C,SUB_D,SUB_E,SUB_H,SUB_L,SUB_xHL,SUB_A, + SBC_B,SBC_C,SBC_D,SBC_E,SBC_H,SBC_L,SBC_xHL,SBC_A, + AND_B,AND_C,AND_D,AND_E,AND_H,AND_L,AND_xHL,AND_A, + XOR_B,XOR_C,XOR_D,XOR_E,XOR_H,XOR_L,XOR_xHL,XOR_A, + OR_B,OR_C,OR_D,OR_E,OR_H,OR_L,OR_xHL,OR_A, + CP_B,CP_C,CP_D,CP_E,CP_H,CP_L,CP_xHL,CP_A, + RET_NZ,POP_BC,JP_NZ,JP,CALL_NZ,PUSH_BC,ADD_BYTE,RST00, + RET_Z,RET,JP_Z,PFX_CB,CALL_Z,CALL,ADC_BYTE,RST08, + RET_NC,POP_DE,JP_NC,OUTA,CALL_NC,PUSH_DE,SUB_BYTE,RST10, + RET_C,EXX,JP_C,INA,CALL_C,PFX_DD,SBC_BYTE,RST18, + RET_PO,POP_HL,JP_PO,EX_HL_xSP,CALL_PO,PUSH_HL,AND_BYTE,RST20, + RET_PE,LD_PC_HL,JP_PE,EX_DE_HL,CALL_PE,PFX_ED,XOR_BYTE,RST28, + RET_P,POP_AF,JP_P,DI,CALL_P,PUSH_AF,OR_BYTE,RST30, + RET_M,LD_SP_HL,JP_M,EI,CALL_M,PFX_FD,CP_BYTE,RST38 +}; + +enum CodesCB +{ + RLC_B,RLC_C,RLC_D,RLC_E,RLC_H,RLC_L,RLC_xHL,RLC_A, + RRC_B,RRC_C,RRC_D,RRC_E,RRC_H,RRC_L,RRC_xHL,RRC_A, + RL_B,RL_C,RL_D,RL_E,RL_H,RL_L,RL_xHL,RL_A, + RR_B,RR_C,RR_D,RR_E,RR_H,RR_L,RR_xHL,RR_A, + SLA_B,SLA_C,SLA_D,SLA_E,SLA_H,SLA_L,SLA_xHL,SLA_A, + SRA_B,SRA_C,SRA_D,SRA_E,SRA_H,SRA_L,SRA_xHL,SRA_A, + SLL_B,SLL_C,SLL_D,SLL_E,SLL_H,SLL_L,SLL_xHL,SLL_A, + SRL_B,SRL_C,SRL_D,SRL_E,SRL_H,SRL_L,SRL_xHL,SRL_A, + BIT0_B,BIT0_C,BIT0_D,BIT0_E,BIT0_H,BIT0_L,BIT0_xHL,BIT0_A, + BIT1_B,BIT1_C,BIT1_D,BIT1_E,BIT1_H,BIT1_L,BIT1_xHL,BIT1_A, + BIT2_B,BIT2_C,BIT2_D,BIT2_E,BIT2_H,BIT2_L,BIT2_xHL,BIT2_A, + BIT3_B,BIT3_C,BIT3_D,BIT3_E,BIT3_H,BIT3_L,BIT3_xHL,BIT3_A, + BIT4_B,BIT4_C,BIT4_D,BIT4_E,BIT4_H,BIT4_L,BIT4_xHL,BIT4_A, + BIT5_B,BIT5_C,BIT5_D,BIT5_E,BIT5_H,BIT5_L,BIT5_xHL,BIT5_A, + BIT6_B,BIT6_C,BIT6_D,BIT6_E,BIT6_H,BIT6_L,BIT6_xHL,BIT6_A, + BIT7_B,BIT7_C,BIT7_D,BIT7_E,BIT7_H,BIT7_L,BIT7_xHL,BIT7_A, + RES0_B,RES0_C,RES0_D,RES0_E,RES0_H,RES0_L,RES0_xHL,RES0_A, + RES1_B,RES1_C,RES1_D,RES1_E,RES1_H,RES1_L,RES1_xHL,RES1_A, + RES2_B,RES2_C,RES2_D,RES2_E,RES2_H,RES2_L,RES2_xHL,RES2_A, + RES3_B,RES3_C,RES3_D,RES3_E,RES3_H,RES3_L,RES3_xHL,RES3_A, + RES4_B,RES4_C,RES4_D,RES4_E,RES4_H,RES4_L,RES4_xHL,RES4_A, + RES5_B,RES5_C,RES5_D,RES5_E,RES5_H,RES5_L,RES5_xHL,RES5_A, + RES6_B,RES6_C,RES6_D,RES6_E,RES6_H,RES6_L,RES6_xHL,RES6_A, + RES7_B,RES7_C,RES7_D,RES7_E,RES7_H,RES7_L,RES7_xHL,RES7_A, + SET0_B,SET0_C,SET0_D,SET0_E,SET0_H,SET0_L,SET0_xHL,SET0_A, + SET1_B,SET1_C,SET1_D,SET1_E,SET1_H,SET1_L,SET1_xHL,SET1_A, + SET2_B,SET2_C,SET2_D,SET2_E,SET2_H,SET2_L,SET2_xHL,SET2_A, + SET3_B,SET3_C,SET3_D,SET3_E,SET3_H,SET3_L,SET3_xHL,SET3_A, + SET4_B,SET4_C,SET4_D,SET4_E,SET4_H,SET4_L,SET4_xHL,SET4_A, + SET5_B,SET5_C,SET5_D,SET5_E,SET5_H,SET5_L,SET5_xHL,SET5_A, + SET6_B,SET6_C,SET6_D,SET6_E,SET6_H,SET6_L,SET6_xHL,SET6_A, + SET7_B,SET7_C,SET7_D,SET7_E,SET7_H,SET7_L,SET7_xHL,SET7_A +}; + +enum CodesED +{ + DB_00,DB_01,DB_02,DB_03,DB_04,DB_05,DB_06,DB_07, + DB_08,DB_09,DB_0A,DB_0B,DB_0C,DB_0D,DB_0E,DB_0F, + DB_10,DB_11,DB_12,DB_13,DB_14,DB_15,DB_16,DB_17, + DB_18,DB_19,DB_1A,DB_1B,DB_1C,DB_1D,DB_1E,DB_1F, + DB_20,DB_21,DB_22,DB_23,DB_24,DB_25,DB_26,DB_27, + DB_28,DB_29,DB_2A,DB_2B,DB_2C,DB_2D,DB_2E,DB_2F, + DB_30,DB_31,DB_32,DB_33,DB_34,DB_35,DB_36,DB_37, + DB_38,DB_39,DB_3A,DB_3B,DB_3C,DB_3D,DB_3E,DB_3F, + IN_B_xC,OUT_xC_B,SBC_HL_BC,LD_xWORDe_BC,NEG,RETN,IM_0,LD_I_A, + IN_C_xC,OUT_xC_C,ADC_HL_BC,LD_BC_xWORDe,DB_4C,RETI,DB_,LD_R_A, + IN_D_xC,OUT_xC_D,SBC_HL_DE,LD_xWORDe_DE,DB_54,DB_55,IM_1,LD_A_I, + IN_E_xC,OUT_xC_E,ADC_HL_DE,LD_DE_xWORDe,DB_5C,DB_5D,IM_2,LD_A_R, + IN_H_xC,OUT_xC_H,SBC_HL_HL,LD_xWORDe_HL,DB_64,DB_65,DB_66,RRD, + IN_L_xC,OUT_xC_L,ADC_HL_HL,LD_HL_xWORDe,DB_6C,DB_6D,DB_6E,RLD, + IN_F_xC,DB_71,SBC_HL_SP,LD_xWORDe_SP,DB_74,DB_75,DB_76,DB_77, + IN_A_xC,OUT_xC_A,ADC_HL_SP,LD_SP_xWORDe,DB_7C,DB_7D,DB_7E,DB_7F, + DB_80,DB_81,DB_82,DB_83,DB_84,DB_85,DB_86,DB_87, + DB_88,DB_89,DB_8A,DB_8B,DB_8C,DB_8D,DB_8E,DB_8F, + DB_90,DB_91,DB_92,DB_93,DB_94,DB_95,DB_96,DB_97, + DB_98,DB_99,DB_9A,DB_9B,DB_9C,DB_9D,DB_9E,DB_9F, + LDI,CPI,INI,OUTI,DB_A4,DB_A5,DB_A6,DB_A7, + LDD,CPD,IND,OUTD,DB_AC,DB_AD,DB_AE,DB_AF, + LDIR,CPIR,INIR,OTIR,DB_B4,DB_B5,DB_B6,DB_B7, + LDDR,CPDR,INDR,OTDR,DB_BC,DB_BD,DB_BE,DB_BF, + DB_C0,DB_C1,DB_C2,DB_C3,DB_C4,DB_C5,DB_C6,DB_C7, + DB_C8,DB_C9,DB_CA,DB_CB,DB_CC,DB_CD,DB_CE,DB_CF, + DB_D0,DB_D1,DB_D2,DB_D3,DB_D4,DB_D5,DB_D6,DB_D7, + DB_D8,DB_D9,DB_DA,DB_DB,DB_DC,DB_DD,DB_DE,DB_DF, + DB_E0,DB_E1,DB_E2,DB_E3,DB_E4,DB_E5,DB_E6,DB_E7, + DB_E8,DB_E9,DB_EA,DB_EB,DB_EC,DB_ED,DB_EE,DB_EF, + DB_F0,DB_F1,DB_F2,DB_F3,DB_F4,DB_F5,DB_F6,DB_F7, + DB_F8,DB_F9,DB_FA,DB_FB,DB_FC,DB_FD,DB_FE,DB_FF +}; + +static void CodesCB(register Z80 *R) +{ + register byte I; + + I=RdZ80(R->PC.W++); + R->ICount-=CyclesCB[I]; + switch(I) + { +#include "CodesCB.h" + default: + if(R->TrapBadOps) + printf + ( + "[Z80 %lX] Unrecognized instruction: CB %02X at PC=%04X\n", + (long)(R->User),RdZ80(R->PC.W-1),R->PC.W-2 + ); + } +} + +static void CodesDDCB(register Z80 *R) +{ + register pair J; + register byte I; + +#define XX IX + J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + I=RdZ80(R->PC.W++); + R->ICount-=CyclesXXCB[I]; + switch(I) + { +#include "CodesXCB.h" + default: + if(R->TrapBadOps) + printf + ( + "[Z80 %lX] Unrecognized instruction: DD CB %02X %02X at PC=%04X\n", + (long)(R->User),RdZ80(R->PC.W-2),RdZ80(R->PC.W-1),R->PC.W-4 + ); + } +#undef XX +} + +static void CodesFDCB(register Z80 *R) +{ + register pair J; + register byte I; + +#define XX IY + J.W=R->XX.W+(offset)RdZ80(R->PC.W++); + I=RdZ80(R->PC.W++); + R->ICount-=CyclesXXCB[I]; + switch(I) + { +#include "CodesXCB.h" + default: + if(R->TrapBadOps) + printf + ( + "[Z80 %lX] Unrecognized instruction: FD CB %02X %02X at PC=%04X\n", + (long)R->User,RdZ80(R->PC.W-2),RdZ80(R->PC.W-1),R->PC.W-4 + ); + } +#undef XX +} + +static void CodesED(register Z80 *R) +{ + register byte I; + register pair J; + + I=RdZ80(R->PC.W++); + R->ICount-=CyclesED[I]; + switch(I) + { +#include "CodesED.h" + case PFX_ED: + R->PC.W--;break; + default: + if(R->TrapBadOps) + printf + ( + "[Z80 %lX] Unrecognized instruction: ED %02X at PC=%04X\n", + (long)R->User,RdZ80(R->PC.W-1),R->PC.W-2 + ); + } +} + +static void CodesDD(register Z80 *R) +{ + register byte I; + register pair J; + +#define XX IX + I=RdZ80(R->PC.W++); + R->ICount-=CyclesXX[I]; + switch(I) + { +#include "CodesXX.h" + case PFX_FD: + case PFX_DD: + R->PC.W--;break; + case PFX_CB: + CodesDDCB(R);break; + case HALT: + R->PC.W--;R->IFF|=0x80;R->ICount=0;break; + default: + if(R->TrapBadOps) + printf + ( + "[Z80 %lX] Unrecognized instruction: DD %02X at PC=%04X\n", + (long)R->User,RdZ80(R->PC.W-1),R->PC.W-2 + ); + } +#undef XX +} + +static void CodesFD(register Z80 *R) +{ + register byte I; + register pair J; + +#define XX IY + I=RdZ80(R->PC.W++); + R->ICount-=CyclesXX[I]; + switch(I) + { +#include "CodesXX.h" + case PFX_FD: + case PFX_DD: + R->PC.W--;break; + case PFX_CB: + CodesFDCB(R);break; + case HALT: + R->PC.W--;R->IFF|=0x80;R->ICount=0;break; + default: + printf + ( + "Unrecognized instruction: FD %02X at PC=%04X\n", + RdZ80(R->PC.W-1),R->PC.W-2 + ); + } +#undef XX +} + +/** ResetZ80() ***********************************************/ +/** This function can be used to reset the register struct **/ +/** before starting execution with Z80(). It sets the **/ +/** registers to their supposed initial values. **/ +/*************************************************************/ +void ResetZ80(Z80 *R) +{ + R->PC.W=0x0000;R->SP.W=0xF000; + R->AF.W=R->BC.W=R->DE.W=R->HL.W=0x0000; + R->AF1.W=R->BC1.W=R->DE1.W=R->HL1.W=0x0000; + R->IX.W=R->IY.W=0x0000; + R->I=0x00;R->IFF=0x00; + R->ICount=R->IPeriod; + R->IRequest=INT_NONE; +} + +/** ExecZ80() ************************************************/ +/** This function will execute a single Z80 opcode. It will **/ +/** then return next PC, and current register values in R. **/ +/*************************************************************/ +word ExecZ80(Z80 *R) +{ + register byte I; + register pair J; + + I=RdZ80(R->PC.W++); + R->ICount-=Cycles[I]; + switch(I) + { +#include "Codes.h" + case PFX_CB: CodesCB(R);break; + case PFX_ED: CodesED(R);break; + case PFX_FD: CodesFD(R);break; + case PFX_DD: CodesDD(R);break; + } + + /* We are done */ + return(R->PC.W); +} + +/** IntZ80() *************************************************/ +/** This function will generate interrupt of given vector. **/ +/*************************************************************/ +void IntZ80(Z80 *R,word Vector) +{ + if((R->IFF&0x01)||(Vector==INT_NMI)) + { + /* Experimental V Shouldn't disable all interrupts? */ + R->IFF=(R->IFF&0x9E)|((R->IFF&0x01)<<6); + if(R->IFF&0x80) { R->PC.W++;R->IFF&=0x7F; } + M_PUSH(PC); + + /* Automatically reset IRequest if needed */ + if(R->IAutoReset&&(Vector==R->IRequest)) R->IRequest=INT_NONE; + + if(Vector==INT_NMI) R->PC.W=INT_NMI; + else + if(R->IFF&0x04) + { + Vector=(Vector&0xFF)|((word)(R->I)<<8); + R->PC.B.l=RdZ80(Vector++); + R->PC.B.h=RdZ80(Vector); + } + else + if(R->IFF&0x02) R->PC.W=INT_IRQ; + else R->PC.W=Vector; + } +} + +/** RunZ80() *************************************************/ +/** This function will run Z80 code until an LoopZ80() call **/ +/** returns INT_QUIT. It will return the PC at which **/ +/** emulation stopped, and current register values in R. **/ +/*************************************************************/ +static byte I; +static pair J; + +word RunZ80(Z80 *R) +{ +// register byte I; +// register pair J; + int ras=0; + + for(;;) + { +//#ifdef DEBUG +// /* Turn tracing on when reached trap address */ +// if(R->PC.W==R->Trap) R->Trace=1; +// /* Call single-step debugger, exit if requested */ +// if(R->Trace) +// if(!DebugZ80(R)) return(R->PC.W); +//#endif + + I=RdZ80(R->PC.W++); + R->ICount-=Cycles[I]; + switch(I) + { +#include "Codes.h" + case PFX_CB: CodesCB(R);break; + case PFX_ED: CodesED(R);break; + case PFX_FD: CodesFD(R);break; + case PFX_DD: CodesDD(R);break; + } + + /* If cycle counter expired... */ + if(R->ICount<=0) + { + /* If we have come after EI, get address from IRequest */ + /* Otherwise, get it from the loop handler */ + if(R->IFF&0x20) + { + J.W=R->IRequest; /* Get pending interrupt */ + R->ICount+=R->IBackup-1; /* Restore the ICount */ + R->IFF&=0xDF; /* Done with AfterEI state */ + } + else + { + J.W=LoopZ80(R, &ras); /* Call periodic handler */ + R->ICount=R->IPeriod; /* Reset the cycle counter */ + if(J.W==INT_NONE) I=R->IRequest; /* Pending int-rupt */ + } + + if(J.W==INT_QUIT) return(R->PC.W); /* Exit if INT_QUIT */ + if(J.W!=INT_NONE) IntZ80(R,J.W); /* Int-pt if needed */ + } + if (ras == 1) break; + } + + /* Execution stopped */ + return(R->PC.W); +} diff --git a/MCUME_teensy/teensymsx/Z80.h b/MCUME_teensy/teensymsx/Z80.h new file mode 100644 index 0000000..1973c7a --- /dev/null +++ b/MCUME_teensy/teensymsx/Z80.h @@ -0,0 +1,141 @@ +/** Z80: portable Z80 emulator *******************************/ +/** **/ +/** Z80.h **/ +/** **/ +/** This file contains declarations relevant to emulation **/ +/** of Z80 CPU. **/ +/** **/ +/** Copyright (C) Marat Fayzullin 1994-1998 **/ +/** You are not allowed to distribute this software **/ +/** commercially. Please, notify me, if you make any **/ +/** changes to this file. **/ +/*************************************************************/ +#ifndef Z80_H +#define Z80_H + + /* Compilation options: */ +/* #define DEBUG */ /* Compile debugging version */ +/* #define LSB_FIRST */ /* Compile for low-endian CPU */ +/* #define MSB_FIRST */ /* Compile for hi-endian CPU */ + + /* LoopZ80() may return: */ +#define INT_IRQ 0x0038 /* Standard RST 38h interrupt */ +#define INT_NMI 0x0066 /* Non-maskable interrupt */ +#define INT_NONE 0xFFFF /* No interrupt required */ +#define INT_QUIT 0xFFFE /* Exit the emulation */ + + /* Bits in Z80 F register: */ +#define S_FLAG 0x80 /* 1: Result negative */ +#define Z_FLAG 0x40 /* 1: Result is zero */ +#define H_FLAG 0x10 /* 1: Halfcarry/Halfborrow */ +#define P_FLAG 0x04 /* 1: Result is even */ +#define V_FLAG 0x04 /* 1: Overflow occured */ +#define N_FLAG 0x02 /* 1: Subtraction occured */ +#define C_FLAG 0x01 /* 1: Carry/Borrow occured */ + +/** Simple Datatypes *****************************************/ +/** NOTICE: sizeof(byte)=1 and sizeof(word)=2 **/ +/*************************************************************/ +typedef unsigned char byte; +typedef unsigned short word; +typedef signed char offset; + +/** Structured Datatypes *************************************/ +/** NOTICE: #define LSB_FIRST for machines where least **/ +/** signifcant byte goes first. **/ +/*************************************************************/ +typedef union +{ +#ifdef LSB_FIRST + struct { byte l,h; } B; +#else + struct { byte h,l; } B; +#endif + word W; +} pair; + +typedef struct +{ + pair AF,BC,DE,HL,IX,IY,PC,SP; /* Main registers */ + pair AF1,BC1,DE1,HL1; /* Shadow registers */ + byte IFF,I; /* Interrupt registers */ + byte R; /* Refresh register */ + + int IPeriod,ICount; /* Set IPeriod to number of CPU cycles */ + /* between calls to LoopZ80() */ + int IBackup; /* Private, don't touch */ + word IRequest; /* Set to address of pending IRQ */ + byte IAutoReset; /* Set to 1 to autom. reset IRequest */ + byte TrapBadOps; /* Set to 1 to warn of illegal opcodes */ + word Trap; /* Set Trap to address to trace from */ + byte Trace; /* Set Trace=1 to start tracing */ + void *User; /* Arbitrary user data (ID,RAM*,etc.) */ +} Z80; + +/** ResetZ80() ***********************************************/ +/** This function can be used to reset the registers before **/ +/** starting execution with RunZ80(). It sets registers to **/ +/** their initial values. **/ +/*************************************************************/ +void ResetZ80(register Z80 *R); + +/** ExecZ80() ************************************************/ +/** This function will execute a single Z80 opcode. It will **/ +/** then return next PC, and current register values in R. **/ +/*************************************************************/ +word ExecZ80(register Z80 *R); + +/** IntZ80() *************************************************/ +/** This function will generate interrupt of given vector. **/ +/*************************************************************/ +void IntZ80(register Z80 *R,register word Vector); + +/** RunZ80() *************************************************/ +/** This function will run Z80 code until an LoopZ80() call **/ +/** returns INT_QUIT. It will return the PC at which **/ +/** emulation stopped, and current register values in R. **/ +/*************************************************************/ +word RunZ80(register Z80 *R); + +/** RdZ80()/WrZ80() ******************************************/ +/** These functions are called when access to RAM occurs. **/ +/** They allow to control memory access. **/ +/************************************ TO BE WRITTEN BY USER **/ +void WrZ80(register word Addr,register byte Value); +byte RdZ80(register word Addr); + +/** InZ80()/OutZ80() *****************************************/ +/** Z80 emulation calls these functions to read/write from **/ +/** I/O ports. There can be 65536 I/O ports, but only first **/ +/** 256 are usually used **/ +/************************************ TO BE WRITTEN BY USER **/ +void OutZ80(register word Port,register byte Value); +byte InZ80(register word Port); + +/** PatchZ80() ***********************************************/ +/** Z80 emulation calls this function when it encounters a **/ +/** special patch command (ED FE) provided for user needs. **/ +/** For example, it can be called to emulate BIOS calls, **/ +/** such as disk and tape access. Replace it with an empty **/ +/** macro for no patching. **/ +/************************************ TO BE WRITTEN BY USER **/ +void PatchZ80(register Z80 *R); + +/** DebugZ80() ***********************************************/ +/** This function should exist if DEBUG is #defined. When **/ +/** Trace!=0, it is called after each command executed by **/ +/** the CPU, and given the Z80 registers. Emulation exits **/ +/** if DebugZ80() returns 0. **/ +/*************************************************************/ +byte DebugZ80(register Z80 *R); + +/** LoopZ80() ************************************************/ +/** Z80 emulation calls this function periodically to check **/ +/** if the system hardware requires any interrupts. This **/ +/** function must return an address of the interrupt vector **/ +/** (0x0038, 0x0066, etc.) or INT_NONE for no interrupt. **/ +/** Return INT_QUIT to exit the emulation loop. **/ +/************************************ TO BE WRITTEN BY USER **/ +word LoopZ80(register Z80 *R, int * ras); + +#endif /* Z80_H */ diff --git a/MCUME_teensy/teensymsx/_unused/memory.c b/MCUME_teensy/teensymsx/_unused/memory.c new file mode 100644 index 0000000..34070c3 --- /dev/null +++ b/MCUME_teensy/teensymsx/_unused/memory.c @@ -0,0 +1,53 @@ +#include "shared.h" + +//static uint8 lpceram[0x8000]; +static uint8 lvram[0x10000]; +static uint8 lobjram[0x200]; +static uint8 lbram[0x2000]; + +static uint8 lbg_name_dirty[0x800]; +static uint16 lbg_name_list[0x800]; +static uint16 lobj_name_dirty[0x200]; +static uint16 lobj_name_list[0x200]; +static uint8 lbg_pattern_cache[BG_CACHE_SIZE]; +//static uint8 lobj_pattern_cache[OBJ_CACHE_SIZE]; + + +uint8 * vram=&lvram[0]; +uint16 * vramw = (uint16 *)&lvram[0]; +uint8 * objram = &lobjram[0]; +uint16 *objramw = (uint16 *)&lobjram[0]; +uint8 * pceram;// = &lpceram[0]; +#ifdef CDRAM +uint8 * cdram; +#endif +uint8 * bram=&lbram[0]; + +uint8 * bg_name_dirty=&lbg_name_dirty[0]; +uint16 * bg_name_list=&lbg_name_list[0]; +uint16 * obj_name_dirty=&lobj_name_dirty[0]; +uint16 * obj_name_list=&lobj_name_list[0]; +uint8 * bg_pattern_cache; +uint8 * obj_pattern_cache; +uint8 * bg_pattern_cache=&lbg_pattern_cache[0]; +//uint8 * obj_pattern_cache=&lobj_pattern_cache[0]; + +#include "emuapi.h" + +void mem_init(void) { + //bg_pattern_cache = emu_Malloc(BG_CACHE_SIZE); + obj_pattern_cache = emu_Malloc(OBJ_CACHE_SIZE); //0x20200000; + pceram = emu_Malloc(0x8000); +#ifdef CDRAM + cdram = emu_Malloc(0x10000); +#endif + //emu_printh(obj_pattern_cache); +} + + +void memcpy_rom(int dst, int src, int size) { + while (size > 0) { + write_rom(dst++, read_rom(src++)); + size--; + } +} diff --git a/MCUME_teensy/teensymsx/_unused/memory.h b/MCUME_teensy/teensymsx/_unused/memory.h new file mode 100644 index 0000000..8edae32 --- /dev/null +++ b/MCUME_teensy/teensymsx/_unused/memory.h @@ -0,0 +1,32 @@ +#ifndef _MEMORY_H_ +#define _MEMORY_H_ + +extern uint8 * vram; +extern uint16 * vramw; +extern uint8 * pceram; +extern uint8 * cdram; +extern uint8 * bram; + +extern uint8 * objram; +extern uint16 *objramw; + + +#define BG_CACHE_SIZE 0x20000 +#define OBJ_CACHE_SIZE 0x40000 //0x60000 //0x7E800 //0x80000 + +extern uint8 * bg_pattern_cache; +extern uint8 * obj_pattern_cache; +extern uint8 * bg_name_dirty; +extern uint16 * bg_name_list; +extern uint16 * obj_name_dirty; +extern uint16 * obj_name_list; + + + + +extern void mem_init(void); +extern uint8 read_rom(int address); +extern void write_rom(int address, uint8 val); +extern void memcpy_rom(int dst, int src, int size); + +#endif diff --git a/MCUME_teensy/teensymsx/arduinoproto.h b/MCUME_teensy/teensymsx/arduinoproto.h new file mode 100644 index 0000000..289030c --- /dev/null +++ b/MCUME_teensy/teensymsx/arduinoproto.h @@ -0,0 +1,7 @@ +#ifndef _ARDUINOPROTO_H_ +#define _ARDUINOPROTO_H_ + +#include +//#define PROGMEM + +#endif diff --git a/MCUME_teensy/teensymsx/bmpjoy.h b/MCUME_teensy/teensymsx/bmpjoy.h new file mode 100644 index 0000000..87194a2 --- /dev/null +++ b/MCUME_teensy/teensymsx/bmpjoy.h @@ -0,0 +1,41 @@ +const uint16_t PROGMEM bmpjoy[] = { +0x001e,0x0026,0x0000,0x0000,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x0000,0x0000, +0x0000,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xf4d2,0xeaea,0xe227,0xe268,0xebce,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x0000, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xeaa9,0xe984,0xe164,0xd964,0xe184,0xe1a4,0xe1a5,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xe207,0xe984,0xe206,0xe2e9,0xe267,0xd964,0xd9a5,0xd984,0xf1a5,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xebef,0xe984,0xe288,0xeb8b,0xeb0a,0xe247,0xd984,0xd984,0xd9a5,0xe1a5,0xe1c6,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xd9c6,0xe1c5,0xeb8b,0xe247,0xd943,0xd964,0xd984,0xd984,0xd984,0xd9a5,0xe9a5,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xe164,0xe268,0xeb4b,0xd964,0xd984,0xd984,0xd984,0xd984,0xd984,0xd9a5,0xe9a5,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xe184,0xe206,0xe247,0xd984,0xd984,0xd984,0xd984,0xd984,0xd984,0xd9a5,0xe9a5,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0xd9a5,0xd984,0xd964,0xd984,0xd984,0xd984,0xd984,0xd984,0xd984,0xd9a5,0xe9a5,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x247c,0x18e3,0x18e3,0x18e3,0x18e3,0xeb2b,0xe9a5,0xd9a5,0xd984,0xd984,0xd984,0xd984,0xd984,0xd984,0xd9a5,0xe1a4,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x247c,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x18e3,0xe71c,0xdefc,0xdedb,0xdefc,0x18e3,0xe184,0xd984,0xd9a5,0xd984,0xd984,0xd984,0xd984,0xd9a5,0xe143,0x18e3,0xdf1c,0xdedb,0xdedb,0xdefb,0xe71c,0x18e3,0x247c,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x18e3,0xbe18,0xbe19,0xbe18,0xbe18,0xbe18,0xb619,0x18e3,0xe143,0xd943,0xd984,0xd984,0xd984,0xd964,0xe122,0x18e3,0xad96,0xbe19,0xbe18,0xbe18,0xbe18,0xbe19,0xbe18,0x18e3,0x1c5d,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xbe18,0xbdf8,0xadb7,0xadb7,0xadb7,0xb5b7,0xb5b7,0xadf8,0x18e3,0xd269,0xd9a5,0xd963,0xd984,0xda07,0x18e3,0xadb7,0xadb7,0xb5b7,0xadb7,0xadb7,0xadb7,0xadb7,0xbdf8,0xbe18,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xb5b7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xad96,0xadf8,0xbe18,0xe69a,0xe618,0xee79,0xce59,0xadf8,0xadb7,0xad97,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xb5d7,0x9d15,0x8493,0xdf5d,0xe79e,0xefdf,0xadb7,0x8493,0xb5b7,0xb5b7,0xad97,0xadb7,0xad97,0xadb7,0xadb7,0xad97,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xadb7,0xadb7,0xad97,0xadb7,0xadb7,0x7c52,0x4b2e,0x5b90,0xdf3c,0xe75d,0xf79e,0x9515,0x42ed,0x63d0,0x9d55,0xb5b7,0xad96,0xadb7,0xad97,0xadb7,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xadb7,0xad97,0xadb7,0xadb7,0x6bf1,0x4b2e,0x4b2e,0x532e,0xdf1c,0xe75d,0xefbe,0x8cb3,0x42ac,0x534f,0x534f,0x9d15,0xb5b7,0xad96,0xadb7,0xadb7,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xadb7,0xad96,0xb5d7,0x7c52,0x4b0e,0x532e,0x322a,0x428b,0xdf1c,0xe75d,0xf7be,0x8472,0x29a8,0x4aed,0x534f,0x5b6f,0xad76,0xadb7,0xad97,0xad97,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xad97,0xb5b7,0x9d35,0x534f,0x534f,0x3a4a,0x31e8,0x42ab,0xdf1c,0xe75d,0xf7be,0x8472,0x29c8,0x3a29,0x4b0d,0x4b2e,0x7c52,0xb5d7,0xad96,0xadb7,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xad96,0xb5d7,0x7c52,0x4b2e,0x4aed,0x3209,0x3209,0x428b,0xdf1c,0xe75d,0xf7be,0x8472,0x29c8,0x3a29,0x3a6a,0x534f,0x5b8f,0xad96,0xadb7,0xad97,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xad97,0xb5b7,0x63d0,0x4b2f,0x428b,0x3209,0x3209,0x428b,0xdf1c,0xe75d,0xf7be,0x8472,0x29c8,0x3a2a,0x3a29,0x4b2e,0x534f,0x9d15,0xb5b7,0xad96,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xadb7,0xad96,0x5b90,0x532e,0x3a6b,0x3209,0x3209,0x4aab,0xdf1c,0xe73d,0xef9e,0x8492,0x29c8,0x3a2a,0x3209,0x4b0d,0x4b2e,0x94f4,0xb5d7,0xad97,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xad97,0xad97,0x5bb0,0x534f,0x3a6b,0x3209,0x3209,0x3a4a,0xd6db,0xf7be,0xf7df,0x73f0,0x29c8,0x3a2a,0x3229,0x4b0e,0x4b2e,0x94f4,0xb5d7,0xad97,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xad97,0xb5b7,0x6bf1,0x4b2e,0x42ac,0x3209,0x3a2a,0x31e8,0x636e,0xbe18,0x94d3,0x3229,0x3229,0x3209,0x3a4a,0x534f,0x534f,0x9d35,0xb5b7,0xad96,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xad96,0xb5d7,0x8493,0x4b2e,0x532e,0x3a2a,0x3209,0x3a29,0x31e8,0x29c8,0x29c8,0x3229,0x3a29,0x3209,0x42cc,0x534f,0x63b0,0xad97,0xad97,0xad97,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xad97,0xadb7,0xa576,0x536f,0x534f,0x4aed,0x3209,0x3209,0x3a29,0x3a2a,0x3a2a,0x3229,0x3209,0x428b,0x534f,0x4b0e,0x8493,0xb5d7,0xad96,0xadb7,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad97,0xadb7,0xad96,0xb5b7,0x8cb3,0x4b0e,0x536f,0x4b0e,0x3a6b,0x3229,0x3209,0x3209,0x3a4a,0x42cc,0x534f,0x4b0e,0x63d0,0xadb7,0xad97,0xad97,0xad96,0xad96,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xad97,0xadb7,0xadd7,0xb5b7,0x8473,0x4b0e,0x534f,0x534f,0x4b2e,0x4b0d,0x4b0e,0x534f,0x534f,0x4b0e,0x63b0,0xa576,0xb5b7,0xad97,0xad97,0xceba,0xb5f8,0xad96,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xad96,0xadd7,0xb514,0xbc92,0xadb7,0xb5d7,0x94d4,0x5b90,0x4b2e,0x4b2e,0x4b2e,0x4b2e,0x4b2e,0x534f,0x7c32,0xad96,0xb5b7,0xad97,0xad97,0xb5b7,0xe75d,0xbe18,0xad96,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xb514,0xd9c5,0xe122,0xcb6d,0xadd7,0xb5b7,0xad96,0x94f4,0x7c52,0x7432,0x7c32,0x8cb3,0xa556,0xb5d7,0xadb7,0xad97,0xadb7,0xad96,0xbe18,0xe75d,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xad96,0xadf8,0xc410,0xe101,0xd943,0xd207,0xadb7,0xad96,0xadb7,0xb5d7,0xb5d7,0xb5d7,0xb5d7,0xb5d7,0xb5b7,0xad97,0xad97,0xad97,0xad76,0xad96,0xdf3c,0xce9a,0xad76,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xadb7,0xadb7,0xb576,0xd289,0xd9a5,0xbc30,0xadd7,0xad96,0xad97,0xad97,0xad96,0xad97,0xad96,0xad96,0xad97,0xad97,0xadb7,0xb5b7,0xbe18,0xdf3c,0xdefc,0xad97,0xadb7,0xadb7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xb5d7,0xb5b7,0xadb7,0xadb7,0xb576,0xadd7,0xad97,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xad96,0xce7a,0xe75d,0xe75d,0xce9a,0xad96,0xadb7,0xb5b7,0xb5b7,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x18e3,0xd6bb,0xbe18,0xadb7,0xadb7,0xadb7,0xad96,0xadb7,0xad97,0xad97,0xad97,0xad97,0xad97,0xad97,0xad97,0xadb7,0xad97,0xb5d7,0xbe18,0xadb7,0xad76,0xadb7,0xadb7,0xbe18,0xd6bb,0x18e3,0x247c,0x247c, +0x247c,0x247c,0x247c,0x18e3,0xd6bb,0xbdf8,0xb5b7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xadb7,0xad96,0xad96,0xadb7,0xadb7,0xb5b7,0xbdf8,0xd6bb,0x18e3,0x247c,0x247c,0x247c, +0x247c,0x247c,0x247c,0x247c,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x247c,0x247c,0x247c,0x247c, +0x0000,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x0000, +0x0000,0x0000,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x247c,0x0000,0x0000}; + + diff --git a/MCUME_teensy/teensymsx/bmptft.h b/MCUME_teensy/teensymsx/bmptft.h new file mode 100644 index 0000000..332a7db --- /dev/null +++ b/MCUME_teensy/teensymsx/bmptft.h @@ -0,0 +1,40 @@ +const uint16_t PROGMEM bmptft[] = { +0x0020,0x0025,0x0000,0x0000,0x0000,0x9d34,0xd6fc,0xcebc,0xcebc,0xcebc,0xcebc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcefc,0xcefc,0xcedc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6fc,0xb596,0x0000,0x0000,0x0000,0x0861, +0x0000,0x0000,0xb5d7,0xbe9b,0xa5d9,0x9d99,0x9d79,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9dba,0x9dba,0x9dba,0x9dda,0xa5ba,0xa5ba,0xa5da,0xa5da,0xa5db,0xa5db,0xa5db,0xa5fb,0xadfb,0xb63b,0xcedc,0x4a69,0x0000,0x0861, +0x0000,0x0000,0xc69c,0x8d59,0x6c78,0x6438,0x6438,0x6459,0x6459,0x6459,0x6479,0x6479,0x6479,0x6479,0x6499,0x6499,0x64ba,0x64ba,0x6cba,0x6cda,0x6cda,0x6cda,0x6cfa,0x6cfa,0x6cfb,0x6d1b,0x755a,0x8d9a,0xa61a,0xcefc,0x0000,0x0861, +0x0000,0xd6fc,0x959a,0x5c38,0x3bb8,0x3399,0x33b9,0x33ba,0x33da,0x33da,0x33fa,0x33fa,0x3c1a,0x3c1a,0x3c3a,0x3c3a,0x3c3b,0x3c5b,0x3c7b,0x3c7b,0x3c9b,0x3c9b,0x449c,0x44bc,0x44dc,0x44fc,0x553b,0x6d7a,0x859a,0xae5b,0x9d14,0x0861, +0x0000,0xbe5a,0x6c78,0x3b99,0x2b9a,0x23bb,0x23db,0x2bfb,0x2bfb,0x2bfb,0x2c1c,0x2c1c,0x2c3c,0x2c5c,0x345c,0x345c,0x347c,0x349d,0x349d,0x34bd,0x34dd,0x3cdd,0x3cfe,0x3cfe,0x3d1e,0x453d,0x557d,0x659c,0x7dbb,0x95da,0xcebc,0x0861, +0x9d14,0x9d79,0x43b8,0x237a,0x23bb,0x23db,0x23fc,0x23fc,0x2c1c,0x2c1c,0x2c3c,0x2c5c,0x2c5c,0x2c7c,0x347d,0x349d,0x349d,0x34be,0x34de,0x34de,0x3cfe,0x3cfe,0x3d1e,0x3d1e,0x3d3e,0x455e,0x4d7e,0x5dbd,0x7dfc,0x8ddb,0xb63b,0x6b8e, +0xcebc,0x7c98,0x3378,0x23bb,0x23dc,0x23dc,0x23fc,0x241c,0x1ab3,0x122f,0x122f,0x122f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a6f,0x1a6f,0x1a6f,0x1a8f,0x1a8f,0x1a8f,0x1ab0,0x2b74,0x3d3f,0x455e,0x457e,0x559e,0x7e1d,0x8e1c,0x9dfb,0xd71d, +0xbe5b,0x5c18,0x2379,0x23db,0x23dc,0x23dc,0x23fc,0x241c,0x0000,0x0084,0x00c5,0x08c5,0x08c5,0x08c5,0x08c5,0x08c5,0x08c5,0x08c5,0x08c5,0x08e5,0x08e5,0x08e5,0x08a4,0x0000,0x3d3f,0x3d5e,0x457e,0x4d7e,0x6dfe,0x8e3d,0x95fb,0xc6bc, +0xb61b,0x4bb9,0x239a,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x0000,0x23ba,0x2c3c,0x2c5c,0x2c5c,0x2c7d,0x347d,0x349d,0x349d,0x34be,0x34be,0x34de,0x3cfe,0x3cfe,0x349c,0x0000,0x3d3f,0x3d5f,0x455e,0x457e,0x65de,0x8e3d,0x95fb,0xc69c, +0xb5fa,0x4399,0x239b,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x0000,0x2398,0x2c3c,0x2c5c,0x2c5c,0x2c7d,0x347d,0x349d,0x349d,0x34be,0x34be,0x34de,0x3cfe,0x3cfe,0x345a,0x0000,0x3d3f,0x3d5e,0x455e,0x457e,0x55be,0x963d,0xa5fa,0xbe7c, +0xadd9,0x4399,0x239b,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x0000,0x2398,0x2c3c,0x2c5c,0x2c5c,0x2c7d,0x347d,0x349d,0x349d,0x34be,0x34be,0x34de,0x3cfe,0x3cfe,0x345a,0x0000,0x3d3f,0x3d3e,0x455d,0x457e,0x559e,0x963d,0xadfa,0xbe7b, +0xadd9,0x4399,0x239b,0x23bb,0x23db,0x23fb,0x23fc,0x241c,0x0000,0x2398,0x2c3c,0x2c5c,0x2c5c,0x2c7d,0x347d,0x349d,0x349d,0x34be,0x34be,0x34de,0x3cfe,0x3cfe,0x345a,0x0000,0x3d3f,0x3d3e,0x455e,0x457e,0x4d9e,0x963d,0xadfa,0xbe7b, +0xadd9,0x4398,0x23bb,0x23bb,0x23db,0x23fb,0x23fc,0x241c,0x0000,0x2398,0x2c3c,0x2c5c,0x2c5c,0x2c7d,0x347d,0x349d,0x349d,0x34be,0x34be,0x34de,0x3cfe,0x3cfe,0x345a,0x0000,0x3d3e,0x453e,0x455e,0x457e,0x559e,0x963d,0xae1a,0xbe5b, +0xadd9,0x43b8,0x23bb,0x23bc,0x23dc,0x23dc,0x23fc,0x241c,0x0000,0x2398,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x347d,0x349d,0x34be,0x34be,0x34de,0x3cfe,0x3cfe,0x345a,0x0000,0x453e,0x453e,0x455e,0x457e,0x559e,0x963e,0xa61b,0xbe7b, +0xadd9,0x43b8,0x23bb,0x23bc,0x23dc,0x23fc,0x23fc,0x241c,0x0000,0x2398,0x2c3d,0x2c5d,0x2c5d,0x2c7d,0x347d,0x347d,0x349e,0x34be,0x34de,0x34de,0x3cfe,0x3cfe,0x347b,0x0000,0x3d3f,0x453e,0x455e,0x457f,0x55bf,0x965e,0xa61b,0xbe7b, +0xadd9,0x43b8,0x23bb,0x23bc,0x23dc,0x23fc,0x23fc,0x241c,0x0000,0x2398,0x2c3d,0x2c5d,0x2c7d,0x347d,0x347d,0x347d,0x349e,0x34be,0x34de,0x11aa,0x2bd7,0x1a0c,0x2312,0x0000,0x3d3f,0x453e,0x455e,0x457f,0x559f,0x965e,0xa61b,0xbe7b, +0xb5d9,0x4398,0x23bb,0x23db,0x23dc,0x23fc,0x23fc,0x241c,0x0000,0x0042,0x0063,0x0063,0x0063,0x0083,0x00a4,0x0083,0x0083,0x00a4,0x0083,0x0000,0x0021,0x0000,0x0000,0x0000,0x3d3f,0x453f,0x455e,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2336,0x1ad3,0x1ad3,0x1ad3,0x2335,0x1a91,0x0000,0x2313,0x2334,0x0000,0x22d1,0x2bb7,0x2354,0x2b75,0x2b94,0x3c17,0x4d7e,0x4d7f,0x457f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x11ab,0x08c5,0x0000,0x0906,0x0906,0x0000,0x08e5,0x11cb,0x3cfe,0x3cfe,0x451e,0x4d5e,0x4d7e,0x4d5f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5c,0x1ab1,0x1a4f,0x1a90,0x1a4f,0x1a6f,0x1ab1,0x1a8f,0x22f2,0x3cdd,0x3cfd,0x453e,0x4d5f,0x4d5f,0x455f,0x455f,0x457f,0x559f,0x965e,0xae1b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349d,0x349d,0x34bd,0x34de,0x34de,0x3cdd,0x451d,0x4d5e,0x4d5f,0x455f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349d,0x349d,0x34bd,0x34de,0x3cde,0x3cfd,0x451e,0x4d5e,0x455e,0x455f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349d,0x349d,0x34bd,0x34de,0x3cfe,0x451e,0x4d3e,0x4d5e,0x453e,0x453f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0xd6fe,0xd6fe,0xe75f,0xd71f,0xceff,0x6d3d,0xdf5f,0xd71f,0xd71f,0x961e,0xd73f,0xd73f,0xe77f,0xd73f,0xcf1f,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0xe75f,0x2c5d,0x2c7d,0x7d7e,0xbebe,0x349d,0x34bd,0x3cdd,0x451d,0x453e,0xe77f,0x451e,0x3d1e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe7b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0xe75f,0x2c5d,0x2c7d,0x7d7e,0xdf5f,0xb67e,0xb67e,0x4cfd,0x451d,0x453e,0xe77f,0x3d1e,0x3d1e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe7c, +0xb5d9,0x4398,0x239b,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3d,0xe75f,0x2c5d,0x2c7d,0x7d7e,0xceff,0x757e,0x7d9e,0x44fd,0x451d,0x451e,0xe77f,0x3d1e,0x3d1e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe7c, +0xb5d9,0x4398,0x239b,0x23db,0x23db,0x23dc,0x23fc,0x2c1c,0x2c1c,0x2c3c,0x2c3d,0xe75f,0x2c5d,0x2c7d,0x7d7e,0xbebe,0x349d,0x3cbd,0x44fe,0x451e,0x451e,0xe77f,0x3d1e,0x3d1e,0x3d3f,0x3d5f,0x455f,0x457f,0x55bf,0x965e,0xa61b,0xbe7b, +0xb5d9,0x4bb7,0x239a,0x23bc,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c3c,0x2c3d,0xe75f,0x2c5d,0x2c7d,0x7d7e,0xbebe,0x3c9d,0x44dd,0x451e,0x451e,0x3d1e,0xe77f,0x3d1e,0x3d1e,0x3d3f,0x3d5e,0x455e,0x457e,0x5ddf,0x963e,0x9dfa,0xc69b, +0xb5d9,0x5bf7,0x237a,0x23bc,0x23dc,0x23db,0x23fc,0x241c,0x2c1c,0x2c3c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349c,0x3cbc,0x44dd,0x451e,0x3d1e,0x3cfe,0x3cfe,0x3d1e,0x3d1e,0x3d3e,0x455e,0x455e,0x4d7e,0x6dfe,0x963d,0x9dda,0xc6bb, +0xb5d9,0x7497,0x2b78,0x23bc,0x23dc,0x23fb,0x23fb,0x241c,0x241c,0x2c3c,0x2c5c,0x2c5c,0x2c7c,0x2c7c,0x347c,0x349c,0x3cdc,0x44fd,0x44fd,0x3cfe,0x3cfe,0x3cfe,0x3cfe,0x3d1e,0x453e,0x455e,0x4d5d,0x557d,0x75fd,0x95fb,0x9dfa,0xcefc, +0xb5d9,0x8d59,0x3b97,0x239b,0x23bc,0x23fb,0x23fb,0x241c,0x2c1c,0x2c3c,0x2c3c,0x2c5c,0x2c5d,0x347c,0x347c,0x3cbc,0x44dd,0x44fd,0x3cfd,0x3cdd,0x3cdd,0x3cfd,0x3cfe,0x3d1e,0x453e,0x453d,0x4d7d,0x5d9d,0x7dfc,0x8dba,0xae3a,0xd71c, +0x0000,0xb61b,0x6437,0x3378,0x239a,0x23db,0x23fb,0x2bfc,0x2c1c,0x2c1c,0x2c3c,0x2c3c,0x2c5d,0x345c,0x3c7c,0x3c9c,0x44dd,0x3cdd,0x3cdd,0x34dd,0x3cdd,0x3cdd,0x3cfe,0x3d1e,0x3d1e,0x453e,0x557d,0x65bd,0x7dbb,0x95b9,0xc69b,0x0861, +0x0000,0xcebd,0x8d39,0x53f7,0x3398,0x2b9a,0x2bba,0x2bba,0x2bda,0x33db,0x33fb,0x33fb,0x341c,0x343b,0x3c5b,0x447b,0x449c,0x3c7c,0x3c7c,0x3c9c,0x3c9c,0x3c9c,0x3cbc,0x3cdc,0x3cdc,0x44fc,0x555c,0x6d9c,0x7d9b,0xa5fa,0xd6bb,0x0861, +0x0000,0x0000,0xbe3b,0x84f8,0x5c17,0x53f8,0x53f9,0x53f9,0x5419,0x5419,0x5419,0x543a,0x543a,0x5c5a,0x5c79,0x649a,0x5c9a,0x5c9a,0x5c9a,0x5c9a,0x5cba,0x5cba,0x5cbb,0x5cdb,0x5cdb,0x64fb,0x6d3b,0x7d9a,0x95fa,0xc6bc,0x0000,0x0861, +0x0000,0x0000,0xdf1d,0xb63b,0x9579,0x8d19,0x8d19,0x8d19,0x8d19,0x8d39,0x8d39,0x8d39,0x8d3a,0x8d39,0x9559,0x9579,0x9579,0x957a,0x957a,0x955a,0x957a,0x957a,0x957a,0x959a,0x959a,0x959a,0x9dba,0xa61a,0xbe9b,0xdf3d,0x0000,0x0861, +0x0000,0x0000,0x0000,0xdf3d,0xc6bc,0xc67b,0xc67b,0xc65b,0xc67b,0xc67b,0xc67b,0xc67b,0xbe5b,0xc67b,0xc69b,0xc69b,0xc69b,0xc69b,0xc69c,0xc67b,0xc67b,0xc69b,0xc69b,0xc69b,0xc69b,0xce9b,0xc6bc,0xcedb,0xd6fb,0x0000,0x0000,0x0861}; + + diff --git a/MCUME_teensy/teensymsx/bmpvbar.h b/MCUME_teensy/teensymsx/bmpvbar.h new file mode 100644 index 0000000..2fd0b35 --- /dev/null +++ b/MCUME_teensy/teensymsx/bmpvbar.h @@ -0,0 +1,152 @@ +const uint16_t PROGMEM bmpvbar[] = { +0x0020,0x0094, +0x0000,0x0000,0x0000,0xad96,0xdf3d,0xd6fc,0xd6fc,0xd6fd,0xd6fd,0xd71d,0xdf1d,0xd71d,0xd71c,0xd71d,0xd71d,0xd71d,0xd71d,0xd71d,0xdf1d,0xdf1d,0xdf1d,0xdf1d,0xdf1d,0xdf1d,0xdf1d,0xdf1d,0xdf3d,0xbe18,0x0000,0x0000,0x0000,0x0861, +0x0000,0x0000,0xbe39,0xcedc,0xb63b,0xadfa,0xadfb,0xadfb,0xadfb,0xadfb,0xae1b,0xae1b,0xae1b,0xae1b,0xae1b,0xae1b,0xae3b,0xae3b,0xae3b,0xae3b,0xb63b,0xb63b,0xb63c,0xb63c,0xb65c,0xb65c,0xb65c,0xc69c,0xd71d,0x5b0c,0x0000,0x0861, +0x0000,0x0000,0xcedd,0xa5da,0x7d19,0x74d9,0x74da,0x74fa,0x74fa,0x74fa,0x74fa,0x751a,0x751a,0x751a,0x753a,0x753b,0x7d3b,0x7d3b,0x7d5b,0x7d5b,0x7d5b,0x7d7b,0x7d7b,0x7d7b,0x7d9c,0x7d9c,0x8ddb,0x9e1b,0xae7b,0xd71d,0x0000,0x0861, +0x0000,0xdf3d,0xa5fb,0x74da,0x4c59,0x445a,0x3c5a,0x447b,0x447b,0x447b,0x449b,0x449b,0x44bb,0x44bb,0x44db,0x4cdb,0x4cdc,0x4cfc,0x4cfc,0x4d1c,0x4d1c,0x4d3c,0x4d3c,0x555d,0x555d,0x557c,0x65bc,0x7dfb,0x961b,0xbe9c,0xad96,0x0861, +0x0000,0xc69b,0x7d1a,0x443a,0x345b,0x2c7c,0x2c7c,0x349c,0x349c,0x34bc,0x34bc,0x34dc,0x34dc,0x3cfd,0x3cfd,0x3cfd,0x3d1d,0x3d1d,0x453d,0x455e,0x455e,0x455e,0x457e,0x4d9e,0x4d9e,0x55be,0x5dfd,0x761c,0x8e1c,0xa63b,0xd6fc,0x0861, +0xad96,0xadfa,0x5c59,0x2c3b,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x453e,0x455e,0x457e,0x457e,0x457e,0x459f,0x4dbf,0x4dbf,0x55de,0x5dfe,0x6e1d,0x8e5d,0x9e3c,0xbe9c,0x8430, +0xd6fd,0x8d39,0x3c1a,0x2c5c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x55fe,0x65fe,0x8e7e,0x9e7d,0xae5c,0xdf3d, +0xcebc,0x74b9,0x343b,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x5dfe,0x7e5e,0x9e9e,0xa65c,0xd6fd, +0xc67c,0x5c5a,0x2c3b,0x247c,0x249c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4dde,0x55de,0x763f,0x9e9e,0xa65c,0xcedc, +0xbe5b,0x543a,0x245c,0x247c,0x2c9c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4dde,0x55de,0x661f,0xa69e,0xae5b,0xcedc, +0xbe3b,0x543a,0x245c,0x2c7c,0x2c9c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x55de,0x55fe,0x5e1e,0xa69d,0xb65b,0xcebc, +0xbe3a,0x543a,0x245c,0x2c7c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbe,0x55de,0x55fe,0x5dfe,0xa69d,0xb65b,0xcebc, +0xbe3a,0x545a,0x245c,0x2c7c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbe,0x55de,0x55fe,0x5dfe,0xa69e,0xb67b,0xc6bc, +0xbe3a,0x5459,0x2c5c,0x2c7c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x55be,0x4dde,0x55ff,0x5e1f,0xa69e,0xb67c,0xc6bc, +0xbe3a,0x5459,0x2c5c,0x2c7d,0x2c7d,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1e,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x55be,0x4ddf,0x55ff,0x661f,0xa6be,0xb67c,0xc6bc, +0xbe3a,0x5459,0x245c,0x2c7c,0x2c9c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x351d,0x3d1e,0x3d1e,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x4d9f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x351e,0x3d1e,0x3d1e,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x351e,0x3d1e,0x3d1e,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1e,0x3d3e,0x453e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d3d,0x3d3e,0x453e,0x455e,0x457e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x3cdd,0x3cfd,0x3d1d,0x3d3d,0x3d3d,0x3d3d,0x453e,0x455e,0x455e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x3cfd,0x3cfd,0x3d1e,0x3d3e,0x3d3d,0x3d1d,0x3d3e,0x3d3e,0x455e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bc,0x34dd,0x34fd,0x3cfd,0x3d1e,0x3d3e,0x3d3e,0x3d3d,0x3d1d,0x3d1e,0x3d3e,0x3d3e,0x455e,0x457e,0x459e,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bc,0x34dd,0x3cfd,0x3d1d,0x453e,0x3d5e,0x3d5e,0x453d,0x451d,0x3d1d,0x351e,0x3d1e,0x3d3e,0x457e,0x459e,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34dd,0x34fd,0x3d1d,0x453d,0x455e,0x457e,0x455e,0x4d3d,0x4d3d,0x3d1d,0x34fe,0x351d,0x3d1d,0x3d5e,0x457e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34dd,0x34fd,0x3d3e,0x457e,0x457e,0x457e,0x4d5d,0x5d7d,0x657d,0x451d,0x34fd,0x34fd,0x34fd,0x3d3e,0x457e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34dd,0x3d1d,0x455e,0x459e,0x459e,0x457d,0x5d5c,0x85dd,0x861d,0x5d5d,0x3cfd,0x34dd,0x34dd,0x351d,0x3d5e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34fd,0x3d3d,0x459e,0x4dbe,0x4dbe,0x4d5d,0x757c,0xae7d,0xaebe,0x75bd,0x451d,0x34dd,0x2cbd,0x34fd,0x3d3e,0x457e,0x4dbe,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2cbd,0x2cbd,0x351d,0x455d,0x45be,0x4ddf,0x459e,0x553c,0x95db,0xcf1e,0xcf3e,0x963e,0x553d,0x34dd,0x2cbc,0x2cbd,0x3d1d,0x455d,0x4dbe,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2cbd,0x34dd,0x3d1d,0x459d,0x4dbe,0x4ddf,0x459e,0x6d5b,0xb67c,0xe79e,0xe79f,0xb6be,0x6d7d,0x3cdd,0x2c9c,0x2cbd,0x34fd,0x455d,0x4dbe,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9c,0x2cbd,0x34dd,0x3d3d,0x4d9d,0x4dde,0x4dbe,0x4d7d,0x85bb,0xcefd,0xf7bf,0xefdf,0xcf3e,0x8ddd,0x44dd,0x349c,0x2c9c,0x34dd,0x3d3e,0x459e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9d,0x2cbd,0x34fd,0x455d,0x4dbd,0x55de,0x4dbe,0x5d5c,0xa61b,0xe75d,0xffdf,0xf7df,0xe77e,0xae5d,0x5d1d,0x34bc,0x349c,0x34bc,0x3d1e,0x459f,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x249c,0x2c9c,0x2cbc,0x3cfd,0x455d,0x4dde,0x55fe,0x4d9d,0x757b,0xbe9c,0xef9e,0xffde,0xffdf,0xefbe,0xc6de,0x757d,0x3cbd,0x2c9c,0x349c,0x351d,0x457e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x247c,0x2c9c,0x2cbc,0x3cfd,0x457e,0x4dde,0x4dde,0x557c,0x8ddb,0xd71d,0xf7be,0xffde,0xffdf,0xf7df,0xdf5e,0x95fd,0x4cdd,0x2c9d,0x2c9c,0x34fd,0x457e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x247c,0x2c9c,0x34bc,0x3cfd,0x459e,0x4dff,0x4dbe,0x657b,0xae5b,0xe77e,0xffde,0xffde,0xffdf,0xf7df,0xe79e,0xae7d,0x5d3d,0x2c9d,0x2c9c,0x34dd,0x455e,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x34bc,0x3d1d,0x459e,0x4ddf,0x4d9d,0x7d9b,0xc6dc,0xefbf,0xffde,0xffde,0xffdf,0xf7ff,0xf7be,0xc6fe,0x7d9d,0x349d,0x2c9c,0x34dd,0x455e,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x34bc,0x3d1d,0x459f,0x4dde,0x557c,0x9dfb,0xdf5d,0xf7df,0xffde,0xffde,0xffff,0xffff,0xf7de,0xdf5e,0x9e1e,0x4cdd,0x2c9c,0x34fd,0x455e,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x34bc,0x3d1d,0x457e,0x4d9d,0x6d7b,0xb67c,0xef9e,0xf7ff,0xffde,0xffdf,0xffff,0xffff,0xf7de,0xef9e,0xb69e,0x6d3c,0x349c,0x34fd,0x457e,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x34bc,0x3cfd,0x457e,0x4d5c,0x859a,0xcefd,0xf7be,0xfffe,0xfffe,0xffff,0xffff,0xffff,0xffde,0xf7be,0xd71e,0x859c,0x3cbc,0x34fd,0x3d7e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x34bd,0x3cfd,0x455e,0x553b,0x9dfb,0xdf5e,0xf7df,0xfffe,0xfffe,0xffff,0xffff,0xffff,0xffde,0xf7df,0xe77e,0xa61d,0x54fc,0x351e,0x457e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x247c,0x2c9d,0x34bd,0x34fd,0x453d,0x5d3b,0xae5c,0xe77e,0xf7df,0xf7df,0xf7df,0xf7df,0xf7df,0xf7df,0xf7bf,0xf7bf,0xe77e,0xae7d,0x5d1c,0x3d1e,0x459e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x247c,0x2c9d,0x34bd,0x34dd,0x3d1d,0x653c,0xa65d,0xd75e,0xe79f,0xe79f,0xe79f,0xe79f,0xe79f,0xe77f,0xe77f,0xdf7f,0xd73e,0xa67d,0x5d3d,0x3d3e,0x459f,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x349c,0x34dd,0x3d1d,0x5d3d,0x963d,0xbede,0xc71f,0xc71f,0xc6ff,0xc6ff,0xbeff,0xbede,0xbede,0xbebe,0xb69d,0x8e1d,0x553d,0x3d5e,0x459f,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x349c,0x34bd,0x34fe,0x4d5e,0x75de,0x965e,0x967f,0x965f,0x965f,0x963e,0x961e,0x8e1e,0x8dfd,0x8ddd,0x85bd,0x6d7d,0x453d,0x3d5e,0x459f,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x349c,0x34bd,0x34fe,0x455e,0x5d9e,0x6dde,0x6dde,0x6dde,0x65be,0x659e,0x657e,0x5d5d,0x5d3d,0x5d3c,0x551c,0x4d1d,0x3d3d,0x457e,0x4d9f,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9d,0x349c,0x34bc,0x34dd,0x3d3e,0x4d7e,0x559e,0x559e,0x4d9e,0x4d7e,0x455e,0x451d,0x451d,0x3cfd,0x3cdd,0x3cdd,0x3cfd,0x3d5e,0x459e,0x4d9f,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9d,0x349d,0x34bc,0x34dd,0x3d1e,0x455e,0x457e,0x4d9e,0x4d7e,0x455e,0x453e,0x3d1d,0x3d1d,0x34fd,0x34fd,0x34fe,0x3d1e,0x3d7e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9d,0x2c9d,0x34bc,0x34dc,0x34fd,0x3d3e,0x455e,0x457e,0x457e,0x455e,0x3d3e,0x3d3e,0x3d1d,0x351d,0x34fd,0x3d1e,0x3d3e,0x457e,0x4d9e,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9d,0x2c9d,0x2cbc,0x34bc,0x34dd,0x3d1d,0x3d3e,0x455e,0x455e,0x3d5e,0x3d3e,0x3d3e,0x3d1e,0x3d1d,0x3d1d,0x3d3e,0x455e,0x457e,0x4d9e,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9d,0x2c9d,0x2cbd,0x34bd,0x34dd,0x3cfd,0x3d1d,0x3d3e,0x3d3e,0x3d3e,0x3d3e,0x3d3e,0x3d1e,0x3d1d,0x3d3d,0x455e,0x457e,0x4d9e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9c,0x2cbd,0x2cbd,0x34bd,0x34dd,0x34dd,0x3cfd,0x3d1d,0x3d3e,0x3d3e,0x3d3e,0x3d3e,0x3d1e,0x3d3e,0x453e,0x457e,0x457e,0x4d9f,0x4d9f,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2cbd,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x3d3e,0x3d3e,0x3d3e,0x455e,0x457e,0x459e,0x4d9f,0x4d9f,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2cbd,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x453e,0x453e,0x457e,0x457e,0x459e,0x4d9f,0x4d9f,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2cbd,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x453e,0x455e,0x457e,0x457e,0x459e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x453e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6be,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dde,0x4dde,0x55ff,0x5e1f,0xa6be,0xb67c,0xc6bc, +0xbe3a,0x543a,0x245c,0x247d,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x2cbd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x453e,0x455e,0x457e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4dde,0x4dde,0x55ff,0x5e1f,0xa69e,0xb67c,0xc6bc, +0xc63b,0x543a,0x245c,0x247d,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x2cbd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1e,0x3d3e,0x3d3e,0x3d3e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4dde,0x55de,0x55df,0x5e1f,0xa69e,0xb65c,0xc6bc, +0xc63b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x2cbd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1e,0x3d3e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x55de,0x55df,0x5e1f,0xa69e,0xb63b,0xc6bc, +0xc63b,0x5439,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d3e,0x453e,0x455e,0x455e,0x457e,0x457e,0x459e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x4dde,0x55df,0x5e3f,0xa69e,0xb65b,0xc6bc, +0xbe3b,0x5439,0x245b,0x247c,0x2c7c,0x2c7c,0x2c9c,0x349d,0x34bd,0x34dd,0x34dd,0x3cfd,0x3cfd,0x3d1d,0x3d1d,0x3d3e,0x453e,0x455e,0x455e,0x457e,0x457e,0x457e,0x4d9e,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x5e3f,0xa6be,0xb65c,0xc6bc, +0xbe3b,0x5439,0x2c5b,0x247c,0x2c7c,0x2c7c,0x2c9c,0x349d,0x34bd,0x34bd,0x34dd,0x3cdd,0x3cfd,0x3cfd,0x3d1d,0x3d1d,0x453e,0x453e,0x455e,0x455e,0x457e,0x457e,0x4d9e,0x4d9e,0x4dbe,0x4dbf,0x55df,0x55ff,0x5e1f,0xa6be,0xb67c,0xce9c, +0xbe3b,0x5439,0x2c3b,0x2c3c,0x2c5c,0x2c5c,0x2c7c,0x2c9c,0x349c,0x349c,0x34bc,0x34bc,0x3cdc,0x3cdd,0x3cfd,0x3cfd,0x3d1d,0x451d,0x453d,0x453e,0x455e,0x455e,0x457e,0x4d7e,0x4d9e,0x4d9e,0x4dbe,0x55be,0x5dfe,0x967e,0xae5c,0xc69c, +0xbe3b,0x5418,0x33f9,0x341a,0x343b,0x343b,0x345b,0x347b,0x347b,0x3c7b,0x3c9b,0x3c9b,0x3cbc,0x3cbc,0x44dc,0x44dc,0x44dc,0x44fc,0x451c,0x451d,0x451d,0x4d3d,0x4d3d,0x4d5d,0x4d5d,0x4d5d,0x557c,0x559c,0x55bc,0x861c,0x9dfb,0xc69c, +0xbe3b,0x5c38,0x4439,0x4c5a,0x4c5a,0x4c7a,0x547a,0x549a,0x549a,0x549a,0x54ba,0x54ba,0x54bb,0x5cdb,0x5cdb,0x5cfb,0x5cfb,0x5cfb,0x5d1b,0x5d1b,0x5d1b,0x5d3b,0x5d3c,0x655c,0x655c,0x5d5b,0x5d7b,0x659b,0x659b,0x85db,0x8db9,0xc69c, +0xbe3b,0x6c78,0x64ba,0x6cda,0x6cfa,0x6cfa,0x751a,0x751a,0x751a,0x751a,0x753a,0x753b,0x753b,0x755b,0x755b,0x755b,0x7d5b,0x7d7b,0x7d7b,0x7d7b,0x7d7b,0x7d9b,0x7d9b,0x7d9b,0x7dbb,0x7dbb,0x7ddb,0x7ddb,0x7ddc,0x8dfb,0x9599,0xc69c, +0xbe3b,0x74d9,0x7d5b,0x857b,0x857c,0x859b,0x859b,0x859b,0x85bc,0x85bc,0x8dbc,0x8dbc,0x8ddc,0x8ddc,0x8ddc,0x8ddc,0x8dfc,0x8dfc,0x8dfc,0x8dfc,0x8e1c,0x8e1c,0x8e1c,0x961d,0x963d,0x8e3d,0x8e5c,0x965c,0x965d,0xa65c,0xa5fa,0xc69c, +0xbe3b,0x74da,0x7d7c,0x859c,0x859c,0x85bc,0x85bd,0x85bd,0x85bd,0x85dd,0x85dd,0x8ddd,0x8dfd,0x8dfd,0x8dfd,0x8dfd,0x8e1d,0x8e1d,0x8e3d,0x8e3d,0x8e3e,0x8e3e,0x8e5e,0x8e5e,0x8e5e,0x967e,0x967d,0x967e,0x9e7e,0xb6be,0xae5b,0xc6bc, +0xbe3b,0x6cba,0x6d1c,0x6d3c,0x6d3c,0x6d5d,0x6d5d,0x757d,0x757d,0x757d,0x759d,0x759d,0x75bd,0x75bd,0x75be,0x75de,0x75de,0x75de,0x75fe,0x75fe,0x761e,0x7e1e,0x7e1e,0x7e3f,0x7e3f,0x7e5f,0x7e5e,0x865e,0x8e7f,0xb6de,0xb67c,0xc6bc, +0xbe3b,0x5c5a,0x4c9c,0x4cbc,0x4cbc,0x4cdc,0x4cdd,0x4cfd,0x4cfd,0x551d,0x551d,0x553d,0x553d,0x555d,0x555d,0x555d,0x557e,0x5d7e,0x5d9e,0x5dbe,0x5dbe,0x5dbe,0x5dde,0x5ddf,0x65ff,0x65ff,0x65ff,0x661f,0x763f,0xaebf,0xb67c,0xc6bc, +0xbe3b,0x5439,0x2c5c,0x2c7c,0x2c7c,0x349c,0x349c,0x34bd,0x34bd,0x34dd,0x3cdd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3d,0x453e,0x455e,0x457e,0x457e,0x457e,0x459e,0x4d9e,0x4dbf,0x4dbf,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d3d,0x3d3e,0x3d5e,0x455e,0x457e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d3d,0x3d3e,0x3d5e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3cfd,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x4d9f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x4d9f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1e,0x3d1e,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x459f,0x459f,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x453e,0x455e,0x457e,0x457e,0x459e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1e,0x3d3e,0x3d3e,0x455e,0x457e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d3e,0x3d3e,0x3d3e,0x455e,0x455e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x3d3e,0x3d3e,0x3d3e,0x455e,0x457e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d3d,0x3d3e,0x3d3e,0x3d1d,0x3d1d,0x3d3e,0x3d3e,0x455e,0x459e,0x459e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bc,0x34dd,0x34fd,0x3d1d,0x3d3e,0x3d3e,0x3d3e,0x3d3e,0x3d1d,0x3d1d,0x3d1d,0x3d3d,0x3d5e,0x457e,0x459e,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34dc,0x34fd,0x3d1d,0x3d3e,0x455e,0x455e,0x455e,0x3d3e,0x3d1d,0x3d1d,0x3d1d,0x351d,0x3d3e,0x455e,0x459e,0x4dbf,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34dd,0x34fd,0x3d3e,0x455e,0x457e,0x457e,0x455e,0x3d3e,0x3d1d,0x3d1d,0x34fd,0x34fd,0x351d,0x3d3e,0x457e,0x4d9f,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34dd,0x3d1d,0x455e,0x457e,0x459e,0x457e,0x457e,0x453e,0x3d1d,0x34fd,0x34fd,0x34dd,0x34fd,0x3d1d,0x455e,0x459f,0x4dbf,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34fd,0x3d3e,0x457e,0x459f,0x459f,0x459f,0x457e,0x453e,0x3d1d,0x34fd,0x34dd,0x2cdd,0x2cdd,0x34fd,0x3d3e,0x459e,0x4dbf,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x34bd,0x34fd,0x455e,0x4d9e,0x4dbe,0x4dbf,0x459f,0x457e,0x455d,0x3d1d,0x3cfd,0x34dd,0x34bd,0x34dd,0x34dd,0x3d1d,0x457e,0x45be,0x4dbe,0x4ddf,0x55ff,0x65ff,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x34dd,0x3d1d,0x457d,0x5dbe,0x65de,0x65de,0x5dbf,0x5d9e,0x5d7d,0x5d5d,0x553d,0x551d,0x4cfd,0x4cfd,0x44dc,0x3cdd,0x3d5e,0x459e,0x4dbe,0x4ddf,0x55ff,0x65ff,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x34dd,0x3d1d,0x4d7d,0x75fd,0x8e3e,0x8e3e,0x8e1e,0x8e1e,0x8dfe,0x8dfd,0x8dde,0x85de,0x7dbd,0x759d,0x653d,0x44dd,0x3d3d,0x4d9e,0x4dde,0x55df,0x55ff,0x65ff,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x249c,0x2c9d,0x2c9c,0x34dd,0x3d3d,0x5d5c,0x8e3c,0xb6de,0xbede,0xbedf,0xbedf,0xb6be,0xb6be,0xbebe,0xb69e,0xb69e,0xa65d,0x85bd,0x4cfd,0x3d1d,0x4d9e,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x249c,0x2c9d,0x2c9c,0x3cfd,0x3d3d,0x5d5b,0xa67c,0xd75e,0xdf7e,0xdf7f,0xdf7f,0xdf7f,0xdf5e,0xdf5e,0xdf5e,0xdf3e,0xcf1e,0x9e3d,0x5d1d,0x3d1d,0x4d7e,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x249c,0x2c9d,0x349c,0x3cfd,0x3d3d,0x5d5c,0xae7c,0xe77e,0xf7be,0xf7bf,0xefbf,0xefdf,0xefbf,0xefbf,0xf7be,0xef9e,0xdf5e,0xa65d,0x5d1d,0x3cfd,0x457e,0x4dbf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x249c,0x2c9c,0x34bc,0x3cfd,0x3d5e,0x5d7c,0xa63c,0xdf7e,0xf7de,0xffdf,0xffdf,0xf7ff,0xf7df,0xffdf,0xffde,0xf7be,0xdf5e,0x9e1d,0x4cfd,0x34fd,0x455e,0x4dbf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c9c,0x2c9c,0x34bc,0x3cfd,0x457e,0x557d,0x8ddb,0xcf1d,0xf7be,0xffde,0xffdf,0xffff,0xffff,0xffde,0xffde,0xefbe,0xcf1d,0x85bc,0x44bc,0x34fd,0x455e,0x4dbf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc69c, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x34bc,0x3d1d,0x457e,0x4d9e,0x759b,0xbe9c,0xef9e,0xffbe,0xffde,0xfffe,0xffde,0xffde,0xffde,0xef9e,0xbebd,0x6d3c,0x349c,0x34fe,0x455e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc69c, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x34bd,0x3d1d,0x457e,0x4dde,0x5d7c,0x9e1c,0xdf5e,0xf7de,0xffde,0xffde,0xf7de,0xffde,0xffde,0xe75e,0xa63c,0x54db,0x347c,0x34fd,0x457e,0x4dbf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc69c, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x34bd,0x3d1d,0x457e,0x55de,0x559d,0x85bb,0xcefd,0xf7bf,0xffdf,0xffdf,0xf7df,0xffdf,0xf7be,0xd71e,0x85bc,0x449c,0x2c7c,0x34fd,0x457e,0x4dbe,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc69c, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x2cbd,0x3cfd,0x457d,0x55de,0x55be,0x6d7c,0xb67c,0xef9e,0xffdf,0xffdf,0xf7ff,0xf7df,0xef9e,0xb69e,0x6d3c,0x349c,0x2c9d,0x34fd,0x457e,0x4dbe,0x55df,0x55ff,0x5e1f,0xa6bf,0xb67c,0xc69c, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x2c9d,0x34fd,0x455e,0x4dbe,0x55df,0x5d7c,0x95fb,0xdf3e,0xf7de,0xffde,0xf7ff,0xf7df,0xdf5e,0x961d,0x4cdc,0x2c7d,0x2c9d,0x3d1d,0x457e,0x4dbe,0x55df,0x55ff,0x5e1f,0xa6be,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x34dd,0x455e,0x4dbf,0x55df,0x557d,0x7d9c,0xc6dd,0xf7be,0xffde,0xf7fe,0xefbe,0xc6fe,0x759d,0x3cbc,0x2c9d,0x2cbd,0x3d1e,0x459e,0x4dbe,0x55df,0x55ff,0x5e1f,0xa69e,0xb67c,0xcebc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x34dd,0x3d3d,0x4d9e,0x4ddf,0x4d9e,0x655c,0xae5c,0xef7e,0xffde,0xffde,0xe79e,0xae9e,0x5d3c,0x349c,0x2c9d,0x34dd,0x3d3e,0x4d9e,0x4dbe,0x55df,0x55ff,0x661f,0xa69e,0xb67c,0xcebc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x34dd,0x3d1d,0x457e,0x4dbf,0x4dbe,0x555d,0x95dc,0xdf1d,0xffde,0xf7de,0xdf5e,0x961d,0x4cfc,0x349c,0x2cbd,0x34fd,0x3d5e,0x4d9e,0x4dbf,0x55df,0x55df,0x661f,0xa69e,0xb67c,0xcebc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9d,0x2c9c,0x34bc,0x34fd,0x455e,0x4d9e,0x4dbe,0x4d7d,0x757c,0xc6bc,0xf79e,0xefbe,0xc6de,0x759d,0x3cdd,0x34bc,0x34dd,0x351d,0x457e,0x4dbf,0x4dbf,0x55df,0x55df,0x661f,0xa6be,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbc,0x34dd,0x3d3d,0x457e,0x4d9e,0x4d7e,0x5d3c,0xa61c,0xdf5d,0xdf5e,0xa65e,0x5d3d,0x34dd,0x34dd,0x34fd,0x3d3d,0x457e,0x4dbf,0x4ddf,0x55df,0x55df,0x6e1f,0xaebe,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbc,0x34dc,0x3d1d,0x455e,0x457e,0x4d7e,0x4d5d,0x85bc,0xbebd,0xbede,0x85de,0x44fd,0x34dd,0x34dd,0x351d,0x455e,0x459f,0x4dbf,0x4ddf,0x55df,0x5dff,0x6e3f,0xaebe,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbc,0x34dd,0x34fd,0x3d3d,0x455d,0x4d7e,0x4d5e,0x655d,0x961d,0x963e,0x657e,0x3cfd,0x34dd,0x34fd,0x3d3e,0x459e,0x4dbf,0x4dbf,0x55df,0x55df,0x5dff,0x6e3f,0xaebe,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x3d1d,0x3d3d,0x455d,0x455e,0x4d5d,0x6d9d,0x6d9e,0x4d3e,0x3cfe,0x34fd,0x3d1e,0x455e,0x459e,0x4d9e,0x4dbe,0x55de,0x55de,0x5e1f,0x6e3f,0xaebe,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34fd,0x3d1d,0x3d3d,0x453e,0x453e,0x4d5e,0x4d5e,0x3d3e,0x3d1e,0x3d1e,0x3d3e,0x457e,0x459e,0x4d9e,0x4dbe,0x55de,0x5dfe,0x5e1f,0x6e3f,0xa6be,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34fd,0x3d1d,0x3d1d,0x453d,0x453e,0x3d3e,0x3d3e,0x3d3d,0x3d3d,0x3d3e,0x3d5e,0x457f,0x459e,0x4d9e,0x55be,0x5dde,0x5dfe,0x5e1f,0x661f,0xa6be,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x351d,0x3d1d,0x453d,0x3d3e,0x3d3e,0x3d3d,0x455d,0x455e,0x457e,0x457f,0x459f,0x4d9e,0x55be,0x5dde,0x5dff,0x5e1f,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x351d,0x3d1d,0x3d1d,0x3d3d,0x3d3e,0x453d,0x455d,0x457e,0x457e,0x457f,0x4d9f,0x55be,0x5dde,0x5dfe,0x5dff,0x5dff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x351d,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x457f,0x4d9e,0x55be,0x5dde,0x5dff,0x5dff,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x457e,0x4d9e,0x55be,0x5dde,0x5dff,0x55ff,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x4d7e,0x55be,0x5ddf,0x5dff,0x55df,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x4d9e,0x55be,0x5ddf,0x55df,0x55df,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x457e,0x559e,0x55de,0x55df,0x55df,0x55df,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x4d7e,0x55be,0x5dde,0x55df,0x55df,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x457e,0x4d9e,0x55be,0x55de,0x55bf,0x4dbf,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x4d7e,0x55be,0x55be,0x55be,0x4dbe,0x4dbf,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x455e,0x4d9e,0x55be,0x55be,0x4dbe,0x4dbe,0x4dbf,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x543a,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x3d1d,0x3d1d,0x3d1d,0x3d3e,0x455e,0x4d7e,0x559e,0x55be,0x55be,0x4d9e,0x4dbf,0x4dbf,0x4ddf,0x55df,0x55ff,0x661f,0xa6bf,0xb67c,0xc6bc, +0xbe3b,0x5439,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1e,0x3d1e,0x3d3e,0x455e,0x4d7e,0x559e,0x55be,0x4d9e,0x4d9e,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa6bf,0xb67c,0xcebc, +0xbe5b,0x5459,0x245c,0x247c,0x2c7c,0x2c9c,0x2c9d,0x34bd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1e,0x3d1e,0x3d1e,0x453d,0x4d5e,0x559e,0x559e,0x4d9e,0x4d9f,0x459f,0x4dbf,0x4dbf,0x4ddf,0x4ddf,0x55ff,0x661f,0xa69e,0xb67c,0xcedc, +0xbe7b,0x5c59,0x2c3b,0x247c,0x2c7c,0x2c9c,0x2c9d,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x351d,0x3d1e,0x3d1d,0x453d,0x4d5d,0x559e,0x4d9e,0x4d9e,0x459f,0x459f,0x4d9f,0x4dbf,0x4ddf,0x55df,0x55ff,0x6e3f,0xa69e,0xae5b,0xcedc, +0xc69c,0x6c98,0x2c3b,0x247d,0x2c7c,0x2c9c,0x2c9c,0x2cbd,0x34bd,0x34dd,0x34dd,0x34fd,0x34fd,0x351d,0x3d1d,0x451d,0x4d3d,0x557d,0x559e,0x4d9e,0x4d9e,0x457e,0x459e,0x4d9f,0x4dbf,0x4dde,0x55de,0x55de,0x7e5e,0xa69d,0xae3b,0xd6fc, +0xd6fd,0x8519,0x341a,0x247c,0x2c7d,0x2c9c,0x2c9c,0x2cbc,0x2cbc,0x34dd,0x34fd,0x34fd,0x351d,0x351d,0x3d1d,0x453d,0x4d5d,0x559d,0x4d9e,0x4d7e,0x457e,0x457e,0x4d9e,0x4d9e,0x4dbe,0x55de,0x5dde,0x5dfe,0x8e5e,0xa65c,0xae5b,0xdf3d, +0xdf3d,0xa5ba,0x4c39,0x2c5c,0x247c,0x2c9c,0x2c9c,0x2cbc,0x34bc,0x34dd,0x34dd,0x34fd,0x34fd,0x3d1d,0x3d1c,0x453d,0x4d7d,0x4d9e,0x4d7e,0x457e,0x457e,0x457e,0x4d9e,0x4d9e,0x4dbe,0x55be,0x5dde,0x6e1e,0x8e5d,0x9e3b,0xbe7b,0xdf3c, +0x0000,0xbe7c,0x74d9,0x3c3a,0x2c5b,0x2c7c,0x2c9c,0x349c,0x34bc,0x34bd,0x34dd,0x34dd,0x34fd,0x3cfd,0x451c,0x4d3d,0x4d7d,0x4d7e,0x455d,0x455e,0x455e,0x457e,0x4d7e,0x4d9e,0x4d9e,0x55be,0x65fe,0x763e,0x8e1c,0xa61b,0xd6dc,0x0861, +0x0000,0xd6fd,0x9dba,0x6499,0x443a,0x345b,0x3c5b,0x3c7b,0x3c7b,0x3c7c,0x3c9c,0x3c9c,0x3cbc,0x44dc,0x4cfc,0x551c,0x553c,0x4d1c,0x451c,0x451d,0x453d,0x4d3d,0x4d5d,0x4d5d,0x4d7d,0x557d,0x65dd,0x7e1d,0x8e1c,0xb65b,0xdefc,0x0861, +0x0000,0x0000,0xc69c,0x9579,0x6cb9,0x649a,0x649a,0x649a,0x64ba,0x64ba,0x64ba,0x64db,0x64db,0x6cfb,0x6d1b,0x753b,0x6d3b,0x6d1b,0x6d1b,0x6d3b,0x6d3b,0x6d5b,0x6d5c,0x6d5c,0x6d5c,0x757c,0x7dbc,0x95fb,0xa65b,0xcefd,0x0000,0x0861, +0x0000,0x0000,0xe73d,0xc69c,0xa5da,0x9d9a,0x9d9a,0x9d9a,0xa59a,0xa5ba,0xa5ba,0x9dbb,0x9dbb,0xa5ba,0xa5da,0xa5fa,0xa5da,0xa5db,0xa5db,0xa5db,0xa5db,0xa5fb,0xa5fb,0xa5fb,0xa5fb,0xa61b,0xae3b,0xb67b,0xc6dc,0xe75e,0x0000,0x0861, +0x0000,0x0000,0x0000,0xe75d,0xd6fc,0xcebc,0xcebc,0xcebc,0xcebc,0xcebc,0xcebc,0xcebc,0xcebc,0xcebc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xd6dc,0xd6dc,0xd6fc,0xd71c,0xdf1c,0x0000,0x0000,0x0861}; + + diff --git a/MCUME_teensy/teensymsx/bmpvga.h b/MCUME_teensy/teensymsx/bmpvga.h new file mode 100644 index 0000000..d238658 --- /dev/null +++ b/MCUME_teensy/teensymsx/bmpvga.h @@ -0,0 +1,40 @@ +const uint16_t PROGMEM bmpvga[] = { +0x0020,0x0025,0x0000,0x0000,0x0000,0x9d34,0xd6fc,0xcebc,0xcebc,0xcebc,0xcebc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcedc,0xcefc,0xcefc,0xcedc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6fc,0xb596,0x0000,0x0000,0x0000,0x0861, +0x0000,0x0000,0xb5d7,0xbe9b,0xa5d9,0x9d99,0x9d79,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9d9a,0x9dba,0x9dba,0x9dba,0x9dda,0xa5ba,0xa5ba,0xa5da,0xa5da,0xa5db,0xa5db,0xa5db,0xa5fb,0xadfb,0xb63b,0xcedc,0x4a69,0x0000,0x0861, +0x0000,0x0000,0xc69c,0x8d59,0x6c78,0x6438,0x6438,0x6459,0x6459,0x6459,0x6479,0x6479,0x6479,0x6479,0x6499,0x6499,0x64ba,0x64ba,0x6cba,0x6cda,0x6cda,0x6cda,0x6cfa,0x6cfa,0x6cfb,0x6d1b,0x755a,0x8d9a,0xa61a,0xcefc,0x0000,0x0861, +0x0000,0xd6fc,0x959a,0x5c38,0x3bb8,0x3399,0x33b9,0x33ba,0x33da,0x33da,0x33fa,0x33fa,0x3c1a,0x3c1a,0x3c3a,0x3c3a,0x3c3b,0x3c5b,0x3c7b,0x3c7b,0x3c9b,0x3c9b,0x449c,0x44bc,0x44dc,0x44fc,0x553b,0x6d7a,0x859a,0xae5b,0x9d14,0x0861, +0x0000,0xbe5a,0x6c78,0x3b99,0x2b9a,0x23bb,0x23db,0x2bfb,0x2bfb,0x2bfb,0x29ab,0x2948,0x2948,0x2948,0x2928,0x2948,0x2928,0x2948,0x2928,0x2949,0x3334,0x3cdd,0x3cfe,0x3cfe,0x3d1e,0x453d,0x557d,0x659c,0x7dbb,0x95da,0xcebc,0x0861, +0x9d14,0x9d79,0x43b8,0x237a,0x23bb,0x23db,0x23fc,0x23fc,0x2c1c,0x2bfb,0x2169,0x736f,0x73b0,0x73b0,0x7bd0,0x6b4f,0x8411,0x6b4e,0x8411,0x4a4c,0x2ad2,0x3cfe,0x3d1e,0x3d1e,0x3d3e,0x455e,0x4d7e,0x5dbd,0x7dfc,0x8ddb,0xb63b,0x6b8e, +0xcebc,0x7c98,0x3378,0x23bb,0x23dc,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x216a,0x94b3,0x6b4e,0x738f,0x8c72,0x528c,0xa534,0x4a4b,0x9cf4,0x5acd,0x2af2,0x3cfe,0x3d1e,0x3d3f,0x3d3f,0x455e,0x457e,0x559e,0x7e1d,0x8e1c,0x9dfb,0xd71d, +0xbe5b,0x5c18,0x2379,0x23db,0x23dc,0x23dc,0x23fc,0x23fb,0x2af4,0x22b3,0x2129,0x52ad,0x630e,0x62ee,0x630e,0x62ee,0x630e,0x62ee,0x632e,0x39ca,0x220d,0x3355,0x3c39,0x3d3f,0x3d3f,0x3d5e,0x457e,0x4d7e,0x6dfe,0x8e3d,0x95fb,0xc6bc, +0xb61b,0x4bb9,0x239a,0x23db,0x23db,0x23dc,0x23fc,0x2378,0x3169,0x420b,0x41ea,0x39a9,0x39a9,0x39a9,0x39a9,0x39a9,0x39a9,0x39a9,0x31a9,0x39c9,0x420a,0x39ca,0x2a0d,0x3d3f,0x3d3f,0x3d5f,0x455e,0x457e,0x65de,0x8e3d,0x95fb,0xc69c, +0xb5fa,0x4399,0x239b,0x23db,0x23db,0x23dc,0x23fc,0x2378,0x3169,0x39ea,0x39c9,0x39c9,0x39c9,0x39c9,0x39c9,0x39c9,0x39c9,0x39c9,0x39c9,0x39c9,0x39ea,0x39ca,0x2a0d,0x3d3f,0x3d3f,0x3d5e,0x455e,0x457e,0x55be,0x963d,0xa5fa,0xbe7c, +0xadd9,0x4399,0x239b,0x23db,0x23db,0x23dc,0x23fc,0x2bfb,0x222e,0x3169,0x4a4b,0x4a4b,0x4a6b,0x4a6b,0x4a6b,0x4a6b,0x4a6b,0x4a6b,0x4a4b,0x4a4b,0x420a,0x2949,0x33f7,0x3d3f,0x3d3f,0x3d3e,0x455d,0x457e,0x559e,0x963d,0xadfa,0xbe7b, +0xadd9,0x4399,0x239b,0x23bb,0x23db,0x23fb,0x23fc,0x241c,0x22d4,0x41ea,0x7bcf,0x6b8e,0x4a6b,0x420a,0x420a,0x420a,0x420a,0x422a,0x5acc,0x7bef,0x632d,0x298a,0x3d1e,0x3d3f,0x3d3f,0x3d3e,0x455e,0x457e,0x4d9e,0x963d,0xadfa,0xbe7b, +0xadd9,0x4398,0x23bb,0x23bb,0x23db,0x23fb,0x23fc,0x241c,0x22d3,0x39ea,0x73ae,0x5aec,0x2928,0x4a4b,0x4a6c,0x4a4c,0x526c,0x39a9,0x3189,0x73ae,0x630d,0x298a,0x3cdd,0x3d3f,0x3d3e,0x453e,0x455e,0x457e,0x559e,0x963d,0xae1a,0xbe5b, +0xadd9,0x43b8,0x23bb,0x23bc,0x23dc,0x23dc,0x23fc,0x241c,0x22d3,0x39ea,0x73ae,0x5acc,0x3169,0x9d14,0xad75,0xa555,0xb5b6,0x6b4f,0x3188,0x73ae,0x630d,0x298a,0x3cdd,0x3d3f,0x453e,0x453e,0x455e,0x457e,0x559e,0x963e,0xa61b,0xbe7b, +0xadd9,0x43b8,0x23bb,0x23bc,0x23dc,0x23fc,0x23fc,0x241c,0x22d3,0x39ea,0x73ae,0x5acc,0x2948,0x73d0,0x7c11,0x7bf0,0x8431,0x528c,0x3189,0x73ae,0x630d,0x298a,0x3cde,0x3d3f,0x3d3f,0x453e,0x455e,0x457f,0x55bf,0x965e,0xa61b,0xbe7b, +0xadd9,0x43b8,0x23bb,0x23bc,0x23dc,0x23fc,0x23fc,0x241c,0x22d3,0x39ea,0x73ae,0x632d,0x3189,0x3168,0x3168,0x3168,0x3168,0x2968,0x420a,0x73ae,0x630d,0x298a,0x3cde,0x3d1f,0x3d3f,0x453e,0x455e,0x457f,0x559f,0x965e,0xa61b,0xbe7b, +0xb5d9,0x4398,0x23bb,0x23db,0x23dc,0x23fc,0x23fc,0x241c,0x22d3,0x39ea,0x738e,0x6b6e,0x5acc,0x528c,0x52ac,0x52ac,0x52ac,0x528b,0x630d,0x73ae,0x630d,0x298a,0x3cde,0x3d1f,0x3d3f,0x453f,0x455e,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x22d3,0x39ea,0x73ae,0x6b6e,0x39a9,0x3168,0x3169,0x3169,0x3169,0x2948,0x4a4b,0x73cf,0x630d,0x298a,0x3cfd,0x4d3e,0x4d7e,0x4d7f,0x457f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x22d3,0x39ea,0x738e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x738e,0x5aed,0x2989,0x44fd,0x4d5e,0x4d7e,0x4d5f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2ad4,0x2969,0x3168,0x3189,0x3189,0x3189,0x3168,0x2968,0x3168,0x3189,0x3189,0x3189,0x3169,0x298a,0x451d,0x4d5f,0x4d5f,0x455f,0x455f,0x457f,0x559f,0x965e,0xae1b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x22d3,0x39ea,0x4a2b,0x21ac,0x2b35,0x2948,0x6b6f,0x8411,0x4a6c,0x21ed,0x2b76,0x2948,0x4a6b,0x298a,0x451d,0x4d5f,0x455f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x22b3,0x420b,0x528c,0x220e,0x2c5c,0x2948,0x8c52,0xa534,0x62ee,0x2a70,0x349c,0x3189,0x5acd,0x2989,0x451d,0x455e,0x455f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2b14,0x2969,0x3169,0x2a4f,0x2c3c,0x2969,0x3169,0x3168,0x3169,0x2ab1,0x347c,0x2948,0x2969,0x29ab,0x451d,0x453e,0x453f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349d,0x349d,0x34bd,0x3cdd,0x3cfe,0x453e,0x4d3e,0x453e,0x453e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe5b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349d,0x349d,0x34bd,0x3cdd,0x451d,0x453e,0x453e,0x451e,0x3d1e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe7b, +0xb5d9,0x4398,0x23bb,0x23db,0x23db,0x23dc,0x23fc,0x241c,0x2c1c,0x2c1c,0x2c3c,0x2c5d,0x2c5d,0x2c7d,0x347d,0x349d,0x349d,0x34bd,0x3cdd,0x451d,0x453e,0x453e,0x3d1e,0x3d1e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe7c, +0xb5d9,0x4398,0x239b,0x23db,0x23db,0x23dc,0x23fc,0xc69e,0x4c7c,0x2c1c,0x2c3d,0xae3e,0x6d1d,0x857d,0xcefe,0xcede,0xd6fe,0x95fe,0x44fd,0x4d1d,0xdf3f,0x961e,0x3d1e,0x3d1e,0x3d3f,0x455f,0x455f,0x457f,0x559f,0x965e,0xa61b,0xbe7c, +0xb5d9,0x4398,0x239b,0x23db,0x23db,0x23dc,0x23fc,0xa5fe,0x9dde,0x2c3c,0x2c5d,0xdf3e,0x651d,0xd71e,0x449d,0x347d,0x3c9d,0x7d9e,0x44fe,0x8dfe,0xbebe,0xd73f,0x3d1e,0x3d1e,0x3d3f,0x3d5f,0x455f,0x457f,0x55bf,0x965e,0xa61b,0xbe7b, +0xb5d9,0x4bb7,0x239a,0x23bc,0x23db,0x23dc,0x23fc,0x4c7c,0xdf1e,0x2c3c,0x7d5d,0xb67e,0xae3e,0x95be,0x347d,0x349d,0x3c9d,0x44dd,0x451e,0xc6ff,0x657e,0xd71f,0x5d5e,0x3d1e,0x3d3f,0x3d5e,0x455e,0x457e,0x5ddf,0x963e,0x9dfa,0xc69b, +0xb5d9,0x5bf7,0x237a,0x23bc,0x23dc,0x23db,0x23fc,0x241c,0xcede,0x5cbd,0xc6be,0x651d,0xae5e,0x8dbd,0x347d,0xae5e,0xd71e,0xc6de,0x553e,0xe77f,0x8dfe,0xbebe,0xae7e,0x3d1e,0x3d3e,0x455e,0x455e,0x4d7e,0x6dfe,0x963d,0x9dda,0xc6bb, +0xb5d9,0x7497,0x2b78,0x23bc,0x23dc,0x23fb,0x23fb,0x241c,0x8d9d,0xb63e,0xdf1e,0x2c5c,0x7d5d,0xcefe,0x349c,0x349c,0x655d,0xcefe,0x9e1e,0xc6de,0x9e3e,0x9e3e,0xdf5f,0x3d1e,0x453e,0x455e,0x4d5d,0x557d,0x75fd,0x95fb,0x9dfa,0xcefc, +0xb5d9,0x8d59,0x3b97,0x239b,0x23bc,0x23fb,0x23fb,0x241c,0x343c,0xf79f,0xa61d,0x2c5c,0x2c5d,0xae3e,0xdf1e,0xc6be,0xd6fe,0xae7e,0xd71e,0x553e,0x3cdd,0x3cfd,0xcefe,0x7dbe,0x453e,0x453d,0x4d7d,0x5d9d,0x7dfc,0x8dba,0xae3a,0xd71c, +0x0000,0xb61b,0x6437,0x3378,0x239a,0x23db,0x23fb,0x2bfc,0x2c1c,0x2c1c,0x2c3c,0x2c3c,0x2c5d,0x345c,0x3c7c,0x54fc,0x44dd,0x3cdd,0x3cdd,0x34dd,0x3cdd,0x3cdd,0x3cfe,0x3d1e,0x3d1e,0x453e,0x557d,0x65bd,0x7dbb,0x95b9,0xc69b,0x0861, +0x0000,0xcebd,0x8d39,0x53f7,0x3398,0x2b9a,0x2bba,0x2bba,0x2bda,0x33db,0x33fb,0x33fb,0x341c,0x343b,0x3c5b,0x447b,0x449c,0x3c7c,0x3c7c,0x3c9c,0x3c9c,0x3c9c,0x3cbc,0x3cdc,0x3cdc,0x44fc,0x555c,0x6d9c,0x7d9b,0xa5fa,0xd6bb,0x0861, +0x0000,0x0000,0xbe3b,0x84f8,0x5c17,0x53f8,0x53f9,0x53f9,0x5419,0x5419,0x5419,0x543a,0x543a,0x5c5a,0x5c79,0x649a,0x5c9a,0x5c9a,0x5c9a,0x5c9a,0x5cba,0x5cba,0x5cbb,0x5cdb,0x5cdb,0x64fb,0x6d3b,0x7d9a,0x95fa,0xc6bc,0x0000,0x0861, +0x0000,0x0000,0xdf1d,0xb63b,0x9579,0x8d19,0x8d19,0x8d19,0x8d19,0x8d39,0x8d39,0x8d39,0x8d3a,0x8d39,0x9559,0x9579,0x9579,0x957a,0x957a,0x955a,0x957a,0x957a,0x957a,0x959a,0x959a,0x959a,0x9dba,0xa61a,0xbe9b,0xdf3d,0x0000,0x0861, +0x0000,0x0000,0x0000,0xdf3d,0xc6bc,0xc67b,0xc67b,0xc65b,0xc67b,0xc67b,0xc67b,0xc67b,0xbe5b,0xc67b,0xc69b,0xc69b,0xc69b,0xc69b,0xc69c,0xc67b,0xc67b,0xc69b,0xc69b,0xc69b,0xc69b,0xce9b,0xc6bc,0xcedb,0xd6fb,0x0000,0x0000,0x0861}; + + diff --git a/MCUME_teensy/teensymsx/emuapi.cpp b/MCUME_teensy/teensymsx/emuapi.cpp new file mode 100644 index 0000000..05e8b5b --- /dev/null +++ b/MCUME_teensy/teensymsx/emuapi.cpp @@ -0,0 +1,1433 @@ +#define KEYMAP_PRESENT 1 + +extern "C" { + #include "emuapi.h" + #include "iopins.h" +} + +#include "tft_t_dma.h" +#include "logo.h" +#include "bmpjoy.h" +#include "bmpvbar.h" +#ifdef OLD_LAYOUT +#include "bmpvga.h" +#include "bmptft.h" +#endif + + +#ifdef HAS_I2CKBD +#include +#endif + +#ifdef USE_SDFS +#include "uSDFS.h" +static FATFS fatfs; +static FIL file; +#else + +#ifdef USE_SDFAT +#include "SdFat.h" +#include "sdios.h" + +#ifndef SDCARD_SS_PIN +const uint8_t SD_CS_PIN = SS; + +#else // SDCARD_SS_PIN +// Assume built-in SD is used. +const uint8_t SD_CS_PIN = SDCARD_SS_PIN; +#endif // SDCARD_SS_PIN + +#define SD_CONFIG SdioConfig(FIFO_SDIO) + +// Try to select the best SD card configuration. +#if HAS_SDIO_CLASS +#define SD_CONFIG SdioConfig(FIFO_SDIO) +#elif ENABLE_DEDICATED_SPI +#define SD_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI) +#else // HAS_SDIO_CLASS +#define SD_CONFIG SdSpiConfig(SD_CS_PIN, SHARED_SPI) +#endif // HAS_SDIO_CLASS +//------------------------------------------------------------------------------ + +#if SD_FAT_TYPE == 0 +#elif SD_FAT_TYPE == 1 +#define SdFat SdFat32 +#define File File32 +#elif SD_FAT_TYPE == 2 +#define SdFat SdExFat +#define File ExFile +#elif SD_FAT_TYPE == 3 +#define SdFat SdFs +#define File FsFile +#endif // SD_FAT_TYPE +static SdFat SD; +#else +#include +#endif +static File file; +#endif + +#define CALIBRATION_FILE "/cal.cfg" + +#define MKEY_L1 1 +#define MKEY_L2 2 +#define MKEY_L3 3 +#define MKEY_L4 4 +#define MKEY_L5 5 +#define MKEY_L6 6 +#define MKEY_L7 7 +#define MKEY_L8 8 +#define MKEY_L9 9 +#define MKEY_UP 20 +#define MKEY_DOWN 21 +#define MKEY_JOY 22 +#define MKEY_TFT 23 +#define MKEY_VGA 24 + +#define MAX_FILES 64 +#define MAX_FILENAME_SIZE 24 +#define MAX_MENULINES (MKEY_L9) +#define TEXT_HEIGHT 16 +#define TEXT_WIDTH 8 +#define MENU_FILE_XOFFSET (6*TEXT_WIDTH) +#define MENU_FILE_YOFFSET (2*TEXT_HEIGHT) +#define MENU_FILE_W (MAX_FILENAME_SIZE*TEXT_WIDTH) +#define MENU_FILE_H (MAX_MENULINES*TEXT_HEIGHT) +#define MENU_FILE_BGCOLOR RGBVAL16(0x00,0x00,0x20) +#define MENU_JOYS_YOFFSET (12*TEXT_HEIGHT) +#define MENU_VBAR_XOFFSET (0*TEXT_WIDTH) +#define MENU_VBAR_YOFFSET (MENU_FILE_YOFFSET) + +#define MENU_TFT_XOFFSET (MENU_FILE_XOFFSET+MENU_FILE_W+8) +#define MENU_TFT_YOFFSET (MENU_VBAR_YOFFSET+32) +#define MENU_VGA_XOFFSET (MENU_FILE_XOFFSET+MENU_FILE_W+8) +#define MENU_VGA_YOFFSET (MENU_VBAR_YOFFSET+MENU_FILE_H-32-37) + +extern TFT_T_DMA tft; + +static char romspath[64]; +static int nbFiles=0; +static int curFile=0; +static int topFile=0; +static char selection[MAX_FILENAME_SIZE+1]=""; +static char files[MAX_FILES][MAX_FILENAME_SIZE]; +static bool menuRedraw=true; + +static int16_t calMinX=-1,calMinY=-1,calMaxX=-1,calMaxY=-1; +static bool i2cKeyboardPresent = false; +//const uint16_t deflogo[] = { +// 0x0000,0x0000 +//}; +//static const uint16_t * logo = deflogo; + + +const unsigned short menutouchareas[] = { + TAREA_XY,MENU_FILE_XOFFSET,MENU_FILE_YOFFSET, + TAREA_WH,MENU_FILE_W, TEXT_HEIGHT, + TAREA_NEW_COL,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT,TEXT_HEIGHT, + + TAREA_XY,MENU_VBAR_XOFFSET,MENU_VBAR_YOFFSET, + TAREA_WH,32,48, + TAREA_NEW_COL, 72,72,8,40, + + TAREA_XY,MENU_TFT_XOFFSET,MENU_TFT_YOFFSET, + TAREA_WH,32,37, + TAREA_NEW_COL, 38,38, + + TAREA_END}; + +const unsigned short menutouchactions[] = { + MKEY_L1,MKEY_L2,MKEY_L3,MKEY_L4,MKEY_L5,MKEY_L6,MKEY_L7,MKEY_L8,MKEY_L9, + MKEY_UP,MKEY_DOWN,ACTION_NONE,MKEY_JOY, + MKEY_TFT,MKEY_VGA}; + + +static int keypadval=0; +static boolean joySwapped = false; +static uint16_t bLastState; +static int xRef; +static int yRef; +static uint8_t prev_zt=0; + +static bool menuOn=true; +static bool callibrationOn=false; +static int callibrationStep=0; + + +static char captureTouchZone(const unsigned short * areas, const unsigned short * actions, int *rx, int *ry, int *rw, int * rh) { + uint16_t xt=0; + uint16_t yt=0; + uint16_t zt=0; + boolean hDir=true; + + if (tft.isTouching()) + { + if (prev_zt == 0) { + prev_zt =1; + tft.readCal(&xt,&yt,&zt); + if (zt<1000) { + prev_zt=0; + return ACTION_NONE; + } + int i=0; + int k=0; + int y2=0, y1=0; + int x2=0, x1=0; + int x=KEYBOARD_X,y=KEYBOARD_Y; + int w=TAREA_W_DEF,h=TAREA_H_DEF; + uint8_t s; + while ( (s=areas[i++]) != TAREA_END ) { + if (s == TAREA_XY) { + x = areas[i++]; + y = areas[i++]; + x2 = x; + y2 = y; + } + else if (s == TAREA_WH) { + w = areas[i++]; + h = areas[i++]; + } + else if (s == TAREA_NEW_ROW) { + hDir = true; + y1 = y2; + y2 = y1 + h; + x2 = x; + } + else if (s == TAREA_NEW_COL) { + hDir = false; + x1 = x2; + x2 = x1 + w; + y2 = y; + } + else { + if (hDir) { + x1 = x2; + x2 = x1+s; + } else { + y1 = y2; + y2 = y1+s; + } + if ( (yt >= y1) && (yt < y2) && (xt >= x1) && (xt < x2) ) { + *rx = x1; + *ry = y1; + *rw = x2-x1; + *rh = y2-y1; + return (actions[k]); + } + k++; + } + } + } + prev_zt =1; + } else { + prev_zt=0; + } + + return ACTION_NONE; +} + + + + + + + + +void emu_printf(char * text) +{ + Serial.println(text); +} + +void emu_printf(int val) +{ + Serial.println(val); +} + +void emu_printi(int val) +{ + Serial.println(val); +} + +void emu_printh(int val) +{ + Serial.println(val,HEX); +} + +static int malbufpt = 0; +static char malbuf[EXTRA_HEAP]; + +void * emu_Malloc(int size) +{ + void * retval = malloc(size); + if (!retval) { + emu_printf("failled to allocate"); + emu_printf(size); + emu_printf("fallback"); + if ( (malbufpt+size) < sizeof(malbuf) ) { + retval = (void *)&malbuf[malbufpt]; + malbufpt += size; + } + else { + emu_printf("failure to allocate"); + } + } + else { + emu_printf("could allocate dynamic "); + emu_printf(size); + } + + return retval; +} + +void * emu_MallocI(int size) +{ + void * retval = NULL; + + if ( (malbufpt+size) < sizeof(malbuf) ) { + retval = (void *)&malbuf[malbufpt]; + malbufpt += size; + emu_printf("could allocate static "); + emu_printf(size); + } + else { + emu_printf("failure to allocate"); + } + + return retval; +} +void emu_Free(void * pt) +{ + free(pt); +} + + + + + +int emu_ReadAnalogJoyX(int min, int max) +{ + int val = analogRead(PIN_JOY2_A1X); +#if INVX + val = 4095 - val; +#endif + val = val-xRef; + val = ((val*140)/100); + if ( (val > -512) && (val < 512) ) val = 0; + val = val+2048; + return (val*(max-min))/4096; +} + +int emu_ReadAnalogJoyY(int min, int max) +{ + int val = analogRead(PIN_JOY2_A2Y); +#if INVY + val = 4095 - val; +#endif + val = val-yRef; + val = ((val*120)/100); + if ( (val > -512) && (val < 512) ) val = 0; + //val = (val*(max-min))/4096; + val = val+2048; + //return val+(max-min)/2; + return (val*(max-min))/4096; +} + + +static uint16_t readAnalogJoystick(void) +{ + uint16_t joysval = 0; + + int xReading = emu_ReadAnalogJoyX(0,256); + if (xReading > 128) joysval |= MASK_JOY2_LEFT; + else if (xReading < 128) joysval |= MASK_JOY2_RIGHT; + + int yReading = emu_ReadAnalogJoyY(0,256); + if (yReading < 128) joysval |= MASK_JOY2_UP; + else if (yReading > 128) joysval |= MASK_JOY2_DOWN; + +#ifdef PIN_JOY2_BTN + joysval |= (digitalRead(PIN_JOY2_BTN) == HIGH ? 0 : MASK_JOY2_BTN); +#endif + return (joysval); +} + + +int emu_SwapJoysticks(int statusOnly) { + if (!statusOnly) { + if (joySwapped) { + joySwapped = false; + } + else { + joySwapped = true; + } + } + return(joySwapped?1:0); +} + +int emu_GetPad(void) +{ + return(keypadval/*|((joySwapped?1:0)<<7)*/); +} + +int emu_ReadKeys(void) +{ + uint16_t retval; + uint16_t j1 = readAnalogJoystick(); + uint16_t j2 = 0; + + // Second joystick +#if INVY +#ifdef PIN_JOY1_1 + if ( digitalRead(PIN_JOY1_1) == LOW ) j2 |= MASK_JOY2_DOWN; +#endif +#ifdef PIN_JOY1_2 + if ( digitalRead(PIN_JOY1_2) == LOW ) j2 |= MASK_JOY2_UP; +#endif +#else +#ifdef PIN_JOY1_1 + if ( digitalRead(PIN_JOY1_1) == LOW ) j2 |= MASK_JOY2_UP; +#endif +#ifdef PIN_JOY1_2 + if ( digitalRead(PIN_JOY1_2) == LOW ) j2 |= MASK_JOY2_DOWN; +#endif +#endif +#if INVX +#ifdef PIN_JOY1_3 + if ( digitalRead(PIN_JOY1_3) == LOW ) j2 |= MASK_JOY2_LEFT; +#endif +#ifdef PIN_JOY1_4 + if ( digitalRead(PIN_JOY1_4) == LOW ) j2 |= MASK_JOY2_RIGHT; +#endif +#else +#ifdef PIN_JOY1_3 + if ( digitalRead(PIN_JOY1_3) == LOW ) j2 |= MASK_JOY2_RIGHT; +#endif +#ifdef PIN_JOY1_4 + if ( digitalRead(PIN_JOY1_4) == LOW ) j2 |= MASK_JOY2_LEFT; +#endif +#endif +#ifdef PIN_JOY1_BTN + if ( digitalRead(PIN_JOY1_BTN) == LOW ) j2 |= MASK_JOY2_BTN; +#endif + if (joySwapped) { + retval = ((j1 << 8) | j2); + } + else { + retval = ((j2 << 8) | j1); + } + +#ifdef PIN_KEY_USER1 + if ( digitalRead(PIN_KEY_USER1) == LOW ) retval |= MASK_KEY_USER1; +#endif +#ifdef PIN_KEY_USER2 + if ( digitalRead(PIN_KEY_USER2) == LOW ) retval |= MASK_KEY_USER2; +#endif +#ifdef PIN_KEY_USER3 + if ( digitalRead(PIN_KEY_USER3) == LOW ) retval |= MASK_KEY_USER3; +#endif +#ifdef PIN_KEY_USER4 + if ( digitalRead(PIN_KEY_USER4) == LOW ) retval |= MASK_KEY_USER4; +#endif + + //Serial.println(retval,HEX); + + if ( ((retval & (MASK_KEY_USER1+MASK_KEY_USER2)) == (MASK_KEY_USER1+MASK_KEY_USER2)) + || (retval & MASK_KEY_USER4 ) ) + { +// Reset procedure T3.X and T4.0 by Frank Boesing !! +#if defined(__IMXRT1052__) || defined(__IMXRT1062__) + uint32_t tmp = SNVS_LPCR; // save control register + + SNVS_LPSR |= 1; + + // disable alarm + SNVS_LPCR &= ~0x02; + while (SNVS_LPCR & 0x02); + + __disable_irq(); + //get Time: + uint32_t lsb, msb; + do { + msb = SNVS_LPSRTCMR; + lsb = SNVS_LPSRTCLR; + } while ( (SNVS_LPSRTCLR != lsb) | (SNVS_LPSRTCMR != msb) ); + uint32_t secs = (msb << 17) | (lsb >> 15); + + //set alarm + secs += 2; + SNVS_LPTAR = secs; + while (SNVS_LPTAR != secs); + + SNVS_LPCR = tmp | 0x02; // restore control register and set alarm + while (!(SNVS_LPCR & 0x02)); + + SNVS_LPCR |= (1 << 6); // turn off power + while (1) asm("wfi"); +#else + *(volatile uint32_t *)0xE000ED0C = 0x5FA0004; + while (true) { + ; + } +#endif + } + + return (retval); +} + +unsigned short emu_DebounceLocalKeys(void) +{ + uint16_t bCurState = emu_ReadKeys(); + uint16_t bClick = bCurState & ~bLastState; + bLastState = bCurState; + + return (bClick); +} + +int emu_ReadI2CKeyboard(void) { + int retval=0; +#ifdef HAS_I2CKBD + if (i2cKeyboardPresent) { + byte msg[7]={0,0,0,0,0,0,0}; + Wire.requestFrom(8, 7); // request 7 bytes from slave device #8 + int i = 0; + int hitindex=-1; + while (Wire.available() && (i<7) ) { // slave may send less than requested + byte b = Wire.read(); // receive a byte + if (b != 0xff) hitindex=i; + msg[i++] = b; + } + + if (hitindex >=0 ) { + /* + Serial.println(msg[0], BIN); + Serial.println(msg[1], BIN); + Serial.println(msg[2], BIN); + Serial.println(msg[3], BIN); + Serial.println(msg[4], BIN); + Serial.println(msg[5], BIN); + Serial.println(msg[6], BIN); + */ + unsigned short match = (~msg[hitindex])&0x00FF | (hitindex<<8); + //Serial.println(match,HEX); + for (i=0; i=1) && (c <= ACTION_MAXKBDVAL) ) { + + keypadval = c; + keyPressCount = 10; + delay(50); + vkeyRefresh = true; + exitVkbd = true; + } + else if (c == ACTION_EXITKBD) { + vkeyRefresh = true; + exitVkbd = true; + } + } + } + + if (vkeyRefresh) { + vkeyRefresh = false; + tft.drawSpriteNoDma(0,0,(uint16_t*)logo, rx, ry, rw, rh); + } + + if ( (exitVkbd) && (vkbActive) ) { + if (!vkbKeepOn) { + toggleVirtualkeyboard(false); + } + else { + toggleVirtualkeyboard(true); + } + } +} + +int emu_setKeymap(int index) { + if (index) { + } + else { + } +} + + + + +static int readNbFiles(void) { + int totalFiles = 0; + +#ifdef USE_SDFS + DIR dir; + FILINFO entry; + f_opendir(&dir, romspath); + while ( (true) && (totalFiles= MKEY_L1) && (c <= MKEY_L9) ) { + if ( (topFile+(int)c-1) <= (nbFiles-1) ) + { + curFile = topFile + (int)c -1; + menuRedraw=true; + //tft.drawRectNoDma( rx,ry,rw,rh, KEYBOARD_HIT_COLOR ); + } + } + else if (bClick & MASK_JOY2_UP) { + if (curFile!=0) { + menuRedraw=true; + curFile--; + } + } + else if ( (bClick & MASK_JOY2_RIGHT) || (bClick & MASK_JOY1_RIGHT) || (c == MKEY_UP) ) { + if ((curFile-9)>=0) { + menuRedraw=true; + curFile -= 9; + } else if (curFile!=0) { + menuRedraw=true; + curFile--; + } + } + else if (bClick & MASK_JOY2_DOWN) { + if ((curFile<(nbFiles-1)) && (nbFiles)) { + curFile++; + menuRedraw=true; + } + } + else if ( (bClick & MASK_JOY2_LEFT) || (bClick & MASK_JOY1_LEFT) || (c == MKEY_DOWN) ) { + if ((curFile<(nbFiles-9)) && (nbFiles)) { + curFile += 9; + menuRedraw=true; + } + else if ((curFile<(nbFiles-1)) && (nbFiles)) { + curFile++; + menuRedraw=true; + } + } + else if ( (bClick & MASK_KEY_USER2) || (c == MKEY_JOY) ) { + emu_SwapJoysticks(0); + menuRedraw=true; + } + + if (menuRedraw && nbFiles) { + int fileIndex = 0; + tft.drawRectNoDma(MENU_FILE_XOFFSET,MENU_FILE_YOFFSET, MENU_FILE_W, MENU_FILE_H, MENU_FILE_BGCOLOR); +// if (curFile <= (MAX_MENULINES/2-1)) topFile=0; +// else topFile=curFile-(MAX_MENULINES/2); + if (curFile <= (MAX_MENULINES-1)) topFile=0; + else topFile=curFile-(MAX_MENULINES/2); + + //Serial.print("curfile: "); + //Serial.println(curFile); + //Serial.print("topFile: "); + //Serial.println(topFile); + + int i=0; + while (i=nbFiles) { + // no more files + break; + } + char * filename = &files[fileIndex][0]; + if (fileIndex >= topFile) { + if ((i+topFile) < nbFiles ) { + if ((i+topFile)==curFile) { + tft.drawTextNoDma(MENU_FILE_XOFFSET,i*TEXT_HEIGHT+MENU_FILE_YOFFSET, filename, RGBVAL16(0xff,0xff,0x00), RGBVAL16(0xff,0x00,0x00), true); + strcpy(selection,filename); + } + else { + tft.drawTextNoDma(MENU_FILE_XOFFSET,i*TEXT_HEIGHT+MENU_FILE_YOFFSET, filename, 0xFFFF, 0x0000, true); + } + } + i++; + } + fileIndex++; + } + + tft.drawSpriteNoDma(0,MENU_JOYS_YOFFSET,(uint16_t*)bmpjoy); + tft.drawTextNoDma(48,MENU_JOYS_YOFFSET+8, (emu_SwapJoysticks(1)?(char*)"SWAP=1":(char*)"SWAP=0"), RGBVAL16(0x00,0xff,0xff), RGBVAL16(0xff,0x00,0x00), false); + menuRedraw=false; + } + + return (action); +} + +bool menuActive(void) +{ + return (menuOn); +} + +void toggleMenu(bool on) { + if (on) { + callibrationOn=false; + menuOn=true; + backgroundMenu(); + } else { + menuOn = false; + } +} + +char * menuSelection(void) +{ + return (selection); +} + + + + +static void callibrationInit(void) +{ + callibrationOn=true; + menuOn=false; + callibrationStep = 0; + calMinX=0,calMinY=0,calMaxX=0,calMaxY=0; + tft.fillScreenNoDma(RGBVAL16(0xff,0xff,0xff)); + tft.drawTextNoDma(0,100, " Callibration process:", RGBVAL16(0x00,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + tft.drawTextNoDma(0,116, " Hit the red cross at each corner", RGBVAL16(0x00,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + tft.drawTextNoDma(0,0, "+", RGBVAL16(0xff,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + prev_zt = 1; +} + + +static void readCallibration(void) +{ + char fileBuffer[64]; + +#ifdef USE_SDFS + FIL file; + int retval; + if( !(f_open(&file, CALIBRATION_FILE, FA_READ)) ) { + if( !(f_read (&file, fileBuffer, 64, &retval)) ) { + if (retval == 64) { + sscanf(fileBuffer,"%d %d %d %d", &calMinX,&calMinY,&calMaxX,&calMaxY); + } + } + f_close(&file); + } +#else + File file = SD.open(CALIBRATION_FILE, O_READ); + if (file) { + if ( file.read(fileBuffer, 64) ) { + sscanf(fileBuffer,"%d %d %d %d", &calMinX,&calMinY,&calMaxX,&calMaxY); + } + file.close(); + Serial.println("Current callibration params:"); + Serial.println(calMinX); + Serial.println(calMinY); + Serial.println(calMaxX); + Serial.println(calMaxY); + } +#endif + else { + Serial.println("Callibration read error"); + } + tft.callibrateTouch(calMinX,calMinY,calMaxX,calMaxY); +} + +static void writeCallibration(void) +{ + tft.callibrateTouch(calMinX,calMinY,calMaxX,calMaxY); + +#ifdef USE_SDFS + FIL file; + int retval; + if( !(f_open(&file, CALIBRATION_FILE, FA_WRITE)) ) { + //if( !(f_read (&file, fileBuffer, 64, &retval)) ) { + // if (retval == 64) { + // sscanf(fileBuffer,"%d %d %d %d", &calMinX,&calMinY,&calMaxX,&calMaxY); + // } + //} + f_close(&file); + } +#else + File file = SD.open(CALIBRATION_FILE, O_WRITE | O_CREAT | O_TRUNC); + if (file) { + file.print(calMinX); + file.print(" "); + file.print(calMinY); + file.print(" "); + file.print(calMaxX); + file.print(" "); + file.println(calMaxY); + file.close(); + } +#endif + else { + Serial.println("Callibration write error"); + } +} + + +bool callibrationActive(void) +{ + return (callibrationOn); +} + + + +int handleCallibration(uint16_t bClick) { + uint16_t xt=0; + uint16_t yt=0; + uint16_t zt=0; + if (tft.isTouching()) { + if (prev_zt == 0) { + prev_zt = 1; + tft.readRaw(&xt,&yt,&zt); + if (zt < 1000) { + return 0; + } + switch (callibrationStep) + { + case 0: + callibrationStep++; + tft.drawTextNoDma(0,0, " ", RGBVAL16(0xff,0xff,0xff), RGBVAL16(0xff,0xff,0xff), true); + tft.drawTextNoDma(TFT_REALWIDTH-8,0, "+", RGBVAL16(0xff,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + calMinX += xt; + calMinY += yt; + break; + case 1: + callibrationStep++; + tft.drawTextNoDma(TFT_REALWIDTH-8,0, " ", RGBVAL16(0xff,0xff,0xff), RGBVAL16(0xff,0xff,0xff), true); + tft.drawTextNoDma(TFT_REALWIDTH-8,TFT_REALHEIGHT-16, "+", RGBVAL16(0xff,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + calMaxX += xt; + calMinY += yt; + break; + case 2: + callibrationStep++; + tft.drawTextNoDma(TFT_REALWIDTH-8,TFT_REALHEIGHT-16, " ", RGBVAL16(0xff,0xff,0xff), RGBVAL16(0xff,0xff,0xff), true); + tft.drawTextNoDma(0,TFT_REALHEIGHT-16, "+", RGBVAL16(0xff,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + calMaxX += xt; + calMaxY += yt; + break; + case 3: + tft.fillScreenNoDma(RGBVAL16(0xff,0xff,0xff)); + tft.drawTextNoDma(0,100, " Callibration done!", RGBVAL16(0x00,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + tft.drawTextNoDma(0,116, " (Click center to exit)", RGBVAL16(0xff,0x00,0x00), RGBVAL16(0xff,0xff,0xff), true); + callibrationStep++; + calMinX += xt; + calMaxY += yt; + break; + case 4: + //Serial.println(xt); + //Serial.println(yt); + if ( (xt > (TFT_REALWIDTH/4)) && (xt < (TFT_REALWIDTH*3)/4) + && (yt > (TFT_REALHEIGHT/4)) && (yt < (TFT_REALHEIGHT*3)/4) ) { + calMinX /= 2; + calMinY /= 2; + calMaxX /= 2; + calMaxY /= 2; + writeCallibration(); + toggleMenu(true); + } + else { + callibrationInit(); + } + break; + + } + delay(100); + } + } + else { + prev_zt = 0; + } +} + + + + + +int emu_FileOpen(char * filename) +{ + int retval = 0; + + char filepath[80]; + strcpy(filepath, romspath); + strcat(filepath, "/"); + strcat(filepath, filename); + emu_printf("FileOpen..."); + emu_printf(filepath); +#ifdef USE_SDFS + if( !(f_open(&file, filepath, FA_READ)) ) { +#else + if ((file = SD.open(filepath, O_READ))) { +#endif + retval = 1; + } + else { + emu_printf("FileOpen failed"); + } + return (retval); +} + +int emu_FileRead(char * buf, int size) +{ + unsigned char buffer[256]; + + int remaining = size; + int byteread = 0; + int retval=0; + if (size < 256) { +#ifdef USE_SDFS + if( !(f_read (&file, buffer, size, &retval)) ) +#else + retval = file.read(buffer, size); +#endif + if (retval>0) { + memcpy(buf,buffer,retval); + byteread += retval; + } + } + else { + while (remaining>0) { +#ifdef USE_SDFS + if( !(f_read (&file, buffer, 256, &retval)) ) + //f_read (&file, buffer, 256, &retval); +#else + retval = file.read(buffer, 256); +#endif + if (retval>0) { + //emu_printi(retval); + memcpy(buf,buffer,retval); + buf += retval; + byteread += retval; + remaining -= retval; + } + else { + break; + } + } + } + + return byteread; +} + +unsigned char emu_FileGetc(void) { + unsigned char c; +#ifdef USE_SDFS + int retval=0; + if( !(f_read (&file, &c, 1, &retval)) ) +#else + int retval = file.read(&c, 1); +#endif + if (retval != 1) { + emu_printf("emu_FileGetc failed"); + } + return c; +} + + +void emu_FileClose(void) +{ +#ifdef USE_SDFS + f_close(&file); +#else + file.close(); +#endif +} + +int emu_FileSize(char * filename) +{ + int filesize=0; + char filepath[80]; + strcpy(filepath, romspath); + strcat(filepath, "/"); + strcat(filepath, filename); + emu_printf("FileSize..."); + emu_printf(filepath); +#ifdef USE_SDFS + FILINFO entry; + f_stat(filepath, &entry); + filesize = entry.fsize; +#else + if ((file = SD.open(filepath, O_READ))) + { + emu_printf("filesize is..."); + filesize = file.size(); + emu_printf(filesize); + file.close(); + } +#endif + + return(filesize); +} + +int emu_FileSeek(int seek) +{ +#ifdef USE_SDFS + f_lseek(&file, seek); +#else + file.seek(seek); +#endif + return (seek); +} + +int emu_FileTell(void) +{ +#ifdef USE_SDFS + return (f_tell(&file)); +#else + return (50); +#endif +} + + +int emu_LoadFile(char * filename, char * buf, int size) +{ + int filesize = 0; + + char filepath[80]; + strcpy(filepath, romspath); + strcat(filepath, "/"); + strcat(filepath, filename); + emu_printf("LoadFile..."); + emu_printf(filepath); +#ifdef USE_SDFS + if( !(f_open(&file, filepath, FA_READ)) ) { + filesize = f_size(&file); + emu_printf(filesize); + if (size >= filesize) + { + int retval=0; + if( (f_read (&file, buf, filesize, &retval)) ) { + emu_printf("File read failed"); + } + } + f_close(&file); + } +#else + if ((file = SD.open(filepath, O_READ))) + { + filesize = file.size(); + emu_printf(filesize); + + if (size >= filesize) + { + if (emu_FileRead(buf, filesize) != filesize) + { + emu_printf("File read failed"); + } + } + file.close(); + } +#endif + + return(filesize); +} + +int emu_LoadFileSeek(char * filename, char * buf, int size, int seek) +{ + int filesize = 0; + + char filepath[80]; + strcpy(filepath, romspath); + strcat(filepath, "/"); + strcat(filepath, filename); + emu_printf("LoadFileSeek..."); + emu_printf(filepath); +#ifdef USE_SDFS + if( !(f_open(&file, filepath, FA_READ)) ) { + f_lseek(&file, seek); + emu_printf(size); + if (size >= filesize) + { + int retval=0; + if( (!f_read (&file, buf, size, &retval)) ) + if (retval != size) + { + emu_printf("File read failed"); + } + } + f_close(&file); + } +#else + if ((file = SD.open(filepath, O_READ))) + { + file.seek(seek); + emu_printf(size); + if (file.read(buf, size) != size) { + emu_printf("File read failed"); + } + file.close(); + } +#endif + + return(filesize); +} + +const uint32_t FILE_SIZE_MB = 8; +const uint32_t FILE_SIZE = 1000000UL*FILE_SIZE_MB; +#ifdef USE_SDFS +static FIL tempfile; +#else +static File tempfile; +#endif + +void emu_FileTempInit(void) +{ +#ifdef USE_SDFS + if( (f_open(&tempfile, SDFSDEV "/bench.dat", FA_READ| FA_WRITE )) ) { +#else +#ifdef USE_SDFAT + if (!tempfile.open("/bench.dat", O_RDWR /*| O_CREAT | O_TRUNC*/)) { +#else + if ((tempfile = SD.open("/bench.dat", O_RDWR))) { +#endif +#endif + Serial.println("psram open failed"); + } +/* + else { + uint8_t buf[256]; + Serial.println("psram creating"); + file = SD.open("/bench.dat", O_RDWR | O_CREAT | O_TRUNC); + if (file) { + Serial.println("psram opened"); + file.truncate(0); + + if (!file.preAllocate(FILE_SIZE)) { + Serial.println("allocate failed"); + } + for(int i=0;i +#define TITLE " MSX Emulator " +#define ROMSDIR "/msx" + +#define emu_Init(ROM) {msx_Init(); msx_Start(ROM);} +#define emu_Step(x) {msx_Step();} +#define emu_Input(x) {msx_Input(x);} + +#define PALETTE_SIZE 256 +#define VID_FRAME_SKIP 0x0 +#define TFT_VBUFFER_YCROP 0 +#define SINGLELINE_RENDERING 1 + +#define R32(rgb) ((rgb>>16)&0xff) +#define G32(rgb) ((rgb>>8)&0xff) +#define B32(rgb) (rgb & 0xff) + +#define ACTION_NONE 0 +#define ACTION_MAXKBDVAL 16 +#define ACTION_EXITKBD 128 +#define ACTION_RUNTFT 129 +#define ACTION_RUNVGA 130 + + +#ifdef KEYMAP_PRESENT + +#define TAREA_W_DEF 32 +#define TAREA_H_DEF 32 +#define TAREA_END 255 +#define TAREA_NEW_ROW 254 +#define TAREA_NEW_COL 253 +#define TAREA_XY 252 +#define TAREA_WH 251 + +#define KEYBOARD_X 16 +#define KEYBOARD_Y 32 +#define KEYBOARD_KEY_H 30 +#define KEYBOARD_KEY_W 28 +#define KEYBOARD_HIT_COLOR RGBVAL16(0xff,0x00,0x00) + +const unsigned short keysw[]= +{ TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, + TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, + TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, + TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, + //TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, + TAREA_END}; + +const unsigned short keys[]={ + +1, 2, 3, 4, 5, 6, 7, 8, 9, 10, +11, 12, 13, 14, 15, 16, 17, 18, 19, 20, +21, 22, 23, 24, 25, 26, 27, 28, 29, 30, +31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }; + + + + +#ifdef HAS_I2CKBD +const unsigned short i2ckeys[] = { + 0X0080,0X0008,0X0180,0X0108,0X0280,0X0208,0X0380,0X0308,0X0480,0X0408, + 0X0040,0X0004,0X0140,0X0104,0X0240,0X0204,0X0340,0X0304,0X0440,0X0404, + 0X0020,0X0002,0X0120,0X0102,0X0220,0X0202,0X0320,0X0302,0X0420,0X0402, + 0X0010,0X0001,0X0110,0X0101,0X0210,0X0201,0X0310,0X0301,0X0410,0X0401 }; + //0X0580,0X0540,0X0520,0X0510,0X0508,0X0504,0X0502,0X0501,0X0680,0X0640 }; +#endif + +#endif + + + +#define MASK_JOY2_RIGHT 0x0001 +#define MASK_JOY2_LEFT 0x0002 +#define MASK_JOY2_UP 0x0004 +#define MASK_JOY2_DOWN 0x0008 +#define MASK_JOY2_BTN 0x0010 +#define MASK_KEY_USER1 0x0020 +#define MASK_KEY_USER2 0x0040 +#define MASK_KEY_USER3 0x0080 +#define MASK_JOY1_RIGHT 0x0100 +#define MASK_JOY1_LEFT 0x0200 +#define MASK_JOY1_UP 0x0400 +#define MASK_JOY1_DOWN 0x0800 +#define MASK_JOY1_BTN 0x1000 +#define MASK_KEY_USER4 0x2000 + + + +#ifdef __cplusplus +extern "C" { +#endif +extern void emu_init(void); +extern void emu_printf(char * text); +extern void emu_printi(int val); +extern void emu_printh(int val); +extern void * emu_Malloc(int size); +extern void * emu_MallocI(int size); +extern void emu_Free(void * pt); + + +extern int emu_FileOpen(char * filename); +extern int emu_FileRead(char * buf, int size); +extern unsigned char emu_FileGetc(void); +extern int emu_FileTell(void); +extern int emu_FileSeek(int seek); +extern void emu_FileClose(void); +extern int emu_FileSize(char * filename); +extern int emu_LoadFile(char * filename, char * buf, int size); +extern int emu_LoadFileSeek(char * filename, char * buf, int size, int seek); +extern void emu_FileTempInit(void); +extern void emu_FileTempRead(int addr, unsigned char * val, int n); +extern void emu_FileTempWrite(int addr, unsigned char val); + + +extern void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index); +extern void emu_DrawScreen(unsigned char * VBuf, int width, int height, int stride); +extern void emu_DrawLine(unsigned char * VBuf, int width, int height, int line); +extern void emu_DrawLine16(unsigned short * VBuf, int width, int height, int line); +extern void emu_DrawVsync(void); +extern int emu_FrameSkip(void); +extern void * emu_LineBuffer(int line); + +extern void emu_InitJoysticks(void); +extern int emu_SwapJoysticks(int statusOnly); +extern unsigned short emu_DebounceLocalKeys(void); +extern int emu_ReadKeys(void); +extern int emu_GetPad(void); +extern int emu_ReadAnalogJoyX(int min, int max); +extern int emu_ReadAnalogJoyY(int min, int max); +extern int emu_ReadI2CKeyboard(void); +extern void emu_sndPlaySound(int chan, int volume, int freq); +extern void emu_sndPlayBuzz(int size, int val); +extern void emu_sndInit(); +extern void emu_resetus(void); +extern int emu_us(void); + +extern int emu_setKeymap(int index); + +#ifdef __cplusplus +} +#endif + +#endif + + + + diff --git a/MCUME_teensy/teensymsx/fmsx.c b/MCUME_teensy/teensymsx/fmsx.c new file mode 100644 index 0000000..78804a3 --- /dev/null +++ b/MCUME_teensy/teensymsx/fmsx.c @@ -0,0 +1,3357 @@ +#include + +#include "emuapi.h" +#include "tft_t_dma.h" +//#include "psram_t.h" +#include "iopins.h" + + +#include "shared.h" +#include "Z80.h" /* Z80 CPU emulation */ +#include "MSX.h" +#include "Sound.h" +#include +#include +//#include + + + +static void RefreshLineTx80(byte Y); +static void RefreshLine0(byte Y); +static void RefreshLine1(byte Y); +static void RefreshLine2(byte Y); +static void RefreshLine3(byte Y); +static void RefreshLine4(byte Y); +static void RefreshLine5(byte Y); +static void RefreshLine6(byte Y); +static void RefreshLine7(byte Y); +static void RefreshLine8(byte Y); +static void RefreshLine10(byte Y); +static void RefreshLine12(byte Y); + + +/** Zero-terminated arrays of disk names for each drive ******/ +extern char *Disks[2][MAXDISKS+1]; + + +/************************************** +* Local macros/typedef +**************************************/ +#define WIDTH 272 +#define HEIGHT 228 + +#define RGB2INT(R,G,B) ((B)|((int)(G)<<8)|((int)(R)<<16)) + +typedef byte pixel; + + +/************************************** +* Local procedures +**************************************/ +static void Sprites(byte Y,pixel *Line); +static void ColorSprites(byte Y,byte *ZBuf); +static pixel *RefreshBorder(byte Y,pixel C); +static void ClearLine(pixel *P,pixel C); +static pixel YJKColor(int Y,int J,int K); + +/** Internal Functions ***************************************/ +/** These functions are defined and internally used by the **/ +/** code in MSX.c. **/ +/*************************************************************/ +byte *LoadROM(const char *Name,int Size,byte *Buf); +int LoadCart(const char *Name,int Slot); +int GuessROM(const byte *Buf,int Size); +void SetMegaROM(int Slot,byte P0,byte P1,byte P2,byte P3); +void MapROM(word A,byte V); /* Switch MegaROM banks */ +void SSlot(byte V); /* Switch secondary slots */ +void VDPOut(byte R,byte V); /* Write value into a VDP register */ +void Printer(byte V); /* Send a character to a printer */ +void PPIOut(byte New,byte Old); /* Set PPI bits (key click, etc.) */ +void CheckSprites(void); /* Check collisions and 5th sprite */ +byte RTCIn(byte R); /* Read RTC registers */ +byte SetScreen(void); /* Change screen mode */ +word SetIRQ(byte IRQ); /* Set/Reset IRQ */ +word StateID(void); /* Compute emulation state ID */ + +static void RefreshLineF(register byte Y); +static void RefreshLine0(register byte Y); +static void RefreshLine1(register byte Y); +static void RefreshLine2(register byte Y); +static void RefreshLine3(register byte Y); +static void RefreshLine4(register byte Y); +static void RefreshLine5(register byte Y); +static void RefreshLine8(register byte Y); +static void RefreshLine10(register byte Y); +static void RefreshLine12(register byte Y); +//#ifdef NARROW +static void RefreshLine7(register byte Y); +static void RefreshLineTx80(register byte Y); +//#endif + +/************************************** +* Local variables +**************************************/ +static unsigned int BPal[256],XPal[80],XPal0; + +static int FirstLine = 18; /* First scanline in the framebuffer */ + +/** User-defined parameters for fMSX *************************/ +byte Verbose = 1; /* Debug msgs ON/OFF */ +byte UPeriod = 2; /* Interrupts/scr. update */ +int VPeriod = CPU_VPERIOD; /* CPU cycles per VBlank */ +int HPeriod = CPU_HPERIOD; /* CPU cycles per HBlank */ +byte SaveCMOS = 0; /* Save CMOS.ROM on exit */ +byte SaveSRAM = 0; /* ~ GMASTER2.RAM on exit */ +byte MSXVersion = 1; /* 0=MSX1,1=MSX2,2=MSX2+ */ +byte JoyTypeA = 1; /* 0=None,1=Joystick, */ +byte JoyTypeB = 0; /* 2=MouseAsJstk,3=Mouse */ +byte ROMTypeA = MAXMAPPERS; /* MegaROM types */ +byte ROMTypeB = MAXMAPPERS; +int RAMPages = 4; /* Number of RAM pages */ +int VRAMPages = 2; /* Number of VRAM pages */ +byte AutoFire = 0; /* Autofire on [SPACE] */ +byte UseDrums = 0; /* Use drms for PSG noise */ +byte ExitNow = 0; /* 1 = Exit the emulator */ + +/** Main hardware: CPU, RAM, VRAM, mappers *******************/ +Z80 CPU; /* Z80 CPU state and regs */ + +byte *VRAM,*VPAGE; /* Video RAM */ + +byte *RAM[8]; /* Main RAM (8x8kB pages) */ +byte *EmptyRAM; /* Empty RAM page (8kB) */ +byte *SRAM; /* SRAM (battery backed) */ +byte *MemMap[4][4][8]; /* Memory maps [PPage][SPage][Addr] */ + +byte *RAMData; /* RAM Mapper contents */ +byte RAMMapper[4]; /* RAM Mapper state */ +byte RAMMask; /* RAM Mapper mask */ + +byte *ROMData[2]; /* ROM Mapper contents */ +byte ROMMapper[2][4]; /* ROM Mappers state */ +byte ROMMask[2]; /* ROM Mapper masks */ + +byte EnWrite[4]; /* 1 if write enabled */ +byte PSL[4],SSL[4]; /* Lists of current slots */ +byte PSLReg,SSLReg; /* Storage for A8h port and (FFFFh) */ + +/** Memory blocks to free in TrashMSX() **********************/ +byte *Chunks[256]; /* Memory blocks to free */ +byte CCount; /* Number of memory blcks */ + + +/** Cartridge files used by fMSX *****************************/ +char CartA[128]; //"CARTA.ROM"; /* Cartridge A ROM file */ +char *CartB = "CARTB.ROM"; /* Cartridge B ROM file */ + +/** Disk images used by fMSX *********************************/ +char *DiskA = "DRIVEA.DSK"; /* Drive A disk image */ +char *DiskB = "DRIVEB.DSK"; /* Drive B disk image */ + +/** Fixed font used by fMSX **********************************/ +char *FontName = "DEFAULT.FNT"; /* Font file for text */ +byte *FontBuf; /* Font for text modes */ +byte UseFont = 0; /* Use ext. font when 1 */ + +/** Printer **************************************************/ +#ifdef unused +char *PrnName = NULL; /* Printer redirect. file */ +int *PrnStream; +#endif + +/** Cassette tape ********************************************/ +#ifdef unused +char *CasName = "DEFAULT.CAS"; /* Tape image file */ +int *CasStream; +#endif + +/** Serial port **********************************************/ +#ifdef unused +char *ComName = NULL; /* Serial redirect. file */ +int *ComIStream; +int *ComOStream; +#endif + +/** Kanji font ROM *******************************************/ +byte *Kanji; /* Kanji ROM 4096x32 */ +int KanLetter; /* Current letter index */ +byte KanCount; /* Byte count 0..31 */ + +/** Keyboard and mouse ***************************************/ +byte KeyMap[16]; /* Keyboard map */ +byte Buttons[2]; /* Mouse button states */ +byte MouseDX[2],MouseDY[2]; /* Mouse offsets */ +byte OldMouseX[2],OldMouseY[2]; /* Old mouse coordinates */ +byte MCount[2]; /* Mouse nibble counter */ + +/** General I/O registers: i8255 *****************************/ +I8255 PPI; /* i8255 PPI at A8h-ABh */ +byte IOReg; /* Storage for AAh port */ + +/** Sound hardware: PSG, SCC, OPLL ***************************/ +AY8910 PSG; /* PSG registers & state */ +YM2413 OPLL; /* OPLL registers & state */ +SCC SCChip; /* SCC registers & state */ +byte SCCOn[2]; /* 1 = SCC page active */ + +/** Serial I/O hardware: i8251+i8253 *************************/ +I8251 SIO; /* SIO registers & state */ + +/** Real-time clock ******************************************/ +byte RTCReg,RTCMode; /* RTC register numbers */ +byte RTC[4][13]; /* RTC registers */ + +/** Video processor ******************************************/ +byte *ChrGen,*ChrTab,*ColTab; /* VDP tables (screen) */ +byte *SprGen,*SprTab; /* VDP tables (sprites) */ +int ChrGenM,ChrTabM,ColTabM; /* VDP masks (screen) */ +int SprTabM; /* VDP masks (sprites) */ +word VAddr; /* VRAM address in VDP */ +byte VKey,PKey,WKey; /* Status keys for VDP */ +byte FGColor,BGColor; /* Colors */ +byte XFGColor,XBGColor; /* Second set of colors */ +byte ScrMode; /* Current screen mode */ +byte VDP[64],VDPStatus[16]; /* VDP registers */ +byte IRQPending; /* Pending interrupts */ +int ScanLine; /* Current scanline */ +byte VDPData; /* VDP data buffer */ +byte PLatch; /* Palette buffer */ +byte ALatch; /* Address buffer */ +int Palette[16]; /* Current palette */ + +/** Places in DiskROM to be patched with ED FE C9 ************/ +const word DiskPatches[] = { 0x4010,0x4013,0x4016,0x401C,0x401F,0 }; + +/** Places in BIOS to be patched with ED FE C9 ***************/ +const word BIOSPatches[] = { 0x00E1,0x00E4,0x00E7,0x00EA,0x00ED,0x00F0,0x00F3,0 }; + +/** Screen Mode Handlers [number of screens + 1] *************/ +const void (*RefreshLine[MAXSCREEN+2])(byte Y) = +{ + RefreshLine0, /* SCR 0: TEXT 40x24 */ + RefreshLine1, /* SCR 1: TEXT 32x24 */ + RefreshLine2, /* SCR 2: BLK 256x192 */ + RefreshLine3, /* SCR 3: 64x48x16 */ + RefreshLine4, /* SCR 4: BLK 256x192 */ + RefreshLine5, /* SCR 5: 256x192x16 */ + RefreshLine6, /* SCR 6: 512x192x4 */ + RefreshLine7, /* SCR 7: 512x192x16 */ + RefreshLine8, /* SCR 8: 256x192x256 */ + 0, /* SCR 9: NONE */ + RefreshLine10, /* SCR 10: YAE 256x192 */ + RefreshLine10, /* SCR 11: YAE 256x192 */ + RefreshLine12, /* SCR 12: YJK 256x192 */ + RefreshLineTx80 /* SCR 0: TEXT 80x24 */ +}; + +/** VDP Address Register Masks *******************************/ +const struct { byte R2,R3,R4,R5,M2,M3,M4,M5; } MSK[MAXSCREEN+2] = +{ + { 0x7F,0x00,0x3F,0x00,0x00,0x00,0x00,0x00 }, /* SCR 0: TEXT 40x24 */ + { 0x7F,0xFF,0x3F,0xFF,0x00,0x00,0x00,0x00 }, /* SCR 1: TEXT 32x24 */ + { 0x7F,0x80,0x3C,0xFF,0x00,0x7F,0x03,0x00 }, /* SCR 2: BLK 256x192 */ + { 0x7F,0x00,0x3F,0xFF,0x00,0x00,0x00,0x00 }, /* SCR 3: 64x48x16 */ + { 0x7F,0x80,0x3C,0xFC,0x00,0x7F,0x03,0x03 }, /* SCR 4: BLK 256x192 */ + { 0x60,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 5: 256x192x16 */ + { 0x60,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 6: 512x192x4 */ + { 0x20,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 7: 512x192x16 */ + { 0x20,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 8: 256x192x256 */ + { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, /* SCR 9: NONE */ + { 0x20,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 10: YAE 256x192 */ + { 0x20,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 11: YAE 256x192 */ + { 0x20,0x00,0x00,0xFC,0x1F,0x00,0x00,0x03 }, /* SCR 12: YJK 256x192 */ + { 0x7C,0xF8,0x3F,0x00,0x03,0x07,0x00,0x00 } /* SCR 0: TEXT 80x24 */ +}; + +/** MegaROM Mapper Names *************************************/ +char *ROMNames[MAXMAPPERS+1] = +{ + "GENERIC/8kB","GENERIC/16kB","KONAMI5/8kB", + "KONAMI4/8kB","ASCII/8kB","ASCII/16kB", + "GMASTER2/SRAM","UNKNOWN" +}; + +static byte JoyState; + + +static unsigned char linebuffer[WIDTH]; + +char *Disks[2][MAXDISKS+1]; /* Disk names for each drive */ + + + + + +/* +PSRAM_T psram = PSRAM_T(PSRAM_CS, PSRAM_MOSI, PSRAM_SCLK, PSRAM_MISO); + +extern "C" uint8 read_rom(int address) { + //emu_printh(address); + return (psram.psread(address)); +} + +extern "C" void write_rom(int address, uint8 val) { + psram.pswrite(address,val); + +} +*/ + + +void msx_Init(void) +{ + emu_printf("Allocating MEM"); + //psram.begin(); + //mem_init(); + + + + /* Clear everything */ +// CartCount=TypeCount=JoyCount=0; +// DiskCount[0]=DiskCount[1]=0; + + /* Default disk images */ + Disks[0][1]=Disks[1][1]=0; + Disks[0][0]=DiskA; + Disks[1][0]=DiskB; + /* Terminate disk lists and set initial disk names */ +// if(DiskCount[0]) { Disks[0][DiskCount[0]]=0;DiskA=Disks[0][0]; } +// if(DiskCount[1]) { Disks[1][DiskCount[1]]=0;DiskB=Disks[1][0]; } + + /* Start fMSX! */ +// if(!InitMachine()) return(1); +// StartMSX(); +// TrashMSX(); +// TrashMachine(); + emu_printf("Allocating MEM done"); +} + + +static int hk = 0; +static int k = 0; + + +void msx_Input(int click) { + hk = emu_ReadI2CKeyboard(); + k = emu_ReadKeys(); +} + + + +static int SoundRate = 0; +static int MasterVolume = 200; +static int MasterSwitch = (1<0) J-=I; + //} + + break; + case 0xFC: R=Buf[1]; + if(R>=1) + if(CH[J].Freq&&(V=CH[J].Volume)&&(M&1)) + switch(CH[J].Type) + { + case SND_NOISE: /* White Noise */ + /* For high frequencies, recompute volume */ + if(CH[J].Freq<=SoundRate) K=0x10000*CH[J].Freq/SoundRate; + else { V=V*SoundRate/CH[J].Freq;K=0x10000; } + L1=CH[J].Count; + V<<=7; + for(I=0;I0? (SoundRate<<15)/CH[J].Freq/CH[J].Rate + : (SoundRate<<15)/CH[J].Freq/CH[J].Length; + L1 = CH[J].Pos%CH[J].Length; + L2 = CH[J].Count; + A1 = CH[J].Data[L1]*V; + /* If expecting interpolation... */ + if(L2>15)+1; + N = ((K-(L2&0x7FFF))>>15)+1; + } + /* Add waveform to the buffer */ + for(I=0;I>15)+1; + } + } + /* End counting */ + CH[J].Pos = L1; + CH[J].Count = L2; + break; + + case SND_MELODIC: /* Melodic Sound */ + case SND_TRIANGLE: /* Triangular Wave */ + default: /* Default Sound */ + /* Triangular wave has twice less volume */ + if(CH[J].Type==SND_TRIANGLE) V=(V+1)>>1; + /* Do not allow frequencies that are too high */ + if(CH[J].Freq>=SoundRate/3) break; + K=0x10000*CH[J].Freq/SoundRate; + L1=CH[J].Count; + V<<=7; + for(I=0;I>16; + I=I<-128? -128:I>127? 127:I; + //Buf[J]=AUDIO_CONV(I); + *dest++ = I; + *dest++ = I; + Wave[J]=0; + } + + + +} + +/** Generate sound of given frequency (Hz) and volume **/ +/** (0..255) via given channel. **/ +/*************************************************************/ +static void DSound(int Channel,int NewFreq,int NewVolume) +{ + unsigned char Buf[4]; + + if((Channel<0)||(Channel>=SND_CHANNELS)) return; + if(!SoundRate||!(MasterSwitch&(1<>8; + handleSoundCmd(Buf, 4); + +// write(PipeFD[1],Buf,4); + } +} + +/** Set master volume (0..255) and turn channels on/off. **/ +/** Each bit in Toggle corresponds to a channel (1=on). **/ +/*************************************************************/ +static void DSetChannels(int MVolume,int MSwitch) +{ + unsigned char Buf[4]; + int J; + + if(!SoundRate) return; + + /* Sending new MasterVolume/MasterSwitch */ + Buf[0]=0xFF; + Buf[1]=MVolume; + Buf[2]=MSwitch&0xFF; + Buf[3]=MSwitch>>8; + handleSoundCmd(Buf, 4); +// write(PipeFD[1],Buf,4); + + /* Switching channels on/off */ + for(J=0;J>8; + } + + /* Write out */ + handleSoundCmd(Buf, 4); +// write(PipeFD[1],Buf,4); + } + + /* Set new MasterSwitch value */ + MasterSwitch=MSwitch; + MasterVolume=MVolume; +} + +/** Set sound type (SND_NOISE/SND_MELODIC) for a given **/ +/** channel. **/ +/*************************************************************/ +static void DSetSound(int Channel,int NewType) +{ + unsigned char Buf[4]; + + if(!SoundRate) return; + if((Channel<0)||(Channel>=SND_CHANNELS)) return; + CH[Channel].Type=NewType; + + Buf[0]=0xFC; + Buf[1]=Channel; + Buf[2]=NewType&0xFF; + Buf[3]=NewType>>8; + handleSoundCmd(Buf, 4); +// write(PipeFD[1],Buf,4); +} + +/** Set waveform for a given channel. The channel will be **/ +/** marked with sound type SND_WAVE. Set Rate=0 if you want **/ +/** waveform to be an instrument or set it to the waveform **/ +/** own playback rate. **/ +/*************************************************************/ +static void DSetWave(int Channel,const signed char *Data,int Length,int Rate) +{ + unsigned char Buf[6+SND_SAMPLESIZE]; + + if(!SoundRate) return; + if((Channel<0)||(Channel>=SND_CHANNELS)) return; + if((Length<=0)||(Length>SND_SAMPLESIZE)) return; + + Buf[0]=0xFE; + Buf[1]=Channel; + Buf[2]=Length&0xFF; + Buf[3]=Length>>8; + Buf[4]=Rate&0xFF; + Buf[5]=Rate>>8; + memcpy(Buf+6,Data,Length); + handleSoundCmd(Buf, 6+Length); +// write(PipeFD[1],Buf,6+Length); +} + +static void DDrum(int Type,int Force) +{ +} + + +void msx_Start(char * Cartridge) +{ + emu_printf("init started"); + + + + /*** MSX versions: ***/ + static const char *Versions[] = { "MSX","MSX2","MSX2+" }; + + /*** Joystick types: ***/ + static const char *JoyTypes[] = + { + "nothing","normal joystick", + "mouse in joystick mode","mouse in real mode" + }; + + /*** CMOS ROM default values: ***/ + static const byte RTCInit[4][13] = + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0,40,80,15, 4, 4, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + }; + + /*** VDP status register states: ***/ + static const byte VDPSInit[16] = { 0x9F,0,0x6C,0,0,0,0,0,0,0,0,0,0,0,0,0 }; + + /*** VDP control register states: ***/ + static const byte VDPInit[64] = + { + 0x00,0x10,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + + /*** Initial palette: ***/ + static const byte PalInit[16][3] = + { + {0x00,0x00,0x00},{0x00,0x00,0x00},{0x20,0xC0,0x20},{0x60,0xE0,0x60}, + {0x20,0x20,0xE0},{0x40,0x60,0xE0},{0xA0,0x20,0x20},{0x40,0xC0,0xE0}, + {0xE0,0x20,0x20},{0xE0,0x60,0x60},{0xC0,0xC0,0x20},{0xC0,0xC0,0x80}, + {0x20,0x80,0x20},{0xC0,0x40,0xA0},{0xA0,0xA0,0xA0},{0xE0,0xE0,0xE0} + }; + + int *T,I,J,K; + byte *P; + word A; + //FILE *F; + +#ifdef SOUND_PRESENT +#ifdef HAS_SND + emu_sndInit(); + SndDriver.SetSound = DSetSound; + SndDriver.Drum = DDrum; + SndDriver.SetChannels = DSetChannels; + SndDriver.Sound = DSound; + SndDriver.SetWave = DSetWave; + + //int J; + /* Reset all channels */ + for(J=0;J2) MSXVersion=2; + if((RAMPages<(MSXVersion? 8:4))||(RAMPages>256)) + RAMPages=MSXVersion? 8:4; + if((VRAMPages<(MSXVersion? 8:2))||(VRAMPages>8)) + VRAMPages=MSXVersion? 8:2; + + /* Number of RAM pages should be power of 2 */ + /* Calculate RAMMask=(2^RAMPages)-1 */ + for(J=1;J=MAXMAPPERS)&&(J>0x8000)) + { + ROMTypeA=GuessROM(ROMData[0],J); + if(Verbose) { + emu_printf("Cartridge A: Guessed"); + emu_printf(ROMNames[ROMTypeA]); + } + } + + /* For Generic/16kB carts, set ROM pages as 0:1:N-2:N-1 */ + if((ROMTypeA==1)&&(J>0x8000)) + SetMegaROM(0,0,1,ROMMask[0]-1,ROMMask[0]); + + /* Loading cartridge into slot B... */ + LoadCart(CartB,1); + J=(ROMMask[1]+1)*8192; + + /* Guess mapper is not given */ + if((ROMTypeB>=MAXMAPPERS)&&(J>0x8000)) + { + ROMTypeB=GuessROM(ROMData[1],J); + if(Verbose) { + emu_printf("Cartridge B: Guessed"); + emu_printf(ROMNames[ROMTypeB]); + } + } + + + /* For Generic/16kB carts, set ROM pages as 0:1:N-2:N-1 */ + if((ROMTypeB==1)&&(J>0x8000)) + SetMegaROM(1,0,1,ROMMask[1]-1,ROMMask[1]); + + /* For GameMaster2, allocate and load SRAM */ + if((ROMTypeA==6)||(ROMTypeB==6)) + { + if(Verbose) emu_printf("Allocating 16kB for GameMaster2 SRAM..."); + SRAM=emu_Malloc(0x4000); + /* Erase SRAM and add it to the list of mallocs */ + memset(SRAM,NORAM,0x4000); + Chunks[CCount++]=SRAM; +#ifdef unused + /* Try loading SRAM data form disk */ + if(!(F=fopen("GMASTER2.RAM","rb"))) { + emu_printf("failed opening"); + } + else + { + if(Verbose) emu_printf("loading GMASTER2.RAM..."); + if(fread(SRAM,1,0x2000,F)!=0x2000) + { + emu_printf("failed"); + } + else + { + /* Mirror GameMaster2 SRAM as needed */ + memcpy(SRAM+0x2000,SRAM+0x1000,0x1000); + memcpy(SRAM+0x3000,SRAM+0x1000,0x1000); + memcpy(SRAM+0x1000,SRAM,0x1000); + } + /* Done with the file */ + fclose(F); + } +#endif + } + + /* Load MSX2-dependent cartridge ROMs: MSXDOS2 and PAINTER */ + if(MSXVersion>0) + { + /* Find an empty slot */ + if(MemMap[1][0][2]==EmptyRAM) J=1; + else if(MemMap[2][0][2]==EmptyRAM) J=2; + else J=0; + + /* Try loading MSXDOS2 cartridge, if slot */ + /* found and DiskROM present */ + if(J&&(MemMap[3][1][2]!=EmptyRAM)) + { + if(J==2) ROMTypeB=1; else ROMTypeA=1; + if(LoadCart("MSXDOS2.ROM",J-1)) + SetMegaROM(J-1,0,1,ROMMask[J-1]-1,ROMMask[J-1]); + } + + /* Find an empty slot */ + if(MemMap[1][0][2]==EmptyRAM) J=1; + else if(MemMap[2][0][2]==EmptyRAM) J=2; + else J=0; + + /* Try loading PAINTER ROM if slot found */ + if(J) LoadCart("PAINTER.ROM",J-1); + } + + /* Try loading font */ + if(Verbose) { + emu_printf("Loading font..."); + emu_printf(FontName); + } + FontBuf=LoadROM(FontName,0x800,0); + +#ifdef unused + /* Open stream for a printer */ + if(!PrnName) PrnStream=stdout; + else + { + if(Verbose) printf("Redirecting printer output to %s...",PrnName); + if(!(PrnStream=fopen(PrnName,"wb"))) PrnStream=stdout; + } +#endif + +#ifdef unused + /* Open streams for serial IO */ + if(!ComName) { ComIStream=stdin;ComOStream=stdout; } + else + { + if(Verbose) printf("Redirecting serial I/O to %s...",ComName); + if(!(ComOStream=ComIStream=fopen(ComName,"r+b"))) + { ComIStream=stdin;ComOStream=stdout; } + } +#endif + + /* Open disk images */ +#ifdef DISK + if(ChangeDisk(0,DiskA)) + if(Verbose) { + emu_printf("Inserting floppy into drive A"); + emu_printf(DiskA); + } + if(ChangeDisk(1,DiskB)) + if(Verbose) { + emu_printf("Inserting floppy into drive B"); + emu_printf(DiskB); + } +#endif /* DISK */ + +#ifdef unused + /* Open casette image */ + if(CasName) + if(CasStream=fopen(CasName,"r+b")) + if(Verbose) { + emu_printf("Inserting tape"); + emu_printf(CasName); + } +#endif + + if(Verbose) + { + emu_printf("Attaching joystick port A"); + emu_printf(JoyTypes[JoyTypeA]); + emu_printf("Attaching joystick port B"); + emu_printf(JoyTypes[JoyTypeB]); + emu_printf("Initializing memory mappers..."); + } + + for(J=0;J<4;J++) + { + EnWrite[J]=0; /* Write protect ON for all slots */ + PSL[J]=SSL[J]=0; /* PSL=0:0:0:0, SSL=0:0:0:0 */ + MemMap[3][2][J*2] = RAMData+(3-J)*0x4000; /* RAMMap=3:2:1:0 */ + MemMap[3][2][J*2+1] = MemMap[3][2][J*2]+0x2000; + RAMMapper[J] = 3-J; + RAM[J*2] = MemMap[0][0][J*2]; /* Setting RAM */ + RAM[J*2+1] = MemMap[0][0][J*2+1]; + } + + if(Verbose) emu_printf("Initializing VDP, PSG, OPLL, SCC, and CPU..."); + + /* Initialize palette */ + for(J=0;J<16;J++) + { + Palette[J]=RGB2INT(PalInit[J][0],PalInit[J][1],PalInit[J][2]); + SetColor(J,PalInit[J][0],PalInit[J][1],PalInit[J][2]); + } + + /* Reset mouse coordinates/counters */ + for(J=0;J<2;J++) + Buttons[J]=MouseDX[J]=MouseDY[J]=OldMouseX[J]=OldMouseY[J]=MCount[J]=0; + + /* Initialize sound logging */ + //InitMIDI("SndName"); + + /* Reset sound chips */ + Reset8910(&PSG,0); + ResetSCC(&SCChip,AY8910_CHANNELS); + Reset2413(&OPLL,AY8910_CHANNELS); + Sync8910(&PSG,AY8910_SYNC); + SyncSCC(&SCChip,SCC_SYNC); + Sync2413(&OPLL,YM2413_SYNC); + + /* Reset serial I/O */ +#ifdef unused + Reset8251(&SIO,ComIStream,ComOStream); +#else + Reset8251(&SIO,NULL,NULL); +#endif + /* Reset PPI chips and slot selectors */ + Reset8255(&PPI); + PPI.Rout[0]=PSLReg=0x00; + PPI.Rout[2]=IOReg=0x00; + SSLReg=0x00; + + memcpy(VDP,VDPInit,sizeof(VDP)); + memcpy(VDPStatus,VDPSInit,sizeof(VDPStatus)); + memset(KeyMap,0xFF,16); /* Keyboard */ + IRQPending=0x00; /* No IRQs pending */ + SCCOn[0]=SCCOn[1]=0; /* SCCs off for now */ + RTCReg=RTCMode=0; /* Clock registers */ + KanCount=0;KanLetter=0; /* Kanji extension */ + ChrTab=ColTab=ChrGen=VRAM; /* VDP tables */ + SprTab=SprGen=VRAM; + ChrTabM=ColTabM=ChrGenM=SprTabM=~0; /* VDP addr. masks */ + VPAGE=VRAM; /* VRAM page */ + FGColor=BGColor=XFGColor=XBGColor=0; /* VDP colors */ + ScrMode=0; /* Screen mode */ + VKey=PKey=1;WKey=0; /* VDP keys */ + VAddr=0x0000; /* VRAM access addr */ + ScanLine=0; /* Current scanline */ + VDPData=NORAM; /* VDP data buffer */ + UseFont=0; /* Extern. font use */ + + /* Set "V9958" VDP version for MSX2+ */ + if(MSXVersion>=2) VDPStatus[1]|=0x04; + + /* Reset CPU */ + ResetZ80(&CPU); + + /* Done with initialization */ + if(Verbose) + { + emu_printi(HPeriod); + emu_printf("CPU cycles per HBlank"); + emu_printi(VPeriod); + emu_printf("CPU cycles per VBlank"); + emu_printi(VPeriod/HPeriod); + emu_printf("scanlines"); + } + + + /* Start execution of the code */ + if(Verbose) emu_printf("RUNNING ROM CODE...\n"); + A=RunZ80(&CPU); + + + emu_printf("init done"); +} + +struct { byte Pos,Mask; } Keys[] = +{ + {0,0x01}, //'0' + {0,0x02}, //'1' + {0,0x04}, //'2' + {0,0x08}, //'3' + {0,0x10}, //'4' + {0,0x20}, //'5' + {0,0x40}, //'6' + {0,0x80}, //'7' + {1,0x01}, //'8' + {1,0x02}, //'9' + + {4,0x40}, //'q' + {5,0x10}, //'w' + {3,0x04}, //'e' + {4,0x80}, //'r' + {5,0x02}, //'t' + {5,0x40}, //'y' + {5,0x04}, //'u' + {3,0x40}, //'i' + {4,0x10}, //'o' + {4,0x20}, //'p' + + {2,0x40}, //'a' + {5,0x01}, //'s' + {3,0x02}, //'d' + {3,0x08}, //'f' + {3,0x10}, //'g' + {3,0x20}, //'h' + {3,0x80}, //'j' + {4,0x01}, //'k' + {4,0x02}, //'l' + {7,0x80}, //'return' + + {2,0x04}, //',' + {5,0x80}, //'z' + {5,0x20}, //'x' + {3,0x01}, //'c' + {5,0x08}, //'v' + {2,0x80}, //'b' + {4,0x08}, //'n' + {4,0x04}, //'m' + {7,0x20}, // 'BackSpace' + {8,0x01} //' ' +}; + +void msx_Step(void) { + JoyState = 0; + if (k & MASK_JOY2_DOWN) JoyState|=0x02; + if (k & MASK_JOY2_UP) JoyState|=0x01; + if (k & MASK_JOY2_LEFT) JoyState|=0x04; + if (k & MASK_JOY2_RIGHT) JoyState|=0x08; + if (k & MASK_JOY2_BTN) JoyState|=0x10; + if (k & MASK_KEY_USER2) JoyState|=0x20; + + if (hk != 0) { + emu_printh(hk); + KeyMap[Keys[hk-1].Pos] &=~ Keys[hk-1].Mask; + } + else { + memset(KeyMap,0xFF,16); + } + + RunZ80(&CPU); + + emu_DrawVsync(); +} + + + + + + +void SND_Process(void *stream, int len) { + //psg_update(stream, 0, len); + mixaudio(stream, len); +} + + + + + +void SetColor(byte N,byte R,byte G,byte B) +{ + XPal[N] = N; + emu_SetPaletteEntry(R,G,B,N); +} + +void Keyboard(void) +{ +} + +byte Joystick(register byte N) { return(JoyState); } + +/** Mouse() **************************************************/ +/** Query coordinates of a mouse connected to port N. **/ +/** Returns F2.F1.Y.Y.Y.Y.Y.Y.Y.Y.X.X.X.X.X.X.X.X. **/ +/*************************************************************/ +int Mouse(register byte N) +{ + return(0); +} + + + + + + +/** ClearLine() **********************************************/ +/** Clear 256 pixels from P with color C. **/ +/*************************************************************/ +static void ClearLine(register pixel *P,register pixel C) +{ + register int J; + + for(J=0;J<256;J++) P[J]=C; +} + +/** YJKColor() ***********************************************/ +/** Given a color in YJK format, return the corresponding **/ +/** palette entry. **/ +/*************************************************************/ +static pixel YJKColor(register int Y,register int J,register int K) +{ + register int R,G,B; + + R=Y+J; + G=Y+K; + B=((5*Y-2*J-K)/4); + + R=R<0? 0:R>31? 31:R; + G=G<0? 0:G>31? 31:G; + B=B<0? 0:B>31? 31:B; + + return(BPal[(R&0x1C)|((G&0x1C)<<3)|(B>>3)]); +} + +/** RefreshBorder() ******************************************/ +/** This function is called from RefreshLine#() to refresh **/ +/** the screen border. It returns a pointer to the start of **/ +/** scanline Y in FB or 0 if scanline is beyond FB. **/ +/*************************************************************/ +pixel *RefreshBorder(register byte Y,register pixel C) +{ + register pixel *P; + register int H; + + /* First line number in the buffer */ + if(!Y) FirstLine=(ScanLines212? 8:18)+VAdjust; + + /* Return 0 if we've run out of the screen buffer due to overscan */ + if(Y+FirstLine>=HEIGHT) return(0); + + /* Set up the transparent color */ + XPal[0]=(!BGColor||SolidColor0)? XPal0:XPal[BGColor]; + + /* Start of the buffer */ + P=(pixel *)&linebuffer[0]; + + /* Paint top of the screen */ + //if(!Y) for(H=WIDTH*FirstLine-1;H>=0;H--) P[H]=C; + + /* Start of the line */ + //P+=WIDTH*(FirstLine+Y); + + /* Paint left/right borders */ + for(H=(WIDTH-256)/2+HAdjust;H>0;H--) P[H-1]=C; + for(H=(WIDTH-256)/2-HAdjust;H>0;H--) P[WIDTH-H]=C; + + /* Paint bottom of the screen */ + //H=ScanLines212? 212:192; + //if(Y==H-1) for(H=WIDTH*(HEIGHT-H-FirstLine+1)-1;H>=WIDTH;H--) P[H]=C; + + /* Return pointer to the scanline in FB */ + return(P+(WIDTH-256)/2+HAdjust); +} + +/** Sprites() ************************************************/ +/** This function is called from RefreshLine#() to refresh **/ +/** sprites in SCREENs 1-3. **/ +/*************************************************************/ +void Sprites(register byte Y,register pixel *Line) +{ + register pixel *P,C; + register byte H,*PT,*AT; + register unsigned int M; + register int L,K; + + /* Assign initial values before counting */ + H=Sprites16x16? 16:8; + C=0;M=0;L=0; + AT=SprTab-4; + Y+=VScroll; + + /* Count displayed sprites */ + do + { + M<<=1;AT+=4;L++; /* Iterating through SprTab */ + K=AT[0]; /* K = sprite Y coordinate */ + if(K==208) break; /* Iteration terminates if Y=208 */ + if(K>256-H) K-=256; /* Y coordinate may be negative */ + + /* Mark all valid sprites with 1s, break at MAXSPRITE1 sprites */ + if((Y>K)&&(Y<=K+H)) { M|=1;C++;if(C==MAXSPRITE1) break; } + } + while(L<32); + + /* Draw all marked sprites */ + for(;M;M>>=1,AT-=4) + if(M&1) + { + C=AT[3]; /* C = sprite attributes */ + L=C&0x80? AT[1]-32:AT[1]; /* Sprite may be shifted left by 32 */ + C&=0x0F; /* C = sprite color */ + + if((L<256)&&(L>-H)&&C) + { + K=AT[0]; /* K = sprite Y coordinate */ + if(K>256-H) K-=256; /* Y coordinate may be negative */ + + P=Line+L; + PT=SprGen+((int)(H>8? AT[2]&0xFC:AT[2])<<3)+Y-K-1; + C=XPal[C]; + + /* Mask 1: clip left sprite boundary */ + K=L>=0? 0x0FFFF:(0x10000>>-L)-1; + /* Mask 2: clip right sprite boundary */ + if(L>256-H) K^=((0x00200>>(H-8))<<(L-257+H))-1; + /* Get and clip the sprite data */ + K&=((int)PT[0]<<8)|(H>8? PT[16]:0x00); + + /* Draw left 8 pixels of the sprite */ + if(K&0xFF00) + { + if(K&0x8000) P[0]=C;if(K&0x4000) P[1]=C; + if(K&0x2000) P[2]=C;if(K&0x1000) P[3]=C; + if(K&0x0800) P[4]=C;if(K&0x0400) P[5]=C; + if(K&0x0200) P[6]=C;if(K&0x0100) P[7]=C; + } + + /* Draw right 8 pixels of the sprite */ + if(K&0x00FF) + { + if(K&0x0080) P[8]=C; if(K&0x0040) P[9]=C; + if(K&0x0020) P[10]=C;if(K&0x0010) P[11]=C; + if(K&0x0008) P[12]=C;if(K&0x0004) P[13]=C; + if(K&0x0002) P[14]=C;if(K&0x0001) P[15]=C; + } + } + } +} + +/** ColorSprites() *******************************************/ +/** This function is called from RefreshLine#() to refresh **/ +/** color sprites in SCREENs 4-8. The result is returned in **/ +/** ZBuf, whose size must be 304 bytes (32+256+16). **/ +/*************************************************************/ +void ColorSprites(register byte Y,byte *ZBuf) +{ + register byte C,H,J,OrThem; + register byte *P,*PT,*AT; + register int L,K; + register unsigned int M; + + /* Clear ZBuffer and exit if sprites are off */ + memset(ZBuf+32,0,256); + if(SpritesOFF) return; + + /* Assign initial values before counting */ + H=Sprites16x16? 16:8; + C=0;M=0;L=0; + AT=SprTab-4; + OrThem=0x00; + + /* Count displayed sprites */ + do + { + M<<=1;AT+=4;L++; /* Iterating through SprTab */ + K=AT[0]; /* Read Y from SprTab */ + if(K==216) break; /* Iteration terminates if Y=216 */ + K=(byte)(K-VScroll); /* Sprite's actual Y coordinate */ + if(K>256-H) K-=256; /* Y coordinate may be negative */ + + /* Mark all valid sprites with 1s, break at MAXSPRITE2 sprites */ + if((Y>K)&&(Y<=K+H)) { M|=1;C++;if(C==MAXSPRITE2) break; } + } + while(L<32); + + /* Draw all marked sprites */ + for(;M;M>>=1,AT-=4) + if(M&1) + { + K=(byte)(AT[0]-VScroll); /* K = sprite Y coordinate */ + if(K>256-H) K-=256; /* Y coordinate may be negative */ + + J=Y-K-1; + C=SprTab[-0x0200+((AT-SprTab)<<2)+J]; + OrThem|=C&0x40; + + if(C&0x0F) + { + PT=SprGen+((int)(H>8? AT[2]&0xFC:AT[2])<<3)+J; + P=ZBuf+AT[1]+(C&0x80? 0:32); + C&=0x0F; + J=PT[0]; + + if(OrThem&0x20) + { + if(J&0x80) P[0]|=C;if(J&0x40) P[1]|=C; + if(J&0x20) P[2]|=C;if(J&0x10) P[3]|=C; + if(J&0x08) P[4]|=C;if(J&0x04) P[5]|=C; + if(J&0x02) P[6]|=C;if(J&0x01) P[7]|=C; + if(H>8) + { + J=PT[16]; + if(J&0x80) P[8]|=C; if(J&0x40) P[9]|=C; + if(J&0x20) P[10]|=C;if(J&0x10) P[11]|=C; + if(J&0x08) P[12]|=C;if(J&0x04) P[13]|=C; + if(J&0x02) P[14]|=C;if(J&0x01) P[15]|=C; + } + } + else + { + if(J&0x80) P[0]=C;if(J&0x40) P[1]=C; + if(J&0x20) P[2]=C;if(J&0x10) P[3]=C; + if(J&0x08) P[4]=C;if(J&0x04) P[5]=C; + if(J&0x02) P[6]=C;if(J&0x01) P[7]=C; + if(H>8) + { + J=PT[16]; + if(J&0x80) P[8]=C; if(J&0x40) P[9]=C; + if(J&0x20) P[10]=C;if(J&0x10) P[11]=C; + if(J&0x08) P[12]=C;if(J&0x04) P[13]=C; + if(J&0x02) P[14]=C;if(J&0x01) P[15]=C; + } + } + } + + /* Update overlapping flag */ + OrThem>>=1; + } +} + +/** RefreshLineF() *******************************************/ +/** Dummy refresh function called for non-existing screens. **/ +/*************************************************************/ +static void RefreshLineF(register byte Y) +{ + register pixel *P; + + //if(Verbose>1) + // printf + // ( + // "ScrMODE %d: ChrTab=%X ChrGen=%X ColTab=%X SprTab=%X SprGen=%X\n", + // ScrMode,ChrTab-VRAM,ChrGen-VRAM,ColTab-VRAM,SprTab-VRAM,SprGen-VRAM + // ); + + P=RefreshBorder(Y,XPal[BGColor]); + if(P) ClearLine(P,XPal[BGColor]); +} + +/** RefreshLine0() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN0. **/ +/*************************************************************/ +static void RefreshLine0(register byte Y) +{ + register pixel *P,FC,BC; + register byte X,*T,*G; + + BC=XPal[BGColor]; + P=RefreshBorder(Y,BC); + if(!P) return; + + if(!ScreenON) ClearLine(P,BC); + else + { + P[0]=P[1]=P[2]=P[3]=P[4]=P[5]=P[6]=P[7]=P[8]=BC; + + G=(UseFont&&FontBuf? FontBuf:ChrGen)+((Y+VScroll)&0x07); + T=ChrTab+40*(Y>>3); + FC=XPal[FGColor]; + P+=9; + + for(X=0;X<40;X++,T++,P+=6) + { + Y=G[(int)*T<<3]; + P[0]=Y&0x80? FC:BC;P[1]=Y&0x40? FC:BC; + P[2]=Y&0x20? FC:BC;P[3]=Y&0x10? FC:BC; + P[4]=Y&0x08? FC:BC;P[5]=Y&0x04? FC:BC; + } + + P[0]=P[1]=P[2]=P[3]=P[4]=P[5]=P[6]=BC; + } +} + +/** RefreshLine1() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN1, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine1(register byte Y) +{ + register pixel *P,FC,BC; + register byte K,X,*T,*G; + + P=RefreshBorder(Y,XPal[BGColor]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor]); + else + { + Y+=VScroll; + G=(UseFont&&FontBuf? FontBuf:ChrGen)+(Y&0x07); + T=ChrTab+((int)(Y&0xF8)<<2); + + for(X=0;X<32;X++,T++,P+=8) + { + K=ColTab[*T>>3]; + FC=XPal[K>>4]; + BC=XPal[K&0x0F]; + K=G[(int)*T<<3]; + P[0]=K&0x80? FC:BC;P[1]=K&0x40? FC:BC; + P[2]=K&0x20? FC:BC;P[3]=K&0x10? FC:BC; + P[4]=K&0x08? FC:BC;P[5]=K&0x04? FC:BC; + P[6]=K&0x02? FC:BC;P[7]=K&0x01? FC:BC; + } + + if(!SpritesOFF) Sprites(Y,P-256); + } +} + +/** RefreshLine2() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN2, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine2(register byte Y) +{ + register pixel *P,FC,BC; + register byte K,X,*T; + register int I,J; + + P=RefreshBorder(Y,XPal[BGColor]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor]); + else + { + Y+=VScroll; + T=ChrTab+((int)(Y&0xF8)<<2); + I=((int)(Y&0xC0)<<5)+(Y&0x07); + + for(X=0;X<32;X++,T++,P+=8) + { + J=(int)*T<<3; + K=ColTab[(I+J)&ColTabM]; + FC=XPal[K>>4]; + BC=XPal[K&0x0F]; + K=ChrGen[(I+J)&ChrGenM]; + P[0]=K&0x80? FC:BC;P[1]=K&0x40? FC:BC; + P[2]=K&0x20? FC:BC;P[3]=K&0x10? FC:BC; + P[4]=K&0x08? FC:BC;P[5]=K&0x04? FC:BC; + P[6]=K&0x02? FC:BC;P[7]=K&0x01? FC:BC; + } + + if(!SpritesOFF) Sprites(Y,P-256); + } +} + +/** RefreshLine3() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN3, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine3(register byte Y) +{ + register pixel *P; + register byte X,K,*T,*G; + + P=RefreshBorder(Y,XPal[BGColor]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor]); + else + { + Y+=VScroll; + T=ChrTab+((int)(Y&0xF8)<<2); + G=ChrGen+((Y&0x1C)>>2); + + for(X=0;X<32;X++,T++,P+=8) + { + K=G[(int)*T<<3]; + P[0]=P[1]=P[2]=P[3]=XPal[K>>4]; + P[4]=P[5]=P[6]=P[7]=XPal[K&0x0F]; + } + + if(!SpritesOFF) Sprites(Y,P-256); + } +} + +/** RefreshLine4() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN4, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine4(register byte Y) +{ + register pixel *P,FC,BC; + register byte K,X,C,*T,*R; + register int I,J; + byte ZBuf[304]; + + P=RefreshBorder(Y,XPal[BGColor]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + Y+=VScroll; + T=ChrTab+((int)(Y&0xF8)<<2); + I=((int)(Y&0xC0)<<5)+(Y&0x07); + + for(X=0;X<32;X++,R+=8,P+=8,T++) + { + J=(int)*T<<3; + K=ColTab[(I+J)&ColTabM]; + FC=XPal[K>>4]; + BC=XPal[K&0x0F]; + K=ChrGen[(I+J)&ChrGenM]; + + C=R[0];P[0]=C? XPal[C]:(K&0x80)? FC:BC; + C=R[1];P[1]=C? XPal[C]:(K&0x40)? FC:BC; + C=R[2];P[2]=C? XPal[C]:(K&0x20)? FC:BC; + C=R[3];P[3]=C? XPal[C]:(K&0x10)? FC:BC; + C=R[4];P[4]=C? XPal[C]:(K&0x08)? FC:BC; + C=R[5];P[5]=C? XPal[C]:(K&0x04)? FC:BC; + C=R[6];P[6]=C? XPal[C]:(K&0x02)? FC:BC; + C=R[7];P[7]=C? XPal[C]:(K&0x01)? FC:BC; + } + } +} + +/** RefreshLine5() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN5, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine5(register byte Y) +{ + register pixel *P; + register byte I,X,*T,*R; + byte ZBuf[304]; + + P=RefreshBorder(Y,XPal[BGColor]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + T=ChrTab+(((int)(Y+VScroll)<<7)&ChrTabM&0x7FFF); + + for(X=0;X<16;X++,R+=16,P+=16,T+=8) + { + I=R[0];P[0]=XPal[I? I:T[0]>>4]; + I=R[1];P[1]=XPal[I? I:T[0]&0x0F]; + I=R[2];P[2]=XPal[I? I:T[1]>>4]; + I=R[3];P[3]=XPal[I? I:T[1]&0x0F]; + I=R[4];P[4]=XPal[I? I:T[2]>>4]; + I=R[5];P[5]=XPal[I? I:T[2]&0x0F]; + I=R[6];P[6]=XPal[I? I:T[3]>>4]; + I=R[7];P[7]=XPal[I? I:T[3]&0x0F]; + I=R[8];P[8]=XPal[I? I:T[4]>>4]; + I=R[9];P[9]=XPal[I? I:T[4]&0x0F]; + I=R[10];P[10]=XPal[I? I:T[5]>>4]; + I=R[11];P[11]=XPal[I? I:T[5]&0x0F]; + I=R[12];P[12]=XPal[I? I:T[6]>>4]; + I=R[13];P[13]=XPal[I? I:T[6]&0x0F]; + I=R[14];P[14]=XPal[I? I:T[7]>>4]; + I=R[15];P[15]=XPal[I? I:T[7]&0x0F]; + } + } +} + +/** RefreshLine8() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN8, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine8(register byte Y) +{ + static byte SprToScr[16] = + { + 0x00,0x02,0x10,0x12,0x80,0x82,0x90,0x92, + 0x49,0x4B,0x59,0x5B,0xC9,0xCB,0xD9,0xDB + }; + register pixel *P; + register byte C,X,*T,*R; + byte ZBuf[304]; + + P=RefreshBorder(Y,BPal[VDP[7]]); + if(!P) return; + + if(!ScreenON) ClearLine(P,BPal[VDP[7]]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + T=ChrTab+(((int)(Y+VScroll)<<8)&ChrTabM&0xFFFF); + + for(X=0;X<32;X++,T+=8,R+=8,P+=8) + { + C=R[0];P[0]=BPal[C? SprToScr[C]:T[0]]; + C=R[1];P[1]=BPal[C? SprToScr[C]:T[1]]; + C=R[2];P[2]=BPal[C? SprToScr[C]:T[2]]; + C=R[3];P[3]=BPal[C? SprToScr[C]:T[3]]; + C=R[4];P[4]=BPal[C? SprToScr[C]:T[4]]; + C=R[5];P[5]=BPal[C? SprToScr[C]:T[5]]; + C=R[6];P[6]=BPal[C? SprToScr[C]:T[6]]; + C=R[7];P[7]=BPal[C? SprToScr[C]:T[7]]; + } + } +} + +/** RefreshLine10() ******************************************/ +/** Refresh line Y (0..191/211) of SCREEN10/11, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine10(register byte Y) +{ + register pixel *P; + register byte C,X,*T,*R; + register int J,K; + byte ZBuf[304]; + + P=RefreshBorder(Y,BPal[VDP[7]]); + if(!P) return; + + if(!ScreenON) ClearLine(P,BPal[VDP[7]]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + T=ChrTab+(((int)(Y+VScroll)<<8)&ChrTabM&0xFFFF); + + /* Draw first 4 pixels */ + C=R[0];P[0]=C? XPal[C]:BPal[VDP[7]]; + C=R[1];P[1]=C? XPal[C]:BPal[VDP[7]]; + C=R[2];P[2]=C? XPal[C]:BPal[VDP[7]]; + C=R[3];P[3]=C? XPal[C]:BPal[VDP[7]]; + R+=4;P+=4; + + for(X=0;X<63;X++,T+=4,R+=4,P+=4) + { + K=(T[0]&0x07)|((T[1]&0x07)<<3); + if(K&0x20) K-=64; + J=(T[2]&0x07)|((T[3]&0x07)<<3); + if(J&0x20) J-=64; + + C=R[0];Y=T[0]>>3;P[0]=C? XPal[C]:Y&1? XPal[Y>>1]:YJKColor(Y,J,K); + C=R[1];Y=T[1]>>3;P[1]=C? XPal[C]:Y&1? XPal[Y>>1]:YJKColor(Y,J,K); + C=R[2];Y=T[2]>>3;P[2]=C? XPal[C]:Y&1? XPal[Y>>1]:YJKColor(Y,J,K); + C=R[3];Y=T[3]>>3;P[3]=C? XPal[C]:Y&1? XPal[Y>>1]:YJKColor(Y,J,K); + } + } +} + +/** RefreshLine12() ******************************************/ +/** Refresh line Y (0..191/211) of SCREEN12, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine12(register byte Y) +{ + register pixel *P; + register byte C,X,*T,*R; + register int J,K; + byte ZBuf[304]; + + P=RefreshBorder(Y,BPal[VDP[7]]); + if(!P) return; + + if(!ScreenON) ClearLine(P,BPal[VDP[7]]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + T=ChrTab+(((int)(Y+VScroll)<<8)&ChrTabM&0xFFFF); + + if(HScroll512&&(HScroll>255)) T=(byte *)((int)T^0x10000); + T+=HScroll&0xFC; + + /* Draw first 4 pixels */ + C=R[0];P[0]=C? XPal[C]:BPal[VDP[7]]; + C=R[1];P[1]=C? XPal[C]:BPal[VDP[7]]; + C=R[2];P[2]=C? XPal[C]:BPal[VDP[7]]; + C=R[3];P[3]=C? XPal[C]:BPal[VDP[7]]; + R+=4;P+=4; + + for(X=1;X<64;X++,T+=4,R+=4,P+=4) + { + K=(T[0]&0x07)|((T[1]&0x07)<<3); + if(K&0x20) K-=64; + J=(T[2]&0x07)|((T[3]&0x07)<<3); + if(J&0x20) J-=64; + + C=R[0];P[0]=C? XPal[C]:YJKColor(T[0]>>3,J,K); + C=R[1];P[1]=C? XPal[C]:YJKColor(T[1]>>3,J,K); + C=R[2];P[2]=C? XPal[C]:YJKColor(T[2]>>3,J,K); + C=R[3];P[3]=C? XPal[C]:YJKColor(T[3]>>3,J,K); + } + } +} + +//#ifdef NARROW + +/** RefreshLine6() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN6, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine6(register byte Y) +{ + register pixel *P; + register byte X,*T,*R,C; + byte ZBuf[304]; + + P=RefreshBorder(Y,XPal[BGColor&0x03]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor&0x03]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + T=ChrTab+(((int)(Y+VScroll)<<7)&ChrTabM&0x7FFF); + + for(X=0;X<32;X++) + { + C=R[0];P[0]=XPal[C? C:T[0]>>6]; + C=R[1];P[1]=XPal[C? C:(T[0]>>2)&0x03]; + C=R[2];P[2]=XPal[C? C:T[1]>>6]; + C=R[3];P[3]=XPal[C? C:(T[1]>>2)&0x03]; + C=R[4];P[4]=XPal[C? C:T[2]>>6]; + C=R[5];P[5]=XPal[C? C:(T[2]>>2)&0x03]; + C=R[6];P[6]=XPal[C? C:T[3]>>6]; + C=R[7];P[7]=XPal[C? C:(T[3]>>2)&0x03]; + R+=8;P+=8;T+=4; + } + } +} + +/** RefreshLine7() *******************************************/ +/** Refresh line Y (0..191/211) of SCREEN7, including **/ +/** sprites in this line. **/ +/*************************************************************/ +static void RefreshLine7(register byte Y) +{ + register pixel *P; + register byte C,X,*T,*R; + byte ZBuf[304]; + + P=RefreshBorder(Y,XPal[BGColor]); + if(!P) return; + + if(!ScreenON) ClearLine(P,XPal[BGColor]); + else + { + ColorSprites(Y,ZBuf); + R=ZBuf+32; + T=ChrTab+(((int)(Y+VScroll)<<8)&ChrTabM&0xFFFF); + + for(X=0;X<32;X++) + { + C=R[0];P[0]=XPal[C? C:T[0]>>4]; + C=R[1];P[1]=XPal[C? C:T[1]>>4]; + C=R[2];P[2]=XPal[C? C:T[2]>>4]; + C=R[3];P[3]=XPal[C? C:T[3]>>4]; + C=R[4];P[4]=XPal[C? C:T[4]>>4]; + C=R[5];P[5]=XPal[C? C:T[5]>>4]; + C=R[6];P[6]=XPal[C? C:T[6]>>4]; + C=R[7];P[7]=XPal[C? C:T[7]>>4]; + R+=8;P+=8;T+=8; + } + } +} + +/** RefreshLineTx80() ****************************************/ +/** Refresh line Y (0..191/211) of TEXT80. **/ +/*************************************************************/ +static void RefreshLineTx80(register byte Y) +{ + register pixel *P,FC,BC; + register byte X,M,*T,*C,*G; + + BC=XPal[BGColor]; + P=RefreshBorder(Y,BC); + if(!P) return; + + if(!ScreenON) ClearLine(P,BC); + else + { + P[0]=P[1]=P[2]=P[3]=P[4]=P[5]=P[6]=P[7]=P[8]=BC; + G=(UseFont&&FontBuf? FontBuf:ChrGen)+((Y+VScroll)&0x07); + T=ChrTab+((80*(Y>>3))&ChrTabM); + C=ColTab+((10*(Y>>3))&ColTabM); + P+=9; + + for(X=0,M=0x00;X<80;X++,T++,P+=3) + { + if(!(X&0x07)) M=*C++; + if(M&0x80) { FC=XPal[XFGColor];BC=XPal[XBGColor]; } + else { FC=XPal[FGColor];BC=XPal[BGColor]; } + M<<=1; + Y=*(G+((int)*T<<3)); + P[0]=Y&0xC0? FC:BC; + P[1]=Y&0x30? FC:BC; + P[2]=Y&0x0C? FC:BC; + } + + P[0]=P[1]=P[2]=P[3]=P[4]=P[5]=P[6]=XPal[BGColor]; + } +} + +//#endif /* NARROW */ + + + + + + + + + + + + + + +/** RdZ80() **************************************************/ +/** Z80 emulation calls this function to read a byte from **/ +/** address A of Z80 address space. Now moved to Z80.c and **/ +/** made inlined to speed things up. **/ +/*************************************************************/ +#ifndef FMSX +byte RdZ80(word A) +{ + if(A!=0xFFFF) return(RAM[A>>13][A&0x1FFF]); + else return(PSL[3]==3? ~SSLReg:RAM[7][0x1FFF]); +} +#endif + +/** WrZ80() **************************************************/ +/** Z80 emulation calls this function to write byte V to **/ +/** address A of Z80 address space. **/ +/*************************************************************/ +void WrZ80(word A,byte V) +{ + if(A!=0xFFFF) + { + if(EnWrite[A>>14]) RAM[A>>13][A&0x1FFF]=V; + else if((A>0x3FFF)&&(A<0xC000)) MapROM(A,V); + } + else + { + if(PSL[3]==3) SSlot(V); + else if(EnWrite[3]) RAM[7][A&0x1FFF]=V; + } +} + +/** InZ80() **************************************************/ +/** Z80 emulation calls this function to read a byte from **/ +/** a given I/O port. **/ +/*************************************************************/ +byte InZ80(word Port) +{ + /* MSX only uses 256 IO ports */ + Port&=0xFF; + + /* Return an appropriate port value */ + switch(Port) + { + +case 0x90: return(0xFD); /* Printer READY signal */ +case 0xB5: return(RTCIn(RTCReg)); /* RTC registers */ + +case 0xA8: /* Primary slot state */ +case 0xA9: /* Keyboard port */ +case 0xAA: /* General IO register */ +case 0xAB: /* PPI control register */ + PPI.Rin[1]=KeyMap[PPI.Rout[2]&0x0F]; + return(Read8255(&PPI,Port-0xA8)); + +case 0xFC: /* Mapper page at 0000h */ +case 0xFD: /* Mapper page at 4000h */ +case 0xFE: /* Mapper page at 8000h */ +case 0xFF: /* Mapper page at C000h */ + return(RAMMapper[Port-0xFC]|~RAMMask); + +case 0xD9: /* Kanji support */ + Port=Kanji? Kanji[KanLetter+KanCount]:NORAM; + KanCount=(KanCount+1)&0x1F; + return(Port); + +case 0x80: /* SIO data */ +case 0x81: +case 0x82: +case 0x83: +case 0x84: +case 0x85: +case 0x86: +case 0x87: + return(NORAM); + /*return(Rd8251(&SIO,Port&0x07));*/ + +case 0x98: /* VRAM read port */ + /* Read from VRAM data buffer */ + Port=VDPData; + /* Reset VAddr latch sequencer */ + VKey=1; + /* Fill data buffer with a new value */ + VDPData=VPAGE[VAddr]; + /* Increment VRAM address */ + VAddr=(VAddr+1)&0x3FFF; + /* If rolled over, modify VRAM page# */ + if(!VAddr&&(ScrMode>3)) + { + VDP[14]=(VDP[14]+1)&(VRAMPages-1); + VPAGE=VRAM+((int)VDP[14]<<14); + } + return(Port); + +case 0x99: /* VDP status registers */ + /* Read an appropriate status register */ + Port=VDPStatus[VDP[15]]; + /* Reset VAddr latch sequencer */ + VKey=1; + /* Update status register's contents */ + switch(VDP[15]) + { + case 0: VDPStatus[0]&=0x5F;SetIRQ(~INT_IE0);break; + case 1: VDPStatus[1]&=0xFE;SetIRQ(~INT_IE1);break; + case 7: VDPStatus[7]=VDP[44]=VDPRead();break; + } + /* Return the status register value */ + return(Port); + +case 0xA2: /* PSG input port */ + /* PSG[14] returns joystick/mouse data */ + if(PSG.Latch==14) + { + int DX,DY,L; + + /* Number of a joystick port */ + Port=PSG.R[15]&0x40? 1:0; + L=Port? JoyTypeB:JoyTypeA; + + /* If no joystick, return dummy value */ + if(!L) return(0x7F); + + /* @@@ For debugging purposes */ + /*printf("Reading from PSG[14]: MCount[%d]=%d PSG[15]=%02Xh Value=",Port,MCount[Port],PSG.R[15]);*/ + + /* Poll mouse position, if needed */ + if((L==2)||(MCount[Port]==1)) + { + /* Read new mouse coordinates */ + L=Mouse(Port); + Buttons[Port]=(~L>>12)&0x30; + DY=(L>>8)&0xFF; + DX=L&0xFF; + + /* Compute offsets and store coordinates */ + L=OldMouseX[Port]-DX;OldMouseX[Port]=DX;DX=L; + L=OldMouseY[Port]-DY;OldMouseY[Port]=DY;DY=L; + + /* Adjust offsets */ + MouseDX[Port]=(DX>127? 127:(DX<-127? -127:DX))&0xFF; + MouseDY[Port]=(DY>127? 127:(DY<-127? -127:DY))&0xFF; + } + + /* Determine return value */ + switch(MCount[Port]) + { + case 0: /* Normal joystick */ + if(PSG.R[15]&(Port? 0x20:0x10)) Port=0x3F; + else + if((Port? JoyTypeB:JoyTypeA)<2) Port=~Joystick(Port)&0x3F; + else Port=Buttons[Port] + |(MouseDX[Port]? (MouseDX[Port]<128? 0x08:0x04):0x0C) + |(MouseDY[Port]? (MouseDY[Port]<128? 0x02:0x01):0x03); + break; + + case 1: Port=(MouseDX[Port]>>4)|Buttons[Port];break; + case 2: Port=(MouseDX[Port]&0x0F)|Buttons[Port];break; + case 3: Port=(MouseDY[Port]>>4)|Buttons[Port];break; + case 4: Port=(MouseDY[Port]&0x0F)|Buttons[Port];break; + } + + /* @@@ For debugging purposes */ + /*printf("%02Xh\n",Port|0x40);*/ + + /* 6th bit is always 1 */ + return(Port|0x40); + } + + /* PSG[15] resets mouse counters */ + if(PSG.Latch==15) + { + /* @@@ For debugging purposes */ + /*printf("Reading from PSG[15]\n");*/ + + /*MCount[0]=MCount[1]=0;*/ + return(PSG.R[15]&0xF0); + } + + /* Return PSG[0-13] as they are */ + return(RdData8910(&PSG)); +} + + /* Return NORAM for non-existing ports */ + return(NORAM); +} + +/** OutZ80() *************************************************/ +/** Z80 emulation calls this function to write byte V to a **/ +/** given I/O port. **/ +/*************************************************************/ +void OutZ80(word Port,byte Value) +{ + register byte I,J,K; + + Port&=0xFF; + switch(Port) + { + +case 0x7C: WrCtrl2413(&OPLL,Value);return; /* OPLL Register# */ +case 0x7D: WrData2413(&OPLL,Value);return; /* OPLL Data */ +case 0x91: Printer(Value);return; /* Printer Data */ +case 0xA0: WrCtrl8910(&PSG,Value);return; /* PSG Register# */ +case 0xB4: RTCReg=Value&0x0F;return; /* RTC Register# */ + +case 0xD8: /* Upper bits of Kanji ROM address */ + KanLetter=(KanLetter&0x1F800)|((int)(Value&0x3F)<<5); + KanCount=0; + return; + +case 0xD9: /* Lower bits of Kanji ROM address */ + KanLetter=(KanLetter&0x007E0)|((int)(Value&0x3F)<<11); + KanCount=0; + return; + +case 0x80: /* SIO data */ +case 0x81: +case 0x82: +case 0x83: +case 0x84: +case 0x85: +case 0x86: +case 0x87: + return; + /*Wr8251(&SIO,Port&0x07,Value); + return;*/ + +case 0x98: /* VDP Data */ + VKey=1; + if(WKey) + { + /* VDP set for writing */ + VDPData=VPAGE[VAddr]=Value; + VAddr=(VAddr+1)&0x3FFF; + } + else + { + /* VDP set for reading */ + VDPData=VPAGE[VAddr]; + VAddr=(VAddr+1)&0x3FFF; + VPAGE[VAddr]=Value; + } + /* If VAddr rolled over, modify VRAM page# */ + if(!VAddr&&(ScrMode>3)) + { + VDP[14]=(VDP[14]+1)&(VRAMPages-1); + VPAGE=VRAM+((int)VDP[14]<<14); + } + return; + +case 0x99: /* VDP Address Latch */ + if(VKey) { ALatch=Value;VKey=0; } + else + { + VKey=1; + switch(Value&0xC0) + { + case 0x80: + /* Writing into VDP registers */ + VDPOut(Value&0x3F,ALatch); + break; + case 0x00: + case 0x40: + /* Set the VRAM access address */ + VAddr=(((word)Value<<8)+ALatch)&0x3FFF; + /* WKey=1 when VDP set for writing into VRAM */ + WKey=Value&0x40; + /* When set for reading, perform first read */ + if(!WKey) + { + VDPData=VPAGE[VAddr]; + VAddr=(VAddr+1)&0x3FFF; + if(!VAddr&&(ScrMode>3)) + { + VDP[14]=(VDP[14]+1)&(VRAMPages-1); + VPAGE=VRAM+((int)VDP[14]<<14); + } + } + break; + } + } + return; + +case 0x9A: /* VDP Palette Latch */ + if(PKey) { PLatch=Value;PKey=0; } + else + { + byte R,G,B; + /* New palette entry written */ + PKey=1; + J=VDP[16]; + /* Compute new color components */ + R=(PLatch&0x70)*255/112; + G=(Value&0x07)*255/7; + B=(PLatch&0x07)*255/7; + /* Set new color for palette entry J */ + Palette[J]=RGB2INT(R,G,B); + SetColor(J,R,G,B); + /* Next palette entry */ + VDP[16]=(J+1)&0x0F; + } + return; + +case 0x9B: /* VDP Register Access */ + J=VDP[17]&0x3F; + if(J!=17) VDPOut(J,Value); + if(!(VDP[17]&0x80)) VDP[17]=(J+1)&0x3F; + return; + +case 0xA1: /* PSG Data */ + /* PSG[15] is responsible for joystick/mouse */ + if(PSG.Latch==15) + { + /* @@@ For debugging purposes */ + /*printf("Writing PSG[15] <- %02Xh\n",Value);*/ + + /* For mouse, update nibble counter */ + /* For joystick, set nibble counter to 0 */ + if((Value&0x0C)==0x0C) MCount[1]=0; + else if((JoyTypeB>2)&&((Value^PSG.R[15])&0x20)) + MCount[1]+=MCount[1]==4? -3:1; + + /* For mouse, update nibble counter */ + /* For joystick, set nibble counter to 0 */ + if((Value&0x03)==0x03) MCount[0]=0; + else if((JoyTypeA>2)&&((Value^PSG.R[15])&0x10)) + MCount[0]+=MCount[0]==4? -3:1; + } + + /* Put value into a register */ + WrData8910(&PSG,Value); + return; + +case 0xB5: /* RTC Data */ + if(RTCReg<13) + { + /* J = register bank# now */ + J=RTCMode&0x03; + /* Store the value */ + RTC[J][RTCReg]=Value; + /* If CMOS modified, we need to save it */ + if(J>1) SaveCMOS=1; + return; + } + /* RTC[13] is a register bank# */ + if(RTCReg==13) RTCMode=Value; + return; + +case 0xA8: /* Primary slot state */ +case 0xA9: /* Keyboard port */ +case 0xAA: /* General IO register */ +case 0xAB: /* PPI control register */ + /* Write to PPI */ + Write8255(&PPI,Port-0xA8,Value); + /* If general I/O register has changed... */ + if(PPI.Rout[2]!=IOReg) { PPIOut(PPI.Rout[2],IOReg);IOReg=PPI.Rout[2]; } + /* If primary slot state has changed... */ + if(PPI.Rout[0]!=PSLReg) + for(J=0,PSLReg=Value=PPI.Rout[0];J<4;J++,Value>>=2) + { + PSL[J]=Value&3;I=J<<1; + K=PSL[J]==3? SSL[J]:0; + EnWrite[J]=(K==2)&&(MemMap[3][2][I]!=EmptyRAM); + RAM[I]=MemMap[PSL[J]][K][I]; + RAM[I+1]=MemMap[PSL[J]][K][I+1]; + } + /* Done */ + return; + +case 0xFC: /* Mapper page at 0000h */ +case 0xFD: /* Mapper page at 4000h */ +case 0xFE: /* Mapper page at 8000h */ +case 0xFF: /* Mapper page at C000h */ + J=Port-0xFC; + Value&=RAMMask; + if(RAMMapper[J]!=Value) + { + if(Verbose&0x08) { + //printf("RAM-MAPPER: block %d at %Xh\n",Value,J*0x4000); + emu_printf("RAM-MAPPER: block"); + emu_printi(Value); + emu_printi(J*0x4000); + } + I=J<<1; + RAMMapper[J] = Value; + MemMap[3][2][I] = RAMData+((int)Value<<14); + MemMap[3][2][I+1] = MemMap[3][2][I]+0x2000; + if((PSL[J]==3)&&(SSL[J]==2)) + { + EnWrite[J] = 1; + RAM[I] = MemMap[3][2][I]; + RAM[I+1] = MemMap[3][2][I+1]; + } + } + return; + + } +} + +/** MapROM() *************************************************/ +/** Switch ROM Mapper pages. This function is supposed to **/ +/** be called when ROM page registers are written to. **/ +/*************************************************************/ +void MapROM(register word A,register byte V) +{ + byte I,J,K,*P; + +/* @@@ For debugging purposes +printf("(%04Xh) = %02Xh at PC=%04Xh\n",A,V,CPU.PC.W); +*/ + + /* J contains 16kB page number 0-3 */ + J=A>>14; + + /* I contains slot number 0/1 */ + if(PSL[J]==1) I=0; + else if(PSL[J]==2) I=1; + else return; + + /* K contains MegaROM type */ + K=I? ROMTypeB:ROMTypeA; + + /* SCC: enable/disable for no cart */ + if(!ROMData[I]&&(A==0x9000)) SCCOn[I]=(V==0x3F)? 1:0; + + /* SCC: types 0, 2, or no cart */ + if(((A&0xFF00)==0x9800)&&SCCOn[I]) + { + /* Compute SCC register number */ + J=A&0x00FF; + + /* When no MegaROM present, we allow the program */ + /* to write into SCC wave buffer using EmptyRAM */ + /* as a scratch pad. */ + if(!ROMData[I]&&(J<0x80)) EmptyRAM[0x1800+J]=V; + + /* Output data to SCC chip */ + WriteSCC(&SCChip,J,V); + return; + } + + /* SCC+: types 0, 2, or no cart */ + if(((A&0xFF00)==0xB800)&&SCCOn[I]) + { + /* Compute SCC register number */ + J=A&0x00FF; + + /* When no MegaROM present, we allow the program */ + /* to write into SCC wave buffer using EmptyRAM */ + /* as a scratch pad. */ + if(!ROMData[I]&&(J<0xA0)) EmptyRAM[0x1800+J]=V; + + /* Output data to SCC chip */ + WriteSCCP(&SCChip,J,V); + return; + } + + /* If no cartridge or no mapper, exit */ + if(!ROMData[I]||!ROMMask[I]) return; + + switch(K) + { + case 0: /*** Generic 8kB cartridges (Konami, etc.) ***/ + if((A<0x4000)||(A>0xBFFF)) return; + J=(A-0x4000)>>13; + /* Turn SCC on/off on writes to 8000h-9FFFh */ + if(J==2) SCCOn[I]=(V==0x3F)? 1:0; + /* Switch ROM pages */ + V&=ROMMask[I]; + if(V!=ROMMapper[I][J]) + { + RAM[J+2]=MemMap[I+1][0][J+2]=ROMData[I]+((int)V<<13); + ROMMapper[I][J]=V; + } + break; + + case 1: /*** Generic 16kB cartridges (MSXDOS2, HoleInOneSpecial) ***/ + if((A<0x4000)||(A>0xBFFF)) return; + J=(A&0x8000)>>14; + V=(V<<1)&ROMMask[I]; + if(V!=ROMMapper[I][J]) + { + RAM[J+2]=MemMap[I+1][0][J+2]=ROMData[I]+((int)V<<13); + RAM[J+3]=MemMap[I+1][0][J+3]=RAM[2]+0x2000; + ROMMapper[I][J]=V; + } + break; + + case 2: /*** KONAMI5 8kB cartridges ***/ + if((A<0x5000)||(A>0xB000)||((A&0x1FFF)!=0x1000)) return; + J=(A-0x5000)>>13; + /* Turn SCC on/off on writes to 9000h */ + if(J==2) SCCOn[I]=(V==0x3F)? 1:0; + /* Switch ROM pages */ + V&=ROMMask[I]; + if(V!=ROMMapper[I][J]) + { + RAM[J+2]=MemMap[I+1][0][J+2]=ROMData[I]+((int)V<<13); + ROMMapper[I][J]=V; + } + break; + + case 3: /*** KONAMI4 8kB cartridges ***/ + /* Page at 4000h is fixed */ + if((A<0x6000)||(A>0xA000)||(A&0x1FFF)) return; + J=(A-0x4000)>>13; + V&=ROMMask[I]; + if(V!=ROMMapper[I][J]) + { + RAM[J+2]=MemMap[I+1][0][J+2]=ROMData[I]+((int)V<<13); + ROMMapper[I][J]=V; + } + break; + + case 4: /*** ASCII 8kB cartridges ***/ + if((A<0x6000)||(A>0x7FFF)) return; + J=(A&0x1800)>>11; + V&=ROMMask[I]; + if(V!=ROMMapper[I][J]) + { + P=ROMData[I]+((int)V<<13); + MemMap[I+1][0][J+2]=P; + ROMMapper[I][J]=V; + /* Only update memory when cartridge's slot selected */ + if(PSL[(J>>1)+1]==I+1) RAM[J+2]=P; + } + break; + + case 5: /*** ASCII 16kB cartridges ***/ + if((A<0x6000)||(A>0x7FFF)) return; + J=(A&0x1000)>>11; + V=(V<<1)&ROMMask[I]; + if(V!=ROMMapper[I][J]) + { + P=ROMData[I]+((int)V<<13); + MemMap[I+1][0][J+2]=P; + MemMap[I+1][0][J+3]=P+0x2000; + ROMMapper[I][J]=V; + /* Only update memory when cartridge's slot selected */ + if(PSL[(J>>1)+1]==I+1) + { + RAM[J+2]=P; + RAM[J+3]=P+0x2000; + } + } + break; + + case 6: /*** GameMaster2+SRAM cartridge ***/ + /* Switch ROM and SRAM pages, page at 4000h is fixed */ + if((A>=0x6000)&&(A<=0xA000)&&!(A&0x1FFF)) + { + /* If changing SRAM page... */ + if(V&0x10) + { + /* Select SRAM page */ + RAM[5]=MemMap[I+1][0][5]=(SRAM? SRAM:EmptyRAM)+(V&0x20? 0x2000:0); + /* SRAM is now on */ + ROMMapper[I][3]=0xFF; + } + else + { + /* Figure out which ROM page gets switched */ + J=(A-0x4000)>>13; + /* Compute new ROM page number */ + V&=ROMMask[I]; + /* If ROM page number has changed... */ + if(V!=ROMMapper[I][J]) + { + RAM[J+2]=MemMap[I+1][0][J+2]=ROMData[I]+((int)V<<13); + ROMMapper[I][J]=V; + } + } + /* Done with page switch */ + break; + } + /* Write to SRAM */ + if((A>=0xB000)&&(A<0xC000)&&(ROMMapper[I][3]==0xFF)) + { + RAM[5][(A&0x0FFF)|0x1000]=RAM[5][A&0x0FFF]=V; + SaveSRAM=1; + break; + } + /* Done */ + return; + + default: /*** No MegaROM mapper by default ***/ + return; + } + + if(Verbose&0x08) + { + /* K=1 for 16kB pages */ + K=(K==1)||(K==5); + + //printf + //( + // "ROM-MAPPER %c: %dkB block %d at %04Xh\n", + // I+'A',8*(K+1),K? (V>>1):V,J*0x2000+0x4000 + //); + } +} + +/** SSlot() **************************************************/ +/** Switch secondary memory slots. This function is called **/ +/** when value in (FFFFh) changes. **/ +/*************************************************************/ +void SSlot(register byte V) +{ + register byte I,J; + + if(SSLReg!=V) + { + SSLReg=V; + + for(J=0;J<4;J++,V>>=2) + { + SSL[J]=V&3; + if(PSL[J]==3) + { + I=J<<1; + EnWrite[J]=(SSL[J]==2)&&(MemMap[3][2][I]!=EmptyRAM); + RAM[I]=MemMap[3][SSL[J]][I]; + RAM[I+1]=MemMap[3][SSL[J]][I+1]; + } + } + } +} + + +/** LoadROM() ************************************************/ +/** Load a file, allocating memory as needed. Returns addr. **/ +/** of the alocated space or 0 if failed. **/ +/*************************************************************/ +byte *LoadROM(const char *Name,int Size,byte *Buf) +{ + byte *P; + + /* Can't give address without size! */ + if(Buf&&!Size) return(0); + + Size = emu_FileSize(Name); + + if (Size<=0) return (0); + + P=Buf? Buf:emu_Malloc(Size); + emu_LoadFile(Name, P, Size); + + /* Add a new chunk to free */ + if(!Buf) Chunks[CCount++]=P; + + return(P); + +#ifdef unused + FILE *F; + byte *P; + + /* Can't give address without size! */ + if(Buf&&!Size) return(0); + + /* Open file */ + if(!(F=fopen(Name,"rb"))) return(0); + + /* Determine data size, if wasn't given */ + if(!Size) + { + /* Determine size via fseek()/ftell() or by reading */ + /* entire [GZIPped] stream */ + if(fseek(F,0,SEEK_END)>=0) Size=ftell(F); + else while(fgetc(F)>=0) Size++; + /* Rewind file to the beginning */ + fseek(F,0,SEEK_SET); + } + + /* Allocate memory */ + P=Buf? Buf:emu_Malloc(Size); + if(!P) + { + fclose(F); + return(0); + } + + /* Read data */ + if(fread(P,1,Size,F)!=Size) + { + if(!Buf) emu_Free(P); + fclose(F); + return(0); + } + + /* Add a new chunk to free */ + if(!Buf) Chunks[CCount++]=P; + + /* Done */ + fclose(F); + return(P); +#endif +} + + +/** LoadCart() ***********************************************/ +/** Load a cartridge ROM from .ROM file into given slot. **/ +/*************************************************************/ +int LoadCart(const char *Name,int Slot) +{ + char C1,C2; + int C3,ROM64,LastFirst; + + /* Check slot #, try to open file */ + if((Slot!=0)&&(Slot!=1)) return(0); + + int Size = emu_FileSize(Name); + + if(!(emu_FileOpen(Name))) return(0); + if(Verbose) emu_printf(Name); + if(Verbose) emu_printi(Size); + + /* Check "AB" signature in a file */ + ROM64=LastFirst=0; + emu_FileRead(&C1,1); + emu_FileRead(&C2,1); + + /* Maybe this is a flat 64kB ROM? */ + if((C1!='A')||(C2!='B')) { + if(Verbose) emu_printf("check next"); + if(emu_FileSeek(0x4000/*,SEEK_SET*/)>=0) + { + emu_FileRead(&C1,1); + emu_FileRead(&C2,1); + ROM64=(C1=='A')&&(C2=='B'); + } + } + + /* Maybe it is the last page that contains "AB" signature? */ + if((C1!='A')||(C2!='B')) { + if(Verbose) emu_printf("check next"); + if(emu_FileSeek(Size-0x4000/*,SEEK_END*/)>=0) + { + emu_FileRead(&C1,1); + emu_FileRead(&C2,1); + LastFirst=(C1=='A')&&(C2=='B'); + } + } + + /* If we can't find "AB" signature, drop out */ + if((C1!='A')||(C2!='B')) + { + if(Verbose) emu_printf(" Not a valid cartridge ROM"); + emu_FileClose(); + return(0); + } + + if(Verbose) { + emu_printf(" Cartridge"); + char slot[2] = {0,0}; + slot[0] = 'A'+Slot; + emu_printf(slot); + } + + + + /* Length must be a multiple of 8kB */ + /* Flat 64kB ROM must be 40..64kB */ + //if(Size&0x1FFF) { emu_printf("failed");return(0); } + //if(ROM64&&(Size<0xA000)) { emu_printf("failed");return(0); } + //if(ROM64&&(Size>0x10000)) { emu_printf("failed");return(0); } + + /* Show ROM type and size */ + //if(Verbose) + // printf + // ( + // "%dkB %s ROM...",C1/1024, + // !ROM64&&(C1>0x8000)? ROMNames[Slot? ROMTypeB:ROMTypeA]:"NORMAL" + // ); + + /* Compute size in 8kB pages */ + Size >>= 13; + + /* Calculate 2^n closest to number of pages */ + for(C3=1;C34)? C3-1:0x00; + + /* Allocate space for the ROM */ + ROMData[Slot]=emu_Malloc(C3*0x2000); + if(!ROMData[Slot]) { emu_printf("failed");return(0); } + Chunks[CCount++]=ROMData[Slot]; + + /* Try loading ROM */ + if(!LoadROM(Name,Size*0x2000,ROMData[Slot])) { emu_printf("failed");return(0); } + + /* Mirror ROM if it is smaller than 2^n pages */ + if(Size>1)|(VDP[1]&0x18)) + { + case 0x10: J=0;break; + case 0x00: J=1;break; + case 0x01: J=2;break; + case 0x08: J=3;break; + case 0x02: J=4;break; + case 0x03: J=5;break; + case 0x04: J=6;break; + case 0x05: J=7;break; + case 0x07: J=8;break; + case 0x12: J=MAXSCREEN+1;break; + default: J=ScrMode;break; + } + + /* Recompute table addresses */ + I=(J>6)&&(J!=MAXSCREEN+1)? 11:10; + ChrTab = VRAM+((int)(VDP[2]&MSK[J].R2)<6)&&(ScrMode!=MAXSCREEN+1)? 11:10; + ChrTab = VRAM+((int)(V&MSK[ScrMode].R2)<>4;BGColor=V&0x0F;break; + case 10: V&=0x07; + ColTab=VRAM+((int)(VDP[3]&MSK[ScrMode].R3)<<6)+((int)V<<14); + break; + case 11: V&=0x03; + SprTab=VRAM+((int)(VDP[5]&MSK[ScrMode].R5)<<7)+((int)V<<15); + break; + case 14: V&=VRAMPages-1;VPAGE=VRAM+((int)V<<14); + break; + case 15: V&=0x0F;break; + case 16: V&=0x0F;PKey=1;break; + case 17: V&=0xBF;break; + case 25: VDP[25]=V; + SetScreen(); + break; + case 44: VDPWrite(V);break; + case 46: VDPDraw(V);break; + } + + /* Write value into a register */ + VDP[R]=V; +} + +/** Printer() ************************************************/ +/** Send a character to the printer. **/ +/*************************************************************/ +#ifdef unused +void Printer(byte V) { fputc(V,PrnStream); } +#else +void Printer(byte V) { } +#endif + +/** PPIOut() *************************************************/ +/** This function is called on each write to PPI to make **/ +/** key click sound, motor relay clicks, and so on. **/ +/*************************************************************/ +void PPIOut(register byte New,register byte Old) +{ + /* Keyboard click bit */ + if((New^Old)&0x80) Drum(DRM_CLICK,64); + /* Motor relay bit */ + if((New^Old)&0x10) Drum(DRM_CLICK,255); +} + +byte RTCIn(register byte R) +{ + register byte J; + + /* Only 16 registers/mode */ + R&=0x0F; + + /* Bank mode 0..3 */ + J=RTCMode&0x03; + + if(R>12) J=R==13? RTCMode:NORAM; + else + if(J) J=RTC[J][R]; + else + { +#ifdef unused + static time_t PrevTime; + static struct tm TM; + + /* Retrieve system time if any time passed */ + time_t CurTime=time(NULL); + if(CurTime!=PrevTime) + { + TM=*localtime(&CurTime); + PrevTime=CurTime; + } + + /* Parse contents of last retrieved TM */ + switch(R) + { + case 0: J=TM.tm_sec%10;break; + case 1: J=TM.tm_sec/10;break; + case 2: J=TM.tm_min%10;break; + case 3: J=TM.tm_min/10;break; + case 4: J=TM.tm_hour%10;break; + case 5: J=TM.tm_hour/10;break; + case 6: J=TM.tm_wday;break; + case 7: J=TM.tm_mday%10;break; + case 8: J=TM.tm_mday/10;break; + case 9: J=(TM.tm_mon+1)%10;break; + case 10: J=(TM.tm_mon+1)/10;break; + case 11: J=(TM.tm_year-80)%10;break; + case 12: J=((TM.tm_year-80)/10)%10;break; + default: J=0x0F;break; + } +#endif + } + /* Four upper bits are always high */ + return(J|0xF0); +} + +/** LoopZ80() ************************************************/ +/** Refresh screen, check keyboard and sprites. Call this **/ +/** function on each interrupt. **/ +/*************************************************************/ +word LoopZ80(register Z80 *R, int * ras) +//word LoopZ80(Z80 *R) +{ + static byte BFlag=0; + static byte BCount=0; + static int UCount=1; + static byte ACount=0; + static byte Drawing=0; + register int J; + + /* Flip HRefresh bit */ + VDPStatus[2]^=0x20; + + /* If HRefresh is now in progress... */ + if(!(VDPStatus[2]&0x20)) + { + /* HRefresh takes most of the scanline */ + R->IPeriod=!ScrMode||(ScrMode==MAXSCREEN+1)? CPU_H240:CPU_H256; + + /* New scanline */ + ScanLine=ScanLine<(PALVideo? 312:261)? ScanLine+1:0; + + /* If first scanline of the screen... */ + if(!ScanLine) + { + /* Drawing now... */ + Drawing=1; + + /* Reset VRefresh bit */ + VDPStatus[2]&=0xBF; + + /* Refresh display */ + if(UCount) UCount--; + else + { + UCount=UPeriod-1; + //RefreshScreen(); + } + + /* Blinking for TEXT80 */ + if(BCount) BCount--; + else + { + BFlag=!BFlag; + if(!VDP[13]) { XFGColor=FGColor;XBGColor=BGColor; } + else + { + BCount=(BFlag? VDP[13]&0x0F:VDP[13]>>4)*10; + if(BCount) + { + if(BFlag) { XFGColor=FGColor;XBGColor=BGColor; } + else { XFGColor=VDP[12]>>4;XBGColor=VDP[12]&0x0F; } + } + } + } + } + + /* Line coincidence is active at 0..255 */ + /* in PAL and 0..234/244 in NTSC */ + J=PALVideo? 256:ScanLines212? 245:235; + + /* When reaching end of screen, reset line coincidence */ + if(ScanLine==J) + { + VDPStatus[1]&=0xFE; + SetIRQ(~INT_IE1); + } + + /* When line coincidence is active... */ + if(ScanLineIRequest=IRQPending? INT_IRQ:INT_NONE; + return(R->IRequest); + } + + /*********************************/ + /* We come here for HBlanks only */ + /*********************************/ + + /* HBlank takes HPeriod-HRefresh */ + R->IPeriod=!ScrMode||(ScrMode==MAXSCREEN+1)? CPU_H240:CPU_H256; + R->IPeriod=HPeriod-R->IPeriod; + + /* If last scanline of VBlank, see if we need to wait more */ + J=PALVideo? 313:262; + if(ScanLine>=J-1) + { + J*=CPU_HPERIOD; + if(VPeriod>J) R->IPeriod+=VPeriod-J; + } + + /* If first scanline of the bottom border... */ + if(ScanLine==(ScanLines212? 212:192)) Drawing=0; + + /* If first scanline of VBlank... */ + J=PALVideo? (ScanLines212? 212+42:192+52):(ScanLines212? 212+18:192+28); + if(!Drawing&&(ScanLine==J)) + { + /* Set VBlank bit, set VRefresh bit */ + VDPStatus[0]|=0x80; + VDPStatus[2]|=0x40; + + /* Generate VBlank interrupt */ + if(VDP[1]&0x20) SetIRQ(INT_IE0); + } + + /* Run V9938 engine */ + LoopVDP(); + + /* Refresh scanline, possibly with the overscan */ + if(!UCount&&Drawing&&(ScanLine<256)) + { + if(!ModeYJK||(ScrMode<7)||(ScrMode>8)) + (RefreshLine[ScrMode])(ScanLine); + else + if(ModeYAE) RefreshLine10(ScanLine); + else RefreshLine12(ScanLine); + + emu_DrawLine(&linebuffer[0], WIDTH , HEIGHT, ScanLine+FirstLine); + } + + /* Keyboard, sound, and other stuff always runs at line 192 */ + /* This way, it can't be shut off by overscan tricks (Maarten) */ + if(ScanLine==192) + { + /* Check sprites and set Collision, 5Sprites, 5thSprite bits */ + if(!SpritesOFF&&ScrMode&&(ScrMode3)&&AutoFire) KeyMap[8]|=0x01; + } + + /* Return whatever interrupt is pending */ + R->IRequest=IRQPending? INT_IRQ:INT_NONE; + return(R->IRequest); +} + +/** CheckSprites() *******************************************/ +/** Check for sprite collisions and 5th/9th sprite in a **/ +/** row. **/ +/*************************************************************/ +void CheckSprites(void) +{ + register word LS,LD; + register byte DH,DV,*PS,*PD,*T; + byte I,J,N,M,*S,*D; + + /* Clear 5Sprites, Collision, and 5thSprite bits */ + VDPStatus[0]=(VDPStatus[0]&0x9F)|0x1F; + + for(N=0,S=SprTab;(N<32)&&(S[0]!=208);N++,S+=4); + M=SolidColor0; + + if(Sprites16x16) + { + for(J=0,S=SprTab;J240)) + { + DH=S[1]-D[1]; + if((DH<16)||(DH>240)) + { + PS=SprGen+((int)(S[2]&0xFC)<<3); + PD=SprGen+((int)(D[2]&0xFC)<<3); + if(DV<16) PD+=DV; else { DV=256-DV;PS+=DV; } + if(DH>240) { DH=256-DH;T=PS;PS=PD;PD=T; } + while(DV<16) + { + LS=((word)*PS<<8)+*(PS+16); + LD=((word)*PD<<8)+*(PD+16); + if(LD&(LS>>DH)) break; + else { DV++;PS++;PD++; } + } + if(DV<16) { VDPStatus[0]|=0x20;return; } + } + } + } + } + else + { + for(J=0,S=SprTab;J248)) + { + DH=S[1]-D[1]; + if((DH<8)||(DH>248)) + { + PS=SprGen+((int)S[2]<<3); + PD=SprGen+((int)D[2]<<3); + if(DV<8) PD+=DV; else { DV=256-DV;PS+=DV; } + if(DH>248) { DH=256-DH;T=PS;PS=PD;PD=T; } + while((DV<8)&&!(*PD&(*PS>>DH))) { DV++;PS++;PD++; } + if(DV<8) { VDPStatus[0]|=0x20;return; } + } + } + } + } +} + +/** GuessROM() ***********************************************/ +/** Guess MegaROM mapper of a ROM. **/ +/*************************************************************/ +int GuessROM(const byte *Buf,int Size) +{ + int J,I,ROMCount[6]; + + /* Clear all counters */ + for(J=0;J<6;J++) ROMCount[J]=1; + ROMCount[0]+=1; /* Mapper #0 is default */ + ROMCount[4]-=1; /* #5 preferred over #4 */ + + /* Count occurences of characteristic addresses */ + for(J=0;JROMCount[I]) I=J; + + /* Return the most likely mapper type */ + return(I); +} + + diff --git a/MCUME_teensy/teensymsx/fmsx.h b/MCUME_teensy/teensymsx/fmsx.h new file mode 100644 index 0000000..6b171db --- /dev/null +++ b/MCUME_teensy/teensymsx/fmsx.h @@ -0,0 +1,5 @@ +extern void msx_Init(void); +extern void msx_Step(void); +extern void msx_Start(char * filename); +extern void msx_Input(int click); + diff --git a/MCUME_teensy/teensymsx/font8x8.h b/MCUME_teensy/teensymsx/font8x8.h new file mode 100644 index 0000000..2b2ab25 --- /dev/null +++ b/MCUME_teensy/teensymsx/font8x8.h @@ -0,0 +1,135 @@ + +// Font: c64_lower.64c + +PROGMEM const unsigned char font8x8[128][8] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0001 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0002 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space) + { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!) + { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (") + { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#) + { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($) + { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%) + { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&) + { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (') + { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (() + { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ()) + { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*) + { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,) + { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.) + { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/) + { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0) + { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1) + { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2) + { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3) + { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4) + { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5) + { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6) + { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7) + { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8) + { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9) + { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:) + { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (//) + { 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<) + { 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=) + { 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>) + { 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?) + { 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@) + { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A) + { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B) + { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C) + { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D) + { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E) + { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F) + { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G) + { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H) + { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I) + { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J) + { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K) + { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L) + { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M) + { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N) + { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O) + { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P) + { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q) + { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R) + { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S) + { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T) + { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U) + { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V) + { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W) + { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X) + { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y) + { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z) + { 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([) + { 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\) + { 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (]) + { 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_) + { 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`) + { 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a) + { 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b) + { 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c) + { 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d) + { 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e) + { 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f) + { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g) + { 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h) + { 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i) + { 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j) + { 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k) + { 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l) + { 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m) + { 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n) + { 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o) + { 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p) + { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q) + { 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r) + { 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s) + { 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t) + { 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u) + { 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v) + { 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w) + { 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x) + { 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y) + { 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z) + { 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({) + { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|) + { 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (}) + { 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // U+007F +}; + diff --git a/MCUME_teensy/teensymsx/iopins.h b/MCUME_teensy/teensymsx/iopins.h new file mode 100644 index 0000000..28b6b83 --- /dev/null +++ b/MCUME_teensy/teensymsx/iopins.h @@ -0,0 +1,93 @@ +#ifndef IOPINS_H +#define IOPINS_H + +#include "platform_config.h" + +#ifndef OLD_LAYOUT + +#define TFT_SCLK 13 +#define TFT_MOSI 11 +#define TFT_MISO 12 +#define TFT_TOUCH_CS 255 +#define TFT_TOUCH_INT 255 +#define TFT_DC 9 +#define TFT_CS 22 // 255 for LORES ST7789 (NO CS) +#define TFT_RST 23 // 255 for ILI/ST if connected to 3.3V + +// PSRAM +#define PSRAM_CS 36 +#define PSRAM_MOSI 35 +#define PSRAM_MISO 34 +#define PSRAM_SCLK 37 + +// SD +#define SD_SCLK 13 +#define SD_MOSI 12 +#define SD_MISO 11 +#ifdef EXTERNAL_SD +#define SD_CS 8 +#else +#define SD_CS BUILTIN_SDCARD +#endif + +// I2C keyboard +#define I2C_SCL_IO 19 +#define I2C_SDA_IO 18 + +// Analog joystick (primary) for JOY2 and 5 extra buttons +#define PIN_JOY2_A1X A1 +#define PIN_JOY2_A2Y A2 +#define PIN_JOY2_BTN 17 +#define PIN_KEY_USER1 3 //34 +#define PIN_KEY_USER2 4 //35 +//#define PIN_KEY_USER3 33 +//#define PIN_KEY_USER4 39 + +// Second joystick +#define PIN_JOY1_BTN 2 +#define PIN_JOY1_1 14 // UP +#define PIN_JOY1_2 7 // DOWN +#define PIN_JOY1_3 6 // RIGHT +#define PIN_JOY1_4 5 // LEFT + +#else +// OLD LAYOUT!!!! + +#define HAS_VGA 1 + +// ILI9341 +#define TFT_SCLK 13 +#define TFT_MOSI 11 +#define TFT_MISO 12 +#define TFT_TOUCH_CS 38 +#define TFT_TOUCH_INT 37 +#define TFT_DC 9 +#define TFT_CS 10 +#define TFT_RST 255 //connected to 3.3V + +// I2C keyboard +#define I2C_SCL_IO 3 +#define I2C_SDA_IO 4 + +// Analog joystick (primary) for JOY2 and 5 extra buttons +#define PIN_JOY2_A1X A12 +#define PIN_JOY2_A2Y A13 +#define PIN_JOY2_BTN 36 +#define PIN_KEY_USER1 35 +#define PIN_KEY_USER2 34 +#define PIN_KEY_USER3 33 +#define PIN_KEY_USER4 39 + +// Second joystick +#define PIN_JOY1_BTN 30 +#define PIN_JOY1_1 16 +#define PIN_JOY1_2 17 +#define PIN_JOY1_3 18 +#define PIN_JOY1_4 19 +#endif + +#endif + + + + diff --git a/MCUME_teensy/teensymsx/keyboard_osd.h b/MCUME_teensy/teensymsx/keyboard_osd.h new file mode 100644 index 0000000..062eb4e --- /dev/null +++ b/MCUME_teensy/teensymsx/keyboard_osd.h @@ -0,0 +1,20 @@ + +#ifndef keyboard_osd_h_ +#define keyboard_osd_h_ + +extern bool virtualkeyboardIsActive(void); +extern void drawVirtualkeyboard(void); +extern void toggleVirtualkeyboard(bool keepOn); +extern void handleVirtualkeyboard(void); + +extern bool callibrationActive(void); +extern int handleCallibration(uint16_t bClick); + +extern bool menuActive(void); +extern char * menuSelection(void); +extern void toggleMenu(bool on); +extern int handleMenu(uint16_t bClick); + + +#endif + diff --git a/MCUME_teensy/teensymsx/logo.h b/MCUME_teensy/teensymsx/logo.h new file mode 100644 index 0000000..692a06c --- /dev/null +++ b/MCUME_teensy/teensymsx/logo.h @@ -0,0 +1,241 @@ +PROGMEM const uint16_t logo[] = { +0x0140,0x00f0,0x9533,0x5b0b,0x3a07,0x39e7,0x31e7,0x31c7,0x31a6,0x31c7,0x31c6,0x31c6,0x31a6,0x31c6,0x31c7,0x31a6,0x31a6,0x31a6,0x31c7,0x31c6,0x31a6,0x31a6,0x31a6,0x39a7,0x39a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31c6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31c6,0x31a6,0x31a6,0x3186,0x31a6,0x3186,0x39c7,0x39c6,0x31a6,0x31a6,0x3186,0x3165,0x3165,0x3986,0x31a6,0x31a6,0x3186,0x3186,0x3186,0x31a6,0x3a07,0x39c7,0x31a6,0x3186,0x3185,0x3186,0x3986,0x4207,0x31c7,0x31c6,0x2986,0x2985,0x31a6,0x3186,0x39e7,0x39e7,0x31a6,0x2985,0x2986,0x3186,0x3186,0x39e7,0x39e7,0x39c7,0x3186,0x3186,0x2966,0x2985,0x39c6,0x39c7,0x31a6,0x2986,0x2965,0x2986,0x3186,0x39c7,0x39e7,0x39c7,0x2965,0x2966,0x2986,0x2986,0x39e7,0x39e7,0x39c7,0x3165,0x2965,0x3186,0x3186,0x4207,0x4207,0x39c7,0x3186,0x2986,0x2985,0x3186,0x39e7,0x39e7,0x39e7,0x31a6,0x2986,0x3186,0x3185,0x3a07,0x4207,0x3a07,0x31c6,0x2965,0x3186,0x2986,0x39c7,0x4208,0x39e7,0x31a6,0x2965,0x2985,0x2985,0x39c7,0x39c7,0x39e7,0x31a6,0x3185,0x2965,0x2965,0x31c6,0x3a07,0x39e7,0x31c6,0x2985,0x2965,0x2965,0x39c6,0x4227,0x4248,0x39e7,0x2965,0x3186,0x3185,0x31a6,0x4228,0x4208,0x39e7,0x3186,0x3186,0x31a6,0x2986,0x39e7,0x4207,0x39e7,0x3186,0x2986,0x2986,0x3186,0x4207,0x4208,0x39e7,0x31a6,0x3185,0x3185,0x3186,0x39e7,0x4227,0x3a07,0x31a6,0x2986,0x2985,0x29a6,0x31e7,0x3a07,0x3a07,0x31a6,0x2965,0x3186,0x3186,0x39c7,0x4228,0x4228,0x31a6,0x3185,0x3185,0x3185,0x39c6,0x39e7,0x39e7,0x31c6,0x31a6,0x2986,0x31a6,0x31c6,0x39c6,0x39e7,0x31c6,0x3185,0x31a6,0x3186,0x31a6,0x31c7,0x39c7,0x31a6,0x31a6,0x3185,0x3186,0x3186,0x39c6,0x39e7,0x2986,0x3186,0x2986,0x2985,0x3185,0x31a6,0x39e7,0x3185,0x3186,0x2986,0x2986,0x2985,0x39c6,0x31a6,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x3186,0x2965,0x3186,0x2985,0x2985,0x2985,0x3186,0x31a7,0x2945,0x3186,0x2985,0x3186,0x3185,0x3186,0x31c6,0x2965,0x2985,0x2985,0x2985,0x2985,0x31a6,0x39c7,0x2965,0x2985,0x2985,0x3186,0x3186,0x31a6,0x39e7,0x2965,0x3186,0x2985,0x2985,0x2985,0x31a6,0x39c7,0x2965,0x3185,0x2965,0x2965,0x2965,0x31a6,0x39c7,0x2965,0x3186,0x3166,0x3166,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x29a6,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x3186,0x31a6,0x31a6,0x31a6,0x31c6,0x2985,0x3206,0x9d53, +0x532b,0x00a0,0x2965,0x2945,0x2145,0x2945,0x2945,0x2965,0x2965,0x2945,0x2965,0x2965,0x2965,0x2966,0x2966,0x2965,0x2966,0x2986,0x2965,0x2965,0x2966,0x2965,0x2965,0x2966,0x2965,0x2945,0x2965,0x2965,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2145,0x2945,0x2125,0x2945,0x39c7,0x31a6,0x2144,0x2145,0x2144,0x2144,0x2965,0x39c6,0x39c6,0x2144,0x1944,0x2145,0x2124,0x3185,0x3a07,0x31c6,0x2144,0x2144,0x2144,0x2124,0x3165,0x4228,0x39e7,0x2164,0x2144,0x2145,0x2145,0x2965,0x39e7,0x3a07,0x2965,0x2124,0x2145,0x2125,0x2945,0x39e7,0x39e7,0x2986,0x2145,0x2945,0x2124,0x2944,0x31a6,0x39c7,0x2965,0x2124,0x2145,0x2145,0x2945,0x39e7,0x39e7,0x3185,0x2124,0x2125,0x2124,0x2144,0x39c6,0x39e7,0x31a6,0x2144,0x2144,0x2124,0x2945,0x39c6,0x39e7,0x31c6,0x2144,0x2145,0x2144,0x2144,0x39c6,0x39e7,0x39a6,0x2945,0x2945,0x2945,0x2144,0x39e6,0x4207,0x39e7,0x2165,0x2144,0x2145,0x2124,0x39c7,0x4a28,0x39e7,0x2965,0x2125,0x2144,0x2124,0x31a6,0x4227,0x3a06,0x2985,0x2124,0x2944,0x2124,0x31a6,0x4227,0x39e7,0x2985,0x2145,0x2145,0x2124,0x3185,0x5288,0x5288,0x31c6,0x2944,0x2945,0x2944,0x2965,0x4248,0x4228,0x39c6,0x2945,0x2945,0x2945,0x2945,0x31c6,0x4227,0x31c6,0x2945,0x2945,0x2945,0x2945,0x39e7,0x4207,0x31c6,0x2945,0x2945,0x2944,0x2944,0x39c6,0x3a07,0x31c6,0x2965,0x2945,0x2945,0x2144,0x39c6,0x4207,0x31a6,0x2945,0x2945,0x2945,0x2124,0x31a6,0x4228,0x39e6,0x2965,0x2964,0x2945,0x2124,0x31a5,0x4207,0x39c6,0x2965,0x2965,0x2145,0x2145,0x2985,0x4207,0x39c6,0x2945,0x2965,0x2965,0x2145,0x2965,0x3a07,0x39c6,0x2944,0x2965,0x2944,0x2144,0x2965,0x39e7,0x39c7,0x2124,0x2945,0x2144,0x2945,0x2944,0x31a6,0x39e7,0x2124,0x2124,0x2144,0x2145,0x2124,0x39c6,0x31a6,0x20e3,0x2945,0x2945,0x2144,0x2124,0x2965,0x31a6,0x2104,0x2144,0x2124,0x2144,0x2144,0x2986,0x31a6,0x18e3,0x2124,0x2124,0x2144,0x2124,0x3186,0x31a6,0x18e3,0x2144,0x2144,0x2144,0x2124,0x2985,0x39e7,0x1903,0x1904,0x2145,0x2145,0x2144,0x2985,0x39c6,0x18e3,0x2104,0x2945,0x2124,0x2124,0x2966,0x39c7,0x18e3,0x2103,0x2944,0x2124,0x2124,0x2965,0x31a6,0x2124,0x2124,0x2124,0x2124,0x2945,0x2124,0x2125,0x2945,0x2945,0x2945,0x2145,0x2145,0x2945,0x2145,0x2125,0x2125,0x2925,0x2945,0x2945,0x2145,0x2145,0x2145,0x2945,0x2145,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2985,0x0000,0x52ea, +0x2165,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2104,0x2103,0x1904,0x1924,0x2104,0x2945,0x39c7,0x2985,0x1904,0x2124,0x2124,0x2104,0x2944,0x39a5,0x2964,0x1903,0x1924,0x2124,0x2104,0x3185,0x4227,0x39e6,0x2124,0x2124,0x2104,0x2104,0x3185,0x4227,0x31e6,0x2124,0x2124,0x2124,0x2103,0x2965,0x3a07,0x39e6,0x2124,0x2124,0x2124,0x2104,0x2944,0x4207,0x39c6,0x2124,0x2104,0x2104,0x2104,0x2944,0x39e7,0x39c7,0x2945,0x2104,0x2104,0x2104,0x2944,0x4207,0x39e7,0x2965,0x1904,0x2104,0x2104,0x2124,0x41e7,0x4207,0x2965,0x1904,0x2124,0x2104,0x2125,0x41e7,0x4207,0x3185,0x2124,0x2124,0x2124,0x2104,0x39e7,0x4228,0x31a6,0x2103,0x2124,0x2944,0x4aa8,0x2985,0x39c6,0x39e7,0x31a6,0x31a6,0x31a5,0x31a6,0x4228,0x4a48,0x4228,0x39c7,0x31a6,0x31a6,0x3186,0x39e7,0x4228,0x39e7,0x3185,0x2144,0x2124,0x18e3,0x2944,0x3186,0x2965,0x2124,0x18e3,0x1903,0x2104,0x2945,0x39c6,0x39c6,0x31a6,0x2965,0x2985,0x2965,0x3185,0x4207,0x39e7,0x31a6,0x3185,0x3186,0x31a6,0x3185,0x4207,0x4228,0x39e7,0x31a6,0x31a6,0x31a6,0x3186,0x4207,0x4228,0x39c7,0x31a6,0x3185,0x3185,0x2965,0x31a6,0x39e7,0x39c7,0x3186,0x31a6,0x3186,0x2965,0x39e7,0x4208,0x39c7,0x3186,0x3186,0x3186,0x2965,0x39c6,0x4a48,0x4268,0x4247,0x4227,0x4247,0x4248,0x4aa9,0x52ea,0x52e9,0x52e9,0x52ea,0x4ac9,0x52c8,0x5b2a,0x636b,0x634b,0x5b2a,0x5b0a,0x636c,0x6309,0x3183,0x4228,0x39e7,0x2945,0x2124,0x2124,0x2124,0x2124,0x39e7,0x4207,0x2944,0x2104,0x2124,0x2124,0x2104,0x39e7,0x39e7,0x2124,0x2104,0x2104,0x2124,0x1904,0x31a6,0x39e7,0x2924,0x2104,0x2104,0x2124,0x1924,0x2965,0x39e7,0x2124,0x18e3,0x2104,0x2124,0x1903,0x2986,0x39e7,0x2104,0x18e3,0x2104,0x2104,0x1904,0x2985,0x39c6,0x2103,0x2103,0x2124,0x2124,0x18e3,0x2965,0x39e7,0x2124,0x18e3,0x2124,0x2104,0x1903,0x2944,0x39e7,0x2104,0x18c3,0x2124,0x2124,0x2104,0x2965,0x3a07,0x2124,0x10a2,0x2104,0x2104,0x2104,0x2945,0x39c7,0x18e3,0x18c2,0x2104,0x2945,0x2965,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x1904,0x1924,0x1904,0x2104,0x2104,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2104,0x2123,0x2124,0x2124,0x2124,0x2144, +0x1924,0x1903,0x1903,0x1903,0x18e3,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x2104,0x1904,0x1903,0x1904,0x1903,0x2104,0x2104,0x1903,0x2104,0x1903,0x1903,0x1903,0x2104,0x1903,0x18e3,0x1903,0x1903,0x1904,0x1904,0x1903,0x1903,0x1903,0x18e3,0x1903,0x1903,0x20e3,0x3185,0x39e6,0x2144,0x18e3,0x2104,0x2104,0x20e3,0x3186,0x39c6,0x2944,0x18e3,0x1903,0x2103,0x20e3,0x3185,0x4207,0x2985,0x18e3,0x1904,0x18e4,0x20e3,0x3185,0x4227,0x2985,0x1903,0x1904,0x18e4,0x18e3,0x3185,0x4207,0x31a5,0x1903,0x1903,0x1904,0x18e3,0x2965,0x4207,0x31c6,0x1904,0x18e4,0x18e4,0x18e3,0x2944,0x4207,0x31c6,0x1904,0x1904,0x18e3,0x18c3,0x2945,0x4228,0x39c6,0x2124,0x10e3,0x18e3,0x18e3,0x2924,0x41e7,0x39c7,0x2124,0x18e3,0x1904,0x18e4,0x2124,0x4207,0x4206,0x2965,0x18e3,0x18e4,0x2104,0x2104,0x39e7,0x4207,0x2965,0x18e3,0x1904,0x2124,0x4246,0x1903,0x2104,0x2965,0x31c6,0x39e7,0x39e6,0x4207,0x4228,0x4248,0x4228,0x4208,0x4207,0x41e7,0x4207,0x4207,0x4207,0x39e7,0x39c6,0x3186,0x2945,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x2104,0x2944,0x2965,0x3186,0x31a6,0x31c6,0x31a6,0x31a6,0x39c6,0x39c6,0x39c6,0x31a6,0x31a6,0x39c7,0x39c6,0x39e7,0x4208,0x39e7,0x39e7,0x39e7,0x39e7,0x39c7,0x4207,0x4207,0x39e7,0x39e7,0x39c6,0x39c6,0x31a5,0x31a6,0x39e6,0x39e7,0x39e7,0x4208,0x4207,0x39e7,0x39e7,0x4207,0x4207,0x39e7,0x41e7,0x39e7,0x39e7,0x39e7,0x4228,0x4a48,0x4a48,0x4a48,0x4a68,0x4a69,0x4a68,0x4a89,0x5289,0x52aa,0x52a9,0x4a88,0x4a88,0x4a68,0x4a68,0x52a8,0x4a88,0x4a68,0x5b2b,0x8c2c,0x41c2,0x39e7,0x39e7,0x2124,0x2104,0x2104,0x2104,0x1903,0x39e7,0x4207,0x2124,0x18e3,0x1904,0x1904,0x18e3,0x39c6,0x4207,0x2124,0x18e3,0x2104,0x2104,0x18c3,0x3186,0x4207,0x2924,0x18e3,0x1904,0x1903,0x18e3,0x2985,0x39e7,0x2124,0x18c3,0x1904,0x1903,0x10e3,0x2945,0x39e7,0x2944,0x10a2,0x1904,0x18e3,0x18e3,0x2944,0x39e7,0x2944,0x10a2,0x18e4,0x18e3,0x18e3,0x2124,0x41e7,0x2965,0x1082,0x2103,0x2124,0x2124,0x2123,0x31c6,0x2144,0x1082,0x2104,0x1904,0x18e3,0x2104,0x39e7,0x2965,0x0862,0x18e3,0x1903,0x18e3,0x2104,0x39c6,0x2924,0x0861,0x1903,0x2124,0x2124,0x2104,0x2104,0x1903,0x18e3,0x18e3,0x18e3,0x1903,0x1903,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x2104,0x1903,0x1903,0x18e3,0x1903,0x1903,0x18e3,0x18e3,0x1903,0x1903,0x18e3,0x1903,0x2104,0x1904,0x2124, +0x1903,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x10e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2103,0x39c6,0x39c6,0x2124,0x18e3,0x18e3,0x18e3,0x18e3,0x39a6,0x39e7,0x2124,0x10e3,0x18e3,0x18e3,0x18e3,0x39a6,0x39c6,0x2124,0x18c3,0x18e3,0x18e4,0x18e3,0x39a6,0x3a07,0x2964,0x10c2,0x18e3,0x18e3,0x18e3,0x31a6,0x39e6,0x2965,0x18e3,0x10e3,0x18c3,0x18c3,0x3165,0x39e7,0x2985,0x18c3,0x10c3,0x18e3,0x18c2,0x2965,0x39c6,0x2965,0x10c3,0x10c3,0x18c3,0x18c3,0x2944,0x39e7,0x31a6,0x18e3,0x10c2,0x18c3,0x18c3,0x2104,0x39e6,0x39c6,0x1903,0x10c3,0x18e3,0x18c3,0x2104,0x39e6,0x39c6,0x2124,0x18c3,0x18e3,0x18e3,0x2104,0x39e7,0x39e7,0x2945,0x18e3,0x18e3,0x2103,0x4a67,0x18c2,0x18c3,0x18e3,0x2104,0x2944,0x2965,0x39e7,0x4207,0x4208,0x4208,0x4208,0x4208,0x41e7,0x4207,0x4208,0x4208,0x4207,0x39e7,0x39e7,0x31a6,0x2965,0x2945,0x2944,0x2124,0x2124,0x2104,0x18e3,0x18e3,0x2104,0x2124,0x2945,0x2965,0x3186,0x3186,0x2965,0x2965,0x2985,0x3165,0x3186,0x3186,0x31a7,0x39c7,0x39c6,0x39e7,0x4208,0x41e7,0x41e7,0x4207,0x4207,0x39e7,0x4207,0x4208,0x4207,0x41e7,0x39e7,0x39c6,0x3185,0x3185,0x31a6,0x39c6,0x39c7,0x39c7,0x39e7,0x39c7,0x39c6,0x39e7,0x39e7,0x39c7,0x39e7,0x4207,0x39e7,0x39c7,0x41e7,0x4208,0x4208,0x4208,0x4208,0x4208,0x4207,0x4207,0x4208,0x4208,0x4208,0x4207,0x39e7,0x39c6,0x39c6,0x39c6,0x2985,0x2944,0x39c6,0x7bc9,0x41e2,0x39c7,0x39e7,0x2124,0x18e3,0x1904,0x1903,0x18e3,0x31a6,0x39e6,0x2124,0x18c3,0x18e3,0x1903,0x18c3,0x3185,0x41e7,0x2944,0x18c3,0x18e3,0x18e3,0x10c2,0x2965,0x3a07,0x2944,0x10a2,0x18e3,0x18e3,0x10c3,0x2945,0x39e7,0x2945,0x10c3,0x18e3,0x18c3,0x10a2,0x2123,0x39e6,0x2965,0x1082,0x18e3,0x18e3,0x18c3,0x2104,0x39e7,0x2985,0x1082,0x18c3,0x10c3,0x18e3,0x18e3,0x39c6,0x3185,0x1082,0x18c3,0x2104,0x2964,0x2103,0x31a6,0x2965,0x0861,0x2104,0x2124,0x2144,0x2104,0x39c7,0x3186,0x0861,0x18c3,0x18c3,0x10c3,0x10c2,0x31a6,0x31a6,0x0861,0x18e3,0x2104,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18c3,0x10c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3, +0x10c3,0x10c3,0x18c3,0x10c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10c3,0x10c3,0x18c3,0x10c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10c3,0x10c3,0x18c3,0x18c3,0x10c3,0x10c3,0x10c2,0x10c3,0x10c3,0x18c3,0x10a2,0x10c3,0x10c3,0x18c3,0x10c3,0x10c3,0x18e3,0x18e3,0x18c3,0x18e3,0x2103,0x31a6,0x3185,0x18c3,0x10c2,0x10c3,0x10c3,0x18e3,0x3186,0x31a6,0x10e3,0x10c2,0x10c3,0x10c2,0x2104,0x39c6,0x31a6,0x2103,0x10c3,0x18c3,0x18c3,0x18e3,0x39a6,0x39c6,0x2124,0x10a2,0x10c3,0x18c3,0x18e3,0x3185,0x31a6,0x2124,0x10c2,0x10c3,0x10c2,0x18c3,0x3185,0x39e7,0x2965,0x10c2,0x10a2,0x10c2,0x10c2,0x2965,0x31c6,0x2144,0x10c2,0x10c2,0x10a2,0x10a2,0x2945,0x39c6,0x2965,0x10c3,0x10a2,0x10c3,0x10a2,0x2124,0x39c6,0x3185,0x18e3,0x10a2,0x18c3,0x10a2,0x2104,0x39c6,0x3185,0x18e3,0x18c3,0x18c3,0x18a2,0x20e3,0x39e7,0x31c6,0x2124,0x10a2,0x18e3,0x18e3,0x52c8,0x10a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2124,0x31a6,0x39e7,0x3a07,0x4208,0x4207,0x41e7,0x39e7,0x4207,0x4208,0x4207,0x3a07,0x39e7,0x31a6,0x2965,0x2124,0x2104,0x1903,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2124,0x2945,0x2945,0x2124,0x2944,0x3186,0x31a6,0x31a6,0x39c7,0x39e7,0x39e7,0x39c6,0x4207,0x4228,0x4228,0x4228,0x4228,0x4228,0x4207,0x4228,0x4a48,0x4a48,0x4227,0x4207,0x39e7,0x3185,0x31a5,0x39c6,0x39e7,0x4208,0x4208,0x4208,0x39e7,0x39c6,0x39e7,0x41e8,0x4208,0x4228,0x4228,0x4207,0x39e7,0x4228,0x4a29,0x4229,0x4229,0x4229,0x4208,0x4207,0x4207,0x4207,0x4207,0x41e7,0x39e7,0x39c6,0x31a6,0x3185,0x2124,0x18e3,0x18e3,0x2944,0x6b27,0x41e2,0x39c6,0x39c7,0x2104,0x18c3,0x18e3,0x18e3,0x18c2,0x2985,0x39e6,0x2944,0x10c2,0x18e3,0x18e3,0x18c2,0x2965,0x39e7,0x2945,0x10a2,0x18e3,0x18c3,0x10a2,0x2964,0x39e7,0x2965,0x1082,0x18c3,0x10c3,0x10c2,0x2124,0x39c7,0x2965,0x10a2,0x10c2,0x10c2,0x1082,0x18e3,0x31c5,0x3185,0x1082,0x10c3,0x18c3,0x10c2,0x10c3,0x31a6,0x2965,0x0861,0x10a3,0x10c3,0x10c2,0x10c2,0x31a6,0x31a6,0x1082,0x10a2,0x10a2,0x18c2,0x10a2,0x31a6,0x3186,0x0861,0x1903,0x2124,0x2965,0x2965,0x31a6,0x39a6,0x1081,0x10a2,0x10c3,0x10c2,0x10a2,0x2965,0x31a6,0x10a2,0x10a2,0x18e3,0x10e3,0x10c3,0x10a2,0x10a2,0x10a2,0x10c3,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c3,0x10c3,0x10c3,0x10c3,0x10c3,0x10c2,0x10a2,0x10c2,0x10c3,0x10c2,0x10c3,0x10c2,0x10c3,0x10c3,0x10c2,0x18c3,0x18c3,0x10c2,0x10c2,0x18c3,0x18c3,0x10c3, +0x10a3,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10c3,0x10c2,0x10a2,0x10a2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x18c3,0x18c3,0x18c3,0x2124,0x3185,0x2944,0x10a2,0x10a2,0x10c2,0x10a2,0x2104,0x2986,0x2145,0x10c3,0x10a2,0x10a2,0x10a2,0x1904,0x31a6,0x3185,0x18e3,0x10a2,0x10a3,0x10a2,0x18e3,0x39a6,0x31a6,0x18e3,0x10a2,0x10a2,0x10c2,0x18e3,0x31a6,0x3185,0x18e3,0x10a2,0x10c2,0x10a2,0x10c2,0x31a5,0x39e6,0x2144,0x10a2,0x10c3,0x10c3,0x10a2,0x3185,0x31a6,0x2104,0x08a2,0x10a2,0x10a2,0x10a2,0x2965,0x39c6,0x2965,0x10a2,0x10a2,0x10a2,0x1082,0x2144,0x39c6,0x2965,0x18c2,0x10a2,0x10a3,0x10a2,0x2104,0x31a6,0x3185,0x18e3,0x10a2,0x10a2,0x10a2,0x1903,0x39c6,0x2965,0x18e3,0x10c2,0x10c3,0x18e3,0x4a87,0x10a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x1903,0x2924,0x2965,0x2945,0x2944,0x2944,0x2944,0x2944,0x2144,0x2144,0x2124,0x2124,0x2104,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2103,0x2104,0x2124,0x2104,0x2104,0x2144,0x2945,0x2945,0x2965,0x2965,0x2965,0x2964,0x2985,0x3185,0x3185,0x3185,0x3185,0x31a5,0x3185,0x31a6,0x31a6,0x31a6,0x31a6,0x31a5,0x3185,0x2964,0x3185,0x31a5,0x31a6,0x39c6,0x39c7,0x39c7,0x31c6,0x31a6,0x39e7,0x39e7,0x3a07,0x3a07,0x3a07,0x3a07,0x39e6,0x4228,0x4228,0x4228,0x4228,0x4228,0x4228,0x4207,0x4228,0x4207,0x4207,0x3a07,0x39e6,0x3185,0x2124,0x2104,0x18c3,0x18c3,0x18c3,0x2944,0x7389,0x5263,0x31a6,0x31a6,0x2104,0x10a2,0x18e3,0x18e3,0x10a2,0x2985,0x31c6,0x2124,0x10c3,0x18e3,0x18e3,0x10a2,0x2165,0x31c6,0x2944,0x1082,0x10c2,0x18c3,0x10a2,0x2124,0x3a07,0x3185,0x1082,0x10c3,0x10c3,0x10a2,0x2103,0x31a6,0x2985,0x1081,0x10a2,0x10c2,0x10a2,0x18c3,0x31a6,0x2965,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x2985,0x2103,0x0861,0x10a2,0x10c2,0x10a2,0x10a2,0x31a5,0x31a6,0x10a2,0x1082,0x10a3,0x10a3,0x10a2,0x3185,0x3185,0x1082,0x10a2,0x18e3,0x18e3,0x18e3,0x2965,0x39a6,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x2124,0x31a5,0x18c2,0x0861,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10c3,0x10c3, +0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x2124,0x3185,0x2124,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x2985,0x2124,0x10a2,0x10a2,0x10a2,0x10a2,0x18e4,0x3186,0x2945,0x10c2,0x1082,0x10a2,0x10a2,0x20e3,0x31a6,0x3186,0x18c3,0x1082,0x10a2,0x10a2,0x18e3,0x31a6,0x2985,0x18e3,0x0882,0x10a2,0x10a2,0x10c2,0x31a5,0x3185,0x1903,0x1082,0x10a2,0x10a3,0x10a2,0x2965,0x2985,0x1903,0x1082,0x1082,0x10a2,0x10a2,0x3185,0x39c6,0x2924,0x1082,0x1082,0x10a2,0x1082,0x2924,0x3185,0x2124,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x3185,0x2965,0x18c3,0x10a2,0x10a2,0x1082,0x2104,0x31a6,0x2965,0x18e3,0x10a2,0x10c3,0x10c2,0x3a06,0x10a2,0x18c2,0x18c3,0x18c3,0x20e3,0x18c3,0x18a2,0x18a3,0x18c3,0x2124,0x18e3,0x18c3,0x18a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18e3,0x2124,0x18e3,0x18e3,0x18c3,0x10a2,0x10c2,0x18c3,0x10a2,0x18c3,0x10c2,0x18c2,0x18c2,0x18c3,0x18c2,0x18c2,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x1903,0x2103,0x2103,0x2103,0x2103,0x2104,0x18e3,0x18e3,0x18e3,0x1903,0x2104,0x2104,0x2104,0x2103,0x2103,0x2123,0x2124,0x2124,0x2124,0x2144,0x2144,0x2144,0x2144,0x2944,0x2944,0x2944,0x2944,0x2944,0x2103,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x2124,0x7bcb,0x62c3,0x2965,0x31a6,0x2124,0x10a2,0x18e3,0x18c3,0x10a2,0x2965,0x31a6,0x2104,0x10c3,0x10e3,0x10e3,0x10a2,0x2145,0x31a6,0x2124,0x10a2,0x10c2,0x10c3,0x10c2,0x2103,0x39c6,0x2965,0x10a2,0x10c2,0x10c3,0x10a2,0x18e3,0x31a6,0x3185,0x1081,0x10a2,0x10a2,0x10a2,0x10c2,0x3185,0x2965,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x2965,0x2104,0x1062,0x10a2,0x10c2,0x10a2,0x1082,0x2985,0x39c6,0x18e3,0x1082,0x10a2,0x10a2,0x1082,0x2964,0x3185,0x10a2,0x0861,0x10a2,0x10a2,0x0861,0x2965,0x31a6,0x18c3,0x1081,0x10a2,0x10a2,0x0882,0x2124,0x3185,0x18e3,0x0861,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2, +0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x0882,0x1082,0x1082,0x0882,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x0882,0x0882,0x0861,0x0882,0x1082,0x1082,0x1082,0x0882,0x0882,0x0882,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x2124,0x2965,0x18e3,0x08a2,0x10a2,0x10a2,0x10a2,0x2124,0x2985,0x2124,0x10a2,0x10c2,0x10a2,0x10a2,0x2104,0x3165,0x2945,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x31a6,0x2945,0x18a2,0x1082,0x10a2,0x10a2,0x18e3,0x3185,0x2964,0x10c2,0x08a2,0x10a2,0x10a2,0x10e3,0x31a5,0x3185,0x18e3,0x10a2,0x10a2,0x10a2,0x10c2,0x2144,0x2964,0x18e3,0x1082,0x1082,0x10a2,0x1082,0x2965,0x3185,0x2104,0x1082,0x10a2,0x10a2,0x10a2,0x2944,0x3185,0x2124,0x08a2,0x10a2,0x10a2,0x10a2,0x2104,0x3185,0x2944,0x10c2,0x10a2,0x10a2,0x1082,0x2104,0x31a6,0x2965,0x18e3,0x10a2,0x18c3,0x10c2,0x31a5,0x10a2,0x10a2,0x18c3,0x18c3,0x2104,0x18c3,0x10a2,0x18c3,0x18c3,0x2104,0x2103,0x10a2,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x18e3,0x18c3,0x18c3,0x2124,0x18e3,0x20e3,0x18c3,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x18e3,0x18c3,0x20e3,0x18c3,0x20e3,0x18c3,0x18c3,0x18c3,0x10a2,0x18a2,0x18a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a2,0x18c3,0x18c2,0x18c3,0x18c3,0x2104,0x6327,0x5ac3,0x3186,0x31c6,0x2103,0x10a2,0x18c3,0x18e3,0x18c3,0x2945,0x31a6,0x2104,0x10a2,0x18c3,0x18c3,0x10c2,0x2124,0x31a6,0x2944,0x10a2,0x10c3,0x18c3,0x10c2,0x2123,0x31c6,0x2965,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x31a6,0x3186,0x10a2,0x10a2,0x10c2,0x10a2,0x10c2,0x31a6,0x2985,0x1082,0x10a2,0x18c3,0x10a2,0x1082,0x2965,0x2965,0x10a2,0x10a2,0x10c2,0x10c2,0x1082,0x2965,0x39e7,0x1904,0x1082,0x10a2,0x10a2,0x10a2,0x2124,0x3185,0x18e3,0x0861,0x10a2,0x10a2,0x0882,0x2144,0x31a6,0x1903,0x0861,0x10a2,0x10a2,0x0882,0x1903,0x2985,0x1903,0x0861,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x0882,0x1082,0x1082,0x0882,0x0881,0x0882,0x0882,0x0882,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2, +0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x08a2,0x0882,0x0882,0x1082,0x1082,0x0881,0x0881,0x1082,0x0882,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x2124,0x10e3,0x08a2,0x10a2,0x10a2,0x10a2,0x2144,0x3185,0x1903,0x10a2,0x10a2,0x10a2,0x10a2,0x2103,0x3165,0x2124,0x10a2,0x10a2,0x10a2,0x10a2,0x20e4,0x3186,0x2124,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x39c6,0x2944,0x10a2,0x10a2,0x10c3,0x18c3,0x18e3,0x3185,0x3185,0x1903,0x10a2,0x10a2,0x10c2,0x10a2,0x2945,0x2965,0x10c2,0x10a2,0x10c3,0x10a2,0x10a2,0x2965,0x2965,0x18e3,0x1082,0x10a2,0x10a2,0x10a2,0x2124,0x2965,0x2124,0x10a2,0x10a2,0x18c3,0x18a2,0x2924,0x3185,0x2124,0x18c3,0x10a2,0x18c3,0x10a2,0x1904,0x3186,0x2145,0x18c3,0x10a2,0x18c2,0x18c2,0x2123,0x18c2,0x18c3,0x18c3,0x18c3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x18e3,0x2104,0x10a2,0x18c3,0x2104,0x18e3,0x2104,0x2103,0x18c2,0x18c2,0x18c3,0x18c2,0x18c3,0x18a2,0x18a2,0x18e3,0x20e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c2,0x10a2,0x18c2,0x2104,0x18e3,0x18e3,0x18c3,0x2124,0x18c3,0x2124,0x18e3,0x18e3,0x20e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x10a2,0x18c2,0x18e3,0x18a2,0x18e3,0x18c3,0x18c3,0x18c3,0x2103,0x62e6,0x5aa3,0x2965,0x2985,0x2123,0x10c2,0x18e3,0x18e4,0x18c3,0x2124,0x3186,0x2104,0x10a2,0x18c3,0x18e3,0x18e3,0x2124,0x31a6,0x2124,0x10a2,0x18c3,0x18e3,0x18c3,0x2104,0x31a6,0x2965,0x10a2,0x18c3,0x18e3,0x18c3,0x18c3,0x3186,0x2945,0x1082,0x10a2,0x10c3,0x10c3,0x10c2,0x31a6,0x3185,0x10a2,0x18a3,0x18c3,0x18c3,0x10a2,0x2965,0x3186,0x18e3,0x1081,0x10c2,0x10c3,0x10a2,0x2964,0x31a6,0x18e3,0x1082,0x10a3,0x10a3,0x10a3,0x2104,0x2965,0x18e3,0x0881,0x10a2,0x18c3,0x10a2,0x2103,0x3185,0x2103,0x0861,0x10a2,0x10a3,0x10a2,0x18e3,0x2985,0x1903,0x0861,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x0881,0x1082,0x0882,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082, +0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x0882,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10c3,0x18c3,0x18c3,0x18e4,0x2104,0x18c3,0x10c2,0x10c3,0x10c2,0x10a2,0x2944,0x3185,0x2104,0x1082,0x10c2,0x10c3,0x10a2,0x2124,0x3185,0x2104,0x10a2,0x10c3,0x18c3,0x18a2,0x20e4,0x2945,0x1904,0x10a2,0x18c3,0x10c3,0x10c3,0x2124,0x39c6,0x2124,0x18c3,0x18c3,0x18c3,0x18a2,0x2103,0x3185,0x2985,0x2103,0x10a2,0x18c3,0x18e3,0x18e3,0x2944,0x2965,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x2965,0x2965,0x2103,0x18c3,0x18c3,0x18c3,0x18c3,0x2124,0x2965,0x1903,0x10a2,0x18c3,0x18e3,0x18e3,0x2124,0x2965,0x2124,0x18e3,0x18e3,0x1903,0x18c3,0x1903,0x2945,0x2144,0x18e3,0x18c3,0x18e3,0x18e3,0x18e2,0x18c3,0x18c3,0x18c3,0x18c3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x0861,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x1082,0x18c2,0x18e3,0x10a2,0x18c3,0x2104,0x18e3,0x18e3,0x18c2,0x0861,0x1082,0x18c2,0x18c3,0x18c3,0x10a2,0x10a2,0x18a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x1082,0x1082,0x10a2,0x2104,0x18c3,0x18e3,0x18c3,0x2104,0x18c3,0x2104,0x10a2,0x10a2,0x10a2,0x10a2,0x18c2,0x18c3,0x18e3,0x18c3,0x10a2,0x1082,0x18a2,0x18c3,0x18e3,0x2103,0x18e3,0x18c3,0x18c2,0x18c3,0x2104,0x2104,0x10a2,0x18c2,0x18e3,0x18c2,0x18e3,0x18c3,0x18c3,0x18c3,0x2103,0x6328,0x6b24,0x2144,0x31a6,0x2144,0x18e3,0x2104,0x2104,0x1904,0x2124,0x2986,0x2124,0x10c2,0x2124,0x2124,0x2103,0x2124,0x3186,0x2944,0x10a2,0x1903,0x2104,0x18e3,0x2124,0x3186,0x2124,0x10a2,0x18e3,0x1903,0x18e3,0x18c3,0x2965,0x2966,0x10a2,0x10c3,0x18e3,0x10e3,0x10c2,0x2965,0x2965,0x10c2,0x10a2,0x1903,0x18e3,0x10c2,0x2124,0x2986,0x18e3,0x10a2,0x18e3,0x1904,0x10c2,0x2964,0x3185,0x18e3,0x1082,0x18c3,0x18e4,0x18c3,0x2104,0x2985,0x20e3,0x0882,0x18c3,0x18e3,0x10c3,0x2103,0x31a5,0x2124,0x0861,0x10a3,0x18c3,0x10a3,0x18e3,0x2965,0x18e3,0x0881,0x10c2,0x10a2,0x10c2,0x10c3,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x0882,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c3,0x10a2,0x10a2,0x18e3,0x18c3,0x10c3,0x10a2,0x10a2,0x10c2,0x10c2,0x10c2,0x10c3,0x10c2,0x10c2,0x18e3, +0x10a2,0x10a2,0x10a3,0x10a3,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c3,0x10a2,0x10a2,0x10c2,0x10c3,0x10a2,0x10a2,0x10c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x2104,0x2124,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x2124,0x2965,0x18e4,0x10a3,0x18e3,0x18e3,0x10a2,0x2124,0x3165,0x2104,0x10c3,0x18e3,0x18e3,0x18c3,0x2124,0x3186,0x1904,0x18c3,0x1904,0x18e3,0x18e3,0x2124,0x31a6,0x2124,0x1903,0x2125,0x2104,0x18e3,0x2104,0x3185,0x2965,0x18e3,0x18e3,0x2104,0x1904,0x18e3,0x2144,0x2965,0x18e3,0x18c3,0x2124,0x2104,0x18c3,0x3185,0x39e7,0x2924,0x2104,0x2104,0x2104,0x18e4,0x2145,0x2985,0x2124,0x18e3,0x2104,0x2124,0x2124,0x2124,0x2965,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2965,0x2124,0x1903,0x1904,0x2104,0x18e3,0x18e1,0x18c3,0x18c3,0x10a2,0x18c3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x1082,0x0861,0x10a2,0x18e3,0x2104,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2124,0x18e3,0x18c3,0x10a2,0x1082,0x18e3,0x18a2,0x18e3,0x2104,0x18e3,0x10a2,0x1082,0x0861,0x18c3,0x2104,0x2924,0x2124,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2103,0x18a2,0x10a2,0x10a2,0x18e3,0x10a2,0x18e3,0x18e3,0x2104,0x18a2,0x18c3,0x0861,0x0861,0x18c3,0x18e3,0x20e3,0x20e3,0x20e4,0x18e3,0x18c3,0x18a3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x1082,0x1082,0x2104,0x2104,0x10a2,0x10a2,0x18e3,0x18c2,0x18e3,0x18c3,0x18c3,0x18c3,0x20e3,0x5ac7,0x7ba4,0x2144,0x29a6,0x2124,0x1903,0x2145,0x2145,0x2144,0x2124,0x2986,0x2124,0x10c3,0x2965,0x2965,0x1904,0x2124,0x2965,0x2124,0x18c3,0x2144,0x2144,0x2104,0x2104,0x2965,0x2965,0x18e3,0x1904,0x2124,0x2124,0x2104,0x2965,0x2965,0x18c3,0x18e3,0x2124,0x1904,0x18e3,0x2965,0x2965,0x10c2,0x10c3,0x2124,0x1904,0x18e3,0x2124,0x2985,0x18e3,0x18c3,0x1904,0x2104,0x18e3,0x2965,0x31a6,0x18e3,0x10a2,0x18e3,0x1904,0x18e3,0x2104,0x2985,0x2104,0x1082,0x2104,0x2104,0x18e3,0x2124,0x31a6,0x2124,0x0862,0x18e3,0x18e4,0x18c3,0x18e3,0x2965,0x2104,0x1082,0x18e3,0x2104,0x18e3,0x18c3,0x18e3,0x10c3,0x10a2,0x10a2,0x18e3,0x18e3,0x10c3,0x10a2,0x18e3,0x18c3,0x10a2,0x18e3,0x18e3,0x18c3,0x18c3,0x10c2,0x18e3,0x18c3,0x18e3,0x1903,0x18e3,0x18e3,0x10c2,0x10c3,0x18e3,0x18c3,0x10c2,0x18c3,0x18e3,0x18c3,0x10c3,0x18e3, +0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x10c3,0x18e3,0x18c3,0x10a2,0x10c3,0x18c3,0x18e3,0x10c3,0x10c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x18e4,0x18e3,0x2124,0x2124,0x18e3,0x2945,0x2124,0x18e3,0x18e3,0x2945,0x2965,0x2104,0x2104,0x2124,0x2104,0x18c3,0x2944,0x31a6,0x2144,0x18e3,0x2104,0x2124,0x2104,0x2124,0x2945,0x18e3,0x18e3,0x2124,0x2124,0x1904,0x2124,0x31a6,0x2145,0x2104,0x2945,0x2945,0x2945,0x2104,0x3186,0x2965,0x2144,0x2965,0x2965,0x2145,0x18e3,0x2944,0x2985,0x2104,0x2144,0x2965,0x2986,0x2104,0x3185,0x41e6,0x3185,0x2945,0x29a6,0x2165,0x2124,0x2145,0x3185,0x2124,0x2985,0x31a6,0x2986,0x2965,0x2124,0x3185,0x2124,0x2945,0x3186,0x2966,0x3186,0x2124,0x2965,0x2945,0x2104,0x2966,0x2965,0x2945,0x18e2,0x18a3,0x18a2,0x18c3,0x18c3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x1082,0x0861,0x18c3,0x2104,0x2124,0x2104,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2124,0x18e3,0x2104,0x18e3,0x10a2,0x18c3,0x18a2,0x18e3,0x2124,0x18e3,0x18c2,0x1081,0x1082,0x18e3,0x2124,0x2945,0x2124,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2124,0x2945,0x2944,0x18e3,0x18e3,0x18e3,0x18c3,0x10a2,0x18e3,0x18e3,0x2124,0x18a3,0x18c3,0x0841,0x18c3,0x2124,0x2945,0x2965,0x2965,0x2945,0x2944,0x2104,0x20e4,0x2104,0x2104,0x2104,0x2104,0x2945,0x2124,0x18c3,0x18c2,0x18e3,0x18e3,0x10a2,0x18a2,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x4225,0x6b24,0x2965,0x3186,0x2104,0x2124,0x31c6,0x31a6,0x2965,0x2144,0x31a6,0x2145,0x1904,0x2965,0x2965,0x2986,0x2124,0x3186,0x2145,0x2104,0x3186,0x2965,0x2965,0x2124,0x3186,0x3186,0x1903,0x2144,0x2145,0x2945,0x2945,0x2965,0x2965,0x18e3,0x2145,0x2145,0x2945,0x2124,0x2945,0x3186,0x18c3,0x1904,0x2965,0x2945,0x2124,0x2965,0x31a6,0x18e3,0x2104,0x2124,0x2965,0x2104,0x2945,0x31c7,0x2104,0x18e3,0x2144,0x2145,0x2144,0x2124,0x3186,0x2104,0x10a2,0x2124,0x2965,0x2124,0x2124,0x31a6,0x2145,0x10a3,0x2125,0x2125,0x2124,0x2104,0x2965,0x2124,0x1082,0x2124,0x2124,0x1904,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x2104,0x2144,0x18e3,0x18e3,0x2104,0x1903,0x18e3,0x1903,0x2104,0x2104,0x1904,0x18e3,0x1904,0x1903,0x2124,0x2124,0x18e3,0x18e3,0x18e3,0x18e3,0x1904,0x18e3,0x18e3,0x2124,0x2124,0x18e3,0x18e3,0x18e3, +0x18e3,0x18e3,0x18c3,0x18e3,0x18e4,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x1903,0x18e3,0x2124,0x1903,0x1903,0x2104,0x1904,0x2104,0x2104,0x2124,0x1904,0x2144,0x2144,0x1904,0x1903,0x2104,0x2104,0x2124,0x2125,0x1903,0x2965,0x2965,0x1904,0x2124,0x2945,0x2144,0x18e3,0x2965,0x2985,0x2124,0x2124,0x2124,0x2965,0x2145,0x2145,0x31a6,0x2145,0x1904,0x2165,0x2965,0x2104,0x2104,0x2945,0x2124,0x2124,0x2965,0x2965,0x2145,0x2124,0x2986,0x2145,0x2144,0x2965,0x2965,0x2986,0x2124,0x31a6,0x2985,0x2965,0x31a6,0x2986,0x2965,0x2104,0x2124,0x2965,0x2124,0x2965,0x31a6,0x31c6,0x2124,0x3185,0x39a6,0x2965,0x31a6,0x29a6,0x29a6,0x2165,0x2965,0x3186,0x2945,0x3186,0x39c7,0x31c7,0x2986,0x2965,0x31a6,0x2965,0x2966,0x39c7,0x31a7,0x2966,0x2104,0x3186,0x2965,0x2945,0x31a6,0x2986,0x39e7,0x18e2,0x18c3,0x18a2,0x18a3,0x18a3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x1082,0x1082,0x18c3,0x18e3,0x2104,0x20e4,0x18e4,0x2104,0x1904,0x18e3,0x18e3,0x1904,0x1904,0x18e3,0x2104,0x2104,0x18e3,0x2104,0x18e3,0x10a2,0x18c2,0x10a2,0x18c3,0x2124,0x18c3,0x10c2,0x1082,0x1082,0x18e3,0x2104,0x2124,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2945,0x2944,0x18e3,0x2103,0x2103,0x18e3,0x10a2,0x18e3,0x18e3,0x2124,0x18c3,0x18c3,0x0841,0x18e3,0x2124,0x3186,0x3186,0x3186,0x2945,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2965,0x2945,0x18e3,0x18e3,0x18e3,0x18c3,0x10a2,0x18a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x4206,0x62e6,0x2945,0x3186,0x2104,0x2145,0x3186,0x2965,0x2945,0x2945,0x31c6,0x2945,0x2104,0x2985,0x2965,0x3186,0x2965,0x3186,0x2945,0x2124,0x2965,0x2985,0x2965,0x2144,0x31a6,0x31a6,0x2944,0x2944,0x2965,0x2965,0x2924,0x2965,0x3186,0x2104,0x2945,0x2145,0x2145,0x2124,0x2965,0x3186,0x2104,0x2124,0x2965,0x3186,0x2945,0x2124,0x31a6,0x2124,0x2124,0x2965,0x2965,0x2124,0x2945,0x39c7,0x2124,0x2104,0x2965,0x2945,0x2124,0x2124,0x3186,0x2124,0x18e3,0x2945,0x2945,0x2945,0x2124,0x31a6,0x2965,0x18c3,0x2145,0x2945,0x2965,0x2104,0x2965,0x2945,0x18e3,0x2144,0x2124,0x2124,0x2104,0x18e3,0x2104,0x2144,0x2124,0x2124,0x2124,0x2965,0x2124,0x2124,0x2124,0x1924,0x1903,0x2145,0x2124,0x1904,0x1904,0x2124,0x1904,0x1904,0x1903,0x2104,0x18e3,0x2104,0x2124,0x1904,0x1903,0x2124,0x2124,0x2124,0x2104,0x2104,0x2104, +0x1903,0x18e3,0x18e3,0x18e3,0x18e4,0x18e4,0x2104,0x1903,0x1903,0x18e3,0x18e3,0x2104,0x1904,0x2104,0x2104,0x1904,0x2104,0x2104,0x18e4,0x1904,0x2104,0x2104,0x2124,0x2124,0x2124,0x2124,0x2965,0x2965,0x2965,0x2145,0x1904,0x1904,0x2104,0x2124,0x2145,0x2124,0x2124,0x2965,0x31a6,0x2124,0x2124,0x2145,0x2945,0x2124,0x2124,0x2965,0x2124,0x2945,0x2965,0x29a6,0x2145,0x2124,0x2965,0x2124,0x2165,0x2985,0x2185,0x2124,0x2124,0x2945,0x2124,0x2944,0x2985,0x2985,0x2165,0x2124,0x2965,0x2145,0x2144,0x2965,0x2965,0x2965,0x2125,0x2945,0x2965,0x2965,0x2986,0x2986,0x3186,0x2945,0x2124,0x2965,0x2124,0x2965,0x2965,0x2985,0x2124,0x2124,0x2945,0x2144,0x2986,0x2986,0x2986,0x2145,0x2124,0x2965,0x2124,0x2986,0x2986,0x2986,0x31a6,0x2965,0x2985,0x2144,0x2965,0x31a6,0x2986,0x2966,0x2144,0x2145,0x2945,0x2986,0x31a6,0x2985,0x3186,0x18c2,0x18a2,0x18a3,0x10a2,0x18a3,0x2104,0x18c3,0x18c3,0x18c3,0x10a2,0x18a2,0x1082,0x1082,0x18c3,0x18e3,0x2124,0x2124,0x2124,0x2124,0x1904,0x1924,0x1924,0x18e3,0x2124,0x2124,0x2124,0x2124,0x1903,0x18e3,0x18e3,0x1082,0x10a2,0x10a2,0x18c3,0x2104,0x18c2,0x10a2,0x1082,0x1082,0x18e3,0x2104,0x3164,0x2944,0x2104,0x3144,0x2924,0x2124,0x2104,0x2124,0x2924,0x3164,0x2945,0x2124,0x2103,0x2104,0x2104,0x18e3,0x10a2,0x18e3,0x20e3,0x2104,0x18c3,0x18c3,0x0841,0x18e3,0x2124,0x3185,0x3165,0x2945,0x2924,0x2124,0x2924,0x2124,0x2124,0x2124,0x2124,0x2124,0x2945,0x2944,0x20e3,0x18e3,0x2103,0x18c3,0x10a2,0x18a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x4207,0x62c9,0x2945,0x2145,0x2945,0x2965,0x2945,0x2945,0x2945,0x2945,0x2966,0x2945,0x2945,0x2985,0x2965,0x2965,0x2965,0x2945,0x2945,0x2144,0x3186,0x2986,0x2965,0x2965,0x2965,0x2945,0x31a6,0x2945,0x3185,0x2965,0x2124,0x2145,0x2986,0x2145,0x2965,0x2945,0x2145,0x2145,0x2145,0x2945,0x2124,0x2124,0x2945,0x2965,0x2144,0x2104,0x2945,0x2145,0x2945,0x2144,0x2945,0x2965,0x2945,0x2965,0x2124,0x2965,0x2945,0x2144,0x2965,0x2124,0x2965,0x2124,0x2124,0x2144,0x2145,0x2945,0x2124,0x2145,0x2124,0x18e3,0x2124,0x2145,0x2145,0x2145,0x2145,0x2144,0x1904,0x2124,0x2124,0x2124,0x2104,0x1903,0x2104,0x2104,0x2965,0x2145,0x2144,0x2145,0x2144,0x2145,0x2124,0x1924,0x10e3,0x2165,0x2124,0x1903,0x1904,0x1904,0x1904,0x18e3,0x2104,0x1903,0x2104,0x2124,0x2945,0x1904,0x1904,0x2124,0x1903,0x1904,0x1904,0x1903,0x2104, +0x18e3,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x1904,0x18e3,0x2104,0x2104,0x18e4,0x2104,0x1904,0x18e4,0x1904,0x2104,0x2104,0x2124,0x2124,0x2124,0x2124,0x2145,0x2965,0x2965,0x2985,0x2144,0x1924,0x2124,0x2124,0x1904,0x2124,0x2965,0x3186,0x2124,0x2125,0x2125,0x2124,0x2945,0x2965,0x2965,0x2124,0x1904,0x1904,0x1904,0x2125,0x2966,0x2986,0x2965,0x2145,0x2124,0x2945,0x2985,0x2985,0x2986,0x2965,0x2124,0x2124,0x2124,0x2965,0x2965,0x2965,0x2165,0x2145,0x2144,0x2145,0x2985,0x2945,0x2965,0x2965,0x2966,0x3186,0x2945,0x2966,0x31a6,0x2986,0x2985,0x2965,0x2124,0x2965,0x2986,0x2986,0x2144,0x2965,0x2144,0x2145,0x2966,0x2166,0x2165,0x2965,0x2165,0x2985,0x2986,0x31a6,0x31a6,0x2986,0x29a6,0x29a6,0x31c7,0x31a6,0x31c7,0x31c6,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x2985,0x2985,0x31c6,0x2985,0x2965,0x2145,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x18c3,0x18c2,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x18a2,0x1944,0x21a6,0x2144,0x21a6,0x21a6,0x2145,0x21a6,0x21a6,0x2145,0x21a6,0x21c6,0x2145,0x2185,0x1944,0x18e3,0x18e3,0x1082,0x10a2,0x10a2,0x18c3,0x2124,0x18c3,0x10a2,0x1082,0x1082,0x18c3,0x39a4,0x6b04,0x62c3,0x4a04,0x62e4,0x5a64,0x41c4,0x41e4,0x4a05,0x5264,0x6ae4,0x41c4,0x41e4,0x4a03,0x2123,0x2104,0x18e3,0x10a2,0x18c3,0x18e3,0x2104,0x18c3,0x18c3,0x0841,0x18e3,0x2124,0x3965,0x5185,0x3944,0x3145,0x4965,0x3145,0x4145,0x4165,0x2945,0x3965,0x3965,0x3965,0x4165,0x28e3,0x2103,0x20e3,0x18a2,0x10a2,0x10a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c2,0x18c3,0x18c3,0x3985,0x6227,0x3186,0x2965,0x2986,0x31a6,0x31a6,0x2966,0x2966,0x2986,0x2986,0x31a6,0x2986,0x2965,0x31a6,0x2986,0x3186,0x2965,0x2965,0x2965,0x3186,0x2945,0x2965,0x2965,0x2965,0x2145,0x31a6,0x2965,0x2145,0x2124,0x2145,0x2145,0x2965,0x31a6,0x2986,0x2945,0x2145,0x2145,0x2965,0x2965,0x2145,0x2145,0x2965,0x2145,0x2144,0x2144,0x2124,0x2965,0x2985,0x2145,0x2144,0x2965,0x2965,0x2945,0x2945,0x2945,0x2124,0x2124,0x2986,0x2145,0x2144,0x2145,0x2965,0x2145,0x2965,0x2145,0x2945,0x2965,0x2945,0x2124,0x2124,0x2144,0x2124,0x2945,0x2145,0x2124,0x2124,0x2124,0x1904,0x2104,0x18e3,0x2104,0x18e3,0x1904,0x1904,0x2124,0x2124,0x1904,0x2144,0x2144,0x1924,0x1904,0x1904,0x1904,0x18e3,0x18e3,0x2124,0x2124,0x2104,0x18e3,0x2104,0x1904,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2104,0x1903,0x1903,0x18e3,0x1904,0x18e4, +0x18c3,0x18e3,0x2124,0x2104,0x1903,0x18e3,0x1903,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x1904,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2124,0x2144,0x2124,0x1904,0x2124,0x2145,0x2125,0x2125,0x2124,0x1904,0x18e3,0x1904,0x1904,0x2124,0x1904,0x2145,0x2965,0x2145,0x2125,0x2945,0x2966,0x2965,0x2965,0x3185,0x2165,0x2124,0x2145,0x2125,0x2125,0x2945,0x2945,0x2966,0x2966,0x2165,0x2965,0x2986,0x2965,0x2986,0x2985,0x2145,0x2165,0x2145,0x29a6,0x29a6,0x31a6,0x2145,0x2965,0x2965,0x2145,0x2965,0x2965,0x2965,0x31a6,0x31c7,0x31c7,0x2965,0x2986,0x31a6,0x3186,0x2165,0x2986,0x2965,0x2165,0x31a6,0x2986,0x2145,0x2985,0x29a6,0x2986,0x2986,0x2986,0x2965,0x2145,0x2165,0x31a6,0x3186,0x2985,0x31a6,0x2965,0x2965,0x2986,0x31a6,0x2985,0x2966,0x31c7,0x3186,0x31a6,0x39e7,0x2965,0x2986,0x31a6,0x31a6,0x31a6,0x31e7,0x31a6,0x2986,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x2104,0x18c3,0x18c2,0x18a2,0x10a2,0x10a2,0x1081,0x1082,0x10a2,0x1924,0x21c6,0x2145,0x2186,0x21a6,0x2165,0x21e7,0x2207,0x21a5,0x21e7,0x21e7,0x2165,0x2185,0x1964,0x18e3,0x18e3,0x1082,0x10a2,0x18c2,0x18e3,0x2124,0x18e3,0x18a2,0x0861,0x1082,0x18c3,0x5264,0x83c3,0x7ba3,0x6304,0x7b84,0x83a4,0x62c4,0x5aa4,0x6b25,0x6b04,0x83a3,0x4a04,0x7b64,0x5a62,0x2103,0x2104,0x18e3,0x10a2,0x18c3,0x18c2,0x2124,0x18c3,0x18c3,0x0841,0x18e3,0x2124,0x5965,0x7185,0x5165,0x5185,0x6985,0x4165,0x6185,0x5965,0x4165,0x69a6,0x51a6,0x4985,0x6185,0x2903,0x18e3,0x18e3,0x10a2,0x1082,0x10a2,0x18e3,0x20e3,0x20e3,0x18c3,0x18c3,0x18c3,0x18c3,0x3124,0x6184,0x31a7,0x2966,0x2965,0x2986,0x3186,0x2945,0x2965,0x2986,0x2986,0x31a6,0x2986,0x2966,0x2966,0x2986,0x31a6,0x3186,0x2945,0x3186,0x31a6,0x2965,0x3186,0x2965,0x1924,0x2986,0x2986,0x2124,0x2124,0x2124,0x2145,0x2165,0x2986,0x2986,0x2145,0x2945,0x2945,0x2945,0x2165,0x2165,0x2966,0x2124,0x1904,0x2125,0x2125,0x2945,0x2945,0x2124,0x2124,0x2945,0x2124,0x2145,0x2965,0x2144,0x2965,0x2965,0x2165,0x1924,0x1904,0x2145,0x2144,0x2965,0x2986,0x2124,0x2965,0x2145,0x2125,0x2125,0x2945,0x2124,0x2965,0x2145,0x2124,0x2124,0x2124,0x2144,0x2124,0x18e3,0x2104,0x2124,0x2124,0x2945,0x18c3,0x18e3,0x18e3,0x2104,0x1903,0x1904,0x2124,0x18e3,0x1904,0x1904,0x1904,0x18e3,0x1903,0x2124,0x2124,0x2104,0x2124,0x1904,0x18e4,0x18e4,0x18e3,0x1903,0x2104,0x2124,0x1903,0x2124,0x2124,0x10c3,0x10c3,0x18e3,0x2104, +0x1904,0x18e3,0x18e3,0x2104,0x18e3,0x18e3,0x1904,0x18e3,0x18e3,0x18e3,0x1903,0x1904,0x18e4,0x18e4,0x18e4,0x18e4,0x18e3,0x18e3,0x18e3,0x1904,0x2104,0x1904,0x2145,0x2124,0x1904,0x1904,0x1904,0x1904,0x1904,0x2125,0x2124,0x2124,0x2124,0x2124,0x1904,0x1904,0x2145,0x2125,0x2145,0x2145,0x2144,0x2124,0x2165,0x2965,0x2124,0x2124,0x2124,0x2144,0x2145,0x2125,0x2986,0x2145,0x2145,0x2966,0x2145,0x2145,0x2145,0x2145,0x2985,0x2965,0x2986,0x2145,0x2965,0x31a6,0x2945,0x2125,0x2145,0x2945,0x2945,0x2125,0x2966,0x3186,0x2966,0x2945,0x2986,0x2986,0x31a6,0x31a6,0x2966,0x2965,0x2145,0x2966,0x2965,0x2165,0x2124,0x2144,0x2966,0x2966,0x2965,0x31a6,0x2985,0x2165,0x29a6,0x2986,0x2986,0x2966,0x2945,0x2965,0x2965,0x2985,0x2985,0x31a6,0x3186,0x31a6,0x2966,0x2986,0x31c7,0x2986,0x2966,0x2986,0x31a6,0x2966,0x4228,0x39e7,0x2965,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x2124,0x18c2,0x18a2,0x18a2,0x10a2,0x10a2,0x1081,0x1082,0x10a2,0x2124,0x21e6,0x2165,0x2145,0x2185,0x2165,0x21c6,0x21c6,0x21a5,0x21c6,0x29a6,0x2165,0x2164,0x1944,0x20e3,0x18e3,0x1082,0x10a2,0x18c2,0x18e3,0x2104,0x18e3,0x18c2,0x0861,0x1082,0x18c3,0x5aa4,0x6b44,0x4223,0x6324,0x6b24,0x7bc5,0x6304,0x7b63,0x7ba4,0x62c3,0x83e3,0x62c3,0x83c3,0x5a82,0x2103,0x18e3,0x2103,0x18c2,0x18c3,0x18c3,0x2124,0x18c3,0x18e3,0x0841,0x18e3,0x2124,0x5985,0x6185,0x6185,0x6185,0x7185,0x4165,0x5165,0x7185,0x5985,0x79e6,0x59c6,0x4986,0x6985,0x2903,0x18e3,0x18e3,0x18c2,0x10a2,0x10a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x3124,0x6164,0x3186,0x2986,0x2966,0x2966,0x3186,0x2966,0x2966,0x31a6,0x2986,0x2986,0x29a6,0x2966,0x2145,0x2986,0x2965,0x2965,0x2985,0x31a6,0x2145,0x2965,0x31a6,0x31a6,0x2145,0x2945,0x2965,0x2965,0x2925,0x2124,0x2945,0x2945,0x31a6,0x2145,0x2125,0x2986,0x39c7,0x2124,0x2945,0x2945,0x2124,0x2124,0x2124,0x2124,0x2124,0x1904,0x3186,0x2965,0x2145,0x2965,0x3186,0x2985,0x2986,0x2145,0x2145,0x2145,0x2124,0x2124,0x2145,0x2145,0x2986,0x2144,0x2124,0x2124,0x2965,0x2145,0x2125,0x2125,0x2125,0x2965,0x2124,0x2145,0x2945,0x2965,0x2124,0x2965,0x2985,0x1904,0x2104,0x18e4,0x2945,0x2945,0x18e3,0x2104,0x1904,0x2124,0x2124,0x2104,0x18e3,0x18e3,0x2124,0x1904,0x1904,0x1903,0x2104,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x1903,0x1904,0x2145,0x18e3,0x1904,0x1903,0x18e3,0x18e3,0x2104,0x2104, +0x1903,0x1903,0x1903,0x2104,0x2104,0x2124,0x18e3,0x1904,0x1903,0x1904,0x18e3,0x1904,0x2124,0x1904,0x2104,0x18e3,0x18e3,0x1904,0x18e3,0x18e3,0x1904,0x1904,0x2124,0x2124,0x1904,0x1904,0x18e4,0x18e4,0x18e4,0x2965,0x2986,0x2125,0x2965,0x2124,0x2145,0x2124,0x2124,0x2145,0x2965,0x2124,0x2124,0x2985,0x2965,0x2125,0x2966,0x2986,0x2104,0x2945,0x2965,0x3186,0x3186,0x2965,0x2124,0x2966,0x2145,0x2145,0x2145,0x2965,0x2965,0x2965,0x2966,0x2945,0x2966,0x3186,0x2966,0x2945,0x2966,0x2966,0x2945,0x2125,0x2966,0x2966,0x2966,0x2966,0x2145,0x2966,0x2986,0x2966,0x2966,0x2966,0x2145,0x2965,0x2965,0x2965,0x2965,0x2124,0x2965,0x31a6,0x2986,0x2985,0x2145,0x2965,0x29a6,0x2145,0x2966,0x3186,0x2986,0x3186,0x2965,0x2965,0x2985,0x2985,0x31a6,0x31a6,0x3186,0x31a7,0x31a7,0x31a7,0x2986,0x2986,0x2966,0x31a6,0x31e7,0x31a6,0x2985,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x2104,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x0861,0x1082,0x10a2,0x1924,0x2165,0x2124,0x2104,0x1924,0x2124,0x2145,0x2144,0x2144,0x2145,0x2145,0x2145,0x2144,0x1904,0x2104,0x18e3,0x10a2,0x10a2,0x18c2,0x18e3,0x2124,0x18e3,0x18c2,0x0861,0x10a2,0x18e3,0x39c4,0x4204,0x2944,0x4225,0x4204,0x4a65,0x4204,0x6304,0x5ac4,0x4224,0x6304,0x4203,0x4a64,0x5263,0x2923,0x18e3,0x18e3,0x18c2,0x18e3,0x18e3,0x2124,0x18e3,0x18c3,0x0841,0x18e3,0x2124,0x4165,0x4165,0x4965,0x4145,0x5985,0x4145,0x4965,0x6185,0x4165,0x59a6,0x51a6,0x3986,0x5185,0x20e3,0x20e3,0x18e3,0x18c3,0x10a2,0x10a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x2903,0x6164,0x2986,0x29a6,0x2986,0x2986,0x2966,0x2945,0x2125,0x2945,0x2966,0x2965,0x2986,0x2986,0x2965,0x2965,0x2945,0x2965,0x3186,0x2945,0x2945,0x2145,0x2965,0x31c6,0x2945,0x31c7,0x31c6,0x2985,0x2965,0x2144,0x2965,0x2965,0x2985,0x2945,0x2124,0x2104,0x2965,0x2945,0x2945,0x2965,0x2124,0x2124,0x2144,0x2124,0x2965,0x2125,0x2945,0x2966,0x2124,0x3186,0x2945,0x2145,0x2945,0x2985,0x2945,0x2145,0x2144,0x2124,0x2985,0x2145,0x2145,0x2124,0x2124,0x2124,0x2145,0x2945,0x2124,0x2124,0x2965,0x2145,0x2124,0x1903,0x2124,0x2145,0x2124,0x2965,0x2965,0x2124,0x2125,0x2104,0x2125,0x2104,0x2104,0x2104,0x1904,0x2986,0x2124,0x1903,0x1904,0x1924,0x2165,0x1924,0x1924,0x2144,0x2124,0x2104,0x1904,0x2124,0x2124,0x1904,0x1904,0x2124,0x2124,0x1904,0x2144,0x2124,0x1904,0x1904,0x18e3,0x18e3,0x1904,0x2104,0x20e4, +0x18e3,0x18e3,0x2124,0x2124,0x2124,0x2124,0x1904,0x1904,0x18e3,0x18e3,0x1904,0x1903,0x2124,0x1903,0x1904,0x1903,0x18e3,0x1904,0x1904,0x1903,0x1904,0x1904,0x1904,0x2125,0x1904,0x1904,0x2104,0x1904,0x18e3,0x1904,0x2124,0x2125,0x2965,0x2125,0x2124,0x2945,0x2124,0x2124,0x2965,0x2124,0x2945,0x2945,0x2145,0x2145,0x2965,0x2965,0x2124,0x2945,0x2124,0x2965,0x31a6,0x2945,0x2104,0x2145,0x2145,0x2124,0x2124,0x2965,0x2945,0x2966,0x31a6,0x2986,0x2965,0x2986,0x2966,0x2965,0x2986,0x2986,0x2965,0x2965,0x2945,0x2125,0x2965,0x2986,0x2966,0x2965,0x31a6,0x2145,0x2125,0x31a6,0x31c7,0x2986,0x2986,0x2124,0x2965,0x2965,0x2145,0x29a6,0x31c7,0x2165,0x2145,0x2165,0x29a6,0x29a6,0x2965,0x2985,0x2985,0x2965,0x2986,0x31a6,0x31a6,0x29a6,0x31a6,0x31a7,0x2986,0x2986,0x31a6,0x2986,0x31a6,0x31a6,0x2145,0x2986,0x31a7,0x31a6,0x2986,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x2103,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x0861,0x1082,0x18c3,0x2104,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2124,0x2124,0x2125,0x2144,0x2124,0x18e3,0x18e3,0x18e3,0x10a2,0x10a2,0x18c2,0x18e3,0x2945,0x18c3,0x18c2,0x0861,0x10a2,0x20e3,0x2944,0x2965,0x2944,0x2965,0x2944,0x2964,0x2944,0x31a4,0x3184,0x2964,0x3184,0x2944,0x2944,0x2943,0x2103,0x2103,0x18e3,0x18c2,0x18c3,0x18c3,0x2144,0x2104,0x18c3,0x0841,0x18e3,0x2124,0x3145,0x2945,0x2945,0x2924,0x3145,0x2925,0x3145,0x3145,0x2924,0x3145,0x3185,0x3165,0x3165,0x20e3,0x2103,0x2103,0x18c3,0x10a2,0x10a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x2903,0x5964,0x2986,0x29a6,0x2986,0x2985,0x2986,0x2965,0x2986,0x2966,0x2986,0x2985,0x2985,0x2965,0x2986,0x2965,0x2124,0x2945,0x3186,0x3186,0x2966,0x2125,0x3186,0x3186,0x31c6,0x31c6,0x29a6,0x2985,0x2985,0x2124,0x2965,0x2986,0x31a6,0x2124,0x2945,0x2145,0x2165,0x2165,0x2124,0x2986,0x2985,0x2124,0x2945,0x2965,0x2965,0x2966,0x2966,0x2125,0x2986,0x2945,0x2945,0x2945,0x2965,0x2965,0x2945,0x2965,0x2965,0x2124,0x2124,0x2124,0x2145,0x2145,0x2124,0x2144,0x1904,0x2104,0x2124,0x2124,0x2965,0x2124,0x2124,0x2124,0x2124,0x2965,0x2145,0x2104,0x2124,0x2124,0x2124,0x2124,0x1903,0x2124,0x1904,0x2124,0x2945,0x2144,0x2104,0x2104,0x2124,0x2145,0x1924,0x2124,0x2145,0x2124,0x1904,0x1904,0x2124,0x2124,0x1924,0x2124,0x1904,0x1904,0x18e4,0x1904,0x2124,0x2124,0x2104,0x2104,0x2124,0x18e3,0x2144,0x2945,0x18e3, +0x1903,0x1904,0x2104,0x1903,0x2104,0x2104,0x1904,0x1903,0x1903,0x1904,0x2104,0x18e3,0x18e3,0x18e3,0x1904,0x1904,0x2124,0x1903,0x18e3,0x18e3,0x18e3,0x1904,0x2124,0x2124,0x2145,0x2124,0x2124,0x2124,0x2104,0x1904,0x1904,0x1904,0x2124,0x2125,0x2124,0x2965,0x2145,0x2124,0x2144,0x2965,0x2985,0x2124,0x2965,0x2945,0x2965,0x2965,0x2145,0x2124,0x2144,0x2965,0x2965,0x2945,0x2125,0x2125,0x2965,0x2986,0x2145,0x2145,0x2986,0x31a6,0x2986,0x2965,0x2145,0x2965,0x2165,0x2165,0x2985,0x2986,0x2965,0x2945,0x2945,0x2945,0x3186,0x3186,0x29a6,0x2986,0x2965,0x31a7,0x2966,0x2986,0x31a6,0x2985,0x2986,0x2945,0x2945,0x2966,0x2165,0x2165,0x2966,0x2966,0x2966,0x2986,0x31c7,0x31c6,0x29a6,0x2965,0x3186,0x2966,0x31a7,0x31c7,0x2986,0x31a6,0x39e7,0x31a6,0x2985,0x2965,0x31c6,0x39e7,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x2966,0x1082,0x1082,0x1082,0x1082,0x10a2,0x20e3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1061,0x1082,0x18c3,0x2104,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2945,0x2944,0x2124,0x18e3,0x2103,0x18e3,0x10a2,0x10a2,0x18a2,0x18c3,0x2945,0x18c3,0x18c2,0x0861,0x10a2,0x2103,0x2944,0x2945,0x2945,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2124,0x18e3,0x2104,0x2103,0x18e3,0x18c2,0x18c3,0x18c2,0x2944,0x18e3,0x20e3,0x0841,0x18c3,0x2124,0x2944,0x2965,0x2965,0x2944,0x2945,0x2925,0x2924,0x2124,0x2124,0x2945,0x2945,0x2965,0x2965,0x2104,0x2104,0x2104,0x18e3,0x10a2,0x10a2,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x2903,0x5964,0x3186,0x2965,0x2965,0x2986,0x2145,0x31a6,0x29a6,0x31c6,0x31c7,0x2965,0x2985,0x2985,0x2965,0x2965,0x2965,0x2965,0x2965,0x29a6,0x2986,0x29a6,0x29a6,0x2165,0x29a6,0x2185,0x2144,0x29a6,0x2986,0x2945,0x2965,0x2145,0x2945,0x2945,0x2165,0x2165,0x2145,0x2165,0x2144,0x2986,0x2965,0x2104,0x2925,0x2945,0x2145,0x2965,0x2965,0x2945,0x2965,0x2965,0x2965,0x2124,0x2945,0x2945,0x2965,0x2965,0x2945,0x2945,0x2145,0x2986,0x2965,0x2965,0x2124,0x2985,0x2945,0x2124,0x2965,0x2124,0x1924,0x2124,0x2145,0x2965,0x2124,0x2165,0x2145,0x2124,0x2145,0x2124,0x2965,0x2104,0x2124,0x2104,0x2945,0x2145,0x2104,0x2124,0x2104,0x2104,0x2124,0x2124,0x18e4,0x2104,0x2145,0x1904,0x2124,0x1904,0x2124,0x2124,0x2124,0x1904,0x1904,0x2124,0x2125,0x2125,0x2104,0x18e3,0x1903,0x2124,0x2104,0x2104,0x2124,0x2104,0x18e3, +0x2104,0x2104,0x2124,0x2104,0x2104,0x1903,0x2104,0x2124,0x1904,0x1904,0x1903,0x18e3,0x18e3,0x1904,0x2124,0x2104,0x2104,0x2124,0x2124,0x1904,0x1904,0x1904,0x2145,0x31a6,0x2125,0x2145,0x2145,0x2124,0x2104,0x2104,0x1904,0x2104,0x1904,0x2104,0x2945,0x2945,0x2124,0x2945,0x2965,0x2965,0x2965,0x2145,0x29a6,0x2985,0x2124,0x2945,0x2945,0x2125,0x2125,0x2965,0x2965,0x2945,0x2125,0x2945,0x2986,0x2986,0x2986,0x2966,0x2986,0x2986,0x2965,0x2145,0x2966,0x2965,0x2165,0x2985,0x2985,0x2944,0x2965,0x2965,0x2965,0x3186,0x39c7,0x2966,0x29a6,0x29a6,0x2966,0x31a6,0x31a6,0x2965,0x31a6,0x2986,0x2124,0x2965,0x2966,0x2966,0x2966,0x2945,0x2966,0x2986,0x2986,0x31c7,0x31e7,0x31a6,0x2986,0x31a6,0x2966,0x31a7,0x2986,0x2966,0x2145,0x2986,0x31e7,0x31c7,0x2986,0x31a6,0x31c6,0x31a6,0x3186,0x2965,0x31a6,0x31e7,0x29a6,0x31a6,0x2966,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x0861,0x1082,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c2,0x10a2,0x18c3,0x18c3,0x18c3,0x2124,0x18c3,0x18c3,0x0861,0x0861,0x10a2,0x2103,0x2124,0x2124,0x1903,0x18e3,0x18e3,0x1903,0x1903,0x2104,0x2103,0x2103,0x2124,0x2124,0x2103,0x2104,0x18e3,0x2104,0x18c3,0x18c3,0x18e3,0x2124,0x18c3,0x20e3,0x0841,0x10a2,0x2104,0x2124,0x2945,0x2944,0x2124,0x2124,0x2924,0x2924,0x2124,0x2124,0x2924,0x2945,0x2965,0x2965,0x2124,0x2124,0x2924,0x2104,0x10a2,0x10a2,0x18e3,0x18e3,0x20e3,0x18c3,0x18c2,0x18c3,0x18c3,0x2903,0x5164,0x2986,0x2965,0x2965,0x3186,0x31a6,0x2986,0x2165,0x2986,0x2986,0x2965,0x2965,0x31a7,0x2145,0x2986,0x31a6,0x2145,0x2985,0x2985,0x2965,0x31a6,0x2986,0x2965,0x2965,0x2144,0x2165,0x2145,0x2986,0x2965,0x2965,0x2145,0x2945,0x2965,0x2985,0x2144,0x2144,0x2145,0x2145,0x2145,0x2965,0x2124,0x2945,0x2124,0x2945,0x2945,0x2965,0x2965,0x2945,0x2985,0x2965,0x2965,0x2944,0x2145,0x2145,0x2124,0x2145,0x2945,0x2145,0x2145,0x29a6,0x2985,0x2165,0x2145,0x2125,0x2945,0x2945,0x2125,0x2124,0x2965,0x2965,0x2965,0x2165,0x2145,0x2124,0x2124,0x2145,0x2144,0x2124,0x2124,0x2145,0x1904,0x2124,0x2124,0x2125,0x2125,0x2104,0x2124,0x2104,0x1904,0x2124,0x2124,0x2124,0x2124,0x2124,0x1904,0x1904,0x1904,0x2124,0x2124,0x1924,0x1904,0x2125,0x2925,0x1904,0x2104,0x2124,0x2104,0x18e4,0x1904,0x2145,0x2125,0x1904, +0x18e3,0x1904,0x2104,0x2124,0x2124,0x2104,0x1904,0x2124,0x1904,0x1924,0x1924,0x1903,0x18e3,0x1904,0x2145,0x1904,0x18e3,0x2144,0x2124,0x2125,0x1904,0x1924,0x2145,0x2965,0x2145,0x2965,0x2124,0x2124,0x1903,0x2124,0x2104,0x2124,0x2145,0x2145,0x1904,0x2124,0x2144,0x2965,0x39e7,0x2985,0x2165,0x2145,0x2144,0x2145,0x2124,0x2104,0x2124,0x2945,0x2945,0x2966,0x31a7,0x2145,0x2125,0x2145,0x2165,0x2965,0x31a6,0x2986,0x31c7,0x2965,0x2145,0x2145,0x2965,0x31a6,0x2986,0x2144,0x31a6,0x31a6,0x2965,0x3186,0x2986,0x3186,0x31a7,0x2966,0x2965,0x2965,0x2165,0x2145,0x31a6,0x2965,0x2965,0x2986,0x2965,0x3186,0x2986,0x2966,0x2945,0x2966,0x2966,0x2965,0x2986,0x31e7,0x39e7,0x4248,0x31c6,0x3186,0x2966,0x2965,0x2945,0x2966,0x2986,0x2986,0x31e7,0x29a6,0x2965,0x31a6,0x3186,0x2965,0x39e7,0x3186,0x2986,0x29a6,0x31c7,0x3a08,0x31a6,0x1082,0x1082,0x1082,0x1082,0x18c3,0x2103,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x0861,0x0861,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18e3,0x18c3,0x2104,0x18c3,0x18c3,0x0861,0x0841,0x0861,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x18e3,0x18c3,0x18c3,0x18c3,0x2103,0x18c3,0x18c3,0x0841,0x0861,0x1082,0x18c2,0x18c3,0x18c3,0x18c2,0x10a2,0x18c3,0x18c3,0x18c2,0x18c2,0x18c3,0x18e3,0x18e3,0x2103,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18a2,0x18c3,0x18c3,0x2103,0x5164,0x2965,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x2985,0x2986,0x31a6,0x31a6,0x2966,0x2945,0x2986,0x2985,0x31a6,0x31a6,0x2965,0x2124,0x3165,0x2965,0x2965,0x2965,0x2125,0x2145,0x2965,0x2965,0x2145,0x2144,0x2965,0x2945,0x2965,0x2965,0x2144,0x2144,0x2165,0x2145,0x2965,0x2985,0x2965,0x3186,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2124,0x2965,0x2945,0x2145,0x2145,0x2145,0x2145,0x2145,0x2145,0x2985,0x2144,0x1945,0x2165,0x2145,0x2145,0x2945,0x2125,0x2125,0x2986,0x31c7,0x2965,0x2145,0x2165,0x2165,0x2145,0x2145,0x2124,0x2965,0x1904,0x2145,0x2985,0x1904,0x2125,0x2104,0x2125,0x2966,0x2145,0x2104,0x2104,0x2104,0x2124,0x2124,0x1904,0x2104,0x2144,0x2124,0x1904,0x18e3,0x1903,0x1924,0x1924,0x1904,0x2945,0x2945,0x2104,0x2125,0x2125,0x2104,0x2104,0x18e3,0x1904,0x1904,0x2104, +0x1903,0x18e3,0x18e3,0x18e3,0x18e3,0x1904,0x1904,0x1904,0x1924,0x2124,0x1904,0x1904,0x1904,0x1904,0x1904,0x2104,0x18e3,0x18e3,0x2104,0x2125,0x2124,0x1924,0x2124,0x1904,0x2145,0x2145,0x1904,0x2124,0x2945,0x2945,0x2145,0x2124,0x2145,0x2145,0x2144,0x2124,0x2124,0x2965,0x2965,0x2144,0x2144,0x2124,0x2104,0x2124,0x2965,0x2986,0x2144,0x2986,0x2965,0x2145,0x2145,0x2965,0x2165,0x2965,0x2965,0x29a6,0x2145,0x2125,0x2986,0x2985,0x2965,0x2986,0x2145,0x2985,0x2965,0x2124,0x2986,0x2986,0x2986,0x3186,0x2965,0x2945,0x2966,0x2986,0x2966,0x2986,0x2985,0x2145,0x2945,0x2145,0x2965,0x3186,0x3186,0x2985,0x3186,0x3186,0x2986,0x2965,0x2965,0x2986,0x29a6,0x31a6,0x2986,0x31c7,0x31a6,0x3186,0x2986,0x39c7,0x3186,0x2965,0x2986,0x2145,0x31c7,0x31c6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x39c7,0x39e7,0x31a6,0x2966,0x39e8,0x39c7,0x1082,0x1082,0x1082,0x1082,0x18c3,0x2103,0x1082,0x10a2,0x18e3,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c2,0x10a2,0x10a2,0x18c3,0x18a2,0x18a2,0x1061,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x20e3,0x18e3,0x18a3,0x18c3,0x18c3,0x2103,0x5164,0x2965,0x31a6,0x31a6,0x3186,0x31a6,0x3186,0x31a6,0x2965,0x2986,0x2965,0x2965,0x2965,0x2965,0x2986,0x2965,0x2985,0x31c7,0x2124,0x2965,0x2986,0x2945,0x3186,0x3186,0x2945,0x2124,0x2965,0x2985,0x2986,0x2965,0x31c6,0x2985,0x2985,0x2985,0x2985,0x2986,0x2145,0x2986,0x2965,0x2965,0x2965,0x31a6,0x3186,0x31a6,0x2965,0x2165,0x2986,0x2124,0x2965,0x2945,0x2965,0x2124,0x2945,0x2144,0x2125,0x2145,0x2145,0x2965,0x3186,0x2144,0x2985,0x31a6,0x2965,0x2965,0x2145,0x2145,0x2965,0x2945,0x2945,0x2965,0x2145,0x2124,0x2124,0x2145,0x2125,0x2125,0x2145,0x2125,0x2124,0x2145,0x1904,0x1924,0x1924,0x2124,0x2945,0x2104,0x2145,0x2124,0x2124,0x2125,0x2124,0x1904,0x1904,0x2144,0x2144,0x2104,0x1904,0x2124,0x2124,0x2104,0x18e3,0x2104,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x1904,0x1904,0x1904,0x2986, +0x1903,0x1904,0x2104,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x2124,0x1904,0x1903,0x1904,0x1904,0x2104,0x2124,0x2144,0x1924,0x1924,0x2124,0x2145,0x2125,0x2104,0x2124,0x2145,0x2965,0x2124,0x2124,0x2945,0x2965,0x2124,0x2965,0x2965,0x2965,0x2124,0x2124,0x2145,0x2145,0x2965,0x2965,0x2945,0x2965,0x2986,0x2124,0x2145,0x2124,0x2145,0x2165,0x2144,0x2965,0x2965,0x2966,0x3186,0x2965,0x2945,0x2966,0x2965,0x2965,0x2965,0x2965,0x2145,0x2965,0x2165,0x2145,0x2165,0x2986,0x2986,0x2986,0x2965,0x2965,0x2985,0x2985,0x2165,0x29a6,0x2965,0x2145,0x2965,0x2985,0x2985,0x2985,0x2965,0x3186,0x3186,0x2965,0x2145,0x2145,0x2986,0x2986,0x2986,0x2965,0x2986,0x31a6,0x2986,0x2965,0x2986,0x2986,0x2986,0x2986,0x31c7,0x31a6,0x31a6,0x31a6,0x31a6,0x2965,0x31c7,0x2986,0x39c7,0x31a7,0x31c7,0x31a7,0x2986,0x31a6,0x10a2,0x1082,0x1082,0x1082,0x18c3,0x18e3,0x1082,0x10a2,0x2945,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x10a2,0x18c3,0x18c3,0x2104,0x5164,0x2965,0x31a6,0x2965,0x3186,0x31a6,0x3186,0x2966,0x3186,0x2985,0x3186,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2985,0x2965,0x2965,0x31a6,0x2965,0x2965,0x2965,0x2945,0x2966,0x2945,0x2945,0x2965,0x2145,0x2965,0x2985,0x2945,0x2985,0x2185,0x29a6,0x2985,0x31c7,0x31a6,0x31c7,0x2145,0x2965,0x2986,0x2945,0x2104,0x2124,0x2144,0x2124,0x2144,0x2145,0x2945,0x4208,0x2965,0x2144,0x2965,0x2966,0x2145,0x2124,0x2165,0x2145,0x29a6,0x31c6,0x2145,0x2965,0x31a6,0x2965,0x2144,0x2144,0x2965,0x2145,0x2145,0x2124,0x2145,0x2145,0x2145,0x2124,0x2145,0x3186,0x2124,0x2945,0x2124,0x2144,0x2145,0x2145,0x2945,0x2124,0x2945,0x2145,0x18e4,0x2124,0x2124,0x18e4,0x2124,0x2945,0x2124,0x2124,0x2104,0x2104,0x2124,0x2124,0x2104,0x1904,0x2124,0x2104,0x2124,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2145, +0x18e3,0x2124,0x2124,0x18e3,0x1904,0x18e4,0x1904,0x2124,0x18e3,0x18e3,0x1904,0x2124,0x2124,0x1904,0x2124,0x2124,0x2145,0x2124,0x2124,0x2124,0x2124,0x2104,0x1904,0x2124,0x2124,0x2124,0x2145,0x2124,0x2124,0x2124,0x2104,0x2945,0x2965,0x2144,0x2144,0x2145,0x2965,0x2124,0x2124,0x2145,0x2145,0x2945,0x2965,0x2945,0x2145,0x2144,0x2124,0x2145,0x2965,0x2124,0x2144,0x2965,0x2965,0x2985,0x2185,0x2125,0x2945,0x2986,0x2966,0x2125,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2145,0x2965,0x2986,0x31a6,0x2986,0x2965,0x2145,0x2965,0x2965,0x2965,0x31a6,0x31c7,0x2965,0x2965,0x2965,0x2965,0x2145,0x2965,0x31a6,0x31a6,0x2145,0x3186,0x2986,0x2986,0x2945,0x2145,0x2986,0x31a6,0x2986,0x2986,0x2965,0x2966,0x31a6,0x2986,0x31a7,0x2966,0x2165,0x2965,0x2966,0x2986,0x31a6,0x3186,0x39c7,0x2966,0x3186,0x31c7,0x31a7,0x31a6,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x1082,0x2104,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x18e3,0x2965,0x18c3,0x18e3,0x18e3,0x10a2,0x18c3,0x18a3,0x2103,0x4964,0x31c6,0x2965,0x2986,0x2985,0x2965,0x2945,0x2966,0x3186,0x3186,0x31a6,0x31c7,0x2945,0x2945,0x2965,0x2965,0x2965,0x2986,0x31a6,0x31a6,0x31a6,0x2966,0x2965,0x2965,0x2965,0x3186,0x2945,0x2965,0x2985,0x2965,0x2965,0x2144,0x2145,0x2965,0x2985,0x2986,0x2986,0x2145,0x2965,0x2985,0x2965,0x2965,0x31a6,0x2945,0x2124,0x2145,0x2965,0x2145,0x2145,0x2124,0x2145,0x3186,0x2145,0x2145,0x2145,0x2144,0x2145,0x2145,0x2165,0x2145,0x2145,0x2124,0x2145,0x2965,0x2965,0x2965,0x2945,0x2144,0x2945,0x2124,0x2965,0x2965,0x2965,0x2965,0x2124,0x2145,0x2986,0x2986,0x2124,0x2945,0x2144,0x2145,0x2145,0x2125,0x2124,0x18e4,0x2124,0x2145,0x2124,0x2124,0x2124,0x2124,0x2986,0x2104,0x2145,0x2965,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2125,0x2124,0x2145,0x2125,0x2945,0x2145,0x2124,0x2104, +0x2104,0x1903,0x1903,0x1904,0x1904,0x18e4,0x2104,0x2145,0x2104,0x18e3,0x1904,0x1904,0x2145,0x2124,0x1904,0x2124,0x2124,0x1904,0x2145,0x2945,0x2104,0x2124,0x2125,0x2124,0x2124,0x2124,0x2145,0x2145,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2945,0x2145,0x2145,0x2124,0x2124,0x2124,0x2124,0x2145,0x2965,0x2145,0x2124,0x2124,0x2965,0x2965,0x2145,0x2145,0x2124,0x2965,0x2985,0x2985,0x2985,0x31e7,0x2965,0x3186,0x2965,0x2986,0x31a6,0x31a6,0x2985,0x2965,0x2965,0x2965,0x2986,0x2986,0x2965,0x31a6,0x2985,0x2965,0x2145,0x2145,0x2965,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x2145,0x2145,0x2965,0x2965,0x2986,0x31c7,0x31a6,0x2966,0x31a6,0x29a6,0x2986,0x2966,0x2965,0x2965,0x31a6,0x31c7,0x31a6,0x31a6,0x31c7,0x31a6,0x2945,0x2986,0x3186,0x2986,0x2986,0x2986,0x31c7,0x31a6,0x2965,0x31a7,0x3186,0x2965,0x3186,0x39c7,0x31a7,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18e3,0x2104,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18a3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x18a3,0x10a2,0x10a2,0x10a2,0x18c3,0x18a3,0x10a2,0x18a2,0x2945,0x2945,0x18c3,0x18e3,0x10a2,0x18c2,0x18a2,0x20e3,0x4944,0x2986,0x2965,0x2986,0x31a6,0x2986,0x2965,0x2985,0x3186,0x2986,0x2986,0x2985,0x2145,0x2165,0x2965,0x29a6,0x2145,0x2145,0x2986,0x2986,0x2965,0x2966,0x3186,0x2965,0x2965,0x2965,0x2965,0x2986,0x2966,0x2965,0x2965,0x2965,0x31a6,0x2144,0x2965,0x2965,0x2965,0x2945,0x2986,0x3186,0x3186,0x2965,0x2985,0x2945,0x2965,0x2945,0x2985,0x2965,0x2145,0x2145,0x2965,0x2145,0x2965,0x2165,0x2145,0x2165,0x2985,0x2965,0x2144,0x2965,0x2965,0x2965,0x2986,0x2965,0x2965,0x31a6,0x2145,0x2986,0x3186,0x2965,0x31a6,0x2965,0x2965,0x2965,0x2144,0x2945,0x2965,0x2965,0x2965,0x2945,0x2124,0x2125,0x2966,0x2145,0x2125,0x1904,0x2124,0x2125,0x2986,0x2124,0x2124,0x2165,0x2145,0x2145,0x2165,0x2124,0x2124,0x1904,0x2104,0x2124,0x2125,0x2145,0x2125,0x2124,0x2125,0x2104,0x1904,0x2125,0x2145,0x2124,0x1903,0x2124, +0x1904,0x1904,0x1903,0x1904,0x1903,0x1904,0x2124,0x2104,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x1904,0x2124,0x2124,0x2124,0x2145,0x2124,0x2124,0x2145,0x2145,0x2144,0x2945,0x2145,0x2124,0x2145,0x2124,0x2124,0x1904,0x1904,0x2145,0x2144,0x2145,0x2124,0x2965,0x2145,0x2124,0x2124,0x2145,0x2165,0x2165,0x2145,0x1924,0x2124,0x2945,0x2145,0x2124,0x2145,0x2145,0x2125,0x2965,0x2965,0x2965,0x3a08,0x31c7,0x2145,0x2145,0x2985,0x2985,0x2986,0x2986,0x2945,0x2945,0x2965,0x3186,0x2985,0x2965,0x31a6,0x31a6,0x2965,0x2145,0x2966,0x2125,0x2986,0x31a6,0x2965,0x2965,0x2965,0x31a6,0x2965,0x2945,0x2965,0x3186,0x2965,0x2966,0x2965,0x2986,0x2986,0x2986,0x2965,0x2986,0x2965,0x2966,0x2986,0x2986,0x2986,0x2986,0x2966,0x2965,0x3186,0x39c7,0x3186,0x2966,0x2986,0x2986,0x2986,0x3186,0x39c7,0x31a7,0x3186,0x39e7,0x39e7,0x31a6,0x1082,0x1082,0x1082,0x1082,0x10a3,0x18e3,0x2104,0x10c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18e3,0x2966,0x18e3,0x18c3,0x10a2,0x18c2,0x18c2,0x20e3,0x4964,0x31a6,0x2965,0x31a6,0x2986,0x2966,0x2986,0x2965,0x2945,0x2965,0x2945,0x2986,0x2986,0x2986,0x31a6,0x2965,0x2145,0x2145,0x2965,0x2965,0x2986,0x2965,0x2985,0x2965,0x2965,0x2965,0x2966,0x2986,0x2965,0x2145,0x2965,0x2945,0x2965,0x2145,0x2945,0x2965,0x3186,0x2945,0x3186,0x3186,0x2945,0x2965,0x2144,0x2124,0x2124,0x2945,0x2986,0x2965,0x2144,0x2965,0x2965,0x2985,0x2965,0x2145,0x2145,0x2165,0x2965,0x2965,0x2145,0x2986,0x2986,0x2986,0x2986,0x2965,0x2124,0x2965,0x2986,0x31a6,0x2965,0x3186,0x31a6,0x2145,0x2965,0x2965,0x2965,0x2945,0x2945,0x2985,0x2965,0x2945,0x2965,0x2124,0x2124,0x2124,0x2124,0x1924,0x1924,0x1904,0x2104,0x2125,0x2124,0x2104,0x1904,0x2124,0x2145,0x2104,0x2125,0x2124,0x18e4,0x1904,0x2145,0x2124,0x2125,0x2125,0x2124,0x2124,0x2124,0x1904,0x2124,0x2124,0x2124,0x2124, +0x1904,0x1904,0x18e3,0x18e3,0x18e3,0x18e3,0x1904,0x2125,0x2124,0x1924,0x2124,0x18e4,0x18e3,0x1904,0x1904,0x1904,0x1904,0x2145,0x2124,0x1904,0x2144,0x2144,0x2144,0x2965,0x2965,0x2145,0x2165,0x2145,0x2124,0x2124,0x2145,0x2124,0x2965,0x2145,0x2965,0x2145,0x2965,0x2145,0x2124,0x2124,0x2965,0x2145,0x2145,0x1924,0x2144,0x2145,0x2144,0x2965,0x2145,0x2125,0x2145,0x2145,0x2966,0x2965,0x2124,0x3186,0x31a6,0x2986,0x2986,0x2165,0x2144,0x2965,0x2965,0x2145,0x2966,0x3186,0x3186,0x2965,0x2965,0x2986,0x31c7,0x2145,0x2966,0x2966,0x2966,0x2965,0x2165,0x2965,0x2965,0x2986,0x2985,0x2965,0x2965,0x2965,0x3186,0x3186,0x39e7,0x2965,0x2965,0x2966,0x2965,0x31a6,0x31a6,0x31a6,0x2986,0x29a6,0x2986,0x2965,0x2965,0x3186,0x2986,0x39e7,0x2985,0x31a6,0x39e7,0x2986,0x2986,0x31c7,0x31a6,0x31c7,0x2965,0x3186,0x3a08,0x31e7,0x31a6,0x1082,0x1082,0x1082,0x1082,0x18c3,0x2104,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18a2,0x10a2,0x18c3,0x18c3,0x10a3,0x10a3,0x10a3,0x18a3,0x18c3,0x18c2,0x10a2,0x10a2,0x10a2,0x18a3,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x18c3,0x18a2,0x18a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x2104,0x2925,0x18c3,0x10a2,0x18c2,0x18c3,0x20e3,0x4964,0x31a6,0x2985,0x31c7,0x2986,0x2966,0x2986,0x2966,0x2965,0x2965,0x2144,0x3186,0x31a6,0x2965,0x2965,0x2985,0x2986,0x2965,0x2965,0x2986,0x29a6,0x2986,0x2966,0x2965,0x2966,0x2145,0x2965,0x2986,0x2965,0x2965,0x2965,0x2965,0x2985,0x3186,0x2965,0x2945,0x2965,0x2965,0x2985,0x2965,0x2985,0x2965,0x2945,0x2965,0x2945,0x2965,0x2144,0x2144,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x2144,0x2965,0x2965,0x2986,0x2145,0x2986,0x2986,0x2945,0x2144,0x2945,0x2945,0x2945,0x2965,0x2965,0x2986,0x2965,0x2145,0x2945,0x2965,0x2945,0x39a7,0x2966,0x2124,0x2145,0x2965,0x2965,0x2965,0x2144,0x2945,0x2124,0x2124,0x2124,0x2145,0x2124,0x2945,0x2125,0x2124,0x2104,0x2124,0x2945,0x2124,0x2124,0x2945,0x2104,0x1904,0x2124,0x2125,0x2124,0x18e4,0x2124,0x2125,0x2124,0x1904,0x2104,0x2124,0x2124,0x2124,0x2104, +0x1904,0x18e3,0x1903,0x1904,0x1903,0x1903,0x18e4,0x1904,0x1924,0x1904,0x1904,0x1904,0x1904,0x2145,0x2124,0x1904,0x2104,0x2144,0x2124,0x2124,0x2124,0x2144,0x2144,0x2145,0x2124,0x2144,0x2965,0x2145,0x2124,0x2104,0x2145,0x2145,0x2124,0x2145,0x2986,0x2986,0x2986,0x2145,0x2124,0x2145,0x2125,0x2945,0x2945,0x2125,0x2945,0x2985,0x2965,0x2124,0x2145,0x2965,0x2145,0x2965,0x2966,0x2145,0x2965,0x2965,0x2965,0x2986,0x2145,0x2145,0x2965,0x2965,0x2965,0x2986,0x2986,0x2986,0x2966,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x31a6,0x2986,0x2986,0x2986,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x31a6,0x31a6,0x2986,0x31a6,0x2965,0x2965,0x2966,0x2986,0x31c7,0x2986,0x31a7,0x31c7,0x31a6,0x2986,0x2986,0x3186,0x3186,0x2165,0x29a6,0x2986,0x2986,0x31a6,0x2966,0x2966,0x3186,0x3186,0x31a6,0x2986,0x2986,0x29a6,0x31c7,0x2986,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2104,0x2124,0x2104,0x2124,0x2945,0x2965,0x2124,0x2124,0x2924,0x2124,0x2124,0x2125,0x2945,0x2124,0x2104,0x2104,0x2124,0x2125,0x2125,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2104,0x2945,0x2945,0x2945,0x2125,0x2124,0x2124,0x2945,0x2124,0x2124,0x2104,0x2104,0x20e3,0x2104,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x20e4,0x2104,0x18e3,0x2104,0x2124,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x20e4,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x18e3,0x2104,0x18e3,0x18e3,0x20e3,0x20e4,0x2104,0x2945,0x20e3,0x10a2,0x18a3,0x18c3,0x20e3,0x4964,0x2986,0x2985,0x2966,0x2965,0x2986,0x2966,0x31a7,0x2986,0x2945,0x2965,0x31a6,0x2965,0x2965,0x2965,0x2965,0x31a6,0x2986,0x2985,0x2965,0x2965,0x2145,0x2145,0x2965,0x2966,0x2965,0x2965,0x2965,0x31a7,0x31a7,0x2965,0x2965,0x2986,0x2945,0x2145,0x31a6,0x2965,0x2985,0x2965,0x2965,0x31a6,0x2145,0x2985,0x3186,0x2986,0x3186,0x2144,0x2145,0x2986,0x2965,0x2965,0x2145,0x2945,0x2965,0x2965,0x2965,0x2965,0x2144,0x2145,0x2145,0x2145,0x2965,0x2965,0x2965,0x2965,0x2145,0x2144,0x2124,0x2965,0x2145,0x2965,0x2945,0x2965,0x2945,0x2965,0x2985,0x2965,0x2945,0x2145,0x2144,0x2124,0x2145,0x2124,0x2124,0x2124,0x2945,0x2124,0x2125,0x2125,0x2124,0x2124,0x2945,0x2125,0x2945,0x2125,0x2104,0x2104,0x1904,0x2124,0x2124,0x2104,0x1904,0x2124,0x2125,0x2145,0x1904,0x1904,0x2125,0x1904,0x2124,0x1903,0x2124, +0x2104,0x2104,0x2104,0x1924,0x1924,0x1924,0x2104,0x18e3,0x18e4,0x1904,0x18e3,0x1904,0x1904,0x2124,0x2124,0x2124,0x2144,0x2944,0x2145,0x2124,0x2125,0x2145,0x2965,0x2945,0x2124,0x2965,0x2145,0x2124,0x2124,0x2124,0x2945,0x2125,0x2125,0x2986,0x31c7,0x2965,0x2965,0x2965,0x2144,0x2124,0x2965,0x2965,0x2945,0x2125,0x2945,0x2945,0x2965,0x2965,0x2145,0x2986,0x2986,0x2966,0x2986,0x2145,0x2965,0x2985,0x2144,0x2965,0x2986,0x2986,0x2986,0x2986,0x2965,0x31a6,0x2965,0x2965,0x2965,0x2966,0x31a7,0x31a6,0x2965,0x3186,0x2945,0x2965,0x3186,0x2965,0x2985,0x2965,0x2945,0x31a6,0x2985,0x2165,0x2965,0x2965,0x2965,0x2985,0x2145,0x2145,0x2985,0x2986,0x31a6,0x31c7,0x31a6,0x2986,0x31a6,0x31a6,0x2986,0x2985,0x31a6,0x2966,0x2965,0x2145,0x39e7,0x31a7,0x2966,0x2966,0x31a6,0x31c7,0x31a6,0x31a6,0x2986,0x31a6,0x31c7,0x39e7,0x31a6,0x1082,0x1082,0x1082,0x1082,0x1082,0x18e3,0x2124,0x2104,0x2104,0x2124,0x2945,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2104,0x2104,0x18e3,0x1903,0x2104,0x2124,0x18e3,0x18e3,0x2103,0x2104,0x2104,0x18e3,0x2104,0x2124,0x2124,0x2945,0x2104,0x2124,0x2924,0x2965,0x2945,0x2124,0x2104,0x2104,0x20e3,0x2103,0x2104,0x2104,0x2103,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2945,0x2124,0x2124,0x2944,0x2945,0x2925,0x2945,0x2124,0x2124,0x2104,0x2104,0x2124,0x2945,0x2124,0x2104,0x2104,0x2104,0x2124,0x2124,0x2945,0x2124,0x2925,0x2945,0x2124,0x2124,0x2944,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x18e3,0x10a2,0x18c3,0x18a3,0x20e3,0x4165,0x2965,0x3186,0x2965,0x2965,0x2965,0x2986,0x31a6,0x3166,0x2966,0x2966,0x2965,0x2145,0x2145,0x2965,0x2145,0x2986,0x2986,0x2965,0x3185,0x2965,0x2145,0x2945,0x2985,0x31a6,0x3186,0x2965,0x2986,0x2966,0x2965,0x2985,0x2145,0x2965,0x2965,0x2145,0x2986,0x31a6,0x2965,0x2965,0x2965,0x2145,0x2985,0x2965,0x2965,0x2986,0x2966,0x2965,0x2965,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2945,0x2145,0x2965,0x2965,0x2145,0x2145,0x2124,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2985,0x2965,0x31a6,0x2985,0x3186,0x2986,0x2124,0x2965,0x2965,0x2144,0x2124,0x2145,0x2145,0x2144,0x2124,0x2145,0x2124,0x2124,0x2144,0x2125,0x2965,0x2104,0x2124,0x2145,0x2104,0x2125,0x2104,0x2124,0x2145,0x2945,0x2986,0x2124,0x2104,0x1904,0x2145,0x2124,0x2124,0x1904,0x1904,0x2104,0x2125,0x2124,0x1924,0x2124, +0x2104,0x2124,0x2104,0x1904,0x2124,0x2124,0x20e4,0x20e4,0x2104,0x18e3,0x1904,0x1904,0x1904,0x1904,0x18e3,0x2104,0x2125,0x2945,0x2124,0x2124,0x2125,0x2125,0x2145,0x2145,0x2145,0x2965,0x2124,0x2124,0x2124,0x2124,0x2145,0x2145,0x2124,0x2124,0x2986,0x2145,0x2145,0x2965,0x2144,0x2124,0x2965,0x3186,0x2124,0x2965,0x2145,0x2124,0x2966,0x31c7,0x2145,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x2965,0x2965,0x2965,0x31a6,0x31a6,0x2965,0x2986,0x2966,0x2986,0x2965,0x2945,0x2945,0x2966,0x2986,0x2985,0x2965,0x3186,0x2945,0x2965,0x2965,0x2965,0x31a6,0x2965,0x2945,0x2986,0x2985,0x2985,0x2985,0x2965,0x2145,0x2986,0x2965,0x2145,0x2985,0x31a6,0x2986,0x31c7,0x2986,0x31a6,0x31a6,0x2965,0x2986,0x31a6,0x29a6,0x31c7,0x3186,0x2966,0x31a7,0x3186,0x31a7,0x31a7,0x31a6,0x2986,0x3186,0x31a6,0x31a6,0x39c7,0x31a7,0x39e7,0x39c7,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x2104,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18a2,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x20e4,0x2104,0x2104,0x2104,0x18e3,0x18c3,0x18c3,0x18e3,0x1904,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2124,0x2945,0x2945,0x2945,0x2104,0x2104,0x18e3,0x2104,0x2104,0x2104,0x20e4,0x20e4,0x18e3,0x18e3,0x18e3,0x18e4,0x2124,0x2104,0x2104,0x2104,0x2103,0x18e3,0x18e3,0x2103,0x2104,0x1903,0x18e3,0x18e3,0x18e3,0x20e3,0x18e3,0x18e3,0x18a2,0x10a2,0x18c3,0x18a3,0x20e3,0x4144,0x3186,0x3186,0x2966,0x2945,0x2965,0x2145,0x2965,0x2966,0x2966,0x2986,0x2165,0x2145,0x2965,0x2965,0x2986,0x2965,0x31a6,0x31c6,0x3186,0x2965,0x2965,0x2965,0x2985,0x2965,0x2965,0x2966,0x2965,0x2966,0x2966,0x2145,0x2965,0x2965,0x2966,0x2965,0x2986,0x2965,0x2124,0x2965,0x2965,0x2145,0x2985,0x31a6,0x2986,0x2986,0x2986,0x2965,0x2965,0x2965,0x2985,0x2145,0x2965,0x2965,0x2945,0x2965,0x2965,0x2965,0x2986,0x2965,0x2145,0x2145,0x2965,0x2145,0x2124,0x2945,0x2965,0x2986,0x2145,0x2145,0x2965,0x3186,0x2965,0x3186,0x2145,0x2124,0x2145,0x2124,0x2145,0x2124,0x2124,0x2945,0x2145,0x2124,0x2965,0x2945,0x2124,0x2945,0x2945,0x2945,0x2125,0x2125,0x1904,0x2124,0x2145,0x2145,0x2124,0x2945,0x2945,0x31c6,0x2945,0x2124,0x1904,0x2124,0x2145,0x2124,0x2145,0x2124,0x2104,0x2145,0x2124,0x1924,0x2144, +0x2104,0x1904,0x2104,0x1903,0x2104,0x2125,0x2104,0x1904,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x1904,0x1904,0x2104,0x2125,0x2125,0x2124,0x2145,0x2124,0x2124,0x2145,0x2145,0x2125,0x2145,0x2124,0x2124,0x2124,0x2924,0x2945,0x2145,0x2124,0x2144,0x2144,0x2145,0x2124,0x2145,0x2145,0x2124,0x2945,0x2145,0x2165,0x2144,0x2124,0x2965,0x2965,0x2945,0x2124,0x2144,0x2144,0x2124,0x2965,0x3186,0x2145,0x2985,0x2965,0x2965,0x2966,0x2985,0x2165,0x2165,0x2966,0x2966,0x2945,0x2125,0x2965,0x2965,0x31a6,0x39c6,0x39c6,0x3186,0x29a6,0x2986,0x2965,0x2965,0x31c7,0x31a6,0x2986,0x2986,0x2965,0x2965,0x2965,0x2965,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x2965,0x2965,0x3186,0x31a6,0x2965,0x2965,0x31a6,0x31a6,0x2985,0x29a6,0x3186,0x31a6,0x29a6,0x2965,0x2986,0x31a6,0x2986,0x31a6,0x31a6,0x2986,0x3186,0x31a7,0x2966,0x31a6,0x31c7,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x18c3,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10c2,0x10a2,0x18c3,0x18e3,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x1904,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x20e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x20e3,0x2104,0x2124,0x2124,0x2124,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x10a2,0x10a2,0x18a2,0x18a3,0x20e3,0x3944,0x2966,0x2145,0x2986,0x2966,0x2966,0x2145,0x2966,0x2986,0x2145,0x2165,0x2965,0x2986,0x2985,0x2965,0x29a6,0x2985,0x2985,0x29a6,0x2145,0x2986,0x2986,0x2965,0x2986,0x2965,0x2966,0x31a6,0x2145,0x3186,0x2986,0x2145,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2145,0x2145,0x2985,0x2145,0x2986,0x2985,0x2986,0x2986,0x2986,0x2986,0x2965,0x2986,0x31c6,0x2986,0x2965,0x2945,0x2145,0x3186,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2145,0x2965,0x2145,0x2945,0x2985,0x2945,0x2144,0x2145,0x2145,0x2965,0x2966,0x2986,0x2145,0x2145,0x2965,0x2145,0x2144,0x2144,0x2145,0x2124,0x2945,0x2965,0x2945,0x2965,0x2945,0x2945,0x2124,0x2125,0x2104,0x2125,0x2124,0x2124,0x2945,0x2124,0x2124,0x2124,0x2124,0x2145,0x2125,0x1904,0x1904,0x2124,0x2124,0x2124,0x1904,0x1904,0x2124,0x18e3,0x1904,0x1903,0x1924, +0x2144,0x2104,0x2124,0x2104,0x18e4,0x2104,0x2104,0x18e4,0x2104,0x1904,0x1904,0x2104,0x2124,0x2144,0x2124,0x18e4,0x2104,0x2124,0x2945,0x2144,0x2965,0x2965,0x2145,0x2144,0x2125,0x2104,0x2125,0x2925,0x2945,0x2945,0x2945,0x2965,0x2965,0x2145,0x2945,0x2945,0x2945,0x2145,0x2945,0x31a6,0x2165,0x1924,0x2144,0x2944,0x2985,0x2965,0x2145,0x2145,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2986,0x39e7,0x31a6,0x2945,0x2945,0x2965,0x2965,0x2986,0x2986,0x2986,0x2985,0x2965,0x3186,0x2965,0x2965,0x3186,0x2985,0x2165,0x2985,0x2165,0x2165,0x2145,0x2986,0x2986,0x3186,0x31a6,0x3186,0x2986,0x2965,0x2986,0x2986,0x2986,0x2986,0x29a6,0x31a6,0x2985,0x2986,0x2965,0x39c7,0x39c7,0x2965,0x2985,0x2965,0x2965,0x2986,0x2965,0x2986,0x2986,0x29a6,0x2986,0x2966,0x3186,0x39c7,0x39e7,0x31a6,0x3186,0x31a7,0x31c7,0x31a6,0x31a6,0x31a6,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a3,0x18c3,0x10a3,0x18c3,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x2103,0x18e3,0x2104,0x2104,0x2104,0x2945,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2924,0x2124,0x2124,0x2104,0x18e3,0x2104,0x2104,0x20e4,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x1082,0x1082,0x18a2,0x18a2,0x20e3,0x3944,0x2986,0x2965,0x2145,0x2186,0x2986,0x2186,0x2186,0x2986,0x29a6,0x2165,0x2965,0x2965,0x2165,0x2985,0x2165,0x2965,0x2965,0x2965,0x2945,0x2986,0x2986,0x2966,0x2965,0x2986,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2165,0x2145,0x2145,0x2165,0x2965,0x2965,0x2965,0x2965,0x2965,0x2985,0x2965,0x2986,0x2965,0x2145,0x2965,0x2986,0x2185,0x2165,0x2965,0x2965,0x2986,0x3186,0x2965,0x2965,0x2965,0x2965,0x2965,0x2985,0x2965,0x2145,0x2986,0x2965,0x2965,0x2986,0x2145,0x2986,0x2965,0x2145,0x2986,0x2985,0x2165,0x2145,0x2965,0x2145,0x2965,0x2965,0x2145,0x2965,0x2124,0x2145,0x2965,0x2124,0x2945,0x2965,0x2104,0x2965,0x2965,0x2104,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x2104,0x2104,0x2965,0x2104,0x2145,0x2124,0x2124,0x1904,0x1904,0x1904,0x2124,0x2124,0x1904,0x1904,0x2104,0x18e4, +0x2144,0x2145,0x2124,0x18e3,0x1904,0x2104,0x2104,0x2104,0x1904,0x1903,0x2104,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x2945,0x2965,0x2104,0x2144,0x2145,0x2144,0x2145,0x2945,0x2124,0x2124,0x2124,0x2945,0x2145,0x2125,0x2145,0x2945,0x2945,0x2965,0x2125,0x2125,0x2966,0x2145,0x2986,0x2145,0x2145,0x2945,0x2965,0x2985,0x2165,0x1924,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2945,0x2966,0x2966,0x2145,0x2145,0x2985,0x31a6,0x2986,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x2165,0x2986,0x29a6,0x31a6,0x2986,0x2145,0x2986,0x2965,0x3186,0x2965,0x2985,0x2986,0x3186,0x31a6,0x2145,0x2965,0x31a6,0x31a6,0x3186,0x31a6,0x2985,0x2985,0x3186,0x2965,0x2965,0x2965,0x31a6,0x2986,0x29a6,0x31a6,0x2986,0x3186,0x3186,0x31c7,0x3186,0x3186,0x31a6,0x31a6,0x39c7,0x39c7,0x31a6,0x31a6,0x31c6,0x31c7,0x3186,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x10a3,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18e3,0x18e3,0x18e3,0x2104,0x3166,0x31a6,0x31a6,0x39a6,0x39c6,0x39c7,0x39c7,0x39c7,0x3186,0x31a6,0x31a6,0x3166,0x2925,0x2924,0x2925,0x20e4,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18e3,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x18a3,0x18c3,0x10a2,0x1082,0x1082,0x18a2,0x18a2,0x20e3,0x3924,0x2966,0x2986,0x2986,0x31a6,0x2965,0x29a6,0x29a6,0x2986,0x31a6,0x2986,0x2966,0x2965,0x2145,0x31a6,0x2965,0x31a6,0x2986,0x31a6,0x2945,0x2945,0x2965,0x2965,0x2966,0x2986,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x3186,0x2965,0x2145,0x2945,0x2965,0x2965,0x2965,0x2945,0x2965,0x31c6,0x3186,0x3186,0x2965,0x2965,0x2145,0x2945,0x2985,0x2965,0x2965,0x2965,0x2945,0x2945,0x2965,0x2165,0x2986,0x2986,0x2965,0x3186,0x3186,0x3186,0x2945,0x2965,0x2965,0x2985,0x31a6,0x2965,0x2165,0x2965,0x2965,0x2985,0x2986,0x2965,0x2144,0x2965,0x2144,0x2965,0x2985,0x2965,0x2945,0x2965,0x2965,0x2145,0x2124,0x2965,0x2965,0x2124,0x2124,0x2104,0x2945,0x2965,0x2145,0x2144,0x2124,0x2145,0x2124,0x2144,0x2124,0x2124,0x2124,0x2144,0x2124,0x2124,0x2145,0x1903,0x2124,0x2124,0x1924,0x2145,0x2125,0x2104,0x2104, +0x2104,0x2104,0x18e3,0x2104,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2145,0x2124,0x2145,0x1904,0x2124,0x2125,0x2125,0x2945,0x2945,0x2124,0x2965,0x2144,0x2124,0x2145,0x2125,0x2124,0x2124,0x2104,0x2965,0x2966,0x2125,0x2145,0x2945,0x2925,0x2125,0x2965,0x2945,0x2945,0x2966,0x2986,0x2965,0x2145,0x2966,0x2985,0x2145,0x2145,0x2145,0x2965,0x2945,0x2965,0x2965,0x2965,0x3186,0x3186,0x2144,0x2945,0x2966,0x3186,0x3186,0x2966,0x2986,0x2965,0x2986,0x3186,0x3186,0x2986,0x2965,0x2965,0x2965,0x31a6,0x31c7,0x2165,0x2986,0x2986,0x2986,0x2985,0x2985,0x2986,0x2965,0x3186,0x2965,0x2945,0x2985,0x3186,0x2965,0x3186,0x31a6,0x2985,0x2986,0x3186,0x31a6,0x31a6,0x2985,0x2986,0x2985,0x2986,0x2985,0x2986,0x31a6,0x31a6,0x2986,0x3186,0x3186,0x3186,0x31a6,0x2985,0x31a6,0x31a6,0x39c7,0x31c7,0x31c7,0x31c6,0x31c6,0x3a07,0x39e7,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2104,0x2945,0x2945,0x2965,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x39c7,0x39c7,0x39c6,0x31a6,0x3186,0x3165,0x2925,0x18e4,0x18c3,0x18c2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x18e3,0x3124,0x2966,0x39e7,0x31a6,0x2965,0x3186,0x2965,0x2986,0x3186,0x2965,0x2986,0x3186,0x2144,0x2965,0x31c7,0x31c6,0x31a6,0x31a6,0x3186,0x2945,0x2965,0x2986,0x2965,0x2965,0x2965,0x2986,0x2965,0x31a6,0x3186,0x2965,0x3186,0x31a6,0x2985,0x3186,0x2965,0x2985,0x2985,0x2986,0x2965,0x2965,0x31a6,0x39e7,0x2965,0x2945,0x2965,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2145,0x2125,0x2965,0x2986,0x2965,0x2145,0x2965,0x31a6,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2145,0x2965,0x2165,0x2145,0x2145,0x2965,0x2965,0x3186,0x2945,0x2145,0x2986,0x2965,0x2945,0x2145,0x2985,0x3186,0x3186,0x31a6,0x2124,0x31a6,0x2965,0x2124,0x2124,0x2965,0x2965,0x1924,0x2165,0x2165,0x2945,0x2145,0x2145,0x2124,0x2104,0x2145,0x2124,0x2124,0x2945,0x2144,0x1903,0x2124,0x2124,0x2124,0x2145,0x2104,0x2104,0x2104, +0x2104,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x2124,0x2125,0x2945,0x2145,0x2124,0x2124,0x1904,0x2124,0x2125,0x2945,0x2124,0x2104,0x2124,0x2945,0x2124,0x2124,0x2124,0x2124,0x2124,0x2985,0x2144,0x2124,0x2145,0x2124,0x2144,0x2124,0x2145,0x2145,0x2965,0x2965,0x2124,0x2945,0x2125,0x2945,0x2125,0x2145,0x2165,0x2145,0x2165,0x2965,0x2965,0x2945,0x2965,0x3186,0x2965,0x2965,0x2985,0x2965,0x3186,0x2986,0x3186,0x31a6,0x2965,0x2985,0x2165,0x2945,0x2965,0x3186,0x2965,0x2965,0x2965,0x2965,0x2145,0x2145,0x2945,0x2965,0x2965,0x2986,0x31a6,0x2986,0x3186,0x2965,0x3186,0x2965,0x2965,0x2965,0x2965,0x2966,0x2966,0x2985,0x2165,0x2986,0x31a6,0x39c7,0x31a6,0x2985,0x2986,0x2986,0x31a6,0x2965,0x31a6,0x31a6,0x3186,0x31a6,0x3186,0x2965,0x2986,0x31a6,0x3186,0x31a6,0x31c7,0x3186,0x2986,0x2986,0x31a6,0x39e7,0x39e7,0x31a6,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x18a3,0x2124,0x2965,0x3186,0x3186,0x3186,0x2965,0x2944,0x2104,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x2104,0x2145,0x2986,0x31a6,0x31c6,0x39c6,0x31a6,0x3186,0x20e4,0x10a2,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18e3,0x3944,0x3186,0x3186,0x3166,0x3186,0x3186,0x2145,0x2966,0x3186,0x3186,0x2965,0x31a6,0x3186,0x2985,0x31a6,0x31a6,0x3186,0x2945,0x2965,0x3186,0x3186,0x2986,0x2985,0x2145,0x2986,0x31c6,0x2965,0x2986,0x2986,0x2965,0x2965,0x31a6,0x31a6,0x2965,0x2945,0x2144,0x2965,0x2986,0x2145,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2945,0x2145,0x2145,0x2945,0x2965,0x2986,0x2165,0x2965,0x31a6,0x2986,0x2985,0x2985,0x2965,0x2965,0x2985,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x31a6,0x2965,0x2965,0x2986,0x2965,0x2945,0x2966,0x3186,0x2945,0x2125,0x2966,0x2985,0x2145,0x2965,0x2965,0x2145,0x2945,0x2965,0x2945,0x2965,0x2145,0x2144,0x2124,0x2124,0x2124,0x2124,0x1904,0x2965,0x2945,0x2104,0x2124,0x2124,0x2104,0x2104,0x2965,0x2986,0x2144,0x1904,0x1904,0x2124,0x1904,0x1904,0x2145,0x2145,0x2124,0x2124, +0x2104,0x2945,0x2945,0x2125,0x1904,0x2104,0x2104,0x2124,0x2124,0x2104,0x2965,0x2124,0x1904,0x1904,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2124,0x2104,0x2124,0x2965,0x2144,0x2965,0x2965,0x2125,0x2165,0x2145,0x2124,0x2124,0x2945,0x2965,0x2945,0x2145,0x2965,0x2965,0x2945,0x2965,0x2145,0x2145,0x2165,0x2965,0x2965,0x2965,0x2144,0x2145,0x2965,0x2986,0x2965,0x2124,0x2965,0x2965,0x3186,0x2985,0x2965,0x3186,0x2965,0x2145,0x2145,0x2145,0x2145,0x2945,0x2945,0x2986,0x2965,0x2965,0x2986,0x2965,0x2145,0x2965,0x2965,0x2965,0x3186,0x31a6,0x2945,0x2965,0x2985,0x2986,0x2985,0x31a6,0x39e7,0x2965,0x2986,0x2965,0x2986,0x31c7,0x31a6,0x2965,0x2144,0x2165,0x2965,0x2965,0x2965,0x2966,0x3186,0x3186,0x2986,0x2986,0x31a6,0x2965,0x2986,0x31a6,0x3186,0x31c7,0x3186,0x31a7,0x29a6,0x31a6,0x31c7,0x31c7,0x31c7,0x29a6,0x10a2,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x1082,0x0861,0x0861,0x0861,0x1082,0x18c3,0x2944,0x2965,0x3186,0x3185,0x2965,0x2104,0x18c3,0x1082,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x10c2,0x1903,0x2944,0x31a6,0x31a6,0x39c6,0x3185,0x18a3,0x10a2,0x10a2,0x18c2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x3124,0x31a6,0x2965,0x2965,0x2966,0x2986,0x2965,0x3186,0x31a6,0x31a6,0x2986,0x31a6,0x2965,0x2986,0x31a6,0x2986,0x2965,0x2965,0x2945,0x3186,0x39e7,0x31c6,0x2965,0x2965,0x3186,0x2965,0x2985,0x29a6,0x2165,0x31a6,0x31a6,0x3186,0x3186,0x2985,0x2965,0x2965,0x2145,0x2125,0x2145,0x2965,0x2145,0x2165,0x2965,0x3186,0x31a7,0x2966,0x2945,0x2945,0x2986,0x2986,0x2145,0x2986,0x2985,0x2985,0x2985,0x2965,0x29a6,0x2965,0x2986,0x2986,0x2965,0x2965,0x2965,0x2145,0x2965,0x2986,0x2965,0x2145,0x2965,0x2965,0x2965,0x2966,0x2966,0x2965,0x2145,0x2145,0x2145,0x2165,0x2965,0x2165,0x2145,0x2145,0x2965,0x2945,0x2144,0x2945,0x2144,0x2965,0x2124,0x2124,0x2945,0x2104,0x2124,0x1903,0x2124,0x2145,0x1904,0x2124,0x2124,0x2124,0x2144,0x1904,0x2124,0x2124,0x2124,0x2124,0x1904,0x2124,0x2124,0x2124,0x1904,0x2124, +0x2124,0x1904,0x2104,0x2145,0x1904,0x2124,0x2104,0x2104,0x2104,0x2124,0x2124,0x1904,0x1904,0x1904,0x2125,0x2145,0x2104,0x2124,0x2125,0x2124,0x2945,0x2145,0x2145,0x2965,0x2144,0x2124,0x2145,0x2124,0x2125,0x2165,0x2145,0x2124,0x2945,0x2945,0x2945,0x2145,0x2124,0x2144,0x2965,0x2986,0x2965,0x2124,0x2986,0x2986,0x2965,0x2945,0x2945,0x2124,0x2124,0x2145,0x2165,0x2965,0x2965,0x2144,0x2965,0x2985,0x2985,0x2965,0x2145,0x2965,0x2965,0x2965,0x2145,0x2144,0x2145,0x2965,0x2985,0x2985,0x2965,0x2985,0x2965,0x2165,0x2185,0x2165,0x2185,0x2985,0x2985,0x2165,0x2945,0x2985,0x2985,0x31a6,0x2986,0x31a6,0x2965,0x2986,0x2986,0x31a6,0x31a6,0x2965,0x2986,0x2965,0x2966,0x2986,0x2966,0x2965,0x2966,0x3186,0x3186,0x2966,0x3186,0x31c7,0x2986,0x2965,0x2965,0x31a6,0x2986,0x2966,0x3186,0x31a7,0x2986,0x31c7,0x31a7,0x31a7,0x2966,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c2,0x1082,0x0861,0x0861,0x0841,0x0861,0x1062,0x18e3,0x2944,0x2965,0x2965,0x2965,0x2104,0x10c2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0841,0x0861,0x0861,0x10a2,0x2103,0x2965,0x31a6,0x31a6,0x2965,0x2104,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x18a2,0x18a2,0x18c3,0x3124,0x31a6,0x31a6,0x31a7,0x2986,0x3186,0x3186,0x2965,0x2985,0x31a6,0x2965,0x2986,0x2965,0x2986,0x2965,0x3186,0x3186,0x3186,0x31c6,0x2985,0x31c6,0x3186,0x3186,0x31a6,0x2965,0x2965,0x2985,0x2986,0x2965,0x2945,0x2985,0x3186,0x2986,0x2986,0x2965,0x2965,0x2145,0x2145,0x2986,0x2986,0x2985,0x2965,0x2985,0x2965,0x2965,0x2965,0x2965,0x3186,0x2965,0x2965,0x2965,0x2965,0x2965,0x29a6,0x2965,0x2145,0x2165,0x2965,0x2985,0x31a6,0x2965,0x2985,0x2965,0x2124,0x2145,0x2986,0x2965,0x2145,0x2986,0x2986,0x2965,0x2945,0x2945,0x2966,0x2986,0x2124,0x2124,0x2145,0x2144,0x2965,0x2965,0x2124,0x2985,0x2965,0x2145,0x2145,0x2145,0x3186,0x2145,0x2945,0x2965,0x2124,0x2124,0x2144,0x2945,0x2145,0x2144,0x2124,0x2124,0x2144,0x2986,0x2965,0x1904,0x2124,0x2124,0x2124,0x1904,0x1904,0x2124,0x2145,0x2124,0x18e3, +0x1904,0x1904,0x2124,0x2145,0x2124,0x1904,0x2104,0x2104,0x2124,0x2145,0x2125,0x2124,0x2124,0x2104,0x2124,0x2145,0x2145,0x2145,0x2125,0x1924,0x2145,0x2165,0x2145,0x2145,0x2124,0x2945,0x2965,0x2125,0x2145,0x2986,0x2986,0x2966,0x2124,0x2945,0x2145,0x2124,0x2124,0x2165,0x2965,0x2965,0x2985,0x2145,0x2985,0x2986,0x2965,0x2965,0x2125,0x2965,0x2144,0x2965,0x2165,0x2965,0x2965,0x2965,0x3186,0x3186,0x2985,0x2965,0x2985,0x2985,0x2965,0x2965,0x2145,0x2985,0x2986,0x2965,0x2965,0x3186,0x3186,0x2965,0x2965,0x2965,0x2965,0x2985,0x2965,0x2986,0x2986,0x2965,0x2965,0x2986,0x2965,0x2985,0x2986,0x2965,0x2985,0x31a6,0x2986,0x2986,0x31c7,0x29a6,0x2986,0x2986,0x29a6,0x2986,0x2966,0x2965,0x2965,0x3186,0x31a6,0x3186,0x2965,0x31c6,0x31a6,0x2985,0x31a6,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x31a6,0x3186,0x3186,0x10a2,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x20e4,0x31a6,0x2945,0x2944,0x2944,0x18e3,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x10a2,0x18a3,0x18c3,0x18c3,0x18a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x18c3,0x2124,0x3185,0x3185,0x3165,0x20e3,0x1082,0x0861,0x1082,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x18c3,0x4185,0x31a6,0x2966,0x39c7,0x2986,0x31a6,0x2986,0x2985,0x2986,0x2986,0x2965,0x2145,0x29a6,0x31a6,0x2966,0x3186,0x2965,0x2986,0x3186,0x3186,0x31c7,0x3186,0x3186,0x2965,0x2986,0x3186,0x3186,0x2965,0x2965,0x2965,0x2945,0x3186,0x2965,0x2985,0x3186,0x2986,0x2965,0x2966,0x2966,0x2965,0x31a6,0x2965,0x2965,0x2965,0x3186,0x2945,0x2965,0x2985,0x2985,0x2965,0x2985,0x2985,0x2965,0x2985,0x2965,0x2965,0x2145,0x2965,0x2965,0x2986,0x2965,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2145,0x2966,0x31a7,0x2946,0x2966,0x2966,0x2945,0x2965,0x2145,0x2945,0x2945,0x2945,0x2965,0x2985,0x2945,0x2124,0x2145,0x2165,0x2144,0x2145,0x2945,0x2965,0x2945,0x2965,0x2945,0x2965,0x2985,0x2945,0x2124,0x2945,0x2965,0x2124,0x2144,0x2965,0x2965,0x2965,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x1904,0x2104,0x18e4, +0x1904,0x2124,0x2124,0x2124,0x1904,0x1904,0x18e4,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2125,0x2124,0x2124,0x2145,0x2125,0x2145,0x2145,0x1924,0x2165,0x2165,0x2124,0x2144,0x2144,0x2945,0x2965,0x2945,0x31c7,0x31a6,0x2965,0x2945,0x2965,0x2945,0x2965,0x2145,0x2965,0x2945,0x2945,0x2965,0x2165,0x1924,0x2145,0x2965,0x2986,0x2986,0x2965,0x2965,0x2145,0x2145,0x2124,0x2124,0x2965,0x2965,0x2965,0x2985,0x2985,0x2986,0x2965,0x2986,0x2966,0x2145,0x2986,0x2986,0x2965,0x2965,0x2985,0x2986,0x2945,0x2965,0x3186,0x3186,0x31a6,0x2986,0x2986,0x2986,0x2965,0x2965,0x2145,0x2985,0x2985,0x2985,0x3186,0x2965,0x2965,0x2966,0x3186,0x31a6,0x2986,0x2986,0x3186,0x2986,0x2965,0x2985,0x39e7,0x3186,0x31c6,0x3186,0x2986,0x2986,0x3186,0x2965,0x2985,0x3186,0x2965,0x31a6,0x31c7,0x31c7,0x31c7,0x29a6,0x29a6,0x39e7,0x31a6,0x2965,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0841,0x0861,0x0861,0x1062,0x18a2,0x2945,0x31a6,0x2924,0x2124,0x18c3,0x1061,0x0861,0x1082,0x18c3,0x18c3,0x18c3,0x20e3,0x2124,0x2124,0x2924,0x2965,0x2945,0x2103,0x18c2,0x10a2,0x1082,0x1082,0x0861,0x0861,0x10a2,0x2124,0x2965,0x2965,0x2945,0x18c3,0x0861,0x0861,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x10a3,0x10a3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x51c6,0x31c7,0x29a6,0x31a6,0x2986,0x3186,0x2965,0x2985,0x31c6,0x2986,0x2965,0x2986,0x31a6,0x2965,0x2986,0x2986,0x3186,0x2965,0x2965,0x2965,0x2986,0x31a6,0x2965,0x2985,0x2965,0x3186,0x31a6,0x31a6,0x2985,0x31a6,0x2986,0x3186,0x3186,0x31a6,0x2986,0x2965,0x2965,0x3186,0x2986,0x2144,0x2985,0x2986,0x2966,0x2966,0x2965,0x31a6,0x2985,0x31a6,0x2985,0x2965,0x2985,0x2985,0x2965,0x2965,0x2965,0x31a6,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x31a6,0x2985,0x2965,0x31a6,0x31a6,0x2966,0x2966,0x2145,0x2946,0x2946,0x2145,0x2945,0x2965,0x2965,0x2945,0x2945,0x2144,0x2945,0x2965,0x2945,0x2124,0x2965,0x2945,0x2145,0x3186,0x3186,0x2124,0x2145,0x2124,0x2965,0x2144,0x2144,0x2124,0x2965,0x2965,0x2124,0x2965,0x2144,0x2124,0x2985,0x2986,0x2145,0x2124,0x2145,0x2124,0x2104,0x2104,0x2125,0x1904, +0x2124,0x2145,0x2125,0x1904,0x1904,0x2104,0x2104,0x2124,0x2945,0x2124,0x2145,0x2124,0x2124,0x2125,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2144,0x2144,0x2144,0x2945,0x2945,0x2124,0x2145,0x2145,0x2145,0x2145,0x2965,0x31a6,0x2986,0x2145,0x2945,0x2965,0x2965,0x2124,0x2145,0x2145,0x2145,0x2965,0x2965,0x2144,0x2965,0x2145,0x2124,0x2144,0x2144,0x2145,0x2965,0x2965,0x2965,0x2985,0x2965,0x2965,0x2986,0x2986,0x2145,0x2965,0x2965,0x2965,0x2145,0x2986,0x2965,0x2945,0x2965,0x2965,0x2985,0x2986,0x2965,0x2985,0x2986,0x2986,0x2986,0x2145,0x2145,0x2965,0x2965,0x2986,0x2965,0x2966,0x2986,0x3186,0x2986,0x2985,0x2965,0x2985,0x2985,0x2985,0x2965,0x3186,0x31a6,0x2986,0x31a6,0x29a6,0x29a6,0x2986,0x2965,0x3186,0x31a6,0x2986,0x31a6,0x2986,0x31a6,0x31e7,0x31e7,0x2965,0x2145,0x2104,0x10c2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x10a2,0x18e3,0x2104,0x2124,0x2104,0x18c3,0x0861,0x1083,0x3167,0x39a7,0x2124,0x18c3,0x18c3,0x2104,0x2124,0x2124,0x2124,0x2945,0x2944,0x2103,0x18e3,0x10a2,0x10a2,0x18c3,0x18c4,0x1083,0x0861,0x10a2,0x2124,0x2944,0x2944,0x2924,0x18a2,0x0861,0x0861,0x0861,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x51a5,0x2145,0x4228,0x39e7,0x3186,0x2986,0x2986,0x29a6,0x31e7,0x2985,0x2986,0x2986,0x2965,0x2945,0x2986,0x31a6,0x31a6,0x2986,0x2965,0x2965,0x2985,0x31a6,0x2986,0x2965,0x2965,0x2985,0x2965,0x2985,0x2965,0x2985,0x2986,0x2965,0x2965,0x3186,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x31a6,0x31a6,0x2965,0x2966,0x39c7,0x31c7,0x2165,0x31a6,0x2965,0x2986,0x2986,0x2985,0x2986,0x2965,0x2966,0x31a6,0x2965,0x2965,0x2986,0x2986,0x31a6,0x2986,0x2986,0x2965,0x2965,0x2986,0x2986,0x2986,0x2965,0x2986,0x2965,0x2965,0x2986,0x2145,0x2165,0x2986,0x2965,0x2945,0x2124,0x3186,0x2945,0x2945,0x2965,0x2945,0x2945,0x2144,0x2965,0x2965,0x3186,0x2966,0x2104,0x2124,0x2144,0x2124,0x2945,0x2945,0x2145,0x2965,0x2124,0x2945,0x2144,0x2104,0x2104,0x2965,0x2145,0x2144,0x2124,0x1904,0x2145,0x2145,0x2104,0x2124, +0x2124,0x2124,0x2124,0x2124,0x1904,0x18e3,0x2104,0x2124,0x2124,0x2145,0x2145,0x2124,0x2124,0x2145,0x2124,0x1904,0x2125,0x2965,0x2145,0x2124,0x2124,0x2124,0x2124,0x2144,0x2965,0x2985,0x2145,0x2145,0x2144,0x2965,0x2165,0x2986,0x2145,0x2145,0x2965,0x31c7,0x2965,0x2125,0x2965,0x2965,0x2965,0x2965,0x31a6,0x2966,0x2965,0x2945,0x2945,0x2145,0x2145,0x2145,0x2965,0x2145,0x2965,0x2966,0x2965,0x2965,0x2965,0x2986,0x2965,0x2965,0x2965,0x2965,0x2124,0x2986,0x31a6,0x2945,0x2965,0x2986,0x2145,0x2965,0x2965,0x2986,0x2965,0x2986,0x31a6,0x2966,0x3186,0x2965,0x2965,0x2965,0x2145,0x29a6,0x2985,0x2965,0x2986,0x2986,0x2986,0x29a6,0x31a6,0x2985,0x29a6,0x31c6,0x2985,0x3186,0x2966,0x3186,0x2986,0x39e7,0x31a6,0x2165,0x2965,0x2986,0x31a6,0x31a6,0x31c6,0x2966,0x31a6,0x2966,0x2966,0x31a6,0x2124,0x0000,0x0000,0x0000,0x0020,0x10a2,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x0861,0x0861,0x41ca,0x9cb4,0x5249,0x18c3,0x18c3,0x18e3,0x2104,0x2944,0x2924,0x2924,0x2965,0x2944,0x2104,0x18c3,0x10a2,0x10a2,0x10a2,0x2967,0x420a,0x20e5,0x0861,0x10a2,0x2104,0x2924,0x2924,0x2104,0x1082,0x0861,0x0861,0x0861,0x10a2,0x18a3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c2,0x51a5,0x0000,0x1082,0x4208,0x4208,0x3186,0x31a6,0x31c6,0x29a6,0x2965,0x2986,0x2965,0x3186,0x2965,0x2965,0x2986,0x31c7,0x2986,0x2965,0x2966,0x2986,0x2986,0x2986,0x2965,0x2966,0x31c7,0x2985,0x2965,0x2965,0x2986,0x2986,0x2145,0x2986,0x2965,0x2945,0x2965,0x2965,0x2986,0x2965,0x3186,0x3186,0x2965,0x2945,0x2965,0x2986,0x31a6,0x2986,0x2965,0x2986,0x2986,0x2965,0x3186,0x2965,0x3186,0x2965,0x2985,0x2986,0x2986,0x2986,0x2966,0x31a7,0x2965,0x2985,0x2965,0x2985,0x2986,0x2945,0x3186,0x2966,0x2945,0x2985,0x31a6,0x2986,0x2965,0x2144,0x2145,0x2165,0x2144,0x2145,0x2985,0x2986,0x2144,0x1924,0x2145,0x2165,0x1924,0x2145,0x2145,0x2965,0x2966,0x2125,0x2965,0x2965,0x2965,0x2986,0x2945,0x2124,0x2144,0x2965,0x2945,0x2145,0x2104,0x2124,0x2104,0x2124,0x2965,0x2124,0x2124,0x2965,0x2965,0x2104,0x1903, +0x2124,0x2104,0x2104,0x2124,0x2124,0x1904,0x2124,0x2124,0x2124,0x2144,0x2144,0x2986,0x2965,0x2145,0x2124,0x1904,0x2124,0x2945,0x2145,0x2965,0x2144,0x2145,0x2145,0x2165,0x2965,0x2145,0x2145,0x2145,0x2965,0x2986,0x2986,0x2986,0x2965,0x2945,0x2965,0x2145,0x2145,0x2145,0x2966,0x2145,0x2145,0x2145,0x2966,0x2965,0x2965,0x2965,0x2945,0x2145,0x2145,0x2145,0x2965,0x2965,0x2145,0x2966,0x2145,0x2965,0x2965,0x2965,0x2986,0x31a6,0x3186,0x2986,0x2965,0x2965,0x2965,0x2144,0x2945,0x2965,0x2165,0x2965,0x2965,0x2965,0x2965,0x2165,0x2985,0x2986,0x2986,0x2986,0x2985,0x31a6,0x2985,0x29a6,0x2985,0x31a6,0x2985,0x2985,0x2165,0x2165,0x2986,0x2965,0x2985,0x31c6,0x31c6,0x31a6,0x2965,0x2965,0x31a6,0x31a6,0x2986,0x2986,0x2986,0x2986,0x2966,0x31c7,0x3186,0x31a6,0x31a7,0x3186,0x2986,0x1904,0x0020,0x0861,0x0861,0x0041,0x0841,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x10a2,0x18e3,0x18c3,0x18c3,0x18a3,0x1082,0x0861,0x1082,0x52cd,0x94d2,0x3986,0x2945,0x20e3,0x18c3,0x2103,0x2124,0x2104,0x2124,0x2924,0x2124,0x20e3,0x10a2,0x10a2,0x18c3,0x18a3,0x2946,0x8c94,0x6b4e,0x0841,0x0861,0x18c3,0x2104,0x2104,0x2944,0x20e3,0x0861,0x0861,0x0861,0x0861,0x1082,0x10a3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c2,0x49c5,0x1082,0x0000,0x3186,0x39e7,0x3186,0x3186,0x31a6,0x2986,0x2965,0x2945,0x3186,0x39e7,0x3186,0x2145,0x2966,0x2986,0x2986,0x2966,0x2945,0x2986,0x2986,0x2966,0x2986,0x31a6,0x3186,0x2965,0x2965,0x2965,0x2965,0x2965,0x2165,0x29a6,0x31a6,0x2965,0x31a6,0x2986,0x2986,0x31a6,0x2966,0x2966,0x2145,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x2986,0x2986,0x2965,0x2965,0x3186,0x3186,0x2965,0x2985,0x2986,0x31a6,0x2986,0x2965,0x2165,0x2986,0x3186,0x2145,0x31a6,0x31a6,0x2945,0x3186,0x2145,0x2145,0x2986,0x2145,0x2985,0x31c7,0x2965,0x2145,0x2145,0x31a6,0x2965,0x2945,0x2965,0x2965,0x2945,0x2144,0x2145,0x2145,0x2165,0x2145,0x2145,0x2125,0x2965,0x2945,0x2945,0x2945,0x2965,0x2965,0x2124,0x2144,0x2144,0x2124,0x2945,0x2945,0x2125,0x2145,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x1904, +0x2104,0x2965,0x2125,0x2104,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x1904,0x2124,0x2124,0x2124,0x29a6,0x2165,0x2145,0x2965,0x2965,0x2965,0x2145,0x2945,0x2124,0x2124,0x2124,0x2965,0x2145,0x2145,0x2145,0x2125,0x2945,0x2966,0x2145,0x2145,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x2965,0x2985,0x2986,0x2986,0x2185,0x2165,0x2165,0x2965,0x2125,0x2125,0x2125,0x2145,0x2965,0x2985,0x2965,0x2985,0x2986,0x31a6,0x2986,0x2145,0x2165,0x2165,0x2165,0x2945,0x2986,0x29a6,0x2965,0x2965,0x2145,0x2145,0x2965,0x2985,0x2945,0x2945,0x2966,0x2986,0x3186,0x2986,0x2165,0x2145,0x3186,0x3186,0x2985,0x2986,0x2965,0x2986,0x2985,0x2965,0x2965,0x2986,0x2986,0x3186,0x2965,0x2966,0x2986,0x2986,0x31c7,0x2966,0x2145,0x2966,0x2986,0x2986,0x3186,0x31c7,0x3186,0x3186,0x18e3,0x1082,0x1082,0x1082,0x0841,0x0841,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x0862,0x1082,0x1082,0x1082,0x1082,0x1082,0x18a3,0x20e4,0x18e3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x18c3,0x18c3,0x18c3,0x18a3,0x1082,0x0861,0x0861,0x18c3,0x3a08,0x39e7,0x4208,0x39c6,0x18c3,0x18e3,0x18c3,0x2103,0x2104,0x2104,0x2104,0x2124,0x18e3,0x10a2,0x10a2,0x10a2,0x2945,0x2945,0x636d,0x6bae,0x10a2,0x0841,0x1082,0x18e3,0x18e3,0x39c6,0x39a6,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x10a3,0x18c3,0x18a3,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x5288,0x1082,0x1082,0x18a2,0x3186,0x31a6,0x3186,0x3186,0x2986,0x31c7,0x2965,0x31a6,0x31c7,0x31a6,0x2145,0x2986,0x3186,0x31a6,0x2165,0x2965,0x2165,0x2986,0x2986,0x2986,0x31a6,0x2965,0x2965,0x31a6,0x3186,0x2965,0x2986,0x2965,0x2965,0x2985,0x2985,0x2986,0x2986,0x2965,0x3186,0x2965,0x2966,0x2986,0x2986,0x2985,0x2985,0x2165,0x2965,0x29a6,0x2965,0x2986,0x2966,0x2945,0x2965,0x2965,0x2965,0x2965,0x3186,0x31a6,0x2986,0x2965,0x2986,0x2965,0x3186,0x2965,0x2965,0x3186,0x2966,0x2945,0x2966,0x2966,0x2985,0x31c6,0x2165,0x2985,0x2986,0x2965,0x2965,0x2965,0x2965,0x2966,0x3186,0x3166,0x2945,0x2925,0x2125,0x2945,0x2945,0x2124,0x2145,0x2145,0x2965,0x2986,0x2945,0x2965,0x3186,0x2145,0x2124,0x2124,0x2124,0x2125,0x2945,0x2965,0x2144,0x2124,0x2965,0x2104,0x2124,0x2965,0x2965,0x3186,0x1903,0x2124, +0x2124,0x2125,0x2104,0x2125,0x2145,0x2145,0x2124,0x2124,0x2124,0x2104,0x1904,0x2124,0x2124,0x1904,0x2124,0x2145,0x2145,0x2145,0x2145,0x2945,0x2965,0x2945,0x2945,0x2945,0x2945,0x2124,0x2965,0x2945,0x2945,0x2145,0x2124,0x2965,0x2145,0x2966,0x2965,0x2965,0x2145,0x2145,0x2965,0x2985,0x2165,0x2965,0x2965,0x2145,0x2965,0x2965,0x2165,0x2965,0x2965,0x2965,0x2986,0x31a6,0x2986,0x2145,0x2145,0x2965,0x2986,0x2986,0x2986,0x2986,0x2986,0x2945,0x2945,0x2965,0x2985,0x2965,0x2965,0x2985,0x2185,0x2165,0x2965,0x3186,0x2985,0x2965,0x2985,0x2965,0x2145,0x2986,0x29a6,0x2986,0x2986,0x2965,0x2966,0x2966,0x2966,0x2965,0x2986,0x3186,0x2986,0x2965,0x2986,0x31c7,0x2986,0x2986,0x3186,0x2966,0x2965,0x2965,0x31c6,0x29a6,0x2986,0x2966,0x2966,0x3187,0x2986,0x2986,0x2986,0x2966,0x3186,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18a3,0x20e4,0x2103,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x0841,0x0861,0x18e3,0x2104,0x18c3,0x31c6,0x2944,0x2965,0x18c3,0x18c3,0x18e3,0x2944,0x2945,0x2924,0x2103,0x18c3,0x10a2,0x18a2,0x20e3,0x2124,0x39e7,0x2124,0x31e8,0x2125,0x0861,0x0861,0x18c2,0x18c2,0x2965,0x3186,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x18a2,0x10a2,0x18c3,0x6b2c,0x10a2,0x10a2,0x18e4,0x39a7,0x2986,0x3186,0x2965,0x2986,0x2965,0x2965,0x2965,0x31a6,0x2986,0x2986,0x31c7,0x31a6,0x2965,0x2986,0x2945,0x29a6,0x31c6,0x2965,0x2985,0x2986,0x31c6,0x2986,0x31a6,0x2986,0x2965,0x31a6,0x2986,0x2986,0x2965,0x2985,0x2986,0x3186,0x2965,0x2965,0x2986,0x2965,0x2986,0x31c6,0x2165,0x2965,0x31a6,0x2945,0x2965,0x2165,0x29a6,0x2966,0x2945,0x2986,0x2986,0x2965,0x2965,0x39c7,0x31a6,0x2965,0x2165,0x2986,0x2986,0x2965,0x2965,0x2986,0x2145,0x2945,0x2966,0x3186,0x2966,0x2965,0x31a6,0x29a6,0x2965,0x2945,0x2965,0x2965,0x2945,0x2145,0x2965,0x2986,0x2966,0x2965,0x3186,0x2986,0x2945,0x2965,0x2944,0x2965,0x2965,0x2945,0x2986,0x2965,0x2965,0x2965,0x3186,0x2145,0x2124,0x2124,0x2125,0x2104,0x2965,0x2944,0x2124,0x2145,0x2124,0x2124,0x2104,0x2104,0x2124,0x2124,0x2124, +0x2124,0x2124,0x2125,0x2145,0x2124,0x2145,0x2124,0x2124,0x2104,0x2124,0x1904,0x2124,0x2144,0x2124,0x2124,0x2965,0x2986,0x2124,0x2145,0x2945,0x2124,0x2945,0x2945,0x2965,0x2965,0x2985,0x31c7,0x31a6,0x2124,0x2965,0x2965,0x2165,0x2145,0x2145,0x2965,0x2965,0x2985,0x2986,0x2145,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x31c7,0x2965,0x2965,0x2124,0x39e7,0x3a07,0x2144,0x2965,0x2965,0x2945,0x2986,0x2966,0x2965,0x2965,0x2965,0x2965,0x2965,0x3185,0x2965,0x2965,0x2985,0x2165,0x2165,0x2965,0x2986,0x31c7,0x2986,0x2986,0x2965,0x2965,0x2986,0x2966,0x31c7,0x3186,0x2986,0x2986,0x2965,0x2945,0x3186,0x2986,0x2966,0x2965,0x2986,0x2965,0x31a6,0x31a6,0x2966,0x2965,0x2966,0x2986,0x2965,0x29a6,0x2986,0x2986,0x31a6,0x31a6,0x3186,0x31a6,0x2986,0x31a6,0x31a6,0x2965,0x18c3,0x10c2,0x18c2,0x10a2,0x18e3,0x18e3,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2104,0x2104,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x10a2,0x18e3,0x1082,0x1082,0x1082,0x0861,0x0841,0x0861,0x18c3,0x10a2,0x18c3,0x18e3,0x2104,0x2124,0x2104,0x18e3,0x18c3,0x2944,0x2944,0x2124,0x18e3,0x18c3,0x18e3,0x18c3,0x2944,0x1903,0x2124,0x10a2,0x18e4,0x2987,0x1082,0x0841,0x1082,0x10a2,0x18c3,0x20e3,0x18e3,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18e3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x18a2,0x10a2,0x18c3,0x630c,0x18e3,0x1082,0x2124,0x39c7,0x2986,0x31c7,0x2165,0x2986,0x3186,0x2965,0x2165,0x2986,0x2966,0x2966,0x3186,0x39e7,0x2985,0x31a6,0x2965,0x31a6,0x31a6,0x2986,0x3186,0x2965,0x31a6,0x2965,0x31c7,0x2965,0x2965,0x2965,0x2985,0x2965,0x2965,0x2965,0x2965,0x2985,0x2985,0x2965,0x2145,0x2965,0x2986,0x2986,0x2986,0x2986,0x2986,0x2985,0x2985,0x2985,0x29a6,0x2966,0x2965,0x31a6,0x2985,0x2965,0x2985,0x31a6,0x31a7,0x2966,0x2145,0x29a6,0x2965,0x2985,0x31a6,0x2986,0x3186,0x3186,0x2965,0x2945,0x2945,0x2965,0x2985,0x31a6,0x2985,0x2965,0x2985,0x2945,0x2965,0x2965,0x2965,0x2165,0x2145,0x2165,0x2965,0x2965,0x2986,0x2985,0x2945,0x2965,0x2965,0x2985,0x2124,0x2145,0x2985,0x2965,0x31a6,0x2125,0x2124,0x2124,0x2124,0x2945,0x2945,0x2965,0x2945,0x2124,0x2965,0x2145,0x1904,0x2124,0x2124,0x2124,0x2145, +0x2125,0x2124,0x2145,0x2124,0x1903,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2145,0x2125,0x2145,0x2124,0x2145,0x2965,0x2945,0x2124,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2945,0x2985,0x2965,0x2165,0x2145,0x2145,0x2965,0x2966,0x2965,0x2165,0x2145,0x2986,0x2145,0x2965,0x2965,0x2966,0x2966,0x2945,0x2966,0x2966,0x2966,0x2965,0x2965,0x2965,0x2125,0x2986,0x2986,0x2145,0x2986,0x2965,0x2986,0x29a6,0x2165,0x2986,0x29a6,0x3186,0x2985,0x2965,0x2965,0x2965,0x2986,0x2966,0x2986,0x2986,0x2966,0x2966,0x31a7,0x2965,0x2145,0x2965,0x2986,0x2965,0x2965,0x2986,0x2986,0x31a6,0x3186,0x3186,0x3186,0x2985,0x2965,0x31a6,0x2965,0x31a6,0x31a6,0x2986,0x2986,0x2965,0x2965,0x3186,0x2966,0x2966,0x3186,0x2986,0x31a6,0x31a6,0x31e7,0x2986,0x31a6,0x31c6,0x3a07,0x10a2,0x10a2,0x18e3,0x10a2,0x18e3,0x1924,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x2104,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x0841,0x0841,0x0020,0x0841,0x2945,0x39e6,0x10a2,0x1082,0x0861,0x0841,0x0841,0x0861,0x18c3,0x1082,0x18c3,0x1082,0x18e3,0x18e3,0x2124,0x20e3,0x2103,0x20e3,0x2944,0x2104,0x18c3,0x18c3,0x18e3,0x2144,0x18c3,0x18e3,0x1082,0x18c3,0x10a2,0x2986,0x10c3,0x0841,0x0861,0x1082,0x1082,0x10a2,0x18e3,0x10a2,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x18a2,0x18c3,0x4a8a,0x18e3,0x0020,0x18e3,0x31c6,0x29a6,0x2986,0x2966,0x2966,0x2966,0x2986,0x29a6,0x2965,0x2965,0x3186,0x31a6,0x3186,0x2986,0x2985,0x2985,0x2965,0x2986,0x2165,0x2986,0x2145,0x2145,0x2966,0x2986,0x2965,0x2986,0x2966,0x3186,0x2985,0x2965,0x2965,0x3186,0x31a6,0x3186,0x2965,0x2986,0x2985,0x2986,0x31a6,0x2965,0x2985,0x2965,0x2145,0x2965,0x2986,0x2985,0x2965,0x2966,0x2966,0x2986,0x31a6,0x2986,0x2986,0x3186,0x3186,0x2966,0x2165,0x2965,0x2965,0x2985,0x2985,0x2986,0x31a6,0x31a6,0x2145,0x2985,0x2945,0x2965,0x31a6,0x3186,0x3186,0x2965,0x2965,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x2965,0x2945,0x3186,0x2945,0x2145,0x2144,0x31a6,0x2985,0x2144,0x2965,0x2145,0x2145,0x2145,0x2165,0x2124,0x2965,0x2965,0x2124,0x2145,0x2144,0x2144,0x2124,0x2104,0x2945,0x2945,0x2124,0x2144,0x2124,0x2124, +0x2145,0x1904,0x1904,0x2104,0x1904,0x1904,0x1904,0x2124,0x2124,0x2124,0x2124,0x2124,0x2125,0x2124,0x2124,0x2124,0x2124,0x2125,0x2145,0x2145,0x2945,0x2124,0x2124,0x2145,0x2965,0x2945,0x2124,0x2124,0x2945,0x2965,0x2165,0x2165,0x2165,0x2945,0x31a6,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x2965,0x2965,0x2966,0x2945,0x2965,0x2965,0x2165,0x2165,0x2165,0x2965,0x2986,0x2145,0x31a6,0x2986,0x2145,0x2986,0x2965,0x2986,0x2986,0x2165,0x2165,0x29a6,0x2986,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x2966,0x2986,0x2966,0x2986,0x31a6,0x2986,0x2965,0x2986,0x2986,0x2965,0x2965,0x2965,0x2986,0x2965,0x31a6,0x2986,0x2965,0x2965,0x2985,0x3186,0x2965,0x2966,0x3186,0x2986,0x3186,0x2986,0x2945,0x2965,0x3186,0x2966,0x3186,0x3186,0x2965,0x2986,0x2986,0x2986,0x31a6,0x31c6,0x31c6,0x0881,0x0881,0x18e3,0x18c3,0x10c3,0x18e3,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18e3,0x2124,0x18c3,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0841,0x0020,0x0020,0x0841,0x10a3,0x39c7,0x4226,0x1082,0x1082,0x0861,0x0841,0x0841,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x18c3,0x18c3,0x2924,0x2104,0x2124,0x3165,0x2944,0x18e3,0x20e3,0x20e3,0x18e3,0x1082,0x10a3,0x1082,0x18c3,0x1082,0x1904,0x10a2,0x0841,0x0861,0x1082,0x1082,0x1082,0x18c3,0x1082,0x0861,0x0861,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18a2,0x18c3,0x4208,0x10c2,0x0020,0x10c2,0x31a6,0x31a6,0x31a6,0x2986,0x2986,0x2966,0x2965,0x29a6,0x29a6,0x2965,0x2985,0x2986,0x2985,0x31a6,0x2985,0x2965,0x2965,0x3186,0x31c7,0x31a6,0x2965,0x2966,0x2965,0x2986,0x2966,0x2986,0x3186,0x3186,0x2986,0x2966,0x2966,0x2986,0x2966,0x2965,0x2986,0x31a6,0x2965,0x29a6,0x31e7,0x2165,0x2986,0x2965,0x2985,0x31a6,0x3186,0x3186,0x2986,0x2965,0x29a6,0x31a6,0x31a6,0x29a6,0x2986,0x2986,0x2965,0x2965,0x2965,0x2965,0x2986,0x2985,0x2965,0x2145,0x31a6,0x31a6,0x2965,0x2965,0x2945,0x2965,0x31a6,0x2965,0x3186,0x3186,0x3186,0x2145,0x2145,0x2986,0x2945,0x2945,0x31a6,0x2965,0x2965,0x2986,0x2965,0x2124,0x31a6,0x3186,0x2945,0x2145,0x2965,0x2124,0x2165,0x2165,0x2125,0x2165,0x2986,0x2144,0x2945,0x2965,0x2104,0x2145,0x2965,0x2124,0x2145,0x2945,0x2145,0x2124,0x1904,0x2124, +0x2124,0x2104,0x2104,0x2104,0x2104,0x2125,0x2124,0x2145,0x2124,0x1904,0x2124,0x2145,0x2125,0x2124,0x2124,0x2145,0x2145,0x2965,0x2145,0x2145,0x2945,0x2965,0x2124,0x2945,0x2144,0x2124,0x2965,0x2145,0x2945,0x2945,0x2145,0x2165,0x2165,0x2965,0x2965,0x2145,0x2145,0x2965,0x2965,0x2945,0x2945,0x2945,0x2965,0x2965,0x2986,0x3186,0x2965,0x2165,0x2985,0x2965,0x2965,0x2965,0x29a6,0x31a6,0x2965,0x2144,0x3186,0x31a6,0x2986,0x2965,0x2966,0x2966,0x2145,0x2145,0x2965,0x2985,0x2985,0x2985,0x2985,0x2985,0x2986,0x2986,0x3186,0x2986,0x2965,0x2986,0x2986,0x29a6,0x2966,0x2965,0x3186,0x3186,0x3186,0x3186,0x2965,0x2986,0x2965,0x2986,0x31c7,0x2966,0x2966,0x2965,0x2965,0x2965,0x31a6,0x2986,0x2965,0x2986,0x2966,0x2986,0x3186,0x2986,0x2986,0x2986,0x31a6,0x2986,0x31a6,0x2986,0x3186,0x18c3,0x0841,0x18c3,0x2104,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x18c3,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x0861,0x0861,0x0841,0x0020,0x0020,0x0841,0x10a2,0x2104,0x2945,0x2104,0x1082,0x1082,0x1082,0x0841,0x0841,0x0861,0x1082,0x1082,0x1082,0x10a2,0x1082,0x18a2,0x18a2,0x18e3,0x2104,0x2945,0x3185,0x2944,0x2103,0x18c3,0x18e3,0x1082,0x10a2,0x1082,0x1082,0x18c2,0x1082,0x18a2,0x1082,0x0841,0x0861,0x1082,0x1082,0x0861,0x10a2,0x1082,0x0841,0x0861,0x0861,0x0861,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18c3,0x39c7,0x10a2,0x0040,0x10a2,0x3186,0x3186,0x2985,0x31a6,0x2965,0x2985,0x2985,0x2985,0x2965,0x2965,0x2965,0x2986,0x2965,0x31a6,0x2965,0x2965,0x3186,0x2965,0x31a6,0x31a6,0x2965,0x2986,0x2986,0x2986,0x2965,0x2965,0x31a6,0x2966,0x2966,0x2986,0x2965,0x2965,0x2145,0x2965,0x31a6,0x29a6,0x2965,0x2985,0x2986,0x2985,0x2986,0x2985,0x2965,0x31c6,0x31a6,0x2986,0x29a6,0x2986,0x2986,0x2965,0x2986,0x29a6,0x2986,0x2986,0x2965,0x2985,0x2965,0x2145,0x2986,0x2965,0x2986,0x31a6,0x2986,0x2124,0x2945,0x2965,0x2965,0x2145,0x31c6,0x31a6,0x2965,0x2985,0x31a6,0x29a6,0x2965,0x2945,0x2945,0x31c7,0x2965,0x2945,0x2965,0x2945,0x2965,0x2985,0x2986,0x2986,0x2965,0x2124,0x2145,0x2145,0x2145,0x2966,0x2125,0x2966,0x2965,0x2145,0x2965,0x2965,0x2124,0x2145,0x2945,0x2124,0x2124,0x2945,0x2124,0x2145,0x2145,0x1904, +0x2124,0x2124,0x2124,0x2125,0x2145,0x2125,0x2124,0x2124,0x2124,0x2125,0x2124,0x2124,0x2145,0x2145,0x1924,0x2124,0x2145,0x2966,0x2145,0x2145,0x2965,0x2945,0x2124,0x2124,0x2145,0x2145,0x31a6,0x2985,0x2124,0x2945,0x2165,0x2144,0x2145,0x2965,0x2965,0x2145,0x2145,0x2145,0x2124,0x2144,0x2965,0x2965,0x3186,0x2985,0x2965,0x2144,0x2145,0x2965,0x2965,0x2985,0x2965,0x31c6,0x39e7,0x2965,0x2145,0x2145,0x2965,0x31a6,0x2986,0x2965,0x2966,0x2986,0x2145,0x2145,0x2165,0x2165,0x2165,0x2985,0x2965,0x2165,0x2985,0x29a6,0x2965,0x2965,0x31a6,0x31a6,0x2986,0x2986,0x2986,0x2986,0x2986,0x2965,0x2986,0x31a6,0x2145,0x2986,0x31c7,0x2966,0x31a6,0x2986,0x2986,0x2986,0x2965,0x2986,0x2965,0x2965,0x2986,0x31a6,0x2965,0x2965,0x2966,0x31a6,0x31a6,0x2965,0x2986,0x2986,0x2985,0x2965,0x31a6,0x18c3,0x0020,0x10a2,0x2104,0x18e3,0x10c2,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18e3,0x1082,0x1082,0x1082,0x10a2,0x1082,0x0861,0x0861,0x0841,0x0020,0x0020,0x0841,0x10a2,0x18c3,0x18e3,0x20e4,0x18c3,0x18a3,0x10a3,0x18a3,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x1081,0x10a2,0x10a2,0x10a2,0x2103,0x2104,0x2944,0x20e3,0x18c3,0x18c3,0x18e3,0x1061,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x0861,0x0841,0x0861,0x1082,0x1082,0x0861,0x10a2,0x1082,0x0020,0x0841,0x0861,0x0861,0x1081,0x10a2,0x1082,0x1082,0x1082,0x18a3,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18c3,0x31a6,0x1082,0x0840,0x18c3,0x3186,0x31a6,0x2965,0x2965,0x2986,0x2965,0x2965,0x2965,0x2985,0x2985,0x2965,0x2985,0x2165,0x2965,0x2986,0x2986,0x2986,0x2965,0x2165,0x2965,0x2965,0x31c6,0x31c6,0x2965,0x3186,0x39c7,0x2965,0x2965,0x2965,0x31a6,0x2966,0x2966,0x2965,0x2945,0x2965,0x31a6,0x2985,0x2965,0x2965,0x2965,0x2965,0x2985,0x29a6,0x2986,0x2145,0x29a6,0x2986,0x31a6,0x2985,0x2965,0x2965,0x31a6,0x31c6,0x31c6,0x29a6,0x2986,0x2965,0x2986,0x31a7,0x2966,0x2985,0x31a6,0x2986,0x2165,0x3186,0x3186,0x2965,0x2965,0x31a6,0x31a6,0x2965,0x2145,0x29a6,0x2986,0x2965,0x2145,0x2965,0x31c6,0x3186,0x2986,0x2985,0x2965,0x2124,0x2945,0x2144,0x2965,0x2986,0x2965,0x2145,0x2145,0x2145,0x2966,0x2965,0x2145,0x2125,0x2145,0x2125,0x2124,0x2124,0x2985,0x2145,0x2104,0x2124,0x2144,0x2124,0x2124,0x1904,0x2145, +0x2124,0x2124,0x2145,0x2144,0x2144,0x2124,0x1904,0x2124,0x2125,0x2124,0x2124,0x1904,0x2124,0x2125,0x2145,0x2145,0x2124,0x2124,0x2145,0x2945,0x2124,0x2104,0x2124,0x2124,0x2965,0x2945,0x2945,0x31a6,0x2124,0x2145,0x2145,0x2144,0x2145,0x2965,0x2986,0x2986,0x2145,0x2144,0x2145,0x2965,0x2965,0x2965,0x2985,0x3186,0x2965,0x2945,0x2945,0x2985,0x2965,0x2965,0x2965,0x2965,0x2986,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x3186,0x2965,0x2145,0x2965,0x2986,0x2965,0x2945,0x2145,0x2945,0x2965,0x2985,0x2985,0x2965,0x2986,0x2986,0x2965,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x2965,0x2986,0x2965,0x2986,0x2986,0x2965,0x2986,0x31a6,0x2966,0x2986,0x2986,0x2965,0x2965,0x2985,0x2986,0x2985,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x2986,0x2986,0x29a6,0x2985,0x31c6,0x29a6,0x10a2,0x0020,0x0861,0x18e3,0x1904,0x18c3,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x2104,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x0861,0x0861,0x0861,0x0841,0x0020,0x0020,0x10a2,0x18e3,0x10a2,0x18c3,0x2104,0x18e3,0x2104,0x18e3,0x18e4,0x1082,0x0841,0x0861,0x1082,0x1082,0x1082,0x1082,0x1081,0x10a2,0x10a2,0x18a2,0x2103,0x2924,0x2924,0x20e3,0x2104,0x18e3,0x18c3,0x0861,0x1082,0x1082,0x1082,0x1082,0x0861,0x10a2,0x0861,0x0841,0x1082,0x10a2,0x1082,0x1082,0x18c3,0x10a2,0x0020,0x0020,0x0841,0x1082,0x0861,0x1082,0x10a2,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18c3,0x2944,0x0861,0x0000,0x10c3,0x31c6,0x3186,0x2985,0x3186,0x31c6,0x3186,0x2965,0x2165,0x2986,0x2985,0x2965,0x2966,0x2965,0x2965,0x3186,0x3186,0x31c7,0x2985,0x29a6,0x2986,0x2965,0x29a6,0x2965,0x2986,0x3186,0x2965,0x2986,0x2986,0x2965,0x3186,0x2986,0x3186,0x2965,0x2945,0x2965,0x31a6,0x2965,0x2965,0x2986,0x3186,0x31a6,0x2965,0x2985,0x2986,0x2145,0x2986,0x2986,0x2985,0x31c7,0x31a6,0x2965,0x2986,0x2965,0x2986,0x2986,0x2965,0x2986,0x31a6,0x31a6,0x2986,0x31a6,0x2965,0x31a6,0x31a6,0x2966,0x2965,0x2965,0x2965,0x2986,0x2965,0x2986,0x2165,0x2165,0x2986,0x2185,0x2165,0x2965,0x2965,0x2145,0x2986,0x3186,0x2965,0x2965,0x2965,0x2124,0x2986,0x2965,0x2965,0x2145,0x2145,0x2145,0x2145,0x2965,0x2965,0x2125,0x2125,0x2124,0x2144,0x2985,0x2965,0x2104,0x2124,0x2145,0x2965,0x2124,0x2124,0x2144,0x2124, +0x2124,0x2145,0x2145,0x2124,0x2124,0x2124,0x2124,0x2124,0x2145,0x2945,0x2145,0x2145,0x2125,0x2125,0x2145,0x2145,0x2124,0x2124,0x2124,0x2144,0x2124,0x2965,0x2965,0x2145,0x2945,0x2124,0x2925,0x2144,0x2124,0x2124,0x2965,0x2945,0x2965,0x2145,0x2945,0x2985,0x2965,0x2145,0x2965,0x2145,0x2145,0x2965,0x2945,0x2945,0x2965,0x2965,0x2965,0x2945,0x2144,0x2965,0x2965,0x2965,0x2965,0x31a6,0x2965,0x2145,0x2985,0x31a6,0x2965,0x2986,0x2986,0x2965,0x2965,0x3186,0x31a6,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2985,0x2986,0x2986,0x2986,0x2986,0x2965,0x2986,0x31a6,0x31a6,0x2986,0x2966,0x2986,0x31a6,0x2986,0x2986,0x2986,0x2965,0x2965,0x2985,0x2986,0x2965,0x2986,0x2986,0x2965,0x2985,0x2965,0x2965,0x2986,0x2986,0x31c7,0x31a6,0x2965,0x2986,0x2986,0x2986,0x2985,0x29a6,0x29a6,0x0882,0x0020,0x0841,0x10a2,0x18e3,0x10a2,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a3,0x2104,0x18c3,0x1082,0x10a2,0x18a2,0x10a2,0x1082,0x0861,0x0861,0x0841,0x0020,0x0020,0x1082,0x18c3,0x10a2,0x1082,0x18c3,0x2104,0x18e3,0x18c3,0x18c3,0x2145,0x10a2,0x0841,0x0861,0x1082,0x0861,0x1082,0x0861,0x1082,0x10a2,0x18c2,0x18e3,0x18e3,0x2944,0x20e3,0x18e3,0x2944,0x18e3,0x10a2,0x0861,0x1082,0x1082,0x1082,0x1082,0x0861,0x10a2,0x0861,0x0841,0x10a2,0x10a2,0x1082,0x2104,0x3186,0x18e3,0x0020,0x0020,0x0020,0x0861,0x1082,0x0861,0x10a2,0x18a3,0x1082,0x1082,0x10a2,0x18c3,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x18a2,0x18c3,0x2103,0x0861,0x0000,0x18e3,0x4208,0x39c7,0x3186,0x31a7,0x3186,0x3186,0x2986,0x2966,0x29a6,0x2986,0x2965,0x2966,0x3186,0x3186,0x31a6,0x3186,0x31a6,0x2986,0x31a6,0x2986,0x31a6,0x2986,0x2965,0x2965,0x2966,0x2965,0x2986,0x2986,0x2965,0x2965,0x3186,0x39e7,0x2985,0x2986,0x3186,0x2965,0x2965,0x2965,0x3186,0x31a6,0x2986,0x2985,0x2986,0x31a6,0x31c6,0x2965,0x2945,0x4a69,0x39e7,0x2986,0x31a7,0x2966,0x2986,0x2945,0x2986,0x3186,0x2965,0x2986,0x2986,0x2986,0x2985,0x31a6,0x2986,0x2965,0x2945,0x2986,0x31a6,0x2965,0x2965,0x2145,0x2965,0x29a6,0x29a6,0x2165,0x2165,0x2145,0x2165,0x2965,0x2945,0x2986,0x2986,0x2145,0x2965,0x3186,0x2965,0x2965,0x2985,0x2145,0x2144,0x2145,0x2145,0x2965,0x2965,0x2945,0x2124,0x2145,0x2965,0x3186,0x2124,0x2144,0x2945,0x2965,0x2965,0x2965,0x2124,0x2965,0x2124,0x2145, +0x2124,0x2945,0x2145,0x2145,0x2125,0x2124,0x2124,0x2965,0x2945,0x2945,0x2945,0x2945,0x2124,0x2125,0x2125,0x2145,0x2145,0x2125,0x2124,0x2145,0x2124,0x2945,0x2965,0x2124,0x2124,0x2124,0x2945,0x2945,0x2145,0x2144,0x2124,0x2965,0x2965,0x2945,0x2945,0x2945,0x2145,0x2965,0x2985,0x2145,0x2965,0x2965,0x2965,0x2986,0x2965,0x2165,0x2965,0x2945,0x2945,0x3186,0x3186,0x2985,0x2965,0x2945,0x2965,0x2965,0x3186,0x31a6,0x2965,0x2965,0x3186,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x2965,0x2986,0x31a6,0x2965,0x2985,0x2985,0x2945,0x2986,0x2986,0x2986,0x2966,0x2985,0x2986,0x2965,0x2966,0x2965,0x2986,0x31a6,0x2986,0x31c6,0x2985,0x2986,0x31a6,0x31a6,0x2986,0x2965,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x2965,0x2986,0x2986,0x2965,0x2966,0x39e7,0x31a6,0x2965,0x31a6,0x3186,0x1082,0x0020,0x0040,0x1082,0x18e3,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a3,0x18e3,0x2103,0x10a2,0x1082,0x18a2,0x18c3,0x10a2,0x0861,0x0861,0x0861,0x0020,0x0020,0x0861,0x18e4,0x10a3,0x1082,0x0861,0x18e3,0x2944,0x2104,0x10a3,0x18c3,0x2966,0x2104,0x0841,0x0861,0x1082,0x0861,0x1082,0x0861,0x1082,0x1082,0x18a2,0x18e3,0x18c3,0x18c3,0x10a2,0x10a2,0x18e3,0x18c3,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1062,0x1082,0x0841,0x0861,0x18e3,0x10a2,0x1082,0x31a6,0x5289,0x2104,0x1082,0x0020,0x0020,0x0841,0x1082,0x1082,0x1082,0x18c3,0x18a2,0x1082,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x18c3,0x18e3,0x0841,0x0000,0x18c3,0x31c7,0x31a6,0x31c7,0x31a7,0x31a7,0x31c7,0x31c7,0x31a6,0x2986,0x2986,0x2965,0x31a6,0x31a6,0x2965,0x2986,0x31c6,0x29a6,0x3186,0x31a6,0x3186,0x3186,0x2986,0x2965,0x3186,0x31a6,0x2986,0x2986,0x31a6,0x2985,0x29a6,0x2145,0x2985,0x3186,0x2986,0x3186,0x2986,0x2986,0x31a6,0x2986,0x2945,0x2965,0x2966,0x31a6,0x31a6,0x31a6,0x2965,0x31c6,0x3a08,0x4228,0x31a7,0x2986,0x2986,0x2986,0x31a6,0x39c7,0x2986,0x2986,0x39e7,0x2986,0x39e7,0x31a6,0x31a6,0x31a6,0x2145,0x2965,0x31a7,0x2965,0x2145,0x2965,0x2986,0x2966,0x2945,0x31a6,0x2145,0x2145,0x2965,0x2124,0x2965,0x2985,0x2145,0x2144,0x2965,0x2986,0x2124,0x31c6,0x31c7,0x2965,0x2965,0x2965,0x2145,0x2145,0x2986,0x2945,0x2124,0x2124,0x2145,0x31a6,0x2965,0x2124,0x2945,0x2945,0x2945,0x2124,0x2124,0x2124,0x31a6,0x2144,0x2104, +0x2124,0x2124,0x2144,0x2145,0x2145,0x2945,0x2124,0x2145,0x2145,0x2145,0x2144,0x2145,0x2124,0x2125,0x2125,0x2125,0x2125,0x2125,0x2945,0x2145,0x2165,0x2144,0x2144,0x2145,0x2965,0x2124,0x2945,0x2945,0x2965,0x2145,0x2124,0x2945,0x2145,0x2945,0x2965,0x2965,0x2165,0x2165,0x2165,0x2165,0x2145,0x2965,0x2965,0x2985,0x2985,0x2165,0x2165,0x2985,0x2986,0x2965,0x2966,0x2965,0x2945,0x2945,0x2986,0x2985,0x2985,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2965,0x2986,0x2986,0x2165,0x2965,0x2985,0x31a6,0x2986,0x31a6,0x2965,0x2965,0x2986,0x2986,0x2966,0x2986,0x2986,0x2965,0x2965,0x2966,0x2986,0x2986,0x2965,0x2985,0x2985,0x2145,0x2965,0x31a6,0x2965,0x2986,0x31a6,0x31a6,0x2965,0x2965,0x3186,0x31a6,0x2986,0x3186,0x3186,0x2966,0x3186,0x2965,0x31a7,0x31a7,0x3186,0x39c7,0x2965,0x0861,0x0000,0x0020,0x1082,0x18c3,0x18c3,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a3,0x2124,0x18c3,0x1082,0x10a2,0x18a2,0x18a2,0x1081,0x0861,0x0861,0x0841,0x0020,0x0841,0x18e3,0x18e3,0x1082,0x0861,0x0841,0x2104,0x2965,0x2124,0x18e3,0x2104,0x2966,0x2986,0x1082,0x0841,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18c3,0x10a2,0x1082,0x1082,0x10a2,0x18c2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x1081,0x1082,0x1062,0x0841,0x1082,0x1904,0x10a3,0x10a2,0x2124,0x4207,0x20e3,0x10a2,0x0861,0x0020,0x0020,0x0841,0x1082,0x0861,0x10a2,0x18e3,0x18a2,0x1082,0x10a2,0x18e3,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x18a2,0x18c3,0x18c2,0x0841,0x0020,0x10a2,0x31a6,0x29a6,0x31c7,0x31a7,0x3186,0x3187,0x2966,0x3186,0x3186,0x31a6,0x2986,0x2965,0x2986,0x3186,0x31a6,0x2985,0x29a6,0x2986,0x3186,0x2985,0x2965,0x2985,0x3186,0x2986,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x2145,0x2145,0x2965,0x2965,0x2965,0x2985,0x2986,0x2965,0x31a6,0x2986,0x3186,0x2945,0x2145,0x2965,0x3186,0x31a7,0x2986,0x2985,0x2965,0x39e7,0x3186,0x3186,0x2966,0x3186,0x3186,0x3186,0x31a6,0x31c6,0x31a6,0x31a6,0x31c6,0x31a6,0x2986,0x3186,0x2945,0x2965,0x2966,0x2145,0x2965,0x2965,0x2986,0x31a6,0x3186,0x31a6,0x3186,0x2965,0x2965,0x2165,0x2965,0x2965,0x2945,0x2145,0x2165,0x2985,0x2965,0x3186,0x31a6,0x2985,0x2986,0x2145,0x2945,0x2144,0x2945,0x2124,0x2145,0x2945,0x2144,0x2965,0x2145,0x2145,0x2145,0x2986,0x2945,0x2124,0x2124,0x2145,0x2986,0x2965,0x2144, +0x2124,0x2945,0x2145,0x2945,0x2144,0x2945,0x2145,0x2145,0x2145,0x2145,0x2144,0x2124,0x2945,0x2965,0x2145,0x2145,0x2124,0x2145,0x2965,0x1904,0x2124,0x2144,0x2145,0x2965,0x2945,0x2144,0x2145,0x2145,0x2965,0x2144,0x2124,0x2124,0x2144,0x2965,0x2165,0x2965,0x2985,0x2145,0x2145,0x2986,0x2965,0x2945,0x2945,0x2965,0x2986,0x2965,0x2965,0x2965,0x2986,0x2985,0x2986,0x2966,0x2966,0x2965,0x2985,0x2965,0x2965,0x2965,0x31a6,0x31a6,0x2965,0x2985,0x2965,0x2985,0x31a6,0x2986,0x2986,0x2986,0x2966,0x2966,0x2986,0x2965,0x2986,0x2986,0x2986,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x2965,0x2986,0x2986,0x31a6,0x3185,0x2985,0x2986,0x2165,0x2165,0x29a6,0x2966,0x2966,0x3186,0x2985,0x2965,0x2945,0x2986,0x31a6,0x2965,0x31a6,0x31a6,0x3186,0x31a6,0x2986,0x2986,0x31a6,0x31c6,0x31c6,0x2985,0x0861,0x0020,0x0040,0x0861,0x10a2,0x18c3,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x2104,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x0861,0x0861,0x0841,0x0020,0x0020,0x10a2,0x2104,0x10a2,0x0861,0x0841,0x0841,0x2124,0x2965,0x2965,0x3165,0x2965,0x2966,0x39e8,0x2104,0x0841,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x1082,0x10a2,0x10a2,0x18c2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0861,0x0841,0x18c3,0x18e4,0x18c3,0x10a2,0x18e3,0x2965,0x18a2,0x18c2,0x18a2,0x0841,0x0020,0x0020,0x0861,0x0861,0x1082,0x18e3,0x18e3,0x10a2,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18a2,0x18c3,0x18a2,0x0020,0x0000,0x10a2,0x31c6,0x29c6,0x2986,0x31a6,0x3186,0x3186,0x31c7,0x2966,0x3186,0x2986,0x2986,0x2985,0x2985,0x31a6,0x31a6,0x31a6,0x29a6,0x2985,0x2965,0x31c7,0x29a6,0x2145,0x2985,0x2986,0x29a6,0x29a6,0x2986,0x2986,0x31a6,0x2986,0x2985,0x31a6,0x2965,0x2965,0x2965,0x2985,0x2965,0x2965,0x3186,0x31a6,0x2986,0x2965,0x2965,0x31a6,0x3186,0x2965,0x31a6,0x2965,0x2965,0x2965,0x2986,0x2965,0x2966,0x31a7,0x31c7,0x39e7,0x31a6,0x2985,0x31a6,0x31a6,0x31a6,0x2965,0x2965,0x2986,0x31a6,0x2965,0x2965,0x2965,0x2965,0x2965,0x31a6,0x31a7,0x2945,0x3186,0x2966,0x2145,0x2965,0x2985,0x2965,0x2965,0x2165,0x2145,0x2945,0x2965,0x2986,0x2985,0x2965,0x2124,0x2965,0x2985,0x1903,0x2965,0x2986,0x2145,0x2145,0x2145,0x2124,0x2144,0x2965,0x2965,0x2986,0x2144,0x2124,0x2945,0x2124,0x2965,0x2945,0x2124, +0x2104,0x2124,0x2104,0x2124,0x2124,0x2144,0x2145,0x2144,0x2124,0x2144,0x2144,0x2986,0x2145,0x2145,0x2145,0x2965,0x2144,0x2144,0x2144,0x2124,0x2144,0x2986,0x2966,0x2145,0x2145,0x2145,0x2145,0x2145,0x2145,0x2145,0x2965,0x2985,0x2165,0x2985,0x2145,0x2965,0x2965,0x2965,0x2966,0x2966,0x2965,0x2966,0x2986,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2145,0x2965,0x2986,0x31a6,0x2965,0x2965,0x2986,0x2985,0x3186,0x31a7,0x2965,0x2965,0x31c7,0x3186,0x2965,0x2965,0x2145,0x2965,0x31a6,0x2986,0x2986,0x2966,0x2965,0x2986,0x29a6,0x29a6,0x2986,0x2985,0x2985,0x2986,0x2986,0x2985,0x2965,0x2986,0x31a6,0x3186,0x29a6,0x29a6,0x2186,0x2185,0x29a6,0x2986,0x2966,0x2965,0x2985,0x2985,0x2985,0x31a6,0x3186,0x2966,0x2986,0x31a6,0x2986,0x31c7,0x29a6,0x31a6,0x31a6,0x31a6,0x2986,0x29a6,0x0881,0x0020,0x0841,0x0861,0x10a2,0x18e3,0x1082,0x1082,0x1081,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a3,0x2104,0x18e3,0x1082,0x1082,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0841,0x0020,0x0841,0x2104,0x18c3,0x1082,0x0841,0x0020,0x0841,0x2944,0x2965,0x39c7,0x5248,0x39c7,0x2986,0x4229,0x528a,0x18a2,0x0841,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x0861,0x0841,0x10a3,0x2945,0x18e3,0x18c3,0x18c3,0x2104,0x2945,0x0861,0x1082,0x18c3,0x1082,0x0020,0x0020,0x0841,0x0861,0x0861,0x18c2,0x18e3,0x18c2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x10a2,0x18c3,0x18a2,0x0841,0x0020,0x1082,0x2986,0x31c6,0x31c7,0x2985,0x31c6,0x39e7,0x31a6,0x3186,0x31a6,0x3186,0x31c7,0x31a6,0x31a6,0x2986,0x31c7,0x2986,0x29a6,0x29a6,0x29a6,0x31a6,0x2985,0x2965,0x2986,0x2986,0x2165,0x31c7,0x2986,0x2986,0x31a6,0x3186,0x2985,0x2965,0x2986,0x2986,0x2965,0x31a6,0x2985,0x2965,0x2986,0x31a6,0x3186,0x3186,0x2985,0x2965,0x2965,0x2986,0x39c7,0x3186,0x2986,0x31a6,0x2986,0x2966,0x2966,0x3186,0x31a7,0x3186,0x2965,0x2965,0x3186,0x31a6,0x2985,0x2986,0x3186,0x31a6,0x2965,0x2986,0x31a6,0x2965,0x31a6,0x31a6,0x31a6,0x3186,0x2966,0x2966,0x2966,0x2945,0x2945,0x2945,0x2985,0x2965,0x2144,0x2965,0x2965,0x2945,0x2965,0x2165,0x2965,0x2144,0x2965,0x29a6,0x2145,0x2965,0x2986,0x2145,0x2125,0x2965,0x2965,0x2145,0x2965,0x2144,0x2945,0x2965,0x2965,0x2965,0x2144,0x2124,0x2985,0x2945, +0x2104,0x2124,0x2124,0x2124,0x2124,0x2945,0x2145,0x2145,0x2124,0x1904,0x2144,0x2965,0x2124,0x2125,0x2145,0x2125,0x2945,0x2145,0x2145,0x2145,0x2145,0x31a6,0x2966,0x2125,0x2165,0x2124,0x2125,0x2145,0x2145,0x2145,0x2945,0x2966,0x2966,0x2945,0x2965,0x2965,0x2965,0x2966,0x2965,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2945,0x2945,0x2965,0x2965,0x31a7,0x31a6,0x2965,0x2965,0x2986,0x2965,0x3186,0x2966,0x31a6,0x29a6,0x2986,0x2986,0x2966,0x2966,0x2965,0x2945,0x2965,0x2965,0x2965,0x2986,0x2986,0x2986,0x2986,0x2165,0x2965,0x2966,0x2986,0x2986,0x2986,0x2966,0x2986,0x31c7,0x2965,0x2966,0x2986,0x2986,0x2185,0x2185,0x2986,0x2966,0x2986,0x2986,0x3186,0x2985,0x2965,0x2986,0x2966,0x3186,0x3186,0x2986,0x2986,0x29a6,0x29a6,0x29a6,0x31a6,0x2985,0x29a6,0x2986,0x0882,0x0020,0x0841,0x1082,0x18c3,0x2124,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x2124,0x10a2,0x0862,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0020,0x0020,0x10a2,0x2104,0x10a2,0x0861,0x0841,0x0020,0x1082,0x2944,0x2945,0x4207,0x5289,0x5289,0x39c7,0x4208,0x6b6d,0x4207,0x1061,0x0861,0x1082,0x18a2,0x18a2,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c2,0x1082,0x0841,0x1082,0x31a7,0x3186,0x2104,0x20e4,0x2104,0x2945,0x2945,0x0841,0x0861,0x18c3,0x18a3,0x0841,0x0020,0x0020,0x0861,0x0861,0x1082,0x18e3,0x18c3,0x10a2,0x1082,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18a2,0x18c3,0x10a2,0x0841,0x0020,0x10a2,0x39c7,0x31a6,0x31c7,0x2986,0x3186,0x31c7,0x39c7,0x31a6,0x31c7,0x2986,0x3186,0x3186,0x31a6,0x31a6,0x31a6,0x2986,0x2986,0x2985,0x3186,0x2965,0x29a6,0x31a6,0x31a6,0x31a7,0x2966,0x2986,0x2965,0x2965,0x31a6,0x31a6,0x2965,0x2965,0x2985,0x2986,0x3186,0x2986,0x31a6,0x2986,0x2986,0x2986,0x31a6,0x2986,0x2986,0x2985,0x2965,0x2965,0x2965,0x3186,0x2985,0x31a6,0x3186,0x2966,0x2986,0x2966,0x2965,0x2965,0x2965,0x2965,0x2986,0x31c7,0x3186,0x2986,0x2986,0x29a6,0x2965,0x3186,0x2965,0x2986,0x31a6,0x2965,0x2985,0x2965,0x2986,0x2986,0x2986,0x2965,0x2966,0x2165,0x2965,0x2945,0x2144,0x2986,0x2985,0x2965,0x2965,0x2965,0x2965,0x2144,0x2965,0x2145,0x31c6,0x31a6,0x2945,0x2966,0x2966,0x2965,0x2145,0x2144,0x2985,0x2965,0x2945,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x2965, +0x2124,0x2124,0x1924,0x1924,0x2144,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2124,0x2124,0x2945,0x2945,0x2965,0x31a6,0x2145,0x2125,0x2125,0x2125,0x2125,0x2124,0x2945,0x2145,0x2124,0x2145,0x2145,0x2945,0x2125,0x2125,0x2945,0x2966,0x2945,0x2986,0x2965,0x2965,0x2965,0x2965,0x31a6,0x3186,0x2965,0x2965,0x31a6,0x2965,0x2985,0x31a6,0x2986,0x2986,0x2965,0x3166,0x2965,0x2945,0x2965,0x2986,0x31a6,0x2986,0x2986,0x3186,0x2966,0x2986,0x2986,0x3186,0x2986,0x3166,0x31a6,0x31a6,0x2985,0x2945,0x2966,0x2986,0x2986,0x2986,0x2986,0x29a6,0x31a6,0x2986,0x2986,0x2986,0x2965,0x29a6,0x29a6,0x29a6,0x31a6,0x2986,0x29a6,0x2986,0x2986,0x2986,0x2965,0x2985,0x2986,0x31a6,0x3186,0x3186,0x2986,0x31a6,0x3186,0x2986,0x3186,0x3186,0x31a7,0x31a7,0x2986,0x2986,0x31a6,0x31a6,0x31a6,0x2986,0x0861,0x0020,0x0841,0x1082,0x18e3,0x2104,0x1082,0x1082,0x0861,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x2124,0x1082,0x1082,0x1082,0x1082,0x0861,0x0841,0x0861,0x0841,0x0020,0x0841,0x18e4,0x18c3,0x1082,0x0841,0x0020,0x0821,0x18c3,0x2944,0x2965,0x39c6,0x4207,0x5aea,0x4208,0x39e8,0x4a6a,0x5aeb,0x2945,0x0861,0x0861,0x1082,0x10a2,0x18c3,0x18a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x1082,0x0861,0x0861,0x2986,0x4229,0x3186,0x2946,0x2945,0x2945,0x31a6,0x2924,0x0020,0x0841,0x1082,0x18c3,0x1061,0x0020,0x0020,0x0841,0x0861,0x0861,0x18c3,0x18e3,0x18c3,0x1082,0x10a2,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18a2,0x18c3,0x18a2,0x0841,0x0000,0x18c3,0x39c7,0x2966,0x31a7,0x39e8,0x2966,0x31a7,0x3a08,0x2986,0x2966,0x2986,0x3186,0x31a6,0x31c7,0x39c7,0x31a6,0x3186,0x3186,0x3186,0x3186,0x39e7,0x31a6,0x31a6,0x39c7,0x2986,0x31a6,0x2986,0x2965,0x2965,0x31a6,0x3186,0x31a6,0x31a6,0x2986,0x2985,0x2985,0x2965,0x31a6,0x31c6,0x2986,0x2165,0x31a6,0x3186,0x3186,0x2965,0x3186,0x2986,0x2985,0x31a6,0x3186,0x2965,0x2966,0x2966,0x31a7,0x3186,0x2945,0x2965,0x3186,0x2945,0x2965,0x2965,0x31a6,0x39c7,0x2965,0x2986,0x2986,0x31a6,0x31a6,0x2986,0x31c7,0x3186,0x2144,0x2965,0x2986,0x2985,0x31a6,0x2966,0x2145,0x2144,0x2165,0x2965,0x2986,0x31a6,0x2986,0x2986,0x2965,0x2945,0x2985,0x2965,0x2124,0x2965,0x2965,0x2945,0x2145,0x2966,0x2966,0x2965,0x2145,0x2145,0x2145,0x2124,0x2965,0x2965,0x2124,0x2145,0x2145,0x2145,0x2965,0x2124, +0x2945,0x2124,0x2124,0x2124,0x2945,0x2124,0x2145,0x2144,0x2144,0x31a6,0x2985,0x2124,0x2945,0x2965,0x2965,0x2965,0x2145,0x2145,0x2945,0x2125,0x2124,0x2145,0x2145,0x2145,0x2145,0x2124,0x2145,0x2145,0x2145,0x2945,0x2165,0x2965,0x2945,0x2965,0x2965,0x2965,0x2145,0x2965,0x2965,0x2985,0x2986,0x2986,0x2965,0x3186,0x3186,0x2965,0x2965,0x2965,0x2966,0x3186,0x3186,0x2966,0x2965,0x2965,0x2985,0x2985,0x2965,0x2965,0x2986,0x3186,0x2966,0x2986,0x3186,0x2986,0x2965,0x2986,0x2986,0x2985,0x2965,0x2986,0x2986,0x2965,0x2965,0x2165,0x29a6,0x31e7,0x2985,0x2986,0x29a6,0x2986,0x29a6,0x2986,0x2965,0x2986,0x2986,0x3186,0x31a6,0x3186,0x2986,0x31a6,0x2965,0x2986,0x2985,0x2985,0x3186,0x3186,0x31a7,0x3186,0x2986,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x31a6,0x31c7,0x31c7,0x31a6,0x31a6,0x1082,0x0020,0x0841,0x0861,0x18c3,0x2104,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2104,0x18e3,0x1082,0x1082,0x1082,0x0861,0x0861,0x0841,0x0861,0x0841,0x0020,0x0861,0x2104,0x10a2,0x1082,0x0841,0x0020,0x0861,0x2104,0x2124,0x3185,0x39a6,0x3185,0x4a48,0x4a48,0x4a28,0x39a7,0x4208,0x3a08,0x18e3,0x0861,0x0841,0x1061,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c2,0x10a2,0x10a2,0x1062,0x0861,0x0861,0x2104,0x39e8,0x39e8,0x31a7,0x31a7,0x31a7,0x31a6,0x39c6,0x2103,0x0020,0x0020,0x0861,0x10a2,0x10a2,0x0020,0x0020,0x0841,0x0861,0x0861,0x10a2,0x18e3,0x18c3,0x10a2,0x1082,0x18c3,0x18a3,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x18a3,0x18a2,0x18c3,0x18c3,0x0841,0x0020,0x10a2,0x4228,0x31a7,0x31a7,0x39e7,0x31a7,0x31c7,0x31c7,0x2986,0x2986,0x2986,0x2986,0x31c7,0x39e7,0x31a6,0x31a6,0x31a7,0x31a7,0x3186,0x3186,0x31c6,0x2986,0x31c7,0x3186,0x2986,0x31a6,0x3186,0x3186,0x31a6,0x31a6,0x2986,0x31a6,0x2986,0x2985,0x2986,0x2965,0x2985,0x2986,0x2965,0x2165,0x31a6,0x2985,0x2965,0x2986,0x3186,0x3186,0x3186,0x2965,0x31a6,0x31c7,0x31a6,0x2966,0x31a6,0x31a7,0x2966,0x2986,0x2986,0x2966,0x31c7,0x31c7,0x2965,0x2966,0x3186,0x2966,0x2965,0x31a6,0x31c7,0x2986,0x31a6,0x39e7,0x31a6,0x2986,0x2965,0x31a6,0x2986,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x2986,0x2965,0x2986,0x2965,0x2965,0x2945,0x2965,0x2986,0x2124,0x2965,0x2965,0x2945,0x2965,0x3186,0x2945,0x2145,0x2144,0x2985,0x2965,0x2965,0x2145,0x2965,0x2144,0x2145,0x2144,0x2144,0x2124,0x2104, +0x2124,0x2945,0x2945,0x2945,0x2144,0x2124,0x2145,0x2965,0x2965,0x2165,0x2145,0x2145,0x2145,0x2125,0x1924,0x2165,0x2145,0x2124,0x2145,0x2965,0x2965,0x2165,0x2145,0x2145,0x2124,0x2145,0x2145,0x2124,0x2145,0x2145,0x2965,0x2965,0x2965,0x2144,0x2985,0x2986,0x2165,0x2165,0x2165,0x2985,0x2965,0x2986,0x2965,0x2965,0x2986,0x31a6,0x2986,0x2986,0x2966,0x31a6,0x2986,0x2966,0x2965,0x2965,0x2965,0x2165,0x2985,0x2965,0x31a6,0x31c7,0x3186,0x3186,0x2986,0x29a6,0x2986,0x2965,0x2965,0x2965,0x2985,0x31a6,0x2965,0x2145,0x2965,0x2965,0x2965,0x2986,0x2986,0x2965,0x2985,0x31a6,0x2986,0x2966,0x2986,0x2986,0x2985,0x2965,0x31a6,0x31a6,0x2986,0x3186,0x2965,0x3186,0x2965,0x2985,0x31a6,0x2985,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x2986,0x29a6,0x31a6,0x31a7,0x31a6,0x31a7,0x31a6,0x2965,0x1082,0x0020,0x0841,0x0841,0x10a2,0x2944,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2103,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x0841,0x0861,0x0020,0x0020,0x10a2,0x18e3,0x10a2,0x0861,0x0020,0x0020,0x18c3,0x2104,0x2124,0x3185,0x31a5,0x2965,0x31a6,0x4a48,0x5289,0x31a6,0x2925,0x2966,0x2945,0x18c3,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x18e3,0x2145,0x2966,0x31a6,0x39c7,0x4208,0x39e7,0x39e7,0x39a6,0x18e3,0x0020,0x0020,0x0841,0x1082,0x18c3,0x0861,0x0020,0x0020,0x0861,0x0861,0x1082,0x18c3,0x18c3,0x18c2,0x1082,0x18c3,0x18c3,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x0861,0x0020,0x10a2,0x3a08,0x31c7,0x31a7,0x31c7,0x31a7,0x31c7,0x31a7,0x2986,0x31a7,0x31a6,0x2965,0x31a6,0x31a6,0x31c7,0x2986,0x2986,0x2986,0x2965,0x31a7,0x3186,0x3186,0x31a6,0x3186,0x2966,0x2986,0x31a6,0x2966,0x2965,0x2986,0x29a6,0x31c7,0x31a6,0x2985,0x2985,0x2986,0x31a6,0x2986,0x2965,0x31a6,0x31a6,0x2965,0x3186,0x3186,0x31c6,0x2986,0x2965,0x2965,0x3186,0x2986,0x3186,0x2966,0x2966,0x2986,0x2965,0x2986,0x31a6,0x2965,0x29a6,0x29a6,0x39c7,0x3186,0x2965,0x2966,0x3186,0x2986,0x31a6,0x31a6,0x31c7,0x31a6,0x31c7,0x2985,0x3186,0x31a7,0x2966,0x2966,0x2145,0x2965,0x2986,0x2986,0x2965,0x31a6,0x2965,0x2985,0x2945,0x2965,0x3186,0x2945,0x2986,0x2145,0x2145,0x2965,0x2965,0x2145,0x3186,0x3186,0x2945,0x2945,0x31a6,0x2985,0x2144,0x2165,0x2145,0x2124,0x2124,0x2124,0x2965,0x2144,0x1904, +0x2124,0x2124,0x2145,0x2124,0x2124,0x2965,0x2985,0x2965,0x2165,0x2144,0x1904,0x2144,0x2945,0x2145,0x2145,0x2965,0x2145,0x2145,0x2145,0x2965,0x2986,0x3186,0x2965,0x2145,0x2124,0x2145,0x2124,0x2145,0x2945,0x2945,0x2145,0x2965,0x2965,0x2965,0x2986,0x2985,0x2185,0x2165,0x2186,0x31c7,0x2986,0x2965,0x2965,0x2945,0x2966,0x2965,0x3186,0x2986,0x2966,0x2966,0x2986,0x2966,0x2986,0x2965,0x2966,0x2965,0x31a6,0x39c7,0x2986,0x3186,0x31a7,0x2986,0x2966,0x3186,0x2966,0x3186,0x3186,0x2965,0x31a6,0x2986,0x2965,0x2945,0x2965,0x2965,0x2985,0x2965,0x31a6,0x2986,0x31a6,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x31a6,0x2986,0x2985,0x3186,0x31a6,0x31a6,0x31a6,0x2965,0x2986,0x2986,0x31c7,0x39e7,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x2986,0x2986,0x2986,0x31a6,0x2986,0x1082,0x0020,0x0841,0x0861,0x1082,0x2945,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x1082,0x1082,0x1082,0x0861,0x0861,0x0841,0x0841,0x0841,0x0020,0x0841,0x18e3,0x10c2,0x1082,0x0841,0x0020,0x0861,0x2104,0x2104,0x2924,0x3186,0x31a5,0x2945,0x3186,0x4a28,0x4a48,0x3186,0x2104,0x20e4,0x2104,0x18e3,0x18a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x1904,0x2104,0x2125,0x2966,0x39e8,0x630b,0x4a27,0x39e7,0x31a6,0x18e3,0x0020,0x0020,0x0020,0x0861,0x18c3,0x1082,0x0020,0x0020,0x0841,0x0861,0x0861,0x18c2,0x18c3,0x18c3,0x10a2,0x18c3,0x18e3,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x0881,0x0020,0x10c2,0x31c7,0x2986,0x31a7,0x31c7,0x31c7,0x31a6,0x2986,0x31c7,0x31a7,0x31a6,0x2965,0x31a7,0x31a6,0x31c6,0x2986,0x2986,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x3186,0x2966,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x31a7,0x2986,0x31a6,0x31a6,0x2965,0x2965,0x31a6,0x2986,0x3186,0x31a6,0x2986,0x3186,0x3186,0x2986,0x2986,0x2986,0x3186,0x3186,0x2986,0x2966,0x2945,0x2945,0x3186,0x2986,0x3186,0x2986,0x29a6,0x29a6,0x2966,0x2986,0x2965,0x3186,0x31a6,0x2986,0x2965,0x3186,0x3186,0x2965,0x31a6,0x2986,0x31a6,0x31c7,0x31c7,0x2986,0x2966,0x3186,0x2966,0x2965,0x3186,0x2965,0x2986,0x31a6,0x2945,0x2945,0x2965,0x2945,0x2965,0x2965,0x2945,0x3186,0x31c7,0x2165,0x2986,0x2145,0x2145,0x2966,0x2966,0x3186,0x2965,0x2104,0x2986,0x2145,0x2145,0x2945,0x2145,0x2124,0x2124,0x2124,0x2144,0x2124, +0x2145,0x2124,0x2145,0x2144,0x2145,0x2145,0x2145,0x2165,0x2144,0x2145,0x2165,0x2145,0x2965,0x2965,0x2145,0x2965,0x2144,0x2165,0x2965,0x2165,0x2965,0x2986,0x2945,0x2145,0x2965,0x2145,0x2144,0x2945,0x2945,0x2986,0x2965,0x2945,0x2965,0x2966,0x2985,0x2965,0x2165,0x2165,0x2986,0x31a6,0x2986,0x2965,0x2966,0x2965,0x2966,0x2985,0x2985,0x2986,0x2986,0x2965,0x2945,0x2966,0x2945,0x2945,0x2965,0x2965,0x2986,0x2966,0x2965,0x31a6,0x3186,0x2965,0x31a6,0x3186,0x2965,0x2986,0x2965,0x2986,0x29a6,0x2985,0x2986,0x2986,0x31a6,0x2965,0x2965,0x2986,0x2986,0x2986,0x2986,0x2986,0x2965,0x31a6,0x29a6,0x2985,0x2986,0x2986,0x2986,0x2986,0x2986,0x3186,0x3186,0x3186,0x3186,0x3186,0x31a6,0x29a6,0x29a6,0x2986,0x31a6,0x31a6,0x3186,0x2986,0x29a6,0x2986,0x2986,0x31a6,0x31a6,0x2986,0x31a6,0x1082,0x0020,0x0841,0x0861,0x1082,0x2945,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a3,0x18c3,0x0861,0x1082,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0020,0x0861,0x20e4,0x10a2,0x1082,0x0841,0x0020,0x1082,0x2104,0x20e4,0x2945,0x39a6,0x3185,0x2965,0x3185,0x4207,0x31a6,0x2945,0x2124,0x2104,0x18c3,0x10a2,0x18c3,0x18c2,0x10a2,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x10a2,0x18c2,0x18e3,0x18e4,0x18e4,0x2104,0x2945,0x39e8,0x62ea,0x4207,0x39c6,0x3185,0x18e3,0x0841,0x0020,0x0020,0x0841,0x10a2,0x10a2,0x0020,0x0020,0x0841,0x0861,0x0861,0x10a2,0x18c3,0x18c3,0x18a2,0x10a2,0x18e3,0x18a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x0882,0x0020,0x10a2,0x4208,0x39c7,0x31a7,0x39c7,0x31c6,0x31a6,0x31c7,0x31a6,0x31a6,0x31c7,0x31a6,0x2986,0x31a6,0x31a6,0x2986,0x31c7,0x31a6,0x39e7,0x31c7,0x3186,0x31a6,0x3186,0x3186,0x31a6,0x39c6,0x3186,0x31a6,0x39e7,0x31a7,0x31a7,0x2986,0x2986,0x2965,0x2965,0x31a6,0x2965,0x3186,0x31a6,0x31a6,0x3186,0x31a6,0x31c6,0x31a6,0x31a6,0x31a7,0x2986,0x31a7,0x3186,0x3186,0x3186,0x31a6,0x2965,0x3186,0x2965,0x2985,0x29a6,0x2986,0x29a6,0x2966,0x3186,0x31c7,0x31c7,0x2145,0x31c7,0x31c7,0x2965,0x29a6,0x29a6,0x2966,0x2986,0x31c7,0x2966,0x2966,0x31a6,0x2965,0x2965,0x3186,0x2986,0x2965,0x2965,0x2986,0x2965,0x2144,0x31a6,0x2985,0x2945,0x2945,0x2965,0x31a6,0x2965,0x2986,0x3186,0x39c7,0x3186,0x2986,0x31a6,0x2145,0x2145,0x2985,0x2165,0x2965,0x2945,0x2945,0x2124,0x2965,0x2124,0x2144,0x1924, +0x2144,0x2144,0x2144,0x2144,0x2165,0x2145,0x2124,0x2165,0x2145,0x2144,0x2165,0x2145,0x2945,0x2145,0x2124,0x2145,0x2965,0x2165,0x2165,0x2145,0x2144,0x2145,0x2165,0x2145,0x2145,0x2144,0x2965,0x2945,0x2945,0x2986,0x2986,0x2986,0x2965,0x2966,0x2985,0x2986,0x2965,0x2965,0x2966,0x3186,0x2986,0x2965,0x3186,0x2985,0x31a6,0x2986,0x2165,0x2965,0x2985,0x2986,0x2986,0x2965,0x2945,0x2945,0x2965,0x2986,0x2965,0x2986,0x31a6,0x2986,0x31a6,0x3186,0x3186,0x3186,0x2985,0x2986,0x2985,0x2986,0x31a6,0x31a6,0x31a6,0x2965,0x2145,0x31a6,0x3186,0x2965,0x2985,0x39e7,0x3186,0x2985,0x31a6,0x2985,0x29a6,0x2965,0x2986,0x3186,0x31c7,0x29a6,0x2986,0x3186,0x2966,0x31a6,0x31a6,0x3186,0x31a6,0x2986,0x29a6,0x2986,0x2966,0x3186,0x2966,0x2986,0x31a7,0x31c7,0x31a6,0x31c7,0x31a6,0x2986,0x2986,0x0882,0x0040,0x0861,0x0861,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0020,0x1082,0x2104,0x10a2,0x0861,0x0020,0x0841,0x18e3,0x2104,0x18e3,0x2965,0x39c6,0x3165,0x2965,0x2965,0x3185,0x2944,0x2104,0x39c6,0x3165,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x1081,0x1081,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18e4,0x18e4,0x2104,0x2966,0x4249,0x5289,0x41c6,0x39c6,0x2944,0x18c3,0x0841,0x0020,0x0020,0x0841,0x10a2,0x18c3,0x0841,0x0020,0x0020,0x0861,0x0861,0x10a2,0x18c3,0x18c3,0x18c3,0x18a2,0x18c3,0x18a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a3,0x18c3,0x18c3,0x18e3,0x1082,0x0020,0x0882,0x4228,0x31c7,0x2986,0x4208,0x31c6,0x2986,0x31c7,0x31a7,0x29a6,0x31c7,0x31c7,0x31a7,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x31c7,0x39c7,0x39c7,0x29a6,0x31a6,0x3186,0x3186,0x31a7,0x31c7,0x31c7,0x31a6,0x3186,0x3186,0x31a6,0x2986,0x31a6,0x2965,0x2965,0x2966,0x31a6,0x2986,0x31a6,0x2985,0x2986,0x31c7,0x39e7,0x31c7,0x31a7,0x3186,0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x31a7,0x3186,0x2965,0x39c7,0x3186,0x3186,0x31a6,0x2966,0x31a7,0x31c7,0x2986,0x2965,0x31a6,0x2986,0x2966,0x31a6,0x3186,0x2986,0x2986,0x2966,0x2145,0x2965,0x2965,0x2945,0x2986,0x2986,0x2965,0x2945,0x2985,0x2985,0x2144,0x2986,0x3186,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2945,0x2945,0x2945,0x2144,0x2945,0x2965,0x2144,0x2145,0x2145,0x2165,0x2145,0x2145, +0x2144,0x2144,0x2124,0x2145,0x2145,0x2144,0x2145,0x2145,0x2145,0x2144,0x2124,0x2965,0x2124,0x2145,0x2965,0x2965,0x2145,0x2144,0x2965,0x2165,0x2145,0x2144,0x2965,0x2965,0x2965,0x2165,0x2965,0x2945,0x2966,0x2966,0x2986,0x2986,0x2986,0x2985,0x2985,0x2986,0x2986,0x2145,0x2965,0x2986,0x2986,0x31a6,0x2965,0x2945,0x2965,0x2965,0x2965,0x2986,0x31a6,0x2986,0x2986,0x2986,0x2965,0x31a6,0x2965,0x2965,0x2986,0x3186,0x3186,0x2966,0x3186,0x3186,0x2965,0x2965,0x2986,0x2986,0x2985,0x2985,0x31a6,0x2985,0x2965,0x31a6,0x2986,0x31a6,0x31a6,0x2965,0x2986,0x31a6,0x3186,0x2986,0x31a6,0x2986,0x2986,0x31a6,0x31a6,0x3186,0x31a6,0x3186,0x2986,0x29a6,0x2986,0x31c6,0x31a6,0x31a6,0x2985,0x2986,0x31c6,0x29a6,0x2965,0x3186,0x3186,0x31a6,0x3186,0x3186,0x31a6,0x31c7,0x31a6,0x2986,0x29a6,0x0882,0x0040,0x0861,0x10a2,0x10a2,0x4aaa,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x18c3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0020,0x10a3,0x2104,0x10a2,0x0861,0x0841,0x0841,0x2124,0x2104,0x18e3,0x2124,0x2985,0x2965,0x2945,0x2965,0x2945,0x2124,0x18e3,0x4a47,0x3185,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18e4,0x2124,0x3186,0x4228,0x4a69,0x41e7,0x31a6,0x20e3,0x18c3,0x1082,0x0020,0x0020,0x0841,0x1082,0x18c3,0x0841,0x0020,0x0020,0x0861,0x0861,0x1082,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18e3,0x20e3,0x10a2,0x0861,0x0861,0x31c6,0x31a6,0x31c7,0x31c7,0x31c6,0x31a6,0x39e7,0x31c7,0x29a6,0x39e7,0x31a7,0x2986,0x29a6,0x2986,0x29a6,0x29a6,0x2986,0x39c7,0x39e8,0x3186,0x39e7,0x39c7,0x2986,0x2986,0x31c7,0x31a6,0x2986,0x2986,0x3186,0x3186,0x3186,0x3186,0x2986,0x31a6,0x2986,0x2966,0x31a7,0x31a7,0x2965,0x31a7,0x3186,0x3186,0x39c7,0x39e7,0x31c7,0x31a7,0x2986,0x29a6,0x31a6,0x31c6,0x31c6,0x2986,0x31a7,0x31a7,0x39c7,0x2966,0x3186,0x3186,0x3a07,0x31e7,0x31c7,0x31a6,0x2966,0x31a7,0x3186,0x2966,0x3186,0x3186,0x2965,0x31a6,0x31a6,0x31a7,0x2986,0x2986,0x2966,0x2125,0x2966,0x2986,0x2965,0x2965,0x2986,0x2145,0x2965,0x2965,0x31a6,0x2986,0x2965,0x2965,0x2965,0x2965,0x2165,0x2145,0x3186,0x31a7,0x2945,0x2965,0x2986,0x2985,0x2945,0x2965,0x2144,0x2986,0x2145,0x2124,0x2145,0x2145,0x2144,0x2965, +0x2145,0x2124,0x2124,0x2145,0x2945,0x2945,0x2124,0x2145,0x2965,0x2965,0x2945,0x2144,0x2965,0x2985,0x2145,0x2145,0x2965,0x2145,0x2965,0x2145,0x2965,0x2986,0x2965,0x2965,0x2985,0x2965,0x2965,0x2986,0x2966,0x2966,0x2965,0x2145,0x2145,0x2985,0x2986,0x2986,0x2986,0x29a6,0x2986,0x2965,0x2986,0x2986,0x2965,0x2965,0x2965,0x2986,0x2986,0x2986,0x2986,0x2985,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x3186,0x31a6,0x31c6,0x3186,0x2986,0x2985,0x2965,0x3186,0x3186,0x2986,0x2986,0x2145,0x2145,0x2986,0x2986,0x31a6,0x31a6,0x2965,0x2965,0x2986,0x31a6,0x2965,0x2965,0x2986,0x2966,0x2986,0x3186,0x31a7,0x31c7,0x31a6,0x2986,0x31c7,0x31a6,0x29a6,0x31a6,0x31a6,0x31a6,0x2986,0x31a6,0x2986,0x31a6,0x29a6,0x29a6,0x2986,0x2986,0x31a6,0x31a6,0x3186,0x31a6,0x31a6,0x31c7,0x2986,0x31a6,0x10a2,0x0040,0x0861,0x18c3,0x18c3,0x4aaa,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x18c2,0x1082,0x0861,0x0861,0x0861,0x1082,0x0861,0x0841,0x0841,0x0841,0x0020,0x18c3,0x2104,0x10a2,0x0861,0x0841,0x0841,0x2944,0x2104,0x18e3,0x2104,0x2944,0x2945,0x2944,0x2964,0x2944,0x2104,0x2103,0x4227,0x2123,0x18c2,0x10a2,0x1082,0x1082,0x1082,0x1081,0x1082,0x1082,0x0861,0x0861,0x10a2,0x10a2,0x1081,0x10a2,0x10a2,0x18e3,0x18e3,0x18c3,0x18c3,0x2104,0x2945,0x3186,0x39c7,0x4a48,0x39e7,0x2965,0x10a2,0x18c3,0x18a2,0x0020,0x0020,0x0841,0x1082,0x18c3,0x1082,0x0020,0x0020,0x0841,0x0861,0x1082,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x0861,0x0861,0x39e7,0x39e8,0x31a6,0x39e8,0x31c7,0x31a6,0x31c7,0x31a6,0x31c7,0x31a7,0x31a6,0x2986,0x29a6,0x2986,0x29a6,0x29a6,0x2986,0x31a6,0x31c7,0x31a7,0x4228,0x31c6,0x3186,0x31c7,0x31c7,0x31a6,0x31a6,0x2986,0x3186,0x3186,0x3186,0x31a6,0x2986,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x2966,0x3186,0x31a6,0x39c7,0x31c7,0x31c7,0x31c7,0x31c7,0x2986,0x2986,0x2985,0x31a6,0x31a6,0x2965,0x31a6,0x2986,0x3186,0x2986,0x31a6,0x39e8,0x31a6,0x2985,0x31c6,0x2965,0x4228,0x39c7,0x2965,0x2965,0x31a6,0x3186,0x31a6,0x31a6,0x2985,0x31a6,0x2986,0x2986,0x3186,0x2966,0x2966,0x3186,0x2965,0x2145,0x2985,0x2965,0x2145,0x2986,0x29a6,0x2985,0x2985,0x2965,0x2965,0x31a6,0x2985,0x2945,0x2966,0x3186,0x2986,0x2945,0x2144,0x2965,0x2945,0x2965,0x2145,0x2165,0x2986,0x2945,0x2145,0x2144,0x2965,0x2945, +0x1904,0x2144,0x2124,0x2145,0x2945,0x2945,0x2144,0x2145,0x2145,0x2945,0x2945,0x2145,0x2165,0x2165,0x2145,0x2145,0x2965,0x2145,0x2965,0x2145,0x2965,0x2986,0x2965,0x2145,0x2144,0x2965,0x2986,0x2986,0x2966,0x2966,0x3186,0x2965,0x2965,0x2966,0x3186,0x39e7,0x2986,0x2985,0x2986,0x2986,0x2965,0x2965,0x2985,0x31a6,0x2986,0x2965,0x2965,0x2985,0x2145,0x2986,0x31a6,0x2965,0x2986,0x31a6,0x29a6,0x29a6,0x31e7,0x2986,0x31a6,0x31c6,0x31a6,0x2965,0x31a6,0x3186,0x31a6,0x31a6,0x31a6,0x2965,0x2965,0x2965,0x2986,0x2986,0x2985,0x29a6,0x2986,0x3186,0x2985,0x2985,0x2985,0x2986,0x2986,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x2986,0x29a6,0x2986,0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x29a7,0x31a7,0x31a6,0x31c7,0x29a6,0x29a6,0x31a6,0x31c7,0x31a6,0x31a6,0x31a6,0x31c7,0x31a6,0x3186,0x10a2,0x0841,0x10a2,0x18c3,0x18e4,0x29c7,0x1082,0x1082,0x0861,0x1082,0x0861,0x1082,0x0861,0x1082,0x1082,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0020,0x18e4,0x2104,0x10a2,0x0861,0x0020,0x0861,0x2945,0x2104,0x18e3,0x2104,0x2944,0x2944,0x2124,0x2944,0x2944,0x2103,0x2104,0x39c6,0x18c2,0x10a2,0x1082,0x1082,0x1082,0x1081,0x1081,0x10a2,0x18c3,0x1082,0x18e3,0x3186,0x3185,0x18c3,0x2124,0x2124,0x3185,0x2923,0x18c3,0x2104,0x2124,0x2945,0x3186,0x39c7,0x4207,0x3186,0x2104,0x10a2,0x18c3,0x18c3,0x0841,0x0020,0x0020,0x0861,0x18e3,0x10a2,0x0020,0x0020,0x0841,0x0861,0x1082,0x18c3,0x18a3,0x18a3,0x18a2,0x18c3,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x18a3,0x18c3,0x18e3,0x2103,0x18e3,0x1082,0x0861,0x39c7,0x39c7,0x3186,0x39c7,0x3186,0x31a7,0x39a7,0x39a7,0x3186,0x3186,0x39a7,0x4208,0x31a6,0x2985,0x2986,0x29a7,0x31c7,0x2986,0x29a7,0x3186,0x39a7,0x3186,0x2966,0x31a7,0x31a6,0x3186,0x2986,0x3186,0x31a6,0x2966,0x3186,0x31a6,0x3186,0x3186,0x31a6,0x2986,0x2985,0x2985,0x31a6,0x3186,0x31a6,0x31c7,0x31a6,0x31c7,0x31c7,0x31c7,0x31c7,0x31a6,0x2985,0x31a6,0x31a6,0x2986,0x39c7,0x31a7,0x31a7,0x31a7,0x31a7,0x2966,0x31a7,0x2965,0x31a6,0x39e7,0x31c6,0x31a6,0x31a6,0x2985,0x39c7,0x39c7,0x31a6,0x31c7,0x2965,0x2986,0x31a6,0x2986,0x3186,0x39c7,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x2986,0x2165,0x2986,0x2986,0x2986,0x2145,0x31c6,0x4228,0x2986,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x2965,0x2965,0x2986,0x2165,0x2124,0x2965,0x2144,0x2145,0x2124,0x2965,0x2965, +0x2144,0x2965,0x2965,0x2945,0x2965,0x2145,0x2145,0x2945,0x2145,0x2945,0x2945,0x2145,0x2145,0x2144,0x2144,0x2965,0x2145,0x2145,0x2145,0x2965,0x2966,0x2965,0x2145,0x2145,0x2145,0x2965,0x2965,0x2145,0x2965,0x2966,0x2965,0x2965,0x2966,0x2966,0x2965,0x2966,0x2986,0x2985,0x2985,0x2985,0x2986,0x2965,0x2965,0x2986,0x2986,0x2986,0x2965,0x2945,0x2965,0x3186,0x2986,0x2986,0x2966,0x31e7,0x39e7,0x39e7,0x2965,0x2965,0x2986,0x31a6,0x2965,0x31c7,0x39c7,0x2965,0x2986,0x2986,0x2965,0x2985,0x2965,0x2986,0x2986,0x2986,0x3186,0x29a6,0x31a6,0x2965,0x2985,0x29a6,0x2985,0x31a6,0x2986,0x29a7,0x29a6,0x29a6,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x31a6,0x31c7,0x3186,0x2986,0x2986,0x2986,0x31a7,0x31a7,0x31a6,0x29a6,0x31a6,0x31a6,0x31c6,0x39e7,0x39e7,0x39c7,0x31a7,0x31c7,0x31a6,0x1082,0x0861,0x10a2,0x18e3,0x10c2,0x21a5,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x0861,0x1082,0x1082,0x10a2,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0020,0x0020,0x18e4,0x2104,0x1082,0x0841,0x0841,0x0861,0x2965,0x2104,0x18e3,0x2103,0x2124,0x2124,0x2124,0x2924,0x2924,0x18e3,0x2104,0x3185,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x1081,0x1082,0x18c3,0x2124,0x10a2,0x2104,0x4207,0x4a27,0x2924,0x2944,0x2124,0x39a5,0x2923,0x18c3,0x2104,0x2125,0x2965,0x3186,0x39c6,0x39a6,0x2945,0x18e3,0x1082,0x18c3,0x18e3,0x0841,0x0020,0x0841,0x0861,0x18e3,0x10a2,0x0020,0x0020,0x0841,0x0861,0x1082,0x18c3,0x18a3,0x18a2,0x18a2,0x18c3,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x18e3,0x20e3,0x1904,0x10a2,0x0861,0x31c7,0x4208,0x31a7,0x31a7,0x4208,0x31a7,0x31a7,0x39e8,0x39e8,0x39e8,0x31a7,0x39e8,0x31a6,0x31a7,0x31a7,0x2986,0x2966,0x2986,0x29a6,0x29a6,0x31a6,0x39c7,0x2986,0x2986,0x31a7,0x31a7,0x2966,0x3186,0x31a7,0x31a6,0x3186,0x3186,0x31a7,0x39a7,0x31a6,0x31c7,0x2986,0x29a6,0x31a7,0x39e7,0x31a6,0x31a6,0x2965,0x31c7,0x31e7,0x31e7,0x39e7,0x31a6,0x2986,0x2986,0x31c7,0x31a7,0x2986,0x3187,0x2986,0x2946,0x31c7,0x2966,0x2966,0x3186,0x31c6,0x3186,0x2986,0x31a6,0x2986,0x2965,0x2965,0x2986,0x31a6,0x31c7,0x3186,0x2965,0x2965,0x31c7,0x31a6,0x2945,0x31c6,0x31a6,0x2965,0x2986,0x2986,0x2986,0x2986,0x2965,0x2965,0x2945,0x2965,0x2945,0x31a6,0x39c7,0x2966,0x3186,0x2965,0x2965,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2145,0x2985,0x2986,0x2144,0x2124,0x1904,0x2965,0x2144, +0x2145,0x2145,0x2145,0x2965,0x2965,0x2145,0x2965,0x2145,0x2145,0x2145,0x2945,0x2145,0x2165,0x2165,0x2144,0x2144,0x2145,0x2144,0x2144,0x2986,0x2985,0x29a6,0x2165,0x2145,0x2965,0x2965,0x3186,0x2986,0x2965,0x2986,0x2985,0x2145,0x2945,0x2966,0x2966,0x31a6,0x31a6,0x3186,0x3186,0x2985,0x2965,0x2165,0x2965,0x2986,0x2986,0x2986,0x2165,0x2145,0x2986,0x2986,0x2986,0x29a6,0x2966,0x2985,0x31a6,0x3a07,0x2986,0x2985,0x31a6,0x31a6,0x2165,0x31a6,0x31a7,0x2986,0x31c7,0x31a6,0x2965,0x2986,0x2966,0x2986,0x2986,0x2966,0x2986,0x31a6,0x31a6,0x2965,0x29a6,0x29a6,0x2165,0x2965,0x2986,0x29a6,0x29a6,0x2165,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x31a6,0x31c6,0x31a6,0x31a6,0x2986,0x2966,0x3186,0x31a7,0x31a7,0x29a6,0x31a6,0x31c7,0x31c7,0x31e7,0x31c7,0x31c7,0x39e8,0x39e8,0x31e7,0x10c3,0x0041,0x10c2,0x18e3,0x18c3,0x2985,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0841,0x0841,0x0020,0x0020,0x2104,0x2104,0x1082,0x0841,0x0841,0x0861,0x2945,0x2104,0x18e3,0x18e3,0x2124,0x2104,0x2103,0x2104,0x2124,0x18c3,0x2103,0x2944,0x18c3,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x2124,0x18a2,0x18a3,0x2104,0x2944,0x18e3,0x18c3,0x18e3,0x2965,0x18e2,0x18c3,0x2104,0x2925,0x2965,0x3186,0x31a6,0x2944,0x2104,0x18e3,0x1082,0x18e4,0x2104,0x0841,0x0841,0x0841,0x0861,0x18e3,0x10a2,0x0020,0x0020,0x0841,0x0861,0x1082,0x18a3,0x10a2,0x10a2,0x18c3,0x18c3,0x20e4,0x18a2,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18e3,0x2103,0x2104,0x10a2,0x0881,0x39e7,0x39e7,0x31e7,0x31a7,0x39e8,0x2986,0x2986,0x31c7,0x39e8,0x3a08,0x2986,0x3186,0x3186,0x31a7,0x39c7,0x31c7,0x31a6,0x2986,0x29a6,0x29a6,0x31c6,0x31a6,0x31c7,0x31c7,0x2986,0x3186,0x31a6,0x3186,0x31a6,0x31c7,0x2986,0x2986,0x31c7,0x31a6,0x31a6,0x39e7,0x2986,0x2986,0x31c7,0x3a08,0x31c7,0x3186,0x2986,0x31a6,0x31c6,0x31c7,0x31a6,0x3186,0x31a6,0x31a6,0x39e7,0x2986,0x2986,0x2986,0x2986,0x31a6,0x39e8,0x2986,0x3186,0x31c7,0x31e7,0x31a6,0x2965,0x3186,0x31a6,0x31a7,0x2986,0x2986,0x2985,0x29a6,0x31c6,0x39e7,0x31a6,0x2985,0x2965,0x2986,0x31a6,0x31a6,0x2945,0x2965,0x2965,0x29a6,0x2986,0x2965,0x2965,0x2965,0x2965,0x2985,0x2945,0x2145,0x29a6,0x2985,0x2986,0x3186,0x2124,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x31a6,0x2965,0x2986,0x2965,0x2145,0x2145,0x2144, +0x2945,0x2144,0x2144,0x2144,0x2125,0x2966,0x2965,0x2125,0x2145,0x2145,0x2945,0x2986,0x2965,0x2985,0x2145,0x2165,0x2165,0x2144,0x2144,0x2965,0x2165,0x2985,0x2985,0x2144,0x2145,0x2945,0x2945,0x2965,0x2986,0x2965,0x2985,0x2965,0x2965,0x3186,0x2986,0x2986,0x31a6,0x3165,0x3165,0x2986,0x2986,0x2966,0x2966,0x2966,0x2966,0x2986,0x2986,0x29a6,0x2966,0x2986,0x31c7,0x2186,0x2986,0x3186,0x31a6,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x2965,0x2986,0x2986,0x2985,0x2985,0x2986,0x2966,0x2965,0x2986,0x31a6,0x31a6,0x39e7,0x31a6,0x31a6,0x2966,0x3186,0x2986,0x2985,0x2985,0x2986,0x2985,0x2985,0x2986,0x31a6,0x31a6,0x31a6,0x31c6,0x2985,0x31a6,0x31a6,0x31c7,0x29a6,0x2986,0x31a6,0x3186,0x3186,0x3186,0x2986,0x29a6,0x31c7,0x31a6,0x31c7,0x31c7,0x31a6,0x31c7,0x39e7,0x39e7,0x3207,0x10c3,0x0882,0x18c3,0x2104,0x18e4,0x29a6,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x18c3,0x1082,0x0861,0x0861,0x0861,0x1082,0x0861,0x0841,0x0841,0x0020,0x0020,0x2104,0x2124,0x1082,0x0861,0x0841,0x0841,0x2945,0x2124,0x18e3,0x18c3,0x2103,0x18e3,0x18e3,0x20e3,0x2104,0x18c3,0x20e3,0x2104,0x18c3,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x2104,0x18a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x18c3,0x2124,0x10a2,0x18c3,0x2104,0x2925,0x2965,0x3186,0x2965,0x18e3,0x20e3,0x18e3,0x1082,0x2104,0x2124,0x0841,0x0041,0x0841,0x1082,0x18e4,0x10a3,0x0020,0x0041,0x0861,0x0861,0x1082,0x18a3,0x10a2,0x10a2,0x18a3,0x18c3,0x18e3,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x18c3,0x18c3,0x18e3,0x2103,0x2124,0x1081,0x10a2,0x4208,0x31c7,0x4228,0x31a7,0x2987,0x31c7,0x31c7,0x31a7,0x29a6,0x31a6,0x31a7,0x3186,0x3186,0x31a7,0x31e7,0x31a7,0x31a7,0x31a6,0x31c7,0x31a6,0x31a6,0x39c7,0x31a6,0x2986,0x29a6,0x31a6,0x31a7,0x39c7,0x31c7,0x29a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31c7,0x2986,0x2986,0x31a6,0x3a08,0x39c7,0x39c7,0x31a6,0x39e7,0x39e7,0x31a6,0x3186,0x31a6,0x3186,0x31a7,0x31a7,0x3186,0x31a6,0x31c7,0x31a6,0x3186,0x3186,0x3186,0x31a7,0x31c7,0x29a6,0x31a6,0x2986,0x2966,0x2966,0x3186,0x39c7,0x31a6,0x2986,0x2985,0x31a6,0x3186,0x31a6,0x31a7,0x31a6,0x31a6,0x2986,0x3186,0x2965,0x2966,0x2966,0x2986,0x2966,0x2986,0x31a6,0x2985,0x31a6,0x3186,0x2965,0x2965,0x29a6,0x31e7,0x2145,0x2965,0x2965,0x2965,0x2945,0x2145,0x2965,0x2945,0x2965,0x31a6,0x2965,0x2965,0x31c7,0x31a6,0x2124,0x2124, +0x2945,0x2145,0x2124,0x2145,0x2145,0x2945,0x2145,0x2124,0x2145,0x2145,0x2965,0x2965,0x2145,0x2965,0x2145,0x2965,0x2965,0x2965,0x2145,0x2965,0x2985,0x2965,0x2965,0x2124,0x2165,0x2965,0x2145,0x2965,0x2985,0x2965,0x2965,0x2985,0x3186,0x3186,0x2966,0x2965,0x2965,0x2965,0x3186,0x2965,0x2965,0x2966,0x2966,0x2966,0x2986,0x2965,0x2985,0x3186,0x3186,0x31a6,0x2986,0x31c7,0x31c7,0x31a6,0x3186,0x3186,0x31a6,0x3186,0x2985,0x31a6,0x2986,0x2965,0x2945,0x3186,0x31a6,0x2986,0x2965,0x2965,0x2986,0x2986,0x2986,0x31a6,0x39e7,0x3186,0x2985,0x3186,0x3186,0x2986,0x2985,0x31a6,0x31a6,0x2985,0x2986,0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x2985,0x31a6,0x31a6,0x31a6,0x29a6,0x2986,0x31a6,0x31a7,0x3186,0x31a6,0x31a6,0x31a6,0x39c7,0x39c7,0x31a7,0x3186,0x31a7,0x39e8,0x39e8,0x31c7,0x29a6,0x0861,0x1904,0x2924,0x2944,0x18e3,0x21a6,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x1082,0x0861,0x0861,0x0861,0x1082,0x0861,0x0841,0x0841,0x0841,0x0020,0x18e3,0x2945,0x10a2,0x0861,0x0841,0x0841,0x2124,0x2945,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x20e3,0x18c2,0x2124,0x2103,0x18c2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x18a2,0x18a2,0x2103,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x20e3,0x10a2,0x18e3,0x2104,0x2124,0x2945,0x2965,0x2124,0x18c3,0x20e4,0x18c3,0x10a2,0x2145,0x2124,0x0841,0x0840,0x0841,0x1082,0x2104,0x10a2,0x0020,0x0841,0x0861,0x0861,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x20e3,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x18a2,0x18c3,0x18e3,0x2104,0x2965,0x18e3,0x1082,0x39e7,0x39e7,0x39e7,0x31c7,0x39c7,0x39e8,0x39c8,0x31a7,0x31a7,0x2986,0x39e7,0x31e7,0x3a08,0x39e7,0x31c7,0x29a6,0x31c7,0x31a7,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x2145,0x31a6,0x31c7,0x2986,0x3186,0x39c7,0x31a6,0x2965,0x31a6,0x31a6,0x3186,0x3186,0x31a6,0x2986,0x31a7,0x39c7,0x31c7,0x39c7,0x31c6,0x39e7,0x39e7,0x39e7,0x39e7,0x31a6,0x31a6,0x29a6,0x29a6,0x29a6,0x31c7,0x31a7,0x31a6,0x39e7,0x4228,0x39c7,0x31a6,0x31c7,0x31a6,0x2986,0x2965,0x2986,0x2986,0x31c7,0x3186,0x3186,0x2986,0x2965,0x2986,0x31a6,0x2965,0x3166,0x3186,0x2966,0x31a6,0x3186,0x2965,0x3186,0x3186,0x2965,0x2986,0x31a6,0x2965,0x31c7,0x31a6,0x2965,0x2965,0x2945,0x2965,0x2965,0x31a7,0x2965,0x2965,0x2965,0x2945,0x2965,0x2965,0x2965,0x2144,0x2965,0x2985,0x2986,0x2145,0x31a6,0x2986,0x3186,0x2124, +0x2124,0x2124,0x2145,0x2144,0x2145,0x2945,0x2945,0x2145,0x2965,0x2965,0x2145,0x2145,0x2945,0x2965,0x2145,0x2145,0x2145,0x2965,0x2965,0x2165,0x2165,0x2965,0x2965,0x2945,0x2965,0x2965,0x2945,0x2965,0x2986,0x2965,0x2985,0x2965,0x2986,0x2966,0x2966,0x31a6,0x31c6,0x2986,0x2986,0x3186,0x31c6,0x2965,0x2965,0x2986,0x2985,0x2965,0x3186,0x2965,0x2986,0x31a6,0x31a6,0x39c7,0x3186,0x31a6,0x2986,0x2965,0x39e7,0x2985,0x2945,0x2965,0x2986,0x29a6,0x3186,0x3186,0x31a6,0x31a6,0x31a6,0x2986,0x31a6,0x31c6,0x31a6,0x31a6,0x3186,0x2965,0x31a6,0x31a6,0x29a6,0x2986,0x29a6,0x29a6,0x2986,0x31a6,0x31a6,0x31a6,0x3186,0x31a6,0x2965,0x3186,0x31c7,0x31a6,0x3186,0x31a6,0x31a6,0x3186,0x3186,0x31a6,0x31a6,0x31c6,0x31c7,0x39c7,0x31a7,0x31a7,0x31a7,0x39c7,0x39e8,0x31c7,0x31c7,0x31c7,0x31a6,0x10c2,0x2124,0x2965,0x3165,0x2965,0x10e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0841,0x0841,0x0841,0x0020,0x18c3,0x2945,0x18c3,0x0861,0x0841,0x0020,0x2104,0x2945,0x2104,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x10a2,0x2124,0x18e3,0x18a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x20e3,0x10a2,0x18e3,0x2104,0x2104,0x2124,0x2124,0x18e3,0x18c3,0x2104,0x18a2,0x18c3,0x2965,0x2103,0x0820,0x0020,0x0841,0x10a2,0x2124,0x1082,0x0020,0x0841,0x0861,0x0861,0x1082,0x18a3,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x18c2,0x18c2,0x18e3,0x2104,0x39c7,0x2104,0x1082,0x39e7,0x39e7,0x39e7,0x39e7,0x31a6,0x39e7,0x39e8,0x31c8,0x3a08,0x31c7,0x39e7,0x31e7,0x31a6,0x29a6,0x31a7,0x31a7,0x31c7,0x31a6,0x2965,0x31a6,0x31a6,0x31a6,0x31c7,0x31a7,0x31a6,0x31a7,0x3186,0x31a6,0x31a6,0x31c7,0x31c7,0x3186,0x4208,0x39c7,0x31a6,0x31a6,0x39c7,0x31a6,0x31c7,0x2986,0x31a6,0x31a6,0x31a6,0x39e7,0x31c6,0x2985,0x31a6,0x2986,0x31a6,0x2986,0x31a6,0x31c7,0x31a7,0x31a6,0x3186,0x39e7,0x31a6,0x2965,0x39e7,0x31a6,0x39c7,0x3186,0x31a6,0x29a6,0x2986,0x31a6,0x2986,0x31c7,0x31c6,0x31a6,0x31c7,0x31a6,0x2965,0x2986,0x2986,0x2986,0x2965,0x3186,0x31a6,0x31a6,0x2965,0x3186,0x2966,0x3186,0x31a6,0x2986,0x2985,0x2985,0x2966,0x2945,0x2965,0x2966,0x2965,0x2986,0x31a6,0x3186,0x2965,0x2986,0x2965,0x2965,0x3186,0x2985,0x2965,0x2145,0x2145,0x2145,0x2145,0x2985, +0x2125,0x2145,0x2145,0x2145,0x2145,0x2125,0x2945,0x2986,0x2965,0x2945,0x2945,0x3186,0x2965,0x2145,0x2124,0x2965,0x2965,0x2985,0x2965,0x2986,0x2165,0x2145,0x2145,0x2965,0x2986,0x2986,0x2986,0x2965,0x3186,0x31a6,0x2966,0x2966,0x2966,0x2985,0x29a6,0x31a6,0x31a6,0x2986,0x3186,0x2965,0x2985,0x31a6,0x3186,0x2965,0x2965,0x3186,0x31a6,0x3186,0x2985,0x31c7,0x31a6,0x2965,0x2965,0x31a6,0x29a6,0x2986,0x31a6,0x31a6,0x2986,0x2986,0x31c7,0x31c7,0x2986,0x31a6,0x29a6,0x29a6,0x2986,0x2986,0x29a6,0x31c7,0x31a6,0x2966,0x3186,0x31a7,0x31c7,0x29a6,0x29a6,0x2986,0x2986,0x31c7,0x29a6,0x31c6,0x31a6,0x31a6,0x31a6,0x2985,0x2985,0x3186,0x31a6,0x29a6,0x3186,0x31a6,0x31a6,0x3186,0x3186,0x3187,0x3186,0x3186,0x31a7,0x31a6,0x3186,0x31a7,0x39c7,0x4208,0x3a08,0x31c7,0x31c7,0x39e7,0x31a6,0x18e3,0x1904,0x18e3,0x2145,0x2104,0x18a3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0841,0x0841,0x0841,0x0020,0x1082,0x2945,0x18e3,0x0861,0x0841,0x0020,0x10a3,0x2965,0x2124,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c2,0x18a2,0x2104,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18e3,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x1082,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x18e3,0x18e3,0x2103,0x10a2,0x2124,0x2965,0x18c2,0x0020,0x0020,0x0841,0x18c3,0x2124,0x0861,0x0020,0x0841,0x0861,0x0861,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c2,0x18c3,0x18e3,0x2103,0x31a6,0x1904,0x10a2,0x4228,0x3a07,0x3a08,0x39e8,0x31c7,0x31c6,0x3a07,0x31a7,0x31a7,0x39c8,0x39e8,0x4249,0x31c7,0x31a7,0x39e7,0x39e7,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a7,0x31c7,0x39e7,0x39c7,0x2986,0x3186,0x31c7,0x39e7,0x3186,0x39e8,0x3a08,0x31a6,0x31a6,0x39c7,0x39c7,0x31a6,0x31a6,0x2985,0x31a6,0x39e7,0x39c7,0x39c7,0x31a6,0x31c7,0x31a6,0x2966,0x2966,0x2966,0x2966,0x31c7,0x31a6,0x31a6,0x31e7,0x31a6,0x2965,0x2986,0x2966,0x31a6,0x31c7,0x3186,0x2986,0x2986,0x31a6,0x2986,0x2986,0x31c7,0x2986,0x2986,0x31c7,0x31a6,0x3186,0x2945,0x31a6,0x31c7,0x31a6,0x3186,0x2986,0x2945,0x2965,0x39c7,0x31a6,0x31a6,0x2986,0x2965,0x31a6,0x2965,0x31c7,0x31a6,0x3186,0x2986,0x2986,0x31c7,0x31c7,0x2145,0x31a6,0x31c6,0x2965,0x2945,0x2986,0x2985,0x2965,0x2144,0x2145,0x2124,0x31a6, +0x2124,0x2145,0x2145,0x2145,0x2145,0x2145,0x2966,0x2966,0x2945,0x2945,0x2985,0x3186,0x2945,0x2144,0x2945,0x3186,0x2965,0x2945,0x2965,0x2145,0x2145,0x2145,0x2165,0x2145,0x2165,0x2966,0x2966,0x31a6,0x3186,0x2966,0x2946,0x2966,0x3186,0x2965,0x2985,0x29a6,0x2965,0x2965,0x2965,0x2965,0x2965,0x31c6,0x31a6,0x2965,0x2986,0x31a6,0x3186,0x2965,0x31a6,0x31c6,0x2965,0x31a6,0x31a6,0x31a6,0x2986,0x2985,0x31c6,0x39e7,0x31a6,0x2986,0x2986,0x31a6,0x3186,0x31a6,0x31c7,0x2986,0x2986,0x29a6,0x2986,0x2966,0x31a7,0x31c7,0x31a7,0x31a7,0x31a6,0x2986,0x2986,0x2986,0x2986,0x31a6,0x31c7,0x31a6,0x2986,0x2986,0x31a6,0x31a7,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x31a6,0x31a6,0x3186,0x31a7,0x3186,0x3186,0x39e8,0x39c7,0x31a6,0x31a7,0x39c7,0x39c7,0x3a07,0x39e7,0x31c7,0x39e7,0x4208,0x39e8,0x10c3,0x18c3,0x10c3,0x2124,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x0841,0x0841,0x0841,0x0020,0x0841,0x2945,0x2124,0x1082,0x0841,0x0020,0x0861,0x2945,0x2945,0x18e3,0x18c3,0x18c3,0x18c3,0x18a2,0x10a2,0x18a2,0x2103,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x10a2,0x1081,0x18c3,0x18c3,0x18c3,0x20e4,0x2124,0x18e3,0x18e3,0x18e3,0x10a2,0x2986,0x2965,0x1061,0x0020,0x0841,0x0861,0x2104,0x2104,0x0841,0x0020,0x0841,0x0861,0x0861,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18e3,0x20e3,0x18e3,0x10a2,0x0882,0x39e7,0x39e7,0x39c7,0x31c7,0x31a6,0x39e7,0x31a6,0x39e7,0x31c7,0x3a08,0x3a08,0x3a08,0x39e7,0x31c7,0x39c7,0x39c6,0x3185,0x31a6,0x39e7,0x31a6,0x31c7,0x31a6,0x31c7,0x39c7,0x39e7,0x31c7,0x31c7,0x3186,0x31a7,0x39c7,0x31c7,0x3186,0x3186,0x3186,0x39e7,0x2986,0x31a6,0x31c7,0x31a6,0x31c6,0x31a6,0x39e7,0x31c7,0x31c7,0x31c7,0x3186,0x31a6,0x39c7,0x2965,0x3186,0x31a6,0x31a7,0x31a7,0x31a6,0x31c7,0x31e7,0x31c7,0x3a08,0x3186,0x31a6,0x31a6,0x31c7,0x39c7,0x31a6,0x31a6,0x31a6,0x2986,0x2966,0x2986,0x2986,0x31c7,0x31a6,0x31a6,0x3186,0x2986,0x31a6,0x3a08,0x2986,0x2965,0x3186,0x2986,0x2986,0x3186,0x2986,0x31a6,0x2986,0x3186,0x2986,0x31c7,0x2965,0x2985,0x31a6,0x2965,0x2986,0x2986,0x2986,0x2965,0x2986,0x31a6,0x2124,0x2124,0x3186,0x31a6,0x2965,0x2965,0x2145,0x3186,0x3186, +0x2945,0x2965,0x2165,0x2145,0x2145,0x2965,0x2965,0x2965,0x2945,0x2965,0x2985,0x2965,0x2165,0x2965,0x2986,0x2986,0x2145,0x2965,0x2965,0x2145,0x2945,0x2145,0x2965,0x2986,0x2145,0x2946,0x2966,0x3186,0x3186,0x2965,0x2165,0x2965,0x2986,0x2985,0x2985,0x2985,0x2965,0x3186,0x2986,0x2986,0x2965,0x2965,0x2986,0x2965,0x2985,0x31a6,0x31c7,0x2986,0x2986,0x39e7,0x31a6,0x3186,0x31a6,0x31c6,0x3186,0x2985,0x31c6,0x31c6,0x31a6,0x31a6,0x29a6,0x2986,0x3186,0x3186,0x31c7,0x29a6,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x2986,0x2986,0x2986,0x31a7,0x31a7,0x31a6,0x29a6,0x31a6,0x2986,0x31c7,0x31c7,0x31a7,0x31c7,0x31a7,0x31c7,0x31a6,0x29a6,0x2986,0x31a6,0x3186,0x31a6,0x3186,0x3186,0x31c7,0x39c7,0x39c7,0x31a7,0x31a7,0x31a6,0x31c7,0x39e7,0x3a07,0x39e7,0x39c7,0x39e7,0x2124,0x0041,0x10a2,0x18c3,0x10a2,0x0861,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x18e3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x0841,0x0841,0x0861,0x0020,0x0020,0x2104,0x2965,0x10a2,0x0841,0x0841,0x0841,0x2104,0x2965,0x2124,0x18c3,0x18c3,0x18c3,0x10a2,0x1082,0x10a2,0x18e3,0x1082,0x1082,0x0861,0x0861,0x0861,0x1081,0x1082,0x1082,0x1082,0x10a2,0x1081,0x1081,0x1081,0x1081,0x1082,0x10a2,0x18c3,0x1082,0x1081,0x10a2,0x18c2,0x18c3,0x20e3,0x2104,0x18c3,0x18e3,0x18a2,0x2104,0x31a6,0x2124,0x0841,0x0020,0x0841,0x10a2,0x2945,0x18e3,0x0821,0x0841,0x0841,0x0861,0x1061,0x18c3,0x10a2,0x10a2,0x10a2,0x18a2,0x20e4,0x20e3,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18e3,0x20e3,0x0881,0x0040,0x2124,0x39e7,0x31c7,0x31c7,0x39c7,0x31c7,0x39e7,0x31a6,0x39e7,0x4228,0x31a6,0x31c7,0x31c7,0x39c7,0x39c7,0x31a6,0x31c7,0x31c7,0x31c6,0x31a6,0x39e7,0x31c7,0x31c6,0x3a07,0x31c7,0x39e8,0x31a7,0x31a7,0x3186,0x31c7,0x3186,0x3186,0x39c7,0x3186,0x31a6,0x31a7,0x3186,0x31a6,0x31a6,0x3a08,0x31c7,0x31a6,0x39e7,0x31a7,0x31c7,0x31a7,0x3186,0x31c6,0x39e7,0x31c7,0x31a6,0x31a6,0x31a6,0x31a6,0x3186,0x3186,0x4208,0x31c7,0x39c7,0x39e8,0x31c7,0x31a7,0x31c7,0x31c7,0x29a6,0x2986,0x31a6,0x2985,0x31a6,0x31a6,0x3186,0x3186,0x31c7,0x2986,0x2986,0x31c7,0x39e7,0x3186,0x3186,0x2986,0x31a6,0x3186,0x2986,0x2985,0x2986,0x2966,0x39e7,0x31a6,0x2986,0x31a6,0x29a6,0x31a6,0x31a6,0x2145,0x2966,0x2986,0x2966,0x2986,0x31a6,0x2145,0x2945,0x2985,0x2945,0x2965,0x2965,0x2965,0x2965,0x2144,0x2145, +0x2124,0x2124,0x2165,0x2165,0x2145,0x2965,0x2945,0x2945,0x2965,0x2965,0x2165,0x2165,0x2965,0x2966,0x2965,0x2965,0x2145,0x2965,0x2965,0x2965,0x2945,0x2145,0x2945,0x2965,0x2965,0x2965,0x2145,0x2966,0x2986,0x2965,0x2965,0x2145,0x2986,0x2986,0x2986,0x2985,0x2965,0x31a6,0x2986,0x2986,0x2985,0x2985,0x2986,0x29a6,0x2986,0x31a6,0x31c7,0x3186,0x2965,0x2965,0x2965,0x2966,0x2965,0x31a6,0x31a6,0x31a6,0x39c7,0x39c7,0x31c7,0x31a6,0x29a6,0x29a6,0x31a6,0x3186,0x3186,0x3186,0x31a6,0x31c7,0x31a6,0x2986,0x31a6,0x31c6,0x31a6,0x31c6,0x29a6,0x31a7,0x29a6,0x31a6,0x31a6,0x31a6,0x2986,0x29a6,0x31a6,0x31a6,0x39c7,0x31c7,0x39e7,0x31a6,0x31a6,0x3186,0x3186,0x31a6,0x31a6,0x31a7,0x31a7,0x31a6,0x31a7,0x39c7,0x31a7,0x39a7,0x31a7,0x31a7,0x31a7,0x39e7,0x31e6,0x3a07,0x3a07,0x31c7,0x3a28,0x31c7,0x10a2,0x0020,0x0020,0x0841,0x0841,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x18c3,0x18c3,0x1082,0x1082,0x1082,0x1082,0x10a2,0x0861,0x0841,0x0861,0x0841,0x0020,0x18c3,0x2985,0x18e3,0x0861,0x0841,0x0020,0x10a2,0x2945,0x2965,0x18e3,0x18c3,0x18c3,0x10a2,0x1082,0x1081,0x10a2,0x1082,0x1081,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x1082,0x1082,0x1081,0x0861,0x0861,0x1081,0x1082,0x1082,0x18c2,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18e3,0x20e3,0x18c2,0x18c3,0x10a2,0x3186,0x3186,0x18a2,0x0020,0x0841,0x0841,0x18e3,0x2966,0x10a2,0x0841,0x0861,0x0861,0x0861,0x1082,0x18c3,0x10a2,0x10a2,0x10a2,0x18a2,0x2104,0x18e3,0x18c3,0x18a2,0x10a2,0x18a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x0881,0x2104,0x31a6,0x3a07,0x31c7,0x31c7,0x39e7,0x39e7,0x39e7,0x39c7,0x39e7,0x3a28,0x3a08,0x31a7,0x31c7,0x31c7,0x39e7,0x39e7,0x39e7,0x31c7,0x31c7,0x31c7,0x31a6,0x31a6,0x31a6,0x39e7,0x39e7,0x39c7,0x3186,0x3186,0x31c7,0x31a6,0x39c7,0x3a08,0x3186,0x39e8,0x31c7,0x31a6,0x31a6,0x31a6,0x39e7,0x31c7,0x31c7,0x2986,0x31c7,0x31c7,0x31a6,0x31a6,0x31a6,0x31c6,0x31c7,0x31a6,0x2986,0x29a6,0x2965,0x2986,0x39e7,0x3186,0x4228,0x39c7,0x31a6,0x31a7,0x31a7,0x29a6,0x29a6,0x31c7,0x2986,0x31a6,0x31c7,0x31c6,0x31c7,0x31a6,0x31a6,0x31a6,0x39e7,0x2986,0x39c7,0x3186,0x2966,0x31a7,0x3186,0x31a6,0x31c6,0x2965,0x31c7,0x39c7,0x2965,0x2966,0x2986,0x2986,0x2965,0x2985,0x31a6,0x2986,0x31a6,0x31c7,0x2986,0x2986,0x2986,0x39c7,0x2965,0x3186,0x2965,0x31a6,0x2965,0x2145,0x2965,0x2986,0x2985,0x2145,0x2965, +0x2986,0x2986,0x2124,0x2145,0x2965,0x3186,0x2965,0x2965,0x2965,0x2165,0x2985,0x2165,0x2965,0x2966,0x2965,0x2945,0x2965,0x2965,0x31a6,0x2965,0x2145,0x2965,0x2945,0x2985,0x2986,0x2965,0x2965,0x2965,0x2965,0x2986,0x31a6,0x2965,0x2965,0x2965,0x31a6,0x2986,0x2986,0x31a6,0x31a6,0x2965,0x2986,0x2986,0x2986,0x2986,0x31a6,0x3186,0x2986,0x31a6,0x2986,0x2965,0x3186,0x2985,0x3186,0x31a7,0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x3186,0x2985,0x2986,0x2986,0x31c6,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x2985,0x29a6,0x31c6,0x31c6,0x31c6,0x31c6,0x29a6,0x31a6,0x31c7,0x31a6,0x31c7,0x3186,0x31a6,0x31a6,0x31c6,0x3186,0x31a6,0x3186,0x31a6,0x31c7,0x31c7,0x31c6,0x31a6,0x31c7,0x31a7,0x31c7,0x31c6,0x31e7,0x31c7,0x31c7,0x31a6,0x31a7,0x39c7,0x31c7,0x31c7,0x39c7,0x31c7,0x31c7,0x39e8,0x3a08,0x3a08,0x31c7,0x31a6,0x2965,0x2925,0x2125,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18c2,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a3,0x0861,0x1082,0x0861,0x0020,0x0861,0x2965,0x2945,0x1082,0x0841,0x0020,0x0841,0x2104,0x3186,0x2144,0x18a3,0x18c3,0x18c2,0x1082,0x1081,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1081,0x0861,0x10a2,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x10a2,0x0861,0x1082,0x18a2,0x18a2,0x18c3,0x18c3,0x20e3,0x18e3,0x1082,0x2945,0x39e7,0x2944,0x0841,0x0020,0x0841,0x1082,0x2945,0x2945,0x0861,0x0020,0x0861,0x0861,0x0861,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x2104,0x18e3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x2104,0x31c6,0x39e7,0x31c7,0x39e8,0x39e8,0x31c7,0x39e7,0x39c8,0x39e8,0x4229,0x39e8,0x31e7,0x3a08,0x39e8,0x31c7,0x39e7,0x3a07,0x31a6,0x3a08,0x3a08,0x31c7,0x31c7,0x2986,0x31c6,0x31c6,0x31c6,0x39e7,0x39c7,0x3186,0x31a7,0x31c7,0x31c7,0x3186,0x31a7,0x39e7,0x31a6,0x31c7,0x31a7,0x31a6,0x31a6,0x39e7,0x31a6,0x3a08,0x2986,0x3a08,0x31c7,0x31a6,0x31a6,0x2986,0x31c7,0x39e7,0x31c6,0x31a6,0x29a6,0x2986,0x2966,0x39e8,0x31a7,0x2966,0x31a6,0x31c7,0x31a6,0x31a6,0x31e7,0x2965,0x31a6,0x2965,0x31c7,0x39e7,0x31a6,0x3186,0x2986,0x31a6,0x39e8,0x39e7,0x2986,0x31c7,0x31c7,0x3186,0x2966,0x39c7,0x31c6,0x31a6,0x31a6,0x31a6,0x31c7,0x3186,0x31a6,0x2986,0x2965,0x2145,0x2965,0x31a6,0x2965,0x2145,0x31a6,0x3207,0x31c7,0x2965,0x31a6,0x3186,0x31a6,0x2965,0x2945,0x2965,0x2965,0x2945,0x2965,0x2986,0x2165,0x2965, +0x2986,0x2986,0x2965,0x2965,0x2965,0x2965,0x2986,0x2965,0x2165,0x2965,0x2965,0x2165,0x2145,0x2965,0x3186,0x2986,0x2965,0x2966,0x2986,0x2145,0x2965,0x31a6,0x2985,0x31c7,0x2985,0x2986,0x2986,0x2965,0x2965,0x2965,0x2965,0x2965,0x2985,0x2985,0x2986,0x2965,0x2965,0x31a6,0x31a6,0x2986,0x31a6,0x31c6,0x31c6,0x2986,0x31a6,0x2985,0x3186,0x31a6,0x3186,0x31c7,0x31a6,0x31a6,0x3186,0x2986,0x31c7,0x31e7,0x31c7,0x2986,0x31a6,0x3186,0x31a6,0x39c7,0x31c6,0x31a6,0x31a6,0x31c7,0x29a6,0x29a6,0x2986,0x2986,0x31a6,0x31c6,0x31a6,0x31a6,0x31a6,0x2986,0x31c7,0x39e8,0x31a7,0x2986,0x3186,0x31c6,0x39e7,0x39e7,0x31a7,0x39c7,0x31a7,0x31a7,0x31c7,0x31c7,0x31c6,0x29a6,0x31a7,0x31c7,0x31a6,0x31c6,0x39e7,0x39e7,0x39e7,0x31e7,0x31c6,0x39c7,0x39c7,0x31a6,0x39c7,0x39c7,0x39e8,0x39e8,0x39e8,0x39e8,0x31c7,0x39e7,0x3a08,0x31e7,0x31a7,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x1082,0x1082,0x1082,0x0841,0x0020,0x2104,0x3186,0x18e3,0x0861,0x0841,0x0021,0x10a2,0x2945,0x2985,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x10a2,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c2,0x0861,0x1082,0x10a2,0x18a2,0x18c3,0x18c3,0x2103,0x18c3,0x18e4,0x4208,0x31a6,0x18c2,0x0020,0x0841,0x0861,0x18e3,0x3186,0x18e4,0x0020,0x0841,0x0861,0x0861,0x1082,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x2124,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18e3,0x2124,0x31c7,0x39e8,0x3a08,0x39e8,0x39e8,0x31e8,0x3a08,0x39c7,0x31c7,0x4208,0x39e7,0x31e6,0x31c6,0x3a08,0x31a6,0x31a7,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x39e7,0x31a6,0x31c6,0x31c7,0x31c7,0x2986,0x31a6,0x3a08,0x39e8,0x3187,0x2986,0x2986,0x31a6,0x2985,0x31c6,0x31a6,0x2986,0x31a6,0x2986,0x39e7,0x39e7,0x2986,0x39e7,0x31a6,0x31c7,0x31a6,0x2985,0x31a6,0x31c6,0x31a6,0x31a6,0x29a6,0x31a7,0x39e8,0x39c7,0x3186,0x39e8,0x3a08,0x31c7,0x31c6,0x31a6,0x31a6,0x2985,0x31a6,0x31a6,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x3186,0x39c7,0x31a6,0x31a6,0x2965,0x39c7,0x39c7,0x3186,0x31a6,0x2986,0x2986,0x31a6,0x31a6,0x31c6,0x3186,0x2986,0x2965,0x2965,0x2986,0x3186,0x2965,0x2124,0x2145,0x2986,0x29a6,0x39e7,0x31a6,0x31a6,0x2945,0x2125,0x2945,0x2986,0x2145,0x2965,0x2965,0x2124,0x2965,0x2145,0x2145, +0x2145,0x2945,0x2985,0x3186,0x2965,0x2145,0x2145,0x2144,0x2145,0x2165,0x2145,0x2165,0x2966,0x2165,0x2145,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x31a6,0x2986,0x2986,0x2986,0x2986,0x2986,0x2986,0x2965,0x2986,0x2965,0x2986,0x3186,0x2966,0x2965,0x2986,0x2986,0x2985,0x2986,0x31a6,0x31a6,0x31a6,0x3186,0x3186,0x31a6,0x3186,0x31a6,0x31a6,0x2986,0x31a6,0x31c7,0x2986,0x31a6,0x31c7,0x3186,0x31a6,0x31c6,0x31a6,0x31c7,0x31a6,0x31c7,0x31a6,0x31a6,0x31a7,0x3186,0x31a6,0x2986,0x3186,0x39c7,0x31a6,0x31a6,0x31c7,0x39c7,0x31c7,0x39e7,0x31c7,0x31c7,0x3186,0x31a6,0x31a6,0x39e7,0x31c7,0x31a7,0x39c7,0x31a6,0x3186,0x31c7,0x39e7,0x31e7,0x31a7,0x31a7,0x31c7,0x31c7,0x31c7,0x39e7,0x31a6,0x39c7,0x39e7,0x31c7,0x39e8,0x39c8,0x31c7,0x31c7,0x31c7,0x39e8,0x31c7,0x39e8,0x39e8,0x3186,0x31a6,0x31e7,0x31c7,0x31a6,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x10a3,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x1082,0x1082,0x10a2,0x1082,0x0020,0x1082,0x2965,0x2945,0x10a2,0x1082,0x0841,0x0841,0x18e3,0x2965,0x2945,0x18c3,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x10a2,0x0861,0x0861,0x0861,0x0861,0x0861,0x1062,0x1082,0x18c3,0x0861,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x31a7,0x39e7,0x2104,0x0841,0x0020,0x0841,0x1082,0x2965,0x3186,0x1082,0x0020,0x0861,0x1082,0x0861,0x1082,0x18c3,0x10a2,0x10a2,0x10a2,0x18a3,0x2104,0x2124,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a2,0x18e3,0x18c3,0x20e3,0x2104,0x31c7,0x39e7,0x3a08,0x31c7,0x31c7,0x39e8,0x39e7,0x39e7,0x31e7,0x31c7,0x3a08,0x3a28,0x39e7,0x4228,0x3a07,0x31c7,0x31c7,0x31a7,0x31c7,0x39e7,0x31a7,0x31c7,0x31c7,0x39e7,0x39e7,0x31a7,0x31a7,0x31a7,0x31a6,0x39c7,0x31a7,0x31a6,0x31a6,0x31a6,0x31a6,0x39c7,0x31c7,0x3186,0x39e7,0x31a6,0x2986,0x31a7,0x31a7,0x3186,0x3186,0x3186,0x39c7,0x39c7,0x3186,0x31a6,0x3186,0x2986,0x31a6,0x31a6,0x3186,0x39c7,0x39c7,0x31c7,0x31a7,0x39e7,0x31c7,0x31c7,0x31a6,0x2965,0x31a6,0x31a6,0x31a6,0x31a6,0x3a08,0x31a6,0x31a7,0x39e8,0x3186,0x2965,0x39c7,0x3a07,0x31a6,0x3186,0x31a6,0x31a7,0x3186,0x31a6,0x3186,0x2986,0x2986,0x31c7,0x31e7,0x29a6,0x2966,0x3186,0x2986,0x3186,0x2965,0x2966,0x2986,0x2986,0x2945,0x2965,0x39c7,0x3186,0x2124,0x2986,0x3186,0x2965,0x2965,0x31a6,0x3186,0x2124,0x2945,0x2965,0x2965, +0x2945,0x2124,0x2965,0x31a6,0x2985,0x2145,0x2144,0x2945,0x2165,0x2986,0x2966,0x2945,0x2986,0x2165,0x2165,0x2145,0x2966,0x2986,0x2965,0x31a6,0x2986,0x2965,0x2985,0x2986,0x29a6,0x2165,0x2965,0x2986,0x2986,0x29a6,0x2966,0x2986,0x3186,0x2966,0x2965,0x2986,0x2966,0x2986,0x2966,0x2965,0x3186,0x3186,0x3186,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x3186,0x31c7,0x3186,0x2986,0x31c7,0x31a6,0x2965,0x31a6,0x31a6,0x3186,0x31a6,0x29a6,0x31a6,0x2986,0x31a6,0x3186,0x31a6,0x39e7,0x31a6,0x31a6,0x31c6,0x31a6,0x39e7,0x39c7,0x39c7,0x39c7,0x39e7,0x39e8,0x31c7,0x31c7,0x31c7,0x3186,0x31a7,0x31a7,0x31a7,0x39c7,0x39e8,0x39c7,0x31c7,0x31a6,0x31c7,0x31c7,0x31e7,0x39e7,0x31a7,0x31c7,0x3a08,0x39c7,0x39c7,0x31a7,0x3186,0x31c7,0x31c7,0x31c8,0x31c8,0x39e7,0x31e7,0x3187,0x39c7,0x31c7,0x31c7,0x31a7,0x31c7,0x31a7,0x31a6,0x31a6,0x2986,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18e4,0x18e3,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18c3,0x1082,0x1082,0x10a2,0x0841,0x0020,0x20e4,0x3186,0x2104,0x18a3,0x1082,0x0841,0x0861,0x2104,0x2945,0x2124,0x18c3,0x18a2,0x18c3,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x1082,0x1061,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x0861,0x10a2,0x10a2,0x18c3,0x18a2,0x10a2,0x18c3,0x3186,0x3a08,0x2945,0x1081,0x0020,0x0861,0x1082,0x2104,0x31a7,0x2104,0x0841,0x0841,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x18e3,0x2125,0x2104,0x18e3,0x18e3,0x18c3,0x18c3,0x18a3,0x18c3,0x18e3,0x18c3,0x20e3,0x2104,0x31a7,0x31e7,0x31e7,0x39e8,0x31a7,0x39e8,0x3a08,0x3a28,0x39e7,0x4228,0x39e7,0x3a08,0x31c7,0x31c7,0x39c8,0x39c7,0x39e8,0x31c7,0x31c7,0x31a7,0x31a7,0x31a7,0x3186,0x39c7,0x39e8,0x31a7,0x31c7,0x31c7,0x31c7,0x31a7,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x39c7,0x39c7,0x3186,0x39c7,0x39e7,0x31a7,0x31a7,0x31a7,0x31a6,0x31a7,0x31a6,0x3186,0x31a6,0x31c6,0x39c7,0x39c7,0x31c7,0x31a7,0x3186,0x3186,0x3186,0x39c7,0x39c7,0x31a6,0x31a6,0x2986,0x31c7,0x31a7,0x31a6,0x3186,0x3186,0x3186,0x2986,0x31a6,0x31a7,0x31a7,0x4208,0x31a6,0x3186,0x31a6,0x31a6,0x39c7,0x31a6,0x2985,0x31c7,0x3186,0x3186,0x3186,0x2965,0x2985,0x31a6,0x29a6,0x2986,0x2985,0x2945,0x31a6,0x2965,0x2945,0x3186,0x39c7,0x2945,0x2966,0x2945,0x31a7,0x39c7,0x2966,0x2965,0x2945,0x2965,0x2965,0x2986,0x2986,0x2124,0x2945,0x2966,0x2945, +0x2124,0x2945,0x2985,0x2965,0x2965,0x2145,0x2144,0x2145,0x2965,0x2985,0x2966,0x2945,0x2965,0x2965,0x2966,0x2965,0x2965,0x2986,0x2966,0x2986,0x2965,0x2986,0x2986,0x31a6,0x2986,0x2965,0x2945,0x2965,0x31a6,0x31c7,0x2965,0x2966,0x3186,0x31a6,0x2965,0x2986,0x2986,0x31c7,0x31a7,0x31a6,0x3186,0x3186,0x31a6,0x3186,0x3186,0x3186,0x31c7,0x39c7,0x31a6,0x31a6,0x2986,0x2986,0x29a6,0x2986,0x2986,0x39c7,0x31c7,0x3186,0x2986,0x31c7,0x29a6,0x2986,0x31a6,0x29a6,0x31a6,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x39e7,0x31c6,0x39c7,0x39c7,0x31c7,0x31a6,0x31a6,0x39c7,0x39c7,0x31a6,0x31a6,0x31c7,0x31c7,0x31c7,0x39e8,0x31c7,0x31c7,0x31c7,0x31c7,0x31a6,0x31c7,0x31c7,0x39e8,0x31c8,0x39e8,0x39e7,0x39e7,0x31c7,0x31c7,0x39c7,0x31a7,0x31a7,0x31a7,0x31c7,0x39e8,0x31c8,0x31a7,0x31a7,0x39e8,0x39a7,0x31c7,0x31a6,0x31a6,0x39e7,0x31a7,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x2104,0x10a2,0x10a2,0x10a3,0x18c3,0x10a3,0x2104,0x18e3,0x1082,0x10a2,0x10a2,0x0020,0x0862,0x2925,0x2966,0x2104,0x18c3,0x1082,0x0841,0x1062,0x2104,0x2945,0x2124,0x2104,0x18e3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x0861,0x0861,0x10a2,0x10a2,0x18c2,0x18c3,0x18e3,0x2965,0x39a7,0x2945,0x1082,0x0841,0x1082,0x18a3,0x2104,0x31a6,0x2965,0x0862,0x0020,0x0861,0x1082,0x1082,0x18c3,0x18e4,0x18c3,0x18c3,0x18c3,0x2104,0x20e4,0x2125,0x20e4,0x18e3,0x18e3,0x18e3,0x18c3,0x18a3,0x18c3,0x18e3,0x18c3,0x20e3,0x2104,0x39e7,0x31c7,0x31e7,0x3a08,0x31c7,0x39e8,0x39e8,0x3a08,0x3a08,0x39e7,0x31c7,0x3a28,0x31e7,0x31c7,0x31c7,0x39e8,0x31c7,0x29a7,0x31c7,0x39e8,0x31c7,0x3186,0x31c7,0x31a6,0x31c7,0x39e8,0x39e7,0x3186,0x31a6,0x31a7,0x31e7,0x31c7,0x31a6,0x31a6,0x3186,0x31a6,0x31a6,0x39c7,0x31a7,0x31c7,0x31c7,0x31a6,0x31a6,0x39e7,0x31c7,0x31a6,0x31c7,0x31c6,0x31c6,0x31c7,0x31c7,0x39c7,0x31c7,0x3186,0x31a6,0x31c7,0x31a6,0x31a6,0x31a7,0x31c7,0x31a6,0x31a6,0x31a7,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x31a7,0x2966,0x2965,0x31c7,0x39e7,0x2945,0x2986,0x4208,0x39c7,0x31c6,0x31a6,0x2965,0x31a6,0x31c6,0x31a6,0x2985,0x31a6,0x2965,0x2985,0x2965,0x2986,0x3186,0x2966,0x2965,0x2965,0x31a6,0x2986,0x3186,0x3186,0x31a7,0x3186,0x3186,0x3186,0x2966,0x2965,0x2965,0x31a6,0x3186,0x31a6,0x2965,0x2965,0x31a7, +0x2945,0x2965,0x2965,0x2985,0x2985,0x2145,0x2145,0x2144,0x2965,0x2965,0x2986,0x2986,0x31a6,0x2986,0x2965,0x2986,0x2965,0x2965,0x2985,0x2965,0x2965,0x2985,0x2965,0x2986,0x31a6,0x2986,0x3186,0x3186,0x2986,0x2985,0x2985,0x2986,0x2986,0x2986,0x2985,0x29a6,0x2986,0x3186,0x3186,0x31a6,0x2986,0x31a6,0x3186,0x3186,0x3186,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x2985,0x29a6,0x31c7,0x31a6,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x31c7,0x31a6,0x31a6,0x31a7,0x31a6,0x31a6,0x31c7,0x31c7,0x3186,0x31a6,0x31c6,0x29a6,0x2986,0x2986,0x39c7,0x39c7,0x39c7,0x39c7,0x31c7,0x31c7,0x31c6,0x31c7,0x31c6,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x39e7,0x39e7,0x3a08,0x31c7,0x31c7,0x31e7,0x31e7,0x3a28,0x3a08,0x3a08,0x3a08,0x31e7,0x31c7,0x29c6,0x31e7,0x31e7,0x31e7,0x31c7,0x31c7,0x31c7,0x39c7,0x39c7,0x31c7,0x39e7,0x3a07,0x3a08,0x39c7,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a3,0x18c3,0x18e3,0x2124,0x18c3,0x10a3,0x18c3,0x18c3,0x10a2,0x18e4,0x2945,0x10a2,0x1082,0x18c3,0x0861,0x0020,0x10a2,0x2965,0x2965,0x2104,0x18c3,0x1082,0x0841,0x1082,0x18e3,0x2944,0x2945,0x2124,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x2104,0x2965,0x3186,0x2124,0x1082,0x0841,0x1082,0x18e3,0x2104,0x31a6,0x39a7,0x18c3,0x0020,0x0841,0x1082,0x1082,0x1082,0x2104,0x18e4,0x18e3,0x18c3,0x18e3,0x2104,0x2104,0x2104,0x20e3,0x20e4,0x20e3,0x20e4,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x2104,0x3a08,0x31c7,0x31e7,0x31c7,0x39e7,0x4208,0x39c7,0x31a6,0x39e7,0x3a07,0x39e7,0x3207,0x31e7,0x31e7,0x39e7,0x31c7,0x39e7,0x39e7,0x3a08,0x3a08,0x31e7,0x31c7,0x31c7,0x39c7,0x3186,0x39c7,0x39e7,0x31a7,0x39c7,0x2986,0x31a6,0x31a6,0x31c6,0x31a6,0x31a6,0x31c6,0x39e7,0x39e7,0x31a7,0x31e7,0x31e7,0x29a6,0x31a6,0x31c7,0x31c7,0x2985,0x31c6,0x31a6,0x31c6,0x31e7,0x31c7,0x39e7,0x31c6,0x31c6,0x31a6,0x31a6,0x39c7,0x31a7,0x2966,0x31a6,0x39e7,0x31a6,0x31a6,0x31c7,0x31c7,0x31c7,0x31a6,0x3186,0x31a6,0x29a6,0x2986,0x2965,0x29a6,0x31a6,0x31c6,0x39c7,0x2986,0x3186,0x31c7,0x2986,0x31a6,0x31a6,0x31c6,0x31c7,0x3186,0x2965,0x2965,0x2145,0x2986,0x31c7,0x29a6,0x2965,0x2965,0x2986,0x31a6,0x31c7,0x2986,0x29a6,0x2965,0x2145,0x2945,0x3186,0x2986,0x2965,0x31a6,0x31a6,0x2965,0x3186,0x3186,0x2945,0x2965, +0x2945,0x2965,0x2965,0x2145,0x2965,0x2145,0x2965,0x2945,0x2945,0x2965,0x2986,0x2986,0x31c7,0x2986,0x2145,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2985,0x2985,0x31a6,0x2986,0x2986,0x31c7,0x31c7,0x2985,0x2986,0x29a6,0x2985,0x2985,0x2985,0x2165,0x2165,0x29a6,0x31a6,0x31a7,0x31a6,0x2986,0x31c7,0x31a6,0x31a6,0x31c6,0x2986,0x31a6,0x31c6,0x31c6,0x31c7,0x31c6,0x31e7,0x31c6,0x31c7,0x31a6,0x31a6,0x31c7,0x31c7,0x31c7,0x31c7,0x31e7,0x31c7,0x29a6,0x2986,0x31a7,0x31c6,0x29a6,0x31c7,0x31e7,0x31a6,0x31a7,0x31c7,0x31a7,0x39a7,0x39e8,0x39e8,0x31c7,0x31c7,0x31c7,0x39e7,0x39c7,0x31a7,0x31c7,0x31c7,0x31c7,0x39c7,0x39c7,0x3a08,0x39c7,0x31c7,0x31c7,0x31c6,0x3a07,0x39e7,0x31e7,0x3a08,0x3a08,0x39e8,0x39e8,0x31e7,0x31e7,0x31e7,0x31c7,0x31c7,0x39e7,0x3a28,0x3a08,0x39e7,0x3a08,0x3a28,0x3a28,0x3a28,0x3a08,0x31c7,0x1082,0x1082,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10c3,0x18c3,0x18c3,0x18e3,0x2104,0x2104,0x10a3,0x18c3,0x18c3,0x10a2,0x18c3,0x2966,0x2945,0x1082,0x18c2,0x10a2,0x0841,0x0841,0x18e3,0x2966,0x2945,0x20e3,0x18c3,0x10a2,0x0861,0x1082,0x18e3,0x2124,0x2125,0x2104,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c2,0x18c2,0x18c3,0x18e4,0x2125,0x2965,0x2965,0x2124,0x1082,0x0861,0x1082,0x18e3,0x2104,0x3186,0x39c7,0x2924,0x0861,0x0841,0x1061,0x1082,0x1082,0x18e3,0x2125,0x18e3,0x18e3,0x18c3,0x18e4,0x2104,0x2925,0x2104,0x2104,0x2104,0x2104,0x20e4,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x2104,0x3a08,0x3a08,0x39e8,0x39e7,0x4208,0x4208,0x39e8,0x39c7,0x4208,0x4228,0x4228,0x39e8,0x4249,0x4249,0x3a08,0x3a08,0x4a6a,0x4229,0x3a08,0x3a08,0x3a08,0x3a08,0x3a08,0x4228,0x39e7,0x39e7,0x39e7,0x3a08,0x39e7,0x39e8,0x31c7,0x31a7,0x39e8,0x39e8,0x39e7,0x3a08,0x39e7,0x39e7,0x39e8,0x31c7,0x31e7,0x31c7,0x31a6,0x31c7,0x39e7,0x39c7,0x39c7,0x31a6,0x31a7,0x39e7,0x4208,0x39e7,0x31c7,0x39e7,0x31c7,0x31c7,0x31a6,0x31a7,0x31a7,0x31c7,0x31a7,0x31a7,0x31a7,0x3186,0x31a7,0x31c7,0x31a6,0x4228,0x39c7,0x31a7,0x3186,0x39e7,0x29a6,0x2985,0x31a6,0x31a6,0x39c7,0x3186,0x2945,0x2966,0x31a6,0x3186,0x31a6,0x2965,0x2965,0x2145,0x31a7,0x31a6,0x2986,0x2966,0x2945,0x2945,0x2965,0x3186,0x3186,0x31a6,0x2965,0x2965,0x2124,0x2124,0x2145,0x3186,0x2925,0x2966,0x31a6,0x31a6,0x2986,0x31a6,0x3186,0x2945,0x2125, +0x3186,0x3186,0x2945,0x2124,0x2945,0x2945,0x3166,0x2965,0x3186,0x2986,0x2986,0x2986,0x2986,0x3186,0x2986,0x2965,0x2966,0x2986,0x2986,0x2986,0x2966,0x2986,0x2965,0x2965,0x2965,0x31a6,0x31c6,0x31a6,0x31c7,0x29a6,0x31a6,0x2966,0x3186,0x31a6,0x3186,0x2986,0x2965,0x2986,0x31a6,0x2986,0x2986,0x2966,0x2986,0x29a6,0x29a6,0x31a6,0x3186,0x2986,0x2986,0x3186,0x39c7,0x3186,0x3186,0x2986,0x2986,0x31a7,0x3186,0x31a7,0x2966,0x2966,0x2986,0x31a7,0x2966,0x2986,0x2946,0x2986,0x2986,0x2966,0x2966,0x3186,0x3186,0x3186,0x3166,0x3167,0x3167,0x31a7,0x2966,0x2966,0x3187,0x3166,0x3187,0x3187,0x2945,0x3166,0x3166,0x3187,0x3166,0x3186,0x3187,0x2966,0x3187,0x2946,0x2946,0x2966,0x2946,0x2966,0x39e8,0x39c8,0x2966,0x2946,0x3146,0x3966,0x3126,0x2926,0x2946,0x2966,0x2946,0x2906,0x2926,0x20c5,0x2905,0x2905,0x2946,0x2105,0x20e5,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x20e4,0x2124,0x18c3,0x10a3,0x10a2,0x10a2,0x10a2,0x2104,0x39c7,0x18c3,0x1082,0x18a2,0x1082,0x0841,0x0861,0x2104,0x2965,0x2945,0x2103,0x18c3,0x10a2,0x10a2,0x10a2,0x18e3,0x2124,0x2125,0x2104,0x18e3,0x18e3,0x18c3,0x18c3,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18e4,0x2104,0x2945,0x2965,0x2945,0x2103,0x10a2,0x1062,0x10a2,0x18e3,0x2104,0x3186,0x39e7,0x2965,0x1082,0x0861,0x0861,0x10a2,0x1082,0x10a2,0x2966,0x2104,0x18e3,0x18e3,0x18e3,0x2104,0x2125,0x2945,0x2104,0x2104,0x2104,0x20e4,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x20e3,0x20e4,0x2105,0x2966,0x20c4,0x2105,0x2926,0x2105,0x2946,0x2946,0x3166,0x3187,0x2947,0x3167,0x39a7,0x31c7,0x2987,0x31c7,0x39e8,0x3187,0x2966,0x31a7,0x3187,0x2986,0x31c7,0x31a7,0x3186,0x39a6,0x3186,0x39e8,0x31a7,0x31a7,0x3186,0x2966,0x3166,0x3186,0x3186,0x2966,0x2966,0x31a7,0x39c7,0x31a7,0x39c7,0x3187,0x31a7,0x31a7,0x39a7,0x39a7,0x39a7,0x31a7,0x3186,0x3186,0x3186,0x31a7,0x31c7,0x39c7,0x39c8,0x39c7,0x31c7,0x39c8,0x39e8,0x31c7,0x31a7,0x31a7,0x39a7,0x39c7,0x39c7,0x39c7,0x39a7,0x4a6a,0x3a08,0x39e8,0x31a6,0x39c7,0x39c7,0x39e7,0x39a6,0x39a6,0x39c7,0x39e8,0x39e7,0x39e8,0x4228,0x4228,0x4208,0x41e8,0x41e7,0x41e7,0x39e7,0x41e8,0x4208,0x3a07,0x4208,0x4249,0x4228,0x4208,0x39e7,0x4208,0x39e7,0x39c7,0x39c7,0x39e7,0x39e7,0x39e7,0x39e8,0x39e7,0x39e7,0x3a08,0x39e8,0x39e7,0x39e7,0x39e7,0x39c7, +0x3186,0x3186,0x2945,0x2945,0x2985,0x2945,0x3165,0x3165,0x3166,0x2945,0x2945,0x3166,0x2965,0x3166,0x3186,0x3186,0x31a6,0x31a6,0x31a6,0x3186,0x3186,0x3186,0x3186,0x31a6,0x39a6,0x39a6,0x31a6,0x3186,0x3186,0x3166,0x3186,0x3186,0x31a6,0x39c6,0x31a6,0x31a7,0x3186,0x3187,0x39a7,0x39a7,0x3186,0x31a6,0x3186,0x31a6,0x39c7,0x39c7,0x39c7,0x31a7,0x39a7,0x39a7,0x39c7,0x39e8,0x39c7,0x39c7,0x39c7,0x39e7,0x39c7,0x39c7,0x39e7,0x41e7,0x4207,0x4208,0x39e8,0x4208,0x4208,0x4208,0x4208,0x39e8,0x4208,0x4228,0x4228,0x4228,0x4a49,0x4a49,0x4a29,0x4a49,0x528a,0x528a,0x4a6a,0x526a,0x528b,0x528a,0x528a,0x528a,0x526a,0x52ab,0x5aab,0x52ab,0x5aab,0x5acb,0x5acb,0x5acb,0x5acc,0x5aec,0x630d,0x630d,0x632d,0x632d,0x5b0c,0x5b0d,0x5b0c,0x632d,0x632d,0x632d,0x636e,0x634e,0x634e,0x634e,0x632e,0x6b8e,0x6b8e,0x738f,0x6b8f,0x73b0,0x6b6e,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18e3,0x18e3,0x2124,0x2104,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x2966,0x2985,0x10a2,0x10a2,0x18c3,0x1082,0x0841,0x1082,0x2124,0x2965,0x2124,0x20e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x2104,0x2124,0x2104,0x2104,0x20e4,0x18e3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x2104,0x2925,0x2945,0x2945,0x2124,0x20e3,0x10a2,0x10a2,0x18c3,0x18e3,0x2104,0x3186,0x39e8,0x3186,0x10a2,0x0841,0x1081,0x18c3,0x18c3,0x10a2,0x2965,0x3186,0x18e4,0x18c3,0x18c3,0x18e4,0x2104,0x2965,0x2945,0x2104,0x2104,0x20e4,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x2965,0x94b3,0x94d3,0x94d3,0x94d3,0x8cb3,0x8472,0x8472,0x8c92,0x8c92,0x8472,0x8492,0x8472,0x7c32,0x7c31,0x8452,0x8451,0x8c72,0x8451,0x8431,0x8431,0x8451,0x8c92,0x8c93,0x8472,0x8c92,0x8c72,0x8452,0x8472,0x8452,0x7c11,0x7c51,0x7c51,0x7c31,0x8451,0x7c31,0x8471,0x8471,0x8451,0x8c92,0x8cb3,0x8c92,0x8c92,0x8451,0x8451,0x8431,0x8451,0x8431,0x7bf0,0x7c10,0x7c10,0x8451,0x7c51,0x73ef,0x8451,0x8431,0x7c30,0x7c30,0x73ef,0x6baf,0x73cf,0x7c10,0x7bf0,0x7c10,0x7c10,0x6baf,0x6baf,0x73af,0x6b8e,0x73cf,0x73ef,0x6baf,0x6bae,0x7c0f,0x7c0f,0x73cf,0x73af,0x73cf,0x7bef,0x73ef,0x7c10,0x73ef,0x73ef,0x73ef,0x7bf0,0x7bef,0x6bae,0x6b8e,0x6baf,0x6b8e,0x6b6e,0x73d0,0x73cf,0x634d,0x636d,0x634d,0x634c,0x5b2c,0x632c,0x634d,0x632d,0x632c,0x5b0c,0x5b4d,0x634d,0x5b2c,0x5b0c,0x630c,0x5acb,0x5acb,0x5b0c,0x5aeb, +0x4a69,0x5289,0x5aca,0x5aca,0x52aa,0x528a,0x5acb,0x5aeb,0x630c,0x632c,0x630c,0x632c,0x6b4d,0x632c,0x630c,0x632c,0x634c,0x634c,0x632c,0x630c,0x6b4d,0x6b4d,0x634c,0x634d,0x632d,0x6b4d,0x6b6d,0x6b4d,0x6b6e,0x73ae,0x73ae,0x73ae,0x73ae,0x73af,0x73cf,0x73cf,0x6bae,0x73cf,0x8430,0x8451,0x8451,0x7c10,0x7bef,0x6bae,0x6b8e,0x73ae,0x6b6d,0x634d,0x6b6e,0x738e,0x6b6d,0x6b6d,0x6b8e,0x738e,0x73ae,0x7bf0,0x7bf0,0x7c10,0x8410,0x8430,0x8450,0x8410,0x7c10,0x7c10,0x7c30,0x7c10,0x7c10,0x7c10,0x7bf0,0x7c10,0x8450,0x8451,0x8451,0x8cb2,0x94b3,0x8c92,0x8c92,0x8cb3,0x8cb3,0x94f4,0x9d34,0x9d34,0x9d54,0xa575,0xa555,0x9d34,0x9d34,0x9d14,0x94f3,0x9d14,0x9d14,0xa555,0xb5d7,0xa576,0xad97,0xadb7,0xadd8,0xadf8,0xa596,0xadb6,0xa5b6,0xa576,0xadf8,0xadd7,0xadd7,0xa5d7,0xadd8,0xadd8,0xadd8,0xb618,0xb638,0xb618,0xb5f8,0xb619,0xadd7,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x18c3,0x18e3,0x2124,0x2945,0x18e3,0x10a2,0x18c2,0x10a2,0x10a2,0x18c3,0x3186,0x2124,0x1082,0x10a2,0x10a2,0x0861,0x0841,0x1082,0x2124,0x2945,0x2124,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2124,0x2965,0x2945,0x2924,0x2104,0x2104,0x2104,0x20e3,0x20e3,0x2104,0x2104,0x2104,0x2104,0x2924,0x2924,0x2965,0x2965,0x2124,0x2104,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x2104,0x2966,0x39c7,0x3186,0x18c3,0x0841,0x0861,0x10a2,0x20e3,0x18c3,0x2945,0x39e8,0x2945,0x18e4,0x18e3,0x18c3,0x2104,0x2965,0x3186,0x2124,0x2104,0x2104,0x20e4,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x3186,0xadf8,0xb619,0xb619,0xb639,0xb618,0xadd7,0xadb7,0xadd7,0xadd8,0xadd8,0xa576,0x9535,0x8cf4,0x8d14,0x9515,0x9535,0x9515,0x9514,0x94f4,0x9514,0x94f4,0xa596,0xa597,0x9d35,0x9d56,0x9d35,0x94f4,0x94f4,0x9515,0x8cd4,0x8cb3,0x8cd3,0x8cd3,0x8cf4,0x8cd4,0x8cf4,0x8cf4,0x8cd4,0x8cf4,0x84b3,0x8492,0x8cd3,0x8cb2,0x8472,0x8cd3,0x94d3,0x8452,0x7c31,0x7c31,0x7431,0x8472,0x94f4,0x8cb3,0x8cd3,0x8cd3,0x8492,0x7c51,0x73ef,0x73ef,0x7c31,0x8472,0x7c31,0x73f0,0x73d0,0x6bd0,0x6bcf,0x73ef,0x73f0,0x73f0,0x6bcf,0x6baf,0x73d0,0x7c31,0x7c51,0x7410,0x7c10,0x73f0,0x73cf,0x73f0,0x73ef,0x7410,0x73f0,0x73f0,0x73d0,0x73cf,0x6b8f,0x6bcf,0x6b8e,0x638e,0x8431,0x6baf,0x5b2d,0x5b0d,0x5b2c,0x636d,0x636d,0x5b4d,0x5b0c,0x5b0c,0x5aec,0x52cc,0x52cb,0x5b2c,0x5b2d,0x5b0c,0x5aed,0x5aec,0x5aec,0x52cb,0x4acb,0x52eb, +0x630c,0x5aeb,0x630c,0x6b4c,0x630c,0x630b,0x6b2c,0x6b4d,0x7bef,0x73ce,0x6b8d,0x73cf,0x7bef,0x73cf,0x6bae,0x6bae,0x73ef,0x6bce,0x6b8e,0x6b8e,0x73cf,0x73ae,0x6b8e,0x6bae,0x6bae,0x6bae,0x73af,0x73cf,0x7bf0,0x7c10,0x7c0f,0x7bef,0x7bf0,0x7c10,0x73cf,0x73cf,0x73cf,0x7c10,0x8451,0x8471,0x8cd3,0x8471,0x7c51,0x7410,0x6baf,0x73af,0x6b8e,0x6b6e,0x6b8e,0x73af,0x73cf,0x73cf,0x73cf,0x7c10,0x7c11,0x7c11,0x7c32,0x8452,0x8452,0x8451,0x8452,0x8452,0x8451,0x7c11,0x7c11,0x8432,0x8472,0x8452,0x7c11,0x7c11,0x7c31,0x8452,0x8452,0x8c92,0x94d4,0x8cd3,0x8472,0x8cb3,0x8cd4,0x94f4,0x9d14,0x9d55,0xa576,0xa597,0xadd7,0x9d56,0x9515,0x9d35,0x9d15,0x9d35,0x9d35,0xad97,0xbe19,0xa577,0xadb7,0xb5f8,0xadb7,0xa597,0x9d76,0xad97,0xadd8,0x9d56,0xa597,0xad97,0xa597,0xa597,0xadb8,0xadd8,0xbe39,0xb619,0xb5f9,0xb5f9,0xadd8,0xb5f8,0xadd8,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18a2,0x18a3,0x18e3,0x2104,0x2966,0x2924,0x18c2,0x18c3,0x10a2,0x10a2,0x10a2,0x18e3,0x2965,0x18e3,0x1082,0x10a2,0x10a2,0x0861,0x0841,0x10a2,0x2104,0x2945,0x2124,0x18e4,0x18c3,0x18e3,0x20e3,0x20e3,0x18e3,0x2104,0x2965,0x3186,0x3185,0x3186,0x3185,0x2965,0x2945,0x2945,0x2945,0x2945,0x2945,0x2965,0x3185,0x2965,0x2965,0x2924,0x20e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2124,0x2966,0x31a6,0x2965,0x18c2,0x0841,0x0861,0x1082,0x18e3,0x18e3,0x2125,0x4208,0x31a7,0x2124,0x1904,0x18e3,0x18e3,0x2125,0x3186,0x2965,0x2124,0x2104,0x2104,0x20e4,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x20e3,0x2986,0x9d77,0xadd9,0xa5b8,0xa598,0xa597,0x9d35,0xa576,0xa597,0xa556,0xadb7,0xb5f8,0x9d55,0x8493,0x8cb3,0x9515,0x9515,0x84b3,0x8cf4,0x8cd4,0x8cf4,0x84b3,0x9d35,0x9d56,0x9d36,0xa577,0xa556,0x9d15,0x94d4,0x94d4,0x8cb4,0x8cb3,0x8c93,0x8492,0x8c93,0x8473,0x8c93,0x94d4,0x8cb3,0x8c93,0x8493,0x7411,0x8472,0x8cb3,0x8c72,0x8c93,0x8cb3,0x8452,0x7c31,0x73f1,0x7c11,0x7c11,0x8492,0x8cb3,0x8c92,0x8472,0x7c52,0x7411,0x73f0,0x7c11,0x7410,0x7c31,0x73f1,0x73d0,0x6bd0,0x73f1,0x73f0,0x6baf,0x73cf,0x6baf,0x638f,0x6baf,0x6bd0,0x7c11,0x7c10,0x73f0,0x7c10,0x7bf0,0x73af,0x73cf,0x7c10,0x8c72,0x7c10,0x73af,0x6b8f,0x6b8f,0x6b8f,0x6b6e,0x73af,0x8431,0x73ef,0x636e,0x636e,0x634d,0x5b2d,0x632d,0x634e,0x634e,0x5b0c,0x5b0c,0x5b0c,0x52ec,0x52cb,0x52cb,0x5aec,0x5aec,0x5aed,0x5b0c,0x5b0c,0x5b0c,0x52eb,0x52cb, +0x630c,0x630c,0x6b4d,0x632c,0x5aeb,0x62ec,0x6b2d,0x632c,0x73ce,0x73ae,0x738e,0x738e,0x73af,0x738e,0x6b6d,0x738e,0x73cf,0x73af,0x6b8e,0x73ae,0x73cf,0x73af,0x738e,0x738e,0x738e,0x6b8e,0x73af,0x73cf,0x73cf,0x6bae,0x73cf,0x73cf,0x73af,0x738f,0x6b8e,0x73af,0x73cf,0x73cf,0x8451,0x8c72,0x8c72,0x8451,0x7bf0,0x6bae,0x73ae,0x73ae,0x6b6e,0x632d,0x6b6e,0x73af,0x7c10,0x73ef,0x6bcf,0x73cf,0x7bf0,0x7bf0,0x7c11,0x7c11,0x8431,0x8431,0x8432,0x8431,0x7c31,0x7c11,0x7c31,0x8451,0x7c11,0x8431,0x7c31,0x7c31,0x8451,0x8472,0x8472,0x8472,0x8cd3,0x94d4,0x94d4,0x94f4,0x8cb3,0x94d4,0x94d4,0x9cf4,0xa556,0xa556,0xad97,0xa576,0x9d35,0x9d56,0x9d56,0x9d56,0x9d56,0xa597,0xadb7,0xa597,0xb5d8,0xadd8,0xa556,0xa556,0xad77,0xadb7,0xa597,0xa597,0xa597,0xadb7,0xadd8,0xadd8,0xadd8,0xbe19,0xc67a,0xce9a,0xce9b,0xcebb,0xc67b,0xbe19,0xb5d8,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x20e4,0x2125,0x2965,0x2104,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x2104,0x2124,0x10a2,0x1082,0x10a2,0x10a2,0x0861,0x0861,0x1082,0x18e3,0x2124,0x2124,0x18e4,0x18e3,0x18e3,0x20e3,0x18e3,0x2104,0x2945,0x3165,0x3165,0x3186,0x31a6,0x31a6,0x3186,0x3185,0x3186,0x3185,0x3185,0x3185,0x3165,0x2944,0x2124,0x2104,0x2104,0x20e3,0x20e3,0x18e3,0x2104,0x2124,0x2965,0x3186,0x2945,0x10a2,0x0861,0x0861,0x10a2,0x18c3,0x18c3,0x2104,0x39c7,0x39c7,0x2925,0x2104,0x18e4,0x2104,0x2104,0x2966,0x3186,0x2945,0x2124,0x2104,0x2104,0x2104,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2103,0x3186,0xadb8,0xadd8,0xadd8,0xadd8,0xa597,0x9d35,0x9d56,0xa597,0xa597,0xa597,0xad97,0x94f4,0x8493,0x9535,0x94f5,0x9515,0x94f4,0x9d35,0x94f4,0x94f4,0x8cd4,0x9d35,0x9d15,0x94d4,0xa576,0x9d35,0x9d35,0x9d35,0x94f4,0x9d15,0x9d55,0x9515,0x8cb3,0x8cb3,0x8cb3,0x94d4,0x94f4,0x8cb3,0x94d4,0x8cd4,0x8493,0x8452,0x8c93,0x8cb3,0x8cb3,0x9514,0x7c31,0x7c31,0x8451,0x8451,0x8472,0x7c31,0x7c11,0x7c31,0x7c72,0x7c52,0x7c52,0x7c11,0x73f0,0x73f0,0x73f0,0x73f0,0x7411,0x7410,0x7411,0x7c11,0x6bcf,0x6bcf,0x6bcf,0x6baf,0x6bae,0x6bae,0x73f0,0x7410,0x7430,0x7c10,0x8431,0x6b8f,0x6baf,0x73f0,0x7c30,0x7c10,0x73cf,0x6baf,0x6baf,0x6b8f,0x6b8f,0x8431,0x73af,0x636e,0x6b6f,0x6b6e,0x634d,0x5b0d,0x5b0d,0x5b2d,0x5b0d,0x5b2d,0x636d,0x636e,0x634d,0x5b0c,0x52ab,0x52cb,0x5aeb,0x5b0b,0x632c,0x52cb,0x52aa,0x5aeb,0x5aec, +0x634d,0x738e,0x6b8d,0x632c,0x630c,0x5aeb,0x630c,0x632c,0x632c,0x6b4d,0x738e,0x7baf,0x738e,0x736e,0x6b6e,0x738f,0x73b0,0x73cf,0x7bd0,0x7bcf,0x8430,0x8451,0x7c10,0x7bcf,0x738f,0x738e,0x73af,0x7bf0,0x73cf,0x6bae,0x6baf,0x73ef,0x6baf,0x6b8f,0x73d0,0x8411,0x8451,0x8451,0x8c71,0x8c72,0x8451,0x8c72,0x8430,0x7bef,0x73ef,0x73af,0x6b6e,0x636e,0x636e,0x73d0,0x6baf,0x6baf,0x6baf,0x73cf,0x73f0,0x7bf0,0x7c11,0x7bf0,0x7c11,0x8432,0x8452,0x7c31,0x7c10,0x7c31,0x8451,0x8451,0x7c31,0x7c31,0x8452,0x7c31,0x7c31,0x8472,0x8452,0x8431,0x8c72,0x8452,0x8c93,0x8cb3,0x8cd3,0x8cd4,0x9d35,0x9d35,0x9d35,0xa576,0xa556,0xad76,0xa576,0xa576,0x9d56,0x9d35,0x9d36,0xa576,0xad97,0xadd8,0xad97,0xa556,0xa576,0xa597,0xadd8,0xadd7,0xa576,0xad97,0xa5b7,0xa5b7,0xadd8,0xadd8,0xb5f9,0xc65a,0xc67a,0xcebb,0xd6fb,0xd6fb,0xd6dc,0xc67a,0xb5f8,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e4,0x2945,0x2965,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18e3,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x0861,0x1082,0x18c3,0x2104,0x2124,0x2104,0x18e3,0x18e3,0x18e3,0x2104,0x2124,0x2924,0x2124,0x2924,0x2924,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x2104,0x20e4,0x2104,0x2945,0x2965,0x2965,0x2124,0x10a2,0x0861,0x1082,0x10a2,0x10a2,0x18a2,0x18e3,0x3186,0x31a6,0x2945,0x2124,0x2104,0x20e4,0x2104,0x2945,0x31a6,0x2965,0x2124,0x2124,0x20e3,0x2104,0x2104,0x18c3,0x20e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2103,0x3186,0xadb8,0xadd8,0xadf8,0xadd8,0xa577,0x9d76,0x9d56,0x9d36,0xa576,0xa5b7,0x9515,0x94f4,0x8cf4,0x9d36,0x8cb4,0x8cb4,0x9d56,0xadb7,0x94f4,0x9d36,0x9d15,0x9d35,0x8cb3,0x9d15,0x94f4,0x94d4,0x8cd4,0x9d15,0x9d15,0x94f4,0x9d35,0x9d55,0x9d15,0x94f4,0x8cd3,0x94f4,0x9514,0x9d35,0x94f5,0x9d15,0x8cd4,0x8cb3,0x8c93,0x8c93,0x8cb3,0x94f4,0x8c93,0x8cb3,0x8472,0x8c92,0x8c92,0x8451,0x7c31,0x7c31,0x7c52,0x8493,0x8cb3,0x7c31,0x6bcf,0x8493,0x7c31,0x73f0,0x73f0,0x73f0,0x73d0,0x73f0,0x6bd0,0x6baf,0x6baf,0x6baf,0x73af,0x73ef,0x7410,0x73f0,0x73ef,0x7c50,0x7c30,0x73f0,0x6baf,0x73cf,0x73f0,0x7c10,0x73cf,0x6baf,0x6b8e,0x73af,0x8c92,0x7bf0,0x632d,0x6b8e,0x6b8e,0x634e,0x5b0d,0x5b2d,0x5b0d,0x5b0d,0x5b0d,0x5b2d,0x634d,0x632d,0x5b0c,0x5aec,0x52cb,0x52ab,0x52aa,0x52eb,0x6bae,0x5aeb,0x52ab,0x5aec,0x630c, +0x6b4d,0x73ae,0x738e,0x630c,0x632c,0x630c,0x630c,0x5b0c,0x630c,0x630c,0x630c,0x6b4d,0x6b6e,0x6b6e,0x6b8e,0x738f,0x6baf,0x73af,0x8411,0x8451,0x94d2,0x8471,0x7c10,0x7bf0,0x6b8e,0x6b8e,0x73ae,0x73af,0x73ae,0x73af,0x73cf,0x73cf,0x73af,0x738e,0x8431,0x8c92,0x8451,0x8451,0x8c72,0x8472,0x8451,0x8471,0x8470,0x7c10,0x73cf,0x6bae,0x6b6e,0x6b6e,0x6b8e,0x6baf,0x73b0,0x73d0,0x73d0,0x73f0,0x7bf0,0x7c10,0x7c31,0x7c10,0x8431,0x8431,0x8431,0x8431,0x8431,0x8451,0x8451,0x8431,0x8431,0x7c11,0x7c31,0x7c31,0x7c31,0x8472,0x8452,0x8452,0x8c72,0x8c93,0x8cb3,0x8cd4,0x8cd4,0x94f4,0x9d35,0xa596,0xa556,0x9d35,0x9d56,0xa576,0xa556,0x9d56,0x9d35,0x9d35,0xa556,0xa576,0xa576,0xa576,0x9d56,0x9d56,0xa576,0xad97,0xadb7,0xad97,0xa556,0xadb7,0xa597,0xa597,0xadd8,0xb5d8,0xbe5a,0xc67b,0xc65a,0xce9b,0xd6dc,0xc67a,0xd6db,0xdf1c,0xbe39,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18a3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2104,0x2966,0x2945,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18a2,0x18c2,0x10a2,0x10a2,0x1082,0x0861,0x0861,0x10a2,0x18e3,0x2124,0x2124,0x2104,0x18e4,0x20e3,0x18e3,0x20e3,0x18e3,0x2103,0x18e3,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18e3,0x2104,0x2104,0x2104,0x20e4,0x2104,0x2124,0x2945,0x2945,0x2124,0x2103,0x18a2,0x0861,0x0861,0x10a2,0x18c3,0x10a2,0x18c3,0x2945,0x3166,0x2104,0x2104,0x2104,0x2104,0x2104,0x2125,0x39a7,0x31a6,0x2924,0x2124,0x2104,0x18e3,0x2104,0x20e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x20e3,0x3186,0xadd8,0xadf9,0xadd8,0xa597,0x9d56,0x9536,0x9515,0x9d16,0x9515,0x9d56,0xa597,0x9d35,0x8cf4,0x9d56,0x9515,0x8cf4,0xadb7,0xadb7,0x9cf4,0x9d15,0x8cd3,0x8cb3,0x8cf4,0xa597,0x8cb3,0x8493,0x8cb3,0x9514,0x9514,0x9514,0x9515,0x9515,0x9515,0x9535,0x9515,0x9d35,0x9515,0x9d15,0x9d35,0x9d15,0x8cb3,0x8cb4,0x94f4,0x94d4,0x94d4,0x9d15,0x9d15,0x9d15,0x94d4,0x8452,0x8452,0x8472,0x8452,0x8c93,0x8472,0x8cb3,0x8cb3,0x8432,0x73f0,0x73f0,0x73f0,0x6bcf,0x6baf,0x6bd0,0x73f0,0x7410,0x73f0,0x6baf,0x6bcf,0x73d0,0x7c10,0x7c10,0x73ef,0x73cf,0x7c11,0x8431,0x73f0,0x73f0,0x6baf,0x6baf,0x73d0,0x73f0,0x7bf0,0x73cf,0x73cf,0x8c51,0x7c11,0x73af,0x6b6e,0x6b6e,0x73af,0x6b6e,0x634d,0x634d,0x5b2c,0x5b0c,0x5b0c,0x52ec,0x52cb,0x52cb,0x52ab,0x52cb,0x52cb,0x52ab,0x52cb,0x52cb,0x73cf,0x6b6d,0x52ab,0x630c,0x5acb, +0x632c,0x6b4c,0x6b4d,0x630c,0x630c,0x630c,0x632c,0x630c,0x630c,0x630c,0x5b0c,0x630c,0x634d,0x6b6e,0x738e,0x738e,0x6baf,0x73af,0x7bd0,0x8410,0x8c91,0x73ef,0x73af,0x738f,0x6b8e,0x6b8e,0x73ae,0x73ae,0x7bcf,0x7bcf,0x7bcf,0x73af,0x73af,0x7bcf,0x8c72,0x8c72,0x8471,0x8451,0x8451,0x8471,0x8471,0x8451,0x7c0f,0x7bef,0x73af,0x6b8e,0x6b6e,0x6b6e,0x6b8f,0x6b8f,0x6b8f,0x6baf,0x73d0,0x73f0,0x73f0,0x7c10,0x7c10,0x7c10,0x7c31,0x7c31,0x8431,0x8472,0x8451,0x8451,0x8451,0x8431,0x7c31,0x7c31,0x7c31,0x7411,0x7c11,0x8452,0x8452,0x8472,0x8c72,0x8c93,0x8cb3,0x8cb3,0x8cd4,0x8cb4,0x8cb3,0x9515,0x9d35,0x94f5,0x9d36,0x9d56,0xa556,0xad97,0x9d36,0x9d56,0xa556,0x9d56,0x9d56,0xa576,0xad97,0x9d56,0x9d35,0xa576,0xa556,0xa556,0xa576,0xa597,0xadd8,0xa597,0xa597,0xbdf9,0xbe3a,0xb639,0xc65b,0xcebb,0xc67b,0xc65a,0xd6fc,0xdf1c,0xc67a,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x2124,0x3186,0x2124,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x18c3,0x10a2,0x18c2,0x10a2,0x1082,0x1081,0x1081,0x10a2,0x18e3,0x2124,0x2124,0x2124,0x2104,0x2104,0x20e3,0x18e3,0x2103,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e4,0x2104,0x2104,0x2104,0x2124,0x2945,0x2944,0x2124,0x20e3,0x10a2,0x10a2,0x18a2,0x1082,0x1082,0x18a2,0x10a2,0x18c3,0x2124,0x2945,0x2104,0x2104,0x2104,0x2104,0x2104,0x2125,0x3186,0x39c7,0x2945,0x2124,0x2124,0x2104,0x2104,0x1904,0x20e3,0x20e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x20e3,0x3186,0xb619,0xb619,0xa597,0x9d56,0x9515,0x9536,0x94f5,0x9d15,0x8cd4,0x94f5,0xa576,0xa577,0x9535,0x9535,0x9d36,0xa597,0xb619,0xa576,0x9d36,0x94f4,0x8cb3,0x8cb3,0x9d55,0x9d76,0x8473,0x8472,0x8cb3,0x8cb3,0x8492,0x8cb3,0x9515,0x9d15,0x9515,0x9535,0x9515,0x9d35,0xa556,0xa576,0xa576,0xb5b8,0xad97,0x8cd4,0x9d56,0x9d35,0x94d4,0xa535,0x8cb3,0x94d4,0x94f4,0x8cb3,0x8472,0x8472,0x8472,0x94d3,0x8cb3,0x8c93,0x8cd4,0x8452,0x7bf1,0x73d0,0x73d0,0x73f0,0x6bd0,0x7410,0x73f0,0x7411,0x7410,0x73f0,0x73cf,0x73d0,0x73ef,0x6bcf,0x73cf,0x7bf0,0x7c11,0x7c11,0x73f0,0x73d0,0x6b8f,0x6baf,0x73d0,0x73d0,0x73cf,0x73ef,0x8471,0x7c31,0x6baf,0x6baf,0x6baf,0x6bae,0x6baf,0x6b8e,0x6bae,0x636d,0x5b4d,0x52ec,0x5b0c,0x5aec,0x52ab,0x52cb,0x5b0c,0x52ec,0x4aab,0x52cb,0x52cb,0x5aeb,0x6b6d,0x73cf,0x52eb,0x5b0c,0x52aa, +0x632c,0x6b2c,0x632c,0x630c,0x5aeb,0x630c,0x630c,0x5b0b,0x634d,0x630c,0x630c,0x632d,0x632c,0x632d,0x6b4d,0x738e,0x6baf,0x7bf0,0x7bf0,0x7bef,0x7c10,0x73ef,0x738e,0x736e,0x738e,0x738e,0x6b6e,0x73af,0x7bcf,0x73cf,0x73ae,0x6b8e,0x73af,0x8431,0x8c92,0x94b3,0x8c92,0x8451,0x8451,0x8c92,0x7c31,0x73f0,0x7c10,0x7c10,0x6baf,0x6b8e,0x6baf,0x73af,0x738f,0x6b8f,0x6b8f,0x73cf,0x73f0,0x7c10,0x73ef,0x7c10,0x7c10,0x73f0,0x8451,0x8452,0x8472,0x8cb3,0x8472,0x8471,0x8451,0x7c10,0x7c10,0x8431,0x7c31,0x7c31,0x8452,0x8432,0x8452,0x8493,0x8492,0x8472,0x8c93,0x8493,0x8493,0x8493,0x7c52,0x7c73,0x8493,0x8cd4,0x9d36,0x9d56,0x9d36,0xb5d8,0xa597,0xa556,0x9d35,0x9d35,0xa556,0xa576,0xa597,0x9d56,0x9d35,0x9d56,0x9d15,0x9515,0xa556,0xb5d7,0xb5d8,0xa577,0xa557,0xb5d8,0xb5f8,0xadb8,0xb5f9,0xc67b,0xc67a,0xc67a,0xd6db,0xd6db,0xc65a,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x2104,0x2965,0x2965,0x2124,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x18c2,0x2104,0x2104,0x2924,0x2944,0x2124,0x2124,0x2124,0x2104,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e4,0x2104,0x2104,0x2124,0x2925,0x2945,0x2945,0x2124,0x18e3,0x18c3,0x10a2,0x1082,0x10a2,0x18c2,0x10a2,0x1082,0x18a2,0x18c3,0x2104,0x2104,0x18e4,0x18e4,0x2104,0x2104,0x2104,0x2125,0x3186,0x31a7,0x2965,0x2124,0x2124,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x20e4,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x3186,0xadb8,0xadb8,0xa597,0x9d56,0x9d35,0x9d15,0x9d15,0x94f5,0x94d4,0x9515,0x9d35,0xa577,0xa597,0x9d56,0x9d36,0xadb7,0xadb8,0x94f5,0xa577,0x9d56,0x94f4,0x8cd3,0x9d35,0x94d4,0x8452,0x8452,0x8cb3,0x8472,0x8472,0x8472,0x8cf4,0x9514,0x9d15,0x9cf4,0x94f4,0xa556,0xa596,0xa597,0xad97,0xb5f8,0xb5f8,0xa576,0x9515,0x9d15,0x94f4,0x9d14,0x94f4,0x8492,0x8cb3,0x8492,0x8472,0x8cb3,0x8492,0x94f3,0x8cd3,0x8452,0x8cb4,0x8473,0x73d0,0x73f0,0x73f0,0x6bcf,0x6bcf,0x7410,0x73d0,0x73d0,0x73d0,0x6bcf,0x6baf,0x6b8f,0x7c10,0x7c31,0x73cf,0x7bf0,0x73cf,0x7410,0x7410,0x73f0,0x6baf,0x73d0,0x73f0,0x6bae,0x7c10,0x8472,0x73f0,0x73f0,0x73f1,0x6baf,0x6b8e,0x6b8e,0x636e,0x636e,0x636e,0x636e,0x5b4d,0x530c,0x5b0c,0x52eb,0x52cb,0x5b0c,0x5b2d,0x52eb,0x4acb,0x52cb,0x52ab,0x52cb,0x6b6d,0x73ae,0x632d,0x52ab,0x52ab, +0x6b4c,0x632c,0x630c,0x5aeb,0x5aeb,0x5aeb,0x62eb,0x5aeb,0x62ec,0x5aec,0x5aec,0x632d,0x632c,0x632c,0x6b6d,0x6b4d,0x738f,0x7bf0,0x7bef,0x7c10,0x7bef,0x73ef,0x6b8e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x7bcf,0x7bcf,0x738e,0x6b6e,0x6b6e,0x7bf0,0x94b3,0x9cf4,0x94d3,0x8471,0x8c71,0x8471,0x7c30,0x73cf,0x73af,0x7bf0,0x7c10,0x6baf,0x6baf,0x73af,0x7bf0,0x73af,0x6baf,0x6baf,0x73f0,0x7c10,0x73f0,0x73ef,0x73f0,0x73f0,0x73f0,0x8452,0x8c93,0x7c52,0x8472,0x7c51,0x7c51,0x8451,0x7c51,0x8451,0x7c31,0x7c31,0x8472,0x8c93,0x8452,0x8472,0x84b3,0x7c51,0x7c52,0x8452,0x8452,0x8452,0x8493,0x8473,0x7c52,0x7c52,0x84b3,0x94f5,0x94f5,0x9d36,0xadb7,0xb5f9,0x94d4,0x9d15,0x9d35,0x9d56,0xa556,0x9d35,0xa576,0x9d35,0x9d35,0x9d35,0x9d36,0xa556,0xadb7,0xb5d8,0xad97,0xad77,0xb5d8,0xb5f8,0xb5d8,0xadd8,0xb5f9,0xbe3a,0xc65a,0xc67a,0xc67a,0xbe19,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18e3,0x2124,0x3186,0x3166,0x2104,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x18c2,0x18c3,0x2103,0x2124,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2945,0x2945,0x2945,0x2945,0x2965,0x2945,0x2945,0x2925,0x2124,0x2104,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x2103,0x18e3,0x18e3,0x18e4,0x2104,0x18e4,0x2104,0x2966,0x39c7,0x2966,0x2124,0x2104,0x2124,0x2104,0x18e3,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x20e3,0x3186,0xa597,0x9d76,0x9d56,0xa577,0xa576,0x9515,0x94f5,0x94f4,0x9515,0x94f4,0x94f4,0x9535,0x9d56,0xa5b7,0x9515,0xb5f8,0x9d36,0x8494,0x9d77,0xadb8,0x94f4,0x9d15,0x94d4,0x8c93,0x8c93,0x8472,0x94d4,0x8472,0x7c32,0x8cd4,0x84b3,0x94f4,0x9d15,0x9d35,0xa556,0xad76,0xad96,0xa576,0xad97,0xa597,0xa597,0xadb7,0x9d36,0x9d35,0x9d56,0x94f4,0x8cb3,0x8c92,0x94f4,0x8c93,0x8cb3,0x8cd3,0x8cb3,0x94f3,0x94f4,0x8cb3,0x7c51,0x73f0,0x73f0,0x7411,0x73f0,0x6baf,0x6bcf,0x73f0,0x73d0,0x73d0,0x73af,0x73d0,0x73f0,0x73af,0x7c10,0x8c72,0x7c31,0x7c10,0x7410,0x7c30,0x7c30,0x73f0,0x63ae,0x73ef,0x6bcf,0x6baf,0x7c31,0x7c10,0x73ef,0x7bf0,0x73d0,0x73af,0x6baf,0x636e,0x634d,0x6b8e,0x6b8e,0x636d,0x5b2c,0x5b2c,0x5b2d,0x5b0c,0x530c,0x52eb,0x52cb,0x52cb,0x4a8a,0x52aa,0x52cb,0x5b0c,0x5b0c,0x6b6d,0x6b6d,0x632c,0x6b4d, +0x632c,0x630c,0x5aeb,0x5acb,0x5acb,0x5acb,0x62eb,0x62eb,0x632c,0x5b0c,0x5aec,0x630d,0x6b2d,0x6b4d,0x6b4d,0x6b4d,0x73af,0x73cf,0x73af,0x73cf,0x73cf,0x73ae,0x6b4d,0x6b6e,0x6b8e,0x6b6e,0x738f,0x7bef,0x7bcf,0x738e,0x73af,0x7bf0,0x8c72,0x94b3,0x9cf4,0x94d3,0x8c92,0x8c72,0x7bf0,0x6bae,0x6b8e,0x6b8e,0x73f0,0x73f0,0x73d0,0x7bf0,0x73cf,0x8411,0x73cf,0x73cf,0x73f0,0x73f0,0x7c10,0x73f0,0x73f0,0x73cf,0x73cf,0x7bf0,0x7bf0,0x7c31,0x8472,0x8452,0x8431,0x8431,0x8452,0x8451,0x8451,0x8451,0x8471,0x8472,0x8431,0x8452,0x8472,0x8472,0x7c31,0x7c52,0x8452,0x8452,0x8452,0x8452,0x8493,0x8493,0x8493,0x94f5,0x8cd4,0x94f5,0x9d35,0xa556,0xadd8,0x94f4,0x94f5,0x94f4,0x9d56,0x9d56,0x9d56,0xa556,0x9d56,0x9d15,0xa556,0xa576,0xa576,0xad97,0xadb7,0xad97,0xadd8,0xb5d8,0xb5d8,0xb5f9,0xb5f8,0xadd8,0xb5d9,0xbe3a,0xc67a,0xc65a,0xb5f9,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x10a3,0x18c3,0x18c3,0x18c3,0x2103,0x2925,0x2965,0x2965,0x2124,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c2,0x18c2,0x18a2,0x18a2,0x18c3,0x2103,0x2124,0x2945,0x3165,0x31a6,0x31a6,0x31a6,0x31a6,0x3185,0x3185,0x3165,0x2944,0x2924,0x2104,0x18c3,0x18c3,0x18a2,0x10a2,0x18a3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e4,0x2104,0x18e4,0x2124,0x31a6,0x31a7,0x2124,0x2104,0x2104,0x2124,0x2104,0x20e3,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x20e3,0x2986,0x9d56,0x9d56,0x9515,0x9d16,0x9d36,0x9d15,0x9d35,0x9515,0x9514,0x9514,0x9d35,0x9d56,0x94f5,0xa577,0xa596,0xb5f8,0x8cd4,0x8cd4,0x9535,0xa576,0x9d35,0x9d55,0x8493,0x8cb3,0x8cd4,0x8472,0x8cd3,0x8493,0x7c52,0x8493,0x8cb3,0x8492,0x9514,0x9d55,0xa576,0xad97,0xadb7,0xb5d8,0xa576,0xa556,0xa576,0xa597,0xa597,0x9d35,0x9d35,0x94f5,0x94f4,0x94d4,0x9d15,0x94f4,0x8cb3,0x8cb3,0x8492,0x8cb3,0x94f4,0x94d3,0x8472,0x73f0,0x73d0,0x6bd0,0x73d0,0x6bd0,0x6bd0,0x6baf,0x73d0,0x6bcf,0x73b0,0x7410,0x7410,0x7c10,0x8451,0x7c51,0x8cb3,0x8c72,0x7c10,0x7c10,0x7c30,0x73f0,0x73f0,0x7410,0x73f0,0x7c31,0x73d0,0x7c31,0x7c31,0x8431,0x7c10,0x73af,0x73cf,0x73cf,0x6bae,0x638e,0x6baf,0x636e,0x5b4d,0x5b2d,0x5b2d,0x5b2d,0x634d,0x634d,0x634d,0x5aec,0x5aec,0x5b0b,0x5b0c,0x5b0c,0x5b0c,0x5aec,0x634d,0x73ae,0x7c10, +0x5aeb,0x5aeb,0x630c,0x5aeb,0x5acb,0x5acb,0x5acb,0x630c,0x632c,0x630c,0x630c,0x630d,0x736e,0x6b2d,0x6b6e,0x738e,0x738e,0x7bf0,0x7bef,0x7c10,0x7c10,0x738e,0x6b4d,0x634d,0x636d,0x73af,0x7bf0,0x73cf,0x73af,0x7bd0,0x8411,0x8452,0x8c72,0x8cb3,0x94f4,0x8472,0x8451,0x7c10,0x73cf,0x73ae,0x6b8e,0x6baf,0x73cf,0x6b8e,0x73af,0x73cf,0x73cf,0x73cf,0x73cf,0x73cf,0x7410,0x7410,0x73f0,0x73cf,0x73cf,0x73cf,0x73cf,0x73d0,0x73d0,0x7bf0,0x8431,0x8452,0x8452,0x8452,0x8452,0x8452,0x8452,0x8472,0x8492,0x8492,0x8452,0x8452,0x8452,0x8452,0x8472,0x8c93,0x8c93,0x8472,0x8472,0x7c32,0x8493,0x8472,0x8493,0x94f4,0x8cb4,0x94d4,0x9d35,0x9d35,0x9d56,0x9d35,0x9d35,0x9d56,0xa597,0xad97,0xa576,0xa556,0xa576,0xa556,0xa576,0xadb7,0xa597,0xadb7,0xadd8,0xadd8,0xb5f8,0xadd8,0xadb8,0xadf8,0xadf8,0xadd8,0xadf9,0xadf9,0xb619,0xbe3a,0xadb8,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18e4,0x2124,0x2965,0x3185,0x2965,0x20e3,0x18c3,0x10a2,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c2,0x18c2,0x18c2,0x18c3,0x18a2,0x18c3,0x18e3,0x18e3,0x2104,0x2945,0x2965,0x2965,0x2945,0x2944,0x2924,0x2104,0x20e3,0x20e3,0x18c3,0x10a2,0x18a2,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a3,0x18c3,0x18e3,0x2104,0x2104,0x2124,0x2125,0x2965,0x3186,0x2945,0x2104,0x2104,0x2104,0x2104,0x2104,0x20e4,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18a3,0x18e3,0x18e3,0x20e3,0x3186,0x94f5,0x94f5,0x9515,0x9516,0x9d56,0x9d56,0x9d36,0x9d35,0x9d35,0xa596,0xa597,0x9d36,0x94f5,0x94f5,0xb618,0xadd7,0x8cf4,0x9535,0x9515,0x9d35,0xb5d8,0x94f4,0x8452,0x8c93,0x8c93,0x7c31,0x8c93,0x94f4,0x8452,0x7c52,0x8492,0x7c52,0x94f4,0x9514,0x9d15,0xad97,0xa576,0xb5f8,0xadb7,0xa556,0xa576,0xa576,0xadb7,0xa576,0x8cb4,0x94f5,0x9d15,0x8cd4,0x8cd4,0x8472,0x7c31,0x8492,0x8472,0x8cb3,0x8cb3,0x8472,0x7c31,0x7c11,0x7c31,0x73cf,0x73cf,0x6baf,0x73ef,0x73f0,0x6baf,0x6b8f,0x6b8f,0x73b0,0x73d0,0x7c10,0x7c31,0x73ef,0x7c10,0x8c92,0x8431,0x7bf0,0x7c10,0x73d0,0x73d0,0x8451,0x8c92,0x6b6e,0x636e,0x6baf,0x7c10,0x7bf0,0x7c10,0x7bf0,0x6baf,0x6baf,0x6baf,0x636e,0x6bae,0x6b8e,0x5b4d,0x5b2d,0x5b2c,0x5b0c,0x632c,0x5b0c,0x6b6e,0x5b2c,0x6b8e,0x636e,0x5b2d,0x5b0d,0x5b0d,0x5aec,0x52ab,0x5aec,0x5b2c, +0x5acb,0x5aeb,0x5b0b,0x5b0b,0x5acb,0x6b2c,0x630c,0x5aeb,0x630c,0x630c,0x630c,0x5b0c,0x632d,0x6b4d,0x6b6e,0x6b8e,0x7c10,0x94b2,0x7c10,0x7c30,0x7bef,0x73ae,0x6b4d,0x632d,0x6b4e,0x7bcf,0x73ef,0x73ef,0x7c30,0x7c10,0x7bd0,0x7bd0,0x8472,0x94d3,0x8cb3,0x8451,0x7c10,0x7bf0,0x73ef,0x73cf,0x73af,0x6baf,0x73af,0x6b8e,0x73cf,0x73cf,0x6b8e,0x6b8f,0x73d0,0x73cf,0x73cf,0x6baf,0x6baf,0x6bae,0x6bae,0x73ef,0x73cf,0x7bf0,0x73d0,0x73d0,0x7c10,0x8431,0x7c31,0x8451,0x7c31,0x8472,0x8472,0x8cb3,0x8472,0x8492,0x8cb3,0x8cb3,0x8c93,0x8c72,0x8452,0x8c93,0x8c93,0x8472,0x8452,0x8452,0x8452,0x8432,0x8451,0x94d4,0x8cb4,0x94f4,0x9d15,0x94f5,0x9d35,0xa556,0xa556,0x9d35,0x9d35,0xa597,0xa576,0xa556,0xa576,0x9d56,0x9d56,0xa597,0x9d36,0x9d36,0xa597,0xa597,0xadb7,0xadb7,0xa597,0xadd8,0xb619,0xadf9,0xadf9,0xadf8,0xb619,0xadd8,0xb5f8,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x18c3,0x18a2,0x18c3,0x18c3,0x18e3,0x2925,0x3185,0x31a6,0x2965,0x2104,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18a2,0x18a2,0x10a2,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x2103,0x18e3,0x18e3,0x18c3,0x18c2,0x18c2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x2104,0x2124,0x2125,0x2965,0x2965,0x2945,0x2925,0x2104,0x2104,0x2104,0x2104,0x2104,0x18e3,0x2104,0x20e4,0x18c3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x20e3,0x3186,0x9516,0x8cf5,0x8cf5,0x9d56,0xa5b7,0xa597,0x9535,0x9d55,0x9d56,0xa596,0xa556,0xa576,0x9d36,0x9d35,0xb5f8,0x9d35,0x9515,0x9d76,0x9515,0x9d35,0xadb8,0x94f4,0x8493,0x8c93,0x8493,0x7411,0x8452,0x8cb4,0x8c73,0x8493,0x7c51,0x7c51,0x8cb3,0x9d35,0x9d35,0xa556,0xad96,0xa576,0xadb7,0xa576,0xa576,0xa597,0xadd8,0xa577,0x8cb3,0x9d15,0x9d15,0x8cd3,0x8cd3,0x8472,0x8472,0x8472,0x7c52,0x94f4,0x8493,0x7c52,0x73f0,0x73f1,0x73f0,0x73cf,0x73f0,0x73cf,0x7410,0x73f0,0x73d0,0x73f0,0x7c10,0x73f0,0x73d0,0x73d0,0x7bf0,0x7c31,0x7410,0x7c31,0x7c31,0x7bf0,0x7c30,0x6baf,0x7c31,0x8c92,0x8c72,0x6baf,0x6b8e,0x6b8e,0x6baf,0x6b8e,0x6baf,0x6baf,0x636e,0x636e,0x6b6e,0x636e,0x636e,0x6b8e,0x634d,0x5b0c,0x5b2d,0x634d,0x5b0c,0x52ec,0x5b2c,0x5b2c,0x5b2c,0x5b4d,0x634d,0x636d,0x636d,0x5b0c,0x5b0c,0x5b0c,0x5b2c, +0x5aeb,0x5acb,0x52ca,0x528a,0x52aa,0x5acb,0x630c,0x630c,0x5aeb,0x630c,0x632c,0x630c,0x630c,0x632c,0x632c,0x6b6e,0x8471,0x8472,0x7c10,0x7bf0,0x73f0,0x73f0,0x634d,0x632d,0x736e,0x7bcf,0x7c10,0x7c30,0x7c10,0x738e,0x6b6e,0x73af,0x8c92,0x8cb3,0x8451,0x8451,0x7c10,0x73ef,0x6b8e,0x6b8e,0x6b6e,0x738f,0x73af,0x6baf,0x73ef,0x73ef,0x73cf,0x6bae,0x6baf,0x6baf,0x6baf,0x6bae,0x73af,0x6b8e,0x6bae,0x6bcf,0x73f0,0x7c11,0x7bf0,0x7bf0,0x7c10,0x7bf0,0x73cf,0x73f0,0x7c32,0x8472,0x8472,0x8c93,0x8472,0x8452,0x8cd3,0x9d35,0x9d15,0x94d4,0x8c93,0x8472,0x8452,0x7c31,0x7c31,0x8c93,0x8473,0x8452,0x7c52,0x9d55,0xa576,0x94f4,0x9d15,0x9d15,0xa555,0x9d35,0x9d35,0x9d15,0x9d15,0x9d35,0xa556,0xa576,0xa597,0xa556,0xa576,0xa597,0xa597,0xa576,0x9d76,0x9d76,0xa596,0xa597,0xa576,0xadb8,0xb61a,0xadf9,0xadd8,0xb639,0xb639,0xadf9,0xadd8,0x1082,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x10a3,0x18c3,0x18a2,0x18a2,0x18a3,0x18c3,0x20e4,0x2124,0x3185,0x31a6,0x2965,0x2104,0x18c3,0x10a2,0x1082,0x1082,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18c3,0x18e3,0x2104,0x2104,0x2124,0x2965,0x2965,0x2945,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x2104,0x18c3,0x18e3,0x18e3,0x2104,0x2104,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x3186,0x9d36,0x9515,0x9515,0x9d56,0x9d56,0x9d76,0x9d76,0x9d56,0x9d56,0x9d56,0x9d36,0xa597,0xa5b7,0xa597,0xadd8,0x9d36,0x9515,0x9d36,0x9515,0x9535,0x9d35,0x8cd4,0x8cb3,0x8493,0x8cd4,0x7c72,0x8493,0x8cd3,0x8c93,0x8473,0x8472,0x7c11,0x8452,0x94f4,0x9d35,0x9d55,0xa596,0x9d55,0xa556,0xadd8,0xa576,0xadd7,0xa5b7,0x9d56,0x8cd4,0x9514,0x9d55,0x8cb3,0x8472,0x8472,0x8c93,0x8472,0x8493,0x8c93,0x7c72,0x7411,0x73f1,0x73f1,0x73d0,0x6baf,0x6baf,0x73d0,0x7411,0x73d0,0x73cf,0x73cf,0x8472,0x7c11,0x73f0,0x6bd0,0x6bf0,0x7411,0x7411,0x6baf,0x6bb0,0x6bcf,0x73cf,0x7c31,0x7c31,0x73d0,0x73f0,0x6b8f,0x6b8e,0x73cf,0x73ef,0x73ef,0x6baf,0x6b8f,0x6baf,0x73d0,0x6baf,0x6b8e,0x6b8e,0x6b8e,0x5b4d,0x6b6e,0x7bf0,0x634d,0x52ec,0x5b0d,0x5b2d,0x5b4d,0x530c,0x530c,0x634d,0x73ce,0x73cf,0x634d,0x634e,0x5b0c,0x5b2d, +0x5acb,0x52aa,0x52aa,0x5aaa,0x5acb,0x5acb,0x630c,0x632c,0x632c,0x632c,0x630c,0x62ec,0x632c,0x6b6d,0x7bef,0x8451,0x8c92,0x8451,0x8431,0x7c10,0x7c10,0x73ef,0x6b8e,0x6b6e,0x73cf,0x8410,0x7bf0,0x6bae,0x6b8e,0x6b8e,0x736e,0x8431,0x94b3,0x8451,0x7c31,0x7c30,0x7bf0,0x73af,0x6b6e,0x6b4e,0x6b4e,0x738f,0x73af,0x6baf,0x6bcf,0x6bcf,0x73f0,0x6bcf,0x6bcf,0x73ef,0x6bcf,0x6bcf,0x6bcf,0x73af,0x6baf,0x6bcf,0x73f0,0x73d0,0x7bd0,0x73d0,0x7bf0,0x73f0,0x6baf,0x6baf,0x7c11,0x8452,0x8c93,0x8472,0x8452,0x7c31,0x7c11,0x7c31,0x8472,0x8cb3,0x8472,0x8473,0x8472,0x8452,0x8472,0x8cd4,0x8473,0x8473,0x8493,0x8472,0xadd7,0xa576,0x94f4,0x9d35,0x9d35,0x94d3,0x9d15,0xa556,0x9d15,0xa576,0xad97,0xa597,0xadb7,0xa597,0xa556,0xadb7,0xb5f8,0xa597,0x9d76,0xa576,0xa576,0xa596,0xad97,0xb5d9,0xb619,0xadf8,0xadf8,0xb5f9,0xadd8,0xadd9,0xa577,0x1082,0x10a2,0x18c3,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x18c3,0x2104,0x2124,0x2965,0x3186,0x2965,0x2104,0x18e3,0x18c3,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x1082,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x2104,0x2124,0x2966,0x2965,0x2124,0x2124,0x2104,0x18e3,0x18e3,0x18e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x2104,0x2104,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x3186,0xa597,0x9d56,0x9d36,0x9d15,0x9536,0x9d36,0x9d56,0x9d76,0xa597,0x9d56,0x9d35,0xa577,0xadb7,0xa576,0xadb7,0xadb7,0x9535,0x94f4,0x9d76,0x9d56,0x94f4,0x8cb4,0x8493,0x9535,0x94f4,0x8c93,0x8493,0x9d35,0x8cb3,0x8472,0x8472,0x8452,0x7c11,0x8472,0x9515,0x8cf4,0x8cd4,0x9d15,0x94d4,0xa577,0xadb7,0xadd7,0xa556,0x94f5,0x9514,0x94f4,0x94f4,0x8cb3,0x8493,0x7c31,0x7c52,0x7c52,0x8452,0x7c31,0x7410,0x7411,0x73f1,0x73d0,0x73f0,0x73cf,0x6baf,0x6bcf,0x7410,0x73f0,0x6baf,0x6baf,0x7c10,0x7c11,0x73f0,0x6bcf,0x6bcf,0x6bd0,0x6baf,0x6b8f,0x6b8f,0x6baf,0x8451,0x7c10,0x636e,0x6b8e,0x73d0,0x6baf,0x636e,0x6bae,0x8430,0x8c72,0x7c10,0x73af,0x73d0,0x73f0,0x6baf,0x6b6e,0x6baf,0x6baf,0x634d,0x636e,0x5b2d,0x52ec,0x5aec,0x5aec,0x5aec,0x5b0c,0x5b2d,0x634e,0x634d,0x6b6d,0x73af,0x6b6e,0x632d,0x5b0c,0x5b0c, +0x52ca,0x5acb,0x5acb,0x62cb,0x62eb,0x62eb,0x630c,0x6b2d,0x630c,0x630c,0x632c,0x6b4d,0x6b8e,0x6b6e,0x73cf,0x8c72,0x7c11,0x7c10,0x8430,0x8410,0x7bef,0x73ef,0x73cf,0x73ae,0x73cf,0x7c10,0x738e,0x6b6d,0x73af,0x7bcf,0x7bf0,0x8c92,0x8451,0x6bcf,0x7c10,0x73cf,0x6b8e,0x6b6e,0x6b6e,0x6b6e,0x6b8e,0x73af,0x73ce,0x73cf,0x6b8e,0x6baf,0x73cf,0x73ef,0x73cf,0x6baf,0x6b8e,0x6baf,0x6bcf,0x6baf,0x8431,0x7c31,0x73cf,0x7bf0,0x73f0,0x73f0,0x73f0,0x73f0,0x73f0,0x73f0,0x7bf0,0x8452,0x8c93,0x8452,0x7c31,0x8452,0x8452,0x8452,0x8472,0x8493,0x8492,0x8452,0x7c32,0x8472,0x8493,0x8493,0x8473,0x8473,0x8473,0x8c93,0xa556,0xb5f8,0x94d4,0x8cb3,0x94d4,0x8cd4,0x9515,0x9d35,0x9d36,0xa576,0xa576,0xad97,0xadb7,0xadb7,0xadb8,0xadd8,0xa597,0x9d56,0x9d56,0xa597,0xadb7,0xb5d8,0xadb7,0xbe19,0xb619,0xb619,0xbe3a,0xb5f9,0xb5f9,0xb5f9,0xa597,0x1082,0x1082,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x18a3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18e3,0x18e3,0x2124,0x2965,0x2965,0x2945,0x2124,0x2104,0x18c3,0x10a2,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x2945,0x2965,0x2965,0x2925,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x20e3,0x3186,0x9d56,0x9d56,0x9d56,0x9d35,0x9515,0x9d35,0x9d36,0x9d56,0xadb8,0x9d76,0xa556,0xa577,0xb619,0xa576,0xa576,0xa597,0xa576,0x8cb3,0x9535,0x9d56,0x94d4,0xa556,0x9515,0x9d35,0x9d35,0x94f4,0x8cb3,0x94f4,0x8cd3,0x8cb2,0x8cb3,0x8492,0x8452,0x8452,0x8493,0x8493,0x8cb4,0x9515,0x94d4,0x8cb3,0xad77,0xb5b8,0x9d15,0x9d15,0xa555,0x94f4,0x8451,0x8cb3,0x94f4,0x7410,0x7c31,0x7c31,0x7c31,0x7c31,0x7c11,0x7c31,0x7c10,0x6bcf,0x73f0,0x73f0,0x73cf,0x6baf,0x7c10,0x7c11,0x6baf,0x6baf,0x6bd0,0x73d0,0x73f0,0x73f0,0x6baf,0x6bcf,0x6baf,0x6baf,0x6b8e,0x73f0,0x8c92,0x6b8e,0x6b8e,0x6b8e,0x73cf,0x6bcf,0x636e,0x636e,0x73cf,0x7c10,0x7c10,0x73f0,0x73d0,0x7c11,0x73d0,0x6b8f,0x6baf,0x634e,0x6b6e,0x634d,0x5b2c,0x5b2d,0x5b0c,0x52ec,0x5b0c,0x5b0c,0x5b2c,0x634d,0x634d,0x632d,0x632d,0x634d,0x5b2c,0x5b0b,0x5b2c, +0x52ca,0x5acb,0x630c,0x630c,0x62ec,0x630c,0x632c,0x632c,0x5b0c,0x5b0c,0x632c,0x6b4d,0x6b4d,0x632d,0x7bd0,0x8c72,0x7bf0,0x7c10,0x7bf0,0x7bf0,0x7bef,0x73cf,0x6b8e,0x6b8e,0x73af,0x73ef,0x73ae,0x73af,0x7bf0,0x7bf0,0x7c10,0x8451,0x7410,0x6baf,0x6baf,0x6b8e,0x6b6e,0x6b6e,0x6b6e,0x6b8e,0x6b8f,0x6baf,0x6bcf,0x6baf,0x6b8e,0x6baf,0x73cf,0x7c10,0x73f0,0x6baf,0x6baf,0x6baf,0x73cf,0x6bcf,0x8451,0x8451,0x73af,0x73d0,0x73f0,0x73f0,0x73f0,0x73f0,0x7bf0,0x7c11,0x8431,0x8c92,0x8c93,0x8452,0x7c31,0x7c11,0x8452,0x8472,0x7c52,0x8452,0x8492,0x7c52,0x7c11,0x8452,0x8473,0x8473,0x8493,0x8c93,0x8c93,0x94f4,0x9d15,0xa576,0x9515,0x9514,0x9d35,0x9515,0x9514,0x9d35,0x9d35,0x9d15,0x9d36,0xad97,0xad97,0xadb8,0xa577,0xa577,0x9d36,0x9d15,0x9d56,0xa576,0xad97,0xadb7,0xb5f9,0xbe3a,0xbe5a,0xbe5a,0xbe5a,0xbe39,0xb5f8,0xbe39,0xadb7,0x1082,0x1082,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x18e3,0x18e3,0x2124,0x2945,0x2945,0x3186,0x2945,0x2124,0x18e3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x18a2,0x2104,0x2945,0x3186,0x2945,0x2104,0x2104,0x20e4,0x20e3,0x20e4,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x2103,0x3186,0xa598,0x9d56,0x9d56,0xa576,0xa556,0x9d36,0x9d15,0x9d36,0xa577,0x9d56,0xa576,0xb5f8,0xb639,0xadd8,0xa577,0xa597,0x9d35,0x8493,0xa577,0x9d15,0x8cd4,0x9d15,0x9d15,0x9d15,0x9d56,0x9d35,0x9515,0x94d4,0x8c93,0x7c31,0x8cb3,0x94f4,0x8c72,0x8472,0x7c51,0x8493,0x8cb3,0x94f4,0x9d15,0x94d4,0x94f5,0x9d36,0x94f4,0x94f4,0x9d35,0x8cb3,0x8472,0x8452,0x8452,0x7c31,0x7410,0x7c31,0x8472,0x7c31,0x7c11,0x7c11,0x7410,0x73f0,0x73d0,0x73d0,0x73d0,0x73cf,0x73f0,0x7c11,0x6b8f,0x6bd0,0x6bcf,0x6bf0,0x73f0,0x7bf0,0x73af,0x73cf,0x6bcf,0x6bae,0x6baf,0x7c31,0x8451,0x6b8e,0x6b8e,0x6b8e,0x636e,0x636e,0x6bae,0x636e,0x73cf,0x73cf,0x73cf,0x73ef,0x73f0,0x73cf,0x6b8f,0x73b0,0x6b6f,0x6b6f,0x6b8f,0x5b2d,0x530c,0x6bae,0x5b2c,0x4acb,0x52eb,0x5b4d,0x52ec,0x73ef,0x6b8e,0x5b2c,0x5aec,0x52eb,0x52eb,0x52eb,0x52eb, +0x5aaa,0x5acb,0x630c,0x630c,0x632c,0x630c,0x632c,0x632c,0x632c,0x5aeb,0x5acb,0x5aeb,0x630c,0x738e,0x8c71,0x7c10,0x73cf,0x6baf,0x73af,0x7bf0,0x7c10,0x73cf,0x6b4d,0x738e,0x7bcf,0x73ef,0x73ef,0x73cf,0x7bef,0x73ef,0x7bf0,0x7c10,0x6bcf,0x6b8e,0x6b8e,0x6b8f,0x738f,0x738f,0x6b8e,0x6bae,0x6baf,0x6baf,0x6bae,0x6b8e,0x6b8e,0x73af,0x73af,0x73af,0x73cf,0x73af,0x73af,0x73cf,0x73cf,0x73ef,0x73f0,0x73cf,0x73cf,0x73af,0x73cf,0x73cf,0x73cf,0x73d0,0x73f0,0x7bf0,0x7c31,0x8c72,0x8c92,0x8c72,0x8451,0x7c31,0x8472,0x8472,0x7c52,0x7c31,0x8472,0x8493,0x7c52,0x8452,0x8472,0x8cb3,0x8cb3,0x8493,0x94f4,0x94d4,0x94d4,0x8cb3,0x9515,0xadb7,0xadb7,0x9514,0x9d15,0x94f4,0x94f4,0x8cd4,0x9d15,0xa577,0xadb7,0xadb8,0x9d56,0xa577,0xad97,0x9d15,0x9d36,0xa576,0xa576,0xa576,0xb5f8,0xadb8,0xb5f9,0xbe5a,0xbe5a,0xbe5a,0xbe39,0xbe39,0xb5d8,0x1082,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x18c2,0x18c3,0x10a2,0x18c3,0x18e3,0x18c3,0x2103,0x2104,0x2124,0x2965,0x2965,0x2945,0x2124,0x18e3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x1082,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x1082,0x10a2,0x18e3,0x2124,0x2945,0x2945,0x2945,0x2104,0x18e3,0x20e4,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x20e3,0x2103,0x3186,0xa577,0x9d56,0x9d76,0xa576,0xa576,0x9d56,0x9d56,0x9d56,0x9d56,0x9d56,0xa597,0xb5d8,0xb5d8,0xadd8,0xadb8,0xa577,0x9535,0x9d35,0xa597,0x8cb3,0x8cd4,0x94d4,0x9d15,0x9d35,0x8cf4,0x8cf4,0x9515,0x8cb4,0x8452,0x8432,0x8472,0x9d14,0x9cf4,0x8492,0x7c31,0x84b3,0x8452,0x8472,0x94f4,0x9515,0x9514,0x9d35,0x9515,0x8cb4,0x8473,0x8493,0x8472,0x7c52,0x7c31,0x7c51,0x7c31,0x7c31,0x7c31,0x8452,0x7c52,0x7c11,0x7c51,0x7410,0x73d0,0x73d0,0x73d0,0x73f0,0x73f0,0x8471,0x7c51,0x73f0,0x6bd0,0x73f0,0x7411,0x7bf0,0x73af,0x6bcf,0x73d0,0x6bcf,0x73f0,0x8472,0x7c11,0x6baf,0x6b8e,0x6bae,0x6b8e,0x6b6e,0x73af,0x6b8e,0x73ef,0x73ef,0x73cf,0x73cf,0x73f0,0x73cf,0x73cf,0x73af,0x6b6e,0x6b8f,0x634d,0x634d,0x5b0c,0x6b8e,0x632d,0x52ec,0x52cb,0x5b0c,0x634d,0x6b8e,0x634d,0x5aec,0x52cb,0x52cb,0x52cb,0x52eb,0x4acb, +0x5acb,0x630c,0x6b2c,0x632c,0x632c,0x630c,0x5aeb,0x5b0b,0x630c,0x630c,0x5aeb,0x62ec,0x6b0c,0x8430,0x8c91,0x8450,0x73ef,0x634d,0x6b4d,0x738e,0x73cf,0x73af,0x6b8e,0x73af,0x7bcf,0x73ef,0x73cf,0x73cf,0x7bd0,0x73af,0x73cf,0x7bf0,0x6bae,0x6b6e,0x6b6e,0x6b8e,0x738e,0x73af,0x6baf,0x6baf,0x73af,0x73cf,0x73af,0x73cf,0x7bf0,0x73f0,0x73cf,0x6b8e,0x73cf,0x73af,0x73af,0x73af,0x73af,0x73cf,0x7c10,0x6bcf,0x73cf,0x6b8e,0x6baf,0x73ef,0x73cf,0x73cf,0x73cf,0x73f0,0x7c31,0x7c31,0x8472,0x8c92,0x8431,0x8452,0x8472,0x8452,0x7c72,0x7c32,0x8473,0x8493,0x8c93,0x8c93,0x8c93,0x8cd3,0x8cd4,0x8493,0x8cb4,0x94f4,0x8cd4,0x8c93,0x94d4,0x9d35,0xadb7,0xa556,0xa556,0xa577,0xa556,0x9d15,0x9d36,0xb5d8,0xadd8,0xa576,0x9d56,0x9d35,0xa577,0xa556,0x9d36,0xa556,0xadb7,0xadd8,0xb5f9,0xadd8,0xadd9,0xadf9,0xbe3a,0xbe3a,0xc67a,0xc65a,0xb5f9,0x10a2,0x1082,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x10a2,0x10a2,0x18a2,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2104,0x2124,0x2924,0x2945,0x2945,0x2945,0x2124,0x18e3,0x18c3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x0861,0x0861,0x0861,0x1062,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a3,0x20e4,0x2924,0x2965,0x2944,0x2124,0x2104,0x2104,0x2104,0x20e4,0x20e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x20e4,0x18e3,0x2104,0x3186,0xadb8,0x9d57,0xa577,0x9d56,0x9d36,0xa576,0xa597,0xa597,0xa597,0xa597,0xadd8,0xad97,0xa577,0x9d56,0x9d76,0xadd8,0xa597,0xa597,0xa576,0x94f4,0x94f4,0x8cb4,0x94d4,0x9514,0x8493,0x8cd4,0x8cf4,0x8cb3,0x8472,0x8cb3,0x8472,0x7c31,0x8c92,0x8cd4,0x7c72,0x7431,0x8473,0x8c93,0x94f4,0x9d55,0x8cf4,0x94f4,0x9d15,0x8cb4,0x8473,0x8cb3,0x8472,0x7c31,0x7c11,0x7c52,0x7c31,0x7410,0x7c31,0x7c32,0x7c52,0x7411,0x8cb3,0xb5d7,0x9d14,0x8c92,0x8472,0x6baf,0x7431,0x8472,0x7c31,0x7410,0x6bcf,0x6baf,0x73f0,0x6bd0,0x6bd0,0x6bcf,0x73f0,0x73cf,0x73f0,0x6baf,0x73d0,0x6baf,0x6b8e,0x6baf,0x638e,0x6baf,0x6b8e,0x6bae,0x6bcf,0x73cf,0x73cf,0x73cf,0x73ef,0x73ef,0x73cf,0x73cf,0x6baf,0x73af,0x6b6e,0x5b2d,0x636e,0x636d,0x636e,0x5b0d,0x5aec,0x632d,0x6b6d,0x634d,0x530c,0x530c,0x52ab,0x52ab,0x52ec,0x52ec,0x52cb, +0x5aeb,0x634c,0x6b8d,0x632c,0x634c,0x634c,0x6b4d,0x630c,0x630c,0x5b0b,0x630c,0x630c,0x738e,0x8c92,0x7c30,0x7c0f,0x634d,0x630c,0x632d,0x6b4d,0x73ae,0x7bef,0x7bef,0x7bf0,0x7bf0,0x73af,0x636e,0x73af,0x7bf0,0x6b8f,0x6b6e,0x73ae,0x73ae,0x6b6d,0x632d,0x6b6e,0x6b8e,0x6bae,0x6bae,0x73af,0x73cf,0x73cf,0x73af,0x73cf,0x7c10,0x7c10,0x73d0,0x73cf,0x73cf,0x73cf,0x73cf,0x73cf,0x73cf,0x73af,0x73af,0x73cf,0x73ef,0x73ef,0x73cf,0x73cf,0x73cf,0x73d0,0x73f0,0x73f0,0x7c31,0x8452,0x8452,0x7c31,0x7c31,0x7c11,0x8452,0x8472,0x8472,0x8452,0x8c93,0x8c92,0x94d3,0x8c93,0x8472,0x8c93,0x8cb3,0x8493,0x8493,0x8cb3,0x8cd4,0x8cb3,0x94b4,0x9d15,0x9d15,0xa556,0xa556,0x9d56,0xa556,0xa597,0xadb7,0xadd8,0xa577,0xa576,0x9515,0x94f5,0xa556,0xa577,0x9d15,0xa556,0xadb8,0xadb8,0xadd8,0xadd8,0xadd9,0xadd8,0xb619,0xb619,0xb619,0xbe19,0xad97,0x10a2,0x1082,0x10a2,0x18c3,0x18a3,0x18c3,0x18a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18a2,0x10a2,0x10a2,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e4,0x2124,0x2124,0x2945,0x2945,0x2945,0x2124,0x2124,0x2104,0x18e3,0x18c3,0x18c3,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18e3,0x18e3,0x2124,0x2945,0x2945,0x2945,0x2104,0x2104,0x18e3,0x18e3,0x2104,0x20e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e4,0x2103,0x2104,0x31a6,0xadd8,0x9d36,0x9d56,0x9d76,0xa597,0xadb7,0xad97,0xa5b8,0xa5b8,0x9d56,0x9d56,0x9d56,0x9d56,0xa576,0x9d56,0xad97,0xadb7,0xa556,0xa556,0x9d35,0x9515,0x8cf4,0x8cd4,0x9515,0x8cd4,0x84b3,0x8c93,0x94f4,0x8cb3,0x8cb3,0x8c93,0x8452,0x7c11,0x8472,0x84b3,0x7c51,0x8cb3,0x9d34,0x94d3,0x94f4,0x8c93,0x8cd3,0x9d15,0x8cb3,0x94f4,0x8cb3,0x7c31,0x7411,0x7411,0x7c11,0x7c11,0x7c31,0x7c32,0x7411,0x7c32,0x7c52,0x8452,0x9d14,0x9cf4,0x7c52,0x8472,0x6bd0,0x6bd0,0x7410,0x6bd0,0x6bcf,0x6baf,0x7c11,0x73f0,0x73f0,0x6bef,0x7410,0x7c10,0x6bcf,0x73d0,0x73af,0x73af,0x6b8f,0x6b8e,0x6b8e,0x6baf,0x6b8f,0x636e,0x636e,0x6b6e,0x6baf,0x6baf,0x638e,0x638e,0x6b8e,0x638e,0x638e,0x634e,0x636e,0x6b8e,0x636e,0x634e,0x6bd0,0x73f0,0x6baf,0x634d,0x632d,0x630d,0x5b0c,0x52eb,0x5b0c,0x5b0c,0x5b0c,0x5b0c,0x52ec,0x52cb, +0x5aeb,0x6b6d,0x6b6d,0x632c,0x632c,0x632c,0x6b4d,0x632c,0x630c,0x630b,0x630c,0x6b2d,0x8c31,0x94b2,0x7c50,0x73cf,0x632d,0x6b4d,0x738e,0x73ae,0x73cf,0x7bef,0x8450,0x8451,0x73cf,0x6b8e,0x6b8e,0x7bf0,0x8430,0x73ef,0x6b6d,0x6b8e,0x73cf,0x6b6e,0x6b8e,0x6b8e,0x6b8e,0x6b8e,0x6b8e,0x6b8e,0x73cf,0x7bef,0x73af,0x73cf,0x7bf0,0x73f0,0x73cf,0x73f0,0x73d0,0x73cf,0x73f0,0x7410,0x73f0,0x73d0,0x73cf,0x73ef,0x7410,0x7c10,0x73f0,0x73d0,0x7bf0,0x73f0,0x7c11,0x7c31,0x7c31,0x8452,0x7c31,0x7c31,0x8451,0x8431,0x8452,0x8472,0x8472,0x8c93,0x94d4,0x9514,0x94f4,0x8c93,0x8cb3,0x94f4,0x8cd4,0x8472,0x7c52,0x8493,0x8cb3,0x8cd4,0x94d4,0x94f5,0x94f5,0x9d15,0xa556,0x9d56,0xa577,0xadb7,0xadb7,0xa597,0xa576,0x9d35,0x9515,0x9515,0x9d35,0xa576,0xa556,0xa597,0xadb7,0xa597,0xadb8,0xadd8,0xa597,0xa5b8,0xadd8,0xadb8,0xadd8,0xb5d8,0xa556,0x10a2,0x1082,0x18c3,0x18c3,0x18a2,0x18a2,0x10a2,0x18a2,0x18c3,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x18a3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e4,0x2104,0x2104,0x2124,0x2124,0x2945,0x2124,0x2945,0x2945,0x2945,0x2124,0x2124,0x2103,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x0861,0x0862,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18e3,0x18e4,0x2104,0x2945,0x2965,0x2104,0x2124,0x2924,0x2124,0x2104,0x20e4,0x18e3,0x18e3,0x20e4,0x2104,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x31a6,0xadb8,0x9d36,0x9d56,0xadd8,0xb5d8,0xadd8,0xadb7,0xa597,0xa598,0x9d36,0x8cf4,0x9515,0xa597,0xa577,0x9d35,0x9d36,0xadb7,0x9d36,0x94f5,0x94f4,0x9515,0x94f5,0x8cd4,0x9d15,0x9d36,0x8493,0x8493,0x94d4,0x8cd3,0x8c93,0x8c93,0x8452,0x7c11,0x7c11,0x8c93,0x8cb3,0x8cb3,0x9514,0x9d35,0x8492,0x8cb3,0x8cd3,0x8cd3,0x8472,0x7410,0x7c51,0x7c51,0x7410,0x7410,0x7c51,0x7c31,0x8472,0x8452,0x7411,0x7c31,0x7c52,0x7c11,0x73af,0x73d0,0x73f0,0x7410,0x73f0,0x6bcf,0x7410,0x7411,0x73f0,0x73f0,0x7c52,0x7410,0x7410,0x7410,0x7410,0x73f0,0x73d0,0x6b8f,0x6b6f,0x6b8f,0x636e,0x6b8f,0x6baf,0x636e,0x638e,0x638e,0x6b8e,0x636e,0x6baf,0x6bae,0x636e,0x638e,0x636e,0x6b8e,0x6b8f,0x634e,0x634e,0x6baf,0x73d0,0x636f,0x6baf,0x6bcf,0x6baf,0x6b8e,0x634e,0x632d,0x5b4d,0x5b0c,0x5b2d,0x5b2d,0x5b2c,0x52ec,0x52cb,0x52eb, +0x630c,0x6b6d,0x6b6d,0x632c,0x632c,0x630c,0x632c,0x632c,0x630c,0x630c,0x632c,0x736e,0x8c31,0x8c72,0x7c10,0x634d,0x630c,0x6b4d,0x6b6e,0x6b6e,0x6b6e,0x73af,0x7c10,0x73ef,0x6b8e,0x6b6e,0x73af,0x7c10,0x7c10,0x73cf,0x6b8e,0x6b8e,0x73cf,0x636e,0x636e,0x6b8e,0x6b8e,0x6b8e,0x6b8e,0x73cf,0x7bef,0x73cf,0x7bcf,0x73cf,0x73cf,0x73ef,0x6bcf,0x73cf,0x73f0,0x7bf0,0x7c10,0x7c31,0x7c10,0x7c10,0x73f0,0x73ef,0x73cf,0x73f0,0x73f0,0x7c11,0x7c11,0x7c10,0x73f0,0x7c51,0x8452,0x8452,0x8452,0x8451,0x8451,0x8451,0x8452,0x8472,0x8452,0x8472,0x8cb3,0x94f3,0x8cb3,0x8cb3,0x8cd3,0x8cb3,0x8cb4,0x8c93,0x8493,0x8cb4,0x8cd4,0x94d4,0x94d4,0x94d4,0x94f5,0x9d15,0x9d35,0xa556,0xadb7,0xa576,0xa577,0xadb7,0xa597,0x9d56,0x9d35,0x9515,0x9d56,0x9d56,0xa576,0xb5f8,0xadd7,0xad97,0xb5d8,0xb5f9,0xadd8,0xadd8,0xadb8,0xb5d8,0xb5d8,0xbe18,0xc618,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x18a2,0x18c3,0x18a3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18c3,0x18a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x2104,0x18e4,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2125,0x2125,0x2945,0x2945,0x2945,0x2104,0x2104,0x2124,0x2124,0x2104,0x18e3,0x18c3,0x18c3,0x2104,0x20e3,0x20e3,0x2103,0x2104,0x2124,0x2125,0x2945,0x2124,0x2945,0x2945,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x2104,0x2104,0x31a6,0xa577,0x9d36,0xa576,0xadb7,0xb5f8,0xadf8,0xb639,0xa597,0x9d56,0x94f5,0x9515,0x94f4,0x94f5,0x9d15,0x9d15,0x9d56,0xa576,0x9d35,0x9d36,0x9d15,0x94f4,0x8cb4,0x8472,0x8c93,0x8cb4,0x8493,0x8cd4,0x8c93,0x8cb3,0x8c93,0x8473,0x8472,0x7c11,0x7c11,0x8431,0x8c93,0x8c93,0x8493,0x8493,0x8493,0x84b3,0x8493,0x8472,0x7c31,0x73f0,0x7c31,0x8472,0x7c52,0x7410,0x7c31,0x7c31,0x7c31,0x7c31,0x7bf0,0x7bf0,0x7c31,0x7c11,0x73f1,0x73f1,0x73f1,0x73f0,0x6bcf,0x6b8f,0x6bef,0x7c31,0x73d0,0x73f0,0x73f0,0x73f0,0x7410,0x7411,0x73f0,0x6bd0,0x73f1,0x6b8f,0x636f,0x6baf,0x6b8f,0x6b8f,0x6b8f,0x636e,0x5b6e,0x5b4d,0x636e,0x636e,0x6bcf,0x6bae,0x73ef,0x73f0,0x6b8f,0x6b6e,0x73cf,0x6b6e,0x6baf,0x73ef,0x6baf,0x634e,0x634e,0x636e,0x638e,0x6b8f,0x634e,0x634e,0x5b4e,0x636e,0x5b0d,0x632d,0x5b0d,0x52cb,0x5b0c,0x636e, +0x632d,0x6b6d,0x6b4c,0x6b4c,0x632c,0x630c,0x632c,0x5aec,0x5b0c,0x632c,0x632c,0x7baf,0x8410,0x7bcf,0x738e,0x632d,0x6b4d,0x6b4d,0x6b6d,0x634d,0x630d,0x634e,0x6b6e,0x6b8e,0x6bae,0x6b6e,0x6b8e,0x7bf0,0x73ef,0x6bae,0x634d,0x6bae,0x73cf,0x6b6e,0x6b6e,0x6baf,0x6b6d,0x6b8e,0x73cf,0x7c10,0x7bcf,0x73af,0x73cf,0x7c10,0x7bf0,0x73cf,0x6baf,0x6bcf,0x73f0,0x7bf1,0x7bf0,0x7bf0,0x7c10,0x7bf0,0x73ef,0x7bf0,0x73cf,0x73f0,0x7bf1,0x8451,0x8c92,0x8452,0x7c31,0x7c31,0x7c31,0x8452,0x8c92,0x8472,0x7c31,0x8472,0x8492,0x8452,0x8472,0x8472,0x8cb3,0x9d35,0x94d3,0x94f4,0x8cb3,0x8c93,0x8c72,0x94b3,0x94d4,0x94f5,0x94f4,0x94d4,0x94d4,0x94f4,0x9d35,0x9d36,0xa556,0xa577,0xa556,0x9d35,0x9d56,0xa596,0xa597,0xa577,0x9d35,0x9d35,0x9d56,0x9d76,0xa576,0xbdf8,0xd6fb,0xce99,0xc638,0xcebb,0xb5f8,0xadd7,0xadb7,0xbe39,0xc659,0xce9a,0xce9a,0x1082,0x10a2,0x18c3,0x18a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18a3,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x2104,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2104,0x2125,0x2144,0x2945,0x2124,0x2124,0x2945,0x2945,0x2124,0x2104,0x2104,0x2124,0x2124,0x2124,0x2925,0x2945,0x2144,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x20e4,0x20e3,0x18c3,0x18c3,0x20e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x20e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18e3,0x2103,0x2103,0x3186,0xad97,0xa576,0xa5b7,0xa597,0xadb7,0xadb7,0xbe79,0xadd7,0x9d35,0x9535,0x9535,0x9535,0x9515,0x9515,0x9d56,0x9d56,0x94f5,0x9d15,0xa577,0x94f4,0x94f4,0x94d4,0x8493,0x7c53,0x8453,0x8452,0x8c93,0x8c93,0x8cb4,0x8cb3,0x8493,0x8472,0x7c52,0x7c52,0x7c52,0x8452,0x8cb3,0x8472,0x8493,0x8cd4,0x8cb3,0x8472,0x7c52,0x7c52,0x7411,0x7c52,0x8472,0x7c32,0x73f1,0x73f1,0x7c11,0x73f0,0x73f0,0x7c11,0x7c11,0x7c31,0x7c11,0x7411,0x73f1,0x73d0,0x6b8f,0x73d0,0x6b8f,0x6baf,0x6bf0,0x6bcf,0x73f0,0x73f0,0x6bf0,0x6bcf,0x7c31,0x7410,0x73f0,0x73f0,0x634e,0x6baf,0x6bd0,0x638f,0x636e,0x636e,0x638e,0x634e,0x636e,0x6b8e,0x6b8e,0x7c10,0x73cf,0x73f0,0x7c10,0x6b8f,0x636e,0x73af,0x634d,0x636e,0x73f0,0x6baf,0x5b4d,0x5b6d,0x5b4d,0x6baf,0x73f0,0x6b8f,0x636e,0x636e,0x636e,0x5b2d,0x634e,0x5b0d,0x52ec,0x52ec,0x52ec, +0x632c,0x634c,0x634c,0x6b6d,0x632c,0x630c,0x630c,0x5aeb,0x630c,0x632c,0x632c,0x738e,0x73af,0x73ae,0x6b4d,0x6b4d,0x6b4d,0x6b4d,0x632c,0x630c,0x632d,0x632d,0x6b4d,0x634d,0x6b8e,0x6b6d,0x6b6d,0x6b8e,0x6b8e,0x6b8e,0x634d,0x6b6d,0x738e,0x738e,0x6b6e,0x6baf,0x6b8e,0x6b8e,0x73cf,0x73cf,0x73cf,0x7bf0,0x7bf0,0x73d0,0x73d0,0x73cf,0x6bae,0x73ef,0x73f0,0x73f0,0x73f0,0x7c10,0x7c30,0x7c10,0x73cf,0x7c10,0x7c10,0x73f0,0x7c11,0x8452,0x94b3,0x94b3,0x8431,0x7c31,0x7c31,0x7c31,0x8472,0x8431,0x8431,0x8c92,0x8472,0x8472,0x8cb3,0x8cb3,0x8cb3,0x94f3,0x8cd3,0x8cd3,0x8cb3,0x8cb3,0x8cb3,0x9cf4,0x9d35,0x9d15,0x8cd4,0x8cd4,0x8cb3,0x94f4,0x9d15,0x9d35,0x9d56,0x9515,0x9d35,0xa555,0x9d35,0xa576,0xa597,0x9d35,0x9515,0x9d15,0xa577,0xa556,0xad97,0xad76,0xc659,0xc679,0xadb6,0xadb7,0xad97,0xadb7,0xb5f8,0xb618,0xadb8,0xad97,0x9d35,0x1082,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e4,0x2104,0x18e3,0x2104,0x2104,0x2104,0x18e4,0x2104,0x2104,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2104,0x2104,0x2124,0x2124,0x2124,0x2104,0x18e4,0x2104,0x2104,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x20e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2103,0x3186,0xadb7,0xa5b7,0xadf8,0xa597,0xadb7,0xa597,0xb5f8,0xadb7,0x9d56,0xa577,0x9d56,0x9d56,0x9536,0x9d56,0xa577,0x9515,0x94f4,0x9d36,0x9d35,0x9515,0x8cf4,0x8493,0x8493,0x8493,0x8473,0x8472,0x8472,0x8452,0x8c93,0x94d4,0x8cb3,0x8493,0x8473,0x7c32,0x8472,0x7c52,0x8472,0x8472,0x8493,0x9515,0x8473,0x7c31,0x7c52,0x7c31,0x8452,0x8472,0x7c32,0x7c32,0x73f0,0x7c11,0x7c31,0x7c11,0x7bf0,0x8431,0x7c11,0x7c11,0x7c11,0x73f1,0x73f0,0x73f0,0x638f,0x6bd0,0x6bd0,0x6b8f,0x6bd0,0x6bcf,0x6baf,0x6bcf,0x6bef,0x6bef,0x6bef,0x73ef,0x6bcf,0x636e,0x638e,0x6bcf,0x636e,0x632e,0x634e,0x636e,0x636e,0x634e,0x6b8f,0x6b8e,0x6baf,0x7c10,0x73cf,0x6baf,0x73f0,0x6baf,0x6b6e,0x634e,0x634e,0x530c,0x6bcf,0x638e,0x530c,0x5b2c,0x5b4d,0x636e,0x636e,0x634e,0x636e,0x636e,0x5b2d,0x5b2e,0x5b4e,0x52ec,0x52cb,0x52cb,0x4a8a, +0x6b4d,0x632c,0x5b0c,0x632c,0x632c,0x630c,0x630c,0x5aeb,0x5aeb,0x630c,0x5aec,0x634d,0x738e,0x738e,0x6b4d,0x6b4d,0x6b6d,0x632d,0x630c,0x630c,0x632c,0x632c,0x632c,0x632c,0x6b4d,0x632d,0x634d,0x634d,0x634d,0x634d,0x6b6d,0x634d,0x632d,0x6b2d,0x6b4d,0x738e,0x6b8e,0x6b8e,0x73cf,0x73af,0x73af,0x73cf,0x73af,0x73af,0x73cf,0x73cf,0x73cf,0x73ef,0x7c10,0x7c10,0x73f0,0x7c30,0x7c30,0x73ef,0x73cf,0x73f0,0x73f0,0x73af,0x7bd0,0x8451,0x8452,0x8c92,0x94b3,0x7c10,0x7410,0x7c31,0x7c11,0x7c11,0x8431,0x8452,0x8472,0x8472,0x8472,0x8472,0x8cb3,0x8cf3,0x8cd3,0x94f4,0x8cb3,0x94f4,0x9cf4,0x9d15,0x9d15,0x8cb3,0x8cb3,0x8cd4,0x8493,0x8cd4,0x9515,0x94f4,0x8cd4,0x94d4,0x9d35,0xad96,0xad96,0xa576,0x9d36,0x9515,0x94f5,0x9514,0xadb7,0x9d35,0xa576,0xad76,0xa536,0xa597,0xa597,0xadb7,0xadb7,0xadd8,0xbe39,0xb619,0xadf8,0xadd8,0xad97,0x1082,0x1082,0x18c3,0x18c3,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x10c2,0x10a2,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x20e3,0x18e4,0x2104,0x18e3,0x2104,0x2104,0x18e4,0x18e4,0x2104,0x2104,0x2104,0x20e4,0x2104,0x20e4,0x18e3,0x18e4,0x20e4,0x2104,0x2104,0x2104,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x20e4,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2124,0x2104,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x20e4,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x20e4,0x20e4,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x2103,0x3186,0xadd8,0xadd8,0xa597,0xa597,0xadd8,0xadd8,0xb619,0xb5d8,0xa556,0xa597,0x9d35,0x9d56,0xa597,0xa597,0xadb7,0x9515,0x9d36,0x94f5,0x94d4,0x8cf4,0x9515,0x8cb3,0x8cb4,0x8493,0x8492,0x7c31,0xadb7,0xb5b7,0x8452,0x8cd4,0x94f4,0x8cb4,0x8473,0x8452,0x8472,0x8472,0x7c31,0x8472,0x84b3,0x8493,0x8c93,0x7c32,0x7c52,0x7c52,0x8473,0x8472,0x7c52,0x8452,0x7c11,0x7c11,0x7c31,0x7c31,0x7c11,0x8431,0x7c11,0x7c11,0x7c31,0x7c31,0x7411,0x73f0,0x6bf0,0x73f1,0x6bf0,0x6bcf,0x7410,0x6bf0,0x73d0,0x7410,0x6bcf,0x73ef,0x73ef,0x6bcf,0x6baf,0x636e,0x73f0,0x6baf,0x636e,0x6b8f,0x636e,0x6b8f,0x6b8f,0x6b6e,0x6b8e,0x636e,0x638e,0x73ef,0x73cf,0x6baf,0x73f0,0x73af,0x6b8e,0x634e,0x634e,0x5b4e,0x636e,0x6bae,0x6b8e,0x5b2d,0x5b4d,0x5b2c,0x5b2d,0x636e,0x634d,0x5b4d,0x530d,0x5b0d,0x5b2d,0x5b2d,0x52ec,0x52ec,0x4aab, +0x6b6d,0x6b4d,0x5aec,0x5aec,0x5aec,0x5aeb,0x630c,0x630c,0x632c,0x634c,0x630c,0x630c,0x738e,0x6b8e,0x6b6d,0x634d,0x5b2c,0x5b2c,0x5b0c,0x630c,0x5b2c,0x632c,0x632c,0x632d,0x6b6d,0x634d,0x634c,0x632c,0x632c,0x632c,0x634d,0x634d,0x634d,0x634d,0x632d,0x6b4d,0x6b6e,0x6b6e,0x6b6e,0x6b8e,0x636e,0x6b6e,0x6b8f,0x6b8e,0x73af,0x73af,0x73cf,0x73cf,0x7bf0,0x7bf0,0x73af,0x73af,0x7bf0,0x73cf,0x6bcf,0x73ef,0x73af,0x7bcf,0x8431,0x7bf0,0x7c10,0x73d0,0x8452,0x8452,0x7c51,0x7410,0x7c11,0x7c31,0x8452,0x8452,0x8452,0x8452,0x7c32,0x8452,0x8cb3,0x8cd3,0x8cd3,0x94f4,0x94f4,0x9d14,0x9d14,0x9514,0x8cb3,0x8493,0x94d4,0x9d15,0x8cd4,0x8cb3,0x8cd4,0x8cd4,0x8cd4,0x8cb3,0x9535,0x9d55,0x9535,0x9515,0x94f5,0x94f5,0x94f4,0x8cf4,0xa556,0x9d35,0xa556,0xadb7,0xad97,0xad97,0xa577,0xa577,0xadb7,0xb5f8,0xadb7,0xadd8,0xb5f9,0xadb8,0xa577,0x1082,0x1082,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x20e3,0x18e3,0x2104,0x18e4,0x2104,0x2104,0x2104,0x2104,0x18e4,0x2104,0x2104,0x2104,0x18e3,0x2104,0x2104,0x2104,0x18e4,0x2124,0x2104,0x18e4,0x2104,0x2104,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x18e3,0x2124,0x2104,0x2104,0x2124,0x2104,0x2104,0x2104,0x20e3,0x20e4,0x2104,0x18e3,0x2104,0x2104,0x20e3,0x18c3,0x18c3,0x18c3,0x18e3,0x20e3,0x20e3,0x18e3,0x18e3,0x20e3,0x18e3,0x18c3,0x18c3,0x18e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x18e3,0x2103,0x31a6,0xb5f9,0xadd8,0xadb7,0xa597,0xa596,0xa597,0xb5f9,0xb5d8,0xa556,0xadb7,0xa576,0xa576,0xadd8,0xb5f8,0xa597,0xa577,0x9515,0x8493,0x8cb3,0x8cd4,0x94f4,0x94f4,0x84b3,0x8493,0x8473,0x8472,0x8472,0x8cb4,0x8cb3,0x8cb3,0x94f5,0x94f4,0x8452,0x8452,0x7c32,0x7c31,0x7411,0x7c11,0x8472,0x7c52,0x8493,0x8493,0x7c52,0x8452,0x8493,0x8cb3,0x7c51,0x7c52,0x8431,0x7c11,0x8431,0x8431,0x8452,0x7c11,0x7c11,0x73f0,0x7411,0x7c32,0x7c31,0x7c31,0x7411,0x73f1,0x73f0,0x73f0,0x7431,0x7431,0x73f0,0x7410,0x6baf,0x6baf,0x73cf,0x6bcf,0x6baf,0x638e,0x73f0,0x63af,0x636e,0x6baf,0x73d0,0x6baf,0x6b8f,0x636e,0x6b8f,0x6b6e,0x636e,0x73cf,0x73cf,0x6baf,0x73d0,0x6bcf,0x638e,0x636e,0x5b4d,0x5b6e,0x5b4d,0x638e,0x6b8e,0x7bcf,0x6b8e,0x5aec,0x52ec,0x634d,0x5b4d,0x5b4d,0x530c,0x5b2d,0x6b8e,0x632d,0x5b2c,0x530c,0x52ec, +0x6b4d,0x630c,0x630c,0x5aeb,0x5aeb,0x5aeb,0x5b0c,0x632d,0x630c,0x632c,0x632c,0x6b6d,0x73ae,0x634d,0x632c,0x632c,0x634c,0x630c,0x630c,0x630c,0x630c,0x632c,0x632c,0x632d,0x6b6e,0x634d,0x632c,0x632c,0x632c,0x6b4d,0x6b2d,0x630c,0x632d,0x632d,0x632d,0x6b4d,0x634e,0x6b4e,0x634d,0x636e,0x634d,0x6b6e,0x6b8f,0x73af,0x73cf,0x73cf,0x73cf,0x7bef,0x73ef,0x73cf,0x73af,0x73af,0x7bd0,0x7bf0,0x73ef,0x73ef,0x73cf,0x7bf0,0x8451,0x73cf,0x73f0,0x73f0,0x73f0,0x8452,0x8492,0x7c51,0x7c31,0x7c31,0x7c31,0x8452,0x8452,0x7c32,0x8452,0x8c73,0x8cb3,0x8cb3,0x94d4,0x94f4,0x9515,0x9d15,0x9d35,0x9514,0x8cb3,0x8cd4,0xa576,0xa577,0x8cf4,0x94f4,0x94d4,0x9514,0x94f4,0x8cd4,0x9515,0x9515,0x8d15,0x9515,0x94f5,0x9536,0x94f5,0x94f4,0x9d36,0x9d36,0x9d56,0xadd7,0xb5f8,0xa597,0xa576,0xa556,0xb619,0xb5f8,0xadd8,0xadd8,0xadd8,0xadb8,0xad97,0x10a2,0x10a2,0x18e3,0x10a2,0x10a2,0x10a2,0x10a2,0x18a3,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x18e3,0x2104,0x2945,0x2104,0x2104,0x2124,0x2104,0x2104,0x18e4,0x2104,0x2104,0x18e4,0x2104,0x20e4,0x18c3,0x18e4,0x18e3,0x2104,0x2104,0x18e3,0x2104,0x20e4,0x2124,0x2104,0x2124,0x2945,0x2124,0x2124,0x2124,0x2104,0x2104,0x2124,0x2104,0x2104,0x2104,0x20e4,0x2104,0x20e4,0x2104,0x2104,0x2104,0x20e4,0x2104,0x2104,0x20e3,0x20e3,0x18c3,0x20e4,0x2124,0x2104,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x2103,0x31a6,0xbe3a,0xb619,0xb5f9,0xa577,0x9d35,0x9d56,0xa576,0xadd8,0xadd8,0xadb7,0xadb8,0xadd8,0xadd8,0xadb7,0xa577,0xa597,0x8cd4,0x8493,0x8cb3,0x8cb4,0x94d4,0x94d4,0x8cb3,0x8493,0x7c72,0x8452,0x7c11,0x7c32,0x8472,0x8cb3,0x94f4,0x9514,0x8cd4,0x8493,0x8473,0x7c11,0x7410,0x7c31,0x7c31,0x7c31,0x8472,0x8472,0x8472,0x8493,0x8492,0x8cb3,0x8452,0x7c11,0x7c11,0x7c31,0x8451,0x7410,0x8472,0x8472,0x73f0,0x7410,0x6bd0,0x7c31,0x7c31,0x7c31,0x7c11,0x73f0,0x73d0,0x7410,0x7c31,0x7411,0x7c11,0x73f1,0x6b8f,0x6baf,0x6baf,0x6b8e,0x6b8e,0x6baf,0x73f0,0x6baf,0x638e,0x638f,0x6baf,0x6baf,0x6b8f,0x6b8f,0x6b8e,0x634e,0x636f,0x6bcf,0x6bcf,0x6baf,0x73d0,0x6baf,0x636e,0x636e,0x636e,0x530d,0x530d,0x6b8e,0x6b6e,0x73af,0x7bf0,0x632d,0x5b2c,0x5b0c,0x530c,0x5b2d,0x5b4d,0x634d,0x6b8e,0x6b8e,0x5b2d,0x52ec,0x52cc, +0x634c,0x5aeb,0x5b0b,0x5b0b,0x5aeb,0x5acb,0x5acb,0x5acb,0x5acb,0x630c,0x6b4d,0x6b6e,0x6b6e,0x630c,0x630c,0x632c,0x5b2c,0x630c,0x630c,0x632c,0x632d,0x630c,0x5b0c,0x632d,0x636d,0x5b2c,0x630c,0x634c,0x632c,0x632d,0x632d,0x5b0c,0x632d,0x6b4d,0x632d,0x6b4e,0x634e,0x6b6e,0x6b8e,0x6b6e,0x6b6e,0x73cf,0x73cf,0x7bcf,0x73f0,0x73ef,0x7c30,0x7c31,0x73f0,0x7bf0,0x7bf0,0x7bf0,0x7bf0,0x7bf0,0x73f0,0x73cf,0x6baf,0x73cf,0x73cf,0x73ef,0x73ef,0x73cf,0x73f0,0x7410,0x7c30,0x8451,0x8452,0x8452,0x7c51,0x8451,0x8472,0x8472,0x8c73,0x8c93,0x94d4,0x8cd3,0x94f4,0x94f4,0x9d15,0x9d15,0x9d15,0x9d15,0x8cd4,0x9d35,0xad97,0x9515,0x8cd3,0x94d4,0x8cd4,0x8cd4,0x8cd4,0x94f4,0x9515,0x9515,0x9515,0x9535,0x94f4,0x9515,0x9515,0x9515,0x9d35,0x9d15,0x9d56,0xa576,0xadb7,0xadb7,0x9d56,0xadd8,0xb619,0xadd8,0xb619,0xb619,0xb619,0xbe19,0xb5d8,0x18c3,0x2124,0x31a6,0x2104,0x18e3,0x2104,0x2104,0x2104,0x2945,0x2945,0x2124,0x2124,0x2924,0x2924,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2925,0x2945,0x2124,0x2124,0x2124,0x2104,0x2124,0x2104,0x2104,0x2965,0x2104,0x2104,0x2125,0x2124,0x2104,0x18e3,0x2104,0x18e3,0x18e3,0x2104,0x2104,0x18e3,0x2104,0x18e3,0x18e3,0x18e3,0x2104,0x2124,0x2124,0x2125,0x2945,0x2945,0x2965,0x2945,0x3186,0x3165,0x2965,0x2945,0x2945,0x2124,0x2945,0x2945,0x2125,0x2945,0x2945,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x20e3,0x20e4,0x3166,0x2104,0x2104,0x31a6,0xb619,0xb5f9,0xbe3a,0xadd8,0x9d36,0x9d76,0xa576,0xb5f8,0xb5f8,0xa597,0xadd8,0xadd8,0xadf8,0xa597,0xa577,0x94d4,0x94f4,0x8cb4,0x8cb4,0x8cb4,0x94f4,0x8cb3,0x8cd4,0x8cd4,0x8473,0x8472,0x7c32,0x7c52,0x8473,0x8493,0x8cd4,0x8cd4,0x8493,0x84b3,0x7c31,0x7c31,0x7c11,0x7411,0x7411,0x7c11,0x7c11,0x8472,0x9d15,0x7c52,0x8472,0x8c93,0x8452,0x7411,0x7c11,0x7c31,0x7c31,0x7c31,0x7c31,0x8472,0x7410,0x73f0,0x73f0,0x7c11,0x73f0,0x73f0,0x7c11,0x73f0,0x6bd0,0x6bd0,0x7411,0x7411,0x7c11,0x73f0,0x73af,0x73f0,0x7c11,0x73cf,0x6b8f,0x73af,0x73f0,0x6baf,0x636e,0x6b8f,0x636e,0x6b8f,0x6b8f,0x636e,0x6bcf,0x6baf,0x638e,0x6baf,0x638e,0x638e,0x6baf,0x6baf,0x636e,0x636e,0x636e,0x530d,0x530c,0x636e,0x73cf,0x6b8e,0x73d0,0x636e,0x5b2d,0x5b2d,0x5aeb,0x52eb,0x5b0c,0x634d,0x636e,0x6b6e,0x634e,0x5aec,0x52ab, +0x632c,0x52cb,0x52cb,0x5acb,0x5acb,0x5acb,0x5aeb,0x5acb,0x5acb,0x5aec,0x632d,0x6b6e,0x630c,0x5aec,0x630c,0x630c,0x5b0c,0x5b0c,0x630c,0x632d,0x632d,0x630c,0x5b0c,0x634d,0x636d,0x634d,0x632c,0x632c,0x5b2c,0x5b2c,0x5b2d,0x632d,0x6b4d,0x6b4d,0x6b6d,0x6b8e,0x6b8e,0x6b8e,0x6b8f,0x6b8e,0x6baf,0x73cf,0x73cf,0x73cf,0x73cf,0x73f0,0x7c30,0x7c31,0x7411,0x7c11,0x7c11,0x7c11,0x7c11,0x73f0,0x73d0,0x73d0,0x73cf,0x6baf,0x73cf,0x73ef,0x73cf,0x73ef,0x73ef,0x73f0,0x7410,0x7c10,0x8431,0x8452,0x8cd3,0x8471,0x8451,0x8c93,0x8c73,0x8452,0x8c93,0x9514,0x9514,0x94f4,0xa555,0x9d35,0x9d15,0x9d15,0x9d15,0xa576,0x9d15,0x8cd4,0x8cd4,0x94f4,0x9515,0x94d4,0x8cb4,0x8cd4,0x94d4,0x9d15,0x9d35,0x9514,0x8cf4,0x9515,0x9d35,0x9d56,0x9d56,0x9d56,0xa556,0xad97,0xadd8,0xa597,0xa576,0xa597,0xa597,0xadb7,0xadd8,0xb5f8,0xb619,0xbe5a,0xb5d8,0x4a6a,0x632d,0x738d,0x52aa,0x52aa,0x52aa,0x528a,0x528a,0x52cb,0x52ab,0x52ab,0x52ab,0x52cb,0x5acb,0x52aa,0x528a,0x526a,0x4a69,0x5269,0x5269,0x526a,0x528a,0x526a,0x528a,0x528a,0x5aaa,0x5aaa,0x528a,0x528a,0x528a,0x528a,0x5aab,0x5269,0x4a69,0x4a6a,0x4a49,0x4a49,0x4a49,0x4a69,0x4a69,0x4a29,0x4a49,0x4a49,0x4a49,0x4a69,0x4a69,0x4a49,0x4a49,0x4a49,0x4a49,0x4a49,0x4a49,0x4a69,0x528a,0x4a49,0x4a69,0x528a,0x528a,0x526a,0x528a,0x528a,0x5acb,0x528a,0x4a6a,0x4a6a,0x4a6a,0x4a6a,0x4a6a,0x4a6a,0x4a49,0x4249,0x4249,0x4249,0x4229,0x4229,0x4229,0x4229,0x4229,0x4208,0x4229,0x4229,0x4208,0x4208,0x4208,0x4208,0x4208,0x4208,0x39e8,0x39e8,0x39e7,0x4208,0x4249,0x634d,0x6baf,0xb619,0xb619,0xb63a,0xadd8,0xa597,0xa5b7,0xa597,0xb5f8,0xadd8,0x9d36,0xa577,0xa5b7,0xa597,0xa5b7,0x9d56,0x8cb4,0x8cf4,0x8cb3,0x94d4,0x94d4,0x94f4,0x84d4,0x84d3,0x9515,0x8cb4,0x8c93,0x8493,0x8472,0x8493,0x8cb4,0x8cb4,0x8cb4,0x8493,0x84b3,0x7c52,0x73f0,0x73f0,0x73f0,0x7c11,0x73d0,0x73f0,0x94b3,0x8c72,0x7c11,0x8493,0x8cb4,0x8452,0x7c31,0x7c52,0x7c52,0x8452,0x7c32,0x7411,0x7c11,0x7c11,0x7bf0,0x7c31,0x7c31,0x7411,0x6bd0,0x73f0,0x73f0,0x73d0,0x6bb0,0x6bd0,0x7c31,0x7c11,0x73ef,0x73f0,0x73f0,0x7c10,0x7c10,0x73f0,0x73f0,0x73d0,0x6b8f,0x6b8f,0x73af,0x634e,0x5b4d,0x636e,0x636d,0x6bcf,0x73ef,0x638e,0x638e,0x638e,0x638e,0x6baf,0x6b8e,0x636e,0x634e,0x634d,0x634e,0x5b2d,0x636d,0x6b8e,0x6bae,0x636e,0x636e,0x5b0c,0x5b2c,0x5aeb,0x5acb,0x52cb,0x5b0c,0x636e,0x52ec,0x5aec,0x5b0c,0x52cb, +0x630c,0x5aeb,0x5acb,0x5acb,0x5aeb,0x5acb,0x5acb,0x5acb,0x5aec,0x5aec,0x632d,0x630c,0x62eb,0x630c,0x630c,0x632c,0x5b0c,0x52eb,0x5b0c,0x630c,0x634c,0x634c,0x632c,0x632d,0x634d,0x634d,0x634d,0x632c,0x5b2c,0x632c,0x634d,0x6b4d,0x6b4d,0x6b4d,0x636d,0x6b8e,0x73af,0x6b8f,0x6b8e,0x6baf,0x6baf,0x6baf,0x73af,0x7bd0,0x73d0,0x73f0,0x73d0,0x7c11,0x7c11,0x7c11,0x7c11,0x7c31,0x7c11,0x73f0,0x7410,0x73f0,0x6bcf,0x6baf,0x73cf,0x73cf,0x73cf,0x7bf0,0x73cf,0x73f0,0x73f0,0x7c11,0x8432,0x8452,0x94f4,0x8c93,0x8c93,0x8cb3,0x8493,0x8472,0x8cb3,0x94f4,0x9515,0xa576,0xa596,0x9d35,0x9d15,0x9d56,0xa576,0x9515,0x8cd4,0x8cb3,0x8cb4,0x9515,0x9515,0x94d4,0x8cb4,0x94d4,0x94f4,0x94f4,0x94f4,0x8cf4,0x9515,0x9d56,0x9d35,0x9d35,0x9d76,0x9d55,0xa577,0xadb8,0xadb8,0xa597,0xa576,0xa577,0xa597,0xadb7,0xb5d8,0xadb7,0xb5f8,0xbe3a,0xbe39,0x52ab,0x8412,0x844f,0x4a89,0x4a49,0x4229,0x4208,0x4208,0x4228,0x4208,0x4208,0x4208,0x4208,0x4208,0x41e7,0x41e7,0x41e7,0x39c7,0x41c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x41c7,0x41c7,0x39c7,0x39a7,0x39a7,0x39a6,0x39a7,0x3186,0x3166,0x2966,0x2945,0x2945,0x2945,0x2965,0x2965,0x2925,0x2945,0x2945,0x2945,0x2945,0x2965,0x2965,0x2965,0x3165,0x3166,0x2966,0x3165,0x3166,0x31a6,0x3166,0x3186,0x3186,0x3186,0x3186,0x39a7,0x39c7,0x4208,0x41e8,0x41e8,0x4208,0x41e8,0x41e8,0x41e8,0x4208,0x4208,0x41e7,0x41e8,0x41e7,0x41e7,0x39c7,0x41e7,0x41e7,0x39c7,0x39c7,0x41e8,0x4208,0x41e7,0x4228,0x4207,0x4a28,0x4a28,0x4208,0x41e7,0x39c7,0x39c7,0x41e7,0x52aa,0x9d36,0x9d56,0xa5b8,0xb5f9,0xadb8,0xa577,0xadb8,0xb5f9,0xadb7,0xb5f8,0xa597,0x9d56,0x9d77,0xa577,0x9d56,0x9d36,0x94f4,0x9515,0x9535,0x8cb3,0x8cd4,0x9515,0x8cf4,0x8cb3,0x8cb3,0x94f4,0x8c93,0x8c93,0x8493,0x8472,0x8493,0x94f4,0x8cd4,0x8c93,0x8493,0x7c52,0x8472,0x8cd4,0x7c31,0x7410,0x7c31,0x7410,0x7411,0x7c31,0x7c31,0x7c32,0x8472,0x8493,0x8472,0x8492,0x8492,0x8452,0x8472,0x7c72,0x7c31,0x7410,0x7c31,0x73f0,0x7410,0x7c31,0x7c31,0x73f0,0x7c31,0x73f0,0x6bd0,0x6bcf,0x7410,0x7c52,0x7411,0x7410,0x73f0,0x73cf,0x73ef,0x7c30,0x7c31,0x73f0,0x6bcf,0x6b8e,0x636e,0x6baf,0x6b8e,0x636e,0x636e,0x636e,0x638e,0x6b8e,0x636e,0x636e,0x636e,0x636e,0x638e,0x6b8e,0x6b8e,0x636e,0x636e,0x636e,0x634d,0x636d,0x634d,0x6b8e,0x6b8e,0x6b6e,0x5b2d,0x5b2c,0x52eb,0x5aeb,0x5aec,0x52ec,0x5b4d,0x530c,0x5b0c,0x5b2c,0x52eb, +0x5aeb,0x5aeb,0x5acb,0x5aeb,0x5acb,0x52aa,0x52cb,0x5aeb,0x5aec,0x630c,0x630c,0x630c,0x5aec,0x630c,0x630c,0x630c,0x5b0c,0x5aec,0x632c,0x634d,0x634d,0x632c,0x632c,0x5b0c,0x632d,0x632d,0x636d,0x634d,0x634d,0x634d,0x6b8e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x6b8e,0x738f,0x738e,0x73af,0x73af,0x73cf,0x73d0,0x73d0,0x8431,0x8c52,0x7c11,0x7c11,0x8452,0x8452,0x8451,0x8451,0x8451,0x8451,0x8451,0x7c31,0x7c10,0x73d0,0x73f0,0x7c10,0x7c10,0x7c10,0x7c10,0x7c31,0x7c11,0x7c11,0x7c11,0x7c32,0x8c73,0x94d4,0x8472,0x8cd4,0x8cb3,0x8452,0x8493,0x8cb4,0x94d4,0x9d35,0xa576,0x9d56,0x9d35,0x9514,0x9d55,0x9d56,0x8cd3,0x8cd4,0x8cb3,0x9515,0x94f4,0x8cd4,0x8cb4,0x8cb3,0x94f4,0x94f5,0x8cd4,0x94f5,0x9515,0x94f5,0x8cd4,0x94f4,0x9d35,0x9d35,0x9d76,0xa576,0xa577,0xa597,0xa576,0xa576,0xad97,0xa597,0xadb7,0xadb7,0xb5d8,0xbe3a,0xc65a,0xc69b,0x630d,0x9cd5,0x94b1,0x52ab,0x4a4a,0x4229,0x4229,0x4209,0x4208,0x4208,0x4208,0x4208,0x4208,0x41e8,0x4208,0x4208,0x526a,0x528a,0x526a,0x4a49,0x526a,0x4a69,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x4208,0x39e7,0x39e7,0x39c7,0x39c7,0x4208,0x39e7,0x39a7,0x39e8,0x3186,0x3186,0x31a6,0x39a7,0x31a6,0x39c7,0x39a6,0x2945,0x2965,0x3186,0x31a6,0x39c7,0x39c7,0x31a6,0x39c7,0x4208,0x41e8,0x39c7,0x39c7,0x39e8,0x39c7,0x39c7,0x41e8,0x4a29,0x4a29,0x4a4a,0x524a,0x526a,0x528a,0x528a,0x5aab,0x5aab,0x528a,0x528a,0x526a,0x528a,0x5a8a,0x5a8b,0x5a8a,0x528a,0x528a,0x526a,0x528a,0x5a8a,0x5aab,0x5acb,0x62eb,0x62eb,0x62eb,0x6b0c,0x630b,0x62eb,0x5aab,0x62cb,0x6b2c,0x736e,0xa577,0xa598,0xa5b8,0xadd8,0xadb8,0x9d36,0xa577,0xadf8,0xadb8,0xadf8,0xa576,0xa597,0xa5b7,0xadb7,0xa577,0x9d35,0x8cd4,0x9515,0x9515,0x8493,0x84b3,0x8cf4,0x8493,0x8cb3,0x8cd4,0x8cb3,0x8c93,0x8cd4,0x8473,0x7c32,0x7c52,0x8cb3,0x8493,0x8452,0x7c32,0x8472,0x7c72,0x8493,0x7c31,0x7c31,0x7c31,0x7410,0x73f0,0x7431,0x7c72,0x8472,0x8492,0x8472,0x7c72,0x8472,0x8493,0x8452,0x7c11,0x7c31,0x8432,0x7c11,0x7c31,0x7c11,0x7c11,0x7c51,0x8471,0x73f0,0x73f0,0x7410,0x73f0,0x73f0,0x73f0,0x7411,0x7411,0x7411,0x7410,0x73ef,0x73ef,0x7c30,0x7410,0x73d0,0x6bcf,0x6b8f,0x6baf,0x6baf,0x638e,0x6bae,0x6b8e,0x636e,0x636e,0x636e,0x636e,0x6b6e,0x636e,0x6b8f,0x6baf,0x6b6e,0x636e,0x636e,0x6baf,0x6baf,0x636e,0x634d,0x6b8e,0x6b6e,0x73af,0x6b8e,0x5b0c,0x5b0c,0x5b2c,0x52ec,0x52eb,0x5b0c,0x636e,0x5b4d,0x530c,0x52eb,0x52cb, +0x5aeb,0x5aeb,0x5aeb,0x5aeb,0x5acb,0x5aaa,0x5aeb,0x630c,0x5b0c,0x5b0c,0x6b6d,0x6b4d,0x630c,0x630c,0x632c,0x630c,0x5b0c,0x5b0c,0x632c,0x634d,0x632c,0x632c,0x630c,0x632c,0x632d,0x634d,0x634d,0x632d,0x632d,0x634d,0x636d,0x6b8e,0x6b8e,0x8411,0x94b3,0x94b2,0x9492,0x8430,0x73ef,0x73cf,0x73cf,0x73af,0x7bef,0x9492,0x94b3,0x9cf3,0x9492,0x9cf4,0x9cf4,0x9d14,0xa514,0x9cf4,0x94b2,0x94d3,0x94d3,0x7c30,0x7c10,0x8c72,0x9cf4,0xa535,0xa555,0x9cf4,0x94d3,0x9cf4,0x94b3,0x7c31,0x8452,0x94d4,0x8472,0x8c73,0x8cb3,0x8472,0x8472,0x8cb4,0x94d4,0x9d15,0xa576,0x9d56,0x9515,0x9d35,0x9d35,0x9d35,0x94f4,0x8cd4,0x8cd4,0x94f4,0x9d15,0x8cd4,0x8493,0x8cb4,0x8cf4,0x94f4,0x9515,0x94f5,0x8cf4,0x94f4,0x94f4,0x8cb3,0x94f4,0x9515,0x9515,0xa556,0x9d56,0xa597,0xa597,0xa577,0xadb8,0xb5d8,0xa597,0xa577,0xadb8,0xb5f9,0xbe19,0xbe5a,0xbe5a,0x630e,0x9cf6,0x8c70,0x528a,0x4a49,0x4208,0x4208,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x630d,0x7baf,0x6b2d,0x5acb,0x738e,0x6b4c,0x41e7,0x41e7,0x41e7,0x39c7,0x39c7,0x39e7,0x39c7,0x39c7,0x39c7,0x4a29,0x52aa,0x4a69,0x4a6a,0x5acb,0x41e8,0x39c7,0x4229,0x528a,0x4a69,0x4229,0x52aa,0x3165,0x39c7,0x4a49,0x4208,0x4a49,0x526a,0x39c7,0x5acb,0x5acb,0x4a29,0x39c7,0x39c7,0x39e8,0x39e8,0x4208,0x4a4a,0x62ec,0x5aab,0x5aab,0x6b2d,0x5aab,0x62ec,0x62ec,0x62ec,0x6b2d,0x62cb,0x5a8a,0x5aab,0x62ec,0x62cc,0x62ec,0x6b2d,0x62ec,0x5aab,0x5aab,0x6b2d,0x632c,0x62ec,0x62ec,0x736e,0x6b0c,0x62cb,0x62eb,0x630c,0x738d,0x6b4d,0x734d,0x7bce,0x8410,0xa597,0xa597,0xa597,0xa597,0xadd8,0xa597,0xa576,0xadb7,0xadd8,0xa596,0x9d36,0xa597,0xa597,0x9d55,0x9d35,0x9d35,0x94f4,0x94f4,0x9515,0x8493,0x8493,0x94f4,0x8493,0x7c72,0x84b3,0x8cd4,0x94d4,0x8cd4,0x8cd4,0x8493,0x8493,0x8cd4,0x7c52,0x7c52,0x8452,0x7c52,0x7431,0x84b3,0x7c51,0x7c11,0x7c31,0x7c31,0x7c11,0x7c31,0x8472,0x8492,0x7c52,0x8cb3,0x8472,0x8493,0x8cb3,0x8472,0x7c31,0x7c31,0x7c11,0x7c11,0x7410,0x7c31,0x7c31,0x7c51,0x8472,0x73f0,0x6bf0,0x73f0,0x7411,0x73f0,0x73f0,0x7411,0x73f0,0x73d0,0x7410,0x7410,0x7410,0x7c11,0x73d0,0x73d0,0x73cf,0x6bcf,0x6baf,0x636e,0x636e,0x6b8e,0x6baf,0x6b8f,0x6b8e,0x636e,0x6b8e,0x6baf,0x73d0,0x636e,0x6b6e,0x636e,0x634d,0x636d,0x638e,0x6b8e,0x73cf,0x6b8e,0x73cf,0x6b8e,0x634d,0x634d,0x5aec,0x52cc,0x632d,0x5aec,0x5acb,0x632d,0x6b8e,0x52ec,0x52eb,0x5aec,0x52cb, +0x632c,0x630c,0x5aeb,0x5aeb,0x5aeb,0x5aeb,0x632d,0x6b4d,0x632c,0x738e,0x73ae,0x6b6d,0x630c,0x5aec,0x630c,0x630c,0x5aec,0x5aec,0x630c,0x632d,0x632d,0x634d,0x632c,0x632c,0x636d,0x634d,0x632c,0x632d,0x634d,0x632d,0x6b6e,0x738e,0x7bcf,0x9cb3,0xa4f3,0xa4f3,0x9cd3,0x9d14,0x8471,0x73ef,0x7bf0,0x7bd0,0x9472,0x8c71,0x94d3,0xad75,0x94b2,0x9492,0x9cd3,0xa4f3,0x9492,0xa514,0x9cd3,0x9472,0xadb6,0x9d55,0x8471,0x8c72,0x9cd3,0x9cd3,0xa535,0xb5d7,0x94d3,0xa575,0xadb6,0x8451,0x8c92,0x94f4,0x8431,0x8cb3,0x8cb3,0x8cb3,0x8473,0x8493,0x9d35,0x9d56,0x9d56,0x9d35,0x9d15,0x94d4,0x9515,0x9d56,0x94f4,0x94f4,0x9d15,0x9d56,0xa556,0x94f4,0x8cb3,0x94d4,0x8cf4,0x8cd4,0x9d15,0x9d15,0x8cb4,0x8cd4,0x8cb4,0x8cb3,0x9d14,0x94f4,0x94f4,0xa576,0xad97,0xad97,0xa576,0xadb7,0xad97,0xa577,0xa577,0xad97,0xad98,0xadd9,0xb5f9,0xb5f9,0xb5f9,0x630e,0xa516,0x844f,0x528a,0x4229,0x41e8,0x39e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x7390,0x8c72,0x736e,0x62ed,0x8c51,0x7bce,0x41e7,0x41e7,0x41e7,0x39c7,0x39c7,0x39c7,0x39e7,0x39c7,0x39c7,0x5acb,0x526a,0x4a29,0x630c,0x528a,0x5acb,0x4a4a,0x528b,0x52ac,0x5acb,0x39c7,0x632d,0x39a7,0x526b,0x62ec,0x5acb,0x62ec,0x5acb,0x5aab,0x738e,0x632d,0x4a49,0x39a7,0x39a7,0x39a7,0x39c8,0x4208,0x52ab,0x73af,0x6b2d,0x62ec,0x6b4e,0x5acc,0x7baf,0x738e,0x5aab,0x73af,0x736d,0x5acb,0x738f,0x736e,0x5aab,0x5aab,0x6b2d,0x738e,0x5aab,0x62ec,0x83d0,0x736e,0x5aab,0x5aab,0x738f,0x7bae,0x5aab,0x5a8b,0x5aab,0x630c,0x6b0c,0x6b0c,0x734d,0x83ef,0xadb8,0xadb7,0xa576,0x9d56,0xa597,0xb5f8,0xa536,0xad97,0xb5d8,0xadb7,0xa577,0xa597,0x9d56,0xa576,0x9d35,0x8cb3,0x9d15,0x94f4,0x9d35,0x9d15,0x8cf4,0x9515,0x8cd4,0x8473,0x8472,0x8cb3,0x94d3,0x8cb3,0x9514,0x9514,0x94f4,0x9515,0x8472,0x7c31,0x7c52,0x7c72,0x7431,0xa576,0x94f4,0x73d0,0x7411,0x7c31,0x7c11,0x7c31,0x94d3,0x94d4,0x8492,0x8452,0x8473,0x8493,0x8472,0x8472,0x8472,0x7c51,0x7c11,0x7c11,0x7411,0x7c31,0x7c11,0x73d0,0x7c11,0x73f0,0x6bf0,0x7410,0x7c51,0x7410,0x73cf,0x7c10,0x73f0,0x73d0,0x7410,0x73f0,0x73f0,0x7c31,0x73f0,0x6baf,0x73af,0x73af,0x6baf,0x6b8f,0x73d0,0x73f0,0x6b8f,0x73d0,0x6baf,0x63ae,0x6baf,0x73cf,0x73cf,0x634e,0x6b8e,0x636d,0x6b8e,0x638e,0x636d,0x636e,0x638e,0x6baf,0x73f0,0x636e,0x5b2d,0x5b2d,0x530c,0x5b0c,0x634e,0x5b2d,0x5aec,0x5b0c,0x636d,0x5aec,0x52cb,0x52cb,0x52cb, +0x630c,0x630c,0x5aeb,0x630c,0x5aec,0x5b0c,0x6b6d,0x6b6e,0x6b6e,0x73ae,0x738e,0x634d,0x5b0b,0x5b0c,0x632c,0x632c,0x632c,0x630c,0x632c,0x6b4d,0x6b4d,0x632d,0x632c,0x634d,0x636e,0x6b8e,0x636d,0x634c,0x6b6d,0x6b8e,0x6b8e,0x7bf0,0x8c51,0x9451,0x8c30,0x9c92,0x8c31,0xb5b6,0x9d54,0x7c31,0x8410,0x8410,0xa514,0x9491,0x94b1,0xa513,0xa513,0x9471,0x9492,0xb5b6,0xa534,0x9cf3,0x9471,0x9471,0xa514,0xbe18,0x8cb3,0x8c71,0xa534,0x94d2,0x8c71,0xad34,0x8c71,0xa534,0xb5d7,0x8452,0x9d35,0x8c93,0x8451,0x8472,0x8493,0x8492,0x8452,0x8cb3,0x9d15,0x9d55,0x9d35,0x9d15,0x94f4,0x8cb3,0x94f4,0x8cd4,0x8cb3,0x94d4,0x9cf5,0x9d36,0xa576,0x94f4,0x8cb4,0x8cd4,0x8cd4,0x94f4,0x94f4,0x8cd4,0x8cd4,0x8cb4,0x8cb3,0x8cb3,0x9515,0x94f4,0x94f5,0xad97,0xb5d8,0xadd8,0xadd7,0xa5b7,0x9d36,0x9d36,0xa597,0xadd8,0xadd8,0xb619,0xbe3a,0xbe59,0xb5f8,0x632e,0xa516,0x842f,0x4a8a,0x4229,0x39e8,0x39e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x738f,0x8c31,0x6b4d,0x630d,0x8c92,0x73ce,0x41e7,0x41e7,0x39e7,0x39e7,0x39e7,0x39e7,0x39e7,0x39e7,0x41e8,0x630c,0x5acc,0x62cc,0x632d,0x39e8,0x6b6e,0x5aac,0x526a,0x528b,0x5aab,0x526a,0x62ed,0x4a49,0x5acc,0x6b2d,0x632d,0x62ec,0x5acc,0x6b4e,0x738f,0x630d,0x4a49,0x3186,0x3186,0x3186,0x3187,0x39c7,0x630c,0x73af,0x6b6e,0x630c,0x630d,0x5aab,0x6b4e,0x630c,0x526a,0x7bf0,0x7bcf,0x630d,0x9472,0x732d,0x5249,0x524a,0x528a,0x738e,0x6b0c,0x738e,0x9452,0x62cc,0x5a6a,0x526a,0x5acc,0x7bcf,0x6b0c,0x5a8b,0x5a6a,0x526a,0x62cb,0x62cb,0x62eb,0x736e,0xa577,0xadd8,0xadd8,0xa577,0x9d56,0xadd8,0xad97,0x9d56,0xadd7,0xb5d8,0xb5f8,0xa577,0x94f5,0xa576,0xa577,0x94d4,0x9d56,0x9d15,0x94d4,0x94f4,0x94f5,0x9515,0x8cd4,0x8cf4,0x8cb3,0x94d4,0x94d4,0x8cb3,0x8cd3,0x9d14,0x9d35,0x94d4,0x8cb3,0x8493,0x7c52,0x7c72,0x73f0,0x9d36,0xa556,0x7c11,0x7411,0x7410,0x73f0,0x7411,0x8cd3,0x9d35,0x9514,0x8c93,0x8cb4,0x8c93,0x8492,0x8492,0x7c52,0x8452,0x7c11,0x73f1,0x73d0,0x73f0,0x7c11,0x73f0,0x73f0,0x73f0,0x6baf,0x6baf,0x6bcf,0x73ef,0x73cf,0x73f0,0x7410,0x73d0,0x73d0,0x73cf,0x73f0,0x73f0,0x73d0,0x73af,0x73d0,0x6baf,0x6bb0,0x73f0,0x73d0,0x6baf,0x6b8f,0x6baf,0x6bcf,0x6bcf,0x6baf,0x73cf,0x6bcf,0x73f0,0x6b8e,0x634e,0x6bae,0x638e,0x5b2c,0x634d,0x636d,0x6bae,0x6bcf,0x638e,0x638e,0x5b2d,0x5b0c,0x5b0d,0x634d,0x5b2c,0x636d,0x634d,0x5b0c,0x5b0c,0x52ec,0x52cb,0x52ab, +0x5aeb,0x62ec,0x630c,0x62eb,0x630c,0x632c,0x6b8e,0x6b8e,0x6b6d,0x738e,0x6b8e,0x634d,0x632c,0x634c,0x634d,0x632c,0x630c,0x632c,0x632c,0x632c,0x634d,0x632c,0x632c,0x634d,0x634d,0x6b6e,0x6b6d,0x6b6d,0x6b6d,0x738e,0x73cf,0x8c52,0x9472,0x9471,0x9471,0x9cb2,0x9451,0xbdf8,0xadb6,0x8471,0x8431,0x94b3,0x9cd2,0x9450,0x9491,0x9cb2,0xb5b6,0x9d14,0x9472,0xb5b6,0xbe17,0x8471,0x8c71,0x9491,0x9492,0xbe18,0x9d14,0x8430,0xc618,0xad95,0x8c51,0xa4f4,0x9492,0xa534,0xadb6,0x7c31,0x9d15,0x8473,0x8472,0x8452,0x8472,0x8472,0x8452,0x94f4,0x9514,0x9d35,0x9d15,0x94f4,0x94d3,0x8cb2,0x9d34,0x8cf3,0x8493,0x8cb3,0x94b4,0x94d4,0x94f5,0x94f5,0x8cd4,0x8cb4,0x94f5,0x8cd4,0x8c93,0x8cd4,0x8cb3,0x8cd4,0x94f4,0x8cd4,0x94f4,0x94f4,0x9515,0xad97,0xadb7,0xadd7,0xadd7,0xa597,0xa577,0xa577,0xa556,0xadb7,0xb639,0xc6bb,0xbe59,0xb618,0xbe19,0x6b2e,0xa536,0x840f,0x4a6a,0x4229,0x41e8,0x39e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x4208,0x41e8,0x738f,0x8411,0x6b4d,0x630e,0x94b3,0x7bcf,0x41e7,0x41e7,0x39e7,0x39e7,0x39e7,0x39c7,0x39c7,0x39c7,0x4a49,0x5aec,0x6b6f,0x7bd0,0x5aec,0x4229,0x6b6e,0x5aec,0x4a6a,0x5acb,0x528b,0x8411,0x5acc,0x5aab,0x630d,0x62ec,0x4a6a,0x4a4a,0x630d,0x5aac,0x6b6e,0x62ec,0x4a49,0x3186,0x3186,0x3186,0x3166,0x3186,0x5aab,0x6b2d,0x630c,0x5acc,0x738e,0x62cb,0x524a,0x524a,0x5acb,0x8c52,0x83af,0x6b4d,0x9451,0x5a6a,0x4a29,0x4a09,0x4a09,0x6b6e,0x738e,0x73cf,0x8411,0x5a6a,0x524a,0x4a4a,0x4a6a,0x6b6e,0x6b4d,0x5a8a,0x5a8a,0x5a8a,0x5aab,0x62ab,0x62cb,0x6b2d,0x9d56,0xa5b8,0xa5b8,0x9d77,0x9d56,0xadb7,0xadb7,0x9d77,0xadd8,0xb5f8,0xa597,0x9d56,0x9d56,0xadb8,0xad97,0x9515,0xa576,0xa596,0x9d76,0x8cb3,0x8cd4,0x8cd4,0x8cd4,0x8cb3,0x8cb3,0x8cd4,0x94d4,0x94d4,0x8472,0x8cb3,0x9d35,0x94f4,0x8cb3,0x8473,0x7c52,0x8452,0x7c11,0x94f5,0x8c93,0x7c52,0x7c31,0x7c52,0x7431,0x7431,0x7c72,0x8cd3,0x8cd3,0x8492,0x8472,0x8493,0x8473,0x8472,0x8472,0x7c11,0x73d0,0x7bf1,0x7bf1,0x73f0,0x7bf0,0x7c11,0x7bf0,0x73f0,0x73f0,0x6bcf,0x6baf,0x73cf,0x7410,0x7c31,0x7bf0,0x73d0,0x73f0,0x73d0,0x73d0,0x73d0,0x7bf0,0x73af,0x6b8f,0x6baf,0x73b0,0x73d0,0x6baf,0x638e,0x636e,0x6b8f,0x73cf,0x73cf,0x73cf,0x6baf,0x6b8e,0x6b8e,0x6baf,0x6b8e,0x636e,0x636e,0x5b4d,0x634d,0x636d,0x73ef,0x6bcf,0x6baf,0x634e,0x5b2d,0x5b0d,0x632d,0x632d,0x5b2d,0x5b2c,0x636d,0x6b8e,0x5b0c,0x52ec,0x5aeb,0x52eb, +0x5aeb,0x62ec,0x5aeb,0x62eb,0x632c,0x6b6d,0x738e,0x6b4d,0x73ae,0x73ce,0x636d,0x632c,0x634c,0x634c,0x5b0c,0x5b0c,0x630c,0x632c,0x630c,0x632c,0x632d,0x632d,0x632d,0x632d,0x632d,0x634d,0x632d,0x634d,0x634d,0x6b6e,0x7bd0,0x8c51,0x8c51,0x8c30,0x8c10,0x9cd2,0x9451,0xb5b6,0xb5f7,0x8cb2,0x8472,0x9cd3,0x9471,0x9cb1,0xa4f3,0x8c30,0xb5b6,0xa575,0x7bd0,0xa515,0xbe18,0x73ef,0x94b2,0xad34,0x8c30,0xbdf7,0xa575,0x8430,0xa554,0x94b2,0x9491,0xb576,0x9492,0xa554,0xb5d7,0x7c52,0x8cb3,0x8452,0x8452,0x8452,0x7c32,0x8452,0x8cb4,0x9d35,0x94f4,0x8c93,0x8c93,0x8cb3,0x8cb3,0x94f4,0x9535,0x8cd3,0x7c52,0x8c92,0x94b3,0x94d4,0x94f4,0x94d4,0x94f4,0x8cb4,0x84b3,0x8493,0x8493,0x8cb4,0x8cb4,0x94d4,0x94f4,0x94f4,0x94f4,0x94f5,0xa576,0xadd8,0xad97,0xa556,0xa556,0xa556,0xa577,0xa556,0xa556,0xc67a,0xb5f8,0xadd8,0xa577,0xa597,0xb5d9,0x632e,0xa537,0x840f,0x4a8a,0x4229,0x4208,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x4a29,0x738f,0x8411,0x6b4d,0x630d,0x8c72,0x7bcf,0x4228,0x41e7,0x39c7,0x41c7,0x39c7,0x41c7,0x41c7,0x39c7,0x5aab,0x526a,0x52ac,0x5aec,0x4a6a,0x52ab,0x6b2d,0x5acc,0x52ab,0x5acb,0x4209,0x632d,0x4229,0x62ec,0x632d,0x5aab,0x528a,0x4a4a,0x630c,0x41e9,0x6b2d,0x5aec,0x4a49,0x3986,0x3986,0x3186,0x3186,0x3186,0x4a6a,0x5aab,0x4a49,0x4a4a,0x7bcf,0x6b0d,0x4a28,0x5aab,0x7baf,0x7bb0,0x62ab,0x632d,0x8410,0x5249,0x4a08,0x4a08,0x4a29,0x7baf,0x738e,0x6b4e,0x7baf,0x5a4a,0x524a,0x524a,0x528b,0x7bd0,0x736e,0x5a8b,0x5a8a,0x5aab,0x5acb,0x5a8a,0x628b,0x6b4e,0xa598,0xa5b8,0xa5b8,0xa5b8,0x9d77,0xadb8,0xadb8,0xadb8,0xadd8,0xb5f8,0xa576,0x9d35,0xa556,0xadb7,0xad97,0x9d56,0x9d55,0xadf8,0x9d76,0x8cd4,0x94f5,0x8cd4,0x8cb3,0x8cb3,0x8cd4,0x8cd4,0x8cb4,0x94d4,0x84b3,0x7c72,0x9515,0x8cd4,0x8c93,0x8cb3,0x8473,0x7c31,0x7c52,0x9d15,0x8452,0x7431,0x7411,0x7411,0x7c32,0x7c31,0x7c31,0x94b3,0x8c93,0x8472,0x7c51,0x7c31,0x8452,0x8473,0x8472,0x7411,0x7411,0x73f1,0x7c31,0x7c31,0x7c31,0x7c10,0x7c10,0x7bf0,0x73d0,0x6baf,0x6baf,0x73f0,0x7c31,0x7c31,0x7c10,0x73f0,0x7c11,0x73f0,0x73d0,0x73f0,0x7c11,0x8452,0x73d0,0x6b8f,0x6baf,0x73d0,0x6baf,0x6b8f,0x6baf,0x73cf,0x73d0,0x7c10,0x73ef,0x73f0,0x6baf,0x6b8f,0x6bae,0x6bae,0x6b6e,0x6b8e,0x6b8e,0x634d,0x636e,0x6baf,0x6b8e,0x636e,0x634e,0x634d,0x5b0d,0x5b2d,0x634d,0x5b0c,0x5b0c,0x5b0c,0x634d,0x636d,0x636d,0x5aec,0x5b0c, +0x630c,0x630c,0x630c,0x5aeb,0x632c,0x632c,0x6b4d,0x6b6d,0x6b8d,0x634d,0x634c,0x634c,0x632c,0x5b0c,0x5b0c,0x630c,0x630c,0x630c,0x630c,0x630c,0x630c,0x630c,0x632c,0x634d,0x6b6d,0x6b8e,0x632d,0x5b0d,0x6b4e,0x738f,0x7bf0,0x8c51,0x8410,0xa4f3,0x8c30,0x9cf3,0x9491,0xa4f3,0xbdf7,0x9d54,0x94d3,0x8c92,0x9471,0xa4f2,0xa513,0x9451,0xad34,0xad96,0x73af,0xad35,0xbdd7,0x7bef,0x9cb2,0x9cd3,0x8c10,0xb576,0xad96,0x8430,0x94b2,0x9492,0xad75,0xbdf7,0x8431,0xa555,0xb5f7,0x8452,0x8452,0x8432,0x8472,0x7c51,0x7c31,0x8472,0x94f4,0x9d15,0x8c93,0x8473,0x8452,0x8c93,0x8cb4,0x8cd4,0x8cb3,0x8cb3,0x7c31,0x8472,0x8cd3,0x8cd4,0x8cd4,0x8492,0x8cd4,0x8cb3,0x7c72,0x8472,0x8493,0x8cb4,0x8cd4,0x8cd4,0x94f4,0x94f4,0x9cf5,0xa536,0xadb7,0xa5b7,0xadb7,0xa576,0x9d56,0x9d36,0x9d56,0xa576,0xbe39,0xbe39,0xa597,0xa597,0xadb8,0xb5f9,0xb5f9,0x632e,0xa537,0x7c0f,0x4a8a,0x4229,0x4208,0x41e8,0x41e8,0x41e8,0x41e8,0x41e8,0x4208,0x4208,0x41e8,0x41e8,0x5aab,0x6b4e,0x8432,0x6b2d,0x630d,0x9492,0x73af,0x5269,0x41c7,0x39c7,0x39e7,0x39c7,0x39e7,0x41e7,0x39c8,0x632d,0x528a,0x4229,0x4209,0x4a6a,0x630c,0x6b2d,0x5acc,0x630d,0x52ab,0x4a4a,0x39c7,0x39e8,0x5acc,0x6b4e,0x5aab,0x630d,0x526b,0x62ec,0x4a4a,0x630c,0x5aec,0x4a49,0x3986,0x3987,0x3186,0x3186,0x39c7,0x5aec,0x630c,0x4a29,0x4a4a,0x7bf0,0x6b2d,0x5aab,0x736e,0x83d0,0x5aab,0x4a49,0x528a,0x6b6e,0x62cb,0x5249,0x4a49,0x5acb,0x8c31,0x6b2d,0x5aec,0x7bf0,0x62cb,0x526a,0x526a,0x630d,0x9493,0x732d,0x5a8b,0x5a8b,0x62cb,0x62cb,0x5a8a,0x5a8a,0x6b2d,0xad98,0xa598,0xa5b8,0xadd8,0xa597,0xa597,0xadb7,0xb5f9,0xb5f9,0x9d56,0x9515,0x9d56,0x9d56,0xad97,0xbe19,0xadd8,0x9d15,0x9d36,0x8cd4,0x8cd4,0x9515,0x94f4,0x8c93,0x8cb3,0x8c93,0x8493,0x84b3,0x84b3,0x8cf4,0x8493,0x8cd4,0x8cd4,0x8cb3,0x8cb3,0x8472,0x7c32,0x7c32,0x94f4,0x8492,0x7410,0x73f0,0x7c11,0x8452,0x7c51,0x7411,0x8c93,0x8cd3,0x8492,0x7c11,0x7c11,0x7c52,0x8472,0x8472,0x7c31,0x73f0,0x8452,0x8472,0x7c31,0x7411,0x7c31,0x73f0,0x7bf0,0x7c11,0x73d0,0x6bd0,0x6bd0,0x6bf0,0x73f0,0x7411,0x6bf0,0x7410,0x7c31,0x73f0,0x73f0,0x7431,0x73f0,0x6bd0,0x6bd0,0x6bcf,0x6bcf,0x6baf,0x6baf,0x6b8f,0x73b0,0x73d0,0x73cf,0x73cf,0x7410,0x6bcf,0x6baf,0x6baf,0x73cf,0x73cf,0x6b8e,0x6b8e,0x636d,0x638e,0x636e,0x73af,0x6b6e,0x632e,0x630d,0x5b0d,0x5b2d,0x52ec,0x6b8e,0x73ae,0x5aec,0x630c,0x634c,0x73cf,0x634d,0x5b0c, +0x5aeb,0x634d,0x632c,0x5aeb,0x630c,0x630c,0x634c,0x6b4d,0x632c,0x5b0c,0x632c,0x632c,0x632c,0x5b0c,0x5b0c,0x630c,0x630c,0x630c,0x630c,0x5b0c,0x5b0c,0x630c,0x632c,0x632c,0x634c,0x6b8e,0x634d,0x630d,0x6b6e,0x7bcf,0x9471,0x9451,0x9471,0xb5b6,0x840f,0xa534,0x9cf3,0x8c10,0xad75,0xadb6,0x9d54,0x8c91,0x9471,0x9cb2,0x9cd2,0x9cb2,0xa4f3,0xad95,0x7bce,0xb575,0xb595,0x840f,0x9cd2,0x8c72,0x8c51,0x9cd3,0xb596,0x8410,0xa4f4,0x9492,0xad75,0xbdf7,0x8410,0xad55,0xbe18,0x8472,0x7c31,0x7c11,0x8452,0x8452,0x7c31,0x8432,0x8c93,0x94d4,0x8cb3,0x8452,0x8c72,0x8c93,0x8c93,0x8473,0x8473,0x8472,0x8492,0x8c93,0x8c93,0x8492,0x8472,0x8472,0x8492,0x8cb4,0x8493,0x8cb3,0x8cd4,0x8cb4,0x8cb3,0x8cb4,0x94f4,0x94d4,0x9d15,0xa576,0xa597,0xa576,0x9d56,0xa576,0x9d36,0x9d56,0xad97,0xc67a,0xbe5a,0xa597,0xadd8,0xad97,0xadd8,0xb619,0xbe19,0x632e,0xa537,0x7bef,0x4a6a,0x4249,0x4208,0x41e8,0x41e8,0x39e8,0x41e8,0x41e8,0x4208,0x4208,0x4208,0x4209,0x632d,0x6b2e,0x8c32,0x630d,0x630e,0x9cf4,0x738e,0x5aab,0x41e7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x41e8,0x5acc,0x5acb,0x4208,0x39e8,0x528b,0x5acc,0x5aec,0x528b,0x5aec,0x526a,0x5aab,0x3166,0x4229,0x528b,0x632d,0x5aab,0x5acc,0x4a29,0x52ab,0x5aec,0x5aab,0x5aec,0x4a29,0x3986,0x39a6,0x3186,0x3186,0x39a7,0x528a,0x630c,0x5aab,0x5a8b,0x7bb0,0x62cc,0x62cc,0x62ec,0x62cc,0x5a8b,0x630c,0x4a09,0x526a,0x5aeb,0x5aaa,0x5aaa,0x630d,0x736e,0x5a8b,0x526a,0x6b2d,0x6b2d,0x5aab,0x5aab,0x6b4e,0x83f0,0x62cc,0x5a8b,0x5a8b,0x62cc,0x62ec,0x5aab,0x5a8b,0x6b2e,0xadd8,0xadb8,0xa5b8,0xadb8,0xadb8,0xa597,0xbe19,0xbe39,0xc65a,0x9d35,0x94f5,0x94f4,0xa556,0xa556,0xbe19,0xb5f9,0xadd8,0x9515,0x9515,0x9d35,0x9d35,0x94f5,0x8c93,0x94f4,0x8cd4,0x8cb3,0x8493,0x8c93,0x8c93,0x94d4,0x94f4,0x8c93,0x8c93,0x8493,0x8472,0x7c52,0x7c31,0x8472,0x8c92,0x8472,0x7c31,0x7c31,0x8452,0x7c31,0x7411,0x8472,0x8472,0x7411,0x7c31,0x7411,0x7c32,0x8452,0x7c52,0x7c52,0x7c52,0x7c31,0x7431,0x6bf0,0x6bf0,0x7410,0x7c31,0x73f0,0x7c31,0x73d0,0x73f0,0x6baf,0x73f0,0x7410,0x6bf0,0x6bcf,0x73f0,0x7c11,0x7410,0x73f0,0x7410,0x6bcf,0x6baf,0x6baf,0x638e,0x6bcf,0x6bcf,0x6baf,0x6baf,0x6b8f,0x6b8f,0x6b8f,0x6baf,0x73cf,0x73d0,0x73d0,0x6baf,0x73f0,0x7c10,0x6bae,0x636e,0x636e,0x6b8e,0x6b8e,0x73af,0x6b6e,0x5b2d,0x5b2d,0x5b0d,0x632d,0x6b8e,0x6b8e,0x6b8e,0x5b0d,0x632c,0x5b0c,0x636d,0x5b4d,0x5b0c, +0x632c,0x630c,0x5b0b,0x5aeb,0x630c,0x630c,0x634c,0x632c,0x5aeb,0x630c,0x5b0b,0x630c,0x632c,0x632d,0x5aec,0x630c,0x630c,0x632c,0x630c,0x5aeb,0x630c,0x6b4d,0x632c,0x630c,0x630c,0x6b8e,0x6b6d,0x6b4e,0x738f,0x8c10,0x9451,0x8c30,0xad55,0xad75,0x7bcf,0xa514,0xad75,0x8c31,0x9492,0x9d13,0xa595,0x94b2,0x9471,0xad34,0xad54,0x94b1,0x94b1,0xad54,0x8c30,0xa513,0xa513,0x8c71,0xad95,0xa555,0x8c91,0x8c51,0x9cd3,0x8410,0xb5b6,0x9cf4,0x8c92,0xad76,0x9451,0xad14,0xbdd7,0x8472,0x8451,0x8431,0x7c31,0x7c31,0x8431,0x7c11,0x8451,0x8c93,0x8c93,0x8452,0x8472,0x8472,0x8452,0x8c93,0x7c31,0x7c52,0x8493,0x8c73,0x8c72,0x8452,0x8452,0x8472,0x8452,0x8c93,0x94f4,0x8cd3,0x8c93,0x8c93,0x8cb3,0x94f4,0x94d4,0x94f4,0x9d56,0x9d35,0xa576,0x9d35,0x9d15,0xa535,0xa535,0xbe19,0xc69b,0xbe19,0xad98,0xa598,0xadb8,0xadb8,0xb5d8,0xbdf8,0xc67a,0x630e,0xa557,0x7bee,0x4a8a,0x4249,0x4208,0x41e8,0x41e8,0x39e8,0x41e8,0x41e8,0x41e8,0x41e8,0x4208,0x5acb,0x5aec,0x630e,0x738f,0x6b2d,0x630e,0x83f1,0x738e,0x5aab,0x4a49,0x41e7,0x41c7,0x39c7,0x39c7,0x39c7,0x41e8,0x4229,0x4209,0x39c7,0x31a7,0x41e8,0x4208,0x4208,0x4208,0x4208,0x41e8,0x4208,0x3166,0x39e8,0x4208,0x4208,0x41e8,0x4209,0x39a7,0x41e8,0x4a29,0x4208,0x4a2a,0x41e8,0x39a7,0x39a7,0x3186,0x3186,0x3186,0x39a7,0x4a49,0x4a49,0x526a,0x5aab,0x522a,0x524a,0x4a29,0x4a09,0x524a,0x62cb,0x4a08,0x4a08,0x5249,0x5249,0x526a,0x5a8b,0x526a,0x5229,0x4a29,0x526a,0x5aab,0x5aab,0x5aab,0x62cc,0x62ec,0x5a8b,0x5a8b,0x5aab,0x62ec,0x62ec,0x62ec,0x62ab,0x6b4d,0xb5f9,0xa5b8,0xa597,0xadb8,0xad97,0xa597,0xb5d8,0xb5d8,0xbe39,0xad97,0x9d36,0xa556,0xad97,0xa576,0xa556,0xadd8,0xadd8,0xa576,0x94f4,0x9515,0x9d36,0x94f4,0x94f4,0x9d35,0x8cf4,0x8cf4,0x8cf4,0x8cb3,0x8473,0x8493,0x8493,0x8cb3,0x8cb4,0x7c32,0x8473,0x8473,0x7c32,0x7c52,0x8452,0x8472,0x7c52,0x73f1,0x7c31,0x7c11,0x7411,0x7c52,0x7411,0x7c11,0x7410,0x7c31,0x8472,0x8473,0x7c52,0x8473,0x8493,0x7411,0x7411,0x73f0,0x73f0,0x73ef,0x7c30,0x7410,0x7410,0x73f0,0x6bcf,0x73cf,0x7c31,0x7410,0x73f0,0x73f0,0x7bf0,0x7c11,0x7410,0x6bef,0x7410,0x7c30,0x73cf,0x6b8e,0x636e,0x6baf,0x73cf,0x6b8f,0x6baf,0x6b8f,0x73af,0x73af,0x73cf,0x73b0,0x73d0,0x73d0,0x73f0,0x6baf,0x6b8f,0x6b8f,0x6b6e,0x6b6e,0x73af,0x73af,0x6baf,0x6b8e,0x636d,0x636e,0x5b2d,0x636d,0x7bf0,0x5b0d,0x5b2d,0x634e,0x5b0d,0x5b0c,0x530c,0x52eb,0x5b0c, +0x5aeb,0x5aeb,0x5b0c,0x5aec,0x5aeb,0x5aeb,0x630c,0x632c,0x5aeb,0x5aeb,0x62ec,0x630c,0x5b0c,0x634d,0x5b0c,0x5aec,0x632c,0x632c,0x5b0c,0x5aeb,0x5b0c,0x632c,0x632c,0x5b0c,0x632c,0x634d,0x6b4d,0x6b6e,0x7bcf,0x8c31,0x9cd2,0xa534,0xa535,0x8cb2,0x8c31,0xad34,0xad75,0x94b2,0x8c71,0x8c71,0xad54,0x9cd3,0x9492,0xad96,0xa575,0x94d3,0x9491,0x9cd2,0x9492,0x9cd3,0x9cf3,0xa534,0xb5d6,0x94d2,0x94b2,0x94b2,0x94d2,0x94d3,0xb5f7,0xa555,0x8c72,0x9cf4,0x9c93,0xad76,0xadb7,0x8472,0x8452,0x7c31,0x7c11,0x7c31,0x7c32,0x7c51,0x7c31,0x7c31,0x8472,0x8431,0x8451,0x8492,0x8493,0x8472,0x8492,0x8472,0x7c51,0x8472,0x8c92,0x8472,0x8472,0x8493,0x84b3,0x9535,0x8cf4,0x8472,0x8493,0x8473,0x8493,0x8cb3,0x94f4,0x9d55,0x9d55,0x9d76,0xa576,0xa576,0x9d35,0xad96,0xce9a,0xce9a,0xb619,0xb5f9,0xa5b7,0xadd8,0xadf8,0xbe3a,0xc65a,0xbe19,0xc67a,0x630e,0xad57,0x7bee,0x4a8a,0x4249,0x4208,0x4208,0x41e8,0x41e8,0x41e8,0x41e8,0x4208,0x4a49,0x528a,0x5acb,0x52ab,0x526a,0x630d,0x6b4d,0x6b2e,0x62ec,0x630d,0x5aab,0x526a,0x4a28,0x41e8,0x41e7,0x39c7,0x39c7,0x4a09,0x528a,0x41e8,0x4208,0x4208,0x41e8,0x41e8,0x41c7,0x39c7,0x39c7,0x39c7,0x41e8,0x41e8,0x41e8,0x39c7,0x39a6,0x39a7,0x39c7,0x39a7,0x39a7,0x39c7,0x39c7,0x41e8,0x4208,0x41e8,0x41e8,0x39c7,0x41e8,0x41e8,0x41e8,0x4a29,0x4a29,0x4a49,0x4a49,0x4a29,0x5249,0x4a29,0x4a29,0x4a29,0x5249,0x4a49,0x5249,0x4a29,0x5249,0x5269,0x5269,0x5249,0x5269,0x526a,0x528a,0x5a8a,0x5a8a,0x5aab,0x5a8b,0x62cb,0x62cc,0x5a8b,0x62ab,0x62ec,0x62ec,0x62ec,0x62cb,0x6b2d,0xadd8,0xadd8,0xa597,0xa5b8,0xadf8,0xadd8,0xa597,0xa597,0xb5f8,0xadb7,0xa576,0xb5f8,0xadb7,0xadb7,0xa597,0xa576,0xa576,0xa597,0x9d36,0x9515,0x8cf5,0x9515,0x9515,0x9515,0x8cd4,0x8cf4,0x9515,0x84b3,0x8493,0x8cb4,0x8cb4,0x8cb3,0x8cd4,0x8cd4,0x7c32,0x8473,0x8472,0x8493,0x7c72,0x7c52,0x7c32,0x7c31,0x7c52,0x7c52,0x7411,0x6bf0,0x73f1,0x73f0,0x7c11,0x7c32,0x84b4,0x84b4,0x7c52,0x8493,0x7c52,0x7411,0x7411,0x6bb0,0x6bb0,0x6bd0,0x6bb0,0x6bd0,0x6bd0,0x63af,0x636f,0x6bb0,0x6c11,0x6bd0,0x6bf0,0x6bd0,0x636f,0x63b0,0x6bd0,0x5b8f,0x6bd0,0x6b90,0x5b4f,0x5b4e,0x5b4e,0x638f,0x63af,0x5b4e,0x4aed,0x530d,0x6bcf,0x5b6e,0x5b4d,0x5b4e,0x5b4e,0x5b6e,0x63af,0x5b8e,0x532d,0x532d,0x532c,0x5b6d,0x638d,0x5b6d,0x534d,0x4b2c,0x534c,0x536d,0x536d,0x4b0b,0x42eb,0x4b0b,0x430b,0x4b2b,0x4b2c,0x4b2b,0x430a,0x4b2b,0x4b2b, +0x5aaa,0x5aca,0x62eb,0x5aca,0x5aea,0x5aeb,0x630c,0x630c,0x62ec,0x5acb,0x62cb,0x62ec,0x630c,0x632c,0x630c,0x62ec,0x630c,0x62eb,0x62eb,0x630c,0x630c,0x62eb,0x62eb,0x62cb,0x62ec,0x6b2d,0x632d,0x632d,0x73af,0x8431,0x9cd3,0x8c92,0x7c10,0x7bf0,0x9472,0x9cb3,0x8451,0x7c10,0x8451,0x8c51,0x9492,0x94b3,0x9cd3,0x94b3,0x8c72,0x8c71,0x9cd3,0xa534,0x9cf3,0x9d13,0x9d13,0x9cf3,0x94b3,0x8431,0x8c72,0x9cd4,0xa515,0xa535,0x9cf3,0x8c72,0x9492,0x9cb3,0x9492,0x8cb2,0x8492,0x8431,0x8410,0x8410,0x8430,0x8430,0x8c51,0x8431,0x8410,0x8431,0x8c31,0x8410,0x8410,0x8c52,0x94b3,0x8431,0xa514,0x94b3,0x8431,0x8c51,0x8410,0x8c31,0x8c10,0x8c31,0x8c51,0x9492,0x8c92,0x8c51,0x8c51,0x9472,0x9472,0x9473,0x94b3,0x9cf4,0x9cf4,0x9cd3,0xa4d3,0xa4d4,0xb535,0xd65a,0xce3a,0xb597,0xad76,0xad77,0xad56,0xb597,0xbdb8,0xc5f9,0xc5f9,0xc5f9,0xbdd8,0x630f,0xad78,0x7bce,0x528a,0x4249,0x4208,0x4208,0x41e8,0x41e8,0x41e8,0x4209,0x630d,0x52aa,0x528a,0x528a,0x526a,0x41e8,0x630d,0x6b6d,0x6b2e,0x5a8a,0x4a49,0x528a,0x526a,0x4a49,0x4229,0x4a49,0x39c7,0x39a7,0x528b,0x7bcf,0x5a68,0x6247,0x6226,0x6206,0x61e6,0x59c6,0x59c6,0x59c6,0x59c6,0x6207,0x6207,0x61e7,0x59c6,0x59c6,0x59c6,0x59c7,0x59e8,0x59c7,0x59c7,0x51e7,0x5208,0x5a49,0x5229,0x4a08,0x41e8,0x4208,0x4208,0x4209,0x4a29,0x4a4a,0x4a29,0x4a4a,0x4a4a,0x526a,0x4a4a,0x4209,0x4209,0x4209,0x4229,0x4a28,0x4228,0x4a28,0x4a48,0x4248,0x4a48,0x4a68,0x4a69,0x4a69,0x5289,0x5289,0x5289,0x5a89,0x6b2d,0x6b2d,0x5a8b,0x62cb,0x62ec,0x630c,0x62ec,0x5a8b,0x5aac,0x7c54,0x7c34,0x7434,0x7c34,0x84b5,0x8474,0x7c33,0x7c13,0x7c53,0x7c33,0x7c33,0x73f2,0x7413,0x7413,0x7c54,0x7413,0x6bb2,0x63b2,0x63b2,0x6391,0x5b51,0x6391,0x5b71,0x5330,0x5b50,0x5b71,0x5330,0x5b50,0x5b30,0x5310,0x5b10,0x530f,0x52ef,0x5b30,0x428e,0x42cf,0x4aef,0x4aef,0x42ce,0x42ce,0x42ae,0x428d,0x42ce,0x3aae,0x3a6d,0x3a6d,0x3a6d,0x3a8e,0x3a8e,0x3a6e,0x42cf,0x3a8e,0x324d,0x3a8e,0x428e,0x324d,0x3a8d,0x326d,0x2a6d,0x2a4d,0x2a6d,0x2a6d,0x222c,0x222c,0x224d,0x2a6d,0x32ce,0x2a8d,0x224c,0x224c,0x224c,0x2a6d,0x226d,0x226c,0x2a8d,0x224d,0x224c,0x1a2b,0x222b,0x224b,0x2a8b,0x328b,0x224a,0x2a8a,0x2aab,0x2aab,0x2aab,0x22aa,0x2aaa,0x2aca,0x2ac9,0x32c9,0x32ea,0x2ac9,0x2ac9,0x32c9,0x32e9,0x32e9,0x32e9,0x3309,0x3309,0x3309,0x32e8,0x32e8,0x32e8,0x32e8,0x2ac8,0x2ae8,0x32e8,0x32e8,0x3308,0x3308,0x32e8, +0x7b66,0x7b87,0x7b87,0x7b87,0x7b86,0x7b87,0x7b88,0x7b88,0x7b67,0x7b47,0x7b47,0x8368,0x8348,0x8347,0x8348,0x7b27,0x7b27,0x7b27,0x7b27,0x8327,0x8327,0x8327,0x8307,0x8327,0x8307,0x8328,0x8328,0x8308,0x8b49,0x8b6a,0x8b49,0x8b6a,0x8b6b,0x936a,0x936b,0x936b,0x8b4a,0x938b,0x93ac,0x938c,0x938c,0x938b,0x938c,0x936c,0x9b8c,0x9b8c,0x9b8c,0x9b8d,0x9b6c,0x9b6d,0x9b4c,0x932b,0x92ea,0x9b2b,0x9b2b,0x9b2b,0x9b2b,0x930b,0x92ea,0x9b0a,0x92ea,0x92ea,0x9aeb,0x92aa,0x92aa,0x9aca,0x9aea,0x9ac9,0x9ac9,0x9aea,0x9aea,0x9aa9,0x9aaa,0x9aa9,0x9aa9,0x9aa9,0x9aa9,0xa2ca,0x9aaa,0x9a89,0xab0b,0xaaeb,0x9a89,0x9a89,0x9a89,0x9a89,0xa269,0xa269,0xa248,0xa248,0xa269,0xa269,0xa249,0xa249,0xa249,0xa249,0xa269,0xa26a,0xa26a,0xa269,0x9a08,0xb30c,0xc3ae,0xaaec,0xaa6b,0xa26a,0xa26a,0xa24a,0xa26a,0xaaab,0xaa8b,0xaa4a,0xaa6b,0xaaac,0xaa8b,0x62ce,0xad98,0x7bce,0x528a,0x4249,0x4209,0x4208,0x4208,0x41e8,0x41e8,0x4a2a,0x7bd0,0x526a,0x4a29,0x4a29,0x41e8,0x39c8,0x62ed,0x6b6e,0x630d,0x5269,0x41e7,0x4229,0x4a49,0x4a29,0x4229,0x6b2d,0x39c7,0x39a7,0x5aac,0x9471,0x7b06,0x8a43,0x8a03,0x89e3,0x91a3,0x8982,0x89a3,0x8983,0x8983,0x9183,0x91a3,0x9183,0x9163,0x9164,0x8964,0x8964,0x89a5,0x8184,0x7964,0x7165,0x7165,0x71a6,0x5986,0x3945,0x2945,0x2925,0x2946,0x2946,0x2967,0x3188,0x2968,0x2989,0x2989,0x29a9,0x2989,0x2988,0x2988,0x2987,0x29a6,0x29c6,0x29c6,0x29e6,0x29e6,0x2a06,0x3206,0x3225,0x3245,0x3a45,0x3a66,0x4286,0x4ac6,0x5b07,0x73ad,0x736e,0x5a8b,0x62cb,0x736e,0x6b4d,0x62cc,0x5a6a,0x5aab,0x52d0,0x4ad1,0x52d1,0x4ab0,0x4ad0,0x4ab0,0x4a90,0x4a90,0x4a8f,0x52d0,0x4ab0,0x42b0,0x4ad0,0x52f0,0x4ad0,0x4ab0,0x4ab0,0x428f,0x3a6f,0x3a6e,0x42af,0x3a6f,0x324e,0x42af,0x4acf,0x42af,0x42af,0x42cf,0x42af,0x3a8f,0x42af,0x42af,0x3a8e,0x324e,0x42af,0x42af,0x3a8e,0x42cf,0x3aae,0x42ae,0x3a8d,0x324d,0x326d,0x3a8e,0x3aae,0x326e,0x3aae,0x3aae,0x42ae,0x42ce,0x42ce,0x3aae,0x3acf,0x3aae,0x328d,0x42ce,0x42ee,0x326c,0x3aad,0x3acd,0x3acd,0x3acd,0x430e,0x430e,0x4b0e,0x42ee,0x3aad,0x3acd,0x430e,0x3aad,0x3aad,0x3acd,0x42ee,0x42ed,0x4b0d,0x4b0d,0x42ed,0x42cc,0x42cc,0x42cc,0x4b0d,0x42ec,0x42cb,0x4b0c,0x4b2c,0x4b4d,0x4b4d,0x4b0c,0x4b2c,0x534c,0x532c,0x534c,0x5b6c,0x5b6c,0x534b,0x534c,0x534c,0x536c,0x534b,0x532b,0x5b6b,0x534b,0x534a,0x4b2a,0x534b,0x4b0a,0x532b,0x532b,0x4b0b,0x534b,0x534b,0x534b,0x530a, +0x8c23,0x8c23,0x8c03,0x8c03,0x9404,0x8be5,0x8be4,0x8bc3,0x8bc3,0x93c3,0x93a4,0x93a4,0x93a4,0x9384,0x8b84,0x8b64,0x8b64,0x8b64,0x8b63,0x9364,0x9364,0x9364,0x9363,0x9364,0x9364,0x9364,0x9364,0x9364,0x9b44,0x9b65,0x9b66,0x9b66,0x9b66,0x9b46,0x9b46,0x9b66,0x9b66,0x9b66,0x9b67,0x9b67,0x9b47,0x9b46,0x9b26,0x9b46,0x9b46,0x9b46,0xa326,0xa305,0x9ac5,0x9ae6,0x9ac6,0x9ae6,0xa2e6,0x9ac6,0x9aa5,0x9a85,0x9ac6,0x9ae7,0x9ac6,0x9aa6,0xa2a6,0xa2c7,0x9aa6,0x9a86,0x9aa7,0x9aa7,0x9aa7,0x9aa7,0xa2a7,0xa2a6,0x9a65,0x9a86,0x9a86,0x9aa7,0x9aa7,0x9a87,0x9aa7,0xa2c7,0xa2c7,0x9a87,0x9a86,0xa286,0xa287,0xa287,0xa2a7,0x9a65,0x9a66,0xa2a8,0xa2c8,0xa2a8,0xa2c9,0xa2a8,0xa2a8,0xa2a8,0xa288,0xa288,0xa2a9,0xa2c9,0xa2ca,0xa268,0xcc91,0xccd1,0x9b6c,0xa32c,0xa32c,0xab4c,0xa34c,0xa32c,0xab8d,0xab8d,0xa36d,0xb3af,0xb3ef,0xb3ef,0xb3ef,0x62ce,0xad78,0x73ae,0x528a,0x4a49,0x4229,0x4208,0x4208,0x41e8,0x41e8,0x4209,0x5acb,0x4208,0x41e8,0x41c8,0x41c7,0x39e7,0x526b,0x5aab,0x526a,0x4208,0x39c7,0x39e7,0x41e8,0x41e8,0x4209,0x5aab,0x39c7,0x39a7,0x526b,0x7bcf,0x7b06,0x8a42,0x8a02,0x91c2,0x91a2,0x9182,0x91a2,0x9182,0x9162,0x9142,0x9162,0x9142,0x9142,0x9142,0x9122,0x9143,0x8943,0x8943,0x8123,0x7923,0x7124,0x6944,0x5104,0x30e3,0x20c3,0x18c4,0x18e4,0x18e5,0x18e5,0x1906,0x2107,0x1927,0x1928,0x1928,0x2148,0x2148,0x2168,0x2167,0x2186,0x21a5,0x21a5,0x21c5,0x21e5,0x2a05,0x2a25,0x2a44,0x3264,0x3264,0x3a85,0x42a5,0x5305,0x6385,0x7bcc,0x7b8f,0x62cc,0x6b2d,0x736e,0x736e,0x62cb,0x5a8a,0x6b4d,0x9d56,0x9536,0x9535,0x9515,0x9515,0x9d56,0x9536,0x8cd4,0x8cd4,0x9535,0xa597,0x9d56,0x9515,0xa556,0x9d56,0x9515,0x9d56,0x9515,0x8473,0x8494,0x7c73,0x8493,0x84b4,0x84d3,0x8cf4,0x8cf4,0x7432,0x7c32,0x7c73,0x7c52,0x8493,0x8493,0x7c72,0x7c32,0x8473,0x8cb4,0x7c73,0x7c52,0x7c72,0x8493,0x8493,0x7c51,0x7431,0x7431,0x7c72,0x7c51,0x8cd3,0x94f4,0xa576,0x94f4,0x7c52,0x7c52,0x73f0,0x73f0,0x7410,0x7411,0x7411,0x63b0,0x6bf1,0x7c31,0x7430,0x7c31,0x8cd3,0x7c72,0x8472,0x7c51,0x73cf,0x6bd0,0x7410,0x6bf0,0x6c10,0x7410,0x7430,0x73f0,0x73f0,0x73d0,0x73d0,0x73d0,0x6baf,0x6baf,0x73f0,0x638f,0x638f,0x6b8f,0x638e,0x638e,0x6baf,0x638e,0x636e,0x6baf,0x638f,0x6b6e,0x6b8e,0x73cf,0x73cf,0x6bae,0x6bae,0x73cf,0x8451,0x6b6e,0x636e,0x634d,0x5b2c,0x638e,0x638d,0x634d,0x634d,0x632d,0x632d,0x5b0c,0x634d,0x5b0c,0x5b0c, +0x7368,0x7348,0x7348,0x7349,0x7349,0x7b49,0x7b49,0x7b69,0x7b69,0x7b68,0x7b68,0x7348,0x7349,0x7349,0x7b49,0x7b49,0x7349,0x7b49,0x7349,0x7328,0x7308,0x7309,0x7309,0x7309,0x7b29,0x7b4a,0x838a,0x7b6a,0x7b6a,0x838b,0x8bcd,0x8bed,0x940e,0x8c0e,0x8bed,0x940e,0x944f,0x942f,0x8c0e,0x8c0e,0x8bee,0x942f,0x9c6f,0x942f,0x8c0e,0x8c0d,0x93ee,0x9c4f,0x9c90,0x8c2e,0x8bed,0x8bed,0x8bee,0x8bee,0x8c2e,0x946f,0x8c4f,0x8c0f,0x83cd,0x83ad,0x8bad,0x8bad,0x83ce,0x83ae,0x83ce,0x83ee,0x83cd,0x83cd,0x8bee,0x8bee,0x942f,0x9470,0x9450,0x8c50,0x8c0f,0x8c0f,0x8c0f,0x8c0f,0x8c2f,0x840f,0x83ef,0x8bef,0x8bef,0x8bef,0x83ef,0x9cb1,0x9cf2,0x8c50,0x8c50,0x9471,0x9471,0x9471,0x8c71,0x8c71,0x9471,0x94b2,0x94b2,0x9cb2,0x9c92,0xad35,0xde9a,0xbdf8,0xbe18,0xb5b6,0xa534,0xa555,0xad75,0xa575,0xb5d7,0xad96,0xad76,0xbdf8,0xbe38,0xbe39,0xbe39,0x5aee,0xad77,0x73ad,0x52ab,0x4a6a,0x4a29,0x4209,0x4208,0x4208,0x41e8,0x4208,0x41e8,0x41e8,0x4208,0x41e8,0x41c7,0x41e7,0x41e8,0x41e8,0x41e8,0x39c7,0x39c7,0x39e8,0x39c7,0x39c7,0x39c8,0x41e8,0x39c7,0x39c7,0x4208,0x526a,0x5226,0x51c4,0x51a4,0x5184,0x5985,0x5985,0x5985,0x5984,0x5984,0x5964,0x5964,0x5964,0x5964,0x5944,0x5944,0x5965,0x5985,0x5985,0x5965,0x5985,0x5185,0x5185,0x4145,0x3145,0x3145,0x2945,0x3186,0x3186,0x3146,0x3167,0x3167,0x3187,0x3187,0x3188,0x3188,0x31a8,0x31a8,0x31a7,0x31a7,0x39c6,0x39e6,0x39e6,0x31e6,0x3a06,0x3a06,0x3a26,0x3a46,0x4246,0x4246,0x4266,0x4aa6,0x5ae7,0x6b4c,0x734e,0x62ec,0x6b4d,0x630c,0x734e,0x734d,0x734d,0x736e,0xadd9,0xa597,0x9d76,0x9d96,0xa596,0xa577,0x9d36,0x9d35,0x9d55,0xadb7,0xbe39,0xc69a,0xadf7,0xadd7,0xadb7,0xa556,0xadb7,0xa556,0x8cd4,0x8cd4,0x8cb3,0x8cd4,0x8cd4,0x8cf4,0x8cf4,0x9535,0x8493,0x84b3,0x8cb4,0x84b3,0x8cb4,0x8493,0x8452,0x8452,0x8cb4,0x8452,0x8452,0x8493,0x8473,0x84b3,0x84b3,0x8493,0x8472,0x7c52,0x8452,0x8472,0x9514,0xa575,0x9d55,0x8cb3,0x8452,0x8452,0x73f0,0x73f0,0x7c31,0x7410,0x7411,0x6bf0,0x7410,0x7c51,0x7c51,0x7c11,0x73f0,0x73f0,0x8451,0x8492,0x8472,0x73d0,0x73f0,0x7411,0x7410,0x73f0,0x73cf,0x7c30,0x73f0,0x73f0,0x7bf0,0x73d0,0x73af,0x73d0,0x73d0,0x6baf,0x638f,0x6bcf,0x6bcf,0x6b8e,0x636e,0x6bcf,0x636e,0x6baf,0x638e,0x6b8f,0x73d0,0x6b8f,0x7bf0,0x7c10,0x73f0,0x7bf0,0x73f0,0x636e,0x634e,0x634e,0x5b0d,0x634d,0x6b8e,0x5b4d,0x634d,0x5b2d,0x5b2d,0x5b0c,0x5b0c,0x5b0c,0x52cb, +0x5acb,0x5acb,0x5acb,0x5aec,0x630c,0x6b2c,0x630c,0x6b4c,0x6b4d,0x632c,0x6b6d,0x6b8d,0x634d,0x632c,0x632d,0x630c,0x5b0c,0x630c,0x5b2c,0x530c,0x5aec,0x5aeb,0x5aeb,0x5aec,0x62ec,0x630c,0x6b6e,0x6b4d,0x6b4d,0x83ef,0x94b2,0x9cd2,0xa513,0x9cf3,0x9cf3,0x94b2,0x9cf3,0xa534,0x9d34,0x94d2,0x94b2,0x94b2,0x9d13,0xa555,0x94f3,0x7c30,0x8c71,0x9492,0xa534,0xa555,0x94b2,0x8431,0x8431,0x8c72,0x94d3,0x9d14,0xa534,0xad75,0x9cf3,0x8c91,0x8451,0x7c31,0x7c11,0x7c31,0x73f0,0x8451,0x94f3,0x94f3,0x8cb2,0x8cb3,0x94d3,0x9d14,0xad75,0xb5d7,0x9d55,0x8c92,0x8471,0x7c31,0x7410,0x8471,0x8c72,0x8c72,0x8c92,0x8c93,0x8452,0x9d35,0xa556,0x94d4,0x94d4,0x94b3,0x8c93,0x8c93,0x8493,0x8c93,0x8cb3,0x8cd3,0x8cd4,0x8cd4,0x8cb4,0xb5b8,0xb5b7,0x9d15,0x9d15,0x9d56,0xa576,0xa577,0xa576,0xa556,0xa577,0xa577,0xbdf9,0xbe19,0xb5d8,0xb5f8,0xb619,0x52ad,0x9493,0x632c,0x528a,0x52aa,0x4a49,0x4208,0x4208,0x4208,0x4208,0x4208,0x4208,0x4208,0x4a49,0x4a49,0x41e7,0x41e7,0x41e7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39e7,0x39c7,0x39a7,0x3186,0x3186,0x3186,0x3986,0x3986,0x39a6,0x3986,0x3986,0x39a6,0x41e7,0x41e7,0x41e7,0x41a7,0x3986,0x39a6,0x41a7,0x41a7,0x41a6,0x39a6,0x39a6,0x41c7,0x41a7,0x41c7,0x39c7,0x39a7,0x4a08,0x526a,0x4a29,0x4a29,0x41e8,0x41e7,0x41e7,0x41e8,0x41e8,0x41e8,0x41e8,0x4a08,0x4a29,0x4a28,0x4a49,0x5269,0x4a48,0x4a49,0x4a28,0x4208,0x4a49,0x5aaa,0x4a28,0x4a28,0x5249,0x5269,0x62ec,0x6b2d,0x6b0c,0x736d,0x6b2d,0x6b0d,0x7bcf,0x8c51,0x7baf,0x9d57,0x9d57,0x9d56,0x9d56,0xa577,0xa576,0x9515,0x8cf4,0x9d35,0xa556,0xadd8,0xbe59,0xadb7,0xbe39,0xadd7,0xa556,0xadb7,0x9d36,0x8cb4,0x9d15,0x94f5,0x8cb4,0x8473,0x8cd4,0x8cb4,0x8493,0x8cb4,0x8cd4,0x8cf4,0x94f5,0x84b4,0x8493,0x8473,0x8473,0x8cd4,0x8473,0x9515,0x8cd4,0x8472,0x8493,0x8472,0x8493,0x8452,0x8452,0x7c52,0x7c51,0x94f4,0x9d35,0x94f4,0x8cb3,0x7c31,0x7c52,0x7410,0x73f0,0x7c11,0x7c10,0x7c31,0x7c31,0x7410,0x7c11,0x7411,0x73f0,0x73f0,0x7c31,0x8472,0x7c51,0x7c31,0x73f0,0x73f0,0x73f0,0x73d0,0x6bcf,0x6baf,0x6bcf,0x73f0,0x73f0,0x73cf,0x6baf,0x6baf,0x6baf,0x6bcf,0x6bcf,0x6bd0,0x638f,0x6baf,0x638e,0x73ef,0x7bd0,0x634e,0x634e,0x634d,0x638e,0x73cf,0x73cf,0x73af,0x6b8e,0x7bf0,0x73f0,0x6baf,0x636e,0x634e,0x636e,0x634e,0x73af,0x6b8e,0x632d,0x5b2d,0x5b0d,0x5b2d,0x634d,0x5b0c,0x5b0d,0x52ec, +0x5aeb,0x5b0b,0x5b0c,0x5b0c,0x634d,0x6b4d,0x630c,0x5aeb,0x632c,0x632c,0x6b6d,0x73ae,0x634c,0x636d,0x636d,0x5b2c,0x632c,0x5b0b,0x5aeb,0x632c,0x5b0b,0x5aeb,0x5aeb,0x5aec,0x5b0c,0x632c,0x6b6e,0x6b4d,0x7bae,0x8c51,0x9cb2,0x9492,0x8c51,0x9492,0x9cd3,0xa4d3,0x9cb2,0x8c30,0xa514,0xad55,0x9492,0xa514,0x94b3,0x94d2,0xb5d6,0x9d13,0x8c50,0xa513,0x94b2,0x9cb2,0xb5b6,0x9cf3,0x8451,0x9472,0x9cf3,0xa534,0x94b2,0xa554,0xbdf7,0x9d13,0x94d3,0xa555,0xad76,0x94f4,0x8c93,0x9492,0xad55,0xbdf7,0xb5d7,0x94b3,0xa555,0xbdb7,0xa513,0xad55,0xad96,0xa535,0xad96,0x94d3,0x8cb2,0xad95,0xad75,0xa554,0xbe38,0xb5f7,0xa555,0xad96,0xb5d7,0xb5d7,0xbdf8,0xb5b6,0xb5b7,0xbdf7,0xb5d7,0xb5f7,0xad76,0xb5f8,0xadd7,0x94f4,0x94d4,0x9d35,0xb5f8,0xa576,0x9d15,0x9d56,0xa577,0xadb8,0xad97,0xa597,0xadb7,0xadb8,0xb5f8,0xadd8,0xad97,0xadb8,0xb639,0x4a6b,0x4229,0x31a6,0x3186,0x31a6,0x3186,0x2965,0x2965,0x2965,0x3165,0x3165,0x3165,0x3186,0x31a6,0x31a6,0x2965,0x2965,0x2965,0x2945,0x2925,0x2945,0x2945,0x2925,0x2925,0x2945,0x2965,0x3185,0x2965,0x2945,0x2965,0x2965,0x2945,0x2924,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2945,0x2965,0x31a6,0x39a6,0x39a7,0x3186,0x3166,0x3166,0x3186,0x3166,0x3165,0x2945,0x3165,0x39a6,0x3166,0x3186,0x3186,0x3166,0x31a6,0x4208,0x39c7,0x39e7,0x39a6,0x3186,0x39a6,0x39a6,0x3186,0x39a6,0x39a6,0x39c7,0x41e8,0x41e8,0x4228,0x4228,0x4208,0x4228,0x41e7,0x39a7,0x4208,0x526a,0x41e8,0x4a08,0x4a29,0x4a49,0x528a,0x5acb,0x62eb,0x62eb,0x5acb,0x528a,0x630c,0x736e,0x6b6e,0x9d76,0xa597,0xa576,0x9d56,0xa576,0xadb7,0xa597,0x9535,0x9515,0x9515,0xad97,0xb5d8,0xa576,0xb5f8,0xb5d8,0xad97,0xad97,0x9d56,0x8cf5,0x8cd4,0x9d35,0x94f5,0x8cb4,0x8cb4,0x8493,0x8493,0x8493,0x8493,0x9515,0x9515,0x8493,0x8cd4,0x8cd4,0x8cb3,0x8493,0x8cd4,0x9515,0x8cd4,0x8cd4,0x8cd4,0x8c93,0x8cb3,0x8452,0x7c31,0x7c52,0x7c31,0x8493,0x8cb3,0x9514,0x8cd3,0x8cb3,0x8493,0x7c51,0x7c31,0x8452,0x8431,0x7c31,0x7c11,0x73f0,0x7bf1,0x73f0,0x7c11,0x7c31,0x7c11,0x7c52,0x7c11,0x73f0,0x73f0,0x73d0,0x73d0,0x6bd0,0x73f0,0x73f0,0x6bd0,0x6baf,0x6baf,0x73d0,0x73d0,0x73d0,0x73d0,0x6bcf,0x73f0,0x73f0,0x6baf,0x6baf,0x6bce,0x8471,0x73ef,0x6b8f,0x636e,0x6baf,0x6b8e,0x638e,0x634d,0x8c71,0x8431,0x73af,0x6b8e,0x6b8e,0x636d,0x6b8e,0x636d,0x636d,0x73af,0x6b8e,0x632d,0x5b0d,0x5b0c,0x5b4d,0x638e,0x5b4d,0x52ec,0x530c, +0x5aeb,0x5aeb,0x5aeb,0x62eb,0x632c,0x632c,0x630c,0x62ec,0x62ec,0x632d,0x6b4e,0x630c,0x632c,0x6b6d,0x634d,0x5aeb,0x5aec,0x5acb,0x5acb,0x5aec,0x5acb,0x5acb,0x5aec,0x630c,0x5b0d,0x5b0d,0x6b6e,0x6b6e,0x6b8f,0x8432,0x9cf3,0xa514,0x8c51,0x9cd2,0x9491,0xb595,0xa533,0x842f,0x9cb2,0xacf3,0x9cd3,0xc638,0x9cf3,0x8410,0xb575,0xad14,0x9cd3,0xc679,0x94f4,0x8410,0xad76,0xbe18,0x8cb2,0x8c92,0xb5d7,0xbe17,0x94b2,0x8c71,0xad54,0x94b2,0xa534,0x9492,0xb596,0xad75,0x94d3,0xbdd6,0xa4f3,0xa4f3,0xce59,0x9492,0xb5b7,0xc639,0xa555,0xad54,0xad55,0x9d14,0xc639,0xadb6,0xa535,0xbe18,0xb5b7,0xbdf8,0xb596,0xad76,0xbdf8,0xb596,0xbdf8,0xce79,0xce59,0xbdd7,0xce59,0xc659,0xbe18,0xce59,0xbdf8,0xdefb,0xceba,0xadb7,0xa596,0xd6da,0xdf1c,0xb5f8,0x9d36,0xa577,0xa597,0xadb8,0xad97,0xb619,0xadf8,0xb5f9,0xb5f8,0xadb7,0xa597,0xa5b7,0xb619,0x52aa,0x18c3,0x18a3,0x18a3,0x18a3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x10a2,0x10a2,0x18a2,0x18a2,0x18c3,0x18a3,0x18a3,0x18c3,0x2104,0x18c3,0x18a2,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x20e4,0x2104,0x20e3,0x18e3,0x18e4,0x2104,0x2104,0x2104,0x2124,0x2104,0x2104,0x2124,0x2104,0x2104,0x2104,0x2104,0x2104,0x20e4,0x20e4,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2104,0x2124,0x2104,0x2104,0x2124,0x2104,0x2124,0x2124,0x2124,0x2925,0x2124,0x2104,0x2924,0x2945,0x2925,0x2945,0x2965,0x3166,0x3186,0x3186,0x3186,0x31a6,0x3186,0x3165,0x3186,0x39a6,0x4229,0xa597,0xa597,0xa556,0xa556,0xa556,0xad96,0xadd8,0xadd8,0x9d76,0x9d76,0xa576,0xa556,0xa576,0xbe19,0xadb7,0xad97,0xa576,0x9d35,0x8cf4,0x8cd4,0x9d35,0x9515,0x94f4,0x8cb3,0x84b3,0x8cd4,0x8cd4,0x8cb3,0x84b3,0x84b3,0x8493,0x8cd4,0x8cf4,0x8cd4,0x8493,0x94f4,0x94f4,0x9514,0x8cf4,0x9515,0x94d4,0x8c93,0x8c93,0x8493,0x8452,0x7c32,0x8472,0x8472,0x8c93,0x8472,0x94d4,0x8c93,0x7411,0x7c11,0x7c31,0x7410,0x7c10,0x7411,0x73f1,0x73f1,0x7c11,0x7c51,0x7c51,0x7c11,0x7c32,0x73f1,0x73f0,0x7bd0,0x7bf0,0x7c11,0x7410,0x6bcf,0x7c11,0x7c31,0x73f0,0x7c11,0x7c11,0x73b0,0x73d0,0x73d0,0x73f0,0x7410,0x6b8f,0x73cf,0x73ce,0x8472,0x6baf,0x73ef,0x73d0,0x636e,0x73f0,0x73f0,0x73ef,0x6b8e,0x8430,0x7bf0,0x738f,0x6b8e,0x638e,0x6b8e,0x6bae,0x7c30,0x8c92,0x632d,0x73af,0x73af,0x5b0c,0x5b0c,0x5b0c,0x5b0c,0x5b2c,0x5b0c,0x52ec, +0x5acb,0x630c,0x632c,0x630c,0x632c,0x630c,0x5aeb,0x5b0b,0x5aeb,0x632c,0x6b4d,0x5b0c,0x632c,0x632d,0x632d,0x5b0c,0x5aeb,0x5aeb,0x5acb,0x5acb,0x5acb,0x5acb,0x5aec,0x630c,0x5b0c,0x630c,0x6b4d,0x6b4d,0x6b4e,0x7bb0,0x9452,0x9c92,0x9471,0xbdb6,0x8c70,0x9491,0x9cb2,0x8c30,0xad55,0x9472,0xb596,0xc638,0x8c91,0x840f,0xad34,0xa4f3,0xad96,0xc659,0x8451,0x8c11,0xa514,0xce9a,0x9cf3,0x9493,0x9cd3,0xa4f4,0x9cd3,0xad75,0xb596,0x94b2,0xb5b6,0x9472,0xad35,0x9cd3,0xbdf7,0xc6ba,0x9514,0x9452,0xc638,0xad96,0x9492,0xad35,0xb5d7,0xbe18,0xb5d7,0x9d14,0xa535,0xa514,0xbdd7,0xc659,0x9d14,0xc638,0xbdf8,0xb5b7,0xc639,0xb5b7,0xad56,0xdf1c,0xc639,0xa535,0xce3a,0xc639,0xbdf8,0xbdf8,0xbdf8,0xc659,0xdefb,0xc659,0xb5d7,0xce79,0xdefc,0xc67a,0x9d56,0x9d77,0xa577,0xa577,0xad97,0xadb8,0xb619,0xb619,0xb5f9,0xadb8,0xadb7,0xadb7,0xbe5a,0x5aeb,0x20e3,0x18e3,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x18a3,0x18a3,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18a2,0x18a2,0x18a3,0x18c3,0x10a2,0x18a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18a3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a3,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x20e3,0x20e4,0x18e3,0x18c3,0x18e3,0x3186,0xadd8,0xa597,0x9d56,0xa576,0xa556,0xa576,0xa5b7,0xa597,0xadb7,0xa596,0xa576,0x9d35,0x9d56,0xbdf9,0xad97,0x9d15,0x94f4,0x9d36,0x94d4,0x94f4,0x9d35,0x9514,0x94f4,0x8cd4,0x8cb3,0x8cd4,0x9d36,0x8cd4,0x8473,0x8493,0x8493,0x8cd4,0x94f4,0x94f4,0x94d3,0x9d14,0x9535,0x9d55,0x8cb3,0x9d14,0x94f4,0x8452,0x8cb4,0x8cd4,0x8473,0x7c52,0x8493,0x7c52,0x8cd4,0x8493,0x8cb3,0x9514,0x8cd3,0x8cd3,0x7c51,0x7c10,0x7c31,0x7c11,0x7411,0x7411,0x7c31,0x7c51,0x8452,0x7c31,0x7c31,0x7431,0x8452,0x7c11,0x7bf0,0x7bf0,0x7c10,0x6baf,0x6baf,0x6bd0,0x7c31,0x73d0,0x73af,0x73d0,0x73d0,0x73d0,0x6baf,0x6baf,0x6baf,0x6bae,0x6b8e,0x73af,0x6b8f,0x73af,0x7c11,0x73d0,0x6b6e,0x73cf,0x7c30,0x8c92,0x73cf,0x6b8e,0x73af,0x6baf,0x6bae,0x8451,0x6baf,0x73cf,0x8c72,0x73cf,0x632d,0x634d,0x636e,0x5b2d,0x5b2d,0x5b0c,0x5b2c,0x634d,0x5b0c, +0x5aeb,0x5b0b,0x630c,0x630c,0x632c,0x634d,0x630c,0x6b4d,0x6b4d,0x6b6d,0x738e,0x6b6d,0x630c,0x630c,0x634d,0x632d,0x630c,0x5aeb,0x5aeb,0x5acb,0x52cb,0x52cb,0x5acb,0x5aec,0x5b0c,0x634d,0x6b6e,0x6b6e,0x6b6e,0x7bd0,0x8c52,0x8c51,0xb596,0xb5b6,0x840f,0x9471,0x9cb2,0x83ef,0xad34,0x8c51,0xbdd6,0xc638,0x8c71,0x840f,0xa514,0x9c92,0xb5b7,0xc679,0x8c92,0x8c51,0x9cf4,0xc679,0x8cb2,0x9492,0xa514,0xad55,0xad96,0xad96,0xa514,0x94b2,0x9cd3,0x9472,0xc5f8,0x9492,0xce5a,0xbe59,0x8493,0x8c32,0xbdb7,0xc659,0xa535,0x9cf4,0x9cf3,0x9d14,0xbe59,0xad96,0x94d3,0xa515,0xd69a,0xbdf8,0xa535,0xa534,0xad96,0xbdf7,0xce7a,0xb5d7,0xa534,0xe77d,0xc659,0x9d15,0xc639,0xc638,0xc618,0xc639,0xbdf8,0xbdd7,0xce7a,0xce39,0xc5f7,0xbdd7,0xdedb,0xc67a,0x9d76,0xa577,0x9d56,0xa577,0xb5f8,0xb619,0xb639,0xadf9,0xa5b8,0xa5b8,0xadb8,0xadb8,0xb619,0x5aab,0x20e3,0x2124,0x31a7,0x2944,0x18c2,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1061,0x0861,0x0861,0x0861,0x0861,0x1081,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1082,0x1082,0x1082,0x0861,0x1082,0x1061,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18a2,0x18a2,0x10a2,0x10a2,0x18c3,0x3186,0xa597,0xadb7,0xa577,0xadb7,0xa5b7,0xa576,0xadb7,0xadb7,0xa5b7,0xadd8,0xa576,0x94f5,0xa556,0xb5f8,0x94f5,0x94f4,0x94f4,0x94f4,0x94f4,0x94f4,0x9535,0x8cd4,0x9514,0x94f4,0x8493,0x8cd4,0x9535,0x84b4,0x84b4,0x8cb3,0x8472,0x8cb3,0x9d35,0x9d35,0x94f4,0x9514,0x9534,0x9515,0x8cb3,0x9d14,0x9d56,0x8452,0x8472,0x8493,0x7c72,0x7c72,0x7c72,0x7c51,0x8cb3,0x8cf4,0x8cd3,0x9d35,0x8cd4,0x8cb3,0x8493,0x7c11,0x7c32,0x73f0,0x73f0,0x7410,0x7410,0x7c31,0x8472,0x7c31,0x7c31,0x7411,0x73f0,0x6b8f,0x6baf,0x7c10,0x73cf,0x73cf,0x6baf,0x6bd0,0x7c31,0x7c11,0x73d0,0x73f0,0x6bd0,0x73f0,0x6baf,0x6baf,0x6b8e,0x8471,0x7c10,0x634e,0x6b8f,0x6b8f,0x73af,0x738f,0x8431,0x8c92,0x73cf,0x73cf,0x6bcf,0x6baf,0x6b8e,0x6b8e,0x73af,0x73ef,0x7c10,0x73af,0x6b4d,0x6b6d,0x636d,0x632d,0x634d,0x634d,0x5b0c,0x5b0c,0x5b2d,0x5b0c,0x52ec, +0x632c,0x630c,0x5acb,0x5aeb,0x5b0c,0x630c,0x632c,0x734d,0x738e,0x636d,0x6b6d,0x6b6e,0x5aeb,0x5aeb,0x630c,0x632c,0x634d,0x630c,0x5b0b,0x5aeb,0x52cb,0x5aeb,0x5b0c,0x5aeb,0x5b0c,0x632c,0x6b8e,0x6b8e,0x6b8e,0x7bcf,0x8c31,0x9492,0xbdd7,0x9c92,0x8c30,0xbdd6,0xad75,0x8c51,0x9471,0x9cb2,0xad54,0xc638,0x9cf3,0x8c50,0xad54,0x9cd3,0xa535,0xce7a,0x9513,0x8451,0xa514,0xb5f8,0x8451,0x9492,0xbdd7,0xadb6,0x8492,0x94d3,0x9cf3,0xa534,0xbdd7,0x8c51,0xb596,0x9cd3,0xbdf7,0xc679,0x9d14,0x8c51,0xb5b6,0xad35,0xbe18,0xbe18,0xa555,0x8c51,0xbe38,0xb5f8,0x9d14,0xb5b7,0xce9a,0x9d14,0xbe17,0xbe18,0x9cf4,0x94d3,0xd6db,0xbe18,0x9cf4,0xdf1c,0xbdf8,0x9cf5,0xc67a,0xbe38,0xbdf7,0xbe18,0xb5b7,0xc618,0xc5f8,0xc639,0xd69a,0xbdd8,0xd6bb,0xbe5a,0xa5b7,0xa577,0xa557,0xa597,0xb5f8,0xadf8,0xb5f9,0xb5f8,0xadd8,0xadd9,0xadd8,0xadb8,0xadb8,0x526a,0x20e3,0x2945,0x4229,0x4a6a,0x39e7,0x2124,0x10a2,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0861,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x1062,0x1082,0x18c3,0x2124,0x3165,0x3186,0x3a08,0xad98,0xadb8,0xa556,0xa597,0xadb8,0xa597,0xadd8,0xb5f9,0xa597,0xa5b7,0xa576,0x94f4,0x9d36,0xadd7,0x94f4,0x8cd4,0x9515,0x94f4,0x8cf4,0x94f4,0x9515,0x94d4,0x94d4,0x94f4,0x8cf4,0x94f4,0x9d35,0x8cb3,0x8493,0x8493,0x8c93,0x8c93,0x8cb3,0x9514,0x8cd3,0x8cf3,0x9534,0x8cd3,0x8cd4,0x8cb3,0x9d15,0x8cb3,0x7c31,0x8493,0x8473,0x8493,0x8472,0x8472,0x8cb3,0x8cb3,0x94d3,0x94f4,0x8c93,0x7c31,0x7c52,0x7c51,0x7c31,0x73f0,0x73f0,0x7c31,0x7431,0x8472,0x7c52,0x6baf,0x7411,0x7411,0x73d0,0x6baf,0x7c10,0x8451,0x73cf,0x73d0,0x6bd0,0x6bf0,0x7411,0x7c31,0x7c11,0x73f0,0x6bf0,0x6bef,0x6bcf,0x6baf,0x6b6e,0x8c92,0x7c10,0x6b6e,0x73d0,0x73cf,0x6b8e,0x636e,0x7c10,0x9cf4,0x73f0,0x73cf,0x6b8e,0x6b8e,0x73ae,0x73cf,0x73cf,0x6b6d,0x73af,0x7bf0,0x6b6e,0x632d,0x636d,0x636d,0x632d,0x5b2c,0x632d,0x5b0c,0x5aec,0x5aec,0x5aec, +0x632c,0x5b0c,0x630c,0x630c,0x632c,0x630c,0x630c,0x630c,0x6b4d,0x632c,0x736e,0x73af,0x630c,0x62eb,0x632c,0x738e,0x738e,0x634d,0x632c,0x5b0c,0x5aeb,0x5b0c,0x5b0c,0x630c,0x634c,0x6b6d,0x738e,0x7bcf,0x7bcf,0x8410,0x8431,0xa535,0xad96,0x8c71,0x8c71,0xa513,0x9cf2,0x8c50,0xad75,0xa534,0x9471,0xb575,0x9d13,0x94b2,0xad95,0x8c92,0x9493,0xb576,0x9d34,0x94d3,0xb5f8,0x9d56,0x8cb3,0x9492,0xb5d7,0x9d15,0x73f1,0x94b3,0x94b3,0xad96,0xb5b7,0x8452,0xad76,0xad55,0x9492,0xb596,0xa534,0xa534,0xbe18,0x94b3,0xa555,0xad75,0x9cf3,0xa535,0xb5d7,0x9d35,0x94d4,0xb5b7,0xbe39,0x8cd4,0xadb7,0xbdf7,0xb597,0xb597,0xce9a,0xadb7,0xa535,0xd6dc,0xb5d8,0xa556,0xce9b,0xc639,0xbe18,0xbdf7,0xbdf8,0xdedb,0xbdd8,0xce9a,0xd6db,0xbdf8,0xd6fc,0xbe59,0xa596,0xa556,0xa557,0xa597,0xa597,0xb5f8,0xb5d8,0xa577,0xb5d8,0xb5f9,0xb5f9,0xadd8,0xb5f9,0x4229,0x2104,0x2945,0x422a,0x632d,0x634d,0x5aeb,0x41e7,0x20e3,0x18e3,0x18c3,0x18a3,0x10a2,0x18a2,0x10c2,0x18a3,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x1061,0x1081,0x1081,0x0861,0x1082,0x0841,0x0020,0x0020,0x0841,0x0020,0x0841,0x0841,0x0841,0x0841,0x0020,0x0841,0x0861,0x1081,0x1082,0x1082,0x1061,0x0861,0x1081,0x0861,0x0861,0x1081,0x1081,0x1081,0x0881,0x1081,0x1082,0x1082,0x1081,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x1082,0x1062,0x1061,0x1082,0x1082,0x1082,0x1081,0x1081,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2964,0x4a27,0x5aa9,0x5289,0x4229,0x4a6a,0xad98,0xa597,0xadb7,0x9d56,0xa577,0xa597,0xad97,0xadb8,0xad97,0x9d56,0x9d56,0xa576,0x9d55,0xa576,0x94f4,0x94f4,0x94f4,0x94f4,0x9515,0x94f4,0x9d35,0x9d56,0x8cd4,0x8cb3,0x8cb3,0x8cb3,0x9d15,0x8cb3,0x8cd4,0x8cb3,0x8cb3,0x94f4,0x8cb3,0x8cd3,0x84b3,0x8cb3,0x8cd3,0x94f4,0x94f4,0x94d3,0x8cb3,0x8493,0x7c52,0x8473,0x84b3,0x8cb3,0x7c52,0x8493,0x7c52,0x8cb3,0x8cb3,0x8c93,0x94d4,0x7c31,0x7c52,0x7c31,0x7c11,0x7c11,0x7c11,0x7c11,0x7c31,0x94f4,0x7c31,0x73f0,0x73d0,0x7410,0x73f0,0x73cf,0x7410,0x7c10,0x73d0,0x73d0,0x73f0,0x73f0,0x73f0,0x7bf0,0x73d0,0x73f0,0x73f0,0x6bcf,0x73f0,0x6baf,0x73cf,0x6baf,0x638e,0x6baf,0x636e,0x73d0,0x6b8e,0x6baf,0x6baf,0x6b6f,0x73d0,0x73cf,0x73cf,0x6b8e,0x6bae,0x73cf,0x73cf,0x73af,0x73af,0x73af,0x73cf,0x6b6e,0x634d,0x636e,0x6b8e,0x634d,0x632d,0x5b2d,0x52ec,0x52ec,0x52ec, +0x632c,0x630c,0x630c,0x632c,0x632c,0x630c,0x632c,0x632c,0x6b4d,0x6b6d,0x8410,0x73ae,0x630c,0x6b2d,0x6b4d,0x6b6e,0x73af,0x736e,0x6b6e,0x6b4d,0x6b6d,0x630c,0x5b0c,0x632c,0x6b6d,0x6b6e,0x738e,0x73af,0x7c10,0x8410,0x8c51,0xa535,0x94b3,0x8451,0x8c71,0x8c71,0x9cf2,0xa554,0x9cf3,0x8471,0x8431,0x8c71,0x9d14,0xa535,0x8c72,0x73d0,0x8411,0x8431,0x9d35,0xa576,0x94f4,0x7c52,0x7bf0,0x8431,0x9d14,0x8452,0x73d0,0x7c11,0x8431,0x94b3,0x8c92,0x8452,0x8c93,0x8c72,0x7bf0,0x8432,0x9cf4,0x9d35,0x8c93,0x8452,0x8452,0x8c93,0xa536,0x9d36,0x8c93,0x7c11,0x8431,0xa535,0x94d4,0x8452,0x8c73,0x9493,0xa556,0xad96,0x9d35,0x8cd4,0x94d4,0xad97,0x9cf5,0x9cf4,0xad76,0xb5b7,0xb5b7,0xb5b7,0xad76,0xbe19,0xa556,0xad97,0xb5f8,0x9d35,0xb619,0xad97,0xa556,0xa556,0x9d56,0xadb7,0xadb7,0xb5f9,0xadd8,0xa597,0xadb7,0xb619,0xb5f8,0xb619,0xbe3a,0x4208,0x2104,0x2125,0x422a,0x6b6f,0x73d0,0x8452,0x7bae,0x3185,0x3165,0x2124,0x2104,0x2104,0x2104,0x2124,0x2925,0x2104,0x18e3,0x20e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c2,0x18a2,0x2104,0x0841,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x18c2,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x20e3,0x18e3,0x2104,0x18e3,0x18c3,0x18a2,0x10a2,0x0861,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x18e3,0x18e3,0x20e3,0x20e4,0x20e3,0x2104,0x2104,0x2124,0x2944,0x2924,0x2945,0x2965,0x3165,0x3165,0x3185,0x2945,0x2965,0x5268,0x734c,0x8c4f,0x630c,0x4a4a,0x4a8b,0xa577,0xadd8,0xadb7,0xa597,0xa597,0xadb8,0xadb8,0xa557,0xa556,0x9d56,0x9d56,0xadb7,0xa576,0x9d15,0x94d4,0x94d4,0x94f4,0x9d15,0x9d15,0x8cd4,0x9d56,0x9d56,0x8cd4,0x8cb4,0x8cb3,0x8cb3,0x94d4,0x8cb3,0x84b3,0x94f4,0x8cd4,0x94f4,0x94f4,0x8cb3,0x8c93,0x8c73,0x9d15,0x94d4,0x8c93,0x8cb3,0x8472,0x8473,0x8493,0x8cd3,0x8cd3,0x8493,0x7c11,0x8452,0x7c52,0x8c93,0x9d15,0x8c93,0x7c52,0x7c31,0x7c52,0x7411,0x73d0,0x7c11,0x73f0,0x7c31,0x7c31,0x94d4,0x7c31,0x73b0,0x73b0,0x73d0,0x73f0,0x73d0,0x73d0,0x7c10,0x6baf,0x73d0,0x73d0,0x6bd0,0x6bd0,0x6baf,0x73af,0x73af,0x73d0,0x73d0,0x6baf,0x6baf,0x6bcf,0x7411,0x6b8f,0x636e,0x634d,0x7c31,0x6b8e,0x6baf,0x6b8f,0x6b6e,0x6baf,0x73cf,0x6baf,0x6bcf,0x6baf,0x6bae,0x73af,0x73af,0x73cf,0x73af,0x6bae,0x638e,0x6b8e,0x636e,0x636e,0x634e,0x634e,0x5b2d,0x52ec,0x52cb,0x52cb, +0x5aeb,0x630c,0x630c,0x630c,0x632c,0x6b4d,0x6b4d,0x6b4d,0x6b4d,0x73cf,0x7c30,0x634c,0x5aeb,0x630c,0x632d,0x630d,0x6b4e,0x6b8e,0x6b6e,0x73ae,0x73ae,0x6b6d,0x636d,0x636d,0x634d,0x632d,0x6b6e,0x73ae,0x73cf,0x73cf,0x7c10,0x8451,0x7bf0,0x73cf,0x7bd0,0x8431,0x8451,0x73f0,0x634e,0x6b6e,0x6b6f,0x738f,0x7bd0,0x738f,0x6b6e,0x738f,0x738f,0x73d0,0x7c11,0x73f1,0x6bb0,0x73f0,0x73f0,0x73f0,0x7c10,0x7c10,0x73f0,0x73f0,0x7bf0,0x7bf0,0x7bd0,0x7c11,0x7c11,0x73f0,0x73f0,0x7c11,0x7c32,0x7c11,0x7c11,0x73f1,0x7c11,0x8452,0x7c11,0x7411,0x7c52,0x7c11,0x8451,0x8472,0x8472,0x8472,0x8472,0x8472,0x8473,0x8c73,0x8cb3,0x94f4,0x8cf4,0x8493,0x8493,0x8cb4,0x8c93,0x8452,0x8cb4,0x94f5,0x8c93,0x8cb4,0x94f5,0x8cb4,0x8cb4,0x94d4,0x9515,0x9515,0x94f5,0x9d36,0xa597,0xadb7,0xa597,0xadd8,0xadb8,0xa577,0xadb8,0xadd8,0xadf8,0xb619,0xbe39,0x4208,0x2124,0x2945,0x424a,0x6b90,0x73f1,0x9cf6,0x9cd2,0x39a6,0x2945,0x2104,0x20e4,0x20e3,0x18e3,0x2104,0x2124,0x20e4,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a2,0x18c3,0x2104,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x20e3,0x20e3,0x20e3,0x20e4,0x2104,0x20e3,0x18e3,0x18c3,0x18c3,0x1082,0x0841,0x0841,0x0861,0x0861,0x0861,0x0841,0x0861,0x0841,0x0841,0x0861,0x18e3,0x2104,0x2104,0x2104,0x2104,0x2124,0x2924,0x2945,0x3165,0x3165,0x2965,0x3185,0x3185,0x3186,0x3186,0x3165,0x31a6,0x4a28,0x83ef,0xb595,0x6b2d,0x4a6a,0x52ab,0xadd8,0xb619,0xadd8,0xadd8,0xa597,0x9d77,0xa556,0xa597,0xa576,0x9d35,0x9d15,0x9d15,0x9d36,0x9d15,0x8cd4,0x8cf4,0x94d4,0x94f4,0x9d15,0x94d4,0x8cb4,0x9515,0x94d4,0x8cb4,0x8c93,0x8cd4,0x8cb4,0x84b3,0x8493,0x8493,0x94d4,0x94f4,0x94f4,0x94f4,0x8c93,0x8c93,0x8493,0x7c52,0x8452,0x8472,0x8473,0x84b3,0x7c52,0x94f4,0x8472,0x8452,0x7c11,0x8473,0x8452,0x7c31,0x9515,0x8cd4,0x7411,0x73f0,0x7431,0x7c52,0x7c11,0x73f1,0x7411,0x7c31,0x7411,0x8492,0x7c11,0x8472,0x73f0,0x73f0,0x73f0,0x7c11,0x7c31,0x7c31,0x7410,0x73f0,0x73f0,0x73f0,0x73f0,0x6baf,0x7c10,0x73d0,0x6baf,0x73d0,0x7c11,0x73f0,0x73d0,0x73f0,0x6b8f,0x634d,0x638e,0x9d34,0x7c30,0x6b8f,0x6b8f,0x6b8f,0x6b6e,0x73cf,0x73f0,0x6bae,0x6bae,0x73af,0x73cf,0x73cf,0x6baf,0x73cf,0x6bcf,0x638e,0x636e,0x6b8e,0x632d,0x630d,0x6b6e,0x5b0c,0x52eb,0x52eb,0x52eb, +0x5aeb,0x630c,0x630c,0x62ec,0x6b0d,0x6b4d,0x6b4e,0x6b4d,0x6b6d,0x7bef,0x6b8e,0x5b2c,0x5b0c,0x5aeb,0x5acb,0x5acc,0x630d,0x6b6d,0x6b8e,0x73ae,0x73cf,0x73cf,0x6b8e,0x6b4d,0x6b6d,0x738e,0x73ae,0x738e,0x73af,0x73cf,0x73cf,0x73cf,0x73cf,0x6baf,0x6baf,0x73d0,0x6bcf,0x6b8e,0x6b6e,0x634d,0x634e,0x6b6e,0x6b8e,0x6b8e,0x6b8e,0x73ae,0x73af,0x73af,0x738f,0x6baf,0x6bb0,0x73f0,0x7430,0x73f0,0x7bf0,0x8451,0x7c31,0x7c10,0x7bf0,0x7c10,0x7c10,0x7c10,0x7c31,0x7c11,0x7c11,0x7c31,0x7c31,0x8452,0x7c51,0x7411,0x7c31,0x7c11,0x7c31,0x7c52,0x7c52,0x8452,0x8472,0x8c93,0x8c93,0x8472,0x8472,0x8472,0x8472,0x8c93,0x94d4,0x94d4,0x84b3,0x8472,0x8473,0x8493,0x8472,0x8473,0x8cb3,0x8cd4,0x84b3,0x8cd4,0x94f5,0x8cd4,0x8cb4,0x9515,0x9515,0x94d4,0x94f5,0xa556,0xad97,0x9d56,0xa597,0xa577,0x9d36,0xa556,0xadb7,0xadd8,0xb619,0xbe39,0xc69b,0x4208,0x2104,0x2946,0x4a6b,0x6b6f,0x7c11,0xad78,0xa534,0x3185,0x20e4,0x18c3,0x18c3,0x18a3,0x18a2,0x18c3,0x18c3,0x18c3,0x18a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x18a2,0x18a2,0x10a2,0x18a2,0x18a2,0x10a2,0x18a3,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x20e3,0x2104,0x2104,0x2104,0x2124,0x18c3,0x20e3,0x18e3,0x20e4,0x2924,0x39a6,0x9cd3,0xce39,0x632d,0x4a6b,0x52cc,0xadd8,0xb5f9,0xadb7,0xb5f8,0xa597,0x9d76,0xa576,0x9d56,0x9d56,0x9d15,0x9d36,0x9d36,0x9d15,0xa576,0x94f4,0x9535,0x9535,0x94f4,0x94f5,0x94f5,0x8c93,0x8493,0x8cb4,0x8cd4,0x8cb3,0x8cd4,0x94f4,0x94f4,0x8493,0x8452,0x8473,0x8473,0x8493,0x8cb3,0x8cb3,0x8452,0x8492,0x8472,0x8c92,0x8cd3,0x8cb3,0x8493,0x7c32,0x8cb3,0xa556,0x8431,0x7c11,0x8c93,0x8472,0x7c11,0x7c32,0x8472,0x7c31,0x7c11,0x7c52,0x7c72,0x7c52,0x73f0,0x7411,0x73f0,0x7410,0x8472,0x7c52,0x8cd4,0x6bb0,0x73f0,0x6bcf,0x7410,0x7c31,0x7411,0x73f0,0x7410,0x73f0,0x73f0,0x73cf,0x73f0,0x7c51,0x73f0,0x6baf,0x73d0,0x7c31,0x73f0,0x6b8f,0x6b8f,0x6b8f,0x6bae,0x6bae,0x6baf,0x6b8e,0x73d0,0x6baf,0x6bcf,0x6b8f,0x73cf,0x73d0,0x73f0,0x636d,0x6b8e,0x6baf,0x6bcf,0x6bcf,0x73cf,0x73cf,0x6b8e,0x6b6e,0x634d,0x632d,0x634d,0x632d,0x5b0c,0x52ec,0x52ec,0x52ec, +0x630c,0x5aeb,0x62ec,0x630c,0x6b4d,0x736e,0x6b4d,0x634d,0x7bef,0x6b8e,0x5b0c,0x632d,0x632d,0x5aec,0x5aeb,0x62ec,0x6b6e,0x6b4d,0x6b6d,0x738e,0x6b8e,0x6b8e,0x6b8e,0x6b6d,0x6b6e,0x738e,0x73af,0x73cf,0x73af,0x73cf,0x73cf,0x73af,0x73cf,0x6baf,0x6b8e,0x6bae,0x73cf,0x6baf,0x6b6e,0x6b6e,0x634e,0x6b6e,0x6b6e,0x6b8e,0x6b8e,0x73af,0x73af,0x6b8f,0x73af,0x73af,0x73af,0x7bf0,0x8471,0x7c31,0x7c10,0x7c11,0x7c10,0x73f0,0x73f0,0x7bf0,0x8431,0x8472,0x7c31,0x7c31,0x8432,0x8452,0x7c31,0x7c31,0x7c31,0x8472,0x8452,0x7c31,0x7c52,0x7c52,0x7c31,0x7c31,0x8472,0x8493,0x8c93,0x8452,0x8452,0x8472,0x8472,0x8c93,0x94b4,0x94d4,0x8cd4,0x84b3,0x8472,0x7c72,0x8472,0x94d4,0x8cb3,0x8cd4,0x8cf4,0x8cd4,0x8cb3,0x8cd4,0x8cd4,0x94f4,0x94f4,0x94d4,0x9d15,0x9d56,0xadb8,0xa597,0xa556,0x9d36,0xa557,0xadb8,0xadd8,0xb5f8,0xbe3a,0xce9b,0xbe3a,0x39e8,0x2104,0x2945,0x4a6b,0x634f,0x8433,0xbdfa,0xad54,0x3185,0x20e3,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1062,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x18c3,0x18c2,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x18a3,0x2104,0x3186,0xad75,0xce59,0x62ed,0x4a8b,0x5aec,0xadb8,0xadb8,0xb5f9,0xadd8,0xa597,0x9d56,0xa577,0x9d36,0x9d36,0xa556,0xa556,0x9d15,0x9515,0x9d35,0x9d35,0x9535,0x9d36,0x9d16,0x94d5,0x94d4,0x94d4,0x8cb4,0x8cb3,0x8cb4,0x8493,0x8cb3,0x8cf4,0x94f4,0x94d4,0x8c93,0x73f1,0x7c32,0x8cb3,0x8493,0x8493,0x8493,0x8493,0x8472,0x8473,0x8472,0x8492,0x7c52,0x8472,0x8452,0x9d35,0x94f4,0x7c11,0x7c31,0x7c52,0x7c31,0x7c31,0x7c31,0x7c11,0x8472,0x7c31,0x7411,0x7c31,0x73f0,0x73f0,0x7c31,0x7c11,0x8c72,0x8c93,0x8452,0x6bb0,0x6bb0,0x6baf,0x73f0,0x7410,0x73f0,0x6baf,0x73f0,0x73cf,0x7c31,0x73f0,0x6baf,0x7411,0x7410,0x73cf,0x73f0,0x73f0,0x73af,0x6b8f,0x6b8f,0x6b8e,0x6bcf,0x6bcf,0x73f0,0x6bcf,0x73f0,0x6bd0,0x73d0,0x6baf,0x6baf,0x73f0,0x73f0,0x6b8e,0x634d,0x73cf,0x6baf,0x6bcf,0x6baf,0x73f0,0x73af,0x6b4e,0x634d,0x636e,0x634d,0x634d,0x5b0d,0x5aec,0x52ec,0x52cb, +0x5b0c,0x630c,0x632c,0x6b4d,0x6b6d,0x6b6d,0x6b6d,0x7bef,0x7bcf,0x632d,0x630c,0x632d,0x632c,0x630c,0x632c,0x6b6d,0x7c10,0x738e,0x632d,0x6b4d,0x6b4d,0x6b6d,0x6b8e,0x6b6d,0x6b4e,0x738e,0x7bef,0x73cf,0x6bae,0x73ae,0x73ae,0x73af,0x73cf,0x73cf,0x6b6d,0x6b8e,0x6b8f,0x6baf,0x6b8e,0x6b6e,0x636e,0x636e,0x636e,0x636e,0x6bae,0x73af,0x6b6e,0x6baf,0x73cf,0x73af,0x738e,0x7bcf,0x8411,0x7c10,0x7c11,0x7c11,0x7c11,0x7c31,0x7c10,0x7bf0,0x7c31,0x8432,0x7c11,0x8431,0x8432,0x8452,0x7c31,0x7c11,0x8452,0x8452,0x8452,0x8452,0x8473,0x8493,0x8493,0x8493,0x8452,0x8493,0x8cb3,0x8493,0x8472,0x8492,0x8c93,0x8cb3,0x8cb4,0x9cd4,0x9515,0x8cb3,0x8493,0x8472,0x8cb3,0x94f4,0x8cd4,0x94d4,0x94f4,0x8cd4,0x8cd4,0x9d35,0x9515,0x8cd4,0x9515,0x94f5,0x9d15,0xa576,0xadb7,0xad97,0xa556,0x9d36,0xad98,0xadd8,0xb5f8,0xb5f9,0xcebb,0xbe39,0xadb8,0x39c7,0x2124,0x2105,0x4a6b,0x6b70,0x8c94,0xd6bc,0xad34,0x2965,0x2103,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1062,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a3,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x3186,0xb596,0xc5f8,0x5aac,0x52cc,0x5b2d,0xadb7,0xadd8,0xadd8,0xadb7,0xa576,0xa597,0xadd8,0xa576,0xa576,0xa576,0x9d35,0x9d15,0x94f4,0x9d35,0xa576,0xa556,0xa577,0xa557,0x94f5,0x94f4,0x94d4,0x94f5,0x8cb4,0x8473,0x8473,0x8473,0x8493,0x8cb4,0x94d4,0x8c93,0x7c11,0x7c52,0x8cd4,0x8cb3,0x7c52,0x8493,0x8cd4,0x8473,0x7bf1,0x8452,0x7c32,0x7c72,0x7c72,0x8472,0x7c52,0x8c93,0x7c31,0x7411,0x7411,0x7c31,0x7411,0x7411,0x7411,0x8472,0x7c31,0x73f0,0x73f0,0x6bd0,0x73f0,0x7c31,0x7410,0x8451,0x8cb3,0x73d0,0x73f0,0x73d0,0x6baf,0x73f0,0x7410,0x73d0,0x6baf,0x6bd0,0x6baf,0x7411,0x73f1,0x6baf,0x73d0,0x7411,0x6bd0,0x6bcf,0x73d0,0x6baf,0x6baf,0x6baf,0x6baf,0x6b8e,0x73f0,0x6bf0,0x6bcf,0x6bcf,0x73f0,0x73d0,0x6baf,0x636e,0x6b8f,0x6baf,0x636e,0x5b0c,0x6bcf,0x73cf,0x6b8e,0x6bae,0x73cf,0x73cf,0x636e,0x634d,0x634d,0x5b0c,0x5b0c,0x52cb,0x52cc,0x52ab,0x5aec, +0x630c,0x632c,0x6b4d,0x6b4d,0x632c,0x6b8d,0x7c0f,0x7bef,0x6b4d,0x5b0c,0x632c,0x630c,0x632c,0x632d,0x632d,0x6b4e,0x8430,0x73ae,0x5aec,0x632c,0x632d,0x6b4d,0x6b6e,0x6b4d,0x6b4d,0x6b6d,0x7bf0,0x7bf0,0x73af,0x73cf,0x73af,0x738e,0x73cf,0x73af,0x636d,0x6b6e,0x6b8f,0x73af,0x638e,0x636d,0x634d,0x6b6d,0x6b8e,0x6b6e,0x6bae,0x73cf,0x6baf,0x73cf,0x73cf,0x73af,0x73af,0x73cf,0x73cf,0x8431,0x8451,0x7c31,0x7c51,0x7c51,0x7c10,0x8411,0x73b0,0x73d0,0x7c31,0x7c11,0x7c31,0x7c32,0x7c31,0x7c32,0x8493,0x8452,0x8472,0x8c73,0x8472,0x8c93,0x8c93,0x8cb3,0x8473,0x8cb3,0x8cb3,0x8cb3,0x8473,0x94d4,0x94f4,0x8cd3,0x94f4,0x94f4,0x94f4,0x8cb3,0x8493,0x8cd4,0x9535,0x9d76,0x9515,0x8cb4,0x94f5,0x94f4,0x94f4,0x9d76,0x9d15,0x8cd4,0x9d36,0x94f5,0x9d15,0xadb7,0xa576,0xadb7,0xad97,0xa597,0xa597,0xb5d8,0xadb7,0xc67a,0xbe5a,0xadd8,0xb5f9,0x39e8,0x2924,0x2104,0x528c,0x6b90,0x9d16,0xef7e,0xa534,0x3165,0x2103,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x3186,0xad55,0xbdb7,0x5acc,0x5b0d,0x632d,0xa597,0xa5b8,0xadb8,0xadd8,0xa5b7,0xadd8,0xa597,0x9d76,0xadb8,0x9d56,0x9d36,0xa576,0x9d35,0x9d55,0xa576,0xad97,0xb5d8,0xa5b7,0x9d56,0x8cf4,0x8cb4,0x8cb4,0x8cb4,0x8493,0x7c52,0x8493,0x8cb3,0x8492,0x8c93,0x8c93,0x8473,0x8cb4,0x8cd4,0x8493,0x7c52,0x7c52,0x8492,0x8cb3,0x8c92,0x8c92,0x7c72,0x7c52,0x7c52,0x7c31,0x7c11,0x7412,0x7411,0x7411,0x73f0,0x7411,0x73f1,0x6bd0,0x7411,0x7c11,0x73d0,0x73f0,0x7410,0x73f0,0x7410,0x7410,0x7410,0x7c31,0x7c51,0x6baf,0x7410,0x7410,0x73d0,0x73f0,0x73d0,0x73f0,0x73cf,0x73f0,0x7411,0x7c31,0x7c31,0x7411,0x7c11,0x7411,0x73f0,0x73d0,0x7c10,0x73f0,0x73d0,0x7c10,0x73f0,0x73d0,0x73d0,0x73f0,0x6bd0,0x73d0,0x73f1,0x7c11,0x73f0,0x6bcf,0x6baf,0x638f,0x6baf,0x6bcf,0x6baf,0x7c10,0x73cf,0x73ef,0x6baf,0x73cf,0x6baf,0x6b8f,0x6b8e,0x634e,0x632d,0x5b0c,0x5aec,0x5b0c,0x632d, +0x632c,0x632c,0x632c,0x630c,0x6b4d,0x73cf,0x73cf,0x6b6d,0x632c,0x5b0c,0x632c,0x5b0c,0x632c,0x630c,0x632d,0x6b4d,0x8c51,0x738e,0x630c,0x630c,0x630c,0x632d,0x632c,0x632c,0x6b4d,0x738e,0x73cf,0x73cf,0x73af,0x73af,0x736e,0x738f,0x73af,0x6b8e,0x6b6e,0x6b6e,0x6b6e,0x6b6e,0x6b8e,0x6b6e,0x632d,0x6b6e,0x6b6e,0x6b6e,0x73ce,0x73cf,0x6bcf,0x6bcf,0x6baf,0x6baf,0x73cf,0x73af,0x73d0,0x7c51,0x7c51,0x7410,0x7c31,0x7410,0x7c10,0x7bf0,0xa534,0xb5b6,0x8471,0x73f0,0x8c93,0x94f4,0x8472,0x7c72,0x8492,0x7c72,0x8493,0x8cd4,0x8493,0x8492,0x8cb3,0x8cb3,0x8c73,0x8cb3,0x94d4,0x8cb3,0x8c73,0x9cf5,0x9d15,0x8cb3,0x9514,0x9d15,0x9514,0xa576,0x9d55,0xa576,0xadb7,0x9d35,0x8c93,0x8cb3,0x94d4,0x94f4,0x8cf4,0x9515,0x8cd4,0x9d15,0x9515,0x8cd4,0x9d15,0xa5b7,0xa596,0xadd7,0xa597,0xadb7,0xadd8,0xadd8,0xbe5a,0xc67a,0xadd8,0xb5f9,0xb61a,0x39c8,0x2924,0x2104,0x52ac,0x73b1,0xad78,0xffdf,0xa513,0x3165,0x2103,0x18c2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1062,0x1062,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18e3,0x39a6,0xa514,0xb576,0x630d,0x634e,0x6b6e,0xadd8,0xb5f8,0xb619,0xadd8,0xb5f8,0xadd7,0xadd8,0xadd8,0xa5b7,0xadb7,0xa597,0xadb7,0xadd7,0xad97,0xb5d7,0xadb7,0xadb8,0xad97,0xadb7,0x9515,0x9d35,0x9515,0x9515,0x9515,0x9515,0x9515,0x8cd4,0x8cf4,0x9515,0x8493,0x8c93,0x94f4,0x9d15,0x94d4,0x8cb4,0x8cb4,0x94f5,0x94f5,0x9515,0x8cb4,0x8cd4,0x8473,0x8452,0x8c93,0x8452,0x7c32,0x8451,0x8451,0x7c31,0x7c31,0x8451,0x8452,0x8451,0x8451,0x8431,0x7c31,0x8451,0x8472,0x8451,0x7bf0,0x7c11,0x73f0,0x7c31,0x7c11,0x73f0,0x73d0,0x73d0,0x7bf0,0x8411,0x7bf0,0x73cf,0x73cf,0x73cf,0x7c11,0x7bf0,0x6baf,0x73d0,0x6b8f,0x6b8e,0x738e,0x738e,0x6b6e,0x6b6f,0x6b8f,0x6b8e,0x6b8f,0x636e,0x634e,0x634e,0x634d,0x634d,0x634d,0x634d,0x5b2d,0x5b2d,0x5aed,0x5b0d,0x5b0d,0x5b0c,0x5b0c,0x5b0c,0x5b0c,0x5aec,0x5acc,0x52ab,0x52ab,0x52ab,0x52ab,0x52ab,0x528a,0x4a8a,0x4a8a,0x4a8a, +0x6b6e,0x6b6d,0x634d,0x6b2d,0x6b6e,0x6b6e,0x6b6d,0x6b8d,0x6b6d,0x634d,0x632d,0x634d,0x632d,0x6b4d,0x6b4d,0x6b6e,0x8431,0x6b6e,0x5aec,0x630c,0x632c,0x634d,0x632c,0x632d,0x6b6e,0x6b6e,0x7bf0,0x73cf,0x6bae,0x73af,0x6b8e,0x6b8e,0x6b8e,0x636d,0x636e,0x6b6e,0x6b4e,0x6b6e,0x6b6e,0x6b6e,0x634d,0x6b6e,0x6b6e,0x73af,0x73cf,0x73ef,0x73cf,0x73cf,0x73cf,0x73cf,0x6b8e,0x73cf,0x7c11,0x7c31,0x7c31,0x7411,0x7c11,0x7c10,0x7c11,0x7bd0,0xad96,0xad75,0x8471,0x8cb3,0x8452,0x8452,0x7c31,0x7c52,0x8472,0x8473,0x8473,0x8493,0x8493,0x8452,0x8c93,0x8c73,0x8c72,0x8c93,0x8c73,0x8472,0x8452,0x8c73,0x8c73,0x8c93,0x94d4,0x94f4,0x9d35,0xa576,0x9d14,0x94d3,0x94f4,0x94d3,0x94f4,0x94f4,0x94f4,0x8cf4,0x8cd4,0x94f4,0x9d15,0x9cf5,0x94d4,0x94f5,0x9d15,0xa556,0x9d56,0xa576,0xad77,0xadb8,0xad97,0xb5b8,0xc63a,0xadb8,0xadb8,0xadd8,0xadb8,0x31a7,0x2124,0x18e4,0x52ac,0x7bf2,0xbdfa,0xffff,0x9cd2,0x3165,0x2103,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1081,0x1081,0x1082,0x1082,0x1082,0x1082,0x1062,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x2104,0x39e7,0x9492,0xa4d4,0x630d,0x6b8f,0x738f,0x8432,0x7bf1,0x8432,0x7bf1,0x7bf1,0x7bd1,0x73b0,0x73b0,0x6b6f,0x6b90,0x73b0,0x7390,0x73b0,0x738f,0x7370,0x7390,0x7370,0x634f,0x6b4e,0x6b6e,0x6b6e,0x634e,0x6b6f,0x634e,0x5b2e,0x5b2d,0x5b0d,0x632d,0x632d,0x5aed,0x5aed,0x5aec,0x5aed,0x52cc,0x52cc,0x52ac,0x5acd,0x5acd,0x4a8c,0x4aac,0x4a8b,0x4aac,0x52ac,0x52ac,0x4a8b,0x4a6b,0x424a,0x4a6a,0x424a,0x4229,0x4249,0x424a,0x4a6a,0x424a,0x424a,0x424a,0x4229,0x424a,0x4a2a,0x4a2a,0x4209,0x39c8,0x4229,0x4209,0x39c8,0x31a8,0x39c8,0x39c8,0x39c9,0x39c8,0x39c8,0x31a8,0x31a8,0x2967,0x39c8,0x39c8,0x31a7,0x39c8,0x3187,0x3187,0x3187,0x3187,0x3167,0x39a7,0x3166,0x31a7,0x2124,0x2986,0x2125,0x2945,0x2945,0x2925,0x2945,0x3187,0x2105,0x3167,0x2146,0x2125,0x2966,0x39c7,0x2966,0x18c3,0x3186,0x2946,0x31c7,0x2946,0x2125,0x2966,0x31a7,0x2945,0x31a6,0x39c7,0x3166, +0x4a6a,0x4a6a,0x4a4a,0x4a49,0x4a49,0x4249,0x4a4a,0x4a6a,0x4a6a,0x4a6a,0x4249,0x4a6a,0x4249,0x4249,0x528a,0x4a6a,0x4229,0x3a08,0x3a08,0x4229,0x4229,0x4249,0x4229,0x4a4a,0x4a4a,0x4a4a,0x4a8b,0x4a8a,0x4a6a,0x4a6a,0x4a4a,0x4229,0x4229,0x3a09,0x424a,0x4a4a,0x4a4a,0x424a,0x424a,0x4a6b,0x4a6a,0x4249,0x4a6a,0x4a8b,0x4a8a,0x4a8a,0x4a6a,0x4a8b,0x52ab,0x52ab,0x4a8b,0x52cb,0x52cc,0x52ab,0x4a8b,0x4a8b,0x528b,0x52ab,0x52ab,0x52ac,0x526c,0x422a,0x528b,0x52ac,0x4a6b,0x4a8c,0x52ac,0x52ac,0x52ac,0x52ac,0x4a8b,0x52ac,0x4a8b,0x528b,0x4a8b,0x4a8b,0x4a8b,0x4aab,0x528b,0x4a8b,0x528c,0x528c,0x4a8b,0x52ac,0x52ac,0x52ac,0x52ac,0x528c,0x4a6b,0x528c,0x52ad,0x5acd,0x52cc,0x4a8c,0x52cd,0x52ac,0x4a6b,0x4a6b,0x526b,0x4a4b,0x424b,0x4a6c,0x526c,0x4a4b,0x4a6c,0x526c,0x528c,0x524c,0x4a2b,0x528c,0x526c,0x526c,0x4a4c,0x524c,0x4a0c,0x2945,0x2944,0x18c3,0x52ac,0x8412,0xce3b,0xffff,0x9490,0x2964,0x2104,0x18c2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1081,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x18a3,0x18e3,0x2104,0x39c7,0x8410,0x9431,0x5aec,0x738f,0x6b6e,0x2947,0x3187,0x39c8,0x3187,0x1927,0x2147,0x3188,0x3188,0x2926,0x2126,0x2967,0x2967,0x3168,0x2967,0x2946,0x3187,0x2966,0x2966,0x31a8,0x3a09,0x3187,0x2966,0x39e8,0x39e8,0x4a6a,0x4229,0x4249,0x3a08,0x31a6,0x39c7,0x39e8,0x3a08,0x2987,0x31a8,0x31a7,0x3a08,0x3a08,0x31c7,0x31e8,0x3208,0x3a28,0x4228,0x4208,0x4229,0x4229,0x4208,0x39c7,0x39e8,0x39c7,0x39e7,0x4228,0x39e7,0x3a07,0x31e7,0x39e7,0x4208,0x39e8,0x39e8,0x4208,0x4a69,0x4a8a,0x31c7,0x3a08,0x4229,0x4249,0x4208,0x4208,0x4208,0x4228,0x4228,0x4229,0x4228,0x4249,0x39c8,0x39e8,0x4229,0x39c7,0x4249,0x3a08,0x39e8,0x4228,0x4207,0x4208,0x4209,0x39e8,0x4228,0x3a07,0x4228,0x3a08,0x39e8,0x39c7,0x39c7,0x31c7,0x31e7,0x31c7,0x3a08,0x3a07,0x31c7,0x4228,0x4208,0x39e7,0x31c7,0x39e7,0x4208,0x3a08,0x31e7,0x31e7,0x31c7,0x4269,0x4269,0x4a49,0x39a7,0x39c7, +0x2165,0x2166,0x2146,0x2966,0x3187,0x3187,0x2966,0x3187,0x2966,0x2146,0x31a7,0x2986,0x2145,0x2986,0x39e8,0x31c7,0x39e8,0x2966,0x2986,0x2986,0x2986,0x2966,0x31c7,0x39c8,0x2986,0x3a08,0x2986,0x29a7,0x3a08,0x2987,0x39c8,0x31a7,0x31c8,0x3a08,0x39e8,0x39e8,0x39e8,0x3a08,0x39e8,0x31e8,0x31c7,0x31a7,0x31c8,0x31c8,0x3a08,0x31a7,0x2986,0x31a7,0x31c8,0x31e8,0x3a29,0x3a49,0x3a08,0x39e8,0x39c8,0x31c7,0x31a7,0x39c8,0x39e8,0x4209,0x4a4a,0x4229,0x39e8,0x31a7,0x31c8,0x4229,0x3a09,0x39c7,0x4229,0x4209,0x3a08,0x31e8,0x3a08,0x4209,0x4209,0x4229,0x4249,0x4a6a,0x4a6a,0x4229,0x4229,0x4a4a,0x4208,0x528a,0x4a49,0x4a49,0x4a29,0x4229,0x4a49,0x4229,0x4a49,0x528a,0x4249,0x3a09,0x4a6a,0x4a6a,0x4208,0x39c7,0x41e9,0x4a49,0x4249,0x39e8,0x39c8,0x4a29,0x4a6a,0x4a6a,0x4229,0x4229,0x4229,0x4208,0x4249,0x4a6a,0x4a4a,0x4a4a,0x526a,0x2125,0x2945,0x18c3,0x52ac,0x8412,0xce5b,0xffff,0x8c2e,0x2944,0x2104,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1081,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18a3,0x18c3,0x20e4,0x2124,0x31a6,0x7bcf,0x8c10,0x5aec,0x738f,0x6b6e,0x4a69,0x528a,0x4228,0x4228,0x4228,0x4a69,0x4228,0x3a08,0x4208,0x4228,0x4228,0x4229,0x4249,0x4208,0x3a08,0x4207,0x4248,0x4248,0x4249,0x4229,0x4208,0x4249,0x4a6a,0x4208,0x4a6a,0x4249,0x3a08,0x4a49,0x3a08,0x39e8,0x3a08,0x4249,0x3a08,0x3a08,0x3a28,0x4228,0x3a08,0x3a08,0x3a28,0x3a09,0x3a08,0x39e7,0x3a08,0x3a08,0x39e7,0x4a49,0x3a08,0x39c7,0x4208,0x4269,0x4228,0x4208,0x4a49,0x3a08,0x39e7,0x39e7,0x39e7,0x4229,0x4208,0x39e7,0x3a07,0x4228,0x39e8,0x31a7,0x39e8,0x39c7,0x4228,0x4228,0x39e8,0x39c7,0x3a08,0x31c7,0x39c7,0x39c7,0x39c7,0x31c7,0x31c7,0x39e7,0x39c7,0x31c7,0x31c7,0x39e7,0x39e7,0x31c7,0x3a28,0x3a07,0x3a07,0x39e8,0x39e8,0x31c7,0x31c7,0x39c7,0x3186,0x31c7,0x31c7,0x31e7,0x31e7,0x31e7,0x39e7,0x39c7,0x39c7,0x39c7,0x39e7,0x39c7,0x3a08,0x39e7,0x39e7,0x3a08,0x3a08,0x31c6,0x4a69,0x39e7,0x3186, +0x29a6,0x29a6,0x2986,0x2986,0x31a7,0x31a7,0x31c7,0x39e7,0x29a6,0x29a6,0x31c7,0x31c7,0x31a6,0x31a6,0x3186,0x39c7,0x39e8,0x39e8,0x4249,0x3a28,0x29a6,0x31c7,0x4229,0x3a28,0x39e7,0x3a07,0x4248,0x4248,0x4a69,0x3a08,0x4249,0x3a08,0x3a08,0x4228,0x39e8,0x39c7,0x31c7,0x39e7,0x3a07,0x4228,0x39e7,0x39e8,0x4229,0x4228,0x31c7,0x31c7,0x3a08,0x39e8,0x4228,0x4228,0x3a08,0x3a08,0x3a08,0x4208,0x3a08,0x3a08,0x4249,0x3a08,0x31c7,0x39e7,0x4248,0x4248,0x4249,0x4228,0x3a28,0x39e8,0x3a08,0x3a07,0x4228,0x4a49,0x4a49,0x3a28,0x39e8,0x4229,0x4229,0x4249,0x52aa,0x4269,0x4249,0x4a8a,0x4249,0x4228,0x4229,0x3a08,0x4208,0x4a49,0x4a49,0x5acb,0x4249,0x3a08,0x4a69,0x4a69,0x3a08,0x4229,0x4229,0x3a28,0x3a28,0x4a89,0x4a69,0x4a69,0x4a89,0x4a49,0x4229,0x528a,0x528a,0x52ab,0x4a6a,0x4a49,0x4a49,0x4228,0x528a,0x4a8a,0x4a6a,0x526a,0x4a69,0x2124,0x2945,0x18a3,0x52ac,0x8c33,0xde9c,0xffff,0x842e,0x2944,0x2124,0x18c3,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x18a2,0x18a3,0x18a3,0x18c3,0x18e3,0x2103,0x2124,0x3186,0x7bcf,0x83f0,0x5aec,0x738f,0x6b4d,0x4a49,0x3a08,0x3a08,0x4a69,0x4228,0x4249,0x4228,0x31c7,0x39e8,0x4229,0x3a29,0x3a08,0x39e7,0x3a07,0x3a28,0x4a69,0x4208,0x39e8,0x39e8,0x4209,0x39e8,0x4229,0x3a28,0x3a08,0x4229,0x39c7,0x4249,0x4228,0x39e7,0x4208,0x3a08,0x39e8,0x39e8,0x3a08,0x39e8,0x39e8,0x31c8,0x31e8,0x3a09,0x3a09,0x39e9,0x31a7,0x39e8,0x3a28,0x3a08,0x3a07,0x3a08,0x4228,0x4229,0x3a08,0x3a07,0x39e7,0x4228,0x4228,0x3a07,0x4208,0x3a28,0x39e7,0x39e7,0x3a08,0x3a08,0x39e7,0x4229,0x39e8,0x3a08,0x4228,0x4249,0x39e8,0x39e7,0x39e8,0x3a08,0x4249,0x3a08,0x31a6,0x39e8,0x31a7,0x39c7,0x39c6,0x39c7,0x39e7,0x31c7,0x3a07,0x31c7,0x39e8,0x3a08,0x39e8,0x4228,0x39e7,0x39c7,0x39e8,0x31a6,0x31c7,0x39e7,0x31c7,0x31e7,0x31c7,0x4249,0x4249,0x39e7,0x3a08,0x39c7,0x39e8,0x39c7,0x39e7,0x39e7,0x3a08,0x31a7,0x31a7,0x3186,0x39c7,0x39e7,0x39c7,0x39e7, +0x3186,0x31a6,0x31a6,0x2966,0x2986,0x2986,0x31c7,0x31c7,0x31c7,0x39e7,0x31c7,0x29a6,0x31c7,0x31a6,0x3186,0x4a49,0x4208,0x3a08,0x4228,0x3a28,0x3207,0x39e7,0x3a08,0x31a6,0x39e7,0x3a28,0x3a08,0x31c7,0x4249,0x4229,0x4269,0x4a8a,0x31c7,0x4228,0x3a08,0x31c6,0x31a6,0x4249,0x4228,0x4228,0x4228,0x4228,0x3a08,0x3a08,0x39e7,0x39e7,0x39e8,0x31c7,0x3a08,0x39e8,0x3a08,0x39e7,0x39e7,0x39e8,0x39e7,0x31c7,0x3a08,0x4a69,0x3a08,0x3a07,0x3a08,0x31e8,0x3a08,0x3a08,0x3a08,0x39e8,0x4a6a,0x4a69,0x4208,0x4228,0x4208,0x4249,0x4229,0x4249,0x4228,0x4228,0x4a69,0x3a08,0x3a28,0x3a28,0x4228,0x3a08,0x4209,0x4229,0x4a49,0x4229,0x4a69,0x4a69,0x4228,0x4229,0x4a69,0x4228,0x39e8,0x39e8,0x4269,0x4249,0x4249,0x4a8a,0x5289,0x4a69,0x4a8a,0x528a,0x4a6a,0x4a8a,0x4249,0x4aaa,0x4269,0x4a8a,0x4289,0x3a28,0x4249,0x52cb,0x52ab,0x52ab,0x4a8b,0x2104,0x2945,0x18a3,0x52cd,0x8c54,0xdedc,0xffff,0x840d,0x2944,0x2945,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x18a2,0x10a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a3,0x18c3,0x20e3,0x2103,0x2124,0x3186,0x7bcf,0x8c10,0x5aec,0x738f,0x6b4d,0x4229,0x4208,0x4a6a,0x4228,0x39e7,0x31c7,0x31e7,0x31e7,0x3a08,0x4249,0x4229,0x4228,0x3a28,0x3a08,0x4249,0x4a8a,0x39e8,0x3a08,0x4249,0x39e8,0x4208,0x31e7,0x39e7,0x4229,0x4a49,0x4208,0x3a08,0x4a8a,0x4229,0x39e8,0x4208,0x39e8,0x39e8,0x39e7,0x39c7,0x4249,0x31c7,0x39e8,0x4a49,0x3a08,0x3a08,0x31a7,0x3a08,0x4249,0x4228,0x3a08,0x31c7,0x4a69,0x3a08,0x31e7,0x31a6,0x4249,0x4249,0x4228,0x31e7,0x4a69,0x4248,0x3a08,0x4228,0x4a69,0x52aa,0x3a08,0x4228,0x4229,0x3a08,0x4228,0x4228,0x3a08,0x3a08,0x4228,0x31e7,0x3a08,0x3a08,0x39e7,0x39c7,0x31a7,0x4228,0x39e7,0x31a7,0x39e7,0x3a07,0x4228,0x4248,0x3a08,0x39e8,0x31c7,0x39c7,0x39e7,0x4228,0x31a7,0x39e7,0x39e7,0x31c7,0x4228,0x3a07,0x3a08,0x4249,0x31a7,0x39e8,0x39e8,0x39e8,0x3a08,0x39e8,0x39e7,0x31a6,0x39e7,0x3a07,0x39e7,0x31c7,0x39e7,0x39e7,0x31c7,0x4208, +0x2945,0x29a6,0x31c7,0x31c8,0x31c7,0x31c7,0x31c7,0x31a6,0x39e8,0x39c7,0x31c7,0x3a08,0x39e7,0x31a6,0x4208,0x4249,0x31e7,0x39e7,0x31c7,0x3a08,0x4229,0x4208,0x4229,0x31a7,0x39e7,0x4228,0x31a7,0x39c8,0x4209,0x4228,0x4a49,0x4228,0x3a08,0x3a08,0x39e7,0x39e7,0x39e7,0x4228,0x4228,0x4228,0x4228,0x39e8,0x3a08,0x3a08,0x4229,0x4228,0x31c7,0x39e7,0x39e7,0x4249,0x4249,0x3a08,0x31e7,0x39e8,0x3a08,0x39e8,0x39e8,0x4a6a,0x4a69,0x4249,0x4229,0x4228,0x3a08,0x3a08,0x39e8,0x3a08,0x39e8,0x39e7,0x4208,0x4229,0x3a08,0x4228,0x4228,0x4229,0x4228,0x4208,0x3a28,0x4269,0x4249,0x4a8a,0x4249,0x3a08,0x39e8,0x4a6a,0x4a69,0x4208,0x4248,0x4a69,0x52aa,0x4a69,0x4228,0x4208,0x4208,0x4249,0x4a6a,0x4249,0x3a08,0x4a8a,0x4208,0x4aaa,0x52aa,0x4228,0x4228,0x4a69,0x528a,0x4269,0x4a8a,0x52ab,0x4229,0x4249,0x528a,0x528a,0x4208,0x4a6a,0x426a,0x2104,0x2925,0x18a3,0x5aed,0x9494,0xdedc,0xffff,0x7bed,0x2124,0x2124,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x18a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x18a2,0x18a2,0x18a2,0x10a2,0x10a2,0x18a2,0x18a2,0x18a2,0x18c3,0x18c3,0x18e3,0x2104,0x2104,0x3165,0x8410,0x9451,0x632d,0x7bf0,0x6b4d,0x3a08,0x4a8a,0x4a69,0x3a07,0x31e7,0x3a08,0x3a08,0x4228,0x3a08,0x4208,0x39e8,0x4208,0x39e8,0x39e8,0x39e8,0x3a08,0x39e8,0x3a07,0x4a69,0x3a08,0x3a08,0x4249,0x39e7,0x39e8,0x4228,0x4229,0x3a08,0x3a08,0x3a08,0x4229,0x39e7,0x39e8,0x39a7,0x31a6,0x31e7,0x3a28,0x3208,0x31c7,0x39e7,0x39e7,0x3a08,0x31c7,0x39e7,0x39e7,0x4228,0x4248,0x31e7,0x3a07,0x39e7,0x4228,0x4228,0x39c7,0x39e7,0x4208,0x4208,0x4228,0x4208,0x4208,0x39e7,0x4248,0x4a49,0x39e7,0x3a08,0x4208,0x39e7,0x4248,0x3a08,0x39e7,0x3a08,0x3a07,0x39e7,0x4228,0x31c7,0x3a07,0x4228,0x31a6,0x3a08,0x4228,0x4208,0x4208,0x39e8,0x4228,0x39e7,0x31c7,0x4229,0x3a08,0x39c7,0x39e7,0x4208,0x4208,0x3a28,0x3a08,0x39e8,0x4208,0x3a08,0x31c6,0x39e8,0x39c8,0x3a08,0x39c7,0x4208,0x4208,0x39e8,0x4209,0x31e7,0x3a07,0x4228,0x3a07,0x4208,0x4208,0x31a6,0x39e7,0x3186, +0x39e7,0x29a6,0x2166,0x31c7,0x31a6,0x31c6,0x31a7,0x31c7,0x31a7,0x31c8,0x31c7,0x29a6,0x29a6,0x39c7,0x4208,0x4228,0x29a6,0x31a7,0x31c7,0x31a7,0x41e8,0x4a29,0x31a7,0x3186,0x39e7,0x4228,0x39e7,0x39c7,0x39e8,0x4a29,0x4209,0x4209,0x4a6a,0x39e7,0x39e7,0x31c7,0x3a08,0x4229,0x3a08,0x4228,0x39e7,0x4228,0x4228,0x31e8,0x4249,0x3a28,0x3a08,0x4228,0x4249,0x3a28,0x3a08,0x39e7,0x4228,0x39e8,0x4229,0x4229,0x39e7,0x4229,0x4249,0x4228,0x4a49,0x4228,0x4a49,0x4a49,0x3a28,0x3a07,0x39e7,0x4228,0x4229,0x3a28,0x39e7,0x3a28,0x4228,0x4208,0x39e7,0x4208,0x3a08,0x3a08,0x3a08,0x3a08,0x3a08,0x4229,0x4229,0x3a08,0x4a69,0x4229,0x4208,0x4228,0x4249,0x4249,0x39e8,0x4249,0x528a,0x4249,0x4249,0x4249,0x39e8,0x4249,0x4228,0x3a08,0x4229,0x3a08,0x4a49,0x4a6a,0x528a,0x528a,0x52aa,0x4a49,0x4a29,0x4229,0x4a6a,0x528a,0x4228,0x4a6a,0x4a49,0x2104,0x2945,0x18a3,0x630e,0x9cd5,0xdebc,0xffff,0x7bcc,0x2103,0x2104,0x18c3,0x10a2,0x18e3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18c3,0x18a3,0x10a2,0x18c3,0x20e3,0x18c2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x18c3,0x18a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x18a3,0x18c3,0x18c3,0x18c3,0x2104,0x2104,0x3165,0x8c51,0x9451,0x738f,0x8c52,0x736e,0x4a69,0x4249,0x4249,0x4a69,0x4248,0x3a28,0x3a28,0x4a69,0x39e7,0x39e7,0x39e8,0x4208,0x3a08,0x39e8,0x3a08,0x39e8,0x4249,0x4228,0x31c7,0x3a08,0x3a08,0x39e7,0x4208,0x4a49,0x4228,0x4228,0x3a08,0x4228,0x3a08,0x4208,0x39c7,0x39e7,0x3a08,0x3a08,0x39e7,0x3a28,0x3a28,0x31e7,0x39e7,0x3a08,0x3a08,0x31e7,0x31c7,0x4249,0x39e7,0x3a08,0x3a08,0x4228,0x31e7,0x4249,0x4a49,0x39c7,0x4208,0x4208,0x39e7,0x4a69,0x39e7,0x31a6,0x3a07,0x41e8,0x39c7,0x39e7,0x39e7,0x39c7,0x39e7,0x4208,0x3a08,0x31c7,0x31e7,0x3a28,0x4248,0x3a08,0x31a6,0x39e7,0x3a07,0x3186,0x31a6,0x3a07,0x4228,0x39e7,0x31a7,0x31a7,0x39c7,0x31c7,0x31c7,0x3a08,0x3a08,0x3a08,0x31a7,0x31c7,0x39e8,0x31e8,0x31c7,0x31c7,0x3a07,0x3a07,0x4228,0x39e8,0x39e8,0x39e7,0x31c6,0x39e7,0x31a6,0x3a08,0x31c7,0x3a07,0x31c6,0x4228,0x3a08,0x39e7,0x3186,0x31c7,0x4228, +0x39c7,0x31c7,0x2946,0x3186,0x3a07,0x2986,0x2986,0x39e8,0x39e8,0x31a7,0x39c7,0x31a6,0x31e7,0x31a7,0x39e8,0x3186,0x3186,0x39c7,0x39e8,0x39e8,0x4228,0x4228,0x4228,0x4228,0x4228,0x3a07,0x31a7,0x31c7,0x4229,0x4a6a,0x4209,0x4a49,0x4229,0x3a08,0x31c7,0x31c7,0x4229,0x3a08,0x39e8,0x3a09,0x3a08,0x4248,0x4228,0x31e7,0x31e7,0x31e7,0x4249,0x3a08,0x3a28,0x31e7,0x39e8,0x4208,0x4249,0x3a08,0x3a08,0x4269,0x3a08,0x4249,0x4a69,0x4a49,0x4249,0x4a49,0x3a08,0x4228,0x4269,0x39e7,0x4229,0x3a08,0x4229,0x4228,0x39e7,0x3a28,0x3a08,0x3a08,0x39e7,0x39e8,0x39e7,0x39e7,0x4228,0x31c7,0x4209,0x4229,0x4249,0x4228,0x4a6a,0x4229,0x4208,0x4229,0x3a08,0x4229,0x3a28,0x3a29,0x4249,0x4208,0x4a69,0x4249,0x3a08,0x4a49,0x4229,0x4229,0x4249,0x4228,0x4a69,0x4a49,0x4a49,0x4a8a,0x4a8a,0x3a28,0x4a69,0x3a28,0x4a69,0x4a6a,0x4a6a,0x4a49,0x4a49,0x2104,0x2945,0x18a3,0x7390,0xad36,0xde9c,0xffbe,0x736c,0x2104,0x2104,0x18c3,0x18a2,0x2945,0x2944,0x2124,0x2103,0x2103,0x2104,0x2104,0x2104,0x2103,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x2104,0x2124,0x2104,0x18e3,0x10a2,0x2124,0x3165,0x2944,0x2103,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x18a2,0x10a2,0x18c3,0x18e3,0x20e3,0x2103,0x18e3,0x18c3,0x1082,0x18e3,0x3186,0x2924,0x2103,0x18c3,0x18c2,0x18c2,0x18a2,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x20e3,0x2104,0x2104,0x2944,0x2124,0x18e3,0x18c3,0x20e3,0x2104,0x3186,0x9492,0x8c31,0x8410,0x9c93,0x738e,0x4229,0x3a08,0x4a49,0x4a49,0x4228,0x4a69,0x4228,0x4228,0x3a28,0x39e7,0x3a08,0x3a08,0x3a08,0x39e8,0x3a08,0x4228,0x4249,0x39e7,0x3a08,0x39e8,0x4249,0x4228,0x4a6a,0x4a69,0x3a08,0x39e8,0x39e8,0x4a69,0x39e7,0x4229,0x4228,0x3a08,0x4249,0x4229,0x39c7,0x31a7,0x3a08,0x3a08,0x3a08,0x31a6,0x39e7,0x3a08,0x31c7,0x3a07,0x39e7,0x4208,0x3a08,0x3a07,0x3a07,0x3a28,0x31c6,0x39e7,0x39e7,0x4249,0x3a08,0x4a49,0x39c7,0x3a08,0x4228,0x39e7,0x39e7,0x4228,0x39e7,0x31c6,0x39e7,0x39c7,0x4228,0x31e7,0x3a08,0x3a28,0x39e7,0x3a08,0x39c7,0x31c7,0x39e7,0x39e7,0x39c7,0x3a08,0x3186,0x4a69,0x4228,0x39e7,0x39c7,0x4208,0x31a6,0x39e7,0x39e8,0x3a08,0x39e8,0x39c7,0x31a7,0x3a08,0x31c7,0x4248,0x4228,0x4248,0x39e7,0x4208,0x3a08,0x4248,0x39e7,0x39c7,0x39e8,0x31a7,0x31a6,0x4228,0x4a8a,0x3186,0x4208,0x31c7,0x39e7,0x31a6,0x39e7, +0x31a7,0x31a6,0x2966,0x39c7,0x31e7,0x2986,0x2145,0x41e8,0x4a4a,0x39e7,0x2965,0x39e7,0x39e7,0x31c7,0x39e8,0x4208,0x39c7,0x4a49,0x4228,0x31a6,0x3a07,0x4249,0x31e7,0x31e7,0x39e7,0x3a08,0x39e8,0x31c7,0x4a8a,0x4249,0x39e7,0x4208,0x39c7,0x39c7,0x31a7,0x4249,0x4249,0x31c7,0x39e8,0x39c8,0x31c7,0x4228,0x4208,0x3a08,0x3a08,0x4249,0x4249,0x3a08,0x3a08,0x3a08,0x4228,0x4228,0x31c7,0x3a08,0x39e7,0x39e7,0x3a08,0x3a08,0x3a08,0x4229,0x4228,0x4249,0x3a08,0x3a07,0x4248,0x4249,0x4228,0x4249,0x4a8a,0x39e8,0x39e7,0x31e7,0x3a28,0x3a28,0x4249,0x39e8,0x4a69,0x52aa,0x4a69,0x39e7,0x4228,0x4a49,0x4249,0x52aa,0x4a6a,0x3a09,0x4208,0x4208,0x4228,0x4269,0x4249,0x3a28,0x3a08,0x3a08,0x4a49,0x4a6a,0x4208,0x4a49,0x4229,0x4229,0x4a69,0x4a69,0x4248,0x528a,0x52cb,0x52ab,0x426a,0x3a28,0x4a8a,0x4249,0x4a8a,0x4a69,0x4a49,0x4228,0x4a69,0x20e3,0x2965,0x18c4,0x7bd1,0xb576,0xd67b,0xef3c,0x632b,0x2104,0x2104,0x18c3,0x18a3,0x2965,0x2945,0x3165,0x2944,0x2944,0x3165,0x3185,0x2965,0x2944,0x2945,0x2945,0x2124,0x2945,0x2965,0x2965,0x2965,0x2944,0x2965,0x2924,0x2965,0x2945,0x2124,0x18e3,0x10a2,0x2945,0x31a6,0x3186,0x2965,0x18e3,0x20e3,0x2124,0x2104,0x2103,0x2104,0x2104,0x2104,0x2103,0x2124,0x2124,0x2924,0x2944,0x2945,0x2965,0x3165,0x3165,0x2104,0x18e3,0x1082,0x2104,0x41e8,0x3186,0x31a6,0x3165,0x2944,0x2945,0x2945,0x2965,0x3165,0x3185,0x2965,0x39c6,0x3186,0x3186,0x3186,0x2965,0x2965,0x3186,0x3186,0x39a6,0x2945,0x18e3,0x18c3,0x18e3,0x20e3,0x3186,0x9492,0x83f0,0x8c51,0x9cd3,0x630d,0x4229,0x52ab,0x4a49,0x4229,0x39e8,0x3a08,0x4249,0x4228,0x4249,0x4249,0x4249,0x4228,0x3a08,0x39e8,0x39e8,0x3a08,0x4228,0x39e7,0x39e7,0x3a08,0x4a8a,0x4228,0x4208,0x4228,0x39e7,0x4249,0x4228,0x3a08,0x3a08,0x4229,0x4249,0x31e7,0x39e7,0x39c7,0x4208,0x39e8,0x31a7,0x31c7,0x3a08,0x39c7,0x3a08,0x31e7,0x31c7,0x39e7,0x39e7,0x4228,0x4228,0x3a08,0x4228,0x3a08,0x39e7,0x39e7,0x4228,0x3a07,0x3a08,0x39c7,0x4208,0x39e7,0x4228,0x3a28,0x39e7,0x39e7,0x39e7,0x4228,0x39e7,0x31c7,0x39c6,0x31a6,0x39e7,0x31c7,0x3a08,0x3a08,0x4208,0x4228,0x39e7,0x39e7,0x3a07,0x3a07,0x39c7,0x4228,0x3a07,0x31e7,0x39e7,0x52aa,0x39e7,0x3a08,0x39e7,0x3187,0x4a49,0x4228,0x31c6,0x4228,0x4208,0x3a08,0x39e7,0x3a08,0x31c7,0x3a08,0x4228,0x3a08,0x31a6,0x31a6,0x3a08,0x31e7,0x31a7,0x31c7,0x39c7,0x39c7,0x4249,0x31a6,0x4228,0x39e7,0x39e7, +0x3186,0x2965,0x3186,0x39e8,0x29a6,0x2186,0x29a7,0x39c7,0x39e8,0x3a08,0x3a07,0x3a07,0x31c7,0x31c7,0x39e8,0x31c7,0x31c7,0x31e7,0x39e8,0x39e7,0x31e7,0x4249,0x31a6,0x31c6,0x39e8,0x39e8,0x3a28,0x39e8,0x3a08,0x3a08,0x31c7,0x39e7,0x39e8,0x39c7,0x39e8,0x31c7,0x39c7,0x31e7,0x39c7,0x39c7,0x31a7,0x39a7,0x39e8,0x4228,0x4228,0x39e8,0x3a08,0x3a08,0x4228,0x3a07,0x3a07,0x3a07,0x3a07,0x39e7,0x39e7,0x4208,0x3a08,0x3a08,0x4229,0x4228,0x3a08,0x4249,0x3a29,0x3a08,0x4249,0x4229,0x4249,0x4249,0x4249,0x39e7,0x39e8,0x3a28,0x3a28,0x3a49,0x4249,0x4208,0x4228,0x4a6a,0x39e8,0x39e8,0x4208,0x4a8a,0x4a49,0x4229,0x3a08,0x4249,0x4249,0x4a49,0x4249,0x4a69,0x3a08,0x3a08,0x3a08,0x3a07,0x4228,0x4229,0x4249,0x4229,0x4249,0x426a,0x4229,0x4249,0x4228,0x4a49,0x528a,0x4249,0x4249,0x4a8a,0x4249,0x4a69,0x4a69,0x4228,0x4a49,0x4a69,0x4a8a,0x18e3,0x2945,0x18c4,0x7bd2,0xb596,0xce3a,0xd679,0x5aca,0x2104,0x1903,0x18c3,0x18a3,0x2965,0x20e4,0x2104,0x10a2,0x2104,0x3165,0x2945,0x2104,0x18e3,0x2104,0x2124,0x2104,0x2104,0x2124,0x2124,0x2124,0x2124,0x2945,0x18e3,0x2124,0x2124,0x2104,0x18c3,0x1082,0x2945,0x3166,0x2945,0x18e3,0x18c3,0x2124,0x2924,0x2104,0x2104,0x2124,0x2104,0x2124,0x2124,0x2965,0x2945,0x2945,0x3165,0x3186,0x2924,0x2924,0x2945,0x2104,0x18e3,0x1082,0x2104,0x39e8,0x2965,0x2965,0x2944,0x2965,0x2945,0x2945,0x2965,0x2965,0x3165,0x3165,0x41e7,0x39c6,0x31a6,0x3186,0x3185,0x3165,0x2124,0x2924,0x3165,0x2124,0x2104,0x18c3,0x18c3,0x18c3,0x2965,0x8431,0x738f,0x8c51,0x9cb3,0x4a29,0x4228,0x4a69,0x4249,0x4249,0x3a08,0x3a29,0x4249,0x4249,0x3a29,0x3a29,0x31e7,0x3a08,0x39e7,0x3a08,0x31c7,0x39e8,0x4249,0x39e7,0x39c7,0x3a08,0x4a69,0x3a08,0x4229,0x4a69,0x39e7,0x3a08,0x4228,0x4208,0x3a08,0x39e7,0x39e8,0x4228,0x3a08,0x4228,0x4228,0x3a08,0x3a08,0x39e8,0x39e8,0x39c7,0x31c6,0x31a6,0x39e7,0x39e7,0x31a6,0x39e7,0x4a69,0x3a08,0x3a08,0x4249,0x4208,0x39c7,0x3a08,0x4208,0x3a08,0x4208,0x4a49,0x31c7,0x39e7,0x3a08,0x31c7,0x3a08,0x3a07,0x4248,0x39e7,0x3a08,0x39e7,0x3a07,0x4228,0x31c7,0x39e8,0x4208,0x39e8,0x4228,0x3a07,0x3a08,0x39e7,0x39e7,0x39e7,0x39e7,0x3a28,0x3a07,0x4269,0x52eb,0x31e7,0x3a07,0x39e7,0x31e7,0x4a69,0x4a49,0x2986,0x3a08,0x4249,0x31c7,0x39e7,0x31c7,0x31c7,0x31c6,0x3a28,0x4269,0x3a08,0x39e7,0x4228,0x3207,0x29a7,0x31c7,0x39e8,0x39e8,0x39c7,0x39e7,0x39e7,0x31c7,0x31c7, +0x2986,0x2965,0x31a6,0x29a7,0x29c7,0x29a7,0x31e7,0x31c7,0x31a6,0x3a08,0x3a08,0x31a6,0x31a7,0x3a08,0x3a08,0x31c7,0x2986,0x39c8,0x3a08,0x31c7,0x31c7,0x4a6a,0x4a8a,0x4249,0x39e8,0x39e8,0x31e7,0x3a28,0x3a28,0x3a08,0x3a07,0x39e7,0x31c7,0x31a7,0x4208,0x4208,0x39e7,0x31a7,0x31a7,0x39c7,0x39e7,0x39c7,0x31c7,0x3a08,0x39e8,0x3a08,0x4228,0x4228,0x39e8,0x4208,0x4208,0x4228,0x4a8a,0x4228,0x4a69,0x4249,0x3a08,0x4208,0x4229,0x4249,0x4248,0x4249,0x4269,0x4a8a,0x4aaa,0x4269,0x4a8a,0x4228,0x39e7,0x3a08,0x4228,0x3a28,0x3a28,0x4249,0x39e7,0x4249,0x3a28,0x39e7,0x39e8,0x3a28,0x4249,0x4249,0x31e7,0x4aaa,0x4249,0x3a28,0x4228,0x4229,0x4249,0x39e8,0x39e7,0x4228,0x3a28,0x31e7,0x31e7,0x4249,0x4229,0x39e8,0x4208,0x5acb,0x4a49,0x4208,0x39e8,0x4228,0x4229,0x4229,0x4228,0x4a49,0x4a69,0x4a69,0x4249,0x4a69,0x4a6a,0x4a69,0x426a,0x18e3,0x2925,0x18c4,0x7bb1,0xb596,0xbdb7,0xb596,0x52aa,0x2103,0x18e3,0x18c3,0x18a3,0x2965,0x10a2,0x0861,0x0861,0x2944,0x2945,0x2124,0x2104,0x18e3,0x18e3,0x2104,0x20e4,0x20e4,0x20e3,0x18e3,0x18e3,0x2104,0x2945,0x2104,0x10a2,0x10a2,0x18e3,0x18c3,0x1082,0x2925,0x2104,0x1082,0x0861,0x18e3,0x2124,0x2104,0x20e4,0x18e3,0x18e3,0x20e3,0x20e4,0x2104,0x2124,0x2104,0x2104,0x2124,0x2965,0x2945,0x18a2,0x18c3,0x18e3,0x18c3,0x1082,0x20e4,0x3186,0x18a3,0x10a2,0x2104,0x2924,0x2104,0x2104,0x2104,0x2124,0x2104,0x2124,0x2965,0x2945,0x2945,0x2945,0x2945,0x3185,0x2924,0x1082,0x18c3,0x18e3,0x2104,0x18c3,0x18c3,0x18e3,0x3186,0x7bcf,0x632e,0x8411,0x8411,0x39a7,0x3a07,0x4249,0x4a69,0x4249,0x4249,0x4229,0x3a29,0x3a08,0x3a29,0x3a28,0x39e7,0x3a08,0x3a08,0x4228,0x31c7,0x4228,0x4228,0x4249,0x4228,0x39c7,0x3a08,0x4249,0x4208,0x3a08,0x39e8,0x4249,0x4a69,0x4228,0x4a69,0x39e7,0x4a69,0x4a49,0x4228,0x4229,0x3a08,0x3a07,0x3a28,0x31e7,0x31e7,0x39e7,0x39e7,0x3a07,0x31c6,0x3a08,0x4228,0x4228,0x4a69,0x3a08,0x4228,0x4228,0x4228,0x4208,0x4249,0x39c7,0x31a6,0x39c7,0x4249,0x4249,0x3a08,0x31c7,0x4228,0x31a6,0x52aa,0x4208,0x31a6,0x3a08,0x31c7,0x3a07,0x4228,0x3a08,0x4a69,0x39e8,0x4229,0x4208,0x3a08,0x4228,0x4228,0x39c7,0x39e8,0x3a08,0x4249,0x31c7,0x3a08,0x4249,0x3a07,0x39e7,0x39e7,0x31e7,0x4249,0x4228,0x3a08,0x3a08,0x3a08,0x39e7,0x4249,0x31c7,0x31e7,0x3a28,0x3a08,0x4208,0x39e8,0x41e8,0x3a08,0x31e7,0x31c7,0x31a7,0x3186,0x39c7,0x31c7,0x31a7,0x39c7,0x31a7,0x31a7, +0x2986,0x2986,0x31a7,0x31a7,0x31c7,0x2986,0x31a7,0x31a7,0x3186,0x31c7,0x31a7,0x2966,0x39c7,0x3a08,0x31a6,0x31a6,0x39c7,0x39e8,0x3a28,0x3a08,0x31c7,0x39c8,0x4229,0x4208,0x31a7,0x39e8,0x3a08,0x3a08,0x39e7,0x31e7,0x3a28,0x39c7,0x31a7,0x31a6,0x39c7,0x39e7,0x39e8,0x39e7,0x31c7,0x31c7,0x39e7,0x4249,0x39e8,0x31c7,0x39e7,0x31e7,0x31e7,0x4229,0x3a08,0x3a08,0x39e8,0x3a08,0x4249,0x4249,0x39e7,0x4a49,0x4228,0x4229,0x4208,0x3a08,0x3a28,0x3a08,0x4a69,0x4249,0x4a8a,0x4249,0x4249,0x31c7,0x3a08,0x4249,0x4249,0x4228,0x4228,0x4a49,0x4a69,0x3a08,0x3a28,0x4249,0x3a07,0x3a08,0x3a28,0x3a08,0x4249,0x4269,0x4248,0x4249,0x4228,0x4229,0x3a08,0x4228,0x4228,0x4228,0x4228,0x4229,0x3a08,0x4229,0x4228,0x4228,0x4249,0x4208,0x4a49,0x4249,0x4229,0x4249,0x3a08,0x4228,0x4a49,0x4208,0x4208,0x4249,0x4229,0x4a6a,0x4249,0x4a6a,0x4a8a,0x18c3,0x2104,0x18c4,0x7391,0xbdb7,0xad35,0x9cf4,0x5289,0x20e3,0x18e3,0x18c3,0x18a3,0x2945,0x0861,0x0841,0x1082,0x3186,0x2945,0x2945,0x2945,0x2944,0x2144,0x2925,0x2945,0x2945,0x2924,0x2124,0x2124,0x2945,0x2965,0x3185,0x0861,0x0841,0x18c3,0x18a2,0x1082,0x2124,0x10a2,0x0020,0x0841,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2924,0x2925,0x2925,0x2124,0x2124,0x2124,0x2965,0x31a6,0x10a2,0x0861,0x10a2,0x18c3,0x10a2,0x20e3,0x2124,0x0841,0x0861,0x2945,0x2124,0x2124,0x2924,0x2924,0x2945,0x2925,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x3186,0x3186,0x1062,0x0861,0x1082,0x20e4,0x18c3,0x18c3,0x2104,0x39c7,0x6b4e,0x630d,0x73af,0x738e,0x3186,0x39e8,0x4a69,0x4a8a,0x52aa,0x4a49,0x3a08,0x3a08,0x31e7,0x3a28,0x4248,0x4249,0x3a08,0x4249,0x4249,0x39e8,0x4249,0x3a08,0x4229,0x39c7,0x3a08,0x3a08,0x4249,0x4228,0x39c7,0x4208,0x3a08,0x4a8a,0x3a28,0x4228,0x3a08,0x4228,0x4208,0x4208,0x4a49,0x39e8,0x3a08,0x4228,0x31c7,0x4228,0x4208,0x39e7,0x4228,0x39e7,0x39e7,0x31e7,0x4a69,0x4a69,0x3a28,0x4269,0x31c7,0x3a08,0x3a08,0x3a08,0x39e8,0x39c7,0x3a08,0x39e8,0x39c7,0x31a7,0x31c7,0x3a08,0x31a7,0x4229,0x39e8,0x39e7,0x3a07,0x4208,0x39e7,0x31c6,0x4208,0x4249,0x3a08,0x3a08,0x3a08,0x39e8,0x31c7,0x31e8,0x39e8,0x39e8,0x31c7,0x31a7,0x39e7,0x39e7,0x4249,0x4a49,0x31c7,0x4228,0x3a08,0x31c7,0x2986,0x3a08,0x39e7,0x39c7,0x4208,0x4208,0x39c7,0x4228,0x4228,0x31c7,0x39e8,0x39e8,0x39c7,0x3a08,0x29a6,0x31e7,0x4269,0x3a08,0x2986,0x31a6,0x3a08,0x39e8,0x31a7,0x3166, +0x31a7,0x31c7,0x31a6,0x31a7,0x29a6,0x2986,0x3186,0x3186,0x31a7,0x31a7,0x39c7,0x39c7,0x39c8,0x4229,0x3a28,0x3a28,0x3a07,0x3a07,0x31e7,0x31c7,0x31a7,0x31a7,0x39e8,0x39e8,0x31e7,0x31c7,0x4208,0x39e7,0x39e8,0x4208,0x39e8,0x39c7,0x39c7,0x39e7,0x39c7,0x39c7,0x3a08,0x3a08,0x39e8,0x4229,0x3a08,0x4208,0x4208,0x4249,0x3a08,0x31e7,0x3a28,0x3a08,0x3a08,0x3a28,0x3a08,0x4a6a,0x52aa,0x4228,0x3a08,0x3a08,0x4228,0x3a08,0x3207,0x4228,0x3a28,0x3a08,0x39e8,0x39e8,0x4a69,0x4269,0x4249,0x3a28,0x3a28,0x4248,0x4269,0x4a69,0x4208,0x4249,0x4a8a,0x4208,0x41e8,0x4a49,0x3a08,0x39e8,0x4228,0x4a69,0x4a49,0x4249,0x4228,0x4a69,0x4a69,0x4aaa,0x4249,0x4228,0x4a69,0x4228,0x528a,0x4a49,0x3a08,0x4229,0x4a6a,0x4249,0x4a49,0x39e8,0x4229,0x3a08,0x3a29,0x4208,0x4229,0x4249,0x4269,0x4229,0x4229,0x4249,0x4249,0x426a,0x4249,0x4a8b,0x52cb,0x18c3,0x2104,0x18c4,0x7371,0xc5f8,0xa535,0x94b3,0x5289,0x20e3,0x18e3,0x18c3,0x18a3,0x2124,0x0861,0x0841,0x10a2,0x3166,0x2965,0x2965,0x2965,0x2965,0x2965,0x3165,0x4a05,0x39c5,0x2965,0x2965,0x2945,0x2965,0x3166,0x3186,0x0861,0x0020,0x10a2,0x10a2,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x2945,0x2965,0x2965,0x2965,0x3165,0x41e5,0x4a25,0x4205,0x3185,0x2965,0x2965,0x2965,0x2965,0x31a6,0x10a2,0x0841,0x1082,0x18c3,0x10a2,0x18e3,0x20e3,0x0020,0x1081,0x2965,0x2945,0x2965,0x2965,0x3186,0x3186,0x41e5,0x4a25,0x4205,0x31a6,0x3186,0x3186,0x3186,0x3186,0x31a6,0x1082,0x0841,0x0861,0x18e3,0x18a2,0x18c3,0x2104,0x31a7,0x5aec,0x5acc,0x6b6e,0x630d,0x2965,0x4229,0x4209,0x4249,0x52aa,0x4a69,0x4229,0x39e8,0x4a69,0x4a69,0x4269,0x4228,0x3a08,0x4229,0x4229,0x39e8,0x4249,0x3a08,0x4228,0x3a08,0x4249,0x3a08,0x3a07,0x4228,0x39e7,0x4a49,0x3a08,0x3a08,0x4229,0x4229,0x4249,0x3a08,0x4228,0x39e7,0x4228,0x4229,0x31c7,0x4208,0x39e8,0x39a7,0x39e7,0x4248,0x3a07,0x39e7,0x39e7,0x31a6,0x39c7,0x4208,0x4249,0x4a69,0x3a08,0x31c7,0x31c7,0x4249,0x4228,0x39e8,0x3a08,0x4228,0x4249,0x3a08,0x3a08,0x31c7,0x31e7,0x31e7,0x31c7,0x3a28,0x4208,0x39e7,0x4208,0x4208,0x39e7,0x39e7,0x4228,0x3a07,0x39e7,0x39e7,0x31c7,0x3a08,0x39e8,0x3a07,0x31a6,0x4a6a,0x39e7,0x31c7,0x3a08,0x4a6a,0x39e8,0x4208,0x3a08,0x31c7,0x31c7,0x3a08,0x39e7,0x39e7,0x4248,0x39e7,0x31c7,0x4249,0x4a69,0x31c7,0x3a08,0x31e7,0x31c7,0x4249,0x4249,0x31e7,0x31e7,0x3a08,0x29a6,0x2985,0x4228,0x39e8,0x31c7,0x3a08, +0x39c7,0x39c7,0x2965,0x31a6,0x2986,0x2986,0x31a6,0x31a6,0x39e7,0x31a6,0x31c7,0x31c7,0x31c7,0x31c7,0x426a,0x426a,0x31c7,0x4228,0x31c7,0x3a08,0x31c7,0x29a6,0x3a28,0x3a28,0x31c7,0x31c7,0x3a08,0x4229,0x4229,0x3a08,0x31a6,0x31e7,0x31e7,0x31c7,0x39c7,0x39e7,0x39c7,0x39e8,0x4229,0x4a6a,0x3a08,0x31a6,0x4228,0x4249,0x3a08,0x3a08,0x4229,0x52ab,0x3a08,0x3a49,0x4249,0x4228,0x4208,0x4a8a,0x4249,0x3a08,0x4a69,0x3a08,0x3a08,0x4a49,0x39e8,0x3a08,0x3a08,0x4a49,0x4228,0x4a69,0x4a8a,0x4228,0x4269,0x3a08,0x4229,0x3a08,0x4208,0x4228,0x4228,0x4228,0x41e8,0x39e7,0x39e8,0x4228,0x4228,0x4229,0x39e8,0x4208,0x4249,0x4228,0x4248,0x4249,0x31e7,0x39e7,0x4208,0x4a89,0x4a49,0x39e8,0x4229,0x39e8,0x39e8,0x3a09,0x39e8,0x39e8,0x3a08,0x4229,0x39e8,0x4a69,0x4249,0x4229,0x4a69,0x4249,0x4228,0x4249,0x4249,0x4249,0x52aa,0x528a,0x4a6a,0x18c3,0x2124,0x18a3,0x6b30,0xd659,0xad35,0x8c72,0x4a69,0x20e3,0x18c3,0x18c3,0x18a2,0x2104,0x0841,0x0020,0x10a2,0x2966,0x2965,0x2965,0x2965,0x2965,0x31a5,0x4a45,0x8385,0x5264,0x2945,0x2965,0x2965,0x2965,0x3186,0x3186,0x0861,0x0020,0x10a2,0x1082,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x2966,0x2965,0x2965,0x2965,0x4a25,0x7b65,0x7324,0x7b65,0x5a64,0x3165,0x3166,0x2966,0x3166,0x3186,0x1082,0x0841,0x1082,0x18c3,0x18a2,0x18e3,0x18e3,0x0020,0x1082,0x2965,0x2965,0x3186,0x3186,0x3186,0x4226,0x7b65,0x7b65,0x8385,0x5246,0x3186,0x3186,0x3186,0x31a7,0x39a7,0x1082,0x0841,0x0861,0x18c3,0x18a2,0x18c3,0x20e4,0x2945,0x52ab,0x52ab,0x6b6e,0x5aec,0x2945,0x4a6a,0x4229,0x4229,0x4a69,0x4228,0x3a08,0x3a08,0x4a69,0x4a89,0x4a8a,0x3a08,0x3a08,0x4228,0x39e7,0x4228,0x3a08,0x3a08,0x4228,0x4249,0x39e7,0x4228,0x4248,0x4249,0x4228,0x4249,0x4a69,0x3a08,0x4208,0x4229,0x4229,0x4a69,0x4228,0x4a8a,0x4229,0x4229,0x4229,0x4208,0x4208,0x31a7,0x31c6,0x4228,0x39c7,0x31a6,0x4228,0x39e8,0x39c7,0x4208,0x4229,0x3a08,0x3a08,0x39e7,0x39e7,0x4228,0x3a08,0x39e7,0x3a08,0x4229,0x4249,0x31c7,0x3a08,0x39e7,0x4a69,0x39e7,0x31a7,0x39e8,0x4208,0x39c7,0x4208,0x4249,0x39e7,0x39e7,0x3a08,0x3a08,0x31c7,0x31c7,0x39e8,0x39e8,0x39e8,0x39e8,0x31a7,0x4a69,0x3a08,0x31c7,0x4a69,0x4249,0x39e8,0x4a49,0x4208,0x39c7,0x31a6,0x39e7,0x4248,0x39e7,0x39e7,0x4228,0x31c7,0x39e7,0x4208,0x39e8,0x3a08,0x3a08,0x31a6,0x4228,0x52aa,0x31a7,0x3186,0x3186,0x31a6,0x2986,0x3a08,0x31a7,0x39e8,0x39c7, +0x3186,0x3186,0x3186,0x31a6,0x2966,0x31a7,0x31a7,0x31c7,0x31e7,0x31a7,0x29a6,0x2986,0x31c7,0x31a7,0x31e8,0x31c8,0x31a7,0x31c7,0x39c7,0x4208,0x4228,0x39e7,0x31e7,0x4228,0x3a08,0x31c7,0x3a08,0x3a08,0x31c7,0x31a6,0x39e7,0x31c7,0x31c7,0x31c8,0x3a08,0x4228,0x39e7,0x4269,0x3a08,0x4229,0x3a08,0x39e7,0x4228,0x39e8,0x4228,0x39e7,0x39c7,0x4a69,0x3a08,0x3208,0x4249,0x4208,0x31e7,0x4229,0x4229,0x4a49,0x4a49,0x41e8,0x4208,0x4a49,0x4249,0x4229,0x3a08,0x4249,0x4a69,0x4249,0x4249,0x4228,0x4229,0x4229,0x4229,0x3a08,0x4249,0x4249,0x4249,0x3a08,0x3a08,0x39c7,0x39e8,0x4229,0x4249,0x3a08,0x3a08,0x3a08,0x4249,0x4249,0x4228,0x4228,0x3a08,0x4a69,0x39e7,0x4a69,0x3a08,0x39e8,0x4228,0x4208,0x39e8,0x3a08,0x4249,0x4228,0x3a08,0x39e8,0x3a08,0x4a6a,0x4a69,0x4228,0x4a49,0x4228,0x4229,0x4a49,0x4a49,0x4208,0x52aa,0x4a8a,0x3a08,0x18c3,0x2124,0x18c3,0x6b30,0xdeba,0xb575,0x8c51,0x4a49,0x20e3,0x18c3,0x18c2,0x18a2,0x2104,0x0841,0x0020,0x10a2,0x3166,0x2965,0x2965,0x2965,0x2945,0x4a46,0x7b45,0xa465,0x62a4,0x2945,0x2965,0x2965,0x2965,0x3186,0x2965,0x0861,0x0020,0x1082,0x10a2,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x2965,0x2965,0x2965,0x2965,0x7325,0x8bc5,0x5a64,0x8bc5,0x8384,0x3165,0x2966,0x3166,0x3166,0x3186,0x1082,0x0841,0x1082,0x18c3,0x18a2,0x18e3,0x18c3,0x0020,0x1082,0x2965,0x2966,0x2966,0x3186,0x3186,0x5ac6,0x8bc5,0x6ae5,0x9405,0x7305,0x3186,0x3186,0x3186,0x3187,0x39a7,0x1082,0x0841,0x0861,0x18c3,0x10a2,0x18a3,0x18e3,0x2124,0x4a6a,0x528b,0x632d,0x5acc,0x2965,0x4a6a,0x4229,0x4229,0x4249,0x3a28,0x4249,0x4249,0x3a28,0x4249,0x3a08,0x39e8,0x3a08,0x4228,0x4228,0x4228,0x4249,0x4228,0x4228,0x4249,0x4228,0x3a08,0x4a69,0x4a49,0x4228,0x4228,0x4a69,0x4228,0x4228,0x4a49,0x4a49,0x4269,0x4229,0x4249,0x3a08,0x4229,0x4a49,0x4248,0x3a08,0x39e7,0x3a07,0x4228,0x4a69,0x3a08,0x3a08,0x3a08,0x4a49,0x52aa,0x4249,0x4228,0x4228,0x3a08,0x4248,0x39e7,0x3a07,0x4208,0x4248,0x4229,0x31c7,0x4249,0x3a08,0x31a6,0x4249,0x3a08,0x39c7,0x4208,0x39e7,0x31e7,0x39e7,0x4228,0x4249,0x4249,0x39e7,0x39c7,0x39e7,0x39e8,0x39e8,0x31a7,0x39c7,0x39c8,0x31a6,0x39e7,0x4a49,0x4228,0x39e7,0x4249,0x4208,0x3a08,0x39c7,0x31a6,0x31c7,0x31e7,0x39e7,0x4229,0x3a08,0x31c7,0x31a6,0x39e7,0x31a7,0x4208,0x39e8,0x3a08,0x39e8,0x39e8,0x39e7,0x39c7,0x39c7,0x31a7,0x31c7,0x39e7,0x31a6,0x31a6,0x39e7,0x39e7, +0x2966,0x2966,0x39e7,0x3186,0x2986,0x31a7,0x3186,0x3186,0x31c7,0x31a7,0x31a7,0x31a7,0x2986,0x31a7,0x39c7,0x39c7,0x39e8,0x3a08,0x3a08,0x39e8,0x3a08,0x39e8,0x39e8,0x3a08,0x31a6,0x39e8,0x39e8,0x39e7,0x3a08,0x4229,0x39c7,0x3a07,0x4248,0x3a29,0x3a08,0x3a08,0x3a28,0x3a08,0x4249,0x3a08,0x39e7,0x4248,0x4228,0x39e8,0x4249,0x3a08,0x41e7,0x39c7,0x3a08,0x3a08,0x3a08,0x31c7,0x4248,0x3a08,0x39e8,0x4208,0x4208,0x4209,0x4229,0x39e8,0x4229,0x3a08,0x39e8,0x4229,0x4a8a,0x4a69,0x4a6a,0x4a8a,0x4229,0x39e8,0x39e9,0x4249,0x4249,0x4249,0x4a6a,0x39e8,0x4208,0x4208,0x4229,0x4208,0x4229,0x3a08,0x3a08,0x3a28,0x39e7,0x3a08,0x4a49,0x4208,0x39e7,0x4208,0x4249,0x3a28,0x3a08,0x4228,0x4249,0x4a49,0x528a,0x3a08,0x4a69,0x4228,0x39e7,0x4229,0x4249,0x4208,0x4228,0x4228,0x4a69,0x4a6a,0x4208,0x4229,0x4228,0x4249,0x4a49,0x4248,0x3a08,0x18a3,0x2104,0x18c3,0x62ef,0xe6fb,0xb595,0x8c51,0x4a49,0x18e3,0x18e3,0x18c3,0x18c3,0x2104,0x0841,0x0020,0x10a2,0x3166,0x2965,0x2965,0x2965,0x2965,0x4206,0x5a85,0x9425,0x62c4,0x2945,0x2945,0x2965,0x2965,0x2966,0x2965,0x0861,0x0020,0x10a2,0x10a2,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x2965,0x2965,0x2965,0x2965,0x62c6,0x5a85,0x39a5,0x83a5,0x83a4,0x3165,0x2965,0x3166,0x3186,0x3186,0x10a2,0x0841,0x1082,0x18c2,0x10a2,0x18e3,0x18c3,0x0020,0x1082,0x2965,0x3186,0x3166,0x3166,0x3186,0x4a46,0x5a85,0x5a65,0x9405,0x7305,0x3165,0x3186,0x3186,0x3186,0x31a7,0x1082,0x0841,0x0861,0x18c3,0x10a2,0x18a2,0x18c3,0x2104,0x4229,0x528b,0x630d,0x528b,0x2945,0x4249,0x4269,0x4a8a,0x4229,0x3a08,0x4a69,0x4a69,0x39e7,0x3a08,0x4249,0x3a08,0x3a08,0x4a69,0x4a8a,0x4208,0x4228,0x4a89,0x4a69,0x3a08,0x4228,0x4228,0x4208,0x4228,0x4228,0x4208,0x4208,0x4228,0x4229,0x39e8,0x39c7,0x4249,0x3a08,0x3a08,0x39e8,0x39c7,0x39e7,0x3a08,0x31e7,0x3a08,0x4248,0x3a08,0x3a08,0x4228,0x4249,0x3a08,0x39e8,0x4228,0x4208,0x39e7,0x4208,0x4249,0x4269,0x39e8,0x39e7,0x4a49,0x39e8,0x39e7,0x4208,0x4208,0x4249,0x31e7,0x3a07,0x3a07,0x39e7,0x3a08,0x31c7,0x39c7,0x4249,0x4228,0x39e7,0x39e7,0x39e8,0x4229,0x4208,0x4208,0x39e8,0x39c7,0x3a08,0x31a6,0x29a6,0x31c7,0x39e7,0x3a07,0x31a6,0x31a6,0x39c7,0x39c7,0x31a7,0x29a6,0x4248,0x3a28,0x31e7,0x3a08,0x3a08,0x31e7,0x3a08,0x39e7,0x39e7,0x3a07,0x39e7,0x39e7,0x39c7,0x3a08,0x31e7,0x4229,0x4208,0x39e8,0x4249,0x31a6,0x2965,0x2965,0x39c6,0x39e7, +0x31a6,0x31c7,0x31c6,0x2986,0x2986,0x2986,0x3186,0x31c6,0x31a6,0x31a7,0x31a7,0x31a7,0x31a7,0x31c7,0x3a07,0x39e7,0x29a6,0x39e8,0x4229,0x3a08,0x31c8,0x31c8,0x3a09,0x4209,0x4208,0x3a08,0x3a07,0x3a08,0x3a49,0x4229,0x31c7,0x4a69,0x4228,0x3a08,0x39e7,0x31c7,0x3a28,0x4a69,0x4228,0x39e7,0x4249,0x4248,0x39e7,0x3a08,0x3a07,0x3a07,0x4228,0x4208,0x4208,0x4228,0x4208,0x39e7,0x4249,0x4a8a,0x3a08,0x39e8,0x4208,0x4229,0x4a6a,0x39e8,0x4208,0x4228,0x4228,0x4a69,0x4a49,0x39c7,0x4a8a,0x4aaa,0x3a08,0x31a7,0x3a09,0x39e8,0x31c8,0x3a09,0x39e8,0x39e8,0x4a48,0x4a49,0x4249,0x4208,0x3a08,0x39e7,0x3a08,0x3a08,0x39e7,0x4228,0x4228,0x3a08,0x4249,0x4249,0x52aa,0x4249,0x4229,0x3a08,0x4a6a,0x4a69,0x4269,0x4249,0x39e7,0x3a08,0x4228,0x4229,0x4208,0x4228,0x4229,0x4229,0x4228,0x4a8a,0x4a69,0x4249,0x4a49,0x528a,0x4a69,0x4a8a,0x4249,0x18a3,0x18e3,0x18a3,0x5aae,0xe6fc,0xbd96,0x8451,0x4248,0x18e3,0x18e3,0x18c3,0x18c3,0x2104,0x0841,0x0841,0x10a2,0x3166,0x2965,0x2965,0x2965,0x2965,0x3185,0x3185,0x8be6,0x62c4,0x2945,0x2945,0x2965,0x2965,0x2966,0x2965,0x0861,0x0020,0x10a2,0x10a2,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x2966,0x2965,0x2965,0x2965,0x39c6,0x41e5,0x62c5,0x8bc5,0x5a84,0x2965,0x2965,0x2965,0x3165,0x3186,0x1082,0x0841,0x1082,0x18c2,0x10a2,0x18e3,0x18c3,0x0020,0x1082,0x2965,0x3186,0x3186,0x3166,0x3186,0x39a6,0x39c5,0x62e5,0x9c45,0x6ae4,0x3165,0x3186,0x3186,0x3186,0x31a6,0x1082,0x0820,0x0861,0x18a3,0x10a2,0x18c3,0x18c3,0x2104,0x3a08,0x4a6a,0x5aec,0x4a29,0x2124,0x4249,0x4249,0x4229,0x4229,0x4a8a,0x3a08,0x4249,0x4228,0x4228,0x4a49,0x4249,0x4249,0x4249,0x4a89,0x528a,0x4a49,0x4228,0x4208,0x31a7,0x4229,0x4a49,0x3a08,0x39e8,0x39c8,0x41e8,0x4208,0x4a49,0x4a69,0x4228,0x4228,0x4249,0x4a49,0x4229,0x41e8,0x4208,0x39e8,0x39e7,0x3a08,0x3a28,0x4228,0x4a69,0x3a08,0x31c7,0x4228,0x4248,0x39e7,0x39e7,0x3a08,0x4249,0x39e8,0x39e8,0x3a08,0x31a7,0x39c7,0x39e8,0x4208,0x4208,0x39e8,0x39e8,0x3a08,0x3a08,0x4228,0x3a28,0x3a08,0x3186,0x39e7,0x3186,0x39e8,0x4208,0x31a7,0x39e8,0x4208,0x39e8,0x4208,0x4a49,0x4208,0x4208,0x39e8,0x31c7,0x31e7,0x3a28,0x31e7,0x3a07,0x3a08,0x39e7,0x39e8,0x4228,0x3a08,0x31a7,0x39e7,0x4228,0x39e7,0x39e8,0x39c7,0x39c7,0x4228,0x4a69,0x4249,0x31e7,0x39e7,0x4249,0x4229,0x31a7,0x3a08,0x39e8,0x39e8,0x31a7,0x4208,0x31c6,0x31c6,0x31c6,0x31c7,0x31c7, +0x31c6,0x39e7,0x31a6,0x2986,0x2965,0x2986,0x4208,0x39c7,0x2986,0x31c7,0x39c8,0x3186,0x31a6,0x31a6,0x31c6,0x31a6,0x31c6,0x31c7,0x3a08,0x31e8,0x29a7,0x31c8,0x3a09,0x4229,0x4a49,0x4228,0x39c7,0x31e7,0x31e7,0x3a08,0x31c7,0x39e7,0x39e7,0x3a07,0x39e7,0x3a08,0x4249,0x4208,0x4248,0x39c7,0x39e8,0x4a69,0x4a69,0x4a49,0x4248,0x39e7,0x3a08,0x4a49,0x4a49,0x4208,0x4228,0x3a08,0x39e8,0x4a69,0x4249,0x528a,0x4a69,0x4228,0x4a69,0x4a69,0x4a69,0x4208,0x4228,0x39e7,0x4228,0x39e8,0x4a49,0x4249,0x3a07,0x4a69,0x3a07,0x3a08,0x3a08,0x4209,0x4229,0x4208,0x39e7,0x39e8,0x39e8,0x4228,0x4228,0x39e7,0x4208,0x4249,0x4a49,0x4228,0x4249,0x4249,0x4228,0x4229,0x4a6a,0x4229,0x4229,0x3a08,0x4a69,0x4a69,0x4249,0x3a28,0x3a08,0x3a08,0x4a49,0x4208,0x4228,0x4a69,0x4249,0x4249,0x4a6a,0x4229,0x4249,0x4a6a,0x4a49,0x4a49,0x4a8a,0x4a8a,0x4229,0x18a3,0x18e3,0x10a3,0x528d,0xdebb,0xb595,0x8451,0x4248,0x18e3,0x18e3,0x18c3,0x18c3,0x2104,0x0841,0x0841,0x10a2,0x2966,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x8bc6,0x62c4,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x0861,0x0020,0x10a2,0x10a2,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x2966,0x2966,0x2965,0x2965,0x39c5,0x6b25,0x8bc5,0x6ae4,0x39c5,0x2965,0x2965,0x2965,0x2965,0x3186,0x1082,0x0841,0x1082,0x18c2,0x1082,0x18e3,0x18c3,0x0020,0x1082,0x2965,0x3186,0x3186,0x2965,0x3165,0x4a45,0x5245,0x5245,0x8be5,0x8385,0x3185,0x3186,0x3186,0x3186,0x3186,0x1082,0x0841,0x1061,0x18a3,0x10a2,0x18c3,0x18e3,0x2104,0x39e8,0x4a4a,0x52ab,0x41e8,0x2124,0x3a28,0x4a8a,0x4228,0x4a8a,0x52aa,0x4228,0x4a49,0x4208,0x4a49,0x4a49,0x4229,0x4a69,0x4249,0x4249,0x4a49,0x4249,0x3a08,0x4a6a,0x39e8,0x4208,0x4a8a,0x4229,0x4a49,0x39e7,0x39e8,0x4208,0x4229,0x4228,0x3a07,0x4228,0x4208,0x4229,0x4208,0x4a29,0x41e8,0x4208,0x39c7,0x4228,0x4228,0x4228,0x3a08,0x3a08,0x31a6,0x4a69,0x4249,0x31a6,0x31a6,0x3a08,0x4269,0x39c7,0x39c7,0x31a6,0x39c7,0x39c7,0x4208,0x4229,0x31a7,0x3a28,0x3a28,0x3a28,0x4229,0x39e8,0x39e8,0x3a08,0x39e7,0x4a49,0x4208,0x39c7,0x4228,0x39e7,0x39e8,0x39c7,0x39e7,0x39e7,0x39c7,0x39c7,0x39e7,0x3a08,0x4a8a,0x3a08,0x31c7,0x3207,0x31c6,0x39e8,0x4a69,0x3a07,0x3a08,0x3a08,0x39e8,0x39e7,0x39e7,0x39e7,0x4208,0x39e7,0x39e7,0x39c7,0x4208,0x39e7,0x31c7,0x4248,0x4249,0x3a08,0x31a7,0x31a7,0x39e8,0x39e8,0x2986,0x31a6,0x4228,0x4228,0x31a6,0x29a6,0x4228, +0x31c6,0x31a6,0x2986,0x2966,0x2986,0x2966,0x39c7,0x39c7,0x31c7,0x39e8,0x4208,0x31a7,0x31a7,0x31c7,0x31a6,0x39c7,0x39e8,0x39e8,0x39e8,0x31a7,0x31c7,0x31c8,0x31e8,0x31c7,0x31c7,0x4208,0x39c7,0x39e7,0x39e7,0x39e7,0x39e8,0x3a08,0x3a08,0x4208,0x3a08,0x39e7,0x31a7,0x39c7,0x4228,0x4208,0x31c8,0x39e8,0x4249,0x4208,0x41e8,0x4208,0x4208,0x4208,0x4208,0x4a6a,0x3a08,0x4228,0x31a7,0x3a08,0x4a8a,0x4228,0x4228,0x52aa,0x4a69,0x52aa,0x4249,0x4228,0x39e7,0x3a28,0x3a28,0x4228,0x4249,0x39e8,0x4229,0x4a6a,0x4a49,0x3a07,0x4249,0x39e8,0x3a08,0x4249,0x4249,0x4208,0x4208,0x4229,0x4228,0x4228,0x4249,0x4249,0x4208,0x39e8,0x4228,0x4229,0x39e8,0x3a08,0x3a08,0x3a08,0x39e7,0x4229,0x4229,0x4229,0x3a49,0x3a28,0x39e8,0x4208,0x4228,0x4228,0x4a6a,0x4a69,0x3a08,0x3a08,0x52aa,0x4249,0x4228,0x4a49,0x4a6a,0x4249,0x3a29,0x4229,0x4208,0x18a3,0x2104,0x18c3,0x4a4c,0xce39,0xa534,0x7c10,0x4228,0x18e3,0x18e3,0x18c3,0x18a3,0x2104,0x0861,0x0841,0x1082,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x3165,0x83a6,0x62a4,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x0841,0x0841,0x10a2,0x10a2,0x1082,0x2104,0x1082,0x0020,0x0861,0x2945,0x3165,0x2965,0x2965,0x2945,0x5aa5,0x9c45,0x8bc4,0x62c4,0x5245,0x2965,0x2965,0x2965,0x2965,0x3185,0x1082,0x0841,0x1082,0x18c3,0x10a2,0x18e3,0x18c2,0x0020,0x1082,0x2965,0x3186,0x3186,0x3186,0x3165,0x62e5,0x8385,0x5a64,0x83c5,0x8385,0x3185,0x3186,0x3186,0x3186,0x3186,0x1082,0x0841,0x1082,0x18c3,0x10a2,0x18c3,0x18e3,0x2104,0x39c7,0x4229,0x4a6a,0x39c8,0x2104,0x4aaa,0x3a28,0x4228,0x4249,0x4249,0x4a8a,0x4a49,0x4a69,0x4a49,0x4a69,0x5acb,0x4a8a,0x3a08,0x4229,0x4a49,0x4228,0x4228,0x4248,0x4228,0x4a49,0x4228,0x3a08,0x3a28,0x3a28,0x4249,0x3a08,0x39e8,0x39e8,0x3a08,0x39e7,0x4208,0x39e7,0x3a07,0x4a49,0x3a08,0x3a08,0x39e7,0x4228,0x4a69,0x4a89,0x31c7,0x39e7,0x3a07,0x39e7,0x4228,0x39e7,0x39c7,0x39c6,0x4a69,0x4228,0x3a08,0x4227,0x31a7,0x3a08,0x3a08,0x4249,0x39e8,0x39e8,0x31a6,0x39e8,0x4208,0x31c6,0x3207,0x31c7,0x39e7,0x4208,0x4228,0x31c7,0x39e8,0x39e7,0x31c7,0x31a6,0x31e7,0x3a08,0x31c7,0x4208,0x4a69,0x31a6,0x39e8,0x31c7,0x3a08,0x39e7,0x4249,0x4229,0x4228,0x4228,0x3a08,0x3a07,0x39e7,0x31a6,0x31a6,0x31c7,0x39e7,0x39e7,0x31e7,0x31c7,0x39e7,0x3a08,0x31a6,0x31c6,0x3a08,0x4229,0x31c7,0x4228,0x4228,0x31e7,0x29a6,0x31e7,0x39e7,0x31c6,0x31a7,0x31c7,0x39e8, +0x2986,0x2986,0x31a6,0x31a6,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x39c7,0x39e8,0x31a6,0x39e7,0x39e8,0x4228,0x4208,0x3187,0x2987,0x31c7,0x3a08,0x31e8,0x31c7,0x31c7,0x3a28,0x39e7,0x4229,0x4229,0x31c7,0x3a08,0x39e8,0x39e7,0x3a08,0x39e7,0x31c7,0x39e7,0x39e8,0x39e8,0x39e8,0x4249,0x4a69,0x4228,0x3a08,0x4228,0x4228,0x39e8,0x3a08,0x3a09,0x39c7,0x4249,0x4249,0x3a08,0x4229,0x3a08,0x3a28,0x52aa,0x3a08,0x39e7,0x4228,0x4228,0x4269,0x39e7,0x4228,0x3a28,0x3a28,0x3a28,0x3a28,0x39e8,0x4a49,0x4a49,0x39e7,0x39e8,0x4229,0x4249,0x31e8,0x3a08,0x4249,0x4269,0x4229,0x4a8a,0x4249,0x4228,0x4248,0x4249,0x3a08,0x4228,0x3a08,0x39e8,0x39c7,0x39e7,0x3a07,0x4249,0x4249,0x3a28,0x4249,0x4249,0x3a28,0x3a08,0x4229,0x4229,0x4228,0x4228,0x4208,0x4228,0x4249,0x4a69,0x4a69,0x4a6a,0x4a6a,0x4228,0x4228,0x4a6a,0x4249,0x3a08,0x4a6a,0x4249,0x18c3,0x2945,0x18e3,0x41ea,0xbdb7,0x9cd3,0x7bcf,0x4208,0x18e3,0x18e3,0x18c3,0x18a3,0x2124,0x10a2,0x1081,0x1082,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x3165,0x62e6,0x4a25,0x2945,0x2965,0x2965,0x2965,0x2965,0x2945,0x0861,0x0861,0x18c2,0x1082,0x1082,0x2104,0x10a2,0x0861,0x0861,0x2945,0x3165,0x2965,0x2945,0x2945,0x62e5,0x83c5,0x7b45,0x7325,0x62c5,0x3165,0x2965,0x2965,0x2965,0x2965,0x1082,0x0861,0x10a2,0x18c3,0x10a2,0x18e3,0x18c3,0x0861,0x1082,0x2965,0x3166,0x3186,0x3186,0x3186,0x4a46,0x7b66,0x7b45,0x7b65,0x5a65,0x3185,0x3186,0x3186,0x3186,0x2965,0x1082,0x0841,0x10a2,0x18c3,0x10a2,0x18c3,0x18e3,0x2124,0x31a7,0x4208,0x4a49,0x31a7,0x2104,0x4249,0x4249,0x4228,0x4228,0x4a69,0x4a49,0x4a49,0x4a49,0x39e7,0x39e7,0x52aa,0x4a69,0x4228,0x4a6a,0x4228,0x4249,0x4a8a,0x4228,0x4228,0x4208,0x4a49,0x4248,0x3a28,0x3a28,0x4249,0x4a69,0x39c8,0x39e8,0x4229,0x4229,0x4208,0x39e7,0x4a49,0x4a69,0x4228,0x39e7,0x4249,0x4249,0x3a28,0x4a49,0x4228,0x4228,0x4249,0x4249,0x4229,0x4228,0x39e7,0x4208,0x39e8,0x39e8,0x39e7,0x4248,0x4228,0x4a69,0x39e8,0x4229,0x4208,0x4228,0x31a7,0x39c7,0x39c7,0x39e7,0x4249,0x39e7,0x3a07,0x3a08,0x39c7,0x39c7,0x39e7,0x4229,0x31a6,0x31c6,0x31e7,0x39e7,0x39c7,0x4208,0x4249,0x39e8,0x39e7,0x31c6,0x4228,0x39e7,0x4209,0x39e8,0x31c7,0x3a08,0x4228,0x31a7,0x4208,0x4249,0x31a6,0x31a7,0x31a7,0x31c7,0x3a08,0x39e8,0x3a08,0x4249,0x31c7,0x39e7,0x4228,0x4228,0x3a08,0x39e7,0x39e7,0x4228,0x31a6,0x31a6,0x39c7,0x39c7,0x3186,0x2986,0x3186, +0x2965,0x2966,0x31a6,0x39c7,0x2986,0x2986,0x31a6,0x2986,0x31a6,0x31a7,0x39e8,0x31c7,0x31e8,0x3208,0x3a49,0x3a08,0x31c7,0x31a7,0x39e7,0x4228,0x39e7,0x31e7,0x31e7,0x3a07,0x31c7,0x4249,0x52ab,0x31c7,0x3a08,0x4228,0x31a6,0x4a8a,0x4229,0x2986,0x31c7,0x39e8,0x4249,0x4269,0x4228,0x3a08,0x4228,0x4a69,0x4228,0x31c7,0x3a08,0x4229,0x4228,0x3a08,0x39e7,0x4229,0x4228,0x3a08,0x4229,0x4249,0x3a28,0x4229,0x3a28,0x4249,0x4a69,0x39e8,0x4208,0x4a69,0x4249,0x4228,0x3a08,0x3a08,0x39e8,0x3a08,0x4a6a,0x4a6a,0x31c7,0x3a08,0x4228,0x4248,0x4248,0x4228,0x31e7,0x4269,0x4a8a,0x4228,0x4a49,0x4a49,0x4228,0x3a08,0x4a8a,0x4249,0x4228,0x4228,0x39e7,0x4a69,0x4a89,0x4248,0x4228,0x4249,0x4209,0x3a08,0x4249,0x4228,0x4248,0x4a69,0x4228,0x39e7,0x3a08,0x4a69,0x4a49,0x4a6a,0x4229,0x528a,0x4a69,0x4229,0x4a49,0x4249,0x4249,0x52cb,0x4a69,0x18a3,0x2125,0x18e3,0x3188,0xa535,0x8c71,0x738e,0x3a07,0x18e3,0x18e3,0x18e3,0x18c3,0x2925,0x2104,0x2104,0x18e3,0x2945,0x2965,0x2945,0x2945,0x2965,0x2965,0x3165,0x39c5,0x31a5,0x2965,0x2965,0x2965,0x2965,0x3186,0x2944,0x18e3,0x18e3,0x18c3,0x1082,0x1082,0x2104,0x2104,0x2103,0x18e3,0x2924,0x2965,0x3165,0x2965,0x2945,0x41e5,0x4a25,0x4a25,0x4a25,0x4205,0x3165,0x2965,0x3185,0x3185,0x2945,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x18e3,0x2124,0x2104,0x18e3,0x2925,0x3166,0x3186,0x3186,0x3186,0x31a6,0x4a26,0x5266,0x4a26,0x39a6,0x3186,0x31a6,0x3186,0x3186,0x2945,0x18c2,0x10a2,0x18c3,0x18c3,0x10a2,0x18c3,0x18e3,0x2104,0x3187,0x39e8,0x4209,0x3186,0x2124,0x3a08,0x4249,0x4a8a,0x4228,0x4a8a,0x4249,0x4249,0x52aa,0x4228,0x4a48,0x4a48,0x3a08,0x4249,0x4a49,0x3a07,0x4228,0x4229,0x4249,0x4228,0x4208,0x4a49,0x4228,0x39e7,0x3a08,0x4a69,0x4249,0x39e8,0x3a08,0x4249,0x3a08,0x4228,0x4249,0x4228,0x4228,0x528a,0x4208,0x4229,0x4228,0x3a08,0x4228,0x3a08,0x39e8,0x4229,0x4228,0x39e7,0x31c7,0x3a08,0x4a69,0x39e7,0x4228,0x4228,0x3a07,0x4228,0x31c7,0x31c7,0x4228,0x3a08,0x39e7,0x3a08,0x39e8,0x4249,0x3a08,0x528a,0x39e8,0x4249,0x4228,0x4a49,0x39e7,0x39c7,0x4228,0x4228,0x39c7,0x39e7,0x4a49,0x29a6,0x31c7,0x3a07,0x3a28,0x3a08,0x39e7,0x3a07,0x39c7,0x31a6,0x4208,0x31a6,0x52ab,0x52ab,0x39e7,0x31c7,0x3a08,0x31c7,0x39c7,0x31c7,0x4249,0x39c7,0x31a7,0x3a08,0x39e8,0x31c6,0x4228,0x4229,0x31c7,0x39e8,0x2986,0x31a7,0x39e7,0x31c7,0x31a6,0x2986,0x31c7,0x2986,0x31a6,0x31c7, +0x2986,0x3186,0x39c7,0x3186,0x31c7,0x2986,0x2986,0x31a6,0x31c7,0x31a6,0x31c7,0x31e7,0x3208,0x3a08,0x4a8a,0x4229,0x39c7,0x39e7,0x39c7,0x39e8,0x4208,0x3a08,0x39e7,0x4a69,0x39e7,0x3a08,0x39e7,0x3a08,0x4a8a,0x4228,0x39e8,0x3a08,0x31c7,0x3a08,0x39e8,0x31a7,0x39e8,0x3a08,0x4228,0x39c7,0x39e8,0x3a08,0x39e7,0x3a08,0x4249,0x4249,0x4a8a,0x3a08,0x39e7,0x4a6a,0x3a08,0x39e7,0x4228,0x4a69,0x4228,0x4228,0x4229,0x4228,0x4249,0x3a08,0x4208,0x4208,0x4a49,0x4229,0x4a49,0x4229,0x4208,0x3a28,0x4249,0x4249,0x3a08,0x39e8,0x4a49,0x4a69,0x3a07,0x4248,0x4228,0x3a08,0x39e8,0x4229,0x4229,0x5aab,0x4228,0x3a08,0x3a08,0x3a08,0x4229,0x4a49,0x4209,0x4249,0x4249,0x4249,0x4228,0x4229,0x3a08,0x3a09,0x4229,0x4229,0x4a69,0x52aa,0x3a08,0x3a08,0x4249,0x4aaa,0x4aaa,0x4269,0x3a28,0x4269,0x4229,0x4229,0x4a69,0x4a8a,0x52ca,0x4a8a,0x4228,0x18a2,0x18c3,0x18c3,0x2967,0x9493,0x8410,0x6b6e,0x39e7,0x18e3,0x18e3,0x18e3,0x18c3,0x2945,0x2965,0x2965,0x2924,0x2945,0x2945,0x2924,0x2924,0x2945,0x2945,0x2945,0x2945,0x2945,0x2965,0x2945,0x2965,0x3165,0x31a6,0x3165,0x2965,0x2944,0x2103,0x1082,0x1082,0x2124,0x2965,0x31a6,0x3185,0x2965,0x3165,0x3185,0x2965,0x2945,0x2945,0x2945,0x2945,0x2965,0x3185,0x2965,0x2965,0x3186,0x3186,0x3185,0x3165,0x3165,0x20e4,0x18a2,0x1082,0x18e3,0x2965,0x3186,0x2945,0x2945,0x31a6,0x3186,0x3186,0x3166,0x2965,0x3186,0x3186,0x3165,0x39a6,0x31a6,0x39c7,0x31a6,0x3186,0x2924,0x2924,0x2124,0x2104,0x18c3,0x10a2,0x18e3,0x18e3,0x2104,0x3186,0x39e8,0x39e8,0x2966,0x2124,0x3a08,0x4a49,0x4a49,0x4249,0x4a69,0x4228,0x4a6a,0x52aa,0x4a49,0x4a89,0x52aa,0x4a69,0x4249,0x4228,0x4269,0x4249,0x4249,0x4229,0x4228,0x528a,0x4228,0x4228,0x39e7,0x4208,0x4228,0x4228,0x4248,0x3a28,0x4228,0x4228,0x39e8,0x4249,0x4a6a,0x4208,0x4229,0x3a08,0x39e8,0x3a08,0x4208,0x4a69,0x4249,0x3a09,0x3a09,0x3a08,0x4249,0x39e7,0x3a08,0x4228,0x4228,0x4228,0x3a08,0x31c7,0x4a69,0x3a07,0x31a6,0x39e7,0x3a08,0x3a08,0x39e7,0x39e7,0x4a6a,0x4229,0x4208,0x39c7,0x4208,0x3a08,0x4a49,0x3a08,0x3a08,0x39e7,0x39e7,0x4248,0x39e7,0x41e8,0x31a7,0x4208,0x4a49,0x3a08,0x4249,0x4228,0x31c6,0x4228,0x4228,0x4a69,0x31c7,0x3a08,0x4249,0x39e8,0x4209,0x39e8,0x39e7,0x4228,0x39e7,0x4229,0x39c7,0x4208,0x4229,0x4249,0x4a89,0x4228,0x3a08,0x31a7,0x3a08,0x31a7,0x31c7,0x3a08,0x31c7,0x2986,0x31a6,0x31c6,0x31c7,0x3a08,0x31c6, +0x2986,0x3186,0x31a7,0x31a6,0x31c7,0x2986,0x2986,0x2986,0x31a7,0x31c7,0x39e8,0x31c7,0x3a08,0x4229,0x31c7,0x31a7,0x31c7,0x4a69,0x39e8,0x31e8,0x3a08,0x4249,0x39e8,0x3a08,0x39e8,0x39c8,0x31a7,0x4229,0x528a,0x3a08,0x3a08,0x39e7,0x31c7,0x3a08,0x39e8,0x31c7,0x31c7,0x31e7,0x4228,0x39e7,0x4208,0x39e7,0x3a08,0x4228,0x39e8,0x4228,0x4249,0x4249,0x4a8a,0x4269,0x3a08,0x3a28,0x4249,0x4249,0x4249,0x4208,0x4a49,0x3a08,0x4a69,0x4248,0x4228,0x4a49,0x4a6a,0x4a49,0x4a49,0x4249,0x3a08,0x3a08,0x4209,0x426a,0x4249,0x4229,0x4229,0x4229,0x4249,0x4249,0x4249,0x4208,0x4208,0x39e8,0x4208,0x4a6a,0x4228,0x3a28,0x4249,0x4a69,0x4228,0x4228,0x4a8a,0x4249,0x3a29,0x4229,0x4249,0x4229,0x4249,0x3a28,0x4269,0x3a08,0x3a08,0x39e8,0x4208,0x4249,0x4208,0x4229,0x4aaa,0x4a69,0x4249,0x4249,0x3208,0x4249,0x4a69,0x4a69,0x4a8a,0x4a8a,0x4228,0x18a2,0x18c3,0x18a3,0x2926,0x83f1,0x73cf,0x634d,0x39c7,0x18c3,0x18c3,0x18c3,0x18c3,0x2965,0x2945,0x2124,0x2104,0x2104,0x20e4,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x20e3,0x20e3,0x2104,0x2104,0x2104,0x2924,0x2124,0x2124,0x2944,0x2104,0x10a2,0x1082,0x2124,0x3185,0x2965,0x2965,0x2945,0x2944,0x2924,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2924,0x2124,0x2124,0x2945,0x2945,0x2945,0x2945,0x3165,0x2104,0x18a2,0x1082,0x20e4,0x3166,0x3165,0x2925,0x2924,0x2965,0x2945,0x2945,0x2104,0x20e4,0x2104,0x2924,0x2124,0x2945,0x2965,0x3165,0x2944,0x2104,0x20e4,0x2124,0x2124,0x2124,0x18c3,0x1082,0x18e3,0x20e3,0x2104,0x3186,0x39c7,0x31a7,0x2945,0x2924,0x4a69,0x528a,0x41e7,0x4248,0x4228,0x4249,0x4249,0x4a6a,0x4a69,0x4249,0x4a49,0x4a69,0x4249,0x39e8,0x4249,0x4a69,0x4a49,0x4a69,0x4a8a,0x4228,0x4228,0x4a69,0x3a08,0x4229,0x4208,0x4249,0x4249,0x4249,0x3a08,0x39e8,0x4208,0x4208,0x3a08,0x4249,0x3a08,0x4229,0x4208,0x4208,0x4228,0x4228,0x4248,0x3a08,0x31e7,0x4208,0x4229,0x39e7,0x4228,0x4228,0x4228,0x4228,0x4a49,0x4229,0x39c7,0x4208,0x39e7,0x4a69,0x3a08,0x39e7,0x3a07,0x4228,0x4229,0x39c8,0x4208,0x4208,0x39c7,0x31c7,0x4249,0x39e7,0x3a08,0x39e7,0x4a69,0x4228,0x31c7,0x39e7,0x3a08,0x31c7,0x3a08,0x3a08,0x3a08,0x3a07,0x31c6,0x39e7,0x4249,0x4a69,0x31c7,0x31c7,0x3a08,0x39e8,0x4249,0x39e8,0x3a08,0x4228,0x39e7,0x3186,0x4208,0x4228,0x4229,0x4229,0x4208,0x4228,0x39e8,0x39c7,0x3a08,0x39e7,0x31e7,0x31c7,0x39e7,0x31a6,0x31a6,0x3a07,0x39e7,0x4208,0x39e7, +0x2987,0x2966,0x39e7,0x31a6,0x2145,0x31c7,0x31c7,0x2986,0x31a6,0x31a7,0x31c7,0x31a7,0x31c7,0x31e7,0x39e8,0x3a08,0x4249,0x39e8,0x31c7,0x39e8,0x31e8,0x39e8,0x39e8,0x39e7,0x39e7,0x39c7,0x39c7,0x4208,0x4249,0x3a08,0x3a07,0x3a28,0x39e7,0x39c7,0x31c7,0x31a7,0x31e8,0x3a28,0x39e7,0x31c7,0x39e7,0x3a28,0x4249,0x4249,0x3a08,0x39e7,0x3a28,0x4a69,0x4228,0x4249,0x3a08,0x3a08,0x4249,0x3a28,0x4249,0x3a08,0x39e8,0x4a69,0x4a6a,0x4249,0x4249,0x4a4a,0x4a6a,0x4228,0x4249,0x4228,0x4208,0x4a49,0x4249,0x4249,0x4249,0x3a08,0x39e8,0x4229,0x4a49,0x4208,0x4228,0x4228,0x4208,0x4a49,0x4269,0x4249,0x4a49,0x4249,0x4a89,0x4a69,0x3a08,0x4248,0x4a69,0x4228,0x4249,0x4a69,0x31c7,0x4249,0x4269,0x3a28,0x428a,0x4249,0x4229,0x3a08,0x4a69,0x4a69,0x4229,0x4a69,0x4a29,0x4229,0x4a6a,0x4229,0x426a,0x4229,0x4249,0x4a49,0x5acb,0x4a6a,0x4a6a,0x18c3,0x18a2,0x18c3,0x2125,0x738f,0x738e,0x5b0c,0x39c6,0x18c3,0x18c3,0x18c3,0x18c3,0x2124,0x18e3,0x18c3,0x18c3,0x18a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18e3,0x20e3,0x10a2,0x1082,0x2104,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a2,0x18a3,0x18c2,0x18c3,0x18a3,0x18c3,0x18c3,0x18c2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x20e3,0x2104,0x18a2,0x1082,0x18e3,0x2925,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x10a2,0x18a3,0x18c3,0x18e3,0x2104,0x18c3,0x10a2,0x20e4,0x20e4,0x2104,0x2966,0x31a7,0x3187,0x2945,0x2945,0x4a69,0x4a49,0x528a,0x5aab,0x52aa,0x4269,0x4a6a,0x4249,0x4a69,0x4249,0x4a8a,0x4a6a,0x52cb,0x4a8a,0x4269,0x4249,0x4269,0x4a8a,0x4249,0x3a28,0x3a28,0x4228,0x3a08,0x4249,0x4249,0x4248,0x4a49,0x4228,0x4228,0x39c7,0x39e8,0x4229,0x31c7,0x4228,0x4249,0x3a08,0x31e7,0x3a07,0x39e7,0x39e7,0x4228,0x4228,0x3a08,0x3a28,0x3a08,0x3a08,0x4a49,0x3a08,0x3a08,0x4228,0x3a08,0x4229,0x39e7,0x39c7,0x39e8,0x4a49,0x39e7,0x4a69,0x4228,0x3a08,0x4228,0x39e8,0x4249,0x4229,0x41e8,0x39e7,0x4a69,0x4a69,0x4228,0x4228,0x3a08,0x39e7,0x31c7,0x3a08,0x3a07,0x3a08,0x39e7,0x31c7,0x3a08,0x39e7,0x4228,0x39e7,0x3a07,0x4208,0x3a08,0x39e7,0x3a07,0x3a08,0x4a8a,0x4269,0x31a6,0x3a08,0x39e7,0x31c7,0x39e8,0x41e8,0x4229,0x31a7,0x3a08,0x39e8,0x4228,0x4208,0x31c7,0x31e7,0x4228,0x4248,0x31e7,0x4228,0x3a07,0x39c7,0x3186,0x3186,0x3a08, +0x31a7,0x2986,0x31a7,0x2965,0x31c7,0x31c7,0x29a6,0x2986,0x39c7,0x39e8,0x2986,0x31c7,0x31c7,0x31a7,0x3a08,0x31e7,0x31c7,0x3187,0x31a7,0x31a7,0x4208,0x4249,0x31c6,0x4229,0x4208,0x39c7,0x39e7,0x39c7,0x3a08,0x39e8,0x3a08,0x4228,0x3a08,0x39e7,0x39c7,0x31c7,0x3a29,0x3a28,0x3a07,0x3a08,0x31c7,0x3a08,0x31e8,0x3a08,0x52ab,0x3a28,0x3a08,0x4249,0x4249,0x3a28,0x4249,0x4249,0x4a69,0x4228,0x4a69,0x4249,0x4228,0x4249,0x4229,0x4229,0x3a09,0x4249,0x3a28,0x3a08,0x4249,0x3a08,0x4a49,0x4a6a,0x4228,0x4269,0x4249,0x39e8,0x4249,0x4228,0x4228,0x39e8,0x4228,0x4249,0x39e8,0x4a8a,0x5b0c,0x4a8a,0x4a69,0x4a8a,0x4a69,0x4249,0x4a69,0x3a08,0x4249,0x4228,0x4a69,0x4a69,0x39e7,0x4a8a,0x4a8a,0x3a08,0x3a08,0x4249,0x4249,0x39e8,0x4249,0x4249,0x4228,0x4a49,0x4a6a,0x52aa,0x4249,0x4208,0x4a8a,0x4229,0x4228,0x4a8a,0x52ab,0x4249,0x4228,0x18a3,0x18a2,0x18e3,0x2105,0x632e,0x632d,0x5acb,0x31a6,0x18c3,0x18c3,0x18a3,0x18c2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x18a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a3,0x10a2,0x10a2,0x18a2,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x18a3,0x10a2,0x18a2,0x2104,0x20e4,0x18e3,0x2945,0x3186,0x3166,0x2945,0x2965,0x4a49,0x4a49,0x52aa,0x4a6a,0x528a,0x528a,0x4a6a,0x4a6a,0x4a69,0x4249,0x4a69,0x4a69,0x4269,0x4a8a,0x4249,0x3a28,0x3a08,0x4249,0x3a08,0x4248,0x4228,0x4228,0x4248,0x4249,0x3a28,0x4228,0x4248,0x4248,0x4a69,0x4a69,0x39e7,0x4208,0x4208,0x3a08,0x4228,0x4a49,0x3a08,0x4249,0x39c7,0x39c7,0x4208,0x31c7,0x4249,0x4249,0x3a08,0x3a08,0x4228,0x4228,0x4248,0x4228,0x4a69,0x4249,0x3a08,0x3a08,0x4228,0x4a69,0x4228,0x3a08,0x4249,0x4248,0x3a08,0x3a08,0x31c7,0x4208,0x4229,0x4269,0x3a28,0x4228,0x3a08,0x3a08,0x39e7,0x3a08,0x39e7,0x2986,0x4229,0x4228,0x39e8,0x39e8,0x4208,0x4208,0x39e7,0x4249,0x3a07,0x39c7,0x4208,0x3a08,0x39e7,0x4249,0x3a08,0x3a08,0x39e7,0x39e7,0x31c7,0x39e8,0x4208,0x39e7,0x4208,0x29a6,0x31c7,0x39e8,0x3a08,0x31a6,0x31a6,0x4208,0x31a7,0x31c7,0x31c7,0x3a07,0x31a6,0x31a6,0x2966,0x31a6,0x3186, +0x2966,0x2966,0x31a6,0x31c7,0x31e7,0x31e7,0x3a08,0x3186,0x31c7,0x31c7,0x31c7,0x39e7,0x39e7,0x39e7,0x3a08,0x31a7,0x31a7,0x31c7,0x39e8,0x3a08,0x4a29,0x4249,0x4228,0x3a08,0x4229,0x3a08,0x4208,0x39c7,0x39c7,0x39e7,0x39e8,0x4229,0x4249,0x3a08,0x31c6,0x4228,0x4249,0x39e7,0x4228,0x3a08,0x39e8,0x39e8,0x39e8,0x31e8,0x4a8a,0x4229,0x31e8,0x4a6a,0x4a6a,0x31e7,0x4249,0x4269,0x3a28,0x4249,0x3a28,0x4228,0x4249,0x4249,0x4229,0x4229,0x4229,0x4228,0x4228,0x4229,0x4269,0x4a8a,0x3a08,0x4229,0x4249,0x3a08,0x39e7,0x4228,0x4a69,0x4269,0x4aaa,0x4228,0x4228,0x4228,0x4209,0x4208,0x4228,0x4249,0x4229,0x4249,0x4a69,0x4228,0x3a08,0x3a29,0x4a6a,0x4229,0x4a49,0x52aa,0x528a,0x4228,0x39e7,0x3a08,0x4249,0x4a49,0x4a49,0x4a49,0x4229,0x4229,0x4249,0x3a08,0x4249,0x4a49,0x39e7,0x4208,0x4228,0x4a8a,0x4a49,0x4a8a,0x4249,0x4249,0x4208,0x10a2,0x10a2,0x18c3,0x2104,0x5aec,0x630c,0x528b,0x31a6,0x18c3,0x18c3,0x18a2,0x18a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2104,0x20e3,0x18e3,0x2125,0x2965,0x2945,0x2124,0x3166,0x4a69,0x4249,0x4a69,0x4a69,0x4a69,0x52aa,0x4249,0x52aa,0x4aaa,0x4a69,0x4269,0x4aaa,0x4a8a,0x4249,0x4a49,0x4208,0x4a69,0x4a69,0x39c7,0x4a8a,0x4a69,0x4228,0x4249,0x4228,0x4228,0x4228,0x4248,0x3a28,0x4228,0x5289,0x4228,0x39e7,0x4228,0x4208,0x39e7,0x4228,0x3a07,0x39e7,0x39e7,0x39c7,0x4228,0x39e7,0x3a07,0x3a28,0x4229,0x3a08,0x4228,0x4248,0x4248,0x3a07,0x4228,0x4a69,0x4208,0x4228,0x3a08,0x4228,0x3a08,0x4a69,0x39e7,0x3a07,0x39e8,0x39c7,0x39e7,0x4228,0x3a08,0x4249,0x4228,0x39e8,0x31c7,0x39e7,0x39c7,0x4228,0x4a49,0x39c7,0x4a49,0x39e8,0x39e7,0x3a28,0x39e7,0x4208,0x39e8,0x31e8,0x4228,0x4228,0x4248,0x39e7,0x31a6,0x4208,0x4249,0x4a49,0x39e7,0x4208,0x3a08,0x39c7,0x4a49,0x39c7,0x31a7,0x3a08,0x4229,0x31a6,0x39e7,0x3a08,0x39c7,0x4208,0x31a7,0x3187,0x31c7,0x31a6,0x3a07,0x31a6,0x39c7,0x39c7,0x2965, +0x31a7,0x39c7,0x4228,0x39c7,0x31a7,0x39e7,0x39e8,0x31a7,0x39e8,0x31a7,0x2986,0x39e8,0x3a08,0x4249,0x4249,0x39e8,0x31a6,0x31e8,0x31c7,0x39c7,0x4229,0x4208,0x3a08,0x31c8,0x31e8,0x31e7,0x39e7,0x4228,0x3a08,0x4208,0x4249,0x3a08,0x3a08,0x3a08,0x39e7,0x4208,0x39e8,0x39e7,0x39e7,0x3a28,0x4249,0x4249,0x39e8,0x3a08,0x4229,0x4229,0x3a08,0x4a4a,0x3a08,0x4249,0x3a28,0x3a28,0x3a28,0x4229,0x3a28,0x4249,0x4a8a,0x52aa,0x4a6a,0x4229,0x3a08,0x39e7,0x4a8a,0x3a28,0x4269,0x4a8a,0x4208,0x4229,0x4269,0x3a08,0x4249,0x4a49,0x4248,0x4269,0x4a69,0x39e7,0x39e7,0x4229,0x4a6a,0x3a08,0x3a08,0x4229,0x52ab,0x4249,0x4a69,0x4a6a,0x4249,0x4249,0x526a,0x4a8a,0x4249,0x4249,0x4248,0x3a08,0x3a08,0x4269,0x4249,0x4229,0x4a49,0x52aa,0x4a8a,0x4228,0x4269,0x4249,0x4249,0x39e8,0x4208,0x4208,0x4a49,0x4a69,0x4229,0x4228,0x4249,0x4a6a,0x4208,0x10a2,0x10a2,0x18c3,0x18e4,0x52ac,0x5aec,0x4a6a,0x3186,0x18c3,0x18c3,0x18a2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x18a2,0x18c3,0x18a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2124,0x20e3,0x18e3,0x2124,0x2945,0x2925,0x2104,0x2945,0x4a69,0x4a8a,0x4a69,0x4a49,0x4a49,0x528a,0x4249,0x4249,0x4269,0x4249,0x4a6a,0x4249,0x4229,0x4228,0x4228,0x4208,0x528a,0x528a,0x4228,0x4228,0x3a08,0x39e8,0x3a08,0x4a49,0x4208,0x4228,0x39e7,0x4228,0x4228,0x4a8a,0x39e8,0x4249,0x4208,0x4228,0x39e7,0x39c7,0x39e7,0x4228,0x3a28,0x31e7,0x4228,0x39e7,0x3a08,0x4249,0x4229,0x3a07,0x39e7,0x39e7,0x4248,0x4a69,0x39e7,0x39e8,0x4249,0x39e7,0x3a08,0x4249,0x3a08,0x4228,0x3a08,0x39e7,0x31c6,0x39e7,0x3a28,0x4249,0x4208,0x39e7,0x3a08,0x3a08,0x4229,0x3a08,0x39e7,0x4228,0x3a08,0x3a07,0x4208,0x4208,0x39c7,0x4228,0x3a08,0x3187,0x39e8,0x31c7,0x4229,0x39c7,0x3a07,0x4208,0x3a08,0x3a07,0x4229,0x4229,0x39e8,0x39e8,0x39e8,0x39c7,0x4229,0x4249,0x39e8,0x39e7,0x39e8,0x31a6,0x31e7,0x39e7,0x39e7,0x31a6,0x39c7,0x31c7,0x31a7,0x31a7,0x4a49,0x39e7,0x31a6,0x39c7,0x31a6, +0x3a08,0x39e8,0x2986,0x31a6,0x31a6,0x39c7,0x31a7,0x39c7,0x3a08,0x31c7,0x31a7,0x31a7,0x31c7,0x4208,0x4229,0x31e7,0x31c7,0x3a08,0x29c7,0x31c7,0x39e8,0x39a7,0x31c8,0x31e8,0x31e7,0x3a28,0x4249,0x3a07,0x3a28,0x3a07,0x4207,0x4228,0x39e7,0x4249,0x4a49,0x4208,0x39e7,0x39e8,0x3a08,0x4249,0x4249,0x4249,0x3a08,0x3a08,0x3a29,0x4228,0x4269,0x4249,0x4229,0x4a49,0x4228,0x5b0c,0x4a8a,0x3a08,0x3a28,0x52ab,0x4a49,0x4a49,0x4a69,0x4248,0x3a28,0x4269,0x4249,0x3a28,0x4249,0x4a49,0x41e8,0x4208,0x4229,0x4228,0x4a49,0x4228,0x4a69,0x4a6a,0x4249,0x4228,0x3a08,0x4249,0x4269,0x4a6a,0x4a6a,0x528a,0x528a,0x4a49,0x4249,0x52cb,0x4a8a,0x4249,0x4228,0x4248,0x4248,0x4a8a,0x4228,0x4249,0x4a89,0x4228,0x4228,0x4208,0x4208,0x52ab,0x4208,0x4249,0x4249,0x4229,0x4249,0x4208,0x4229,0x4a49,0x4a69,0x4228,0x4228,0x4228,0x4229,0x4a49,0x4a49,0x18c3,0x10a2,0x18c3,0x20e4,0x528b,0x5acb,0x4a49,0x3185,0x18c3,0x18c3,0x18c2,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x2124,0x20e3,0x18c3,0x2104,0x2125,0x2104,0x20e4,0x2124,0x4249,0x4a69,0x52aa,0x4229,0x4a6a,0x4a49,0x4249,0x4249,0x4229,0x4a69,0x4a8a,0x4a69,0x4a49,0x52cb,0x4a69,0x4a89,0x4248,0x4aaa,0x4248,0x39e7,0x4229,0x4228,0x3a08,0x4228,0x4228,0x39e7,0x39e8,0x4208,0x4208,0x4208,0x4208,0x4228,0x4a69,0x4249,0x39e7,0x4228,0x4a8a,0x4a89,0x4228,0x3a07,0x3a08,0x31c7,0x4208,0x4a6a,0x3a08,0x39e7,0x3a08,0x3a08,0x528a,0x4a49,0x39e8,0x3a08,0x4229,0x39c7,0x39c7,0x4208,0x4229,0x4228,0x3a08,0x4249,0x31c6,0x3a08,0x31c7,0x52ab,0x4208,0x39e8,0x4208,0x31a6,0x3a08,0x3a08,0x39e7,0x4229,0x3a08,0x4228,0x31a6,0x31a6,0x39e8,0x3a08,0x3a08,0x39e8,0x39e8,0x39e8,0x4228,0x4208,0x4208,0x4208,0x3a08,0x31c7,0x3a08,0x4228,0x4229,0x39c7,0x4208,0x31a7,0x39e8,0x4249,0x3a08,0x31a7,0x31a7,0x31c7,0x39e7,0x31a6,0x31c7,0x39e7,0x4208,0x3a08,0x39e7,0x39e8,0x31a6,0x31a6,0x3186,0x2945,0x31c6, +0x39c7,0x31c6,0x2145,0x31c6,0x39e7,0x31a6,0x31a6,0x31a6,0x39e7,0x39e7,0x39c8,0x31a7,0x2986,0x2986,0x39e8,0x3a08,0x31c7,0x3a08,0x3208,0x29a6,0x31a7,0x39c7,0x39e8,0x31c7,0x4208,0x4249,0x31e8,0x29a6,0x31c7,0x39e8,0x4229,0x4228,0x4249,0x4a69,0x39c7,0x3a07,0x4228,0x3a28,0x3a28,0x31e7,0x4249,0x4269,0x4249,0x3a08,0x3a28,0x4249,0x4a8a,0x3a08,0x4a49,0x4a49,0x4228,0x52aa,0x4249,0x3a08,0x4249,0x4249,0x4a69,0x5289,0x4a69,0x39e7,0x4228,0x4a69,0x4249,0x52cb,0x4249,0x4249,0x4229,0x4249,0x4228,0x4a89,0x4248,0x4a69,0x4249,0x4249,0x4a8a,0x52cb,0x3a08,0x4248,0x4249,0x4249,0x4a69,0x52ab,0x4a8a,0x4a8a,0x52ab,0x4a49,0x4a69,0x4a69,0x4a69,0x4228,0x4228,0x4aaa,0x3a08,0x4249,0x4228,0x4a69,0x4a8a,0x4249,0x3a08,0x4a8a,0x4a8a,0x4a69,0x39e7,0x4249,0x4229,0x528a,0x4a69,0x4249,0x4a8a,0x4a69,0x4228,0x3a08,0x4a69,0x4228,0x4228,0x18c3,0x10a2,0x18e3,0x18e4,0x4a4a,0x528a,0x4249,0x3186,0x18c3,0x18e3,0x18c3,0x18c2,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x2124,0x18e3,0x18c3,0x2104,0x2125,0x2104,0x18e3,0x2104,0x4228,0x4a69,0x52aa,0x4248,0x4a49,0x4a49,0x4249,0x4a69,0x4269,0x4a69,0x52aa,0x52ab,0x4249,0x4a6a,0x4a8a,0x4269,0x4a89,0x4248,0x4228,0x39e7,0x4229,0x4228,0x4228,0x3a08,0x39e7,0x3a07,0x4249,0x39c7,0x39e7,0x4208,0x4a49,0x4208,0x39e7,0x4228,0x4228,0x4228,0x4228,0x4a49,0x4228,0x4228,0x4228,0x4229,0x39e8,0x4a6a,0x4228,0x3a08,0x39e7,0x4208,0x4a49,0x4208,0x4248,0x4249,0x39e7,0x31e7,0x3a08,0x4249,0x4208,0x4208,0x3a08,0x4228,0x3a07,0x3a08,0x4249,0x39c7,0x4a49,0x4228,0x39c7,0x4208,0x31e7,0x39e8,0x39e7,0x3a08,0x3a28,0x31e7,0x39c7,0x31a6,0x4249,0x3a08,0x31c7,0x39e7,0x31c7,0x31c7,0x3a08,0x3a08,0x39e7,0x39e7,0x39e7,0x31c7,0x3a07,0x4228,0x4208,0x3a08,0x39e8,0x4208,0x4a6a,0x31a7,0x39c7,0x39e8,0x3a08,0x3a08,0x31a6,0x39e7,0x39e7,0x39e7,0x31e7,0x31e7,0x39e7,0x39c7,0x4208,0x39c7,0x39c7,0x31a6,0x31a6, +0x2965,0x2986,0x2986,0x31c7,0x3a08,0x31e7,0x31e7,0x31a6,0x39c7,0x39c7,0x31a7,0x31c7,0x31e8,0x31e8,0x31a7,0x3a08,0x39c7,0x4228,0x4229,0x3a08,0x31e7,0x31a7,0x39c7,0x31a7,0x4208,0x31a7,0x31a7,0x31c7,0x4a6a,0x3a08,0x39e8,0x39e8,0x4249,0x4209,0x3a07,0x4248,0x4249,0x3a28,0x4249,0x3a08,0x39c7,0x4208,0x41e8,0x4a49,0x4a49,0x5b0b,0x4a89,0x3a07,0x3a08,0x4a69,0x528a,0x39e7,0x4229,0x4a49,0x4a49,0x4a49,0x528a,0x4249,0x5acb,0x4229,0x4208,0x4a69,0x4229,0x4a69,0x4249,0x4229,0x4a69,0x4228,0x4a8a,0x4248,0x4a69,0x4a69,0x52ab,0x4a8a,0x4a8a,0x4a8a,0x4269,0x4249,0x4a69,0x4a8a,0x3a28,0x4249,0x4a6a,0x4a49,0x5acb,0x52aa,0x5acb,0x630c,0x4a69,0x4229,0x4a6a,0x4a69,0x4249,0x4269,0x4249,0x4249,0x3a08,0x4249,0x428a,0x3a08,0x4249,0x3a08,0x4208,0x4a69,0x4a49,0x4a49,0x4249,0x4a8a,0x426a,0x3a08,0x3a08,0x3a08,0x4249,0x4248,0x4228,0x18a3,0x10a2,0x18c3,0x18c3,0x4229,0x4a6a,0x4229,0x3186,0x18c3,0x20e3,0x18c3,0x18c2,0x18c2,0x18a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18a2,0x2104,0x18c3,0x18c3,0x2104,0x2104,0x2104,0x18e4,0x2104,0x4228,0x4a69,0x4a69,0x4248,0x4a69,0x4a49,0x4249,0x4a69,0x4aaa,0x4229,0x4a6a,0x4a49,0x4a69,0x4a6a,0x4249,0x4249,0x528a,0x4a49,0x3a08,0x4229,0x4228,0x528a,0x4229,0x4228,0x4228,0x3a08,0x39e7,0x39e7,0x4208,0x4208,0x4208,0x39c7,0x4a6a,0x31e7,0x3a08,0x3a08,0x4208,0x39e7,0x39e7,0x3a07,0x4a69,0x52aa,0x3a07,0x31a7,0x4249,0x4228,0x3a07,0x39e7,0x3a07,0x4208,0x4228,0x3a08,0x4228,0x31c7,0x4248,0x4249,0x4249,0x4228,0x3a08,0x4228,0x3a08,0x4248,0x3a08,0x39e8,0x4208,0x4208,0x31a7,0x4249,0x4248,0x31c7,0x3a08,0x3a08,0x4248,0x39c7,0x31e7,0x31c6,0x3a07,0x31a6,0x31c7,0x3a08,0x31a6,0x4228,0x3a07,0x39e7,0x39e7,0x3a08,0x4228,0x4249,0x4208,0x39e7,0x39c7,0x4207,0x4228,0x4229,0x4209,0x39e8,0x3186,0x39c7,0x3a08,0x3207,0x29a6,0x31c7,0x31a6,0x31a7,0x31c7,0x31e7,0x39e7,0x39e7,0x4228,0x4208,0x31a6,0x39e7,0x39e7, +0x31a6,0x31a6,0x31c7,0x31c7,0x31c7,0x31e7,0x31c7,0x39c7,0x31a7,0x31a6,0x31c7,0x39e8,0x3a28,0x3208,0x2985,0x31c7,0x31c7,0x3a08,0x31a7,0x3a08,0x39e7,0x3a07,0x31c6,0x4208,0x4208,0x39e7,0x3a08,0x3a28,0x4249,0x3a09,0x4229,0x4208,0x4229,0x4a49,0x4228,0x4228,0x4a8a,0x4249,0x4249,0x39e8,0x3a08,0x4249,0x3a08,0x4249,0x4a49,0x39e7,0x4228,0x3a08,0x4248,0x3a08,0x4229,0x4229,0x4a49,0x4228,0x4229,0x4249,0x4228,0x4a8a,0x4a6a,0x4228,0x528a,0x4229,0x4a69,0x4249,0x4249,0x4a69,0x4228,0x4a69,0x52aa,0x4a6a,0x4a8a,0x39e7,0x4a8a,0x4a49,0x4a69,0x4a6a,0x4249,0x4a8a,0x4a6a,0x52cb,0x4229,0x4a49,0x4aaa,0x4a8a,0x52aa,0x4a49,0x632c,0x5aec,0x4a6a,0x4249,0x4249,0x4249,0x4a8a,0x4a8a,0x4249,0x4208,0x4228,0x4229,0x4249,0x4208,0x4a49,0x4228,0x4a69,0x4269,0x4a8a,0x4a6a,0x4a49,0x4a8a,0x4a69,0x3a08,0x3a08,0x4269,0x4269,0x4a8a,0x4229,0x18a2,0x10a2,0x20e4,0x18c3,0x4208,0x4a29,0x4208,0x3186,0x18e3,0x20e3,0x18e3,0x18c3,0x18e3,0x2104,0x20e3,0x20e3,0x20e3,0x20e3,0x18e3,0x20e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x10a2,0x18c3,0x18e3,0x18c3,0x18c3,0x18c3,0x1082,0x1082,0x18c3,0x2104,0x2104,0x2104,0x2103,0x2124,0x2104,0x2104,0x20e3,0x18e3,0x18e3,0x18c2,0x18e3,0x18e3,0x18a2,0x18a2,0x18c2,0x18a2,0x18c3,0x18c2,0x18c3,0x10a2,0x1082,0x1082,0x18c3,0x2104,0x2104,0x2103,0x20e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c2,0x18c3,0x2103,0x18c3,0x10a2,0x18a2,0x2104,0x1082,0x20e4,0x2104,0x18e4,0x18e3,0x18e4,0x2124,0x3a08,0x4a8a,0x4a49,0x4a89,0x5acb,0x528a,0x4228,0x4a8a,0x52cb,0x4249,0x3a08,0x4a49,0x4a8a,0x528a,0x4249,0x4249,0x4a69,0x4228,0x4228,0x528a,0x4228,0x4a69,0x4a69,0x4228,0x39e7,0x4a49,0x4a8a,0x39e7,0x4228,0x3a08,0x39e8,0x4228,0x4229,0x3a08,0x31e7,0x4208,0x4229,0x4228,0x4208,0x39e7,0x4269,0x4228,0x4228,0x39e7,0x4a69,0x4249,0x4228,0x3a07,0x4208,0x4248,0x4248,0x4249,0x4228,0x4207,0x4a48,0x4208,0x4208,0x4208,0x4228,0x4228,0x4249,0x4208,0x39e7,0x4a49,0x4208,0x39e8,0x4228,0x3a08,0x4228,0x39e7,0x4249,0x3a28,0x39e7,0x39e7,0x39c7,0x3a08,0x39e7,0x31a6,0x31c7,0x31c7,0x31a6,0x4228,0x39e7,0x39e7,0x4228,0x39e7,0x3a08,0x4228,0x39e7,0x39e7,0x39c7,0x39c7,0x39c7,0x31a6,0x39c7,0x39e7,0x39c7,0x31a7,0x3a08,0x31c7,0x39e7,0x3a08,0x39c7,0x39e7,0x39e7,0x39e7,0x31c6,0x31c7,0x3a07,0x39c7,0x31a6,0x39e7,0x3a08, +0x31a6,0x29a6,0x31c6,0x31a6,0x2966,0x29a6,0x29a6,0x31c7,0x31a7,0x39c7,0x4228,0x31c7,0x39e8,0x31e7,0x31c6,0x29a6,0x31a7,0x4208,0x39e7,0x39c7,0x4228,0x4248,0x4228,0x4228,0x4208,0x3a08,0x39e7,0x3a08,0x39e7,0x39e7,0x39e7,0x4228,0x4208,0x3a08,0x4209,0x3a08,0x4249,0x4249,0x3a08,0x31c7,0x31e7,0x4269,0x3a29,0x3a08,0x3a08,0x39e8,0x4a8a,0x4228,0x4228,0x3a08,0x4229,0x4229,0x4229,0x4249,0x4228,0x4229,0x4a49,0x4a6a,0x4a6a,0x4248,0x4a49,0x4249,0x4a69,0x3a29,0x4a8a,0x52aa,0x4a69,0x4228,0x4229,0x4a49,0x4229,0x528a,0x4a49,0x4228,0x528a,0x52aa,0x4228,0x4a6a,0x52cb,0x4a8a,0x4208,0x52ab,0x5aeb,0x4a89,0x4a69,0x4229,0x52ab,0x4208,0x4249,0x4a6a,0x4249,0x4a69,0x4249,0x4a8a,0x4229,0x4249,0x4a69,0x4228,0x4a49,0x4229,0x4a69,0x52aa,0x4a69,0x4a8a,0x4a8a,0x3a09,0x4a6a,0x4229,0x4a69,0x4a49,0x3a28,0x4229,0x426a,0x4aab,0x4a6a,0x18a3,0x10a2,0x2104,0x18c3,0x39e8,0x4209,0x39e8,0x31a6,0x2103,0x18e3,0x18e3,0x18c3,0x2104,0x2945,0x2945,0x2944,0x2944,0x3165,0x2965,0x3165,0x2965,0x2945,0x2944,0x2944,0x2944,0x2944,0x2945,0x2944,0x2103,0x2124,0x2924,0x2924,0x2124,0x18c3,0x1082,0x1082,0x20e3,0x2965,0x3185,0x2965,0x2965,0x3185,0x3165,0x3186,0x3165,0x2965,0x2965,0x2944,0x2965,0x2965,0x2944,0x2924,0x2124,0x2924,0x2924,0x2944,0x2924,0x18c3,0x1082,0x1082,0x18c3,0x2965,0x39c6,0x31a6,0x3165,0x2965,0x3165,0x3185,0x3185,0x3185,0x2945,0x2965,0x2945,0x2965,0x3165,0x2945,0x3165,0x2945,0x2924,0x2945,0x3165,0x20e3,0x10a2,0x18a2,0x20e3,0x10a2,0x2924,0x2104,0x18e3,0x18e3,0x18c3,0x2945,0x4248,0x4a69,0x4a8a,0x4a49,0x4a8a,0x4a49,0x4208,0x4a69,0x4a89,0x3a28,0x4249,0x4249,0x4a69,0x4a69,0x4249,0x4a8a,0x4a69,0x4228,0x4a69,0x4a6a,0x4a49,0x52ab,0x4228,0x39e7,0x39e7,0x4228,0x4249,0x3a08,0x4228,0x3a07,0x4249,0x4228,0x3a08,0x4a89,0x4228,0x4228,0x4a69,0x4a69,0x3a08,0x39e7,0x4228,0x3a08,0x3a08,0x3a07,0x4a49,0x4a49,0x4228,0x39e7,0x4a49,0x4208,0x4208,0x4249,0x4a69,0x4a69,0x4228,0x4208,0x39e8,0x39e8,0x4a49,0x4228,0x39e7,0x4207,0x4208,0x4249,0x4229,0x3a08,0x3a08,0x3a08,0x39e8,0x31a7,0x39e8,0x39e7,0x39e7,0x39c7,0x39e8,0x31a7,0x39e7,0x39c7,0x39e7,0x31a6,0x31e7,0x3a08,0x3a07,0x39e7,0x31c6,0x39e7,0x39e7,0x3a08,0x39e7,0x4208,0x39e7,0x4208,0x4208,0x31a6,0x31c7,0x31e7,0x4228,0x39e7,0x39c7,0x39c7,0x31c7,0x31c7,0x3a08,0x4208,0x4208,0x39e7,0x3a08,0x31c7,0x31a6,0x31c7,0x39e7,0x31a6,0x31c6, +0x31c6,0x3a08,0x2986,0x2165,0x2145,0x31c7,0x31e7,0x3a08,0x39e7,0x39e8,0x31c7,0x3186,0x39c7,0x4208,0x39e7,0x3186,0x39c7,0x3a08,0x3a29,0x31e7,0x31c7,0x31a6,0x39e7,0x3a08,0x4228,0x39e8,0x31c7,0x39e8,0x3a08,0x3a07,0x4228,0x4228,0x4228,0x4228,0x424a,0x3a08,0x3a08,0x4a6a,0x3a08,0x3a08,0x4249,0x4229,0x3a08,0x3a08,0x39e8,0x4208,0x4229,0x41e8,0x4208,0x4229,0x4249,0x4229,0x4208,0x4249,0x39e8,0x4208,0x4a49,0x4208,0x4228,0x4269,0x4269,0x4249,0x4249,0x4249,0x52cb,0x4a8a,0x4249,0x4249,0x4a8a,0x3a28,0x4269,0x52aa,0x4a69,0x52ab,0x52aa,0x4a8a,0x4a89,0x4249,0x4249,0x52cb,0x5acb,0x5aec,0x52eb,0x4aaa,0x52aa,0x52cb,0x52ab,0x4208,0x4a6a,0x52aa,0x4229,0x4229,0x4229,0x4269,0x4249,0x4a89,0x4a8a,0x4228,0x4aaa,0x4a8a,0x4228,0x4a69,0x4229,0x4249,0x4249,0x3a08,0x4229,0x4249,0x4229,0x4249,0x426a,0x4a8a,0x4a69,0x4249,0x4228,0x18a3,0x10a2,0x18c3,0x18c3,0x39c7,0x41e8,0x39e7,0x31a6,0x2103,0x18c3,0x18e3,0x18c3,0x2104,0x2124,0x2124,0x18e3,0x2924,0x3165,0x2965,0x2945,0x2945,0x2945,0x2944,0x2965,0x2944,0x2945,0x2945,0x2965,0x2944,0x2924,0x20e3,0x2945,0x2124,0x18c3,0x1082,0x1082,0x18e3,0x2945,0x2965,0x2103,0x2944,0x3185,0x2965,0x3186,0x2965,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2944,0x2924,0x2103,0x2945,0x2944,0x18c3,0x1082,0x1082,0x18c3,0x2945,0x39c6,0x2945,0x2944,0x3165,0x3165,0x3185,0x39a6,0x3186,0x2965,0x3185,0x3186,0x3186,0x39a6,0x3186,0x3186,0x3185,0x2104,0x2945,0x2945,0x20e3,0x10a2,0x10a2,0x18e3,0x18a2,0x2945,0x2124,0x18e3,0x18e3,0x18c3,0x2945,0x4a8a,0x4228,0x4a69,0x4a6a,0x528a,0x4a49,0x4228,0x4a69,0x4228,0x3a28,0x4269,0x3a28,0x4228,0x4a49,0x39e8,0x4249,0x4a89,0x4a89,0x4228,0x4a49,0x4249,0x4229,0x3a28,0x3a08,0x4228,0x4249,0x31c7,0x3a28,0x3a28,0x3a28,0x3a08,0x4228,0x52aa,0x4a89,0x3a07,0x4a69,0x4a49,0x3a07,0x3a08,0x39c7,0x4228,0x4a69,0x4a69,0x4a69,0x4228,0x4228,0x3a07,0x4248,0x4a49,0x4229,0x4a49,0x39e7,0x4a89,0x4a69,0x3a08,0x4a6a,0x4229,0x4208,0x39e8,0x3a07,0x39c6,0x4228,0x4228,0x4249,0x4249,0x4249,0x4228,0x4208,0x4a49,0x4229,0x39c7,0x31a7,0x39e7,0x39e7,0x39c7,0x4208,0x39c7,0x39c7,0x3a08,0x39e7,0x31c7,0x39e7,0x3a07,0x39e7,0x4a69,0x39e7,0x31c6,0x3a08,0x39e7,0x3a08,0x39e7,0x3a07,0x4228,0x39e7,0x4249,0x39e8,0x39e8,0x39e7,0x31c7,0x39c7,0x31a6,0x39e7,0x4228,0x31a6,0x39e7,0x4a69,0x39e7,0x39e7,0x31c7,0x2986,0x39e7,0x31c7,0x39e7, +0x31c7,0x3186,0x2965,0x31c6,0x31a6,0x31c7,0x39e7,0x39e7,0x39e8,0x31a7,0x31a7,0x31a7,0x39c7,0x4228,0x39e8,0x31c6,0x3a07,0x3a28,0x29a7,0x31e8,0x31c7,0x3a08,0x4228,0x3a08,0x3a28,0x3a08,0x31c7,0x31e7,0x3a08,0x3a08,0x4229,0x39e8,0x52ab,0x4269,0x3a29,0x3a08,0x4229,0x4a4a,0x39e8,0x39e8,0x4229,0x3a08,0x3a08,0x4228,0x4228,0x3a08,0x39e8,0x3a08,0x3a08,0x31e7,0x4269,0x4249,0x3a08,0x5acb,0x4a49,0x31e7,0x3a08,0x4229,0x4208,0x4a49,0x4a8a,0x4249,0x4249,0x4249,0x4229,0x4a8a,0x5b0c,0x4a69,0x528a,0x4a6a,0x4a69,0x4a69,0x4aaa,0x4a6a,0x4a8a,0x4aaa,0x4a8a,0x4a6a,0x4a49,0x4a49,0x4a49,0x4a49,0x4249,0x52cb,0x52ec,0x4a8a,0x4249,0x4a6a,0x4a8a,0x4229,0x424a,0x424a,0x4a4a,0x4229,0x4248,0x4a89,0x4a69,0x52aa,0x4a6a,0x4aaa,0x4249,0x3a08,0x4a49,0x52aa,0x528a,0x4a69,0x4a49,0x4a49,0x4249,0x4228,0x4a49,0x4229,0x528a,0x528a,0x4a8a,0x18c3,0x1082,0x18c3,0x18c3,0x31a7,0x39c7,0x39c7,0x3185,0x18e3,0x18c3,0x18e3,0x18c3,0x2104,0x18c3,0x1082,0x0861,0x2945,0x2945,0x2944,0x2924,0x2124,0x2124,0x2924,0x2945,0x2104,0x2124,0x2924,0x2944,0x2945,0x2965,0x2104,0x18c3,0x18a2,0x10a2,0x1082,0x1082,0x18c3,0x18e3,0x18c3,0x1082,0x2124,0x2945,0x2924,0x2945,0x2924,0x2124,0x2124,0x2924,0x2924,0x2924,0x2944,0x2924,0x2945,0x2945,0x18c3,0x18c3,0x18e3,0x10a2,0x10a2,0x1082,0x18c3,0x2104,0x20e3,0x18c3,0x2944,0x2944,0x2944,0x2945,0x2945,0x2944,0x2124,0x2944,0x2945,0x2945,0x2945,0x2945,0x3165,0x3186,0x18a2,0x18c3,0x18e3,0x18c3,0x10a2,0x10a2,0x18c3,0x18e3,0x2945,0x20e4,0x18e4,0x18e3,0x18c3,0x2925,0x4229,0x4208,0x4208,0x4a49,0x4a6a,0x4a8a,0x3a08,0x4a69,0x4228,0x4228,0x4a89,0x4a69,0x4a69,0x4249,0x3a08,0x4228,0x4a49,0x4229,0x4229,0x4a49,0x4a6a,0x4229,0x4a49,0x3a08,0x4229,0x52aa,0x4208,0x4a49,0x4a69,0x4228,0x31c7,0x4229,0x528a,0x39e8,0x3a08,0x4228,0x4249,0x4228,0x3a07,0x4228,0x4228,0x3a08,0x4228,0x4228,0x4a8a,0x4228,0x3a08,0x4228,0x4a69,0x3a08,0x4249,0x4228,0x4248,0x31c7,0x4228,0x4249,0x4249,0x39e7,0x4228,0x4228,0x4228,0x4a49,0x39e7,0x3a08,0x4228,0x3a08,0x4249,0x4a69,0x4248,0x4249,0x3a08,0x39c7,0x39c7,0x31c7,0x39e8,0x4249,0x4208,0x39c7,0x39e7,0x31a7,0x39c7,0x39e7,0x39e7,0x4229,0x4228,0x3a08,0x31c7,0x3a08,0x31e7,0x31c7,0x31e8,0x31e7,0x3a28,0x3a08,0x39e8,0x31a7,0x39a7,0x3186,0x31c7,0x3a08,0x3186,0x31c7,0x31c7,0x31a7,0x39e8,0x4209,0x3187,0x39c7,0x3a07,0x2985,0x39e7,0x31a6,0x3186, +0x31a6,0x2986,0x31c7,0x3a08,0x31c7,0x2986,0x31c7,0x31a7,0x2986,0x31c7,0x39e7,0x39e8,0x39e8,0x39e8,0x4228,0x4228,0x4a89,0x3a08,0x31c7,0x3a29,0x3a08,0x4229,0x3a08,0x39e8,0x31c8,0x39e8,0x3a08,0x4249,0x31c7,0x3a08,0x39e8,0x39c7,0x4208,0x3a08,0x39e8,0x4228,0x39e8,0x39e8,0x39e8,0x3a08,0x3a08,0x39e8,0x39e7,0x39e7,0x3a08,0x4228,0x52ab,0x528a,0x4229,0x3a08,0x4a69,0x4a8a,0x3a08,0x528a,0x4a6a,0x3a28,0x3a08,0x4a49,0x4228,0x4208,0x4249,0x4228,0x4229,0x4229,0x4228,0x4249,0x5acb,0x4228,0x4a49,0x5aeb,0x4a8a,0x52cb,0x4269,0x3a08,0x52cb,0x4a8a,0x4a6a,0x4249,0x4a69,0x52cb,0x4249,0x4a8a,0x426a,0x426a,0x52ab,0x4a8a,0x4aab,0x4269,0x4a69,0x4229,0x4a6a,0x4a6a,0x4249,0x3a08,0x4a8a,0x52ca,0x4249,0x4a8a,0x4249,0x4249,0x4a6a,0x4229,0x4a29,0x4a49,0x4a49,0x528a,0x4a6a,0x4a6a,0x4a69,0x4a49,0x4a49,0x526a,0x4a6a,0x52ab,0x4a8a,0x18c3,0x10a2,0x18c3,0x18c3,0x3166,0x39c7,0x31a7,0x2945,0x18c3,0x18c3,0x18c3,0x18c3,0x18e3,0x0861,0x0841,0x1082,0x3186,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2924,0x2944,0x2965,0x2965,0x2965,0x3185,0x3165,0x1082,0x0861,0x10a2,0x1082,0x1082,0x18c3,0x1082,0x0841,0x10a2,0x2965,0x2945,0x2924,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x2944,0x2945,0x2945,0x3165,0x2103,0x0861,0x1082,0x10a2,0x10a2,0x1082,0x18c3,0x10a2,0x0861,0x18e3,0x2945,0x2945,0x2945,0x2945,0x2944,0x2124,0x2924,0x2944,0x2925,0x2924,0x2925,0x2925,0x2945,0x31a6,0x18c3,0x0861,0x1082,0x18c3,0x1082,0x10a2,0x18c3,0x2104,0x2924,0x18c3,0x18e3,0x18e3,0x18c3,0x2104,0x4249,0x4228,0x4a49,0x4208,0x4a8a,0x4a8a,0x4229,0x52aa,0x4a6a,0x4229,0x4249,0x4a49,0x4228,0x4249,0x4228,0x4249,0x4208,0x4228,0x4229,0x4229,0x3a08,0x4208,0x4229,0x4208,0x4208,0x4208,0x4208,0x4208,0x4a69,0x4228,0x4228,0x4249,0x39e8,0x39e8,0x3a08,0x4229,0x39e8,0x3a08,0x3a08,0x4249,0x4248,0x4208,0x4228,0x4228,0x4249,0x4228,0x4249,0x4aaa,0x4a6a,0x31c6,0x4249,0x4249,0x3a08,0x3a08,0x39e7,0x31e7,0x4228,0x4208,0x4228,0x4249,0x3a08,0x4228,0x3a08,0x3a08,0x4228,0x3a08,0x4249,0x4249,0x4228,0x39e7,0x3a08,0x3a08,0x31c7,0x39e8,0x39e8,0x4228,0x3a08,0x31a6,0x39c7,0x3a08,0x39e7,0x39e8,0x39e7,0x31c7,0x31c7,0x39e8,0x39c7,0x39e7,0x3a08,0x31c7,0x39e8,0x3a07,0x31e7,0x4208,0x4208,0x4208,0x39e8,0x39c7,0x29a6,0x39e7,0x31c7,0x31a6,0x4228,0x4229,0x39e8,0x4208,0x39e8,0x3186,0x2986,0x31a6,0x31a6,0x31a7,0x31a6, +0x39e7,0x3a08,0x31a7,0x2986,0x2986,0x2966,0x39e8,0x31c7,0x3a28,0x4248,0x4228,0x31a7,0x31c7,0x31c7,0x3a08,0x4228,0x39e7,0x31c7,0x31c7,0x31e7,0x3a08,0x39e8,0x39e7,0x31a6,0x39e7,0x4228,0x3a08,0x4229,0x39e8,0x4a6a,0x4248,0x31c6,0x39e8,0x4229,0x31c7,0x39e7,0x4208,0x4208,0x4208,0x31c7,0x4228,0x4208,0x39e8,0x4228,0x3a08,0x4249,0x4a8a,0x4a69,0x4228,0x39e8,0x3a08,0x4249,0x39e7,0x4269,0x4249,0x4228,0x4a69,0x4a49,0x4229,0x3a28,0x4a69,0x4228,0x3a08,0x4228,0x3a08,0x4248,0x52aa,0x4a69,0x4a49,0x52aa,0x4a8a,0x4a8a,0x52cb,0x3a28,0x52aa,0x52aa,0x4a8a,0x4a8a,0x52aa,0x52aa,0x4aaa,0x4a8a,0x4aaa,0x4a6a,0x4a8a,0x4a69,0x52aa,0x52eb,0x4a8a,0x4249,0x4249,0x4a8a,0x4a69,0x4208,0x4a8a,0x4249,0x426a,0x4a8a,0x4a69,0x4208,0x4229,0x52aa,0x4228,0x4a69,0x4a49,0x4a8a,0x4249,0x4aaa,0x52aa,0x4a6a,0x4a49,0x4a69,0x4249,0x4a8a,0x52cb,0x18c3,0x10a2,0x18c3,0x18c3,0x2965,0x31a6,0x3186,0x2924,0x18c3,0x18e3,0x18c3,0x18a2,0x18c3,0x0841,0x0841,0x1082,0x3165,0x2945,0x2945,0x2945,0x2945,0x2945,0x2965,0x39a5,0x41e5,0x3185,0x2965,0x2965,0x2965,0x2965,0x3186,0x1061,0x0841,0x10a2,0x1082,0x1082,0x10a2,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2945,0x2965,0x3166,0x3185,0x41e5,0x41e5,0x39c5,0x3185,0x2965,0x2965,0x2965,0x2965,0x2124,0x0841,0x0841,0x10a2,0x10a2,0x1082,0x18c3,0x0861,0x0841,0x2104,0x2945,0x2965,0x2965,0x2965,0x2965,0x31a5,0x4205,0x41e5,0x39a5,0x2945,0x2945,0x2945,0x2965,0x3186,0x20e3,0x0841,0x0861,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x2104,0x18a3,0x18c3,0x18c3,0x18e3,0x18e3,0x4228,0x4248,0x4249,0x4a49,0x528a,0x4249,0x3a08,0x4a8a,0x4249,0x4a49,0x4228,0x4a49,0x3a08,0x4228,0x4248,0x4249,0x4249,0x3a28,0x4229,0x4228,0x3a07,0x4228,0x4a69,0x4a49,0x4208,0x39e8,0x4a49,0x4228,0x4229,0x4249,0x3a28,0x4249,0x3a08,0x4249,0x4a6a,0x4228,0x4229,0x4208,0x4249,0x4249,0x4228,0x39e7,0x4a49,0x4208,0x4229,0x4a69,0x3a28,0x4a8a,0x4a49,0x3a08,0x3a08,0x4249,0x4249,0x3a08,0x39e7,0x3a08,0x4249,0x4228,0x4228,0x3a07,0x3a07,0x39e7,0x4228,0x4249,0x4228,0x4248,0x4248,0x39e7,0x4209,0x39e7,0x31c7,0x31c7,0x39c7,0x31a7,0x31a7,0x3a08,0x4228,0x31c7,0x4249,0x3a08,0x31c7,0x31a6,0x39e7,0x31e7,0x3207,0x31e7,0x3a08,0x4228,0x39c7,0x39e7,0x4249,0x31a6,0x39e7,0x4228,0x39c7,0x3a28,0x39e8,0x41e8,0x3a08,0x3a08,0x39e8,0x3a08,0x3a08,0x4228,0x4208,0x31a6,0x31c7,0x31a6,0x2986,0x31a6,0x31c7,0x2986,0x31a6, +0x31c7,0x3a08,0x31a7,0x3186,0x31c6,0x39e7,0x31c7,0x31c7,0x39e7,0x39e7,0x4248,0x4248,0x39e7,0x31c7,0x39e7,0x31c7,0x39e7,0x3a08,0x31c7,0x39e7,0x4249,0x31c7,0x3a08,0x4a49,0x4208,0x4208,0x4228,0x4249,0x4229,0x3a09,0x3a07,0x4228,0x3a08,0x31c8,0x31c8,0x3a08,0x4229,0x39e8,0x4208,0x4208,0x39c7,0x4249,0x4228,0x4249,0x4249,0x31c7,0x39e7,0x39e7,0x3a08,0x4228,0x39e8,0x39c7,0x39c7,0x4a69,0x3a08,0x3a08,0x4228,0x4228,0x4249,0x4249,0x4a69,0x4229,0x4249,0x4a8a,0x4249,0x4289,0x4249,0x4229,0x4a6a,0x4a6a,0x4249,0x4228,0x4a8a,0x52cb,0x52aa,0x52ab,0x4a6a,0x52cb,0x4a69,0x4a8a,0x52eb,0x4a89,0x52aa,0x52cb,0x4a6a,0x3a08,0x52aa,0x5aeb,0x4a8a,0x4a8a,0x4a8a,0x4aaa,0x4aaa,0x4249,0x4249,0x4209,0x4a49,0x528a,0x528a,0x3a08,0x4249,0x528a,0x528a,0x4228,0x4a69,0x4a8a,0x4249,0x4249,0x4249,0x4249,0x5b0c,0x52eb,0x4229,0x5acb,0x52aa,0x18c3,0x10a2,0x18c3,0x18c3,0x2945,0x3186,0x2966,0x2124,0x18c3,0x18e3,0x18c3,0x18a2,0x18c3,0x0841,0x0020,0x1082,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x3185,0x62e5,0x7b65,0x39c4,0x2965,0x2965,0x2965,0x2965,0x3165,0x0861,0x0020,0x10a2,0x1082,0x1082,0x10a2,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2965,0x2965,0x3166,0x4205,0x7345,0x6b04,0x6b05,0x41c4,0x2965,0x2965,0x2965,0x3165,0x2944,0x0841,0x0841,0x10a2,0x10a2,0x1082,0x18c3,0x0861,0x0841,0x2104,0x2965,0x3166,0x2965,0x2965,0x31a5,0x62c5,0x7b45,0x7b45,0x62c4,0x3165,0x2965,0x2965,0x3165,0x3166,0x18c3,0x0020,0x0841,0x1082,0x1082,0x10a2,0x18a3,0x18e3,0x20e4,0x10a2,0x18c3,0x18c3,0x20e3,0x18e3,0x4208,0x4a49,0x3a08,0x4249,0x4249,0x4249,0x4a6a,0x52aa,0x4269,0x4207,0x4228,0x4a69,0x4a49,0x4228,0x4a49,0x4229,0x4249,0x4249,0x3a07,0x3a28,0x3a08,0x3a07,0x4248,0x4a49,0x39c7,0x4228,0x4a69,0x3a08,0x3a08,0x4a69,0x4249,0x4228,0x4a49,0x4a6a,0x3a08,0x31c7,0x4228,0x3a08,0x4229,0x4228,0x4228,0x4a69,0x4228,0x4a49,0x4229,0x4a6a,0x3a08,0x4249,0x4a69,0x4229,0x4249,0x3a08,0x39c7,0x4208,0x4a8a,0x3a08,0x39e7,0x3a07,0x4249,0x3a08,0x4a89,0x4208,0x3a07,0x4228,0x4208,0x4a69,0x39e7,0x4249,0x3a08,0x39e7,0x31c7,0x29a6,0x3a08,0x39e7,0x39e8,0x4208,0x4228,0x4228,0x3a08,0x39e7,0x31c7,0x3186,0x39e8,0x3a08,0x31c7,0x39e7,0x39e7,0x4228,0x39c7,0x39e7,0x4208,0x39c7,0x39e7,0x4248,0x4249,0x3a08,0x3a08,0x39c7,0x4228,0x4229,0x31c7,0x31a6,0x2986,0x31c7,0x31a6,0x4208,0x4208,0x31a7,0x39e7,0x31c6,0x31a6,0x2986,0x29a7, +0x2986,0x2986,0x31a7,0x31a7,0x39c7,0x39e7,0x31a6,0x31a7,0x31c7,0x4a69,0x3a07,0x39e7,0x39c7,0x31a7,0x4208,0x39c7,0x31c7,0x3a08,0x39e7,0x4228,0x4249,0x4228,0x4269,0x4249,0x39e7,0x3a08,0x39c7,0x39e8,0x39e8,0x39e8,0x4229,0x4249,0x4a49,0x39c7,0x39c8,0x3a09,0x4249,0x3a28,0x4228,0x4208,0x4208,0x4a6a,0x3a08,0x39e8,0x4249,0x31a7,0x31c7,0x4249,0x4208,0x3a08,0x39e7,0x4208,0x4208,0x4249,0x4249,0x4a8a,0x4248,0x4248,0x4229,0x4a6a,0x4a6a,0x3a08,0x4249,0x4269,0x3a28,0x4a69,0x4aaa,0x3a28,0x4249,0x528a,0x52cb,0x4249,0x4a69,0x52aa,0x4a69,0x528a,0x4a69,0x52cb,0x4a8a,0x52ab,0x5b0c,0x5b0b,0x52aa,0x5acb,0x4a6a,0x4a8a,0x52ab,0x4229,0x4229,0x52ab,0x5aeb,0x4a69,0x4a69,0x4a69,0x52aa,0x4a69,0x4249,0x4229,0x3a08,0x4a49,0x4a6a,0x4a6a,0x4a6a,0x3a08,0x4208,0x4a8a,0x4a4a,0x39e8,0x4249,0x4a8a,0x4a6a,0x5acb,0x528b,0x424a,0x52aa,0x18c3,0x1082,0x18c3,0x10a2,0x2124,0x2966,0x2945,0x2124,0x18c3,0x18e3,0x18c3,0x18a2,0x18c3,0x0841,0x0841,0x1082,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x5245,0x8bc4,0x9c24,0x41e4,0x2965,0x2965,0x2945,0x2965,0x3186,0x1061,0x0020,0x1082,0x1082,0x1082,0x18a3,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2965,0x2965,0x2965,0x5285,0x93e4,0x6ae4,0x62c5,0x39a5,0x2965,0x2965,0x2965,0x3165,0x2965,0x0861,0x0841,0x10a2,0x10a2,0x1082,0x18c3,0x0861,0x0841,0x2124,0x3166,0x3166,0x2965,0x2965,0x4205,0x9405,0x7b24,0x7b45,0x7b45,0x3985,0x2945,0x2945,0x2965,0x3165,0x18c3,0x0021,0x0841,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x18e3,0x1082,0x10a2,0x18c3,0x18e3,0x2124,0x4229,0x4228,0x52cb,0x4a6a,0x4a49,0x4a6a,0x4a6a,0x4228,0x4228,0x4a49,0x4228,0x4228,0x4228,0x4249,0x4a49,0x3a08,0x4228,0x3a08,0x3a08,0x39e7,0x4228,0x4a69,0x4248,0x4249,0x39e8,0x4249,0x4289,0x3a28,0x3a28,0x4249,0x4248,0x4208,0x4228,0x4a69,0x4229,0x39e8,0x4a6a,0x4249,0x4228,0x4248,0x4a69,0x4a8a,0x4a69,0x4a69,0x4249,0x39e8,0x39e8,0x39c7,0x41e8,0x4a49,0x4208,0x39e8,0x3a08,0x3a08,0x4aaa,0x4a8a,0x4229,0x39c8,0x3a08,0x4249,0x5aeb,0x3a07,0x3a28,0x3a28,0x4249,0x4269,0x4228,0x3a08,0x3a08,0x39e7,0x39e7,0x3a07,0x3a28,0x39e8,0x39e7,0x4228,0x3a07,0x3a08,0x39c7,0x39c7,0x39c7,0x39e7,0x4229,0x39e7,0x2986,0x39e7,0x39e7,0x39e7,0x31c7,0x39c7,0x39e7,0x4208,0x39e7,0x3a08,0x39e7,0x39c7,0x3a07,0x3a08,0x4208,0x4208,0x31c7,0x4249,0x39e7,0x39c7,0x4208,0x4208,0x39c7,0x31a6,0x3a08,0x31a6,0x31e7,0x2986,0x29a6, +0x2986,0x2986,0x2966,0x31c7,0x3186,0x39e7,0x39e8,0x3a28,0x31c7,0x3a08,0x31c6,0x39e7,0x3186,0x3186,0x39e8,0x4228,0x31c7,0x39e7,0x3a08,0x4229,0x3a08,0x3a08,0x31c7,0x39e7,0x39e7,0x3a08,0x39e8,0x4249,0x4229,0x4229,0x4209,0x39e8,0x39e7,0x4208,0x4229,0x31c7,0x4228,0x4249,0x3a07,0x3a08,0x3a08,0x4229,0x4208,0x4228,0x4228,0x4249,0x4a69,0x3a08,0x4228,0x4249,0x4a69,0x4229,0x4228,0x4248,0x4249,0x4248,0x3a28,0x3a08,0x4249,0x4a8a,0x52eb,0x4a8a,0x3a49,0x4229,0x4229,0x4248,0x4269,0x4249,0x4a6a,0x528a,0x4a69,0x52ab,0x4a8a,0x52cb,0x528a,0x4a69,0x4a89,0x52aa,0x4249,0x3a08,0x5acb,0x528a,0x4229,0x4249,0x528a,0x52aa,0x52aa,0x5aca,0x4a8a,0x4a8a,0x4a49,0x4229,0x4249,0x52ca,0x4a8a,0x4249,0x3a08,0x4a49,0x4a8a,0x52ab,0x528a,0x4228,0x4a6a,0x4228,0x4248,0x52aa,0x4a69,0x4a8a,0x4aaa,0x4aaa,0x4229,0x528a,0x4a6a,0x4a6a,0x632c,0x18c3,0x1082,0x18a2,0x10a2,0x2124,0x2945,0x2945,0x2104,0x18c3,0x18e3,0x18a2,0x18a2,0x18c3,0x0841,0x0841,0x1082,0x2945,0x2945,0x2945,0x2945,0x2945,0x39a5,0x7b45,0x7304,0x9405,0x41e4,0x2945,0x2965,0x2945,0x2945,0x3186,0x1082,0x0020,0x1082,0x1082,0x1082,0x18c3,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2965,0x2965,0x2965,0x62e5,0x93e4,0x6ae4,0x62a4,0x3985,0x2965,0x2945,0x2965,0x2965,0x2965,0x0861,0x0841,0x10a2,0x10a2,0x1082,0x18c2,0x0861,0x0841,0x2104,0x3166,0x3166,0x3165,0x2965,0x5aa5,0xa465,0x7b24,0x7b65,0x6ae5,0x3165,0x2945,0x2965,0x2965,0x3165,0x18c3,0x0841,0x0841,0x1082,0x1082,0x1082,0x18c3,0x18e3,0x18e3,0x1082,0x10a2,0x18a3,0x18e3,0x2945,0x4208,0x4a69,0x528a,0x52ab,0x4229,0x4a69,0x4228,0x4228,0x4248,0x52aa,0x4249,0x4228,0x4a8a,0x4249,0x52aa,0x4228,0x4248,0x3a08,0x4228,0x39e7,0x39e7,0x4248,0x4228,0x4228,0x3a28,0x3a28,0x3a48,0x4248,0x3a08,0x4208,0x4228,0x4208,0x39e7,0x4228,0x4a69,0x4a49,0x4228,0x4249,0x31c7,0x3a07,0x4a69,0x31c7,0x4a69,0x4208,0x3a08,0x4208,0x41e8,0x4208,0x4a49,0x4249,0x4a69,0x4208,0x4228,0x4a49,0x39e7,0x4228,0x4249,0x4228,0x3a07,0x4228,0x4a69,0x4248,0x4aaa,0x3a28,0x4228,0x4229,0x3a08,0x39e7,0x39e7,0x4228,0x4248,0x31e7,0x31e7,0x39e7,0x39c7,0x31a7,0x39e8,0x31e8,0x39e8,0x39e7,0x31a6,0x31c7,0x39e8,0x3a08,0x39e7,0x39e7,0x39e7,0x39e7,0x39c7,0x39e7,0x39e7,0x31c6,0x4228,0x31c7,0x31c7,0x31c7,0x39e7,0x4a8a,0x4208,0x39c7,0x39e8,0x3a08,0x3a08,0x31a7,0x39e7,0x3186,0x31a7,0x4228,0x39e8,0x3a08,0x3186,0x31c7,0x31c7, +0x31c7,0x2986,0x39e7,0x39e7,0x31c6,0x4a49,0x31a6,0x39e7,0x3a08,0x31a6,0x39e7,0x3a08,0x4249,0x31e8,0x31c7,0x31a7,0x31c7,0x3a08,0x39e8,0x39e8,0x29a7,0x39e8,0x39e7,0x39c7,0x4228,0x39e7,0x4a89,0x4249,0x39e7,0x4228,0x4208,0x39e8,0x39e8,0x4249,0x4228,0x31c7,0x39c7,0x39c7,0x39e7,0x3a08,0x39e8,0x39c7,0x4208,0x39e7,0x3a08,0x4a69,0x4a69,0x3a08,0x4228,0x4229,0x3a09,0x39e8,0x4249,0x4228,0x4208,0x4208,0x4229,0x4228,0x4249,0x4a8a,0x4249,0x4269,0x4aaa,0x4249,0x4249,0x4269,0x4249,0x4a89,0x4a69,0x4229,0x4249,0x426a,0x3a29,0x426a,0x4249,0x4a69,0x528a,0x4a49,0x4a4a,0x4a6a,0x4a6a,0x4a49,0x4249,0x4a6a,0x4a49,0x4a49,0x4a69,0x4a8a,0x52aa,0x4a6a,0x4269,0x4a8a,0x428a,0x4aaa,0x4a69,0x4a69,0x528a,0x4a49,0x4a69,0x528a,0x52cb,0x4a89,0x4a69,0x4a69,0x4aaa,0x52aa,0x528a,0x5acb,0x5acb,0x4a6a,0x4228,0x4a8a,0x4a8a,0x4a8b,0x632c,0x18c3,0x1082,0x18a2,0x18a2,0x2124,0x2945,0x2125,0x2104,0x18c3,0x18c3,0x10a2,0x10a2,0x18c3,0x0841,0x0020,0x1082,0x2945,0x2965,0x2965,0x2945,0x2965,0x62c5,0x8364,0x5a64,0x9425,0x4a03,0x2945,0x2965,0x2945,0x2945,0x3186,0x1061,0x0020,0x1082,0x1082,0x1062,0x18c3,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2965,0x2965,0x2965,0x62c6,0x8365,0x6ae5,0x83a5,0x4a24,0x2945,0x2945,0x2965,0x2965,0x2965,0x0861,0x0841,0x10a2,0x10a2,0x1082,0x18c3,0x0861,0x0841,0x2104,0x3165,0x3165,0x2965,0x2965,0x62e5,0xa465,0x7324,0x83a5,0x8385,0x3184,0x2945,0x2945,0x2965,0x3186,0x18c3,0x0841,0x0841,0x1082,0x1082,0x1082,0x18a3,0x18e3,0x18c3,0x1082,0x10a2,0x18a3,0x18e3,0x2125,0x4a49,0x4a69,0x5269,0x528a,0x4a8a,0x4a8a,0x4249,0x4228,0x4248,0x4228,0x4228,0x3a08,0x4249,0x4a8a,0x4269,0x4249,0x3a07,0x4228,0x4a49,0x4228,0x4208,0x39c7,0x39e7,0x4a29,0x4a49,0x4208,0x4228,0x3a08,0x39e7,0x4228,0x4249,0x4228,0x39e7,0x3a07,0x4228,0x4a49,0x4249,0x4248,0x39e7,0x3a28,0x4228,0x4248,0x4228,0x4a49,0x528a,0x4208,0x39c7,0x4a49,0x4248,0x3a28,0x3a28,0x39e7,0x4228,0x4a89,0x3a08,0x4249,0x3a07,0x4228,0x4229,0x528a,0x4249,0x4248,0x4a69,0x31e7,0x4a69,0x4249,0x4208,0x39e7,0x39e7,0x39e7,0x4228,0x4228,0x4228,0x31c7,0x39e7,0x4228,0x39e8,0x3a08,0x3a08,0x4228,0x39e7,0x39e7,0x31e7,0x31c7,0x39e8,0x31c7,0x3a08,0x3a08,0x4208,0x31c7,0x4208,0x3a07,0x39e7,0x31c7,0x3a08,0x3a08,0x4a69,0x4228,0x39c7,0x39c7,0x31c7,0x29a6,0x4208,0x4a69,0x31c7,0x4208,0x31c7,0x3a08,0x31c7,0x31c7,0x31a7,0x31c7,0x39e8, +0x2966,0x31a7,0x39e8,0x31c7,0x31a6,0x31a6,0x31c7,0x39e8,0x39e8,0x29a6,0x3186,0x39e7,0x39e8,0x31c7,0x2986,0x31c7,0x4269,0x4249,0x39e8,0x39e8,0x3a08,0x31c7,0x31a6,0x39e7,0x3a08,0x39e7,0x4248,0x39e7,0x4208,0x4248,0x39e7,0x39e7,0x39e7,0x3a28,0x39e7,0x39e8,0x3a28,0x31c7,0x31c7,0x4228,0x4228,0x3a08,0x39e8,0x4228,0x4208,0x4208,0x4a8a,0x3a08,0x3a29,0x4249,0x31e8,0x3a08,0x4229,0x3a08,0x4228,0x4208,0x3a08,0x4229,0x3a28,0x4a8a,0x52ab,0x4a8a,0x4a8a,0x39e8,0x4229,0x4a8a,0x4a69,0x4228,0x4249,0x4a8a,0x4a8a,0x4249,0x4a49,0x4228,0x4a8a,0x4a8a,0x4a6a,0x4a6a,0x4249,0x4a6a,0x4a4a,0x4a49,0x4a69,0x528a,0x528a,0x4a49,0x4229,0x4a8a,0x4a69,0x4a69,0x528a,0x4a8a,0x52eb,0x4a8a,0x4228,0x4a6a,0x5aeb,0x4a49,0x52aa,0x5acb,0x52aa,0x4249,0x3a28,0x426a,0x4a6a,0x4a6a,0x52aa,0x4a4a,0x528a,0x4a69,0x4a8a,0x4a6a,0x52ab,0x52cb,0x5b0c,0x18c3,0x1082,0x10a2,0x18a2,0x2104,0x2945,0x2125,0x2104,0x18e3,0x18c2,0x10a2,0x10a2,0x18c3,0x0841,0x0841,0x1082,0x2945,0x2965,0x2965,0x2945,0x3985,0x8385,0x7b44,0x6ae4,0x9c44,0x5a84,0x2945,0x2965,0x2945,0x2965,0x3186,0x0861,0x0041,0x1082,0x1082,0x1062,0x18c3,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2965,0x2965,0x3165,0x5aa6,0x5a65,0x4a05,0x9405,0x6ac4,0x2945,0x2945,0x2945,0x3165,0x3185,0x1081,0x0841,0x10a2,0x1082,0x1082,0x18c3,0x0861,0x0841,0x2124,0x3165,0x2965,0x2965,0x2945,0x62c5,0x9c45,0x5244,0x6ae5,0x9c25,0x39a4,0x2965,0x2965,0x2965,0x3186,0x18c3,0x0841,0x0841,0x1082,0x1082,0x1082,0x18a3,0x2104,0x18c3,0x1082,0x10a2,0x18c3,0x20e4,0x2965,0x4228,0x4228,0x52aa,0x4a6a,0x52cb,0x4a8a,0x3a08,0x4228,0x4249,0x4228,0x4228,0x4228,0x4228,0x4228,0x4228,0x4228,0x3a08,0x4248,0x4228,0x4228,0x4208,0x4228,0x39e7,0x4228,0x4a49,0x39e7,0x39e8,0x4208,0x4208,0x4208,0x4a89,0x4a69,0x4208,0x4a69,0x4228,0x31c7,0x4249,0x3a28,0x3a08,0x3a08,0x39e7,0x4a69,0x4248,0x3a07,0x4208,0x4228,0x4208,0x4228,0x3a07,0x4248,0x4228,0x4228,0x3a28,0x3207,0x3208,0x3a28,0x4229,0x39e8,0x4208,0x4229,0x4a49,0x39e8,0x3a08,0x3a08,0x39c7,0x39e7,0x4229,0x4228,0x39e7,0x4228,0x39e7,0x39e7,0x4248,0x31e7,0x3a08,0x4228,0x31c7,0x3a08,0x41e8,0x4229,0x4208,0x39e8,0x39e7,0x39e7,0x3a08,0x39e8,0x31a7,0x39e7,0x31c7,0x4228,0x39e7,0x39c7,0x31a6,0x39e7,0x31e7,0x4249,0x4a6a,0x3a08,0x4249,0x29a6,0x31c7,0x31c7,0x39c7,0x4208,0x39e8,0x4208,0x39e7,0x39e7,0x31a7,0x2966,0x31a7,0x2986,0x4a69, +0x31a6,0x2986,0x2986,0x31a6,0x2986,0x2986,0x31a7,0x31e7,0x31c7,0x31a7,0x31c7,0x39e7,0x31c7,0x31a7,0x2986,0x31e7,0x31e8,0x31c8,0x31c7,0x4208,0x4229,0x29a6,0x29a6,0x31e7,0x3a08,0x3a08,0x39e8,0x3a09,0x4a6a,0x4229,0x31e7,0x39e7,0x39e8,0x3a08,0x39e8,0x4229,0x3a08,0x31c7,0x39e7,0x4a69,0x4228,0x4228,0x4228,0x3a28,0x3a08,0x3a08,0x4229,0x31c7,0x39e8,0x39e7,0x39e7,0x4a69,0x4249,0x39e8,0x4208,0x4208,0x4208,0x3a28,0x4229,0x52aa,0x5acb,0x4a6a,0x4228,0x3a08,0x4229,0x4229,0x4a6a,0x52ab,0x52cb,0x4269,0x4249,0x4a8a,0x52aa,0x4249,0x4a49,0x4a6a,0x528a,0x4a69,0x4229,0x4a6a,0x4229,0x52aa,0x528a,0x4249,0x4a69,0x4a49,0x5269,0x528a,0x62ec,0x528a,0x52aa,0x52ab,0x52ab,0x4a6a,0x4a6a,0x4229,0x4a6a,0x4a69,0x4229,0x4229,0x52ab,0x52cb,0x4a8a,0x4a8a,0x4a8a,0x4a89,0x52aa,0x4a89,0x4a8a,0x4a8a,0x52ab,0x52cb,0x4a69,0x52ab,0x52eb,0x18c2,0x1082,0x10a2,0x10a2,0x18e3,0x2945,0x2125,0x2124,0x18e3,0x10a2,0x10a2,0x10a2,0x18c2,0x0841,0x0841,0x1082,0x2945,0x2965,0x3165,0x2965,0x3185,0x62a5,0x5a85,0x62c5,0x9c24,0x5a64,0x2945,0x2945,0x2965,0x2965,0x3186,0x0861,0x0841,0x1082,0x1082,0x1062,0x18c3,0x0861,0x0020,0x18c3,0x2965,0x2965,0x2965,0x2965,0x3185,0x7326,0x62a4,0x5244,0x8bc5,0x5a84,0x3165,0x2965,0x2945,0x2965,0x3165,0x1081,0x0861,0x10a2,0x1082,0x1082,0x18c3,0x0861,0x0861,0x2124,0x3165,0x2965,0x2965,0x2965,0x5245,0x93e5,0x5a84,0x6b25,0x8ba5,0x3984,0x2965,0x2965,0x3165,0x3186,0x18a3,0x0841,0x0841,0x1082,0x1082,0x1082,0x18a3,0x2924,0x18e3,0x1082,0x10a2,0x18c3,0x2104,0x2965,0x4228,0x4249,0x4a69,0x4228,0x3a08,0x4228,0x4a69,0x4a49,0x4228,0x4228,0x4a8a,0x4a69,0x4a8a,0x4249,0x3a08,0x4228,0x3a08,0x4228,0x4208,0x4a49,0x4228,0x4249,0x4228,0x4208,0x4208,0x39e7,0x39e7,0x39c7,0x4208,0x4229,0x4a49,0x4208,0x39e8,0x4208,0x4228,0x3a28,0x4269,0x4228,0x4228,0x4228,0x4228,0x4228,0x3a08,0x4a69,0x4249,0x4a8a,0x4a69,0x4249,0x4a69,0x3a08,0x3a28,0x3a08,0x4249,0x3a08,0x4aaa,0x4249,0x4249,0x3a08,0x31e7,0x4209,0x4a6a,0x39c7,0x4a69,0x39e7,0x39e7,0x4a69,0x39e7,0x39e8,0x39e8,0x4228,0x4a49,0x4208,0x3a08,0x39e8,0x39c7,0x31a7,0x31c7,0x39e7,0x39c7,0x31a7,0x39c7,0x3a08,0x3a07,0x3a08,0x4228,0x31a7,0x39e8,0x4a69,0x31c7,0x4249,0x4229,0x39e7,0x3a08,0x39e7,0x3a08,0x31c7,0x4249,0x39e7,0x4228,0x31c7,0x31c7,0x31a7,0x39c7,0x39e7,0x39c7,0x39e7,0x39e7,0x31c7,0x3a08,0x39e8,0x39e8,0x31a6,0x39e7, +0x31c6,0x39e7,0x2986,0x2986,0x31a7,0x31c7,0x31a7,0x29a6,0x31a7,0x39c7,0x31a6,0x31c7,0x3a08,0x3a28,0x31c7,0x39e8,0x31e8,0x31a7,0x4229,0x4249,0x39e7,0x31e7,0x31a7,0x31c7,0x3a08,0x31e7,0x31c7,0x31e7,0x3a08,0x3a08,0x3a08,0x31e8,0x31c7,0x3a08,0x4229,0x4228,0x4a8a,0x39e7,0x3a07,0x4248,0x3a28,0x3a08,0x3a08,0x31e7,0x31c7,0x39e8,0x31c7,0x39e8,0x39e8,0x39e7,0x4248,0x4a69,0x3a08,0x4249,0x4229,0x4208,0x4248,0x4249,0x3a28,0x4269,0x4208,0x4a49,0x4229,0x4209,0x4229,0x4229,0x4a6a,0x52ab,0x4aab,0x3a29,0x3a28,0x4aaa,0x4269,0x4269,0x4228,0x52ab,0x52cb,0x4aaa,0x3a08,0x4269,0x4a69,0x4228,0x4a69,0x52eb,0x52ab,0x4a8a,0x52ab,0x52aa,0x52aa,0x52ab,0x4a69,0x4a6a,0x4a6a,0x4a6a,0x4a6a,0x4a8b,0x4a8a,0x528a,0x4a49,0x4a49,0x4a69,0x52aa,0x4249,0x52ca,0x52aa,0x4a69,0x5aeb,0x6b6d,0x4a89,0x4229,0x4a8a,0x52ca,0x4a49,0x632d,0x6b6d,0x18c2,0x1082,0x1082,0x10a2,0x18e3,0x2125,0x2104,0x2104,0x18e3,0x18a2,0x10a2,0x10a2,0x18c2,0x0861,0x0861,0x1082,0x2945,0x2965,0x2965,0x2965,0x2965,0x39a5,0x3985,0x41e5,0x7b45,0x41c4,0x2965,0x2965,0x2965,0x3186,0x3165,0x1082,0x0861,0x1082,0x1082,0x1062,0x18c3,0x10a2,0x0861,0x18c3,0x2965,0x2965,0x2965,0x2965,0x3165,0x5aa6,0x7325,0x7304,0x7305,0x41c4,0x3165,0x2965,0x2965,0x2965,0x2924,0x1061,0x1061,0x10a2,0x1082,0x1082,0x18c3,0x1082,0x0861,0x2104,0x2965,0x2965,0x2965,0x2965,0x39a5,0x6ae5,0x7325,0x7325,0x6285,0x3165,0x2965,0x2965,0x3165,0x3165,0x10a2,0x0841,0x0861,0x10a2,0x1082,0x1082,0x18a2,0x2924,0x18e3,0x1082,0x10a2,0x18c3,0x2104,0x2945,0x52ab,0x4a49,0x4a49,0x4249,0x4a69,0x4a49,0x4228,0x41e7,0x4208,0x4a49,0x4a69,0x4a69,0x4269,0x3a28,0x4a8a,0x4249,0x3a08,0x4a6a,0x4249,0x4249,0x4a89,0x4269,0x4248,0x4228,0x4249,0x39e7,0x39e7,0x4229,0x4229,0x39e8,0x39e8,0x4229,0x4a6a,0x4249,0x4249,0x4a8a,0x4249,0x52aa,0x4228,0x4249,0x4228,0x4249,0x4a8a,0x4a69,0x4249,0x4248,0x4a69,0x4208,0x39e8,0x31e7,0x4228,0x39e7,0x3a08,0x4a69,0x4a69,0x4228,0x4228,0x4249,0x3a08,0x4228,0x3a08,0x39e8,0x4248,0x4228,0x4248,0x4228,0x4208,0x39e8,0x4229,0x4228,0x4a49,0x4249,0x31c7,0x39e8,0x39c8,0x4229,0x3a08,0x31c6,0x31c7,0x31a6,0x4a48,0x39e7,0x3a07,0x4228,0x31c7,0x31c7,0x31c7,0x3a08,0x4249,0x3a08,0x3a08,0x39e7,0x3a08,0x4229,0x3a08,0x31e7,0x3a08,0x4208,0x4229,0x4208,0x31a7,0x39c7,0x39e8,0x39e7,0x4248,0x39c7,0x39c7,0x31c7,0x31e7,0x31c6,0x39e7,0x39c6,0x31a6, +0x31a7,0x31a6,0x2965,0x2986,0x31c7,0x31c7,0x31a7,0x39c8,0x31a7,0x39c8,0x4a69,0x39e8,0x3a08,0x3a28,0x31a7,0x3a08,0x39c7,0x39e8,0x3a08,0x4228,0x3a07,0x3a28,0x3a28,0x3a08,0x31e7,0x39e8,0x31c7,0x3a08,0x3a08,0x31e7,0x3a28,0x31e7,0x39e8,0x39c7,0x39e7,0x31c7,0x4228,0x4248,0x39e7,0x4228,0x3a08,0x39e8,0x39e8,0x4269,0x4229,0x39e8,0x4208,0x39e7,0x3a08,0x4249,0x3a07,0x39e7,0x4208,0x4209,0x4209,0x39e8,0x4228,0x4228,0x39e8,0x3a08,0x4228,0x4a69,0x4229,0x3a09,0x424a,0x4229,0x4a6a,0x4a8a,0x528a,0x4a69,0x4a69,0x4a8a,0x528a,0x528a,0x528a,0x526a,0x4a8a,0x4a8a,0x4228,0x4a69,0x4a49,0x4a49,0x4a8a,0x4a8a,0x4a49,0x4a8a,0x4a8a,0x4249,0x4249,0x4a8a,0x4a8a,0x4a8a,0x4249,0x4a69,0x4a89,0x4269,0x4a6a,0x4229,0x4a69,0x4a6a,0x4a8a,0x4a49,0x4a69,0x52aa,0x52cb,0x52ab,0x5acc,0x632c,0x52aa,0x4a6a,0x52ab,0x5aeb,0x528a,0x5aec,0x630c,0x18c2,0x1082,0x1082,0x10a2,0x20e4,0x2125,0x2104,0x2104,0x18c3,0x18a2,0x10a2,0x10a2,0x18c3,0x18c3,0x2103,0x20e3,0x2945,0x2965,0x2965,0x2945,0x2965,0x3165,0x2945,0x3185,0x4a05,0x3185,0x3165,0x3165,0x3185,0x3186,0x2944,0x18e3,0x10a2,0x10a2,0x1062,0x1061,0x18c3,0x20e4,0x20e3,0x18e3,0x2945,0x2965,0x2965,0x2965,0x2945,0x39a5,0x4a26,0x5245,0x41e5,0x3165,0x3165,0x3165,0x3166,0x3165,0x2104,0x18c2,0x18c2,0x18a3,0x1082,0x1082,0x18e3,0x2104,0x20e3,0x2103,0x2945,0x2965,0x2945,0x2945,0x3165,0x39c5,0x4a25,0x4a05,0x3985,0x2965,0x2945,0x2945,0x3165,0x3165,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x2104,0x18c3,0x1082,0x10a2,0x18c3,0x2104,0x2925,0x4a6a,0x4a6a,0x4a69,0x4228,0x4228,0x4229,0x4228,0x4248,0x4228,0x4a69,0x4a49,0x4a69,0x4a69,0x4228,0x4a6a,0x4a69,0x3a28,0x4a69,0x528a,0x4a49,0x3a28,0x4249,0x4249,0x4228,0x3a08,0x3a07,0x39e7,0x3a08,0x4249,0x3a28,0x31e7,0x39e8,0x4228,0x3a08,0x4a6a,0x4249,0x4249,0x4249,0x31c6,0x4249,0x4249,0x4a69,0x52ca,0x4228,0x3a07,0x4248,0x4248,0x4228,0x4249,0x4a69,0x4228,0x3a08,0x4208,0x4228,0x4208,0x3a08,0x3a28,0x3a08,0x4269,0x4228,0x3a08,0x3a08,0x3a08,0x39e8,0x39e8,0x4229,0x4208,0x4228,0x4208,0x4228,0x39e7,0x4228,0x39e7,0x31c7,0x3a07,0x39e7,0x31a7,0x31c7,0x31c7,0x4208,0x4228,0x31a6,0x3a07,0x3a07,0x39e7,0x39e7,0x39e7,0x39e7,0x3a08,0x31c7,0x3a08,0x3a08,0x31c7,0x39e8,0x31c7,0x31c7,0x3a08,0x39e7,0x39e7,0x39e8,0x4229,0x39c8,0x39c8,0x4208,0x4208,0x3a08,0x3a08,0x39e7,0x39e7,0x2145,0x2986,0x31c7,0x4249, +0x31a7,0x31a6,0x31a6,0x29a6,0x31c6,0x31c7,0x2986,0x31a7,0x39c7,0x4208,0x4a69,0x39c7,0x39e7,0x3a08,0x31a6,0x31a6,0x31a7,0x31a7,0x4209,0x4229,0x3a08,0x4228,0x4228,0x4269,0x4249,0x39e8,0x31c8,0x31c7,0x39e8,0x39e8,0x4229,0x4249,0x4249,0x4a49,0x4a49,0x4228,0x31c7,0x4248,0x4228,0x4228,0x4a49,0x3a08,0x3a08,0x4a89,0x3a08,0x4208,0x4a49,0x39e7,0x4228,0x4249,0x3a28,0x4228,0x39e8,0x39e8,0x39e8,0x39e8,0x4249,0x3a28,0x3a08,0x4228,0x528a,0x4a69,0x426a,0x4a6a,0x4229,0x4228,0x4249,0x4a49,0x528a,0x4229,0x5acb,0x4229,0x4a49,0x4a69,0x4229,0x528a,0x52aa,0x4249,0x52aa,0x52aa,0x4a49,0x4a6a,0x4229,0x4a69,0x5aec,0x4249,0x4209,0x4249,0x4229,0x4a8b,0x52ec,0x4aaa,0x4a8a,0x4a69,0x4a89,0x4248,0x52aa,0x4269,0x4a49,0x5aeb,0x4a8a,0x4269,0x52cb,0x5aec,0x52cb,0x4aab,0x4a6a,0x4aab,0x4a8a,0x4a6a,0x528a,0x5aeb,0x6b6d,0x52eb,0x5b0b,0x18c2,0x1082,0x1082,0x10a2,0x18e3,0x2104,0x18e4,0x2104,0x18c3,0x18a2,0x10a2,0x1082,0x18e3,0x2925,0x3186,0x3185,0x3165,0x2965,0x2945,0x2945,0x3165,0x3165,0x3165,0x3165,0x3165,0x3185,0x3165,0x3165,0x31a6,0x3186,0x3165,0x3165,0x2124,0x10a2,0x1062,0x1062,0x18c3,0x2965,0x31a6,0x2964,0x2944,0x2965,0x2965,0x2945,0x2945,0x2945,0x3165,0x3165,0x3145,0x2945,0x2945,0x3166,0x3186,0x3186,0x2965,0x2944,0x2924,0x18a3,0x1082,0x1082,0x2104,0x3186,0x39a5,0x2965,0x2965,0x2965,0x3165,0x2965,0x2945,0x2945,0x2945,0x2945,0x2924,0x2944,0x2945,0x2945,0x3165,0x3165,0x2924,0x2924,0x20e3,0x18c2,0x1082,0x1082,0x1082,0x2104,0x18c3,0x1082,0x10a2,0x18c3,0x20e4,0x2925,0x4a49,0x4a69,0x4249,0x4269,0x3a28,0x4208,0x4a69,0x4228,0x3a28,0x4a69,0x528a,0x4a69,0x528a,0x4229,0x4a6a,0x4a69,0x4249,0x3a28,0x4a69,0x528a,0x4a49,0x4208,0x4249,0x4a69,0x4a49,0x4228,0x4208,0x39e7,0x4248,0x4269,0x4269,0x4a49,0x4249,0x39e7,0x4269,0x4a49,0x4249,0x3a08,0x4228,0x4228,0x4228,0x4a49,0x4a89,0x4a89,0x4228,0x4228,0x4a69,0x4249,0x4a8a,0x4a69,0x4228,0x4208,0x4a49,0x4a6a,0x4228,0x31c7,0x3207,0x3a07,0x4228,0x4269,0x4a69,0x31c7,0x4249,0x3a08,0x39e8,0x39c7,0x3a08,0x4a49,0x39e7,0x3a07,0x3a28,0x4249,0x4228,0x3a08,0x39c7,0x31c7,0x39e8,0x39e8,0x39e7,0x4a49,0x39c7,0x4229,0x4249,0x31a7,0x39c7,0x39e7,0x39e7,0x39e7,0x39e7,0x4248,0x39e7,0x31a7,0x4249,0x39e7,0x31c6,0x31e7,0x39e7,0x39e7,0x39e7,0x31a6,0x4228,0x39e8,0x39e8,0x3a08,0x4208,0x39e7,0x31c7,0x3a08,0x31a6,0x2145,0x2986,0x29a6,0x31a6, +0x31a7,0x39e7,0x39c7,0x31a6,0x39c7,0x4228,0x31a6,0x39e7,0x3a08,0x4208,0x39a7,0x31a7,0x3a08,0x39e7,0x31a6,0x2986,0x31a6,0x31a7,0x39e8,0x3a08,0x4228,0x4228,0x39e7,0x4208,0x39c7,0x39c7,0x39e8,0x4228,0x39c7,0x39e7,0x39e7,0x4a8a,0x4249,0x4208,0x4209,0x4a29,0x4208,0x4aaa,0x4289,0x4248,0x52aa,0x4228,0x39e8,0x39e8,0x39c7,0x39e8,0x39e8,0x39e8,0x4229,0x3a29,0x3a08,0x4229,0x4208,0x4228,0x4207,0x4208,0x52aa,0x4229,0x4a49,0x4a49,0x4a89,0x4249,0x4229,0x4249,0x4a8a,0x4a69,0x3a08,0x3a28,0x4269,0x4228,0x528a,0x4229,0x52aa,0x4269,0x4269,0x4aaa,0x42aa,0x3a28,0x4249,0x5acb,0x3a08,0x4249,0x4a69,0x52aa,0x52aa,0x52cb,0x4a8a,0x4a69,0x4aaa,0x52ca,0x4aaa,0x4aaa,0x4a6a,0x4249,0x4a69,0x4aaa,0x4a89,0x4269,0x52aa,0x6b4d,0x4a8a,0x4a8a,0x6b4d,0x630d,0x528b,0x4a8a,0x5b0c,0x4a8a,0x52ab,0x4a69,0x5aec,0x52cb,0x5b0c,0x632c,0x634c,0x18c2,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x18e4,0x20e4,0x18c3,0x10a2,0x1082,0x1082,0x2104,0x2945,0x3185,0x2965,0x2924,0x2104,0x18e3,0x20e3,0x2104,0x2124,0x2104,0x2104,0x2124,0x2124,0x2104,0x2124,0x2945,0x2945,0x2945,0x3165,0x2944,0x18a2,0x1062,0x1061,0x18e3,0x3166,0x3186,0x3165,0x2945,0x2924,0x2924,0x2104,0x2104,0x2104,0x2125,0x2124,0x2924,0x2104,0x2104,0x2924,0x2944,0x2945,0x2965,0x2945,0x2945,0x18c3,0x1082,0x1082,0x2104,0x31a6,0x39a6,0x3165,0x2924,0x2924,0x2924,0x2945,0x2124,0x2104,0x20e3,0x20e3,0x18e3,0x2104,0x2924,0x2945,0x2945,0x2124,0x2124,0x2945,0x2924,0x18c3,0x1082,0x1082,0x1082,0x2104,0x18a3,0x1082,0x10a2,0x18a3,0x18e3,0x2124,0x4228,0x4a49,0x526a,0x52cb,0x3a29,0x4a8a,0x4aaa,0x4a8a,0x4aaa,0x4228,0x52aa,0x4a8a,0x4a69,0x4a6a,0x4a69,0x4a69,0x4a6a,0x52ca,0x52aa,0x52cb,0x4a89,0x4a69,0x4228,0x4208,0x4a69,0x4a49,0x4208,0x4208,0x4a69,0x3a28,0x3a28,0x4228,0x4249,0x3a28,0x4228,0x4a69,0x4228,0x4228,0x4228,0x4228,0x52aa,0x4208,0x4a49,0x4a89,0x4228,0x4249,0x4a69,0x4249,0x4249,0x3a28,0x4229,0x4a6a,0x4208,0x3a08,0x3a07,0x39e8,0x3a08,0x3a28,0x3a08,0x4228,0x4228,0x4228,0x3a07,0x39e7,0x4208,0x39e7,0x3a08,0x4228,0x39e7,0x3a07,0x3a08,0x3a08,0x39e7,0x4228,0x4228,0x39c7,0x39e7,0x39c7,0x31a6,0x39c7,0x39c7,0x39c7,0x3a08,0x31c7,0x31c7,0x39e7,0x39c7,0x4208,0x31c7,0x39e7,0x39e7,0x31c7,0x39c7,0x3a08,0x3a08,0x29a6,0x31c7,0x3a08,0x39c7,0x4228,0x31a7,0x3a08,0x4229,0x3a08,0x4208,0x31a6,0x31c6,0x39e7,0x31a6,0x2966,0x31a6,0x31c7,0x2965, +0x39e7,0x39e7,0x31c6,0x39c6,0x31a6,0x3186,0x39c7,0x4208,0x39a7,0x3187,0x31c7,0x31a7,0x31c7,0x31a7,0x39e8,0x39c8,0x39e7,0x39e7,0x3a08,0x4229,0x4228,0x3a08,0x3a08,0x3a08,0x39e7,0x39e8,0x4a6a,0x4a8a,0x4229,0x39e7,0x4228,0x4228,0x3a08,0x39c7,0x4208,0x4229,0x4229,0x4249,0x4228,0x39c7,0x39e7,0x4208,0x39e8,0x4209,0x4229,0x39c8,0x39c7,0x39e8,0x31c7,0x3a08,0x3a08,0x39e8,0x3a08,0x4208,0x4208,0x4208,0x4249,0x4208,0x4a49,0x52aa,0x4228,0x4249,0x4a6a,0x4a49,0x4a49,0x4249,0x4229,0x3a08,0x4a6a,0x4228,0x4a69,0x4a8a,0x4a69,0x4a69,0x4aaa,0x4269,0x4289,0x4248,0x4a6a,0x528a,0x4229,0x5aeb,0x5289,0x52aa,0x4a69,0x52cb,0x52cb,0x426a,0x424a,0x4aa9,0x52a9,0x52ab,0x52cb,0x4a8a,0x5aeb,0x5aeb,0x4aaa,0x4269,0x52ab,0x5aeb,0x4a6a,0x5aec,0x5acb,0x630c,0x5aeb,0x52aa,0x738e,0x4a6a,0x5aeb,0x52ab,0x6b4d,0x5acb,0x52cb,0x528a,0x5acb,0x18c3,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x18e4,0x18e4,0x18c3,0x10a2,0x1082,0x1082,0x20e4,0x2104,0x20e3,0x18c3,0x18a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x18a3,0x18a3,0x18c3,0x18e3,0x20e3,0x18c3,0x1062,0x1062,0x18e3,0x2104,0x20e3,0x20e3,0x18c3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x18a2,0x10a2,0x18c3,0x18e3,0x18c3,0x20e3,0x18c3,0x1082,0x1082,0x18e3,0x2924,0x2104,0x18e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18c3,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x20e4,0x2104,0x18c3,0x1082,0x1082,0x1082,0x20e3,0x18a2,0x1082,0x1082,0x1082,0x18c3,0x2124,0x4249,0x52ab,0x4a49,0x4a49,0x4a6a,0x4a8a,0x3a08,0x52cb,0x4aaa,0x3a08,0x52cb,0x52cb,0x4269,0x4a6a,0x4229,0x528a,0x52cb,0x528a,0x52aa,0x4a49,0x39e7,0x4a69,0x4a69,0x4228,0x52cb,0x52aa,0x4208,0x4228,0x4249,0x4228,0x3a28,0x3a07,0x4248,0x4a49,0x3a28,0x4a89,0x4a89,0x4228,0x4249,0x4249,0x4229,0x4249,0x4249,0x4229,0x4208,0x4228,0x528a,0x4a69,0x3208,0x3a28,0x3a08,0x4228,0x39e7,0x3a07,0x3a07,0x39e8,0x4a69,0x4228,0x4208,0x4208,0x4208,0x4a49,0x39e7,0x3a07,0x4a49,0x4a69,0x3a08,0x4269,0x4228,0x3a28,0x4228,0x39c7,0x4228,0x4208,0x4228,0x4208,0x4228,0x4208,0x39e7,0x31a6,0x39e7,0x31c7,0x39e8,0x39e7,0x31a6,0x39e7,0x39c7,0x39e7,0x39e7,0x39c7,0x31c6,0x39c7,0x39e7,0x4249,0x4249,0x3187,0x39e8,0x31a7,0x31e7,0x3a08,0x39e7,0x4249,0x4228,0x4249,0x31e7,0x31e7,0x3a08,0x31c6,0x39e7,0x31a6,0x2145,0x31c7,0x31c7, +0x31a7,0x2986,0x31c7,0x31c7,0x31a6,0x2986,0x3186,0x31a7,0x3187,0x31a6,0x31c7,0x2986,0x2966,0x39c8,0x3a08,0x4208,0x39e7,0x4228,0x4249,0x31c7,0x31e7,0x31e7,0x31c7,0x39e7,0x4208,0x4208,0x4229,0x3a08,0x3a08,0x31c7,0x4228,0x31c7,0x39e7,0x39c7,0x3a28,0x3a08,0x39e7,0x4208,0x39e7,0x39e7,0x2986,0x31a7,0x39e8,0x31a7,0x39e8,0x4208,0x3a08,0x3a08,0x31c7,0x39e7,0x3a08,0x3a08,0x39e8,0x31a7,0x3a08,0x4229,0x4229,0x4228,0x4a89,0x52ca,0x3a07,0x4228,0x4a69,0x4a6a,0x3a08,0x3a28,0x4229,0x4229,0x4a49,0x39e7,0x4249,0x4249,0x3a08,0x4229,0x4208,0x4229,0x4249,0x4249,0x4228,0x39c8,0x4a6a,0x4a69,0x528a,0x5aca,0x4a89,0x4a8a,0x4a6a,0x4a8a,0x4aab,0x4a8a,0x4a69,0x52aa,0x52ab,0x4aaa,0x5b0b,0x52aa,0x4249,0x4269,0x52aa,0x52aa,0x52aa,0x5aeb,0x4a89,0x528a,0x5acb,0x6b4d,0x52aa,0x526a,0x528a,0x52cb,0x5aeb,0x528a,0x630c,0x528a,0x528b,0x18c3,0x1082,0x1082,0x10a2,0x18c3,0x2104,0x18e3,0x18e4,0x18c2,0x1082,0x1082,0x1082,0x18a3,0x10a2,0x1082,0x1082,0x1082,0x1062,0x1062,0x1082,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x1062,0x1082,0x1082,0x1082,0x1062,0x0861,0x10a2,0x1082,0x1082,0x1082,0x1061,0x1082,0x1062,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1061,0x1082,0x1082,0x1082,0x1082,0x1082,0x1061,0x1061,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x2104,0x10a2,0x1082,0x1082,0x1082,0x18c3,0x2124,0x4228,0x4a8a,0x4229,0x4208,0x4a6a,0x4a6a,0x4a69,0x52aa,0x4a49,0x4249,0x4aaa,0x4269,0x4249,0x528a,0x4229,0x4a49,0x4a49,0x4228,0x39e8,0x4228,0x39e8,0x4a29,0x4a69,0x4208,0x528a,0x4a49,0x4228,0x4249,0x4228,0x4208,0x4a69,0x4249,0x4a69,0x4249,0x4a8a,0x4269,0x4228,0x4a49,0x4249,0x4249,0x3a28,0x4249,0x4a69,0x4a69,0x4208,0x3a08,0x4208,0x4208,0x4a69,0x4a4a,0x3a08,0x3a08,0x4248,0x4a69,0x3a08,0x4249,0x4228,0x39e7,0x4228,0x4208,0x39e7,0x4229,0x4a49,0x4228,0x4249,0x4228,0x31c6,0x4228,0x4249,0x4229,0x39e7,0x4228,0x4248,0x3a08,0x39e7,0x4249,0x4208,0x4228,0x31c7,0x39e7,0x4228,0x31a6,0x31c7,0x39e7,0x31c6,0x31c7,0x39e7,0x39e7,0x39c7,0x39e7,0x4228,0x39e7,0x39e7,0x4a6a,0x5b0c,0x31c7,0x39c7,0x4229,0x3a07,0x4208,0x3a08,0x4228,0x31c7,0x3a07,0x4228,0x4209,0x3187,0x39c7,0x4249,0x31c7,0x31a6,0x31a6,0x39c7, +0x2966,0x2966,0x3a08,0x31a7,0x31a7,0x39e8,0x31a7,0x31a7,0x39c7,0x39c7,0x39e7,0x3a08,0x3a08,0x39e8,0x39e7,0x3a08,0x39e8,0x39c8,0x39e8,0x39e7,0x3a28,0x31c7,0x31c7,0x3a08,0x31a6,0x39c7,0x39c7,0x3a07,0x3a08,0x31c7,0x31e8,0x39c8,0x3186,0x3a08,0x52cb,0x31c7,0x3a07,0x3a08,0x31c7,0x39e8,0x31c7,0x31c7,0x39e8,0x39e7,0x39c7,0x4228,0x4228,0x39e7,0x4229,0x4229,0x39e9,0x39e8,0x31c7,0x39e8,0x3a08,0x3a08,0x4229,0x4228,0x4a49,0x4249,0x4249,0x528a,0x4248,0x4a8a,0x4249,0x4248,0x4249,0x4a8a,0x4249,0x4229,0x4249,0x4a49,0x4229,0x4229,0x4a69,0x4249,0x4269,0x4a8a,0x4228,0x4228,0x4a49,0x528a,0x52cb,0x4a69,0x4a8a,0x52ab,0x4aaa,0x52eb,0x4a89,0x4a69,0x4a8a,0x52aa,0x4a6a,0x52ab,0x5acb,0x5aeb,0x3a08,0x4a69,0x5aec,0x4229,0x528a,0x6b4d,0x4a69,0x6b6d,0x52cb,0x634d,0x528b,0x4a6a,0x630c,0x5aeb,0x52aa,0x528a,0x5aeb,0x4a49,0x5aec,0x18c3,0x1082,0x1082,0x10a2,0x18a3,0x18e4,0x18c3,0x18e3,0x18c2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1062,0x1061,0x1061,0x1061,0x0861,0x0861,0x1082,0x1061,0x0861,0x1061,0x1082,0x0861,0x0861,0x0861,0x1062,0x0861,0x1062,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1061,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1061,0x1062,0x1062,0x1062,0x1082,0x1082,0x1082,0x1062,0x1062,0x1062,0x1061,0x0861,0x1061,0x1062,0x1062,0x1061,0x1061,0x1061,0x1061,0x1062,0x1082,0x1082,0x1082,0x2104,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x2104,0x4a6a,0x4a6a,0x4229,0x4a69,0x4249,0x4a8a,0x52cb,0x4a8a,0x4249,0x4a69,0x4a8a,0x4249,0x4249,0x4229,0x4a49,0x4208,0x4208,0x4a69,0x4228,0x4a8a,0x4228,0x4a6a,0x52aa,0x4228,0x528a,0x4228,0x4a49,0x4a69,0x39e7,0x4249,0x4229,0x4228,0x4228,0x4228,0x4269,0x4269,0x4a49,0x528a,0x4a69,0x4229,0x4249,0x4248,0x4248,0x4249,0x52aa,0x4229,0x39e8,0x4a49,0x4a29,0x4a49,0x4229,0x4208,0x4248,0x3a08,0x4228,0x4228,0x3a07,0x4249,0x4249,0x39c7,0x4228,0x4a49,0x4249,0x4228,0x4229,0x39e7,0x4a69,0x3a07,0x4208,0x39e8,0x31c7,0x3a08,0x4228,0x31c7,0x39e8,0x4229,0x39e8,0x4208,0x39e7,0x39e8,0x39e8,0x3a08,0x31e7,0x39e7,0x39e7,0x31c7,0x39e7,0x31c7,0x31a6,0x39e7,0x4248,0x39e7,0x31c7,0x39e8,0x4249,0x3a07,0x3a08,0x52ab,0x39e7,0x4228,0x31c7,0x31c7,0x3a08,0x4249,0x4229,0x4209,0x3187,0x39e8,0x31c7,0x3a08,0x4228,0x31a7,0x31c7, +0x2986,0x2986,0x31a6,0x31a6,0x31a7,0x4228,0x39e8,0x39e7,0x31a7,0x39c7,0x39e8,0x39e7,0x3a08,0x29a6,0x31e7,0x4229,0x31a7,0x39e8,0x4a4a,0x39e8,0x4a69,0x39e7,0x39c7,0x4208,0x39c7,0x31a7,0x3a08,0x4a69,0x39e7,0x3a08,0x4229,0x4209,0x2987,0x4229,0x4a8a,0x31e7,0x31e7,0x31e7,0x3a28,0x4228,0x4228,0x39e7,0x3a08,0x3a08,0x4208,0x39e8,0x3a08,0x4208,0x39e8,0x39e8,0x424a,0x39e8,0x31e8,0x3a28,0x3a08,0x3a08,0x4a69,0x4228,0x4228,0x4a69,0x4a69,0x4a69,0x4a8a,0x4aaa,0x4a69,0x4249,0x4249,0x4a6a,0x39e7,0x4249,0x4a49,0x4a49,0x4a49,0x4229,0x4249,0x4269,0x4a8a,0x4a8a,0x4a89,0x4a69,0x4a8a,0x52aa,0x4a69,0x4a8a,0x4a8a,0x52ab,0x4aaa,0x52cb,0x4249,0x4249,0x4a49,0x4a49,0x4a6a,0x52ab,0x4a8a,0x52cb,0x4249,0x4249,0x4269,0x4a8a,0x5aec,0x5acb,0x5acb,0x6b8d,0x52aa,0x4a8a,0x5aed,0x4a8b,0x4a6a,0x5b0c,0x5acb,0x5aec,0x528a,0x52eb,0x5b0c,0x18c2,0x1082,0x1082,0x18a2,0x18a3,0x18e3,0x18c3,0x18e3,0x18c2,0x1082,0x1082,0x1082,0x1082,0x1062,0x1082,0x1061,0x1062,0x1082,0x1082,0x1081,0x0861,0x1061,0x1061,0x1082,0x1062,0x1061,0x1061,0x1062,0x1061,0x0861,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1062,0x1061,0x1062,0x1082,0x1082,0x1062,0x1062,0x1062,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1062,0x1082,0x1082,0x1082,0x2104,0x10a2,0x1062,0x1082,0x10a2,0x10a2,0x2124,0x4a49,0x4a6a,0x4208,0x528a,0x4a8a,0x52aa,0x52aa,0x4249,0x4a69,0x5aeb,0x4269,0x4249,0x4a8a,0x4a29,0x4a6a,0x4a69,0x4a69,0x4228,0x4a49,0x4a69,0x4a69,0x4a69,0x528a,0x4a69,0x4a69,0x4a89,0x4a69,0x4249,0x4a69,0x4228,0x4228,0x4228,0x39e7,0x4228,0x4a49,0x4a69,0x4228,0x4228,0x4a69,0x52ab,0x39e8,0x4a49,0x4a69,0x39e7,0x4aaa,0x4a69,0x4a49,0x4a49,0x4248,0x4228,0x4a49,0x4a49,0x4a29,0x39e7,0x3a08,0x39e8,0x39e7,0x4249,0x4a6a,0x39e8,0x39e8,0x3a08,0x4228,0x39e7,0x4249,0x4228,0x4228,0x3a07,0x4208,0x39c7,0x39e7,0x4229,0x39e7,0x31c7,0x31c7,0x39e8,0x4208,0x39e8,0x3a08,0x31c7,0x39e8,0x4249,0x3a08,0x31a6,0x39e7,0x39e7,0x39e7,0x31c7,0x39c7,0x39c7,0x31a6,0x39c7,0x31a7,0x31c7,0x3a07,0x4228,0x31c7,0x31c7,0x39e7,0x31a7,0x3a08,0x3a08,0x31c7,0x4229,0x39e9,0x4249,0x4229,0x2986,0x39e7,0x4249,0x4228,0x39e7,0x39e7, +0x3186,0x2986,0x31c7,0x3207,0x31c7,0x31a6,0x31c7,0x31a7,0x31a6,0x39c7,0x31c7,0x3a07,0x31c7,0x31e7,0x31e7,0x3a08,0x39e8,0x3a08,0x3a08,0x39c7,0x39c7,0x39a7,0x4208,0x39e7,0x31c6,0x39c7,0x39e8,0x3a07,0x3a08,0x39c7,0x4208,0x4229,0x31a7,0x39c8,0x31c7,0x31e7,0x4228,0x3a28,0x4228,0x3a08,0x3a08,0x3a08,0x39e8,0x4208,0x39e7,0x31c7,0x3a08,0x31e7,0x31e7,0x4249,0x4229,0x39e8,0x3a08,0x39c7,0x39e7,0x4228,0x4228,0x4208,0x4208,0x4228,0x4249,0x3a08,0x4249,0x4a6a,0x4228,0x4a6a,0x4229,0x4a6a,0x4a8a,0x52aa,0x4a6a,0x39e8,0x4229,0x4229,0x52ab,0x52ab,0x4a69,0x4a69,0x4269,0x4a8a,0x4a8a,0x52ab,0x4a69,0x4a69,0x52ab,0x4a6a,0x528b,0x4a4a,0x528a,0x528a,0x4229,0x4229,0x52ab,0x5b2c,0x4a8a,0x4a6a,0x52ab,0x4a8a,0x4229,0x4aaa,0x52ab,0x528a,0x5aec,0x5aeb,0x52cb,0x52cb,0x632d,0x4a6a,0x4a8a,0x5aec,0x5b0c,0x5aec,0x4a8a,0x6b8e,0x634d,0x10a2,0x1082,0x1082,0x10a2,0x18a2,0x18e3,0x18c3,0x18e3,0x18c2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1061,0x1082,0x1062,0x1082,0x1082,0x0861,0x1061,0x1061,0x1062,0x1061,0x1062,0x1062,0x1061,0x0861,0x0861,0x1062,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1061,0x1061,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1082,0x1082,0x1082,0x2104,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x2104,0x528a,0x5acb,0x4249,0x52ca,0x5aeb,0x528a,0x528a,0x528a,0x4a6a,0x52aa,0x4a8a,0x4249,0x4a49,0x4a29,0x39e8,0x4249,0x4a8a,0x52aa,0x4228,0x4229,0x4a6a,0x528a,0x528a,0x4228,0x4249,0x4a69,0x4208,0x4a69,0x4a69,0x4a49,0x4a49,0x4229,0x4a49,0x4208,0x4228,0x4a49,0x4249,0x4229,0x4269,0x5aeb,0x4a8a,0x4249,0x4229,0x39e7,0x4249,0x52cb,0x4248,0x4a8a,0x528a,0x4229,0x4228,0x4a49,0x4208,0x39c7,0x39e8,0x4249,0x4228,0x4229,0x4208,0x3a08,0x39e8,0x29a7,0x31e7,0x3a29,0x31e8,0x4228,0x39e7,0x39e7,0x39e7,0x4249,0x4228,0x4249,0x39e8,0x39e8,0x39c7,0x39c7,0x39e8,0x31a7,0x4209,0x4229,0x4208,0x39e7,0x31a6,0x4228,0x4228,0x39e7,0x39c7,0x39e8,0x39c7,0x39c7,0x39c7,0x31a7,0x2966,0x3a08,0x39e8,0x31c7,0x39c7,0x31c7,0x31a6,0x39e8,0x4229,0x39c7,0x39c7,0x4208,0x41e8,0x39e8,0x4249,0x31c7,0x4208,0x39e8,0x39c7,0x39c7,0x31c7, +0x39c7,0x31a6,0x31c7,0x31e7,0x31c6,0x29a6,0x2986,0x31c7,0x31a6,0x39e7,0x39e7,0x39e7,0x31a6,0x39e7,0x31c7,0x3a08,0x39c7,0x31c7,0x3a08,0x4a6a,0x39e8,0x3a08,0x4a49,0x39e7,0x39e7,0x39e8,0x39e7,0x4a89,0x4207,0x31a6,0x39e8,0x39c7,0x31a7,0x39e8,0x3a08,0x31a7,0x31c7,0x31c7,0x39e8,0x39e8,0x31c7,0x39e8,0x3a07,0x3a07,0x4228,0x3a08,0x3a08,0x31c7,0x39e7,0x3a08,0x39e7,0x41e8,0x39e8,0x39e7,0x39e8,0x3a08,0x39e8,0x4208,0x4228,0x4208,0x4229,0x4229,0x4249,0x4228,0x4249,0x4a69,0x4a6a,0x4a6a,0x4a69,0x4a69,0x3a08,0x4208,0x4229,0x526a,0x526a,0x4a29,0x528a,0x528a,0x4208,0x4a29,0x52ab,0x4a29,0x4a6a,0x4a49,0x4229,0x5acc,0x528a,0x4a69,0x4a69,0x4a69,0x526a,0x4a49,0x528a,0x528a,0x4229,0x4a69,0x52ab,0x4a6a,0x52aa,0x52aa,0x4a69,0x4a6a,0x5aec,0x5acb,0x52aa,0x52aa,0x5aeb,0x5b0c,0x6b6d,0x52cb,0x5aec,0x528a,0x5acb,0x52ab,0x528a,0x18c2,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x10c3,0x18e3,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1061,0x1061,0x1061,0x1061,0x1062,0x1082,0x1062,0x0861,0x0861,0x1061,0x1061,0x0861,0x1061,0x1062,0x1061,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1082,0x1082,0x10a2,0x2104,0x1082,0x0881,0x1082,0x18c3,0x10a2,0x2124,0x5acb,0x5acb,0x4a69,0x52ca,0x52aa,0x52ca,0x528a,0x5acb,0x528a,0x4249,0x5b0c,0x4249,0x4a49,0x4a6a,0x4a69,0x4a69,0x4249,0x4249,0x4229,0x3a08,0x4a6a,0x4a49,0x4a49,0x4249,0x4249,0x4248,0x4249,0x4a69,0x4228,0x4228,0x4208,0x4a8a,0x52aa,0x3a07,0x4208,0x4a49,0x4a89,0x4a8a,0x31e7,0x52cb,0x4a8a,0x4a6a,0x4a49,0x39e8,0x4229,0x528a,0x4a69,0x52aa,0x4a69,0x4229,0x4228,0x4a49,0x4a89,0x4249,0x4228,0x4228,0x31e7,0x3a08,0x3a28,0x3a28,0x4a89,0x4249,0x3a07,0x4249,0x4249,0x2985,0x39e7,0x4248,0x31c6,0x4228,0x4248,0x4249,0x39e7,0x39e7,0x3a08,0x39e8,0x39e7,0x31c7,0x31c7,0x4229,0x39e8,0x39c7,0x39c7,0x3a08,0x39e7,0x4228,0x39e7,0x39c7,0x3186,0x4228,0x39e7,0x31a7,0x39c7,0x4229,0x39e8,0x31a7,0x39a7,0x2945,0x39c7,0x4208,0x39e7,0x39c7,0x31a6,0x31c7,0x4208,0x31c6,0x39e7,0x31c7,0x39e7,0x39c7,0x31a6,0x4228,0x31a6, +0x31a6,0x31a6,0x31c7,0x31a6,0x2986,0x31a6,0x39e7,0x3a08,0x39e8,0x31c7,0x31a7,0x41e8,0x39c7,0x31a6,0x39c7,0x39c7,0x39c7,0x39c7,0x4228,0x4a8a,0x4269,0x4269,0x39e8,0x31c7,0x4208,0x39c7,0x31a6,0x4228,0x3a07,0x39c7,0x3a07,0x31c7,0x31a6,0x3a07,0x4248,0x3a08,0x31a7,0x31a7,0x31a8,0x31c7,0x39e8,0x4208,0x4207,0x4208,0x39e7,0x4228,0x3207,0x3a08,0x3a08,0x39e7,0x39e8,0x4208,0x3a08,0x4a69,0x39e8,0x4229,0x3a09,0x3a08,0x3a28,0x4228,0x4228,0x4249,0x4a69,0x4aaa,0x52cb,0x4228,0x4228,0x4228,0x3a08,0x4a8a,0x3a28,0x3a08,0x4a49,0x4a49,0x4229,0x4228,0x528a,0x4a89,0x52aa,0x4249,0x4a69,0x4229,0x4aab,0x4269,0x4269,0x52cb,0x4a89,0x5b0c,0x4a69,0x4208,0x4249,0x4a69,0x4249,0x52aa,0x3a08,0x4a8a,0x52cb,0x3a08,0x52aa,0x52aa,0x5acb,0x528a,0x5b0c,0x52aa,0x5acb,0x5b0c,0x52aa,0x5b0b,0x52aa,0x630c,0x5acc,0x4229,0x526a,0x5acb,0x5aeb,0x18c2,0x1081,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x18e3,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1081,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x1082,0x1082,0x1082,0x0861,0x1061,0x0861,0x0861,0x0861,0x1081,0x0881,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1062,0x1081,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1061,0x1061,0x1082,0x10a2,0x2924,0x1082,0x0861,0x1082,0x18c3,0x18c3,0x2124,0x52aa,0x5aeb,0x4a89,0x4248,0x52ca,0x52ca,0x52cb,0x4a8a,0x5aec,0x5aab,0x528a,0x5aeb,0x5b0c,0x528a,0x4a69,0x4a8a,0x3a28,0x4a8a,0x52ab,0x4229,0x4229,0x5269,0x4a49,0x4249,0x4a69,0x4249,0x4249,0x4228,0x4a69,0x52aa,0x4269,0x4a8a,0x4a69,0x4aaa,0x3a28,0x4a69,0x3a28,0x4a69,0x3a28,0x4a8a,0x4249,0x4a6a,0x4208,0x4228,0x4229,0x4229,0x4229,0x3a08,0x4249,0x4229,0x4228,0x3a08,0x4249,0x4249,0x4228,0x39e8,0x31a7,0x31a7,0x4a49,0x4228,0x4208,0x4208,0x4208,0x39e7,0x4207,0x3a08,0x39e7,0x4228,0x31c6,0x39c7,0x4208,0x4208,0x4228,0x3a07,0x4228,0x4228,0x3a07,0x4248,0x3a28,0x3a07,0x4228,0x4228,0x39e7,0x3a07,0x4228,0x39e7,0x4228,0x4228,0x4208,0x4228,0x3a07,0x4a89,0x3a08,0x4a8a,0x39e8,0x31a7,0x31a7,0x3a08,0x4249,0x39e7,0x39e7,0x3a08,0x31c7,0x31c7,0x4228,0x39e7,0x31a6,0x31c7,0x31a6,0x31a6,0x31a6,0x4a69,0x39c7, +0x3186,0x31a6,0x31c7,0x31a6,0x31c7,0x31a7,0x31a6,0x31a6,0x31a6,0x31a7,0x2986,0x39c7,0x39e8,0x31e7,0x31c7,0x31c7,0x3a08,0x39e8,0x31a7,0x39c8,0x4208,0x39c7,0x39e8,0x39e7,0x31a6,0x3186,0x39e8,0x39e7,0x2986,0x31a7,0x31c7,0x31c7,0x31c7,0x2986,0x31c7,0x3a28,0x4248,0x31e7,0x31e7,0x39e8,0x39c7,0x3a07,0x4228,0x4248,0x4248,0x39e7,0x31e7,0x4228,0x4248,0x39e7,0x39c7,0x4228,0x3a08,0x3a08,0x3a08,0x39e8,0x31c8,0x31c7,0x39e7,0x4a69,0x4a69,0x4249,0x4228,0x4a6a,0x4249,0x3a08,0x4208,0x3a08,0x4a49,0x4a6a,0x4228,0x39e8,0x4208,0x4208,0x4249,0x4a8a,0x4a49,0x52aa,0x4249,0x52aa,0x4228,0x4a89,0x3a49,0x4229,0x4a8a,0x3a08,0x4a8a,0x4aaa,0x4228,0x4248,0x4269,0x52cb,0x52ab,0x5aec,0x4a8a,0x5b0c,0x4269,0x4248,0x528a,0x52aa,0x5289,0x52aa,0x6b6e,0x5aec,0x4a49,0x52cb,0x4a8a,0x4a89,0x528a,0x632c,0x528a,0x4a69,0x5aeb,0x52ab,0x4a8a,0x18c2,0x1082,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x18e3,0x18c3,0x1082,0x1082,0x1082,0x18a3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c2,0x18c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x18a2,0x18c3,0x18e3,0x18c2,0x1082,0x0861,0x0861,0x1082,0x18e3,0x2103,0x18c2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1081,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x0861,0x0861,0x0861,0x10a2,0x18e3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c2,0x18c3,0x18c3,0x18c2,0x18c2,0x18c3,0x18e3,0x18e3,0x2103,0x2124,0x2124,0x2103,0x1082,0x1061,0x1062,0x18a2,0x2944,0x1082,0x0861,0x1082,0x18e3,0x18e3,0x2924,0x4a49,0x4a49,0x4a69,0x52aa,0x52ca,0x5b0c,0x52eb,0x52aa,0x52aa,0x52aa,0x4208,0x6b6e,0x528b,0x4208,0x4a49,0x4a69,0x4289,0x4a8a,0x4a6a,0x4a6a,0x4a49,0x52aa,0x5aeb,0x4248,0x4a69,0x4249,0x4269,0x4228,0x52aa,0x52ca,0x4a69,0x4aaa,0x4a6a,0x4a69,0x3a08,0x4a69,0x4249,0x4a69,0x4249,0x4249,0x528a,0x4208,0x39c7,0x4208,0x4228,0x4228,0x4208,0x4208,0x4248,0x3a07,0x39e7,0x4249,0x3a08,0x31c7,0x3a08,0x4229,0x39e8,0x39e8,0x39e8,0x4249,0x39e7,0x39c7,0x4208,0x4228,0x4208,0x4a49,0x4228,0x4208,0x39e8,0x4208,0x4a69,0x39e7,0x4228,0x3a07,0x4228,0x528a,0x39e8,0x4228,0x39e7,0x39e7,0x4a49,0x3a07,0x4a69,0x39e7,0x4228,0x3a07,0x3a08,0x39e7,0x39e7,0x4208,0x4228,0x4228,0x4a49,0x4208,0x39e7,0x3a07,0x39e8,0x4209,0x31a7,0x39e7,0x4228,0x31e7,0x31c7,0x3186,0x4a69,0x31a7,0x31c7,0x39c7,0x39e7,0x31a6,0x3a08,0x39e7,0x31a7, +0x29a6,0x31c7,0x31c7,0x2965,0x2986,0x2986,0x39e7,0x3a08,0x3a08,0x31e7,0x31a7,0x31a7,0x31c7,0x31c7,0x39e7,0x3a08,0x39e7,0x31a7,0x31a7,0x39e8,0x31a7,0x39e7,0x4228,0x4228,0x4208,0x31a6,0x39e7,0x4208,0x4249,0x31c7,0x31a6,0x31e7,0x3a08,0x2987,0x31a7,0x39c8,0x3a08,0x31e7,0x31e7,0x39e8,0x3a08,0x3a08,0x4228,0x4228,0x4269,0x3a28,0x3a28,0x52aa,0x4208,0x4208,0x39e7,0x39c7,0x39e8,0x4249,0x4249,0x31c7,0x31e7,0x3a08,0x3a07,0x4249,0x3a08,0x3a08,0x39e8,0x4229,0x4a69,0x4248,0x4249,0x3a29,0x4249,0x4229,0x4249,0x4208,0x4a69,0x4208,0x3a08,0x4249,0x4249,0x4a8a,0x4a49,0x4a49,0x4a8a,0x4a6a,0x4229,0x4209,0x4249,0x4249,0x4228,0x4229,0x5aec,0x5acb,0x52ab,0x4a6a,0x4249,0x4a8a,0x4a8a,0x4a89,0x4a8a,0x4248,0x4228,0x528a,0x5aeb,0x7bef,0x52cb,0x5acb,0x4a8a,0x4aaa,0x4a8a,0x52aa,0x4a69,0x528a,0x528a,0x5aab,0x5aec,0x528b,0x630c,0x18a2,0x1082,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x18e3,0x18c3,0x1062,0x1082,0x1081,0x18c3,0x2124,0x2944,0x3165,0x2944,0x2944,0x2944,0x2944,0x2103,0x2124,0x2124,0x2103,0x2103,0x2103,0x2104,0x2924,0x2124,0x2124,0x2924,0x3165,0x2103,0x10a2,0x0861,0x0861,0x10a2,0x2945,0x39c6,0x2123,0x20e3,0x2104,0x2103,0x18e3,0x18e3,0x18c3,0x18c3,0x20e3,0x20e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x20e3,0x18c2,0x1082,0x0861,0x0861,0x18c3,0x2965,0x3185,0x2924,0x2124,0x2924,0x2944,0x2944,0x2944,0x2965,0x2965,0x2965,0x2924,0x2924,0x2924,0x2965,0x2965,0x2965,0x3185,0x3185,0x2104,0x1082,0x0861,0x0861,0x18c2,0x3164,0x1081,0x0861,0x1082,0x18c3,0x18c3,0x2124,0x528a,0x4a69,0x5aeb,0x52aa,0x52aa,0x5aeb,0x4a69,0x52aa,0x5289,0x4228,0x4a6a,0x4229,0x4209,0x4a49,0x3a28,0x4249,0x4269,0x4269,0x4249,0x4a8a,0x4a6a,0x4a49,0x52aa,0x4248,0x52aa,0x4a8a,0x4a8a,0x4249,0x4208,0x52aa,0x3a08,0x4228,0x4228,0x4a8a,0x4a69,0x4249,0x4228,0x4229,0x4a69,0x4a49,0x4a6a,0x4a69,0x4a49,0x4a6a,0x4249,0x4228,0x4a89,0x4a69,0x4269,0x4a69,0x4229,0x4a69,0x4a69,0x4249,0x4229,0x4229,0x3a08,0x3a28,0x3a07,0x3a07,0x3a28,0x3a08,0x4208,0x4228,0x3a08,0x4249,0x3a08,0x3a08,0x39e8,0x4228,0x3a07,0x3a08,0x4208,0x39e7,0x39c7,0x3a08,0x4229,0x31a7,0x31c7,0x3a07,0x3a08,0x39e7,0x39e7,0x39e7,0x39e7,0x31c7,0x31e7,0x31c7,0x3a08,0x39e7,0x3a08,0x4248,0x4208,0x4208,0x4207,0x528a,0x422a,0x39c8,0x31a7,0x31a7,0x31a6,0x31a6,0x31c7,0x31c7,0x4a49,0x31c7,0x31a7,0x39e8,0x3a07,0x4208,0x3a08,0x39e8,0x31c7, +0x31c7,0x31a6,0x2986,0x2986,0x2986,0x31c7,0x3a08,0x39e7,0x39e7,0x39e7,0x31a7,0x31a7,0x3186,0x39c7,0x39c7,0x3a08,0x3a08,0x31e7,0x3a08,0x3a28,0x3207,0x39e7,0x3a08,0x3a08,0x39c7,0x31c7,0x39c7,0x39e8,0x4229,0x31c7,0x31c7,0x3a08,0x39e7,0x39e7,0x31e8,0x3208,0x3a08,0x31a7,0x39e7,0x3a08,0x39e8,0x39e8,0x3a08,0x4229,0x4249,0x3208,0x426a,0x426a,0x3a08,0x3a48,0x4269,0x31c7,0x3a08,0x4a6a,0x4a8a,0x3a28,0x3a28,0x3a28,0x4248,0x4228,0x4229,0x4249,0x4229,0x4228,0x4a69,0x4a89,0x4249,0x4249,0x4269,0x39e8,0x52cb,0x4a8a,0x4a69,0x4208,0x4aaa,0x52cb,0x3a08,0x4229,0x4229,0x4a49,0x4249,0x4a6a,0x4a6a,0x4229,0x3a08,0x3a08,0x4a8a,0x4a6a,0x4a49,0x528a,0x4a69,0x528a,0x528a,0x4a8a,0x52cb,0x52ca,0x4aaa,0x4a8a,0x5acb,0x526a,0x528a,0x634d,0x5aeb,0x5acb,0x52aa,0x4a89,0x52cb,0x632c,0x4228,0x528b,0x6b4d,0x5acc,0x4a8a,0x528a,0x528a,0x18a2,0x1082,0x1082,0x1082,0x1082,0x18c3,0x10a2,0x18c3,0x18a2,0x1062,0x1082,0x1082,0x18c3,0x2104,0x2104,0x2904,0x2944,0x2965,0x3165,0x3165,0x2924,0x2944,0x2944,0x2944,0x2944,0x2945,0x2945,0x3165,0x3165,0x2944,0x2103,0x2944,0x2103,0x10a2,0x0861,0x0861,0x18a3,0x2945,0x3186,0x18e3,0x2124,0x2945,0x2944,0x2944,0x2924,0x2924,0x2124,0x2924,0x2944,0x2124,0x2124,0x2124,0x2924,0x2103,0x18c2,0x20e3,0x18c3,0x1082,0x0861,0x0861,0x18e3,0x2965,0x2965,0x2104,0x2944,0x2945,0x3165,0x3165,0x3185,0x3185,0x3186,0x3165,0x2965,0x2945,0x2965,0x2965,0x3185,0x2104,0x2104,0x2944,0x18e3,0x1082,0x0861,0x0861,0x18c3,0x2944,0x1081,0x0861,0x1082,0x18c3,0x18c3,0x2924,0x5acb,0x5aec,0x5aeb,0x4a49,0x52ab,0x52aa,0x4aaa,0x52eb,0x4248,0x4a69,0x52ca,0x528a,0x4a49,0x4a8a,0x4249,0x4269,0x4269,0x4a8a,0x4a69,0x4a8a,0x4229,0x4a6a,0x5acb,0x4249,0x4228,0x4a69,0x4249,0x4a49,0x39e8,0x39e8,0x4269,0x52cb,0x4a69,0x4228,0x4a49,0x4229,0x4a49,0x5aec,0x4228,0x4228,0x4a69,0x4a69,0x4a69,0x4a49,0x4249,0x4a8a,0x4a69,0x4249,0x4a69,0x4208,0x3a08,0x4229,0x3a08,0x4228,0x4228,0x3a08,0x31c7,0x4249,0x4249,0x4228,0x39e7,0x4248,0x39e7,0x4208,0x4269,0x3a08,0x3a08,0x3a08,0x4228,0x39e7,0x3a08,0x4228,0x4208,0x39e7,0x39e7,0x31a7,0x4249,0x4269,0x3a07,0x31a6,0x3a08,0x4248,0x39c7,0x3a08,0x4228,0x31c6,0x31c7,0x31c7,0x3a08,0x3a28,0x31e7,0x2985,0x528a,0x52aa,0x39e7,0x4249,0x39e8,0x39c8,0x39c7,0x39e8,0x4208,0x31a6,0x4248,0x3a08,0x39e7,0x39e8,0x31c7,0x39c7,0x4208,0x4a69,0x4228,0x2966,0x31c7, +0x39e7,0x31a6,0x31a6,0x31a6,0x31c7,0x31c7,0x2986,0x31a6,0x31a7,0x31a6,0x39e7,0x31a6,0x31a7,0x39c7,0x39e7,0x39c7,0x4228,0x3a08,0x39e8,0x31c7,0x39e7,0x31a6,0x39e7,0x39e7,0x31c7,0x39e7,0x4228,0x3a08,0x39e8,0x39e7,0x39e7,0x31e7,0x39e7,0x39e7,0x3a07,0x31c7,0x31a7,0x39e7,0x31e7,0x31a6,0x31c7,0x31a7,0x39c8,0x39e8,0x3a09,0x3a08,0x39e8,0x3a08,0x4248,0x4268,0x4aaa,0x3a08,0x4249,0x4208,0x4a49,0x4249,0x4249,0x39e7,0x4229,0x4229,0x4a49,0x4249,0x39e8,0x4229,0x4249,0x4249,0x4249,0x4228,0x3a08,0x4249,0x5acb,0x4a6a,0x4249,0x4249,0x52cb,0x4a8a,0x4208,0x4a49,0x4229,0x4a6a,0x4a49,0x4269,0x4aaa,0x4a8a,0x4a69,0x634c,0x52aa,0x4a8a,0x4249,0x4a8a,0x4228,0x4a49,0x52aa,0x4a8a,0x4a69,0x52cb,0x52cb,0x4a8a,0x4a8b,0x4a6a,0x52ab,0x528a,0x630c,0x630c,0x52aa,0x5b0b,0x4a8a,0x52cb,0x5aec,0x52ab,0x52ab,0x5b0c,0x52ec,0x4a69,0x52cb,0x18a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18a2,0x1082,0x1082,0x1082,0x18c3,0x18a3,0x1082,0x1082,0x2924,0x2944,0x2945,0x2945,0x2924,0x2944,0x2944,0x2945,0x2945,0x2945,0x2945,0x2945,0x2945,0x3165,0x2103,0x18a2,0x10a2,0x1082,0x0861,0x0861,0x10a2,0x18e3,0x18a2,0x18a2,0x2944,0x2945,0x2924,0x2945,0x2944,0x2944,0x2124,0x2944,0x2944,0x2944,0x2124,0x2124,0x2945,0x3165,0x10a2,0x1082,0x10a2,0x1082,0x0861,0x1082,0x18c3,0x18e3,0x18c3,0x18e3,0x2124,0x2924,0x2945,0x2945,0x2945,0x2945,0x2945,0x2944,0x2944,0x2924,0x2945,0x2945,0x3186,0x2104,0x1082,0x18c2,0x10a2,0x1082,0x0861,0x0861,0x18c3,0x2924,0x1061,0x0861,0x10a2,0x18c3,0x18c3,0x2924,0x4a49,0x4a8a,0x4a6a,0x4229,0x4a6a,0x528b,0x4a8a,0x52cb,0x4a49,0x4249,0x4a69,0x52aa,0x52cb,0x4a69,0x4a89,0x52cb,0x4a8a,0x4a6a,0x4a6a,0x528a,0x52aa,0x528a,0x4a69,0x4a69,0x528a,0x4249,0x4a69,0x52aa,0x39e7,0x4228,0x4249,0x52aa,0x4228,0x4249,0x4a49,0x4249,0x4228,0x528a,0x4228,0x4248,0x4a69,0x4228,0x4248,0x4228,0x4a48,0x4a69,0x4a48,0x4a69,0x4a69,0x4a49,0x39e8,0x4a6a,0x4249,0x39e7,0x4249,0x39e8,0x4228,0x4228,0x3a08,0x4228,0x3a08,0x3a28,0x4228,0x4248,0x39e7,0x3a08,0x3a08,0x4228,0x4228,0x31c7,0x39e7,0x39e8,0x4249,0x4228,0x39e7,0x39e8,0x31c7,0x3a08,0x3a08,0x39e7,0x31c7,0x4208,0x39c7,0x39e7,0x4228,0x31c7,0x4228,0x4228,0x3a08,0x4228,0x4249,0x31c7,0x4228,0x4228,0x3a07,0x4249,0x528a,0x39c7,0x39e7,0x3a08,0x4229,0x3a08,0x4228,0x39e7,0x39c6,0x4248,0x39e7,0x39e7,0x4a6a,0x31a6,0x39e7,0x31a7,0x3a08, +0x31c7,0x31a7,0x3186,0x31a6,0x31a7,0x31a6,0x2986,0x31c7,0x31c7,0x31a6,0x39e7,0x31c7,0x31a6,0x31a7,0x39c7,0x31a7,0x39c7,0x31c7,0x39c7,0x31c7,0x39c7,0x39c7,0x31c7,0x2986,0x31c7,0x3a08,0x39e8,0x3a09,0x3a09,0x3a08,0x29c7,0x31c7,0x31e7,0x3a07,0x39e7,0x31c7,0x2986,0x29a6,0x31a6,0x31e7,0x31a7,0x31c7,0x31c7,0x31e8,0x39e8,0x39e8,0x424a,0x4a8a,0x3a08,0x4228,0x39e8,0x4249,0x4229,0x4208,0x4208,0x39e8,0x39e8,0x31c7,0x39e8,0x526a,0x4a49,0x39e7,0x39e7,0x3a08,0x3a08,0x4249,0x4228,0x4a69,0x4a8a,0x4228,0x4249,0x4a6a,0x4249,0x4249,0x4a8a,0x4229,0x4208,0x4a49,0x4a69,0x4a69,0x4228,0x4249,0x4249,0x4a6a,0x4a49,0x4a6a,0x4a49,0x52cb,0x4aaa,0x4269,0x4a69,0x52cb,0x52cb,0x4a8a,0x4228,0x52aa,0x52cb,0x4a6a,0x632d,0x5acb,0x4a49,0x52ab,0x5acb,0x5aca,0x4a69,0x52ab,0x4a69,0x52cb,0x52cb,0x4a8a,0x52ab,0x52cb,0x4a8a,0x5aeb,0x5acb,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18a3,0x1082,0x1082,0x1082,0x18a2,0x0861,0x0841,0x0861,0x2924,0x2924,0x2944,0x2945,0x2924,0x2945,0x2944,0x2944,0x2945,0x2945,0x2945,0x2945,0x2945,0x2965,0x2944,0x0861,0x0861,0x1082,0x0861,0x0861,0x10a2,0x1082,0x0841,0x18c3,0x2944,0x2924,0x2925,0x2945,0x2924,0x2944,0x2964,0x3164,0x2944,0x2944,0x2924,0x2944,0x2945,0x3165,0x18c2,0x0841,0x1082,0x1082,0x0861,0x1082,0x10a2,0x1061,0x0861,0x2104,0x2124,0x2924,0x2924,0x2945,0x2945,0x2945,0x2964,0x2944,0x2944,0x2925,0x2945,0x2925,0x2965,0x2945,0x0841,0x0841,0x1082,0x1062,0x0861,0x0861,0x18c3,0x2924,0x1061,0x0861,0x18a3,0x18c3,0x18c3,0x2124,0x4a69,0x5aeb,0x4a6a,0x52aa,0x528a,0x528a,0x4a49,0x52ab,0x4249,0x4228,0x3a08,0x52eb,0x52aa,0x4a69,0x5acb,0x4a69,0x4a49,0x4228,0x4a49,0x4208,0x4a6a,0x4a6a,0x3a08,0x4a8a,0x52aa,0x4249,0x4a69,0x4a49,0x4a49,0x4a69,0x3a08,0x4a49,0x39e7,0x4a69,0x4a89,0x52aa,0x4248,0x4a49,0x4248,0x4228,0x4a49,0x52aa,0x4a69,0x52aa,0x4a69,0x4228,0x528a,0x4a6a,0x4229,0x4229,0x39e7,0x528a,0x4a69,0x39e7,0x4249,0x4229,0x3a08,0x3a08,0x31a6,0x4249,0x4249,0x39c7,0x3a08,0x4248,0x3a08,0x4a89,0x4228,0x4208,0x3a07,0x39e7,0x39c7,0x39e8,0x4a49,0x528a,0x39e8,0x39e8,0x39c8,0x31c7,0x31a6,0x3a08,0x31c6,0x39e7,0x39e7,0x39e7,0x39e7,0x3a07,0x3a07,0x39e7,0x39e8,0x4a69,0x4228,0x4a69,0x31a6,0x3186,0x39e7,0x39e7,0x39e7,0x4229,0x4a6a,0x4228,0x39e7,0x4248,0x4248,0x4228,0x4249,0x4228,0x39e7,0x3a08,0x31e7,0x39e7,0x39c7,0x29a6,0x31c7, +0x31a6,0x31a6,0x2986,0x31c7,0x31a6,0x2986,0x2986,0x31c7,0x31c7,0x2986,0x39e7,0x39e8,0x31c7,0x31a7,0x39e8,0x31a6,0x39e7,0x31c7,0x31c7,0x39e7,0x39c7,0x31a6,0x31c7,0x31a7,0x4249,0x4249,0x2986,0x39e8,0x3a08,0x3a08,0x31c7,0x39e7,0x31c7,0x39c7,0x31a7,0x31c7,0x3a07,0x3a08,0x39e7,0x3a08,0x31e7,0x29a6,0x31e7,0x39e7,0x4228,0x39e7,0x4249,0x4229,0x3a08,0x4229,0x3a08,0x3a08,0x4269,0x4229,0x31e8,0x3a08,0x3a08,0x4229,0x528a,0x528a,0x4228,0x31a7,0x4228,0x3a08,0x3a08,0x4a49,0x4a69,0x4228,0x4249,0x4229,0x4228,0x5acb,0x3a08,0x428a,0x428a,0x3a29,0x3a28,0x4249,0x52aa,0x4a89,0x4a89,0x4a69,0x4a6a,0x4a6a,0x4249,0x4a49,0x4a4a,0x5aeb,0x4a69,0x4a49,0x4a6a,0x5acc,0x52ab,0x52ab,0x4a49,0x4a6a,0x4249,0x5aec,0x5aeb,0x528a,0x5aeb,0x632c,0x5acb,0x4a69,0x52ab,0x4a6a,0x424a,0x4a8a,0x52ca,0x52cb,0x5b2c,0x4a8a,0x5b0c,0x630c,0x5acb,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18c3,0x1082,0x1082,0x1082,0x10a2,0x0841,0x0020,0x0861,0x2124,0x2124,0x2945,0x2945,0x2925,0x2945,0x3185,0x39a4,0x39a4,0x39a5,0x3165,0x2945,0x2945,0x2965,0x2945,0x0861,0x0841,0x1082,0x0861,0x0861,0x10a2,0x0861,0x0020,0x18e3,0x2945,0x2945,0x2945,0x2945,0x2945,0x39c4,0x5a64,0x5a84,0x4204,0x2944,0x2945,0x2945,0x2945,0x3165,0x18e3,0x0841,0x0861,0x1082,0x1061,0x1082,0x1082,0x0841,0x0861,0x2104,0x2925,0x2945,0x2945,0x2945,0x3185,0x4a25,0x5244,0x4204,0x3185,0x2945,0x2965,0x2945,0x2945,0x2945,0x0861,0x0841,0x0861,0x1062,0x0861,0x0841,0x18c3,0x2904,0x0861,0x0861,0x10a2,0x18c3,0x18c2,0x2944,0x528a,0x4a49,0x4a69,0x4a69,0x4a69,0x4a49,0x4229,0x4a6a,0x4228,0x5289,0x4a89,0x4a69,0x4229,0x4a69,0x4a49,0x52aa,0x4228,0x4a49,0x4a8a,0x3a28,0x3a28,0x4a8a,0x4249,0x4a69,0x4a69,0x4a69,0x4a69,0x4208,0x4a49,0x4249,0x4a49,0x4a49,0x4228,0x4228,0x4228,0x4228,0x4a69,0x4228,0x4a8a,0x4a8a,0x3a08,0x5aeb,0x528a,0x4208,0x4a49,0x4a49,0x4a6a,0x4208,0x4229,0x4228,0x4228,0x3a07,0x39e7,0x3a08,0x39e7,0x4229,0x3a08,0x39e7,0x3a08,0x4228,0x4208,0x39c7,0x31e7,0x31c7,0x3a08,0x4a69,0x4a69,0x31a6,0x3a08,0x4228,0x39e7,0x39e7,0x4228,0x39e8,0x31a7,0x31a7,0x3186,0x39c7,0x39e8,0x39c7,0x4208,0x4249,0x3a08,0x3a08,0x39e7,0x39e7,0x4208,0x39c7,0x39e8,0x31c7,0x31c7,0x4228,0x39e7,0x31a7,0x39c7,0x31c7,0x3186,0x39c8,0x31e7,0x3a08,0x31c7,0x3a08,0x31c7,0x31c7,0x3a08,0x31c7,0x31c7,0x3a08,0x31e7,0x39e7,0x39e8,0x2966,0x2986, +0x2966,0x2986,0x31a7,0x31c7,0x2986,0x2986,0x2986,0x31a6,0x2986,0x2986,0x31c7,0x39e8,0x31c7,0x31a7,0x39e8,0x31a6,0x4208,0x31a7,0x31c7,0x31c7,0x39e7,0x39e7,0x31a7,0x39e8,0x3a08,0x39e7,0x31a6,0x31c7,0x4228,0x4a89,0x4228,0x39e7,0x39e7,0x3186,0x31a7,0x39e8,0x4249,0x39e7,0x31a6,0x31a6,0x3a28,0x31e7,0x3a08,0x4a49,0x528a,0x31c7,0x3a29,0x39e8,0x3a08,0x4a69,0x4229,0x4208,0x4229,0x4a49,0x4229,0x3a08,0x3a08,0x4249,0x52aa,0x4a48,0x4228,0x39e8,0x39e8,0x31e8,0x31e8,0x4229,0x528a,0x41e8,0x39e8,0x4208,0x4a6a,0x4a6a,0x4248,0x4229,0x4249,0x4249,0x4a4a,0x4249,0x52cb,0x4a4a,0x4a6a,0x4229,0x634d,0x52cb,0x4249,0x52ab,0x52aa,0x4a69,0x3a28,0x4a8a,0x4209,0x3a09,0x4a6a,0x4a6a,0x4a49,0x5aeb,0x5b0c,0x634c,0x5269,0x5acb,0x634d,0x4a8a,0x52ab,0x528a,0x4a4a,0x528a,0x52ab,0x52cb,0x5aeb,0x632d,0x5aeb,0x52ca,0x5aeb,0x5aeb,0x5aeb,0x18c3,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18a3,0x1082,0x1082,0x1082,0x10a2,0x0841,0x0841,0x0861,0x2124,0x2124,0x2925,0x2925,0x2925,0x3165,0x5265,0x5a64,0x62c4,0x6b04,0x39c4,0x2945,0x2945,0x2945,0x2945,0x0861,0x0841,0x0861,0x0861,0x0861,0x10a2,0x0841,0x0020,0x18c3,0x2945,0x2945,0x2945,0x2945,0x2964,0x7324,0x7303,0x7304,0x7b64,0x3984,0x2945,0x2945,0x2945,0x3165,0x18e3,0x0841,0x0861,0x1082,0x1082,0x1082,0x1082,0x0841,0x0861,0x2104,0x2945,0x2945,0x2945,0x2945,0x5a65,0x7b24,0x6ae4,0x7344,0x5244,0x2965,0x2965,0x2945,0x2945,0x2945,0x0861,0x0841,0x0861,0x1062,0x0861,0x0861,0x18c3,0x2104,0x0861,0x0861,0x1082,0x18c3,0x18c3,0x2944,0x528b,0x4a29,0x4228,0x5289,0x528a,0x4a69,0x4228,0x4a69,0x528a,0x52aa,0x4248,0x4a29,0x4229,0x4a29,0x4229,0x528a,0x4229,0x4249,0x4a69,0x4a69,0x3a07,0x52cb,0x4a49,0x528a,0x4a8a,0x4228,0x4a89,0x4248,0x4228,0x4249,0x4a49,0x4a69,0x4a49,0x3a07,0x4228,0x4a69,0x4a8a,0x3a08,0x4249,0x4a8a,0x4a69,0x52aa,0x4a6a,0x4209,0x528a,0x528a,0x4a49,0x4249,0x4249,0x4a69,0x39e7,0x39e7,0x39e8,0x4208,0x4228,0x3a08,0x31e7,0x3a08,0x3a08,0x4a49,0x4a29,0x31a7,0x3a08,0x31e7,0x4a69,0x3a08,0x3a08,0x39c7,0x3186,0x39e7,0x39e7,0x39e7,0x4a49,0x4208,0x39e7,0x31a7,0x39c7,0x31a7,0x39e8,0x39c7,0x39e8,0x31a7,0x39e7,0x31a6,0x4228,0x2985,0x4208,0x4208,0x39e8,0x3a08,0x31c7,0x39e7,0x31c7,0x2986,0x2986,0x31a7,0x31c7,0x31a7,0x2986,0x39e7,0x31a6,0x31c7,0x3a28,0x39e8,0x31a7,0x3187,0x31a7,0x3a08,0x4228,0x31c7,0x31a7,0x2966,0x2986, +0x2966,0x2965,0x2986,0x2986,0x2986,0x31c7,0x39e7,0x31a6,0x2986,0x31c7,0x3a08,0x31c7,0x31c7,0x31c7,0x31a7,0x31a7,0x3186,0x31a7,0x31a7,0x39c7,0x39e8,0x39c7,0x31a7,0x31c7,0x3a08,0x39e7,0x39e7,0x31c7,0x4228,0x4228,0x39e7,0x39e7,0x39e7,0x31a7,0x4209,0x39c8,0x39e8,0x3186,0x39c7,0x4208,0x3a28,0x39e7,0x4228,0x4228,0x39e8,0x39e8,0x3a08,0x3a08,0x4208,0x4a49,0x4249,0x41e8,0x4249,0x4a6a,0x3a08,0x4a8a,0x4a8a,0x3a08,0x4269,0x4249,0x4a49,0x4208,0x39e8,0x31a7,0x39e8,0x3a08,0x39e8,0x39e8,0x4209,0x4208,0x4a49,0x4a29,0x528a,0x4a6a,0x4a49,0x5acb,0x5aeb,0x3a28,0x4a8a,0x4229,0x4249,0x4a8a,0x4249,0x3a28,0x4a6a,0x5aeb,0x4a8a,0x4269,0x52ca,0x4a8a,0x4249,0x3a28,0x4249,0x4a49,0x4229,0x5acb,0x52aa,0x52aa,0x4208,0x5b0c,0x632c,0x31e8,0x528a,0x5acb,0x4a4a,0x5aec,0x5aeb,0x52aa,0x52cb,0x52ab,0x52aa,0x4a89,0x4249,0x5aec,0x4229,0x18c3,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18c3,0x1082,0x1082,0x1082,0x10a2,0x0841,0x0841,0x0861,0x2124,0x2124,0x2924,0x2925,0x2925,0x3165,0x5245,0x5a64,0x8384,0x7b63,0x39a4,0x2945,0x2945,0x2945,0x2945,0x0841,0x0841,0x0861,0x0861,0x0861,0x10a2,0x0841,0x0020,0x18c3,0x2945,0x2945,0x2925,0x2925,0x3184,0x8be4,0x7b23,0x7304,0x9404,0x39a3,0x2945,0x2945,0x2945,0x2965,0x18e3,0x0841,0x0861,0x1082,0x1082,0x1082,0x1082,0x0020,0x0861,0x2124,0x2945,0x2945,0x2945,0x2945,0x7b65,0x8344,0x5224,0x83a5,0x7304,0x3145,0x2965,0x2945,0x2945,0x2945,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x20e3,0x2104,0x0861,0x0861,0x10a2,0x18c3,0x20e3,0x2924,0x4a49,0x4a69,0x4208,0x4249,0x4249,0x3a08,0x4228,0x4229,0x4208,0x4228,0x4208,0x4228,0x4a49,0x4228,0x4228,0x4a69,0x4229,0x4208,0x39c7,0x4a69,0x4228,0x4a6a,0x4228,0x4a49,0x4a49,0x4a49,0x4a49,0x4249,0x3a08,0x4228,0x4249,0x4a69,0x4a69,0x4a69,0x52aa,0x4269,0x4229,0x39e8,0x3a08,0x528a,0x4228,0x4228,0x4a69,0x4229,0x4208,0x4a6a,0x4229,0x4249,0x4a69,0x4a69,0x3a08,0x39e7,0x39e7,0x3a08,0x3a08,0x3a07,0x31a6,0x31a6,0x31c6,0x4228,0x4a8a,0x39e8,0x4249,0x4249,0x4249,0x4249,0x4208,0x4208,0x31a6,0x31a6,0x39e8,0x39e7,0x39e7,0x4208,0x39c7,0x31a6,0x39c7,0x39c7,0x31a7,0x39c8,0x39e8,0x31a6,0x31c7,0x39e7,0x39e7,0x31c6,0x39e7,0x39c7,0x31a7,0x39e7,0x31a7,0x2966,0x31a6,0x29a6,0x31c7,0x31c7,0x2966,0x31a6,0x31a6,0x39c7,0x31c6,0x31e7,0x31e7,0x39e7,0x39c7,0x31a6,0x39e7,0x39e7,0x39e7,0x39e7,0x31c7,0x31c7,0x31a7, +0x2965,0x2965,0x2986,0x29a6,0x2986,0x31a6,0x31a6,0x29a6,0x31a6,0x29a6,0x29a6,0x29a6,0x31e7,0x39e7,0x31c7,0x31a6,0x31a6,0x31c7,0x31a7,0x31c7,0x31a7,0x39c7,0x39e7,0x4228,0x39e7,0x31a6,0x29a6,0x31c7,0x31c7,0x39c7,0x39e8,0x2986,0x2986,0x31c7,0x29a7,0x2986,0x2986,0x39e7,0x39c7,0x39e7,0x39e8,0x3a08,0x4249,0x4a6a,0x4229,0x4a69,0x31c7,0x39e7,0x39c8,0x4229,0x31a7,0x31a7,0x4249,0x4249,0x3a08,0x52cb,0x4249,0x3a08,0x31c8,0x4a6a,0x39e8,0x4208,0x3a08,0x31a7,0x31e7,0x3a08,0x31e7,0x39e7,0x4208,0x39e8,0x39e8,0x4229,0x4249,0x4229,0x4229,0x4a8a,0x4249,0x31c7,0x3a08,0x4249,0x4a69,0x4249,0x4249,0x3a08,0x4249,0x52ab,0x4a6a,0x4228,0x4a8a,0x5aeb,0x4a49,0x428a,0x426a,0x4229,0x4a6a,0x4a6a,0x4a8a,0x4249,0x52cb,0x528a,0x4a6a,0x630c,0x4208,0x4a6a,0x4a8a,0x4a69,0x4a6a,0x4a49,0x4a49,0x528a,0x52ab,0x4a69,0x4a49,0x528a,0x4a4a,0x18a3,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18a3,0x18c3,0x1082,0x1082,0x1082,0x1082,0x0841,0x0841,0x1082,0x2124,0x2124,0x2924,0x2945,0x2925,0x2945,0x3165,0x5244,0x8384,0x5223,0x3164,0x2945,0x2945,0x2945,0x2945,0x0861,0x0841,0x1082,0x0861,0x0861,0x10a2,0x0841,0x0020,0x18c3,0x2925,0x2945,0x2924,0x2124,0x3184,0x8bc4,0x8363,0x7b44,0x93e4,0x39a3,0x2945,0x2945,0x2945,0x2965,0x18c3,0x0841,0x0861,0x1082,0x1082,0x1082,0x1082,0x0020,0x0861,0x2124,0x2945,0x2945,0x2945,0x2945,0x7325,0x8364,0x5244,0x8bc4,0x8364,0x3144,0x2965,0x2945,0x2965,0x2945,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x2103,0x20e3,0x0861,0x1061,0x10a2,0x18c3,0x18e3,0x2924,0x4249,0x4a49,0x4228,0x4228,0x4249,0x4228,0x4228,0x4229,0x4208,0x4228,0x4208,0x39e8,0x3a08,0x3a08,0x3a08,0x3a08,0x4228,0x4228,0x4208,0x39e8,0x3a28,0x3a28,0x3a08,0x3a07,0x4228,0x4228,0x39e7,0x4248,0x4249,0x3a08,0x4249,0x4208,0x4a69,0x528a,0x528a,0x4a69,0x4228,0x3a28,0x3a28,0x4228,0x4a69,0x4a69,0x4a6a,0x39e8,0x31a7,0x39e8,0x31c6,0x3a07,0x4229,0x3a08,0x39e8,0x4208,0x4208,0x3a08,0x3a08,0x31a6,0x3186,0x39c7,0x4208,0x3a07,0x39e7,0x4208,0x4a49,0x4a69,0x39c7,0x4249,0x4229,0x4229,0x3a08,0x39c8,0x4229,0x39c7,0x31a7,0x4228,0x39c7,0x39c7,0x31c7,0x39e7,0x39c7,0x39c7,0x39e8,0x31a6,0x31a6,0x31c7,0x31c6,0x31c7,0x3a08,0x31a7,0x2966,0x31a7,0x39c7,0x31a7,0x4208,0x31a6,0x29a6,0x2986,0x3186,0x31a6,0x3185,0x39a6,0x2966,0x31c7,0x39c7,0x39c7,0x39c6,0x39c6,0x31a6,0x3186,0x2986,0x31c6,0x31a6,0x31c7,0x3186, +0x2986,0x31c7,0x2986,0x2965,0x2986,0x31a7,0x31a6,0x2986,0x3186,0x3186,0x3186,0x39c7,0x39c7,0x3186,0x31a6,0x31a6,0x31a6,0x3186,0x2966,0x3186,0x31a7,0x31c7,0x39c7,0x3a08,0x31a6,0x31a6,0x31a7,0x31a7,0x39c8,0x39e8,0x39c7,0x31a7,0x31c7,0x31a7,0x31a7,0x31c6,0x31a6,0x39e7,0x39e7,0x3a28,0x3a08,0x3a08,0x3a08,0x39e8,0x3a08,0x4249,0x39e8,0x3a08,0x4229,0x39e8,0x39e8,0x4208,0x39e8,0x4249,0x3a08,0x31c7,0x39e8,0x39e8,0x31c7,0x4208,0x39c7,0x39e8,0x4249,0x39e7,0x31c7,0x31c8,0x3a08,0x3a08,0x39e7,0x3a08,0x39e7,0x39e8,0x39e8,0x3a08,0x4229,0x4249,0x3a08,0x3a28,0x3a28,0x39e8,0x3a28,0x4269,0x4269,0x4269,0x4249,0x3a08,0x4229,0x4a6a,0x4229,0x5acc,0x4249,0x4229,0x4249,0x39e8,0x4a49,0x4a6a,0x4a6a,0x4229,0x4a6a,0x4208,0x4a29,0x4a49,0x4229,0x4249,0x3a08,0x3a08,0x4229,0x3a08,0x4249,0x4a6a,0x528a,0x4a69,0x4a49,0x4229,0x4249,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18a2,0x18c3,0x1082,0x1082,0x1082,0x1082,0x0841,0x0841,0x1082,0x2124,0x2924,0x2944,0x2924,0x2945,0x2945,0x3164,0x7344,0x7303,0x3164,0x2944,0x2945,0x2945,0x2945,0x2945,0x0861,0x0841,0x1082,0x0861,0x0881,0x10a2,0x0841,0x0020,0x18c3,0x2925,0x2945,0x2924,0x2124,0x39c4,0x93e5,0x6ac3,0x62a4,0x9c04,0x4a03,0x2925,0x2945,0x2945,0x2965,0x18c3,0x0020,0x0861,0x1082,0x0861,0x1082,0x1082,0x0020,0x1081,0x2124,0x2945,0x2945,0x2945,0x2945,0x5a65,0x7b44,0x6ac3,0x9404,0x7b24,0x2944,0x2965,0x2945,0x2965,0x2945,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x20e3,0x18e3,0x0861,0x1082,0x18a2,0x18c3,0x18e3,0x2124,0x39c7,0x39e8,0x3a08,0x3a08,0x39e8,0x39e8,0x4208,0x4229,0x4229,0x39e8,0x4208,0x39e8,0x3a08,0x4229,0x39e8,0x3a08,0x4208,0x39c7,0x4208,0x39e8,0x3a08,0x31c7,0x39e8,0x31c7,0x31a7,0x39e8,0x39c7,0x39e8,0x4a29,0x4a49,0x4229,0x2986,0x31a7,0x4208,0x4208,0x39e8,0x31c7,0x2986,0x29a6,0x31c7,0x39e8,0x39c7,0x31a7,0x52aa,0x4a69,0x4228,0x3a28,0x4229,0x3a08,0x39c7,0x4228,0x4208,0x39e7,0x39e7,0x39e7,0x39c7,0x41e7,0x3186,0x2945,0x2965,0x2125,0x2145,0x2145,0x2966,0x2965,0x2966,0x2125,0x2125,0x2104,0x2125,0x2945,0x2104,0x2124,0x2124,0x2104,0x2124,0x1904,0x2125,0x2125,0x2125,0x18e4,0x4228,0x4228,0x3186,0x31c7,0x31a6,0x2966,0x2966,0x2965,0x3186,0x2966,0x2966,0x2966,0x2965,0x2966,0x2986,0x3186,0x2965,0x2945,0x3186,0x2986,0x3186,0x2966,0x2945,0x2965,0x2965,0x2124,0x2945,0x2145,0x2145,0x2165,0x2986,0x2965, +0x2985,0x2986,0x2965,0x2965,0x2986,0x2986,0x2986,0x2965,0x31a6,0x31a6,0x2965,0x31a6,0x39c7,0x2965,0x3186,0x31a6,0x2965,0x2965,0x2966,0x2966,0x2966,0x3186,0x2986,0x2966,0x2986,0x31c7,0x2965,0x2965,0x3186,0x31c7,0x31a6,0x3186,0x2986,0x31a6,0x31a6,0x31a7,0x31a7,0x2966,0x39e8,0x39c7,0x39e7,0x39e8,0x39e8,0x3a08,0x39e8,0x39e8,0x31a7,0x39c7,0x3a08,0x39e8,0x4209,0x39c8,0x39c8,0x4208,0x39e8,0x39e8,0x39c7,0x31a7,0x29a6,0x31c6,0x31e7,0x39e7,0x4228,0x39c7,0x39c8,0x39c8,0x39c8,0x41e8,0x39e8,0x39e7,0x39c7,0x31c7,0x31c7,0x31c7,0x4229,0x4208,0x39e7,0x4208,0x39c7,0x4209,0x4209,0x4a8a,0x4229,0x4a6a,0x4229,0x4249,0x4249,0x4a6a,0x4a49,0x4209,0x4209,0x39e8,0x41e8,0x4a4a,0x528a,0x4208,0x4208,0x4208,0x4208,0x4208,0x4228,0x4208,0x4228,0x4208,0x4208,0x4208,0x4208,0x4229,0x39e8,0x4208,0x4a49,0x4229,0x4208,0x41e8,0x4208,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18a3,0x18c3,0x1082,0x1082,0x1082,0x10a2,0x0841,0x0841,0x0861,0x2124,0x2944,0x2924,0x2924,0x2924,0x2124,0x41e4,0x93e4,0x5223,0x2924,0x2944,0x2945,0x2945,0x2945,0x2945,0x0841,0x0841,0x1082,0x0861,0x0861,0x10a2,0x0841,0x0020,0x18e3,0x2945,0x2945,0x2925,0x2124,0x41e5,0x93e5,0x6283,0x5264,0x93e4,0x4a03,0x2925,0x2925,0x2925,0x2965,0x18c3,0x0020,0x0861,0x1082,0x1082,0x1082,0x1082,0x0841,0x1082,0x2124,0x2945,0x2945,0x2945,0x2945,0x4a45,0x7324,0x62c4,0x93e4,0x6284,0x2945,0x2945,0x2945,0x2945,0x2924,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x18e3,0x18c3,0x0861,0x1082,0x10a2,0x18c3,0x18e3,0x2944,0x39e7,0x4228,0x4228,0x29a6,0x39e7,0x31c6,0x39c6,0x31c6,0x39e7,0x39e7,0x4207,0x31c6,0x39e7,0x4228,0x39e7,0x4228,0x4a48,0x4248,0x39e7,0x0842,0x0000,0x1904,0x18e3,0x18c3,0x10c3,0x1083,0x1082,0x18c3,0x10a3,0x18e4,0x2104,0x2104,0x18e4,0x18c4,0x10c3,0x2145,0x2125,0x1904,0x1924,0x1904,0x1904,0x18e3,0x1924,0x634c,0x636c,0x52aa,0x4a8a,0x5289,0x4228,0x4208,0x39e7,0x39e7,0x39c7,0x31a6,0x4208,0x4208,0x41e8,0x2945,0x1082,0x1083,0x1083,0x10a2,0x18e3,0x10a2,0x18c3,0x18e4,0x18c3,0x18e4,0x18e3,0x18e3,0x18e3,0x2124,0x2124,0x1903,0x1904,0x18c3,0x18c3,0x18c3,0x2104,0x2125,0x2986,0x3a07,0x4a89,0x29a6,0x29a6,0x2965,0x2145,0x2124,0x2124,0x2144,0x2124,0x2124,0x2104,0x2124,0x18e3,0x2104,0x2125,0x18e4,0x18e4,0x1904,0x1904,0x1904,0x1904,0x2104,0x1904,0x1904,0x18e3,0x2125,0x2965,0x3a08,0x4248,0x4aaa,0x4a8a, +0x2945,0x2145,0x2144,0x2945,0x2965,0x2945,0x2966,0x2965,0x2986,0x2986,0x2945,0x3186,0x39c7,0x31a6,0x3186,0x2985,0x3186,0x2985,0x2965,0x3186,0x2985,0x2986,0x2986,0x2986,0x31a6,0x31a6,0x31c6,0x3a07,0x39c6,0x31a6,0x3186,0x31a6,0x3186,0x2104,0x2104,0x18e4,0x18c3,0x10c4,0x10a3,0x10a3,0x18e4,0x18a3,0x18c3,0x20e4,0x18c3,0x18a3,0x1082,0x18c3,0x18c4,0x18c4,0x18c4,0x10a3,0x18e4,0x10a3,0x18e4,0x18c3,0x1083,0x2104,0x5aeb,0x4a8a,0x31c7,0x39e7,0x31a6,0x3186,0x39e8,0x3a08,0x31c7,0x31c7,0x4208,0x4208,0x3a08,0x52aa,0x4a49,0x0000,0x18c3,0x18a3,0x18a2,0x18a3,0x1083,0x18a3,0x1083,0x18c4,0x1083,0x18c4,0x1083,0x2105,0x20e4,0x10a3,0x0842,0x0862,0x0021,0x1063,0x1063,0x1083,0x18c4,0x0862,0x31a7,0x52aa,0x3a08,0x39e7,0x2986,0x31c6,0x31c7,0x31a6,0x39e7,0x39c7,0x2985,0x39c6,0x39e7,0x39c6,0x39e6,0x39e7,0x39e7,0x4228,0x4228,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18c3,0x1082,0x1082,0x1082,0x10a2,0x0861,0x0841,0x0861,0x2104,0x2924,0x2124,0x2124,0x2124,0x2124,0x5245,0x8384,0x3983,0x2924,0x2924,0x2924,0x2925,0x2945,0x2124,0x0841,0x0841,0x1082,0x0861,0x0861,0x10a2,0x0861,0x0841,0x18c3,0x2925,0x2945,0x2925,0x2924,0x3185,0x6ae5,0x6ac4,0x62a4,0x7304,0x3984,0x2924,0x2924,0x2925,0x2945,0x18c3,0x0841,0x0861,0x1082,0x1082,0x1082,0x10a2,0x0861,0x1082,0x2124,0x2925,0x2925,0x2924,0x2944,0x4a25,0x7325,0x6ae4,0x7b24,0x41c4,0x2945,0x2945,0x2945,0x2945,0x2104,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x18c3,0x18c3,0x0861,0x1082,0x10a2,0x10a2,0x18e3,0x2965,0x5b4c,0x5b4c,0x5b4c,0x8450,0x73ce,0x73ce,0x7c30,0x8450,0x73ee,0x5b0b,0x632c,0x8450,0x6bae,0x6bce,0x6bae,0x632b,0x5b0b,0x634c,0x5b0c,0x4229,0x5aec,0x2965,0x4a89,0x52ca,0x52eb,0x4268,0x52eb,0x5b0b,0x52ea,0x5b0b,0x4aaa,0x4a89,0x4228,0x4228,0x29a7,0x4269,0x4249,0x31e7,0x4249,0x4269,0x4aaa,0x638d,0x31e7,0x4a69,0x4229,0x4249,0x4248,0x4228,0x4208,0x4228,0x39e8,0x4249,0x3a08,0x4269,0x5aec,0x52aa,0x4a69,0x3a07,0x2124,0x2925,0x2104,0x2945,0x31a7,0x2965,0x10a3,0x0001,0x1904,0x10c2,0x1904,0x10c3,0x18e3,0x2124,0x2985,0x2165,0x0882,0x2965,0x2145,0x2124,0x2124,0x2945,0x39c7,0x2965,0x5aeb,0x4a6a,0x2166,0x10e4,0x1904,0x1904,0x10c3,0x18e3,0x18e3,0x18c3,0x2104,0x18e3,0x10c3,0x18e3,0x1904,0x18e3,0x10c3,0x10a3,0x10a2,0x10a2,0x10c3,0x18e3,0x10c3,0x10c3,0x10a3,0x10a3,0x10c3,0x2165,0x4248,0x4a8a,0x4a4a, +0x2104,0x2104,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2125,0x2125,0x2124,0x2945,0x2966,0x2945,0x2145,0x2145,0x2145,0x2125,0x2125,0x2125,0x2125,0x2125,0x2125,0x2945,0x2944,0x2945,0x2965,0x2965,0x2965,0x2945,0x2945,0x2125,0x4a69,0x632c,0x0882,0x2124,0x18e3,0x1903,0x18e3,0x10a3,0x18e4,0x18e4,0x10c3,0x18e4,0x2125,0x2124,0x2165,0x2945,0x2124,0x2144,0x2945,0x2925,0x2124,0x2124,0x2104,0x1904,0x18e4,0x2104,0x4208,0x39e8,0x2145,0x2965,0x2965,0x2986,0x31a7,0x31a7,0x31a7,0x31c7,0x31e7,0x31e8,0x39e8,0x4269,0x31e7,0x39e6,0x4228,0x39e7,0x31a6,0x2165,0x2985,0x31c6,0x31e7,0x31c7,0x29c6,0x29c6,0x3207,0x3a07,0x4248,0x3a08,0x4a8a,0x52ab,0x4aab,0x4269,0x428a,0x4a89,0x39e7,0x1904,0x4228,0x5aeb,0x4a8a,0x52ca,0x636d,0x73ef,0x638e,0x7bf0,0x73ce,0x634c,0x7c0f,0x8450,0x8450,0x94d2,0x9d33,0x8491,0x8cd3,0x8cd2,0x9534,0x18e3,0x1082,0x1081,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x18e3,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x2104,0x2924,0x2124,0x2924,0x2924,0x2124,0x41e5,0x5244,0x2944,0x2924,0x2124,0x2924,0x2945,0x2945,0x2103,0x10a2,0x1081,0x1082,0x0861,0x0861,0x10a2,0x10a2,0x18c2,0x18c2,0x2104,0x2125,0x2124,0x2124,0x2924,0x39c4,0x4a24,0x4a04,0x41c4,0x2944,0x2124,0x2124,0x2924,0x2945,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x18c2,0x18c2,0x18c3,0x2104,0x2945,0x2925,0x2924,0x2925,0x39a5,0x5245,0x5245,0x4a05,0x3165,0x2945,0x2945,0x2965,0x2965,0x2104,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x18e3,0x18e3,0x0861,0x1082,0x10a2,0x10a2,0x18e3,0x3186,0x84b3,0x7c51,0x8471,0xa575,0x9d14,0x8472,0x94f4,0x9d55,0xa595,0x9513,0x8cd3,0x94f4,0x7c52,0x8492,0x8c92,0x6b8e,0x632e,0x636e,0x52cb,0x4a69,0x5b0b,0x31c7,0x4a6a,0x4a8b,0x4a6a,0x4aaa,0x52eb,0x4a8a,0x4aaa,0x4a8a,0x4249,0x39e7,0x3a08,0x29a7,0x4269,0x29c7,0x31e7,0x3a08,0x31e8,0x31e7,0x4aab,0x8472,0x3a08,0x634d,0x52aa,0x31c8,0x31a7,0x39c8,0x3a08,0x29a7,0x3208,0x3a08,0x29a6,0x52aa,0x634d,0x528a,0x4a8a,0x4249,0x2124,0x2924,0x2104,0x2145,0x2965,0x10c3,0x4269,0x5b4c,0x3a08,0x5b0c,0x4aaa,0x52eb,0x4aaa,0x5b0b,0x634c,0x52eb,0x6bae,0x2986,0x2144,0x2965,0x2144,0x2124,0x39c7,0x31c6,0x5aec,0x52ab,0x39c8,0x10a3,0x18e3,0x1904,0x10e3,0x10c3,0x10c3,0x10a3,0x2104,0x18e3,0x10e3,0x10c3,0x18e4,0x1904,0x18e3,0x10c3,0x10a2,0x10c3,0x10c3,0x10c3,0x10c3,0x18e3,0x10c3,0x10c3,0x18c3,0x10a2,0x2986,0x4229,0x18e4, +0x18e3,0x18e3,0x2124,0x2124,0x1904,0x1904,0x1904,0x18e4,0x1904,0x18e4,0x18e4,0x18e4,0x18c4,0x18e4,0x2104,0x1904,0x10e3,0x18e4,0x10c3,0x18e4,0x1904,0x18e4,0x18e4,0x18e3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e4,0x2104,0x0001,0x630c,0x840f,0x0000,0x2965,0x18e3,0x1904,0x18e3,0x2965,0x1903,0x2104,0x31a6,0x1944,0x2985,0x2103,0x2944,0x2986,0x31c6,0x3a07,0x31c6,0x3a07,0x1924,0x2985,0x2124,0x1904,0x2145,0x2104,0x18e4,0x18e5,0x18e4,0x18e4,0x1904,0x2125,0x18e4,0x18c4,0x31a7,0x3a08,0x29c7,0x31c8,0x29a7,0x52ab,0x4a8a,0x52cb,0x4aaa,0x3a29,0x31e7,0x31c7,0x2166,0x29a6,0x39e8,0x31c7,0x3a49,0x3a69,0x3a28,0x4249,0x4269,0x4269,0x4a8a,0x4a8a,0x52ec,0x4acb,0x4aab,0x4aab,0x3a29,0x31a6,0x3a08,0x4a8a,0x5b0d,0x6bcf,0x7410,0x73f0,0x6bd0,0x73f0,0x73d0,0x7c0f,0x7c10,0x8452,0x8431,0x8c93,0xadf8,0x9535,0x8493,0x8cd4,0x9d55,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x18e3,0x1082,0x1082,0x1082,0x10a2,0x18e3,0x2924,0x2124,0x2124,0x2945,0x2945,0x2924,0x2945,0x2944,0x3164,0x3164,0x2924,0x2945,0x2925,0x2925,0x2945,0x2945,0x2924,0x2924,0x18c3,0x1081,0x0861,0x0861,0x10a2,0x2104,0x2964,0x2103,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2924,0x2924,0x2124,0x2104,0x2104,0x2104,0x2104,0x2924,0x2924,0x2944,0x18c2,0x1081,0x1082,0x1082,0x18e3,0x2944,0x2964,0x2945,0x3165,0x2945,0x2945,0x2945,0x2944,0x3165,0x39a5,0x3185,0x3165,0x3165,0x2965,0x3165,0x3185,0x2965,0x2924,0x20e3,0x10a2,0x0861,0x0861,0x0841,0x18e3,0x18e3,0x0861,0x1082,0x10a2,0x18a2,0x18e3,0x3186,0x8472,0x8493,0x8473,0x8c92,0x94f4,0x7c31,0x8c93,0x8473,0x9515,0x9d35,0x84b3,0x7411,0x6bb0,0x7bf1,0x94f4,0x73af,0x4a8c,0x52cd,0x426a,0x31c7,0x4228,0x4249,0x4a8a,0x4a6a,0x6b8e,0x7c10,0x6b6d,0x8430,0x6b8d,0x6b8d,0x634c,0x8c70,0x4a89,0x636c,0x6bae,0x636d,0x6b8e,0x73cf,0x1925,0x31a7,0x31a8,0x52ed,0x3a29,0x6b6f,0x424a,0x29a7,0x2966,0x2966,0x31a7,0x31a7,0x31c7,0x29a7,0x08c3,0x5aeb,0x7bef,0x4a8a,0x4229,0x2986,0x2945,0x2124,0x1904,0x18e4,0x39e7,0x2164,0x73ce,0x73ee,0x6bae,0x8470,0x52ca,0x7c0f,0x52eb,0x8430,0x634d,0x4a8a,0x8430,0x0040,0x31a6,0x2985,0x2144,0x2145,0x31c7,0x31c6,0x5acb,0x4a8a,0x3a08,0x0882,0x10c3,0x10e3,0x1904,0x10e3,0x10c3,0x10a3,0x18e3,0x1904,0x18e4,0x18e3,0x1904,0x1904,0x1904,0x1904,0x10c3,0x10a3,0x10c3,0x10a3,0x10c3,0x18e3,0x18e3,0x18e4,0x10a3,0x10c3,0x10e4,0x2966,0x18e4, +0x10c2,0x10a2,0x10c3,0x10c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e4,0x18e4,0x18e4,0x18e4,0x18e3,0x18e3,0x1904,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e4,0x1904,0x18e4,0x18e4,0x1083,0x528a,0x52aa,0x2144,0x2985,0x18e3,0x0800,0x52cb,0x5b4c,0x3248,0x530b,0x634d,0x52cb,0x4a89,0x52ca,0x636c,0x42a9,0x73ef,0x5b0b,0x6b8d,0x636c,0x530b,0x10e3,0x2145,0x1924,0x2124,0x2104,0x2104,0x1904,0x18e4,0x18c3,0x18c3,0x18c3,0x10a3,0x1082,0x2125,0x3a09,0x29c8,0x29c7,0x29c7,0x4a8a,0x4228,0x52ec,0x426a,0x3208,0x31e7,0x2165,0x5b2c,0x6bae,0x4269,0x636d,0x5aeb,0x5b0c,0x5b2c,0x632c,0x6bae,0x73ce,0x6bae,0x8492,0x5b0d,0x424a,0x52ec,0x428b,0x3a09,0x31a7,0x39c8,0x422a,0x5b0d,0x636f,0x73f0,0x73f0,0x6bd0,0x6b8f,0x8431,0x8cb3,0x7c32,0x7411,0x8c94,0x7c53,0x8cb5,0x73f2,0x6bd1,0x8473,0x8cb4,0x18e3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18e3,0x1082,0x1062,0x1061,0x10a2,0x2124,0x3165,0x2965,0x2924,0x2945,0x2924,0x2104,0x2104,0x2124,0x2104,0x2104,0x20e3,0x2104,0x2104,0x2104,0x2104,0x2924,0x2924,0x3165,0x2104,0x1082,0x0861,0x0861,0x18c3,0x2945,0x3185,0x2944,0x2104,0x20e3,0x20e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x2104,0x2924,0x39a5,0x39a6,0x2103,0x1081,0x0862,0x1082,0x18e3,0x3185,0x3185,0x2945,0x2945,0x2124,0x2924,0x2104,0x2104,0x2924,0x3165,0x3186,0x3165,0x3165,0x2925,0x2924,0x3165,0x3165,0x3165,0x2945,0x18c3,0x1061,0x0861,0x0861,0x18e3,0x18e3,0x0861,0x1082,0x1082,0x18a2,0x20e3,0x3186,0x8472,0x7412,0x7412,0x73f1,0x7c31,0xad97,0x7c32,0x8473,0x8cb4,0x8c94,0x6bb0,0x7c31,0x7c11,0x7c11,0x8452,0x634e,0x52cc,0x52cc,0x4a6b,0x31a7,0x39e7,0x4228,0x52eb,0x4a8a,0x6baf,0x7c10,0x73cf,0x8c71,0x7bf0,0x8451,0x5aeb,0x8cb2,0x634e,0x7c31,0x0064,0x4209,0x6b4e,0x738e,0x0001,0x39e8,0x2167,0x634e,0x4a6a,0x528b,0x4229,0x29a7,0x29a7,0x2966,0x3187,0x39e8,0x39e8,0x2966,0x10e3,0x52ca,0x7c10,0x632d,0x4249,0x31c7,0x2965,0x2945,0x18c3,0x2144,0x2985,0x2985,0x73ae,0x94d2,0x6b6d,0x8451,0x52ca,0x5289,0x738e,0x8c71,0x6b4d,0x4249,0x8431,0x0000,0x2966,0x3186,0x2986,0x2125,0x2965,0x39c7,0x5b0c,0x4249,0x39e8,0x3186,0x18e4,0x10e3,0x1904,0x18e3,0x10c3,0x10c3,0x10c3,0x18e3,0x18e3,0x18e4,0x1924,0x1904,0x10e3,0x18e4,0x10c3,0x10a2,0x10c3,0x10c3,0x10c3,0x10c3,0x18e4,0x1904,0x10a3,0x10c3,0x10e3,0x08a3,0x10c3, +0x10a2,0x10c3,0x10c2,0x10a2,0x10c3,0x10c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x1904,0x18e3,0x18e4,0x18e3,0x10c3,0x10e3,0x10c3,0x18e3,0x18e3,0x10c3,0x10c3,0x10c3,0x18c3,0x18e3,0x18c3,0x10c3,0x10e3,0x1904,0x18e4,0x18e3,0x10c3,0x31a7,0x2985,0x2965,0x2965,0x18e4,0x0000,0x6b8e,0x6baf,0x636d,0x5b0c,0x0000,0x6b6e,0x6b8d,0x73ef,0x740f,0x6b8e,0x7c0f,0x5b0c,0x73ef,0x7c2f,0x636c,0x0081,0x2145,0x2124,0x2104,0x2124,0x2125,0x1904,0x10e3,0x1903,0x18e3,0x18a3,0x18c3,0x18c3,0x10a3,0x2986,0x29c7,0x29c7,0x2987,0x4249,0x39e8,0x4aab,0x424a,0x31e8,0x31c7,0x0882,0x7c30,0x8471,0x638d,0x8491,0x6bad,0x73ee,0x73ae,0x7c0f,0x8c91,0x73ee,0x8c92,0x8472,0x4aab,0x4aab,0x4acc,0x428b,0x39e8,0x31a7,0x39e8,0x422a,0x73d0,0x8c93,0x7411,0x7410,0x73f0,0x73cf,0x6bd0,0x7411,0x73f1,0x6bd0,0x8cb3,0x7411,0x6bb0,0x7c31,0x94d3,0x7c51,0x7c33,0x18c3,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18c2,0x18c3,0x1082,0x1062,0x0861,0x18c3,0x2104,0x2924,0x2104,0x18e3,0x18e3,0x18c3,0x18a2,0x10a2,0x18c3,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x18a2,0x10a2,0x18a3,0x18e3,0x2104,0x20e4,0x1082,0x0861,0x0861,0x18c3,0x2124,0x2104,0x18e3,0x18c3,0x18a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x18e3,0x2924,0x3165,0x3185,0x2924,0x1082,0x0861,0x1082,0x20e3,0x2944,0x2924,0x20e3,0x18c3,0x18a2,0x18a3,0x18a2,0x18a3,0x18c3,0x2104,0x2104,0x2104,0x20e3,0x18c3,0x18c3,0x20e3,0x2104,0x2924,0x2124,0x18e3,0x1062,0x0861,0x0861,0x18e3,0x18c3,0x0861,0x1082,0x10a2,0x18a2,0x20e3,0x39a6,0x9d35,0x4aee,0x6391,0x530e,0x8cd3,0xb5d7,0x6bd0,0x7c31,0x7411,0x73f1,0x73b0,0x73d0,0x73d0,0x6baf,0x6b8f,0x632e,0x4aab,0x4aab,0x422a,0x31a7,0x4208,0x4228,0x52eb,0x4aab,0x5b0d,0x73f0,0x8430,0x8430,0x6b8e,0x8450,0x5b0c,0x8451,0x634d,0x73af,0x632d,0x634e,0x5b0c,0x6b6e,0x0062,0x31e8,0x2186,0x5b2c,0x3a08,0x52aa,0x4a8a,0x29a6,0x31c8,0x2967,0x31a7,0x31c7,0x29a6,0x2965,0x2145,0x1944,0x632d,0x8451,0x31e8,0x31e8,0x2945,0x2104,0x10c2,0x2124,0x2145,0x10a2,0x52cb,0x632d,0x52ab,0x6b4e,0x5aec,0x5aeb,0x632c,0x5b0c,0x632d,0x31a7,0x5acb,0x10a3,0x2104,0x2945,0x2966,0x2965,0x2986,0x2965,0x52aa,0x4a6a,0x39e8,0x2946,0x18e4,0x18e3,0x1903,0x1904,0x10c3,0x18e3,0x18e3,0x10c2,0x1904,0x1924,0x2124,0x1904,0x10a3,0x10c3,0x10c3,0x10a3,0x10c3,0x10c3,0x10c3,0x10c3,0x1904,0x2124,0x10c3,0x10c3,0x10c3,0x1904,0x2125, +0x10c2,0x18c3,0x18c3,0x10a2,0x10c3,0x10c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e4,0x1904,0x18e4,0x10c3,0x10c3,0x10a2,0x10c3,0x18e3,0x10c3,0x10c3,0x10c3,0x18c3,0x18e3,0x18e4,0x18e3,0x10c3,0x10c3,0x1903,0x1903,0x18e3,0x10c3,0x3186,0x31a6,0x2924,0x2125,0x18e4,0x0042,0x6b6e,0x5aeb,0x39c7,0x632d,0x5aeb,0x6b8e,0x634d,0x7c10,0x7bcf,0x73ae,0x6bcf,0x5b2d,0x73cf,0x7bef,0x4248,0x1904,0x2124,0x2104,0x2104,0x2125,0x2145,0x29a7,0x10e3,0x1924,0x1903,0x18c2,0x39c6,0x2945,0x10a3,0x2986,0x29a6,0x2186,0x2987,0x426a,0x39e7,0x39e8,0x3a09,0x31a8,0x39c8,0x1023,0x8c51,0x73cf,0x634d,0x7c30,0x8430,0x8430,0x73ae,0x7c30,0x73ae,0x8430,0x8c92,0x73f0,0x428a,0x426a,0x3a49,0x3a08,0x31c7,0x31a6,0x4229,0x4a4a,0x6b8f,0x8493,0x6bf1,0x7411,0x6baf,0x6bb0,0x5b2f,0x52ee,0x5b2e,0x636f,0x6b6f,0x634f,0x5b2e,0x73af,0xa576,0x73f1,0x7c11,0x18c3,0x1081,0x1082,0x1082,0x1082,0x1082,0x1082,0x18a2,0x18c2,0x1062,0x0861,0x0861,0x10a2,0x18c3,0x18a3,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x10a2,0x1082,0x0861,0x0861,0x10a2,0x18c3,0x10a2,0x1082,0x1082,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18a2,0x18c3,0x18e3,0x18e3,0x18c3,0x0861,0x0861,0x1082,0x18c3,0x18c3,0x10a2,0x1082,0x1062,0x0861,0x0861,0x0861,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18a3,0x10a2,0x1061,0x1061,0x1061,0x18e3,0x18c3,0x0861,0x1082,0x18c3,0x18c2,0x20e3,0x3186,0x8c93,0x6390,0x6bf2,0x6bd0,0x8451,0x8452,0x8493,0x7411,0x6bd0,0x636e,0x73d0,0x73d0,0x6baf,0x8452,0x8472,0x7410,0x4aec,0x4aac,0x422a,0x31a7,0x4208,0x3a08,0x426a,0x426a,0x4a8b,0x6b6e,0x52ab,0x5b0d,0x4a8b,0x52cb,0x4a8b,0x5acc,0x52ab,0x3a08,0x5b0c,0x426a,0x3a08,0x39e8,0x2146,0x31c7,0x29c7,0x4249,0x31a7,0x528b,0x424a,0x31e7,0x3a08,0x2166,0x2987,0x2986,0x2966,0x2986,0x31a7,0x2986,0x4249,0x6b6f,0x31e9,0x31c8,0x2125,0x2145,0x10e3,0x1904,0x1904,0x2125,0x1905,0x08a4,0x18c4,0x1084,0x18e4,0x2105,0x18e4,0x1063,0x18c5,0x20e5,0x0842,0x2125,0x2104,0x2104,0x2125,0x3186,0x31c7,0x0882,0x4208,0x4a49,0x31a7,0x1904,0x18e3,0x10c2,0x10e3,0x2145,0x18e3,0x2145,0x1904,0x10a2,0x18e3,0x2124,0x2124,0x18e4,0x10c3,0x10a2,0x10c3,0x10c3,0x10c3,0x10c3,0x18e3,0x18e4,0x18e3,0x18e3,0x18c3,0x10c3,0x18e3,0x2145,0x2966, +0x18c3,0x10c2,0x10c2,0x10c3,0x10c3,0x18c3,0x10c3,0x10a3,0x18e3,0x1904,0x1904,0x1904,0x1904,0x18e3,0x10c3,0x10c3,0x10a2,0x10c3,0x10c3,0x10a3,0x10c3,0x10c3,0x18e4,0x2145,0x2124,0x1904,0x18e3,0x10c3,0x18e3,0x18e3,0x10c3,0x18c3,0x2965,0x2965,0x1904,0x2124,0x18c3,0x18e4,0x31c7,0x18e4,0x18c4,0x4a29,0x630c,0x31c7,0x31c8,0x41e8,0x41e9,0x3187,0x424a,0x4a6a,0x31c8,0x2987,0x31c7,0x1904,0x2124,0x1903,0x1903,0x18e4,0x2146,0x2145,0x1904,0x2124,0x1924,0x3186,0x39c6,0x2104,0x2965,0x31c7,0x29a7,0x2986,0x31a7,0x4a6a,0x31a6,0x29a7,0x31e8,0x29c7,0x31c8,0x2966,0x5aed,0x31a8,0x52cc,0x3a09,0x52ac,0x5aed,0x73af,0x5b0c,0x632d,0x73af,0x632d,0x6baf,0x4a8a,0x428a,0x4249,0x3a08,0x31c7,0x2966,0x39e8,0x4a6b,0x4a8b,0x52ed,0x52ed,0x5b0e,0x6b8f,0x52ed,0x4acd,0x428c,0x634e,0x73d0,0x4aac,0x5b2d,0x5b6e,0x6baf,0x6bb0,0x636f,0x73d0,0x18e3,0x1081,0x1081,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18a3,0x0861,0x0882,0x0861,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0841,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1062,0x0861,0x0861,0x1061,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1062,0x1082,0x1081,0x0861,0x0861,0x1061,0x0861,0x1061,0x0861,0x0861,0x1062,0x1062,0x1061,0x0861,0x1061,0x1082,0x18c3,0x18c3,0x0861,0x1082,0x18c3,0x18c2,0x20e3,0x2945,0x634f,0x636f,0x5b0e,0x5b2e,0x5b2e,0x6b6f,0x8473,0x73d0,0x5b0e,0x52ed,0x636f,0x6b8f,0x7c11,0x8452,0x8c73,0x7c11,0x5b2e,0x428b,0x424a,0x2966,0x4228,0x4229,0x424a,0x424b,0x422b,0x3a0a,0x4a6b,0x3a0a,0x424a,0x422a,0x3a09,0x31e9,0x3a09,0x52ec,0x4a8a,0x4209,0x5aec,0x52cb,0x2986,0x31c8,0x29a7,0x4a6a,0x31c8,0x4229,0x31c8,0x2986,0x2986,0x2966,0x2145,0x2145,0x2145,0x2966,0x2966,0x2966,0x2125,0x2947,0x39e8,0x2987,0x2124,0x1904,0x18e3,0x1904,0x2145,0x2104,0x1904,0x1904,0x18e4,0x18c3,0x10e3,0x2125,0x1905,0x18e4,0x18a3,0x10a3,0x18c3,0x10a3,0x18c3,0x2104,0x2125,0x18e3,0x10c2,0x31a6,0x52aa,0x39c7,0x2945,0x2125,0x2125,0x1904,0x1904,0x2124,0x2124,0x2144,0x2124,0x2124,0x2124,0x2124,0x2145,0x2145,0x2124,0x2124,0x2124,0x2144,0x2965,0x2124,0x3186,0x2986,0x2965,0x3186,0x2965,0x31a6,0x2965,0x2945,0x2965, +0x18c3,0x10c3,0x10c3,0x18c3,0x10c2,0x10c3,0x10c3,0x18c3,0x18e3,0x18e3,0x2104,0x2104,0x18e3,0x18e3,0x1904,0x10c3,0x10a3,0x10c3,0x10c3,0x10a3,0x18e4,0x18e4,0x2104,0x2145,0x2124,0x2124,0x1904,0x18e3,0x18e4,0x1904,0x18e3,0x18e3,0x31c7,0x2965,0x18e3,0x2124,0x18e3,0x18e4,0x18c3,0x2104,0x2104,0x18c3,0x0000,0x2125,0x2945,0x20e4,0x2105,0x2946,0x2125,0x18e3,0x1904,0x2125,0x2124,0x2144,0x2124,0x2104,0x18e3,0x2125,0x2966,0x2125,0x1904,0x2104,0x2945,0x2965,0x3165,0x2965,0x31a6,0x31c7,0x2986,0x2986,0x31a7,0x4a6a,0x31a6,0x31c7,0x3a08,0x3208,0x3a28,0x31e8,0x2167,0x31a8,0x31a8,0x31a8,0x2987,0x2967,0x31c8,0x3a2a,0x422a,0x39e9,0x4a6b,0x4a6b,0x4249,0x4aaa,0x4a8a,0x4249,0x3a08,0x2124,0x4a6a,0x6baf,0x4aec,0x428b,0x4a6b,0x52cd,0x6bd0,0x5b2d,0x52ec,0x634e,0x638e,0x6baf,0x5b4d,0x73f0,0x6baf,0x5b4d,0x5b4e,0x5b0e,0x5b2e,0x18c3,0x1081,0x1081,0x1081,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0841,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x18a3,0x0861,0x1082,0x18a2,0x18a2,0x20e3,0x2924,0x4209,0x4209,0x3a09,0x31c8,0x39c9,0x39c9,0x420a,0x420a,0x528c,0x4a4a,0x4209,0x422a,0x422a,0x4a6b,0x632e,0x738e,0x630c,0x52aa,0x4228,0x2945,0x2125,0x2125,0x2946,0x2967,0x2147,0x2146,0x2966,0x2966,0x2966,0x2986,0x2125,0x2125,0x2125,0x2966,0x2966,0x2125,0x2945,0x2986,0x1904,0x1904,0x2145,0x10e4,0x18e4,0x632d,0x52ab,0x4208,0x4208,0x39e7,0x3a07,0x3a08,0x31a6,0x39c7,0x39e7,0x4228,0x4228,0x39e8,0x4a69,0x39e7,0x18e3,0x18c2,0x2124,0x2965,0x2986,0x2145,0x18e3,0x10c3,0x18c3,0x2104,0x1904,0x18e3,0x2104,0x18e3,0x2144,0x2144,0x2945,0x2124,0x2144,0x2945,0x2966,0x2104,0x1903,0x31c6,0x4249,0x31a6,0x2986,0x31a6,0x31a6,0x3186,0x2985,0x31c6,0x2985,0x2985,0x31c6,0x2986,0x31a6,0x2986,0x31a6,0x31a6,0x2986,0x2986,0x2985,0x2986,0x31a6,0x2986,0x39e7,0x31a6,0x31a6,0x31a6,0x31a6,0x31c6,0x39e7,0x3186,0x3186, +0x1904,0x1904,0x1904,0x1904,0x1903,0x18e3,0x1904,0x1904,0x18e3,0x10e3,0x18c3,0x18c3,0x18c3,0x18e3,0x18e3,0x10c3,0x18c3,0x18e3,0x18e3,0x10c3,0x18e3,0x18c3,0x18e3,0x18e4,0x10c3,0x18e3,0x18e3,0x18e3,0x1904,0x1904,0x1904,0x1924,0x29a6,0x2965,0x10e3,0x10a2,0x10a2,0x18e3,0x10c2,0x10a2,0x10a3,0x18c3,0x18e4,0x18e3,0x18e4,0x18e4,0x18c3,0x18e4,0x2104,0x18e3,0x18c2,0x10a2,0x10c3,0x1081,0x18c2,0x18c3,0x10a2,0x2124,0x2165,0x2965,0x2165,0x2945,0x2945,0x2124,0x2145,0x31a6,0x39e7,0x31a6,0x31a7,0x31c7,0x31a7,0x31c7,0x2145,0x2965,0x3186,0x2986,0x2966,0x2146,0x2966,0x2125,0x2125,0x2125,0x2145,0x1905,0x2125,0x2987,0x2987,0x2987,0x31a7,0x3187,0x2946,0x3187,0x3187,0x2125,0x2125,0x2104,0x4a29,0x5acc,0x4a8a,0x5aec,0x4229,0x4229,0x3a09,0x3a09,0x3a2a,0x424a,0x3a09,0x424a,0x4a6b,0x424b,0x31e9,0x29c9,0x39ea,0x39e9,0x4209,0x10a2,0x1081,0x1081,0x1082,0x1082,0x1082,0x1082,0x18c3,0x18c3,0x0861,0x0862,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x18a2,0x0861,0x1082,0x18a2,0x18c2,0x20e3,0x2924,0x528a,0x4a8a,0x4a49,0x4a6a,0x424a,0x424a,0x424a,0x426a,0x4a6a,0x4249,0x4229,0x4249,0x4a49,0x4228,0x5aeb,0x5aec,0x52ab,0x4a8b,0x4a8a,0x3186,0x39c6,0x31c6,0x31c6,0x2124,0x39e7,0x31a6,0x4208,0x39e7,0x39c7,0x39c7,0x31e7,0x3207,0x31e7,0x31c6,0x31c7,0x29a6,0x29a6,0x3a08,0x3a07,0x31c6,0x29a6,0x2986,0x31a7,0x39e7,0x4208,0x39e7,0x39c7,0x3a07,0x4228,0x3a07,0x39e7,0x39e7,0x39e7,0x3a07,0x3a07,0x39e7,0x39c6,0x31e6,0x3a28,0x3a07,0x39e7,0x31e6,0x3a07,0x4269,0x31e7,0x29a6,0x31c6,0x31e7,0x31e7,0x31c6,0x31c6,0x39e7,0x31e6,0x3a07,0x39e7,0x2986,0x39e7,0x39c7,0x31a7,0x3186,0x2965,0x2965,0x2145,0x2986,0x31a6,0x2985,0x31a6,0x31a6,0x39c7,0x31c6,0x31a6,0x29a6,0x31a6,0x2986,0x2965,0x31a6,0x2986,0x31c7,0x2986,0x2985,0x31a6,0x2986,0x31a6,0x2986,0x2985,0x2986,0x2986,0x3186,0x2986,0x2145,0x31c7,0x3186,0x2985, +0x2985,0x2986,0x2965,0x2965,0x2145,0x2965,0x2986,0x2165,0x2165,0x2124,0x2144,0x2945,0x2945,0x2965,0x2124,0x2965,0x2965,0x2124,0x2965,0x2144,0x2124,0x2144,0x2986,0x2144,0x2965,0x2965,0x2145,0x2124,0x2145,0x2965,0x2945,0x31a6,0x31a6,0x2985,0x2124,0x2145,0x2165,0x2144,0x2144,0x2945,0x2145,0x2144,0x2144,0x2124,0x18c3,0x2125,0x2165,0x2986,0x2165,0x2945,0x2965,0x2165,0x2144,0x31a5,0x2123,0x2124,0x29a6,0x29a6,0x29a6,0x31e7,0x31e7,0x31a6,0x2986,0x31a6,0x31c7,0x39e7,0x31e7,0x31c7,0x3a08,0x31c7,0x31e7,0x31e7,0x31a7,0x2145,0x2965,0x2985,0x2144,0x2965,0x2124,0x2144,0x31c6,0x2985,0x2965,0x31c6,0x31a6,0x31a6,0x31a6,0x31c6,0x29a6,0x4228,0x3a07,0x2986,0x3186,0x31a6,0x31a6,0x39c7,0x4208,0x4a6a,0x4a8a,0x528b,0x4a8a,0x4269,0x4249,0x4229,0x4249,0x4a69,0x426a,0x424a,0x4a4a,0x4a6a,0x4a8a,0x426a,0x426a,0x52aa,0x4a69,0x18c2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x18a2,0x18c2,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x18a3,0x0861,0x1082,0x18a3,0x18c2,0x20e3,0x2104,0x4249,0x4228,0x4a28,0x4228,0x3a08,0x4229,0x39e8,0x4a49,0x4a69,0x3a08,0x4228,0x4249,0x4a49,0x4229,0x3a09,0x3a09,0x39e8,0x4229,0x4229,0x52cb,0x4249,0x4248,0x4249,0x39e7,0x4a8a,0x4a6a,0x4a6a,0x4a49,0x4a49,0x3a07,0x3a28,0x3a49,0x3a08,0x4228,0x3a28,0x31e7,0x31e7,0x39e7,0x39e7,0x39e7,0x31c7,0x39e7,0x31c7,0x39c7,0x39c7,0x39c7,0x39c7,0x39c7,0x4208,0x4208,0x3a08,0x39c7,0x31c7,0x31c7,0x39e8,0x4228,0x4228,0x31c7,0x4269,0x4208,0x528a,0x4249,0x4248,0x3a28,0x4228,0x3a08,0x31c7,0x3a08,0x3a08,0x31e7,0x31c7,0x31a6,0x39e7,0x39e7,0x39e7,0x31c7,0x31c7,0x31a6,0x31c7,0x31a6,0x2985,0x2965,0x2986,0x2985,0x31a6,0x31a7,0x3186,0x3186,0x31c7,0x31a6,0x31c7,0x31c6,0x31c6,0x31a6,0x39e7,0x31c7,0x31a6,0x31a6,0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x3a07,0x29a6,0x31a6,0x31a6,0x3186,0x31a6,0x31a7,0x31a7,0x2986,0x2986, +0x2985,0x2986,0x2985,0x2986,0x2986,0x2986,0x31a6,0x2986,0x2965,0x2965,0x2986,0x2985,0x29a6,0x2965,0x2986,0x31a6,0x2965,0x31a6,0x31a6,0x2965,0x31a6,0x31c6,0x39c7,0x31a6,0x31c7,0x31a6,0x31a6,0x2986,0x29a6,0x31a6,0x3186,0x39e7,0x31a6,0x3186,0x31a6,0x39c7,0x3a07,0x3a27,0x4248,0x39e7,0x39c7,0x31c7,0x31c7,0x39e7,0x4228,0x39e7,0x4289,0x3207,0x3a27,0x4269,0x4228,0x4a69,0x4207,0x4248,0x4228,0x4a49,0x4248,0x4a89,0x3a28,0x31e7,0x31c6,0x31c7,0x31e7,0x31c7,0x31c7,0x31c7,0x39e7,0x4229,0x4228,0x31a6,0x31e7,0x3a08,0x31c7,0x29c7,0x31c7,0x31a6,0x31c6,0x4a68,0x4227,0x31e6,0x4248,0x3a28,0x3a28,0x4248,0x3a08,0x4248,0x4a69,0x4249,0x4249,0x52aa,0x4a8a,0x3a28,0x4249,0x52cb,0x528a,0x4249,0x4228,0x4249,0x52cb,0x4a69,0x4a69,0x4a8a,0x4229,0x4209,0x4a69,0x52ca,0x52aa,0x4269,0x4a8a,0x52cb,0x5aeb,0x5aeb,0x4a8a,0x52ca,0x52aa,0x18c2,0x1082,0x1081,0x1061,0x1082,0x1082,0x1082,0x10a2,0x18c2,0x0861,0x0861,0x0861,0x0861,0x1062,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x18a3,0x1082,0x10a2,0x18a3,0x18c2,0x20e3,0x2104,0x4a6a,0x4a6a,0x4249,0x4229,0x4a49,0x4229,0x4229,0x528a,0x528a,0x4249,0x4249,0x4a6a,0x528a,0x4a69,0x4248,0x4269,0x4248,0x4248,0x4a8a,0x4a69,0x4a69,0x4a8a,0x4248,0x4248,0x4228,0x4228,0x4208,0x4229,0x3a08,0x4228,0x3a08,0x3a29,0x3a09,0x39e8,0x3a08,0x3a27,0x39e7,0x3a08,0x39e7,0x39e7,0x3a07,0x3a08,0x39e7,0x4208,0x39e7,0x31c7,0x4228,0x39e7,0x31c7,0x4228,0x39e8,0x4229,0x39e7,0x3a08,0x39e8,0x39e8,0x4208,0x3a08,0x3a08,0x39e8,0x4229,0x3a08,0x3a08,0x4228,0x31c7,0x3a28,0x31c7,0x39e7,0x39e8,0x4228,0x31e7,0x31a6,0x39e7,0x39e7,0x3a08,0x39e8,0x31c7,0x39e8,0x31a7,0x31a6,0x3a07,0x31a6,0x31a6,0x31a6,0x39e7,0x39e7,0x31a7,0x39e8,0x31a7,0x31a7,0x3186,0x31c7,0x39c7,0x31a6,0x39e7,0x39c7,0x3186,0x2966,0x31c7,0x4228,0x31a6,0x39e7,0x2986,0x31c7,0x31a6,0x31a6,0x31a6,0x29a6,0x31c7,0x31a7,0x29a6,0x31a6,0x31c7, +0x2986,0x2986,0x2986,0x2986,0x3186,0x31a6,0x31c7,0x31a7,0x31a6,0x29a6,0x29a6,0x2965,0x2965,0x2965,0x2986,0x39e7,0x31c7,0x31a6,0x2966,0x2966,0x31a6,0x31a6,0x31c7,0x39e7,0x31e7,0x31a6,0x39e7,0x31c7,0x3a08,0x39e7,0x31a7,0x39e8,0x31a6,0x2986,0x31a6,0x31c7,0x31c7,0x39e7,0x39e7,0x31a6,0x3a07,0x3a08,0x31c6,0x3a08,0x52aa,0x31a6,0x4269,0x4269,0x4269,0x4228,0x3a08,0x3a08,0x3a08,0x3a08,0x4a69,0x52ab,0x4228,0x4a8a,0x4248,0x31e7,0x31c7,0x3a07,0x3a08,0x31c7,0x39e7,0x3a08,0x39e8,0x4a49,0x4229,0x4228,0x4228,0x3a08,0x3a08,0x31c7,0x31a7,0x31a7,0x39c7,0x4a69,0x52aa,0x3a08,0x4a49,0x4208,0x3a08,0x3a08,0x3a08,0x4228,0x4a89,0x4249,0x4228,0x4228,0x4a69,0x4a6a,0x4208,0x4a8a,0x4a49,0x5acb,0x5acb,0x632d,0x5aec,0x52aa,0x52cb,0x4249,0x52aa,0x632d,0x4a8a,0x52cb,0x4a6a,0x424a,0x4a49,0x4a8a,0x528a,0x4a6a,0x4a49,0x528a,0x5aec,0x18c2,0x1082,0x1081,0x1061,0x1062,0x1082,0x1082,0x10a2,0x18c2,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1081,0x0861,0x0861,0x1081,0x1081,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1062,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1081,0x1082,0x1081,0x1081,0x1081,0x1081,0x1081,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x0861,0x0861,0x0861,0x1082,0x18c3,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x18c3,0x18c3,0x18c2,0x18c2,0x18c2,0x18e3,0x18e3,0x18e3,0x18c2,0x1082,0x0861,0x0861,0x1082,0x10a2,0x18a3,0x1082,0x18a2,0x10a2,0x18c2,0x18e3,0x2104,0x52aa,0x5aeb,0x4229,0x4a8a,0x4a8a,0x4a69,0x4249,0x4228,0x4229,0x4a49,0x4a6a,0x4a49,0x4228,0x4228,0x4a69,0x4269,0x4a69,0x52cb,0x52ab,0x528a,0x4a6a,0x4a69,0x39e7,0x4a49,0x4a49,0x39e7,0x4a49,0x39e7,0x39e7,0x4208,0x39e7,0x3a08,0x4229,0x31c7,0x4228,0x3a08,0x39e7,0x31c7,0x39e8,0x39e8,0x39e7,0x3a07,0x3a07,0x4208,0x3a08,0x3a07,0x39e8,0x4228,0x3a08,0x39c7,0x4228,0x39e8,0x39e7,0x3a08,0x31e7,0x31c7,0x4228,0x4249,0x3a08,0x4228,0x3a08,0x31c8,0x3a08,0x39e7,0x39c7,0x3a08,0x31c7,0x31c7,0x31c7,0x39e7,0x39c7,0x31a7,0x31a7,0x31c7,0x39e7,0x39e8,0x31a7,0x31c7,0x39e7,0x31c7,0x31a6,0x39c7,0x39c7,0x39e8,0x31a7,0x31c7,0x39e8,0x31c7,0x39c7,0x31a7,0x3187,0x31c7,0x39c7,0x31a6,0x31a6,0x39a7,0x39c7,0x528a,0x2986,0x29a6,0x2986,0x29a6,0x31a6,0x39e7,0x3186,0x31a6,0x31c7,0x31c7,0x31c7,0x2986,0x31c7,0x31c7,0x2986, +0x2985,0x2986,0x2965,0x2966,0x2966,0x2986,0x2986,0x2986,0x31c7,0x2985,0x3186,0x31a6,0x31a6,0x2986,0x31c7,0x4249,0x31c7,0x2145,0x2986,0x31c7,0x31c7,0x3a08,0x31e8,0x2986,0x31a7,0x31a6,0x39e7,0x31c7,0x3a08,0x39e7,0x2986,0x31a7,0x31a7,0x2986,0x39e8,0x39e7,0x3186,0x39e8,0x39c7,0x39c7,0x39c7,0x3a08,0x3a08,0x4248,0x39e7,0x39e7,0x4249,0x4a8a,0x39e8,0x31e8,0x39e8,0x39e8,0x4249,0x4208,0x4a69,0x4228,0x39e7,0x3a08,0x4249,0x3a08,0x3a08,0x3a28,0x3a28,0x31e7,0x3a08,0x3a28,0x4229,0x3a08,0x39e8,0x4a69,0x4a49,0x4a69,0x4aaa,0x31c7,0x39e8,0x39e7,0x39e8,0x4229,0x3a29,0x424a,0x4a8b,0x3a29,0x3a29,0x39e8,0x4249,0x4a6a,0x4a69,0x4248,0x4249,0x4208,0x4a49,0x52ab,0x4a49,0x4a6a,0x5aeb,0x5acb,0x52ab,0x630c,0x4a69,0x528a,0x5aeb,0x4a69,0x5b0c,0x73cf,0x52cb,0x52eb,0x4a69,0x4a49,0x52aa,0x528a,0x4a8a,0x5acb,0x5aec,0x5aec,0x5b0c,0x10a2,0x1081,0x1081,0x1061,0x1062,0x1062,0x1082,0x10a2,0x18a2,0x0861,0x0861,0x0861,0x1082,0x18c3,0x20e3,0x18c2,0x18c3,0x2103,0x2103,0x2103,0x2123,0x2103,0x20e3,0x20e3,0x18e3,0x18c2,0x18c2,0x18c3,0x18e3,0x20e3,0x18e3,0x2103,0x18c3,0x1082,0x0861,0x0861,0x1082,0x20e3,0x2103,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c2,0x18c3,0x18c2,0x18c3,0x18c3,0x18e3,0x18c3,0x20e3,0x18e3,0x18e3,0x2103,0x18c2,0x0861,0x0861,0x0861,0x18c3,0x2965,0x2924,0x2103,0x2103,0x2123,0x2924,0x2924,0x2124,0x2104,0x2924,0x2944,0x2944,0x2944,0x2944,0x2964,0x2965,0x2944,0x3164,0x2104,0x10a2,0x0861,0x0861,0x1082,0x10a2,0x18a3,0x1082,0x10a2,0x1082,0x18c2,0x18e3,0x2104,0x4a89,0x4a8a,0x4a49,0x4a49,0x52cb,0x52eb,0x4a8a,0x4228,0x4a49,0x4208,0x4208,0x4a49,0x4228,0x4228,0x4a69,0x4248,0x4228,0x5acb,0x4a8a,0x3a08,0x4229,0x4228,0x4208,0x4a69,0x4208,0x4249,0x4a49,0x3a07,0x4249,0x4a49,0x4208,0x39e7,0x39c7,0x4228,0x39e7,0x31c7,0x39e7,0x39c7,0x31a6,0x4208,0x4229,0x31c7,0x4a69,0x39e7,0x31c7,0x3207,0x31c7,0x39e7,0x4229,0x39e8,0x4208,0x39e8,0x39c7,0x31c8,0x31c8,0x31c7,0x39c7,0x4228,0x31e7,0x4228,0x3a08,0x31a7,0x39e7,0x4248,0x39c7,0x39c8,0x39c7,0x31e7,0x31c7,0x2986,0x39e7,0x39e8,0x31c7,0x39e8,0x39e7,0x31c7,0x31a7,0x31a6,0x31e7,0x31c7,0x31a6,0x31a7,0x31c7,0x39e7,0x39e7,0x29a6,0x39e7,0x39c7,0x39c7,0x39c7,0x3186,0x31c7,0x31a7,0x39e7,0x39c7,0x39c7,0x31a7,0x39c7,0x31c7,0x2986,0x31c7,0x31a6,0x31c7,0x31a6,0x3186,0x39e7,0x31a7,0x31c7,0x31a6,0x31a6,0x31a7,0x31a6,0x2985, +0x39c7,0x39e7,0x3186,0x2966,0x2966,0x2966,0x29a7,0x29a7,0x31a6,0x31a6,0x31a6,0x31c7,0x31e7,0x29a6,0x31a6,0x2986,0x3186,0x3186,0x31a7,0x31c7,0x31a7,0x31a6,0x31c6,0x29a6,0x31a6,0x39c7,0x31a7,0x39e8,0x31c7,0x3186,0x31a6,0x31a7,0x39c7,0x31a7,0x31e7,0x31c7,0x31a6,0x2986,0x31c7,0x4a49,0x31a7,0x31c7,0x4228,0x4269,0x31c7,0x31c7,0x3a09,0x3a09,0x31c8,0x31c7,0x31c7,0x31c7,0x3a08,0x4208,0x4249,0x4228,0x3a07,0x3a08,0x3a08,0x39e7,0x3a08,0x39e7,0x3a08,0x4228,0x39e7,0x39e7,0x3a08,0x3a08,0x4249,0x4269,0x4208,0x4208,0x4228,0x3a28,0x39e7,0x39e7,0x4229,0x3a09,0x31e8,0x4249,0x426a,0x3a29,0x4249,0x3a08,0x4a69,0x4a69,0x4a69,0x4248,0x4a69,0x52aa,0x4229,0x4229,0x4a8a,0x4249,0x630c,0x528a,0x4229,0x4a49,0x4a49,0x4a49,0x52aa,0x4a49,0x5acb,0x528a,0x52aa,0x52ca,0x4249,0x4249,0x4a69,0x4a69,0x4a69,0x528a,0x630d,0x5aec,0x5b0c,0x10a2,0x1081,0x1081,0x1081,0x1061,0x0861,0x1082,0x10a2,0x10a2,0x0861,0x0861,0x0861,0x1082,0x18c3,0x20e3,0x10a2,0x2103,0x2944,0x2944,0x2944,0x2964,0x2944,0x2924,0x2944,0x2124,0x2103,0x2124,0x2124,0x2944,0x2944,0x20e3,0x2924,0x18c3,0x1082,0x0861,0x0861,0x1082,0x20e4,0x2103,0x18c3,0x2104,0x2124,0x2104,0x2924,0x2124,0x2103,0x2103,0x2103,0x2124,0x2124,0x2124,0x2104,0x2944,0x2103,0x18c3,0x2104,0x18e3,0x1061,0x0861,0x0861,0x18c3,0x3165,0x2124,0x2924,0x2944,0x2944,0x2945,0x2945,0x2945,0x2944,0x2944,0x2965,0x3165,0x3185,0x3185,0x39a6,0x3185,0x2103,0x2944,0x2104,0x10a2,0x0861,0x0861,0x1082,0x1082,0x18a3,0x1082,0x10a2,0x1082,0x18c2,0x20e3,0x2924,0x52cb,0x4a4a,0x5aec,0x52aa,0x52aa,0x52aa,0x52aa,0x4a6a,0x4249,0x4a49,0x3a08,0x4269,0x5aeb,0x4228,0x4248,0x528a,0x4a8a,0x4249,0x4249,0x4a8a,0x4269,0x4228,0x4249,0x4a8a,0x4228,0x3a28,0x4249,0x4208,0x3a08,0x4208,0x4208,0x3a08,0x4248,0x4249,0x3a08,0x3a08,0x3a08,0x39c7,0x3a07,0x39e7,0x39e8,0x39c7,0x39e8,0x39e8,0x31a7,0x3a08,0x39e8,0x4208,0x4208,0x39c7,0x39e7,0x31c7,0x31c7,0x31c8,0x31c7,0x39e7,0x39e8,0x39c7,0x31c7,0x3a08,0x4249,0x39e7,0x3a08,0x4228,0x39c7,0x3a08,0x39e7,0x39c7,0x31c7,0x31c7,0x31a6,0x4228,0x3a08,0x31c7,0x39e7,0x39e8,0x39e8,0x3a08,0x39e7,0x39c7,0x39c7,0x31e7,0x39c7,0x39c7,0x31c7,0x31e7,0x31c7,0x39e7,0x31a6,0x39e7,0x39c7,0x31c7,0x3186,0x4228,0x4208,0x2986,0x31a7,0x2986,0x31c7,0x3186,0x31a6,0x31a6,0x2986,0x31c7,0x2965,0x31a6,0x31a6,0x31a6,0x31a7,0x31c7,0x2966,0x2966,0x2965, +0x31a7,0x31a7,0x3186,0x2986,0x3166,0x2965,0x31c7,0x31e7,0x31c7,0x3186,0x31a6,0x31c7,0x31c7,0x2965,0x2965,0x31c6,0x39e7,0x31a6,0x2986,0x31a6,0x2966,0x31a6,0x39e7,0x31a6,0x3186,0x3186,0x2966,0x31c7,0x29a7,0x31a6,0x39e7,0x31a6,0x31a6,0x2986,0x31e7,0x31c7,0x3a07,0x31e7,0x39e7,0x4208,0x31c7,0x31e7,0x31c7,0x31a7,0x31a7,0x3187,0x39e8,0x39e8,0x31c7,0x39c7,0x4228,0x39e7,0x3a08,0x3a08,0x4249,0x4229,0x3a08,0x3a08,0x4229,0x3a08,0x31c7,0x39e7,0x4a69,0x4228,0x39e7,0x3a08,0x31c7,0x3a28,0x3a08,0x39e8,0x39e8,0x4208,0x39c7,0x3a08,0x4249,0x3a28,0x3a28,0x39e8,0x3a08,0x4249,0x39e7,0x4228,0x4249,0x4229,0x4228,0x3a08,0x4228,0x4229,0x4229,0x528a,0x528a,0x4249,0x4a8a,0x4a69,0x3a08,0x528a,0x4208,0x528a,0x526a,0x4a49,0x528a,0x4229,0x4a8a,0x4a49,0x4229,0x4a8a,0x4229,0x4a4a,0x4229,0x4a69,0x52aa,0x4a6a,0x528b,0x4aab,0x4a8a,0x10a2,0x1081,0x1081,0x1081,0x1061,0x0861,0x1082,0x10a2,0x18c2,0x1082,0x0861,0x0861,0x1082,0x10a2,0x1082,0x0861,0x2103,0x2924,0x2924,0x2924,0x2924,0x2124,0x2924,0x2924,0x2124,0x2103,0x2124,0x2924,0x2924,0x2944,0x2103,0x18a2,0x1082,0x1082,0x0861,0x0861,0x1082,0x10a2,0x1082,0x10a2,0x2104,0x2104,0x2104,0x2104,0x2124,0x2103,0x2104,0x2103,0x2124,0x2124,0x2124,0x2124,0x2944,0x2924,0x1082,0x18c3,0x18c3,0x1061,0x0861,0x0861,0x18a3,0x18e3,0x18c3,0x2104,0x2124,0x2924,0x2924,0x2924,0x2924,0x2924,0x2924,0x2924,0x2944,0x2965,0x3165,0x3186,0x3186,0x18c2,0x18a2,0x18c3,0x1082,0x0861,0x1082,0x1082,0x1082,0x18a2,0x1082,0x10a2,0x1082,0x18c2,0x20e3,0x2924,0x4a8a,0x52ab,0x4249,0x4a6a,0x4a8a,0x4249,0x4a8a,0x4a8a,0x4228,0x4248,0x4269,0x4aaa,0x4aaa,0x4a69,0x52aa,0x4a69,0x4a69,0x5acb,0x528a,0x4a8a,0x4a69,0x4a69,0x4249,0x4a6a,0x4a69,0x4249,0x3a08,0x39e8,0x3a08,0x4208,0x4208,0x3a08,0x3a08,0x4249,0x39e8,0x4229,0x4228,0x39e7,0x4248,0x39e7,0x39e7,0x3a08,0x39c8,0x31c7,0x4208,0x39c7,0x4208,0x39c7,0x39e8,0x4229,0x3a08,0x3a08,0x31e7,0x3a08,0x39e7,0x39e7,0x4a69,0x39c7,0x31a6,0x39c7,0x39e7,0x39c7,0x4208,0x4229,0x39e8,0x4228,0x4249,0x39c7,0x3186,0x39c7,0x39e7,0x39e7,0x3a28,0x2986,0x31a7,0x31c7,0x3a08,0x3a07,0x3a08,0x4249,0x39e7,0x31c7,0x4208,0x31a7,0x31a6,0x3a08,0x31a7,0x31a6,0x31a6,0x31c6,0x4248,0x31a6,0x31a6,0x31c7,0x31c7,0x31a6,0x39e7,0x3186,0x31a6,0x2985,0x2985,0x31c6,0x2985,0x31c7,0x31a6,0x2965,0x2986,0x29a6,0x2986,0x3a08,0x31a7,0x2986,0x2965, +0x2986,0x31a6,0x2986,0x2986,0x2965,0x31a6,0x31c7,0x31a6,0x2986,0x2966,0x2986,0x2986,0x2986,0x2966,0x2986,0x39c7,0x31a6,0x31a6,0x31a6,0x2986,0x2986,0x31a6,0x39c7,0x39a6,0x31a6,0x31a6,0x31c7,0x31c7,0x2986,0x31c7,0x39c7,0x31a6,0x31a6,0x31e7,0x31e7,0x31c7,0x31c7,0x39e8,0x39e8,0x31c7,0x31e7,0x39e7,0x39e8,0x4208,0x31c7,0x39c7,0x3a08,0x31a6,0x31c7,0x4228,0x3a08,0x3a28,0x3a07,0x3a07,0x39e7,0x3a08,0x3a08,0x39e7,0x4208,0x3a28,0x39e7,0x3a08,0x4229,0x39e8,0x41e8,0x4209,0x4209,0x4249,0x3a08,0x39c7,0x4229,0x3a08,0x39c7,0x3a08,0x3a08,0x31e8,0x39e8,0x39c8,0x4209,0x39e8,0x3a08,0x4a6a,0x4a49,0x4208,0x4a49,0x4a49,0x4249,0x4a49,0x4229,0x4a6a,0x52ab,0x4a49,0x4249,0x4a69,0x4a6a,0x4a8a,0x4228,0x52aa,0x528a,0x4229,0x4a49,0x4249,0x4a69,0x4208,0x4a69,0x3a48,0x4229,0x4229,0x4229,0x4a29,0x4a69,0x4a6a,0x4a6a,0x4a69,0x3a08,0x10a2,0x1081,0x1081,0x1081,0x0861,0x0861,0x0861,0x10a2,0x18c2,0x1082,0x1082,0x1082,0x1082,0x1062,0x0841,0x0841,0x2103,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2103,0x2103,0x2104,0x2104,0x2104,0x2924,0x2124,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0821,0x18a2,0x2103,0x2104,0x2104,0x2104,0x2104,0x2123,0x2963,0x2943,0x2103,0x2104,0x2104,0x2104,0x2124,0x2924,0x0861,0x1082,0x10a2,0x0861,0x0861,0x1061,0x1082,0x0861,0x1082,0x2104,0x2124,0x2104,0x2104,0x2124,0x2124,0x2924,0x2924,0x2944,0x2944,0x2945,0x2945,0x2945,0x3165,0x18a2,0x0841,0x1062,0x1062,0x0861,0x1082,0x1082,0x1082,0x18c2,0x1082,0x10a2,0x18c3,0x18e3,0x2103,0x2124,0x4a6a,0x4a8a,0x52ab,0x52cb,0x4249,0x4a8a,0x634d,0x4228,0x4a69,0x4269,0x4aaa,0x4aaa,0x4a6a,0x528a,0x5b0c,0x4a69,0x4a8a,0x52cb,0x4a49,0x4a69,0x4229,0x4229,0x4249,0x4229,0x4a49,0x4229,0x4208,0x4228,0x4228,0x4229,0x4228,0x3a08,0x3a08,0x39e8,0x4229,0x4228,0x4228,0x4228,0x4229,0x3a08,0x3a08,0x39e8,0x39e8,0x3a08,0x4249,0x3a08,0x39c7,0x3a28,0x4249,0x3a08,0x3a08,0x3a28,0x4249,0x3a08,0x4249,0x39e8,0x4228,0x4a6a,0x4208,0x39c7,0x4208,0x4208,0x39c7,0x4228,0x3a08,0x2986,0x4208,0x3a08,0x31a6,0x4208,0x3a08,0x31c7,0x3a07,0x39e7,0x31a7,0x2986,0x31c7,0x39e7,0x39e7,0x4249,0x31c6,0x31c6,0x4228,0x39e7,0x4208,0x39e7,0x31e7,0x3a07,0x31c7,0x31a6,0x3a28,0x31a7,0x31a6,0x31c7,0x31c7,0x31a6,0x31c7,0x31a6,0x2965,0x39c7,0x3186,0x3186,0x31a6,0x39c7,0x31c7,0x2986,0x31a6,0x31c7,0x31c7,0x31a6,0x2986,0x2945,0x3186, +0x2986,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x2986,0x2986,0x31a6,0x2986,0x2985,0x31a6,0x2965,0x31a7,0x31c7,0x2966,0x2965,0x2986,0x2986,0x2986,0x29a6,0x31a6,0x3186,0x3186,0x31a6,0x31c7,0x31c6,0x31c6,0x2986,0x31a6,0x31c7,0x3186,0x31c7,0x31e7,0x31c7,0x31e7,0x3a28,0x31a7,0x31c7,0x31c7,0x31a6,0x31c7,0x39e7,0x39e7,0x31c7,0x3a08,0x4228,0x3a07,0x3a08,0x4228,0x4228,0x3a07,0x4269,0x4228,0x39c7,0x41e8,0x4208,0x4228,0x4249,0x3a08,0x31c7,0x31c7,0x39e8,0x3a08,0x4208,0x4229,0x31c7,0x3a08,0x3a08,0x39e8,0x4229,0x39e8,0x39c7,0x4228,0x39e8,0x39e8,0x3a08,0x31a7,0x4249,0x3a08,0x4228,0x4228,0x4229,0x39e8,0x4208,0x4249,0x4249,0x4249,0x4249,0x3a09,0x426a,0x3a28,0x3a08,0x4249,0x4aaa,0x4269,0x4228,0x4249,0x424a,0x4a8a,0x4249,0x4249,0x52aa,0x4a69,0x52ab,0x4229,0x4249,0x4a69,0x4a49,0x4a69,0x528a,0x4a49,0x4228,0x4a49,0x4228,0x10a2,0x1081,0x1061,0x1081,0x1081,0x0861,0x0861,0x10a2,0x18c3,0x1082,0x0861,0x1082,0x1082,0x0861,0x0020,0x0841,0x2103,0x2104,0x2104,0x2104,0x2104,0x2104,0x2104,0x2944,0x2124,0x2104,0x2104,0x2104,0x2104,0x2925,0x2124,0x0841,0x0841,0x0861,0x0861,0x0861,0x1082,0x0841,0x0020,0x18c3,0x2104,0x2104,0x2104,0x2104,0x2124,0x4203,0x5a63,0x5263,0x39a3,0x2124,0x2124,0x2104,0x2124,0x2924,0x0861,0x0841,0x0861,0x0861,0x0861,0x1061,0x1062,0x0041,0x1082,0x2104,0x2124,0x2124,0x2104,0x2124,0x2924,0x41e5,0x2964,0x4205,0x3184,0x2945,0x2945,0x2945,0x2945,0x18a2,0x0841,0x0841,0x0861,0x0861,0x1062,0x1062,0x1082,0x18c2,0x1082,0x10a2,0x18c3,0x18e3,0x2103,0x2924,0x52aa,0x52ab,0x5acb,0x52cb,0x52cb,0x4a8a,0x4a6a,0x4229,0x4a8a,0x4a8a,0x52cb,0x52aa,0x52cb,0x3a08,0x4229,0x4229,0x4229,0x4249,0x4229,0x4a8a,0x52aa,0x4229,0x3a08,0x4a6a,0x4228,0x4208,0x4229,0x4228,0x4208,0x39e7,0x4208,0x39c7,0x39c7,0x39e8,0x4a49,0x4229,0x4228,0x4a69,0x4a6a,0x4249,0x4229,0x424a,0x4249,0x4a6a,0x4229,0x39e7,0x3a07,0x3a28,0x3a08,0x39e8,0x4249,0x3a28,0x3207,0x31e7,0x3a08,0x31c7,0x4229,0x4a49,0x4228,0x39e8,0x4249,0x4228,0x3a08,0x4249,0x3a08,0x31a7,0x39e7,0x39c7,0x4228,0x39e7,0x39e7,0x3a07,0x31c7,0x31c7,0x31e7,0x29a7,0x31c7,0x31c7,0x39c7,0x39e7,0x4228,0x39e7,0x39e7,0x39e7,0x39e7,0x31c7,0x31c6,0x3a07,0x3a28,0x39e7,0x39e7,0x31a6,0x39e7,0x39c7,0x31a7,0x31a6,0x31a6,0x31a7,0x2966,0x31a6,0x3a08,0x31a7,0x31a7,0x31c7,0x29a6,0x2986,0x31a7,0x39c7,0x31a7,0x2166,0x3186,0x2946,0x2965, +0x2966,0x2986,0x31c7,0x31c7,0x2986,0x2965,0x31a6,0x2965,0x2965,0x39c7,0x31c6,0x2986,0x2986,0x31a7,0x31a7,0x2986,0x3186,0x3186,0x2986,0x2966,0x2986,0x2965,0x2985,0x31a6,0x31c7,0x31c7,0x31e7,0x31a6,0x31a6,0x2986,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x3a07,0x3a07,0x31a6,0x31a7,0x31c7,0x39c7,0x31c7,0x31c7,0x39e7,0x31a7,0x31c7,0x39c7,0x39e7,0x39e7,0x4a49,0x3a08,0x39e7,0x4249,0x3a08,0x3a08,0x3a08,0x4208,0x4a8a,0x3a08,0x39e8,0x3a08,0x3a08,0x39e7,0x3a08,0x4229,0x4228,0x39e7,0x4208,0x39e7,0x4228,0x4229,0x39c7,0x4208,0x3a08,0x4208,0x4208,0x3a08,0x39e7,0x3a08,0x3a28,0x3a48,0x4228,0x3a08,0x31c7,0x39e8,0x4229,0x39e7,0x4228,0x52ca,0x4249,0x3a28,0x3a08,0x4269,0x4a8a,0x4269,0x4269,0x4a8a,0x4a69,0x4a6a,0x4a8a,0x4249,0x4a8a,0x52ca,0x52aa,0x4a49,0x4229,0x4a69,0x5b0b,0x4228,0x4249,0x4228,0x4a49,0x52aa,0x4229,0x4229,0x10a2,0x1061,0x1061,0x1061,0x1081,0x0861,0x0861,0x1082,0x18c3,0x1082,0x0861,0x1082,0x1082,0x0841,0x0020,0x0841,0x2104,0x2124,0x2124,0x2124,0x2124,0x2944,0x2944,0x5244,0x3163,0x2944,0x2124,0x2124,0x2104,0x2925,0x2124,0x0841,0x0841,0x0861,0x0861,0x0861,0x1082,0x0841,0x0020,0x18c3,0x2104,0x2104,0x2104,0x2104,0x31a4,0x7343,0x6ac3,0x7303,0x62c3,0x2923,0x2104,0x2124,0x2124,0x2124,0x0861,0x0020,0x0861,0x0861,0x0861,0x0861,0x0861,0x0020,0x10a2,0x2124,0x2124,0x2124,0x2124,0x2124,0x3184,0x6ae5,0x41e3,0x6ae5,0x41e4,0x2944,0x2945,0x2945,0x2945,0x10a2,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x1082,0x18a2,0x1082,0x10a2,0x18c3,0x20e3,0x20e3,0x2924,0x5acb,0x528a,0x4a49,0x4a8a,0x52aa,0x52aa,0x4a69,0x4229,0x4a69,0x52ab,0x5acb,0x4a49,0x4249,0x4228,0x4a8a,0x4229,0x4249,0x4a69,0x4249,0x3a08,0x5acb,0x4a49,0x4229,0x4a8a,0x4a49,0x4249,0x39c7,0x4208,0x4229,0x39c7,0x4269,0x4248,0x39e7,0x39e7,0x39c8,0x39e8,0x4229,0x4a69,0x52aa,0x4228,0x3a08,0x3a08,0x4228,0x4208,0x4208,0x4228,0x4249,0x4229,0x4208,0x4208,0x528a,0x4228,0x31c7,0x3a08,0x4208,0x4228,0x4228,0x4a49,0x4208,0x3a08,0x3a28,0x3a08,0x3a08,0x39e8,0x31c7,0x3a08,0x31a6,0x39e7,0x39e7,0x39c7,0x4a49,0x4208,0x31a6,0x31a6,0x31c7,0x4249,0x31e7,0x31c7,0x3187,0x2986,0x3a08,0x39e8,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x39e8,0x3a08,0x3a08,0x39e8,0x31a6,0x2965,0x39e8,0x39e7,0x39c7,0x3186,0x3186,0x4229,0x3186,0x39c7,0x31a7,0x31a7,0x2966,0x31c7,0x39e8,0x31a6,0x2966,0x39e7,0x3186,0x2966,0x2145,0x2965, +0x31a7,0x3186,0x2986,0x2965,0x31a6,0x31a6,0x2965,0x3186,0x4208,0x39a6,0x2966,0x2966,0x2986,0x2986,0x2986,0x2985,0x31c6,0x31a6,0x2966,0x2966,0x2986,0x2986,0x31a6,0x31a6,0x29a6,0x3a08,0x31e7,0x31a6,0x31a7,0x3187,0x31c7,0x39e7,0x31a6,0x31c6,0x39e8,0x31e7,0x31c7,0x39e7,0x31c7,0x31c7,0x39c7,0x31c7,0x4aaa,0x3a28,0x2965,0x31c7,0x2986,0x31c6,0x3a28,0x4228,0x39c7,0x4249,0x3a08,0x39e8,0x3a08,0x31c7,0x39e7,0x4228,0x3a08,0x3a08,0x39e8,0x4a6a,0x4229,0x39e7,0x4249,0x3a28,0x3a08,0x3a08,0x39e7,0x39e7,0x39e7,0x39e8,0x4208,0x4208,0x4208,0x39c7,0x39e8,0x31e7,0x3a08,0x4269,0x3a28,0x4249,0x4228,0x4228,0x4228,0x4249,0x3a08,0x52aa,0x4a89,0x4249,0x3a08,0x4a69,0x4a8a,0x4209,0x4208,0x4249,0x4249,0x4a49,0x4249,0x4249,0x4249,0x52eb,0x5aeb,0x4a49,0x4a49,0x4a49,0x528a,0x4a89,0x3a08,0x4249,0x4229,0x528a,0x4a8a,0x4228,0x4229,0x10a2,0x1061,0x1061,0x1081,0x1081,0x1081,0x0861,0x1082,0x18c3,0x1082,0x0861,0x1082,0x1082,0x0841,0x0020,0x0841,0x2104,0x2124,0x2124,0x2124,0x2944,0x4a24,0x4a03,0x7b44,0x5223,0x5244,0x2944,0x2124,0x2124,0x2924,0x2104,0x0840,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0020,0x18e3,0x2104,0x2104,0x2104,0x2104,0x5244,0x8ba3,0x41c3,0x5a84,0x8ba3,0x3143,0x2104,0x2124,0x2124,0x2124,0x0861,0x0020,0x0861,0x0861,0x0861,0x0861,0x0861,0x0020,0x10a2,0x2104,0x2104,0x2104,0x2124,0x2124,0x4a24,0x8384,0x6283,0x8384,0x5224,0x2924,0x2944,0x2924,0x2945,0x10a2,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x1082,0x18a2,0x1082,0x10a2,0x18a2,0x20e3,0x20e3,0x2924,0x4a8a,0x4a8a,0x4229,0x4a6a,0x4a8a,0x52aa,0x4a8a,0x4a8a,0x4208,0x4a49,0x52ab,0x4a6a,0x4229,0x4249,0x4a69,0x528a,0x4a69,0x4228,0x4a8a,0x4229,0x528a,0x4a6a,0x4208,0x4228,0x4249,0x4229,0x39e8,0x3a08,0x3a08,0x39e8,0x4249,0x4249,0x3a08,0x3a08,0x3a08,0x39a8,0x39e8,0x4228,0x4a69,0x4249,0x31c7,0x39e7,0x39e7,0x39e7,0x3a07,0x4228,0x39c7,0x4228,0x3a08,0x3a08,0x3a08,0x31c7,0x39e8,0x4208,0x4208,0x4a49,0x39e8,0x4228,0x39e7,0x3a08,0x31e7,0x31a7,0x31c7,0x39c7,0x39e7,0x3a07,0x31a6,0x39e7,0x31a6,0x39e8,0x2986,0x31c7,0x31a7,0x39e8,0x39e7,0x31a6,0x31a7,0x31a7,0x3186,0x31a6,0x2986,0x2966,0x31a7,0x31a7,0x31a7,0x31a7,0x39c8,0x39c8,0x39e8,0x31c8,0x31a7,0x31a6,0x2965,0x3186,0x31a6,0x31a6,0x2966,0x2965,0x31a6,0x2966,0x2966,0x31a6,0x2986,0x2945,0x3186,0x2986,0x2945,0x2965,0x2965,0x3186,0x2965,0x2965,0x2945, +0x2965,0x29a6,0x29a6,0x31c7,0x31c6,0x2965,0x2945,0x31a6,0x39c7,0x3186,0x2966,0x2986,0x2986,0x29a6,0x2986,0x3186,0x31a6,0x2985,0x2965,0x2965,0x2986,0x2986,0x2986,0x2986,0x2986,0x31e7,0x2986,0x2986,0x2966,0x2987,0x39e8,0x3a08,0x2986,0x29a6,0x29a6,0x2986,0x39e7,0x31c6,0x31e7,0x31c7,0x39c7,0x39c7,0x3a08,0x31c7,0x3a08,0x31e7,0x31e8,0x3a08,0x4228,0x31c7,0x39e8,0x3a08,0x31c7,0x39e8,0x39e8,0x31c7,0x31c6,0x39e8,0x4228,0x39e7,0x3a08,0x3a08,0x31c7,0x4209,0x4229,0x39e8,0x3a08,0x39e7,0x3a08,0x3a08,0x39e8,0x39c7,0x4208,0x39c7,0x3a08,0x4228,0x39e8,0x3a08,0x4249,0x4249,0x4269,0x3a28,0x4a69,0x3a28,0x4228,0x4228,0x4249,0x4a8a,0x4aaa,0x4249,0x31e7,0x4249,0x4249,0x3a08,0x39e8,0x4209,0x4a49,0x52aa,0x4249,0x4249,0x4249,0x426a,0x4228,0x4a6a,0x4a49,0x4249,0x4228,0x3a08,0x4249,0x4269,0x4249,0x4228,0x4249,0x4228,0x4a69,0x10a2,0x1061,0x0861,0x0861,0x1081,0x1082,0x1081,0x10a2,0x18c3,0x1082,0x1062,0x1082,0x1082,0x0841,0x0020,0x0841,0x2104,0x2124,0x2124,0x2124,0x3164,0x62a4,0x7303,0x8bc3,0x7b43,0x6ae3,0x3164,0x2124,0x2124,0x2924,0x2104,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0020,0x18e3,0x2104,0x2104,0x2104,0x2104,0x62a4,0x8383,0x2923,0x49e4,0x93c4,0x3163,0x2104,0x2124,0x2124,0x2124,0x0861,0x0020,0x0841,0x0861,0x0861,0x0861,0x0861,0x0020,0x10a2,0x2104,0x2104,0x2124,0x2124,0x2144,0x5a84,0x8bc4,0x6ac3,0x8ba4,0x5204,0x2924,0x2124,0x2924,0x2945,0x10a2,0x0841,0x0841,0x0861,0x0861,0x0841,0x0861,0x1082,0x18a2,0x1082,0x18a2,0x18c3,0x20e3,0x20e3,0x2124,0x4a8a,0x4269,0x3a08,0x4229,0x426a,0x4229,0x4229,0x4249,0x4a69,0x4229,0x4a49,0x4a8a,0x4208,0x39c7,0x4228,0x4a69,0x31c7,0x39e8,0x4249,0x3a08,0x39e8,0x4228,0x4249,0x4229,0x31c7,0x39e8,0x4208,0x31a7,0x31c7,0x39e8,0x39e8,0x39e8,0x3a08,0x4208,0x4208,0x31a7,0x31c7,0x39e8,0x31c7,0x31c7,0x31c7,0x39e7,0x31c7,0x31e7,0x39e7,0x39e8,0x31a6,0x39c7,0x39c7,0x31c7,0x39e7,0x31c7,0x2986,0x31c7,0x31c6,0x3186,0x31a6,0x31a6,0x31a6,0x3186,0x31c7,0x3186,0x31a7,0x3186,0x31a7,0x3186,0x31a6,0x31a7,0x3186,0x2986,0x2986,0x2946,0x2966,0x31a7,0x2966,0x2945,0x2966,0x31a7,0x31c7,0x2986,0x2125,0x2965,0x2966,0x2966,0x2966,0x2945,0x2966,0x2966,0x2946,0x2966,0x2966,0x2966,0x2125,0x2145,0x2145,0x2145,0x2965,0x2125,0x2966,0x2965,0x2145,0x2966,0x2124,0x2145,0x2965,0x2125,0x2145,0x2945,0x2125,0x2124,0x2124,0x2124,0x2124, +0x2165,0x2985,0x29a6,0x31c6,0x2985,0x2145,0x2145,0x2966,0x2986,0x2986,0x29a6,0x29a6,0x2986,0x2986,0x2966,0x31a6,0x2966,0x2966,0x2965,0x2965,0x2985,0x2965,0x2965,0x2986,0x2986,0x29a6,0x2986,0x2965,0x2966,0x2986,0x31a7,0x2986,0x29a6,0x29a6,0x2986,0x31a6,0x2986,0x2986,0x29a6,0x31a7,0x31a7,0x3187,0x2986,0x3186,0x31a7,0x3186,0x3187,0x3187,0x31a7,0x3186,0x31c6,0x3186,0x3186,0x2966,0x3186,0x31a6,0x39c7,0x3a08,0x31c7,0x2986,0x31a6,0x31c7,0x2986,0x39a7,0x39a7,0x31c7,0x29c7,0x31a7,0x39c8,0x39e8,0x31c7,0x3186,0x31a7,0x39c7,0x39e7,0x31c7,0x39e7,0x4228,0x3a08,0x39e7,0x3a08,0x39e7,0x39e8,0x39e8,0x4208,0x3a08,0x39e8,0x4229,0x3a08,0x39e8,0x31e8,0x31c7,0x31c7,0x3a08,0x3a08,0x4208,0x4a49,0x3a08,0x4229,0x4a8a,0x31e8,0x39e8,0x39e8,0x4229,0x4228,0x3a08,0x4229,0x4228,0x4228,0x4249,0x4249,0x3a08,0x3a08,0x3a08,0x3a28,0x10a2,0x1061,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x18c3,0x1082,0x1082,0x1082,0x1062,0x0841,0x0020,0x0841,0x2104,0x2124,0x2124,0x2924,0x3164,0x6ac4,0x8363,0x8bc3,0x8383,0x6ae3,0x3164,0x2124,0x2124,0x2925,0x2104,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0020,0x18e3,0x2124,0x2104,0x2104,0x2104,0x5a84,0x8363,0x2923,0x4a04,0x8bc4,0x3163,0x2104,0x2124,0x2124,0x2124,0x0861,0x0020,0x0841,0x0861,0x0861,0x0861,0x0861,0x0020,0x10a2,0x2104,0x2104,0x2124,0x2104,0x2944,0x62c4,0x8384,0x6ae3,0x8b84,0x41c4,0x2924,0x2124,0x2924,0x2924,0x1082,0x0020,0x0841,0x0861,0x0861,0x0841,0x0861,0x10a2,0x18c3,0x1082,0x18a2,0x18c3,0x20e3,0x20e3,0x2124,0x4229,0x39e8,0x31e7,0x31c7,0x3a28,0x39e7,0x31c7,0x39e8,0x3a08,0x39e8,0x3a08,0x3a08,0x31a7,0x31a7,0x31a7,0x39c7,0x31c7,0x3187,0x3187,0x3187,0x3186,0x31a6,0x31c8,0x31c8,0x31a7,0x31a7,0x31a7,0x3186,0x2986,0x2986,0x2986,0x2986,0x2986,0x31c7,0x31a7,0x2986,0x2966,0x2966,0x2986,0x31a7,0x2986,0x2966,0x31a6,0x31a6,0x2966,0x2986,0x2965,0x2945,0x2966,0x2986,0x31a6,0x2986,0x2145,0x2965,0x2986,0x2965,0x2965,0x2144,0x3186,0x39c7,0x31a7,0x2945,0x2945,0x2945,0x3186,0x2965,0x2945,0x3186,0x31a6,0x2965,0x2145,0x2125,0x2945,0x2125,0x2945,0x2125,0x2125,0x2125,0x2145,0x2125,0x2145,0x2145,0x2104,0x2124,0x2945,0x2125,0x2125,0x2105,0x2124,0x2144,0x2124,0x2124,0x2124,0x2124,0x1904,0x1904,0x2124,0x2104,0x2104,0x2124,0x2124,0x2104,0x1904,0x1904,0x2124,0x1904,0x1904,0x1904,0x1904,0x18e3,0x10c3,0x18e3,0x18e3, +0x2945,0x2124,0x2945,0x2124,0x2145,0x2145,0x2125,0x2945,0x2965,0x2966,0x2145,0x2145,0x2965,0x2965,0x2945,0x2145,0x2945,0x2965,0x2124,0x2144,0x2965,0x2145,0x2965,0x2966,0x2145,0x2145,0x2965,0x2965,0x2965,0x2946,0x2966,0x2986,0x2965,0x2145,0x2145,0x2986,0x2986,0x2986,0x2965,0x2986,0x2986,0x2966,0x2986,0x3186,0x2945,0x2945,0x2946,0x2946,0x2966,0x2965,0x2965,0x2945,0x2946,0x2945,0x2966,0x3186,0x31a6,0x2965,0x2986,0x2965,0x2966,0x2986,0x2966,0x2946,0x2946,0x2966,0x29a6,0x29a6,0x2986,0x2986,0x31a6,0x31a6,0x2965,0x31a6,0x2965,0x2965,0x31a7,0x31a6,0x31a6,0x31a6,0x31c7,0x31c7,0x3186,0x3186,0x3186,0x31a7,0x2966,0x31c7,0x2986,0x2966,0x3187,0x39e8,0x3186,0x39c8,0x39c8,0x31c7,0x31a7,0x3186,0x39c7,0x4228,0x31c7,0x39c7,0x31c7,0x31c7,0x39c7,0x31a7,0x31a7,0x31a7,0x39c7,0x39a7,0x31a6,0x31c7,0x31a7,0x31c7,0x2966,0x10a2,0x1081,0x1081,0x0861,0x0861,0x0861,0x1082,0x10a2,0x18c3,0x1082,0x0861,0x1062,0x1082,0x0841,0x0020,0x0841,0x2104,0x2124,0x2924,0x2124,0x3164,0x62a5,0x72e4,0x8ba4,0x6ac3,0x62a4,0x3164,0x2124,0x2124,0x2924,0x2104,0x0841,0x0841,0x0861,0x0861,0x0861,0x1082,0x0841,0x0020,0x18e3,0x2124,0x2124,0x2104,0x2104,0x4a24,0x8364,0x41c3,0x5aa4,0x7b43,0x3143,0x2124,0x2104,0x2104,0x2124,0x0861,0x0020,0x0841,0x0861,0x0861,0x0861,0x0861,0x0041,0x10a2,0x2104,0x2104,0x2104,0x2104,0x2924,0x62a5,0x7304,0x62a4,0x7304,0x3184,0x2124,0x2924,0x2924,0x2924,0x1082,0x0841,0x0841,0x0861,0x0861,0x0841,0x0861,0x10a2,0x18c3,0x10a2,0x10a2,0x18c3,0x18e3,0x20e3,0x2104,0x31a7,0x31c7,0x2986,0x2965,0x31a6,0x31a7,0x31a7,0x31a6,0x2986,0x31a7,0x2986,0x2986,0x31a7,0x2986,0x2986,0x3186,0x31a7,0x2945,0x2945,0x2966,0x2945,0x2945,0x2145,0x2146,0x2146,0x2145,0x2945,0x2965,0x2145,0x2145,0x2145,0x2966,0x2145,0x2145,0x2124,0x2165,0x2145,0x2125,0x2125,0x2104,0x2125,0x2945,0x2145,0x2965,0x2125,0x2124,0x2104,0x2104,0x2125,0x2124,0x2124,0x2124,0x1924,0x2124,0x2144,0x2124,0x2145,0x2945,0x2124,0x2125,0x2945,0x2145,0x2125,0x18e4,0x2104,0x2124,0x2104,0x2124,0x2104,0x1904,0x1904,0x2104,0x2124,0x2104,0x2124,0x2124,0x2104,0x18e4,0x18e4,0x2104,0x1904,0x2125,0x2104,0x18e4,0x2104,0x18e4,0x18e4,0x18e4,0x18e4,0x2945,0x2144,0x2104,0x1904,0x1904,0x1904,0x18e3,0x18e3,0x18e3,0x18e4,0x18e4,0x18e3,0x18e3,0x18e3,0x18e3,0x1904,0x10c3,0x10c3,0x18c3,0x10c3,0x10c3,0x10c3,0x18e3,0x10c3, +0x2124,0x1904,0x2104,0x1904,0x18e3,0x2104,0x2124,0x2104,0x2124,0x2125,0x18e4,0x2125,0x2986,0x18e3,0x2124,0x2104,0x2124,0x2124,0x2104,0x2104,0x2104,0x2125,0x2125,0x2145,0x2145,0x2145,0x2945,0x2104,0x2104,0x2104,0x2125,0x2145,0x2124,0x2124,0x2125,0x2124,0x2945,0x2945,0x2945,0x2144,0x2124,0x2945,0x2965,0x2124,0x2124,0x2124,0x2104,0x2945,0x2945,0x2124,0x2124,0x2125,0x1904,0x2125,0x2124,0x2124,0x2104,0x2124,0x2145,0x2124,0x2104,0x2105,0x2125,0x2125,0x2124,0x2124,0x2945,0x2945,0x2125,0x2104,0x2124,0x2145,0x2145,0x2145,0x2124,0x2124,0x2145,0x2124,0x2145,0x2145,0x2145,0x2986,0x2945,0x2124,0x2966,0x2125,0x1904,0x2966,0x2965,0x2965,0x2124,0x2125,0x2986,0x2987,0x2987,0x2145,0x2145,0x2966,0x2945,0x2946,0x2946,0x2946,0x2145,0x2986,0x2946,0x2966,0x2945,0x2966,0x2965,0x2945,0x2966,0x2945,0x2125,0x2125,0x2125,0x1082,0x1081,0x1081,0x1081,0x0861,0x0861,0x0861,0x10a2,0x20e3,0x1082,0x0861,0x1082,0x1082,0x0861,0x0841,0x0861,0x2104,0x2124,0x2924,0x2124,0x2944,0x4a05,0x49e4,0x7305,0x49e3,0x41c4,0x2944,0x2124,0x2124,0x2124,0x20e3,0x0841,0x0841,0x0861,0x0861,0x0861,0x1082,0x0861,0x0841,0x18c3,0x2124,0x2104,0x2104,0x2104,0x3984,0x6ae4,0x5a83,0x6ae4,0x5a43,0x2924,0x2124,0x2124,0x2104,0x2104,0x0861,0x0841,0x0861,0x0861,0x0861,0x1062,0x1082,0x0841,0x10a2,0x2104,0x2104,0x2104,0x2104,0x2124,0x4a25,0x5224,0x41e4,0x4a04,0x2944,0x2124,0x2124,0x2124,0x2924,0x1082,0x0841,0x0841,0x0861,0x0841,0x0841,0x0861,0x10a2,0x18a3,0x1082,0x1082,0x18c2,0x18e3,0x20e3,0x2103,0x2925,0x2125,0x31a6,0x2966,0x2945,0x2145,0x2105,0x2125,0x2966,0x2945,0x2125,0x2125,0x2125,0x2124,0x2945,0x2124,0x2965,0x1904,0x1904,0x1904,0x2104,0x2104,0x2124,0x2124,0x1904,0x2124,0x1904,0x2124,0x1904,0x1904,0x1924,0x2125,0x1924,0x1904,0x2124,0x2125,0x2104,0x1904,0x1904,0x18e4,0x2104,0x18e4,0x1904,0x2104,0x18e4,0x18e4,0x18e4,0x18e3,0x18e3,0x18e3,0x2124,0x1904,0x1903,0x10c3,0x10c3,0x1903,0x1904,0x18e4,0x18e3,0x1904,0x18e3,0x18e4,0x18e3,0x10c3,0x18e4,0x1904,0x10c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x18e4,0x10c3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e4,0x18c3,0x10c3,0x18c3,0x10c3,0x10c3,0x18e4,0x2124,0x1904,0x18c3,0x18c3,0x1904,0x10e3,0x18e3,0x18e3,0x18e4,0x18e3,0x10a3,0x10c3,0x10a3,0x10a2,0x10c3,0x18e3,0x10a2,0x10a2,0x10c3,0x10c3,0x10c2,0x10a2,0x10c3,0x10c3, +0x18e4,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x1903,0x18e3,0x18e3,0x18c3,0x18c3,0x1904,0x18e4,0x18c3,0x18e3,0x1904,0x18c3,0x18c3,0x1904,0x18c3,0x18c3,0x18e4,0x18e3,0x18e3,0x18e4,0x18e4,0x18e4,0x18c3,0x18e4,0x1904,0x18e4,0x18e3,0x18e4,0x1904,0x1904,0x18e4,0x1904,0x18e3,0x18e4,0x18e4,0x18e3,0x1904,0x2104,0x1904,0x18e4,0x18e4,0x2104,0x18e4,0x18e3,0x18e3,0x1904,0x18e3,0x18e4,0x18e4,0x18e4,0x18c3,0x18e3,0x2104,0x2124,0x18e3,0x18e3,0x18e3,0x2124,0x1904,0x18e3,0x2104,0x18e4,0x2104,0x2104,0x18e4,0x18e4,0x2104,0x1904,0x2104,0x1904,0x2104,0x2104,0x18e4,0x18e4,0x2104,0x2104,0x2104,0x2104,0x18e4,0x2124,0x18e4,0x1904,0x2104,0x2145,0x2965,0x1904,0x2124,0x2125,0x1904,0x1904,0x18e3,0x1904,0x2145,0x1904,0x2104,0x2104,0x2104,0x1904,0x2125,0x2125,0x1904,0x2124,0x2965,0x2124,0x2945,0x2104,0x18e4,0x18e4,0x18e4,0x18e4,0x1081,0x1081,0x0861,0x1081,0x0861,0x0861,0x0861,0x1082,0x20e3,0x10a2,0x0861,0x0861,0x1082,0x1082,0x1082,0x10a2,0x20e3,0x2124,0x2124,0x2124,0x2124,0x2944,0x3144,0x49e5,0x3144,0x2924,0x2124,0x2124,0x2124,0x2124,0x18c3,0x1081,0x1082,0x0861,0x0861,0x0861,0x1082,0x10a2,0x1082,0x18c2,0x2103,0x2104,0x2104,0x2104,0x2924,0x41c4,0x4a04,0x4a04,0x3164,0x2104,0x2104,0x2104,0x2104,0x20e3,0x1082,0x1082,0x1082,0x0861,0x0861,0x1082,0x10a2,0x10a2,0x10a2,0x20e3,0x2104,0x2104,0x2104,0x2104,0x3164,0x3164,0x2944,0x3164,0x2124,0x2124,0x2124,0x2924,0x2924,0x18c2,0x10a2,0x0861,0x0861,0x0841,0x0841,0x0861,0x18a3,0x10a2,0x1082,0x1082,0x18c2,0x18e3,0x20e3,0x20e3,0x1904,0x1904,0x2104,0x18e3,0x18e4,0x18e4,0x18c3,0x2104,0x2125,0x2104,0x18e3,0x18e3,0x18e3,0x18e4,0x18c3,0x18e3,0x18c3,0x10c3,0x10c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e4,0x18e4,0x18e4,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x2124,0x18e3,0x18e3,0x2125,0x2104,0x18e4,0x18c3,0x18e3,0x18e3,0x18c3,0x10c3,0x10a3,0x18c3,0x10c3,0x10a3,0x10a3,0x10c3,0x10a2,0x18e3,0x18e3,0x18c3,0x10c3,0x10a2,0x10c2,0x10a2,0x10c3,0x10c3,0x10a3,0x10a3,0x10a3,0x10a2,0x10c2,0x10c3,0x10c2,0x10e3,0x10c3,0x10e3,0x10c3,0x10c3,0x10c2,0x10c2,0x10c2,0x18c3,0x10a2,0x10a2,0x10a3,0x10a3,0x10a2,0x10a3,0x18c3,0x10a3,0x10c3,0x10c3,0x10c2,0x10a2,0x10a2,0x10a3,0x10a3,0x10a3,0x10a2,0x08a2,0x10c3,0x1924,0x18e3,0x18c3,0x18c3,0x10a3,0x10a2,0x10a2,0x0882,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2, +0x18c3,0x18c3,0x10c3,0x18c3,0x10c2,0x10c3,0x10c3,0x18e3,0x10a2,0x10a3,0x10a3,0x10c3,0x18c3,0x18c3,0x18c3,0x10c2,0x10a2,0x10a3,0x10a3,0x10a2,0x10a3,0x18c3,0x10c2,0x10a2,0x10a2,0x10a2,0x10c3,0x18c3,0x18c3,0x18c3,0x10c3,0x18c3,0x18c3,0x18c3,0x10c2,0x10c2,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x18c3,0x18e4,0x18e4,0x18c3,0x18c3,0x18c3,0x10a3,0x10c3,0x18c3,0x18c3,0x10c3,0x10c3,0x18c3,0x18c3,0x18c3,0x10c3,0x10c2,0x18e3,0x18e3,0x10c3,0x10c3,0x18c3,0x18c3,0x10a3,0x18c3,0x18c3,0x18e4,0x18c3,0x18e3,0x18e3,0x2104,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x10a3,0x18c3,0x18e3,0x18e3,0x18c3,0x18c3,0x18c3,0x10c3,0x18c3,0x18c3,0x18e3,0x10c3,0x18e3,0x1904,0x18c3,0x18e3,0x18c3,0x10a3,0x18c3,0x18c3,0x18c3,0x10c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18e4,0x1903,0x18c3,0x18e3,0x1904,0x18e4,0x18e4,0x18e3,0x18c3,0x18e3,0x1081,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x20e3,0x10a2,0x0861,0x0861,0x1082,0x18c3,0x2103,0x18e3,0x2103,0x2124,0x2124,0x2124,0x2104,0x2124,0x2924,0x2924,0x2924,0x2924,0x2124,0x2124,0x2924,0x2924,0x20e3,0x20e3,0x18c2,0x1062,0x0861,0x0861,0x10a2,0x20e3,0x2103,0x18e3,0x20e3,0x2104,0x2104,0x2104,0x2104,0x2124,0x2924,0x2944,0x2124,0x20e3,0x2103,0x20e3,0x20e3,0x20e3,0x18e3,0x18e3,0x10a2,0x0861,0x0861,0x1082,0x18e3,0x2944,0x2103,0x2104,0x2104,0x2104,0x2104,0x2104,0x2124,0x2124,0x2924,0x2924,0x2924,0x2104,0x2104,0x2924,0x2944,0x2944,0x2924,0x18a2,0x0861,0x0861,0x0841,0x0861,0x18c3,0x10a2,0x1082,0x1082,0x18c2,0x20e3,0x20e3,0x20e3,0x18c3,0x18c3,0x10a3,0x10a3,0x10c3,0x10c3,0x10c3,0x10c3,0x18c3,0x18c3,0x10a3,0x10a3,0x10a3,0x10c3,0x10a2,0x10c3,0x10c3,0x10a3,0x10a2,0x10a3,0x10a2,0x10a3,0x10c3,0x10a3,0x10c3,0x10c3,0x10c3,0x18e3,0x10c2,0x18e3,0x18e3,0x10c3,0x10a2,0x10a3,0x10a2,0x10a3,0x10a3,0x10c3,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x10a2,0x1082,0x10a2,0x1082,0x10a3,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x10a3,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0882,0x1082,0x0882,0x1082,0x10a2,0x1082,0x1082,0x0882,0x1082,0x10a2,0x1082,0x1082, +0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10c2,0x10a2,0x10c2,0x10a2,0x10a3,0x10c3,0x10a2,0x10a2,0x10a3,0x10a3,0x10a3,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x18c3,0x10c2,0x10c2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a3,0x10a3,0x10c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10c2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a3,0x10a3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x10a2,0x10a3,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a3,0x10a2,0x10a2,0x10a3,0x10a1,0x1062,0x0861,0x0861,0x1061,0x0861,0x0861,0x1082,0x20e3,0x1082,0x1082,0x1082,0x1082,0x18e3,0x2924,0x2104,0x2103,0x2104,0x2104,0x2104,0x2103,0x2103,0x2104,0x2104,0x2124,0x2924,0x2104,0x2104,0x2924,0x2924,0x2104,0x2944,0x18e3,0x1061,0x0861,0x0861,0x18c3,0x2924,0x2924,0x20e3,0x18e3,0x18e3,0x18c3,0x18c3,0x20e3,0x18e3,0x18e3,0x20e3,0x20e3,0x18c3,0x18c3,0x18c3,0x18e3,0x2103,0x2924,0x2124,0x18a2,0x0861,0x0861,0x1082,0x2104,0x3165,0x2924,0x2924,0x2104,0x2104,0x20e3,0x20e3,0x18e3,0x20e3,0x20e3,0x20e3,0x2103,0x20e3,0x20e4,0x2104,0x2924,0x3165,0x3165,0x2103,0x1062,0x0861,0x0841,0x0861,0x18c3,0x1082,0x1082,0x1082,0x18c2,0x20e3,0x18e3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x0882,0x0882,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x0882,0x0882,0x0882,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x0882,0x0881,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x0882,0x1082,0x1082,0x1082,0x0862,0x0862,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x0882,0x0861,0x1082,0x0881,0x0861,0x0882,0x1082,0x1082,0x1082,0x0882,0x0881,0x1082,0x1082,0x1082, +0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x0861,0x0881,0x1082,0x0882,0x0882,0x0882,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x0882,0x0882,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x0881,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x0882,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x0882,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x0882,0x1082,0x0882,0x1082,0x10a2,0x0882,0x1082,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x0881,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x18a1,0x1061,0x0861,0x0861,0x1061,0x0861,0x0861,0x1082,0x20e3,0x1082,0x1081,0x1062,0x10a2,0x2104,0x2103,0x20e3,0x18e3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18a3,0x18c3,0x18c3,0x20e3,0x2104,0x18e3,0x1061,0x0841,0x0841,0x18c3,0x2104,0x18e3,0x18c3,0x18c2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x18a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x18e3,0x2104,0x2104,0x18c3,0x0861,0x0861,0x1082,0x20e4,0x2124,0x2104,0x18e3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x18a2,0x10a2,0x18a3,0x18c3,0x18c3,0x2104,0x2924,0x20e3,0x1082,0x0861,0x0841,0x0861,0x18c3,0x1082,0x1082,0x10a2,0x18c2,0x20e3,0x20e3,0x18c3,0x1082,0x1082,0x1082,0x10a2,0x1082,0x0881,0x1082,0x1082,0x1082,0x0882,0x1082,0x1082,0x1082,0x0881,0x1082,0x10a2,0x0882,0x1082,0x10a2,0x1082,0x1082,0x0881,0x1082,0x1082,0x0882,0x10a2,0x0882,0x0882,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x0882,0x0882,0x0882,0x0882,0x0861,0x0881,0x0881,0x0882,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x0882,0x0881,0x1082,0x0882,0x0881,0x0861,0x0881,0x0882,0x0882,0x0882,0x1082,0x1082,0x0861,0x1082,0x1082,0x1082,0x1082,0x10a2,0x0882,0x0882,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x0882,0x1082,0x1082,0x1082,0x1082,0x0882,0x0881,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x1082,0x0882,0x0882,0x0881,0x0882,0x1082,0x1082,0x0882,0x0882,0x0881,0x0881,0x0882,0x0882,0x0882,0x0861,0x0881,0x1082,0x0882,0x0882,0x0882,0x0861,0x0861,0x0882,0x1082,0x1082, +0x1082,0x0882,0x1082,0x0861,0x0881,0x1082,0x0882,0x0881,0x0881,0x0881,0x0881,0x0861,0x0861,0x0861,0x0881,0x0881,0x0881,0x0881,0x0881,0x0882,0x1082,0x0882,0x0881,0x0882,0x0861,0x0861,0x0881,0x0882,0x0882,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x0882,0x1082,0x0881,0x0881,0x0881,0x0882,0x0861,0x0882,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x0882,0x1082,0x0881,0x0881,0x0882,0x0882,0x0882,0x0882,0x0861,0x1082,0x1082,0x10a2,0x10a2,0x0861,0x1082,0x10a2,0x1082,0x10a2,0x0882,0x0881,0x0881,0x0882,0x1082,0x1082,0x0882,0x0881,0x1082,0x0882,0x0881,0x1082,0x0882,0x0882,0x0881,0x0882,0x0881,0x0861,0x0861,0x0881,0x0882,0x0882,0x0882,0x0881,0x0882,0x0882,0x0881,0x0861,0x0882,0x1082,0x1082,0x1082,0x1082,0x0882,0x0861,0x0881,0x0881,0x0881,0x1082,0x1082,0x0881,0x0881,0x0881,0x1082,0x1082,0x1082,0x18a1,0x1061,0x0861,0x0861,0x1061,0x0861,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x1082,0x18c3,0x18a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x1082,0x1082,0x10a2,0x18a2,0x10a2,0x0861,0x0841,0x0861,0x10a2,0x18a3,0x1082,0x1082,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1082,0x18a2,0x18a3,0x1082,0x0861,0x0861,0x0862,0x10a3,0x10a2,0x10a2,0x1082,0x1082,0x1062,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x1061,0x1082,0x1082,0x1082,0x10a2,0x18a2,0x18a2,0x1082,0x0861,0x0841,0x0861,0x18c3,0x1082,0x10a2,0x1082,0x18c2,0x20e3,0x18e3,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x0882,0x0861,0x0861,0x1082,0x1082,0x0881,0x0881,0x0882,0x0882,0x1082,0x1082,0x0882,0x0881,0x0882,0x0882,0x1082,0x0882,0x0882,0x0882,0x0882,0x0881,0x1082,0x1082,0x0881,0x0861,0x0882,0x0882,0x1082,0x1082,0x0881,0x0861,0x0881,0x0882,0x0882,0x1082,0x0882,0x0881,0x0882,0x1082,0x0882,0x1082,0x0881,0x0882,0x0861,0x0882,0x1082,0x0882,0x0881,0x0881,0x0881,0x0881,0x0881,0x0882,0x1082,0x1082,0x1082,0x1082,0x0882,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x1082,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x1082,0x0881,0x1082,0x1082,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x1082,0x0882,0x0882,0x0882,0x1082,0x0881,0x0882,0x0882,0x0882,0x0882,0x0882,0x0882,0x0861,0x0882,0x0882,0x0882,0x1082,0x1082,0x1082,0x0882,0x0881,0x1082,0x1082,0x1082,0x0882, +0x0882,0x1082,0x0882,0x0861,0x0882,0x0881,0x0861,0x0881,0x0881,0x0861,0x0861,0x0861,0x0861,0x0861,0x0881,0x0861,0x0861,0x0861,0x0881,0x0882,0x0861,0x0881,0x0881,0x0861,0x0861,0x0861,0x0881,0x0882,0x1082,0x0881,0x0861,0x1082,0x0882,0x0861,0x0881,0x0881,0x1082,0x1082,0x0882,0x0882,0x0882,0x0881,0x0881,0x0882,0x0882,0x0882,0x0881,0x0881,0x1082,0x0882,0x0881,0x0882,0x0881,0x0861,0x0861,0x0861,0x0882,0x1082,0x0882,0x0861,0x0861,0x1082,0x1082,0x0881,0x0861,0x0882,0x1082,0x1082,0x1082,0x0861,0x0882,0x0861,0x0861,0x0861,0x0882,0x0861,0x0861,0x0882,0x0881,0x0881,0x0881,0x0861,0x0881,0x0882,0x0861,0x0861,0x0881,0x0861,0x0861,0x0882,0x0861,0x0861,0x0861,0x0861,0x0881,0x0861,0x0882,0x1082,0x0881,0x0881,0x0881,0x0861,0x0881,0x0881,0x1082,0x0881,0x0861,0x0882,0x0882,0x0882,0x0861,0x0881,0x0882,0x0882,0x0861,0x18c2,0x1061,0x0861,0x1061,0x1061,0x0861,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x1082,0x1082,0x0862,0x1081,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x1061,0x1062,0x1082,0x0861,0x0841,0x1081,0x18e3,0x1082,0x10a2,0x1082,0x18c3,0x18e3,0x18c3,0x18c3,0x10a2,0x1082,0x1082,0x1082,0x0882,0x0882,0x0861,0x0881,0x0882,0x0881,0x1082,0x0882,0x0882,0x1082,0x1082,0x1082,0x1082,0x0882,0x0861,0x0881,0x0881,0x1082,0x0881,0x1082,0x0882,0x1082,0x1082,0x1082,0x0882,0x0882,0x1082,0x1082,0x0882,0x1082,0x0882,0x0882,0x1082,0x0882,0x1082,0x1082,0x0882,0x0882,0x0882,0x0882,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x0882,0x1082,0x10a2,0x0882,0x08a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x0882,0x0882,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x0882,0x08a2,0x08a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082, +0x1082,0x0881,0x0881,0x1082,0x1082,0x0881,0x0881,0x0881,0x0881,0x0882,0x0882,0x0882,0x0882,0x0861,0x0861,0x0881,0x0882,0x0881,0x0882,0x0881,0x0881,0x0882,0x0882,0x0881,0x0861,0x0861,0x0881,0x0881,0x1082,0x1082,0x0882,0x1082,0x1082,0x0882,0x0882,0x0881,0x1082,0x1082,0x1082,0x1082,0x0861,0x0882,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x0882,0x0882,0x1082,0x1082,0x0882,0x0881,0x1082,0x0881,0x0882,0x0881,0x0881,0x0881,0x0881,0x1082,0x0881,0x0881,0x0882,0x0882,0x1082,0x0861,0x0882,0x0881,0x0882,0x0881,0x0881,0x0881,0x0882,0x0881,0x0881,0x0882,0x0882,0x1082,0x0882,0x0861,0x0882,0x1082,0x0881,0x0882,0x0882,0x0881,0x0881,0x0882,0x0882,0x0881,0x0881,0x0861,0x0882,0x0882,0x0882,0x0881,0x0861,0x0882,0x0881,0x0861,0x0881,0x0881,0x0881,0x0882,0x0861,0x0881,0x0881,0x0861,0x0861,0x0882,0x1082,0x1082,0x0881,0x2102,0x1061,0x1061,0x0861,0x0861,0x0861,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18c3,0x1082,0x10a2,0x1082,0x18c2,0x18e3,0x18c3,0x18c3,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0882,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x0882,0x0882,0x0882,0x0882,0x1082,0x0882,0x0882,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10c3,0x10c2,0x10a2,0x10c2,0x10a2,0x10a2,0x10c3,0x10c2,0x10c2,0x10c3,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c2,0x10a2,0x10c2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x18c3,0x10a2,0x10c2,0x10c3,0x10a2,0x10c2,0x10c2,0x10c3, +0x10a2,0x0882,0x0882,0x10a2,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0882,0x1082,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x0882,0x1082,0x1082,0x1082,0x0882,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x1082,0x10a2,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x0882,0x0882,0x1082,0x1082,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x0882,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x1082,0x1082,0x10a2,0x1082,0x0882,0x1082,0x10a2,0x10a2,0x1082,0x1082,0x1082,0x10a2,0x10a2,0x0882,0x1082,0x1082,0x0882,0x1082,0x0882,0x0882,0x10a2,0x1082,0x1082,0x1082,0x0882,0x0882,0x1082,0x1082,0x0881,0x0882,0x0882,0x1082,0x1082,0x1082,0x10a2,0x1082,0x2943,0x1061,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1061,0x0861,0x0861,0x1082,0x18c3,0x1082,0x10a2,0x1082,0x18c2,0x18c3,0x18c2,0x18c3,0x10c2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c3,0x10c2,0x10c3,0x10a2,0x10c3,0x18c3,0x10a2,0x10c3,0x10a2,0x18c3,0x10c3,0x10c2,0x10c2,0x10c3,0x10c3,0x10a2,0x10c3,0x10c3,0x10c3,0x10c3,0x10c2,0x18e3,0x18e3,0x10c3,0x18c3,0x18c3,0x18e3,0x18e3,0x10c3,0x10e3,0x10c3,0x10c3,0x10c3,0x18e3,0x18e3,0x18e3,0x18e3,0x10c3,0x10c3,0x10c3,0x10c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18c3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3, +0x10c2,0x10c2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c3,0x10c2,0x10c2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10c3,0x10c2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x08a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10c2,0x10a2,0x10a2,0x10a2,0x3164,0x1061,0x1061,0x0861,0x0861,0x0861,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0841,0x0841,0x0861,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1062,0x1061,0x0861,0x0861,0x1082,0x18e3,0x1082,0x10a2,0x10a2,0x18c2,0x18c3,0x18c2,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x10e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x1903,0x1903,0x18e3,0x1904,0x1903,0x1904,0x1904,0x1903,0x1903,0x1903,0x1904,0x1904,0x18e3,0x1904,0x1904,0x1904,0x1924,0x1904,0x1904,0x1904,0x1904,0x2124,0x2124,0x2124,0x2104,0x2104,0x2103,0x1903,0x1903,0x1904,0x1904,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2145,0x2144,0x2124,0x2124,0x2145,0x2144,0x2144,0x2945,0x2124,0x2124,0x2124, +0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x10e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18c3,0x18e3,0x18e3,0x10e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x10e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x10c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x1903,0x18e3,0x18e3,0x18e3,0x18c3,0x18c3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x18e3,0x3184,0x1081,0x1061,0x1061,0x0861,0x1061,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0861,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x1082,0x0861,0x0861,0x0861,0x1082,0x20e3,0x1082,0x1082,0x10a2,0x18c2,0x18e3,0x18c2,0x20e3,0x2104,0x2124,0x1904,0x2124,0x2104,0x2103,0x2104,0x2124,0x2124,0x1904,0x1904,0x1904,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2144,0x2144,0x2144,0x2144,0x2165,0x2144,0x2145,0x2145,0x2945,0x2965,0x2945,0x2965,0x2945,0x2165,0x2965,0x2965,0x2945,0x2945,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2985,0x2965,0x2985,0x2985,0x2985,0x2985,0x2985,0x2965,0x2986,0x2965,0x2985,0x2985,0x2965,0x2965,0x2965,0x2965,0x2965,0x2965,0x2986,0x2965,0x2965,0x2986,0x2986,0x2965,0x2986,0x2986,0x2985,0x2986,0x2965,0x2965,0x2986,0x2986,0x2986,0x2985,0x2985,0x2985,0x2985,0x2985,0x2986,0x3186,0x31a6,0x3186,0x3186,0x2986,0x2986,0x31a6,0x29a6,0x2985, +0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2104,0x2124,0x2124,0x1924,0x1924,0x1924,0x2124,0x2124,0x2104,0x2124,0x1924,0x1924,0x1904,0x2104,0x2104,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2104,0x1924,0x2124,0x1904,0x2124,0x2124,0x1924,0x2124,0x2124,0x2124,0x2124,0x1924,0x2124,0x2124,0x2124,0x2124,0x1924,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2104,0x2124,0x2144,0x2144,0x2124,0x1924,0x2124,0x2124,0x2124,0x2124,0x1904,0x1904,0x2124,0x2124,0x2124,0x2124,0x2124,0x1924,0x2144,0x1924,0x1924,0x1924,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2144,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x2124,0x3184,0x1081,0x1081,0x1081,0x1081,0x1081,0x0861,0x1082,0x18e3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x10a2,0x20e3,0x1082,0x10a2,0x10a2,0x18c2,0x18e3,0x18c2,0x2103,0x2965,0x2965,0x2965,0x2985,0x2985,0x2965,0x2165,0x2985,0x2985,0x2985,0x2985,0x2985,0x2965,0x2985,0x2985,0x2985,0x2985,0x29a5,0x2985,0x2985,0x2985,0x2985,0x2985,0x2985,0x29a6,0x29a6,0x3186,0x3186,0x2986,0x31a6,0x29a6,0x31a6,0x2986,0x31a6,0x31c6,0x31a6,0x29a6,0x29c6,0x31c6,0x31c7,0x31c7,0x31c6,0x31c6,0x29c6,0x29c6,0x31c7,0x31c7,0x31c6,0x31c7,0x31c7,0x31c7,0x31c7,0x31c7,0x39e7,0x39c7,0x39c7,0x39e7,0x31c6,0x39e7,0x39e7,0x39e7,0x39e7,0x39e7,0x39e7,0x3a07,0x3a08,0x3a07,0x3a07,0x3a07,0x3a08,0x3a08,0x3a08,0x3a08,0x39e7,0x3a07,0x3a07,0x3a07,0x3a07,0x3a08,0x3a07,0x3a07,0x3a07,0x39e7,0x39e7,0x39e7,0x3a08,0x3a08,0x3a08,0x4208,0x4208,0x4208,0x4208,0x3a08,0x39e8,0x4208,0x4228,0x3a08,0x3a08,0x39e7,0x39e7,0x3a07,0x4207,0x39e7,0x39c7,0x39c7,0x39c7,0x4208,0x39e7,0x3a08,0x4208,0x41e7,0x4207,0x4207, +0x2985,0x2965,0x2986,0x2986,0x2985,0x3185,0x3185,0x3185,0x2985,0x2985,0x2985,0x2985,0x2985,0x3185,0x3185,0x2985,0x2986,0x2985,0x2965,0x2985,0x3186,0x2965,0x2965,0x2986,0x2986,0x2985,0x2986,0x2986,0x2985,0x2965,0x2985,0x2985,0x2985,0x2986,0x2985,0x2986,0x2986,0x29a6,0x2986,0x2985,0x2986,0x2986,0x2965,0x2985,0x29a6,0x29a5,0x2985,0x3185,0x3185,0x31a6,0x31a6,0x31a5,0x31a6,0x2986,0x31a6,0x31a6,0x3186,0x31a6,0x29a6,0x29a6,0x29a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x31a6,0x29a6,0x29a6,0x29a6,0x29a6,0x29a6,0x29a6,0x29c6,0x29a6,0x29a6,0x31a6,0x31a6,0x31a6,0x31a6,0x29a6,0x2986,0x3186,0x29a6,0x2986,0x31a6,0x2986,0x29a6,0x2986,0x3186,0x2985,0x2986,0x31a6,0x29a6,0x2985,0x3186,0x3186,0x3186,0x31a6,0x31a6,0x31a6,0x31a6,0x29a6,0x31a6,0x2985,0x29a6,0x31a6,0x31a6,0x3186,0x39a4,0x1081,0x1081,0x1082,0x1082,0x10a2,0x1061,0x1082,0x18e3,0x1082,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0861,0x0841,0x0841,0x0841,0x0841,0x0861,0x0861,0x0841,0x0841,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0861,0x0841,0x0861,0x10a2,0x2103,0x1082,0x18a2,0x1082,0x18c2,0x18e3,0x18c2,0x2104,0x39c7,0x39e7,0x3a07,0x39e7,0x39e7,0x39e7,0x39e7,0x3a07,0x3a07,0x3a07,0x39e7,0x39e7,0x4208,0x3a08,0x3a08,0x4208,0x41e7,0x4208,0x4208,0x39e7,0x4208,0x4228,0x4228,0x4228,0x4248,0x4228,0x4228,0x4228,0x4228,0x4228,0x4228,0x4248,0x4228,0x4249,0x4228,0x4208,0x4248,0x4228,0x4a49,0x4228,0x4a28,0x4228,0x4208,0x3a28,0x3a28,0x4228,0x4208,0x4228,0x4228,0x4228,0x4228,0x4228,0x4228,0x4208,0x4208,0x4228,0x4228,0x4208,0x39e7,0x4207,0x4208,0x4208,0x39e7,0x4208,0x39e7,0x41e8,0x4207,0x4207,0x39c7,0x39e7,0x39e7,0x41e7,0x41e7,0x39c7,0x39e7,0x39c7,0x39c6,0x39e7,0x39e7,0x39c6,0x31a6,0x31a6,0x39a6,0x39a6,0x3186,0x3186,0x31a6,0x3186,0x3186,0x3186,0x31a6,0x3186,0x3165,0x3165,0x3186,0x3186,0x3165,0x3165,0x2945,0x2944,0x2944,0x3144,0x3145,0x2904,0x20e3,0x2924,0x2944,0x2944,0x2944,0x3145,0x2924,0x2924,0x2924}; diff --git a/MCUME_teensy/teensymsx/platform_config.h b/MCUME_teensy/teensymsx/platform_config.h new file mode 100644 index 0000000..430c11c --- /dev/null +++ b/MCUME_teensy/teensymsx/platform_config.h @@ -0,0 +1,20 @@ +#ifndef _PLATFORM_CONFIG_H_ +#define _PLATFORM_CONFIG_H_ + +//#define OLD_LAYOUT 1 + +//#define ILI9341 1 +#define ST7789 1 +#define SWAP_JOYSTICK 1 +//#define LOHRES 1 +//#define ROTATE_SCREEN 1 +#define EXTERNAL_SD 1 + +#define HAS_PSRAM 1 + +//#define USE_SDFAT 1 +//#define SD_FAT_TYPE 1 +//#define USE_SDFS 1 +//#define SDFSDEV "1:" + +#endif diff --git a/MCUME_teensy/teensymsx/psram_t.cpp b/MCUME_teensy/teensymsx/psram_t.cpp new file mode 100644 index 0000000..c5661bc --- /dev/null +++ b/MCUME_teensy/teensymsx/psram_t.cpp @@ -0,0 +1,389 @@ +/* + PSRAM driver for IPS6404 +*/ + +#include "psram_t.h" + +Page PSRAM_T::pages[MAX_PAGES]; +uint8_t PSRAM_T::nbPages=0; +int8_t PSRAM_T::top=0; +int8_t PSRAM_T::last=0; + + +#ifdef HAS_PSRAM + +#include +#include + +#define SPI SPI2 + +//#define SPICLOCK 104000000 +#define SPICLOCK 70000000 +//#define SPICLOCK 144e6 //Just a number..max speed +#define SPI_MODE SPI_MODE0 + +#define RAM_READ 0xB +//#define RAM_READ 0x3 +#define RAM_WRITE 0x2 + + +uint8_t PSRAM_T::_cs, PSRAM_T::_miso, PSRAM_T::_mosi, PSRAM_T::_sclk; + + +PSRAM_T::PSRAM_T(uint8_t cs, uint8_t mosi, uint8_t sclk, uint8_t miso) +{ + _cs = cs; + _mosi = mosi; + _sclk = sclk; + _miso = miso; + pinMode(_cs, OUTPUT); + digitalWrite(_cs, 1); +} + + +void PSRAM_T::begin(void) +{ + SPI.setMOSI(_mosi); + SPI.setMISO(_miso); + SPI.setSCK(_sclk); + SPI.begin(); + + delay(1); + + digitalWrite(_cs, 0); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + SPI.transfer(0x66); + digitalWrite(_cs, 1); + SPI.endTransaction(); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_cs, 0); + SPI.transfer(0x99); + SPI.endTransaction(); + digitalWrite(_cs, 1); + delayMicroseconds(20); +} + + + +uint8_t PSRAM_T::psram_read(uint32_t addr) +{ + uint8_t val=0; + + digitalWrite(_cs, 0); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + SPI.transfer(RAM_READ); + SPI.transfer((addr>>16)&0xff); + SPI.transfer((addr>>8)&0xff); + SPI.transfer(addr&0xff); +#if RAM_READ == 0xB + SPI.transfer(0xFF); +#endif + val = SPI.transfer(0xFF); + SPI.endTransaction(); + digitalWrite(_cs, 1); + return val; +} + + +void PSRAM_T::psram_read_n(uint32_t addr, uint8_t * val, int n) +{ + digitalWrite(_cs, 0); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + SPI.transfer(RAM_READ); + SPI.transfer((addr>>16)&0xff); + SPI.transfer((addr>>8)&0xff); + SPI.transfer(addr&0xff); +#if RAM_READ == 0xB + SPI.transfer(0xFF); +#endif + /* + while (n > 0) { + *val++ = SPI.transfer(0xFF); + n--; + } + */ + SPI.transfer(val,n); + SPI.endTransaction(); + digitalWrite(_cs, 1); +} + + +void PSRAM_T::psram_write(uint32_t addr, uint8_t val) +{ + digitalWrite(_cs, 0); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + SPI.transfer(RAM_WRITE); + SPI.transfer((addr>>16)&0xff); + SPI.transfer((addr>>8)&0xff); + SPI.transfer(addr&0xff); + SPI.transfer(val); + SPI.endTransaction(); + digitalWrite(_cs, 1); +} + +static uint8_t resp[PAGE_SIZE]; + + +void PSRAM_T::psram_write_n(uint32_t addr, uint8_t * val, int n) +{ + digitalWrite(_cs, 0); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + SPI.transfer(RAM_WRITE); + SPI.transfer((addr>>16)&0xff); + SPI.transfer((addr>>8)&0xff); + SPI.transfer(addr&0xff); + /* + while (n > 0) { + SPI.transfer(*val++); + n--; + } + */ + SPI.transfer(val,&resp[0],n); + SPI.endTransaction(); + digitalWrite(_cs, 1); +} + + +#ifdef DMATRY +#include + +DMAMEM static uint8_t src[PAGE_SIZE+4]; +DMAMEM static uint8_t dst[PAGE_SIZE+4]; +static DMASetting dmasettings[8]; +static DMAChannel dmatx; +static volatile uint8_t rstop = 0; + +#define DMASPI_PRINT(x) do {Serial.printf(x) ; Serial.flush();} while (0); + +static void dmaInterrupt() +{ + dmatx.clearInterrupt(); + rstop = 1; + //DMASPI_PRINT("irq"); +} + +void PSRAM_T::psram_write_n_dma(uint32_t addr, uint8_t * val, int n) { + uint8_t * dstPt = &dst[0]; + //*dstPt++ = RAM_WRITE; + //*dstPt++ = (addr>>16)&0xff; + //*dstPt++ = (addr>>8)&0xff; + //*dstPt++ = addr&0xff; + int cnt = n; + while (cnt > 0) { + *dstPt++ = *val++; + cnt--; + } + arm_dcache_flush(&dst[0], n); + rstop = 0; + dmatx.disable(); + dmatx.attachInterrupt(dmaInterrupt); + + dmasettings[0].sourceBuffer(&dst[0], n); + //dmasettings[0].destination((uint8_t &) LPSPI4_TDR); + dmasettings[0].destination((uint8_t &) IMXRT_LPSPI1_S.TDR); + dmasettings[0].TCD->ATTR_DST = 1; + dmasettings[0].interruptAtCompletion(); + +Serial.printf("A") ; Serial.flush(); + + digitalWrite(_cs, HIGH); + // SPI.begin(); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + + digitalWrite(_cs, 0); + SPI.transfer(RAM_WRITE); + SPI.transfer((addr>>16)&0xff); + SPI.transfer((addr>>8)&0xff); + SPI.transfer(addr&0xff); + //SPI.transfer(0); + //SPI.transfer(1); +Serial.printf("B") ; Serial.flush(); + +#ifdef XXX + LPSPI4_CR &= ~LPSPI_CR_MEN;//disable LPSPI: + LPSPI4_CFGR1 |= LPSPI_CFGR1_NOSTALL; //prevent stall from RX + //LPSPI4_TCR = 15; // Framesize 16 Bits + IMXRT_LPSPI4_S.TCR = (IMXRT_LPSPI4_S.TCR & ~(LPSPI_TCR_FRAMESZ(31))) | LPSPI_TCR_FRAMESZ(7); + LPSPI4_DER = LPSPI_DER_TDDE; //TX DMA Request Enable + // IMXRT_LPSPI4_S.DER = LPSPI_DER_TDDE; // | LPSPI_DER_RDDE; //enable DMA on both TX and RX + LPSPI4_CR |= LPSPI_CR_MEN; //enable LPSPI: + //IMXRT_LPSPI4_S.TCR = (IMXRT_LPSPI4_S.TCR & ~(LPSPI_TCR_FRAMESZ(31))) | LPSPI_TCR_FRAMESZ(7); + // IMXRT_LPSPI4_S.FCR = 0; + // Lets try to output the first byte to make sure that we are in 8 bit mode... + // IMXRT_LPSPI4_S.SR = 0x3f00; // clear out all of the other status... + + dmatx.triggerAtHardwareEvent( DMAMUX_SOURCE_LPSPI4_TX ); +#endif + IMXRT_LPSPI1_S.CR &= ~LPSPI_CR_MEN;//disable LPSPI: + IMXRT_LPSPI1_S.CFGR1 |= LPSPI_CFGR1_NOSTALL; //prevent stall from RX + IMXRT_LPSPI1_S.TCR = (IMXRT_LPSPI4_S.TCR & ~(LPSPI_TCR_FRAMESZ(31))) | LPSPI_TCR_FRAMESZ(7); + IMXRT_LPSPI1_S.DER = LPSPI_DER_TDDE; //TX DMA Request Enable + IMXRT_LPSPI1_S.CR |= LPSPI_CR_MEN; //enable LPSPI: + dmatx.triggerAtHardwareEvent( DMAMUX_SOURCE_LPSPI1_TX ); +Serial.printf("C") ; Serial.flush(); +// SPI.initDMAChannels(); + dmatx = dmasettings[0]; + + dmatx.enable(); +Serial.printf("D") ; Serial.flush(); + while (rstop == 0) {}; + + Serial.printf("E") ; Serial.flush(); + digitalWrite(_cs, 1); +} +#endif + + + +#else + + +#include "emuapi.h" + + +PSRAM_T::PSRAM_T(uint8_t cs, uint8_t mosi, uint8_t sclk, uint8_t miso) +{ +} + +void PSRAM_T::begin(void) +{ + emu_FileTempInit(); +} + +void PSRAM_T::psram_read_n(uint32_t addr, uint8_t * val, int n) +{ + emu_FileTempRead(addr,val,n); +} + + +void PSRAM_T::psram_write(uint32_t addr, uint8_t val) +{ + emu_FileTempWrite(addr,val); +} + +#endif + + + +void PSRAM_T::pswrite(uint32_t addr, uint8_t val) +{ + psram_write(addr, val); + //return; + uint32_t curPage=addr&(~(PAGE_SIZE-1)); + for (int i=0; i +#include "platform_config.h" + +#ifdef HAS_PSRAM +#define PAGE_SIZE 16 //32 //2048 //1024 +#define MAX_PAGES 8 +#else +#define PAGE_SIZE 256 +#define MAX_PAGES 8 +#endif + +struct Page { + uint8_t page[PAGE_SIZE]; + uint32_t pageid; + int8_t next; + int8_t prev; +}; + +class PSRAM_T +{ + public: + PSRAM_T(uint8_t _CS, uint8_t _MOSI=11, uint8_t _SCLK=13, uint8_t _MISO=12); + void begin(void); + void pswrite(uint32_t addr, uint8_t val); + uint8_t psread(uint32_t addr); + uint16_t psread_w(uint32_t addr); + + private: + static uint8_t psram_read(uint32_t addr); + static void psram_read_n(uint32_t addr, uint8_t * val, int n); + static void psram_write(uint32_t addr, uint8_t val); + static void psram_write_n(uint32_t addr, uint8_t * val, int n); + + protected: + static uint8_t _cs, _miso, _mosi, _sclk; + static Page pages[MAX_PAGES]; + static uint8_t nbPages; + static int8_t top; + static int8_t last; +}; +#endif + +#endif + diff --git a/MCUME_teensy/teensymsx/shared.h b/MCUME_teensy/teensymsx/shared.h new file mode 100644 index 0000000..f8b73ff --- /dev/null +++ b/MCUME_teensy/teensymsx/shared.h @@ -0,0 +1,12 @@ + +#ifndef _SHARED_H_ +#define _SHARED_H_ + + +#define SOUND_PRESENT 1 + +#define printf(...) + +#define LSB_FIRST 1 + +#endif /* _SHARED_H_ */ diff --git a/MCUME_teensy/teensymsx/teensymsx.ino b/MCUME_teensy/teensymsx/teensymsx.ino new file mode 100644 index 0000000..9c368b4 --- /dev/null +++ b/MCUME_teensy/teensymsx/teensymsx.ino @@ -0,0 +1,272 @@ +#include "iopins.h" +#include "emuapi.h" + +#include "keyboard_osd.h" +#include "tft_t_dma.h" + +extern "C" { +#include "fmsx.h" +} + +#ifdef HAS_VGA +#include +uVGA uvga; +#if F_CPU == 144000000 +#define UVGA_144M_326X240 +#define UVGA_XRES 326 +#define UVGA_YRES 240 +#define UVGA_XRES_EXTRA 10 +#elif F_CPU == 180000000 +#define UVGA_180M_360X300 +#define UVGA_XRES 360 +#define UVGA_YRES 300 +#define UVGA_XRES_EXTRA 8 +#elif F_CPU == 240000000 +#define UVGA_240M_452X240 +#define UVGA_XRES 452 +#define UVGA_YRES 240 +#define UVGA_XRES_EXTRA 12 +#else +#error Please select F_CPU=240MHz or F_CPU=180MHz or F_CPU=144MHz +#endif + +#include + +uint8_t * VGA_frame_buffer; +#endif + +TFT_T_DMA tft = TFT_T_DMA(TFT_CS, TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK, TFT_MISO, TFT_TOUCH_CS, TFT_TOUCH_INT); + +bool vgaMode = false; + +static unsigned char palette8[PALETTE_SIZE]; +static unsigned short palette16[PALETTE_SIZE]; +static IntervalTimer myTimer; +volatile boolean vbl=true; +static int skip=0; +static elapsedMicros tius; + + + +static void vblCount() { + if (vbl) { + vbl = false; + } else { + vbl = true; + } +} + +void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index) +{ + if (index +#include "AudioPlaySystem.h" + +AudioPlaySystem mymixer; +#if defined(__IMXRT1052__) || defined(__IMXRT1062__) +AudioOutputMQS mqs; +AudioConnection patchCord9(mymixer, 0, mqs, 1); +#else +AudioOutputAnalog dac1; +AudioConnection patchCord1(mymixer, dac1); +#endif + +void emu_sndInit() { + Serial.println("sound init"); + AudioMemory(16); + mymixer.start(); +} + +void emu_sndPlaySound(int chan, int volume, int freq) +{ + if (chan < 6) { + mymixer.sound(chan, freq, volume); + } + /* + Serial.print(chan); + Serial.print(":" ); + Serial.print(volume); + Serial.print(":" ); + Serial.println(freq); + */ +} + +void emu_sndPlayBuzz(int size, int val) { + mymixer.buzz(size,val); + //Serial.print((val==1)?1:0); + //Serial.print(":"); + //Serial.println(size); +} +#endif diff --git a/MCUME_teensy/teensymsx/tft_t_dma.cpp b/MCUME_teensy/teensymsx/tft_t_dma.cpp new file mode 100644 index 0000000..5c2f93d --- /dev/null +++ b/MCUME_teensy/teensymsx/tft_t_dma.cpp @@ -0,0 +1,1237 @@ +/* + Based on C64 ILI9341 dma driver from Frank Bösing, 2017 +*/ + +#include "TFT_T_DMA.h" +#include "font8x8.h" + + +#define SPICLOCK 60000000 //144e6 //Just a number..max speed +#ifdef ILI9341 +#define SPI_MODE SPI_MODE0 +#endif +#ifdef ST7789 +#define SPI_MODE SPI_MODE2 +#endif + +// touch +#define SPI_SETTING SPISettings(2500000, MSBFIRST, SPI_MODE) +#define XPT2046_CFG_START _BV(7) +#define XPT2046_CFG_MUX(v) ((v&0b111) << (4)) +#define XPT2046_CFG_8BIT _BV(3) +#define XPT2046_CFG_12BIT (0) +#define XPT2046_CFG_SER _BV(2) +#define XPT2046_CFG_DFR (0) +#define XPT2046_CFG_PWR(v) ((v&0b11)) +#define XPT2046_MUX_Y 0b101 +#define XPT2046_MUX_X 0b001 +#define XPT2046_MUX_Z1 0b011 +#define XPT2046_MUX_Z2 0b100 + + +#ifdef TFT_STATICFB +static uint16_t fb0[LINES_PER_BLOCK*TFT_WIDTH]; +static uint16_t fb1[LINES_PER_BLOCK*TFT_WIDTH]; +static uint16_t fb2[LINES_PER_BLOCK*TFT_WIDTH]; +static uint16_t fb3[(TFT_HEIGHT-3*LINES_PER_BLOCK)*TFT_WIDTH]; +static uint16_t * blocks[NR_OF_BLOCK]={fb0,fb1,fb2,fb3}; +#else +static uint16_t * blocks[NR_OF_BLOCK]; +#endif + + +static DMASetting dmasettings[SCREEN_DMA_NUM_SETTINGS]; +static DMAChannel dmatx;//(false); +static volatile uint8_t rstop = 0; +static volatile bool cancelled = false; +static volatile uint8_t curTransfer = 0; +static uint8_t nbTransfer = 0; + + +PROGMEM static const uint8_t init_commands[] = { +#ifdef ILI9341 + 4, 0xEF, 0x03, 0x80, 0x02, + 4, 0xCF, 0x00, 0XC1, 0X30, + 5, 0xED, 0x64, 0x03, 0X12, 0X81, + 4, 0xE8, 0x85, 0x00, 0x78, + 6, 0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02, + 2, 0xF7, 0x20, + 3, 0xEA, 0x00, 0x00, + 2, ILI9341_PWCTR1, 0x23, // Power control + 2, ILI9341_PWCTR2, 0x10, // Power control + 3, ILI9341_VMCTR1, 0x3e, 0x28, // VCM control + 2, ILI9341_VMCTR2, 0x86, // VCM control2 + 2, ILI9341_MADCTL, 0x48, // Memory Access Control + 2, ILI9341_PIXFMT, 0x55, + 3, ILI9341_FRMCTR1, 0x00, 0x18, + 4, ILI9341_DFUNCTR, 0x08, 0x82, 0x27, // Display Function Control + 2, 0xF2, 0x00, // Gamma Function Disable + 2, ILI9341_GAMMASET, 0x01, // Gamma curve selected + 16, ILI9341_GMCTRP1, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, + 0x4E, 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00, // Set Gamma + 16, ILI9341_GMCTRN1, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, + 0x31, 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, // Set Gamma +// 3, 0xb1, 0x00, 0x1f, // FrameRate Control 61Hz + 3, 0xb1, 0x00, 0x10, // FrameRate Control 119Hz + 2, ILI9341_MADCTL, ILI9341_MADCTL_MX | ILI9341_MADCTL_MY | ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR, + 0 +#endif +#ifdef ST7789 +#define DELAY 0x80 + 9, // 9 commands in list: + ST7735_SWRESET, DELAY, // 1: Software reset, no args, w/delay + 150, // 150 ms delay + ST7735_SLPOUT , DELAY, // 2: Out of sleep mode, no args, w/delay + 255, // 255 = 500 ms delay + ST7735_COLMOD , 1+DELAY, // 3: Set color mode, 1 arg + delay: + 0x55, // 16-bit color + 10, // 10 ms delay + ST7735_MADCTL , 1 , // 4: Memory access ctrl (directions), 1 arg: + 0x08, // Row addr/col addr, bottom to top refresh + ST7735_CASET , 4 , // 5: Column addr set, 4 args, no delay: + 0x00, + 0x00, // XSTART = 0 + 0x00, + 240, // XEND = 240 + ST7735_RASET , 4 , // 6: Row addr set, 4 args, no delay: + 0x00, + 0x00, // YSTART = 0 + 320>>8, + 320 & 0xFF, // YEND = 320 + ST7735_INVON , DELAY, // 7: hack + 10, + ST7735_NORON , DELAY, // 8: Normal display on, no args, w/delay + 10, // 10 ms delay + ST7735_DISPON , DELAY, // 9: Main screen turn on, no args, w/delay + 255 +#endif +}; + +static void dmaInterrupt() { + dmatx.clearInterrupt(); + curTransfer++; + if (curTransfer >= nbTransfer) { + curTransfer = 0; + if (cancelled) { + dmatx.disable(); + rstop = 1; + } + } +#if defined(__IMXRT1052__) || defined(__IMXRT1062__) + arm_dcache_flush(blocks[curTransfer], LINES_PER_BLOCK*TFT_WIDTH*2); +#endif +} + +static void setDmaStruct() { + uint32_t remaining = TFT_HEIGHT*TFT_WIDTH*2; + int i=0; + uint16_t col=RGBVAL16(0x00,0x00,0x00);; + while (remaining > 0) { + uint16_t * fb = blocks[i]; + int32_t len = (remaining >= (LINES_PER_BLOCK*TFT_WIDTH*2)?LINES_PER_BLOCK*TFT_WIDTH*2:remaining); +#ifdef TFT_DEBUG + Serial.println((unsigned long)blocks[i]); + Serial.println(remaining); +#endif + switch (i) { + case 0: + if (fb == 0) fb = (uint16_t*)((int)malloc(len+64)&0xffffffe0); + //fb=&fb0[0]; +#ifdef TFT_DEBUG + col = RGBVAL16(0x00,0xff,0x00); +#endif + break; + case 1: + if (fb == 0) fb = (uint16_t*)((int)malloc(len+64)&0xffffffe0); + //fb=&fb1[0]; +#ifdef TFT_DEBUG + col = RGBVAL16(0x00,0xff,0xff); +#endif + break; + case 2: + if (fb == 0) fb = (uint16_t*)((int)malloc(len+64)&0xffffffe0); + //fb=&fb2[0]; +#ifdef TFT_DEBUG + col = RGBVAL16(0x00,0x00,0xff); +#endif + break; + case 3: + if (fb == 0) fb = (uint16_t*)((int)malloc(len+64)&0xffffffe0); + //fb=&fb3[0]; +#ifdef TFT_DEBUG + col = RGBVAL16(0xff,0x00,0xff); +#endif + break; + } + blocks[i] = fb; + if (blocks[i] == 0) { + Serial.print("ILI9341 allocaltion failed for block "); + Serial.println(i); + delay(10000); + } + + for (int j=0;jATTR_DST = 1; +#else + dmasettings[i].sourceBuffer(fb, len); + dmasettings[i].destination((uint8_t &) SPI0_PUSHR); + dmasettings[i].TCD->ATTR_DST = 1; +#endif + dmasettings[i].replaceSettingsOnCompletion(dmasettings[i+1]); + dmasettings[i].interruptAtCompletion(); + remaining -= len; + i++; + } + dmasettings[i-1].replaceSettingsOnCompletion(dmasettings[0]); + nbTransfer = i; +#ifdef TFT_DEBUG + Serial.println(nbTransfer); +#endif +} + + +TFT_T_DMA::TFT_T_DMA(uint8_t cs, uint8_t dc, uint8_t rst, uint8_t mosi, uint8_t sclk, uint8_t miso, uint8_t touch_cs, uint8_t touch_irq) +{ + _cs = cs; + _dc = dc; + _rst = rst; + _mosi = mosi; + _sclk = sclk; + _miso = miso; + pinMode(_dc, OUTPUT); + pinMode(_cs, OUTPUT); + digitalWrite(_cs, 1); + digitalWrite(_dc, 1); + if ( (touch_cs != 255) && (touch_irq != 255) ) { + _touch_irq = touch_irq; + _touch_cs = touch_cs; + pinMode(_touch_cs, OUTPUT); + pinMode(touch_irq, INPUT_PULLUP); + digitalWrite(_touch_cs, 1); + } +} + + +void TFT_T_DMA::setArea(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2) { + int dx=0; + int dy=0; +#ifdef ST7789 + if (TFT_REALWIDTH == TFT_REALHEIGHT) + { +#ifdef ROTATE_SCREEN + if (!flipped) { + dy += 80; + } +#else + if (flipped) { + dx += 80; + } +#endif + } +#endif + + digitalWrite(_dc, 0); + SPI.transfer(TFT_CASET); + digitalWrite(_dc, 1); + SPI.transfer16(x1+dx); + digitalWrite(_dc, 1); + SPI.transfer16(x2+dx); + digitalWrite(_dc, 0); + SPI.transfer(TFT_PASET); + digitalWrite(_dc, 1); + SPI.transfer16(y1+dy); + digitalWrite(_dc, 1); + SPI.transfer16(y2+dy); + + digitalWrite(_dc, 0); + SPI.transfer(TFT_RAMWR); + digitalWrite(_dc, 1); + + return; + + + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_cs, 0); + + digitalWrite(_dc, 0); + SPI.transfer(TFT_CASET); + digitalWrite(_dc, 1); + + SPI.transfer16(x1+dx); + SPI.transfer16(x2+dx); + + digitalWrite(_dc, 0); + SPI.transfer(TFT_PASET); + digitalWrite(_dc, 1); + SPI.transfer16(y1+dy); + SPI.transfer16(y2+dy); + + digitalWrite(_dc, 0); + SPI.transfer(TFT_RAMWR); + digitalWrite(_dc, 1); + + digitalWrite(_cs, 1); + SPI.endTransaction(); +} + + + + +void TFT_T_DMA::begin(void) { + SPI.setMOSI(_mosi); + SPI.setMISO(_miso); + SPI.setSCK(_sclk); + SPI.begin(); + + // Initialize display + if (_rst != 0xff) { + pinMode(_rst, OUTPUT); + digitalWrite(_rst, HIGH); + delay(100); + digitalWrite(_rst, LOW); + delay(100); + digitalWrite(_rst, HIGH); + delay(200); + } + + + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + const uint8_t *addr = init_commands; + digitalWrite(_cs, 0); +#ifdef ILI9341 + while (1) { + uint8_t count = *addr++; + if (count-- == 0) break; + + digitalWrite(_dc, 0); + SPI.transfer(*addr++); + + while (count-- > 0) { + digitalWrite(_dc, 1); + SPI.transfer(*addr++); + } + } + + digitalWrite(_dc, 0); + SPI.transfer(ILI9341_SLPOUT); + digitalWrite(_dc, 1); + digitalWrite(_cs, 1); + SPI.endTransaction(); + + digitalWrite(_dc, 1); + digitalWrite(_cs, 1); + SPI.endTransaction(); + + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_dc, 0); + digitalWrite(_cs, 0); + SPI.transfer(ILI9341_DISPON); + digitalWrite(_dc, 1); + digitalWrite(_cs, 1); +#endif +#ifdef ST7789 + uint8_t numCommands, numArgs; + uint16_t ms; + numCommands = *addr++; // Number of commands to follow + while(numCommands--) { // For each command... + digitalWrite(_dc, 0); + SPI.transfer(*addr++); + numArgs = *addr++; // Number of args to follow + ms = numArgs & DELAY; // If hibit set, delay follows args + numArgs &= ~DELAY; // Mask out delay bit + while(numArgs > 1) { // For each argument... + digitalWrite(_dc, 1); + SPI.transfer(*addr++); + numArgs--; + } + + if (numArgs) { + digitalWrite(_dc, 1); + SPI.transfer(*addr++); + } + if(ms) { + ms = *addr++; // Read post-command delay time (ms) + if(ms == 255) ms = 500; // If 255, delay for 500 ms + digitalWrite(_cs, 1); + SPI.endTransaction(); + delay(ms); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_cs, 0); + } + } + digitalWrite(_cs, 1); +#endif + setArea(0, 0, TFT_REALWIDTH-1, TFT_REALHEIGHT-1); + SPI.endTransaction(); + + cancelled = false; + +#ifdef FLIP_SCREEN + flipscreen(true); +#else + flipscreen(false); +#endif +#ifdef ST7789 + if (TFT_REALWIDTH != TFT_REALHEIGHT) + { + flipscreen(true); + } +#endif +}; + + + +void TFT_T_DMA::flipscreen(bool flip) +{ + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_dc, 0); + digitalWrite(_cs, 0); + SPI.transfer(TFT_MADCTL); + digitalWrite(_dc, 1); + if (flip) { + flipped=true; +#ifdef ILI9341 + SPI.transfer(ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR); +#endif +#ifdef ST7789 +#ifdef ROTATE_SCREEN + SPI.transfer(ST77XX_MADCTL_RGB); +#else + SPI.transfer(ST77XX_MADCTL_MY | ST77XX_MADCTL_MV |ST77XX_MADCTL_RGB); +#endif +#endif + } + else { + flipped=false; +#ifdef ILI9341 + SPI.transfer(ILI9341_MADCTL_MX | ILI9341_MADCTL_MY | ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR); +#endif +#ifdef ST7789 +#ifdef ROTATE_SCREEN + SPI.transfer(ST77XX_MADCTL_MX | ST77XX_MADCTL_MY | ST77XX_MADCTL_RGB); +#else + SPI.transfer(ST77XX_MADCTL_MX | ST77XX_MADCTL_MV | ST77XX_MADCTL_RGB); +#endif +#endif + } + digitalWrite(_cs, 1); + SPI.endTransaction(); +} + +boolean TFT_T_DMA::isflipped(void) +{ + return(flipped); +} + + +#define PRREG(x) Serial.print(#x" 0x"); Serial.println(x,HEX) + + +void TFT_T_DMA::startDMA(void) { + curTransfer = 0; + rstop = 0; + //dmatx.begin(true); + dmatx.attachInterrupt(dmaInterrupt); + setDmaStruct(); + setArea((TFT_REALWIDTH-TFT_WIDTH)/2, (TFT_REALHEIGHT-TFT_HEIGHT)/2, (TFT_REALWIDTH-TFT_WIDTH)/2 + TFT_WIDTH-1, (TFT_REALHEIGHT-TFT_HEIGHT)/2+TFT_HEIGHT-1); + fillScreen(RGBVAL16(0x00,0x00,0x00)); + + digitalWrite(_cs, HIGH); + SPI.begin(); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0)); +#if defined(__IMXRT1052__) || defined(__IMXRT1062__) + +#ifdef TFT_DEBUG + PRREG(LPSPI4_CCR); + PRREG(LPSPI4_TCR); + PRREG(LPSPI4_FCR); + Serial.printf("SPI CLOCK %d CCR freq %.1f MHz\n", SPICLOCK, 528. / 7 / ((0xff & LPSPI4_CCR) + 2)); +#endif + LPSPI4_CR &= ~LPSPI_CR_MEN;//disable LPSPI: + LPSPI4_CFGR1 |= LPSPI_CFGR1_NOSTALL; //prevent stall from RX + LPSPI4_TCR = 15; // Framesize 16 Bits + //LPSPI4_FCR = 0; // Fifo Watermark + LPSPI4_DER = LPSPI_DER_TDDE; //TX DMA Request Enable + LPSPI4_CR |= LPSPI_CR_MEN; //enable LPSPI: + dmatx.triggerAtHardwareEvent( DMAMUX_SOURCE_LPSPI4_TX ); +#else + SPI0_RSER |= SPI_RSER_TFFF_DIRS | SPI_RSER_TFFF_RE; // Set ILI_DMA Interrupt Request Select and Enable register + SPI0_MCR &= ~SPI_MCR_HALT; //Start transfers. + SPI0_CTAR0 = SPI0_CTAR1; + (*(volatile uint16_t *)((int)&SPI0_PUSHR + 2)) = (SPI_PUSHR_CTAS(1) | SPI_PUSHR_CONT) >> 16; //Enable 16 Bit Transfers + Continue-Bit + dmatx.triggerAtHardwareEvent(DMAMUX_SOURCE_SPI0_TX ); +#endif + dmatx = dmasettings[0]; + digitalWrite(_cs, 0); + setArea((TFT_REALWIDTH-TFT_WIDTH)/2, (TFT_REALHEIGHT-TFT_HEIGHT)/2, (TFT_REALWIDTH-TFT_WIDTH)/2+TFT_WIDTH-1, (TFT_REALHEIGHT-TFT_HEIGHT)/2+TFT_HEIGHT-1); + digitalWrite(_dc, 0); + SPI.transfer(TFT_RAMWR); + digitalWrite(_dc, 1); + dmatx.enable(); +} + + +void TFT_T_DMA::stopDMA(void) { + rstop = 0; + wait(); + delay(50); + cancelled = false; + dmatx.detachInterrupt(); + fillScreen(RGBVAL16(0x00,0x00,0x00)); + SPI.end(); +#ifdef ST7789 + begin(); +#endif +#ifdef ILI9341 + SPI.begin(); + digitalWrite(_cs, 0); + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + SPI.endTransaction(); + digitalWrite(_cs, 1); + digitalWrite(_dc, 1); +#endif + setArea(0, 0, TFT_REALWIDTH-1, TFT_REALHEIGHT-1); +} + +void TFT_T_DMA::wait(void) { + rstop = 1; + unsigned long m = millis(); + cancelled = true; + while (!rstop) { + if ((millis() - m) > 100) break; + delay(10); + asm volatile("wfi"); + }; + rstop = 0; +} + + +/*********************************************************************************************** + Touch functions + ***********************************************************************************************/ +/* Code based on ... + * + * @file XPT2046.cpp + * @date 19.02.2016 + * @author Markus Sattler + * + * Copyright (c) 2015 Markus Sattler. All rights reserved. + * This file is part of the XPT2046 driver for Arduino. + */ + +#define ADC_MAX 0x0fff + +void TFT_T_DMA::enableTouchIrq() +{ + SPI.beginTransaction(SPI_SETTING); + digitalWrite(_touch_cs, LOW); + const uint8_t buf[4] = { (XPT2046_CFG_START | XPT2046_CFG_12BIT | XPT2046_CFG_DFR | XPT2046_CFG_MUX(XPT2046_MUX_Y)), 0x00, 0x00, 0x00 }; + SPI.transfer((void*)&buf[0],3); + digitalWrite(_touch_cs, HIGH); + SPI.endTransaction(); +} + +//Default callibration for non flipped +#define TX_MIN 30 +#define TY_MIN 20 +#define TX_MAX 300 +#define TY_MAX 220 + +//Default callibration for flipped +#define TFX_MIN 20 +#define TFY_MIN 25 +#define TFX_MAX 288 +#define TFY_MAX 221 + +static uint16_t txMin; +static uint16_t tyMin; +static uint16_t txMax; +static uint16_t tyMax; + + +void TFT_T_DMA::callibrateTouch(uint16_t xMin,uint16_t yMin,uint16_t xMax,uint16_t yMax) { + if ( (xMin >= 0) && (yMin >= 0) && (xMax < 320) && (yMax < 200) ) { + txMin = xMin; + tyMin = yMin; + txMax = xMax; + tyMax = yMax; + } + else { + if (flipped) { + txMin = TFX_MIN; + tyMin = TFY_MIN; + txMax = TFX_MAX; + tyMax = TFY_MAX; + } + else { + txMin = TX_MIN; + tyMin = TY_MIN; + txMax = TX_MAX; + tyMax = TY_MAX; + } + } +} + + +void TFT_T_DMA::readRaw(uint16_t * oX, uint16_t * oY, uint16_t * oZ) { + if ( TOUCH_ENABLED() ) { + uint16_t x = 0; + uint16_t y = 0; + uint16_t z1 = 0; + uint16_t z2 = 0; + uint8_t i = 0; + int16_t xraw=0, yraw=0; + + SPI.beginTransaction(SPI_SETTING); + digitalWrite(_touch_cs, LOW); + + for(; i < 15; i++) { + // SPI requirer 32bit aliment + uint8_t buf[12] = { + (XPT2046_CFG_START | XPT2046_CFG_12BIT | XPT2046_CFG_DFR | XPT2046_CFG_MUX(XPT2046_MUX_Y) | XPT2046_CFG_PWR(3)), 0x00, 0x00, + (XPT2046_CFG_START | XPT2046_CFG_12BIT | XPT2046_CFG_DFR | XPT2046_CFG_MUX(XPT2046_MUX_X) | XPT2046_CFG_PWR(3)), 0x00, 0x00, + (XPT2046_CFG_START | XPT2046_CFG_12BIT | XPT2046_CFG_DFR | XPT2046_CFG_MUX(XPT2046_MUX_Z1)| XPT2046_CFG_PWR(3)), 0x00, 0x00, + (XPT2046_CFG_START | XPT2046_CFG_12BIT | XPT2046_CFG_DFR | XPT2046_CFG_MUX(XPT2046_MUX_Z2)| XPT2046_CFG_PWR(3)), 0x00, 0x00 + }; + SPI.transfer(&buf[0], &buf[0], 12); + y += (buf[1] << 8 | buf[2])>>3; + x += (buf[4] << 8 | buf[5])>>3; + z1 += (buf[7] << 8 | buf[8])>>3; + z2 += (buf[10] << 8 | buf[11])>>3; + } + enableTouchIrq(); + + if(i == 0) { + *oX = 0; + *oY = 0; + *oZ = 0; + } + else { + x /= i; + y /= i; + z1 /= i; + z2 /= i; + } + + digitalWrite(_touch_cs, HIGH); + SPI.endTransaction(); + int z = z1 + ADC_MAX - z2; + if (flipped) { + xraw = x; + yraw = y; + } else { + xraw = ADC_MAX - x; + yraw = ADC_MAX - y; + } + xraw=(xraw*TFT_REALWIDTH)/(ADC_MAX+1); + yraw=(yraw*TFT_REALHEIGHT)/(ADC_MAX+1); + + *oX = xraw; + *oY = yraw; + *oZ = z; + } + else + { + *oX = 0; + *oY = 0; + *oZ = 0; + } +} + +void TFT_T_DMA::readCal(uint16_t * oX, uint16_t * oY, uint16_t * oZ) { + readRaw(oX,oY,oZ); + // callibrate ... + if(*oX >= txMin) *oX = ((*oX - txMin)*TFT_REALWIDTH)/(txMax-txMin); + if(*oY >= tyMin) *oY = ((*oY - tyMin)*TFT_REALHEIGHT)/(tyMax-tyMin); + //Serial.print(*oX); + //Serial.print(" "); + //Serial.println(*oY); +} + + +/*********************************************************************************************** + No DMA functions + ***********************************************************************************************/ +void TFT_T_DMA::fillScreenNoDma(uint16_t color) { + + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_cs, 0); + setArea(0, 0, TFT_REALWIDTH-1, TFT_REALHEIGHT-1); + //digitalWrite(_dc, 0); + //SPI.transfer(TFT_RAMWR); + int i,j; + for (j=0; j(arx+arw)) || ((x+w)(ary+arh)) || ((y+h) arx) && (x<(arx+arw)) ) { + arw = arw - (x-arx); + arx = arx + (x-arx); + } else { + bmp_offx = arx; + } + if ( ((x+w) > arx) && ((x+w)<(arx+arw)) ) { + arw -= (arx+arw-x-w); + } + if ( (y > ary) && (y<(ary+arh)) ) { + arh = arh - (y-ary); + ary = ary + (y-ary); + } else { + bmp_offy = ary; + } + if ( ((y+h) > ary) && ((y+h)<(ary+arh)) ) { + arh -= (ary+arh-y-h); + } + } + + + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_cs, 0); + setArea(arx, ary, arx+arw-1, ary+arh-1); + //digitalWrite(_dc, 0); + //SPI.transfer(TFT_RAMWR); + + bitmap = bitmap + bmp_offy*w + bmp_offx; + for (int row=0;row> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + } + bits = *charpt++; + //digitalWrite(_dc, 1); + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + bits = bits >> 1; + if (bits&0x01) SPI.transfer16(fgcolor); + else SPI.transfer16(bgcolor); + } + x +=8; +#ifdef ILI9341 + digitalWrite(_dc, 0); + SPI.transfer(ILI9341_SLPOUT); + digitalWrite(_dc, 1); +#endif + digitalWrite(_cs, 1); + SPI.endTransaction(); + } + + SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE)); + digitalWrite(_cs, 0); + setArea(0, 0, (TFT_REALWIDTH-1), (TFT_REALHEIGHT-1)); + digitalWrite(_cs, 1); + SPI.endTransaction(); +} + + + + + + +/*********************************************************************************************** + DMA functions + ***********************************************************************************************/ +uint16_t * TFT_T_DMA::getLineBuffer(int j) +{ + uint16_t * block=blocks[j>>6]; + return(&block[(j&0x3F)*TFT_REALWIDTH]); +} + +void TFT_T_DMA::writeScreen(int width, int height, int stride, uint8_t *buf, uint16_t *palette16) { + uint8_t *buffer=buf; + uint8_t *src; + + int i,j,y=0; + if (width*2 <= TFT_REALWIDTH) { + for (j=0; j>6]; + uint16_t * dst=&block[(y&0x3F)*TFT_WIDTH]; + src=buffer; + for (i=0; i>6]; + dst=&block[(y&0x3F)*TFT_WIDTH]; + src=buffer; + for (i=0; i>6]; + uint16_t * dst=&block[(y&0x3F)*TFT_WIDTH+(TFT_WIDTH-width)/2]; + src=buffer; + for (i=0; i>6]; + dst=&block[(y&0x3F)*TFT_WIDTH+(TFT_WIDTH-width)/2]; + src=buffer; + for (i=0; i>6]; + uint16_t * dst=&block[(y&0x3F)*TFT_WIDTH]; + if (width > TFT_WIDTH) { +#ifdef TFT_LINEARINT + int delta = (width/(width-TFT_WIDTH))-1; + int pos = delta; + for (int i=0; i> 8]]; + pos +=step; + } +#endif + } + else if ((width*2) == TFT_WIDTH) { + for (int i=0; i>6]; + uint16_t * dst=&block[(y&0x3F)*TFT_WIDTH]; + if (width > TFT_WIDTH) { +#ifdef TFT_LINEARINT + int delta = (width/(width-TFT_WIDTH))-1; + int pos = delta; + for (int i=0; i> 8]; + pos +=step; + } +#endif + } + else if ((width*2) == TFT_WIDTH) { + for (int i=0; i>6]; + uint16_t * dst=&block[(j&0x3F)*TFT_WIDTH]; + for (i=0; i>6]; + uint16_t * dst=&block[(l&0x3F)*TFT_WIDTH+x]; + for (i=0; i>6]; + dst=&block[(l&0x3F)*TFT_WIDTH+x]; + bits = *charpt; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + l++; + } + block=blocks[l>>6]; + dst=&block[(l&0x3F)*TFT_WIDTH+x]; + bits = *charpt++; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + bits = bits >> 1; + if (bits&0x01) *dst++=fgcolor; + else *dst++=bgcolor; + l++; + } + x +=8; + } +} + +void TFT_T_DMA::drawSprite(int16_t x, int16_t y, const uint16_t *bitmap) { + drawSprite(x,y,bitmap, 0,0,0,0); +} + +void TFT_T_DMA::drawSprite(int16_t x, int16_t y, const uint16_t *bitmap, uint16_t arx, uint16_t ary, uint16_t arw, uint16_t arh) +{ + int bmp_offx = 0; + int bmp_offy = 0; + uint16_t *bmp_ptr; + + int w =*bitmap++; + int h = *bitmap++; + + + if ( (arw == 0) || (arh == 0) ) { + // no crop window + arx = x; + ary = y; + arw = w; + arh = h; + } + else { + if ( (x>(arx+arw)) || ((x+w)(ary+arh)) || ((y+h) arx) && (x<(arx+arw)) ) { + arw = arw - (x-arx); + arx = arx + (x-arx); + } else { + bmp_offx = arx; + } + if ( ((x+w) > arx) && ((x+w)<(arx+arw)) ) { + arw -= (arx+arw-x-w); + } + if ( (y > ary) && (y<(ary+arh)) ) { + arh = arh - (y-ary); + ary = ary + (y-ary); + } else { + bmp_offy = ary; + } + if ( ((y+h) > ary) && ((y+h)<(ary+arh)) ) { + arh -= (ary+arh-y-h); + } + } + + + int l=ary; + bitmap = bitmap + bmp_offy*w + bmp_offx; + for (int row=0;row>6]; + uint16_t * dst=&block[(l&0x3F)*TFT_WIDTH+arx]; + bmp_ptr = (uint16_t*)bitmap; + for (int col=0;col +#include +#include +#endif + +#include "tft_t_dma_config.h" + +#define RGBVAL32(r,g,b) ( (r<<16) | (g<<8) | b ) +#define RGBVAL16(r,g,b) ( (((r>>3)&0x1f)<<11) | (((g>>2)&0x3f)<<5) | (((b>>3)&0x1f)<<0) ) +#define RGBVAL8(r,g,b) ( (((r>>5)&0x07)<<5) | (((g>>5)&0x07)<<2) | (((b>>6)&0x3)<<0) ) +#define R16(rgb) ((rgb>>8)&0xf8) +#define G16(rgb) ((rgb>>3)&0xfc) +#define B16(rgb) ((rgb<<3)&0xf8) + +#define PAL_COLOR_MASK 0xff + +#ifdef LOHRES +#define TFT_WIDTH 240 +#define TFT_REALWIDTH 240 +#else +#define TFT_WIDTH 272 +#define TFT_REALWIDTH 320 +#endif +#define TFT_HEIGHT 228 +#define TFT_REALHEIGHT 240 + +//#define WIDTH 272 +//#define HEIGHT 228 + +#define LINES_PER_BLOCK 64 +#define NR_OF_BLOCK 4 +#define SCREEN_DMA_NUM_SETTINGS NR_OF_BLOCK + + +#ifdef ILI9341 + +#define ILI9341_NOP 0x00 +#define ILI9341_SWRESET 0x01 +#define ILI9341_RDDID 0x04 +#define ILI9341_RDDST 0x09 + +#define ILI9341_SLPIN 0x10 +#define ILI9341_SLPOUT 0x11 +#define ILI9341_PTLON 0x12 +#define ILI9341_NORON 0x13 + +#define ILI9341_RDMODE 0x0A +#define ILI9341_RDMADCTL 0x0B +#define ILI9341_RDPIXFMT 0x0C +#define ILI9341_RDIMGFMT 0x0D +#define ILI9341_RDSELFDIAG 0x0F + +#define ILI9341_INVOFF 0x20 +#define ILI9341_INVON 0x21 +#define ILI9341_GAMMASET 0x26 +#define ILI9341_DISPOFF 0x28 +#define ILI9341_DISPON 0x29 + +#define ILI9341_CASET 0x2A +#define ILI9341_PASET 0x2B +#define ILI9341_RAMWR 0x2C +#define ILI9341_RAMRD 0x2E + +#define ILI9341_PTLAR 0x30 +#define ILI9341_MADCTL 0x36 +#define ILI9341_VSCRSADD 0x37 +#define ILI9341_PIXFMT 0x3A + +#define ILI9341_FRMCTR1 0xB1 +#define ILI9341_FRMCTR2 0xB2 +#define ILI9341_FRMCTR3 0xB3 +#define ILI9341_INVCTR 0xB4 +#define ILI9341_DFUNCTR 0xB6 + +#define ILI9341_PWCTR1 0xC0 +#define ILI9341_PWCTR2 0xC1 +#define ILI9341_PWCTR3 0xC2 +#define ILI9341_PWCTR4 0xC3 +#define ILI9341_PWCTR5 0xC4 +#define ILI9341_VMCTR1 0xC5 +#define ILI9341_VMCTR2 0xC7 + +#define ILI9341_RDID1 0xDA +#define ILI9341_RDID2 0xDB +#define ILI9341_RDID3 0xDC +#define ILI9341_RDID4 0xDD + +#define ILI9341_GMCTRP1 0xE0 +#define ILI9341_GMCTRN1 0xE1 + +#define ILI9341_MADCTL_MY 0x80 +#define ILI9341_MADCTL_MX 0x40 +#define ILI9341_MADCTL_MV 0x20 +#define ILI9341_MADCTL_ML 0x10 +#define ILI9341_MADCTL_RGB 0x00 +#define ILI9341_MADCTL_BGR 0x08 +#define ILI9341_MADCTL_MH 0x04 + +#define TFT_CASET ILI9341_CASET +#define TFT_PASET ILI9341_PASET +#define TFT_RAMWR ILI9341_RAMWR +#define TFT_MADCTL ILI9341_MADCTL + +#endif + + +#ifdef ST7789 + +#define ST7735_NOP 0x00 +#define ST7735_SWRESET 0x01 +#define ST7735_RDDID 0x04 +#define ST7735_RDDST 0x09 + +#define ST7735_SLPIN 0x10 +#define ST7735_SLPOUT 0x11 +#define ST7735_PTLON 0x12 +#define ST7735_NORON 0x13 + +#define ST7735_INVOFF 0x20 +#define ST7735_INVON 0x21 +#define ST7735_DISPOFF 0x28 +#define ST7735_DISPON 0x29 +#define ST7735_CASET 0x2A +#define ST7735_RASET 0x2B +#define ST7735_RAMWR 0x2C +#define ST7735_RAMRD 0x2E + +#define ST7735_PTLAR 0x30 +#define ST7735_COLMOD 0x3A +#define ST7735_MADCTL 0x36 + +#define ST7735_FRMCTR1 0xB1 +#define ST7735_FRMCTR2 0xB2 +#define ST7735_FRMCTR3 0xB3 +#define ST7735_INVCTR 0xB4 +#define ST7735_DISSET5 0xB6 + +#define ST7735_PWCTR1 0xC0 +#define ST7735_PWCTR2 0xC1 +#define ST7735_PWCTR3 0xC2 +#define ST7735_PWCTR4 0xC3 +#define ST7735_PWCTR5 0xC4 +#define ST7735_VMCTR1 0xC5 + +#define ST7735_RDID1 0xDA +#define ST7735_RDID2 0xDB +#define ST7735_RDID3 0xDC +#define ST7735_RDID4 0xDD + +#define ST7735_PWCTR6 0xFC + +#define ST7735_GMCTRP1 0xE0 +#define ST7735_GMCTRN1 0xE1 + +#define ST77XX_MADCTL_MY 0x80 +#define ST77XX_MADCTL_MX 0x40 +#define ST77XX_MADCTL_MV 0x20 +#define ST77XX_MADCTL_ML 0x10 +#define ST77XX_MADCTL_RGB 0x00 +#define ST77XX_MADCTL_BGR 0x08 +#define ST77XX_MADCTL_MH 0x04 + +#define TFT_CASET ST7735_CASET +#define TFT_PASET ST7735_RASET +#define TFT_RAMWR ST7735_RAMWR +#define TFT_MADCTL ST7735_MADCTL + +#endif + + + +#ifdef __cplusplus + +class TFT_T_DMA +{ + public: + TFT_T_DMA(uint8_t _CS, uint8_t _DC, uint8_t _RST = 255, uint8_t _MOSI=11, uint8_t _SCLK=13, uint8_t _MISO=12, uint8_t touch_cs=38, uint8_t touch_irq=37); + + void setArea(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2); + void begin(void); + void flipscreen(bool flip); + boolean isflipped(void); + void startDMA(void); + void stopDMA(); + + // Touch screen functions + #define TOUCH_ENABLED() ((_touch_cs != 255) && (_touch_irq != 255)) + bool isTouching(void) { return ((!TOUCH_ENABLED())?false:(digitalRead(_touch_irq) == LOW)); } + void readRaw(uint16_t * oX, uint16_t * oY, uint16_t * oZ); + void readCal(uint16_t * oX, uint16_t * oY, uint16_t * oZ); + void callibrateTouch(uint16_t xMin,uint16_t yMin,uint16_t xMax,uint16_t yMax); + + // NoDMA functions + void writeScreenNoDma(const uint16_t *pcolors); + void fillScreenNoDma(uint16_t color); + void drawTextNoDma(int16_t x, int16_t y, const char * text, uint16_t fgcolor, uint16_t bgcolor, bool doublesize); + void drawRectNoDma(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); + void drawSpriteNoDma(int16_t x, int16_t y, const uint16_t *bitmap); + void drawSpriteNoDma(int16_t x, int16_t y, const uint16_t *bitmap, uint16_t croparx, uint16_t cropary, uint16_t croparw, uint16_t croparh); + + // DMA functions + uint16_t * getLineBuffer(int j); + void writeScreen(int width, int height, int stride, uint8_t *buffer, uint16_t *palette16); + void writeLine(int width, int height, int stride, uint8_t *buffer, uint16_t *palette16); + void writeLine(int width, int height, int y, uint16_t *buf); + void fillScreen(uint16_t color); + void drawText(int16_t x, int16_t y, const char * text, uint16_t fgcolor, uint16_t bgcolor, bool doublesize); + void drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); + void drawSprite(int16_t x, int16_t y, const uint16_t *bitmap); + void drawSprite(int16_t x, int16_t y, const uint16_t *bitmap, uint16_t croparx, uint16_t cropary, uint16_t croparw, uint16_t croparh); + + + protected: + uint8_t _rst, _cs, _dc; + uint8_t _miso, _mosi, _sclk; + uint8_t _touch_irq=255, _touch_cs=255; + bool flipped=false; + + void wait(void); + void enableTouchIrq(); +}; + +#endif +#endif + diff --git a/MCUME_teensy/teensymsx/tft_t_dma_config.h b/MCUME_teensy/teensymsx/tft_t_dma_config.h new file mode 100644 index 0000000..d8200a2 --- /dev/null +++ b/MCUME_teensy/teensymsx/tft_t_dma_config.h @@ -0,0 +1,13 @@ +#include "platform_config.h" + +//#define ST7789 1 +//#define ILI9341 1 + +#define TFT_LINEARINT 1 +#define LINEARINT_HACK 1 + +//#define FLIP_SCREEN 1 +//#define TFT_DEBUG 1 +#if defined(__IMXRT1052__) || defined(__IMXRT1062__) +#define TFT_STATICFB 1 +#endif diff --git a/MCUME_teensy/teensyspeccy/platform_config.h b/MCUME_teensy/teensyspeccy/platform_config.h index c6ccb01..430c11c 100644 --- a/MCUME_teensy/teensyspeccy/platform_config.h +++ b/MCUME_teensy/teensyspeccy/platform_config.h @@ -3,9 +3,9 @@ //#define OLD_LAYOUT 1 -#define ILI9341 1 -//#define ST7789 1 -//#define SWAP_JOYSTICK 1 +//#define ILI9341 1 +#define ST7789 1 +#define SWAP_JOYSTICK 1 //#define LOHRES 1 //#define ROTATE_SCREEN 1 #define EXTERNAL_SD 1 diff --git a/images/msx.png b/images/msx.png new file mode 100644 index 0000000..cc7083d Binary files /dev/null and b/images/msx.png differ diff --git a/images/msx1.png b/images/msx1.png new file mode 100644 index 0000000..e46ecea Binary files /dev/null and b/images/msx1.png differ diff --git a/images/msx2.png b/images/msx2.png new file mode 100644 index 0000000..79a947e Binary files /dev/null and b/images/msx2.png differ diff --git a/images/msx3.png b/images/msx3.png new file mode 100644 index 0000000..ec5e38f Binary files /dev/null and b/images/msx3.png differ diff --git a/images/msx4.png b/images/msx4.png new file mode 100644 index 0000000..3fe9469 Binary files /dev/null and b/images/msx4.png differ