diff --git a/thirdparty/adlmidi/CMakeLists.txt b/thirdparty/adlmidi/CMakeLists.txt index c95bfcb..80e6bf7 100644 --- a/thirdparty/adlmidi/CMakeLists.txt +++ b/thirdparty/adlmidi/CMakeLists.txt @@ -6,18 +6,20 @@ use_fast_math() add_definitions(-DADLMIDI_DISABLE_MIDI_SEQUENCER) add_library( adl STATIC - adldata.cpp - adlmidi.cpp - adlmidi_load.cpp adlmidi_midiplay.cpp adlmidi_opl3.cpp adlmidi_private.cpp + adlmidi.cpp + adlmidi_load.cpp + inst_db.cpp + chips/opal_opl3.cpp chips/dosbox/dbopl.cpp + chips/nuked_opl3_v174.cpp + chips/java_opl3.cpp chips/dosbox_opl3.cpp + chips/nuked_opl3.cpp chips/nuked/nukedopl3_174.c chips/nuked/nukedopl3.c - chips/nuked_opl3.cpp - chips/nuked_opl3_v174.cpp wopl/wopl_file.c ) target_link_libraries( adl ) diff --git a/thirdparty/adlmidi/adldata.cpp b/thirdparty/adlmidi/adldata.cpp deleted file mode 100644 index 5585089..0000000 --- a/thirdparty/adlmidi/adldata.cpp +++ /dev/null @@ -1,10748 +0,0 @@ -#include "adldata.hh" - -/* THIS OPL-3 FM INSTRUMENT DATA IS AUTOMATICALLY GENERATED - * FROM A NUMBER OF SOURCES, MOSTLY PC GAMES. - * PREPROCESSED, CONVERTED, AND POSTPROCESSED OFF-SCREEN. - */ -const adldata adl[4528] = -{ // ,---------+-------- Wave select settings - // | ,-------ч-+------ Sustain/release rates - // | | ,-----ч-ч-+---- Attack/decay rates - // | | | ,---ч-ч-ч-+-- AM/VIB/EG/KSR/Multiple bits - // | | | | | | | | - // | | | | | | | | ,----+-- KSL/attenuation settings - // | | | | | | | | | | ,----- Feedback/connection bits - // | | | | | | | | | | | ,----- Fine tune - - // | | | | | | | | | | | | - // | | | | | | | | | | | | - { 0x0F4F201,0x0F7F201, 0x8F,0x06, 0x8, +0 }, - { 0x0F4F201,0x0F7F201, 0x4B,0x00, 0x8, +0 }, - { 0x0F4F201,0x0F6F201, 0x49,0x00, 0x8, +0 }, - { 0x0F7F281,0x0F7F241, 0x12,0x00, 0x6, +0 }, - { 0x0F7F101,0x0F7F201, 0x57,0x00, 0x0, +0 }, - { 0x0F7F101,0x0F7F201, 0x93,0x00, 0x0, +0 }, - { 0x0F2A101,0x0F5F216, 0x80,0x0E, 0x8, +0 }, - { 0x0F8C201,0x0F8C201, 0x92,0x00, 0xA, +0 }, - { 0x0F4F60C,0x0F5F381, 0x5C,0x00, 0x0, +0 }, - { 0x0F2F307,0x0F1F211, 0x97,0x80, 0x2, +0 }, - { 0x0F45417,0x0F4F401, 0x21,0x00, 0x2, +0 }, - { 0x0F6F398,0x0F6F281, 0x62,0x00, 0x0, +0 }, - { 0x0F6F618,0x0F7E701, 0x23,0x00, 0x0, +0 }, - { 0x0F6F615,0x0F6F601, 0x91,0x00, 0x4, +0 }, - { 0x0F3D345,0x0F3A381, 0x59,0x80, 0xC, +0 }, - { 0x1F57503,0x0F5B581, 0x49,0x80, 0x4, +0 }, - { 0x014F671,0x007F131, 0x92,0x00, 0x2, +0 }, - { 0x058C772,0x008C730, 0x14,0x00, 0x2, +0 }, - { 0x018AA70,0x0088AB1, 0x44,0x00, 0x4, +0 }, - { 0x1239723,0x01455B1, 0x93,0x00, 0x4, +0 }, - { 0x1049761,0x00455B1, 0x13,0x80, 0x0, +0 }, - { 0x12A9824,0x01A46B1, 0x48,0x00, 0xC, +0 }, - { 0x1069161,0x0076121, 0x13,0x00, 0xA, +0 }, - { 0x0067121,0x00761A1, 0x13,0x89, 0x6, +0 }, - { 0x194F302,0x0C8F341, 0x9C,0x80, 0xC, +0 }, - { 0x19AF303,0x0E7F111, 0x54,0x00, 0xC, +0 }, - { 0x03AF123,0x0F8F221, 0x5F,0x00, 0x0, +0 }, - { 0x122F603,0x0F8F321, 0x87,0x80, 0x6, +0 }, - { 0x054F903,0x03AF621, 0x47,0x00, 0x0, +0 }, - { 0x1419123,0x0198421, 0x4A,0x05, 0x8, +0 }, - { 0x1199523,0x0199421, 0x4A,0x00, 0x8, +0 }, - { 0x04F2009,0x0F8D184, 0xA1,0x80, 0x8, +0 }, - { 0x0069421,0x0A6C3A2, 0x1E,0x00, 0x2, +0 }, - { 0x028F131,0x018F131, 0x12,0x00, 0xA, +0 }, - { 0x0E8F131,0x078F131, 0x8D,0x00, 0xA, +0 }, - { 0x0285131,0x0487132, 0x5B,0x00, 0xC, +0 }, - { 0x09AA101,0x0DFF221, 0x8B,0x40, 0x8, +0 }, - { 0x016A221,0x0DFA121, 0x8B,0x08, 0x8, +0 }, - { 0x0E8F431,0x078F131, 0x8B,0x00, 0xA, +0 }, - { 0x113DD31,0x0265621, 0x15,0x00, 0x8, +0 }, - { 0x113DD31,0x0066621, 0x16,0x00, 0x8, +0 }, - { 0x11CD171,0x00C6131, 0x49,0x00, 0x8, +0 }, - { 0x1127121,0x0067223, 0x4D,0x80, 0x2, +0 }, - { 0x121F1F1,0x0166FE1, 0x40,0x00, 0x2, +0 }, - { 0x175F502,0x0358501, 0x1A,0x80, 0x0, +0 }, - { 0x175F502,0x0F4F301, 0x1D,0x80, 0x0, +0 }, - { 0x105F510,0x0C3F211, 0x41,0x00, 0x2, +0 }, - { 0x125B121,0x00872A2, 0x9B,0x01, 0xE, +0 }, - { 0x1037FA1,0x1073F21, 0x98,0x00, 0x0, +0 }, - { 0x012C1A1,0x0054F61, 0x93,0x00, 0xA, +0 }, - { 0x022C121,0x0054F61, 0x18,0x00, 0xC, +0 }, - { 0x015F431,0x0058A72, 0x5B,0x83, 0x0, +0 }, - { 0x03974A1,0x0677161, 0x90,0x00, 0x0, +0 }, - { 0x0055471,0x0057A72, 0x57,0x00, 0xC, +0 }, - { 0x0635490,0x045A541, 0x00,0x00, 0x8, +0 }, - { 0x0178521,0x0098F21, 0x92,0x01, 0xC, +0 }, - { 0x0177521,0x0098F21, 0x94,0x05, 0xC, +0 }, - { 0x0157621,0x0378261, 0x94,0x00, 0xC, +0 }, - { 0x1179E31,0x12C6221, 0x43,0x00, 0x2, +0 }, - { 0x06A6121,0x00A7F21, 0x9B,0x00, 0x2, +0 }, - { 0x01F7561,0x00F7422, 0x8A,0x06, 0x8, +0 }, - { 0x15572A1,0x0187121, 0x86,0x83, 0x0, +0 }, - { 0x03C5421,0x01CA621, 0x4D,0x00, 0x8, +0 }, - { 0x1029331,0x00B7261, 0x8F,0x00, 0x8, +0 }, - { 0x1039331,0x0097261, 0x8E,0x00, 0x8, +0 }, - { 0x1039331,0x0098261, 0x91,0x00, 0xA, +0 }, - { 0x10F9331,0x00F7261, 0x8E,0x00, 0xA, +0 }, - { 0x116AA21,0x00A8F21, 0x4B,0x00, 0x8, +0 }, - { 0x1177E31,0x10C8B21, 0x90,0x00, 0x6, +0 }, - { 0x1197531,0x0196132, 0x81,0x00, 0x0, +0 }, - { 0x0219B32,0x0177221, 0x90,0x00, 0x4, +0 }, - { 0x05F85E1,0x01A65E1, 0x1F,0x00, 0x0, +0 }, - { 0x05F88E1,0x01A65E1, 0x46,0x00, 0x0, +0 }, - { 0x01F75A1,0x00A7521, 0x9C,0x00, 0x2, +0 }, - { 0x0588431,0x01A6521, 0x8B,0x00, 0x0, +0 }, - { 0x05666E1,0x02665A1, 0x4C,0x00, 0x0, +0 }, - { 0x0467662,0x03655A1, 0xCB,0x00, 0x0, +0 }, - { 0x0075762,0x00756A1, 0x99,0x00, 0xB, +0 }, - { 0x0077762,0x00776A1, 0x93,0x00, 0xB, +0 }, - { 0x203FF22,0x00FFF21, 0x59,0x00, 0x0, +0 }, - { 0x10FFF21,0x10FFF21, 0x0E,0x00, 0x0, +0 }, - { 0x0558622,0x0186421, 0x46,0x80, 0x0, +0 }, - { 0x0126621,0x00A96A1, 0x45,0x00, 0x0, +0 }, - { 0x12A9221,0x02A9122, 0x8B,0x00, 0x0, +0 }, - { 0x005DFA2,0x0076F61, 0x9E,0x40, 0x2, +0 }, - { 0x001EF20,0x2068F60, 0x1A,0x00, 0x0, +0 }, - { 0x029F121,0x009F421, 0x8F,0x80, 0xA, +0 }, - { 0x0945377,0x005A0A1, 0xA5,0x00, 0x2, +0 }, - { 0x011A861,0x00325B1, 0x1F,0x80, 0xA, +0 }, - { 0x0349161,0x0165561, 0x17,0x00, 0xC, +0 }, - { 0x0015471,0x0036A72, 0x5D,0x00, 0x0, +0 }, - { 0x0432121,0x03542A2, 0x97,0x00, 0x8, +0 }, - { 0x177A1A1,0x1473121, 0x1C,0x00, 0x0, +0 }, - { 0x0331121,0x0254261, 0x89,0x03, 0xA, +0 }, - { 0x14711A1,0x007CF21, 0x15,0x00, 0x0, +0 }, - { 0x0F6F83A,0x0028651, 0xCE,0x00, 0x2, +0 }, - { 0x1232121,0x0134121, 0x15,0x00, 0x0, +0 }, - { 0x0957406,0x072A501, 0x5B,0x00, 0x0, +0 }, - { 0x081B122,0x026F261, 0x92,0x83, 0xC, +0 }, - { 0x151F141,0x0F5F242, 0x4D,0x00, 0x0, +0 }, - { 0x1511161,0x01311A3, 0x94,0x80, 0x6, +0 }, - { 0x0311161,0x0031DA1, 0x8C,0x80, 0x6, +0 }, - { 0x173F3A4,0x0238161, 0x4C,0x00, 0x4, +0 }, - { 0x053D202,0x1F6F207, 0x85,0x03, 0x0, +0 }, - { 0x111A311,0x0E5A213, 0x0C,0x80, 0x0, +0 }, - { 0x141F611,0x2E6F211, 0x06,0x00, 0x4, +0 }, - { 0x032D493,0x111EB91, 0x91,0x00, 0x8, +0 }, - { 0x056FA04,0x005C201, 0x4F,0x00, 0xC, +0 }, - { 0x0207C21,0x10C6F22, 0x49,0x00, 0x6, +0 }, - { 0x133DD31,0x0165621, 0x85,0x00, 0xA, +0 }, - { 0x205DA20,0x00B8F21, 0x04,0x81, 0x6, +0 }, - { 0x0E5F105,0x0E5C303, 0x6A,0x80, 0x6, +0 }, - { 0x026EC07,0x016F802, 0x15,0x00, 0xA, +0 }, - { 0x0356705,0x005DF01, 0x9D,0x00, 0x8, +0 }, - { 0x028FA18,0x0E5F812, 0x96,0x00, 0xA, +0 }, - { 0x007A810,0x003FA00, 0x86,0x03, 0x6, +0 }, - { 0x247F811,0x003F310, 0x41,0x03, 0x4, +0 }, - { 0x206F101,0x002F310, 0x8E,0x00, 0xE, +0 }, - { 0x0001F0E,0x3FF1FC0, 0x00,0x00, 0xE, +0 }, - { 0x024F806,0x2845603, 0x80,0x88, 0xE, +0 }, - { 0x000F80E,0x30434D0, 0x00,0x05, 0xE, +0 }, - { 0x000F60E,0x3021FC0, 0x00,0x00, 0xE, +0 }, - { 0x0A337D5,0x03756DA, 0x95,0x40, 0x0, +0 }, - { 0x261B235,0x015F414, 0x5C,0x08, 0xA, +0 }, - { 0x000F60E,0x3F54FD0, 0x00,0x00, 0xE, +0 }, - { 0x001FF26,0x11612E4, 0x00,0x00, 0xE, +0 }, - { 0x0F0F300,0x2C9F600, 0x00,0x00, 0xE, +0 }, - { 0x277F810,0x006F311, 0x44,0x00, 0x8, +0 }, - { 0x0FFF902,0x0FFF811, 0x07,0x00, 0x8, +0 }, - { 0x205FC00,0x017FA00, 0x00,0x00, 0xE, +0 }, - { 0x007FF00,0x008FF01, 0x02,0x00, 0x0, +0 }, - { 0x00CF600,0x006F600, 0x00,0x00, 0x4, +0 }, - { 0x008F60C,0x247FB12, 0x00,0x00, 0xA, +0 }, - { 0x008F60C,0x2477B12, 0x00,0x05, 0xA, +0 }, - { 0x002F60C,0x243CB12, 0x00,0x00, 0xA, +0 }, - { 0x000F60E,0x3029FD0, 0x00,0x00, 0xE, +0 }, - { 0x042F80E,0x3E4F407, 0x08,0x4A, 0xE, +0 }, - { 0x030F50E,0x0029FD0, 0x00,0x0A, 0xE, +0 }, - { 0x3E4E40E,0x1E5F507, 0x0A,0x5D, 0x6, +0 }, - { 0x004B402,0x0F79705, 0x03,0x0A, 0xE, +0 }, - { 0x000F64E,0x3029F9E, 0x00,0x00, 0xE, +0 }, - { 0x237F811,0x005F310, 0x45,0x08, 0x8, +0 }, - { 0x303FF80,0x014FF10, 0x00,0x0D, 0xC, +0 }, - { 0x00CF506,0x008F502, 0x0B,0x00, 0x6, +0 }, - { 0x0BFFA01,0x097C802, 0x00,0x00, 0x7, +0 }, - { 0x087FA01,0x0B7FA01, 0x51,0x00, 0x6, +0 }, - { 0x08DFA01,0x0B8F802, 0x54,0x00, 0x6, +0 }, - { 0x088FA01,0x0B6F802, 0x59,0x00, 0x6, +0 }, - { 0x30AF901,0x006FA00, 0x00,0x00, 0xE, +0 }, - { 0x389F900,0x06CF600, 0x80,0x00, 0xE, +0 }, - { 0x388F803,0x0B6F60C, 0x80,0x08, 0xF, +0 }, - { 0x388F803,0x0B6F60C, 0x85,0x00, 0xF, +0 }, - { 0x04F760E,0x2187700, 0x40,0x08, 0xE, +0 }, - { 0x049C80E,0x2699B03, 0x40,0x00, 0xE, +0 }, - { 0x305ADD7,0x0058DC7, 0xDC,0x00, 0xE, +0 }, - { 0x304A8D7,0x00488C7, 0xDC,0x00, 0xE, +0 }, - { 0x306F680,0x3176711, 0x00,0x00, 0xE, +0 }, - { 0x205F580,0x3164611, 0x00,0x09, 0xE, +0 }, - { 0x0F40006,0x0F5F715, 0x3F,0x00, 0x1, +0 }, - { 0x3F40006,0x0F5F712, 0x3F,0x00, 0x0, +0 }, - { 0x0F40006,0x0F5F712, 0x3F,0x00, 0x1, +0 }, - { 0x0E76701,0x0077502, 0x58,0x00, 0x0, +0 }, - { 0x048F841,0x0057542, 0x45,0x08, 0x0, +0 }, - { 0x3F0E00A,0x005FF1E, 0x40,0x4E, 0x8, +0 }, - { 0x3F0E00A,0x002FF1E, 0x7C,0x52, 0x8, +0 }, - { 0x04A7A0E,0x21B7B00, 0x40,0x08, 0xE, +0 }, - { 0x3E4E40E,0x1395507, 0x0A,0x40, 0x6, +0 }, - { 0x332F905,0x0A5D604, 0x05,0x40, 0xE, +0 }, - { 0x3F30002,0x0F5F715, 0x3F,0x00, 0x8, +0 }, - { 0x08DFA01,0x0B5F802, 0x4F,0x00, 0x7, +0 }, - { 0x054F231,0x056F221, 0x4B,0x00, 0x8, +0 }, - { 0x03BF2B1,0x00BF361, 0x0E,0x00, 0x6, +0 }, - { 0x0E7F21C,0x0B8F201, 0x6F,0x80, 0xC, +0 }, - { 0x0E5B111,0x0B8F211, 0x9C,0x80, 0xD, +0 }, - { 0x0E7C21C,0x0B8F301, 0x3A,0x80, 0x0, +0 }, - { 0x0F5B111,0x0D8F211, 0x1B,0x80, 0x1, +0 }, - { 0x031F031,0x037F234, 0x90,0x9F, 0x8, +0 }, - { 0x451F324,0x497F211, 0x1C,0x00, 0x8, +0 }, - { 0x010A831,0x1B9D234, 0x0A,0x03, 0x6, +0 }, - { 0x0E6CE02,0x0E6F401, 0x25,0x00, 0x0, +0 }, - { 0x0E6F507,0x0E5F341, 0xA1,0x00, 0x1, +0 }, - { 0x0045617,0x004F601, 0x21,0x00, 0x2, +0 }, - { 0x055F718,0x0D8E521, 0x23,0x00, 0x0, +0 }, - { 0x0D6F90A,0x0D6F784, 0x53,0x80, 0xA, +0 }, - { 0x0A6F615,0x0E6F601, 0x91,0x00, 0xB, +0 }, - { 0x0B3D441,0x0B4C280, 0x8A,0x13, 0x4, +0 }, - { 0x082D345,0x0E3A381, 0x59,0x80, 0x5, +0 }, - { 0x1557403,0x005B381, 0x49,0x80, 0x4, +0 }, - { 0x02FA2A0,0x02FA522, 0x85,0x9E, 0x7, +0 }, - { 0x02FA5A2,0x02FA128, 0x83,0x95, 0x7, +0 }, - { 0x02A91A0,0x03AC821, 0x85,0x0B, 0x7, +0 }, - { 0x03AC620,0x05AF621, 0x81,0x80, 0x7, +0 }, - { 0x12AA6E3,0x00AAF61, 0x56,0x83, 0x8, -12 }, - { 0x00AAFE1,0x00AAF62, 0x91,0x83, 0x9, -12 }, - { 0x10BF024,0x20B5030, 0x12,0x00, 0x1, +0 }, - { 0x71A7223,0x02A7221, 0xAC,0x83, 0x0, +0 }, - { 0x41A6223,0x02A62A1, 0x22,0x00, 0x1, +0 }, - { 0x006FF25,0x005FF23, 0xA1,0x2F, 0xA, +0 }, - { 0x405FFA1,0x0096F22, 0x1F,0x80, 0xA, +0 }, - { 0x11A6223,0x02A7221, 0x19,0x80, 0xC, +0 }, - { 0x41A6223,0x02A7222, 0x1E,0x83, 0xD, +0 }, - { 0x074F302,0x0B8F341, 0x9C,0x80, 0xA, +0 }, - { 0x274D302,0x0B8D382, 0xA5,0x40, 0xB, +0 }, - { 0x2F6F234,0x0F7F231, 0x5B,0x9E, 0xC, +0 }, - { 0x0F7F223,0x0E7F111, 0xAB,0x00, 0xC, +0 }, - { 0x0FAF322,0x0FAF223, 0x53,0x66, 0xA, +0 }, - { 0x0FAC221,0x0F7C221, 0xA7,0x00, 0xA, +0 }, - { 0x022FA02,0x0F3F301, 0x4C,0x97, 0x8, +0 }, - { 0x1F3C204,0x0F7C111, 0x9D,0x00, 0x8, +0 }, - { 0x0AFC711,0x0F8F501, 0x87,0x00, 0x8, +0 }, - { 0x098C301,0x0F8C302, 0x18,0x00, 0x9, +0 }, - { 0x0F2B913,0x0119102, 0x0D,0x1A, 0xA, +0 }, - { 0x74A9221,0x02A9122, 0x8F,0x00, 0xA, +0 }, - { 0x103FF80,0x3FFF021, 0x01,0x00, 0x8, +0 }, - { 0x04F2009,0x0F8D104, 0xA1,0x80, 0x8, +0 }, - { 0x2F8F802,0x0F8F602, 0x87,0x00, 0x9, +0 }, - { 0x015A701,0x0C8A301, 0x4D,0x00, 0x2, +0 }, - { 0x0317101,0x0C87301, 0x93,0x00, 0x3, +0 }, - { 0x0E5F111,0x0E5F312, 0xA8,0x57, 0x4, +0 }, - { 0x0E5E111,0x0E6E111, 0x97,0x00, 0x4, +0 }, - { 0x0C7F001,0x027F101, 0xB3,0x16, 0x6, +0 }, - { 0x027F101,0x028F101, 0x16,0x00, 0x6, +0 }, - { 0x00C0300,0x024FA20, 0x30,0x03, 0x6, +12 }, - { 0x024F820,0x056F510, 0x12,0x00, 0x6, +0 }, - { 0x0EBF431,0x07AF131, 0x8B,0x00, 0xA, +0 }, - { 0x1C8F621,0x0C8F101, 0x1C,0x1F, 0xA, +0 }, - { 0x0425401,0x0C8F201, 0x12,0x00, 0xA, +0 }, - { 0x0035131,0x0675461, 0x1C,0x80, 0xE, +0 }, - { 0x21351A0,0x2275360, 0x98,0x01, 0xE, +0 }, - { 0x513DD31,0x0265621, 0x95,0x00, 0x8, +0 }, - { 0x1038D13,0x0866605, 0x95,0x8C, 0x9, +0 }, - { 0x243CC70,0x21774A0, 0x92,0x03, 0xE, +0 }, - { 0x007BF21,0x1076F21, 0x95,0x00, 0xF, +0 }, - { 0x515C261,0x0056FA1, 0x97,0x00, 0x6, +0 }, - { 0x08FB563,0x08FB5A5, 0x13,0x94, 0x7, +0 }, - { 0x0848523,0x0748212, 0xA7,0xA4, 0xE, +0 }, - { 0x0748202,0x0358511, 0x27,0x00, 0xE, +0 }, - { 0x0748202,0x0338411, 0x27,0x00, 0xE, +0 }, - { 0x005F511,0x0C3F212, 0x01,0x1E, 0x3, +0 }, - { 0x2036130,0x21764A0, 0x98,0x03, 0xE, +0 }, - { 0x1176561,0x0176521, 0x92,0x00, 0xF, +0 }, - { 0x2234130,0x2174460, 0x98,0x01, 0xE, +0 }, - { 0x1037FA1,0x1073F21, 0x98,0x00, 0xF, +0 }, - { 0x125B121,0x0087262, 0x9B,0x01, 0xE, +0 }, - { 0x001D3E1,0x0396262, 0xCA,0x83, 0x6, +0 }, - { 0x2197320,0x0297563, 0x22,0x02, 0xE, +0 }, - { 0x2686500,0x613C500, 0x00,0x00, 0xB, +0 }, - { 0x606C800,0x3077400, 0x00,0x00, 0xB, +0 }, - { 0x0157620,0x0378261, 0x94,0x00, 0xC, +12 }, - { 0x02661B1,0x0266171, 0xD3,0x80, 0xD, +0 }, - { 0x00B5131,0x13BB261, 0x1C,0x00, 0xE, +0 }, - { 0x0265121,0x007F021, 0x18,0x00, 0xA, +0 }, - { 0x0257221,0x00A7F21, 0x16,0x05, 0xC, +0 }, - { 0x0357A21,0x03A7A21, 0x1D,0x09, 0xD, +0 }, - { 0x035C221,0x00ACF61, 0x16,0x09, 0xE, +0 }, - { 0x04574A1,0x0087F21, 0x8A,0x00, 0xF, +0 }, - { 0x01A52A1,0x01B8F61, 0x97,0x00, 0xC, +0 }, - { 0x01A7521,0x01B8F21, 0xA1,0x00, 0xD, +0 }, - { 0x20F9331,0x00F72A1, 0x96,0x00, 0x8, +0 }, - { 0x0078521,0x1278431, 0x96,0x00, 0x9, +0 }, - { 0x1039331,0x00972A1, 0x8E,0x00, 0x8, +0 }, - { 0x006C524,0x1276431, 0xA1,0x00, 0x9, +0 }, - { 0x10693B1,0x0067271, 0x8E,0x00, 0xA, +0 }, - { 0x0088521,0x02884B1, 0x5D,0x00, 0xB, +0 }, - { 0x10F9331,0x00F7272, 0x93,0x00, 0xC, +0 }, - { 0x0068522,0x01684B1, 0x61,0x00, 0xD, +0 }, - { 0x02AA961,0x036A863, 0xA3,0x52, 0x8, +0 }, - { 0x016AA61,0x00A8F61, 0x94,0x80, 0x8, +0 }, - { 0x0297721,0x1267A33, 0x21,0x55, 0x2, +0 }, - { 0x0167AA1,0x0197A22, 0x93,0x00, 0x2, +0 }, - { 0x1077B21,0x0007F22, 0x2B,0x57, 0xA, +0 }, - { 0x0197531,0x0196172, 0x51,0x00, 0xA, +0 }, - { 0x0219B32,0x0177221, 0x90,0x00, 0x8, +0 }, - { 0x0219B32,0x0177221, 0x90,0x13, 0x9, +0 }, - { 0x029C9A4,0x0086F21, 0xA2,0x80, 0xC, +0 }, - { 0x015CAA2,0x0086F21, 0xAA,0x00, 0xD, +0 }, - { 0x0AA7724,0x0173431, 0x5B,0x00, 0xE, +0 }, - { 0x0C676A1,0x0868726, 0x0D,0x59, 0xF, +0 }, - { 0x0566622,0x02665A1, 0x56,0x00, 0xE, +0 }, - { 0x0019F26,0x0487664, 0x00,0x25, 0xE, +0 }, - { 0x0465622,0x03645A1, 0xCB,0x00, 0xF, +0 }, - { 0x11467E1,0x0175461, 0x67,0x00, 0xC, +0 }, - { 0x1146721,0x0164421, 0x6D,0x00, 0xD, +0 }, - { 0x00F4032,0x0097021, 0xDF,0x00, 0x0, +0 }, - { 0x00FFF21,0x00FFF21, 0x35,0xB7, 0x4, +0 }, - { 0x00FFF21,0x60FFF21, 0xB9,0x80, 0x4, +0 }, - { 0x00FFF21,0x00FFF21, 0x36,0x1B, 0xA, +0 }, - { 0x00FFF21,0x409CF61, 0x1D,0x00, 0xA, +0 }, - { 0x0658722,0x0186421, 0x46,0x80, 0x0, +0 }, - { 0x4F2B912,0x0119101, 0x0D,0x1A, 0xA, +0 }, - { 0x12A9221,0x02A9122, 0x99,0x00, 0xA, +0 }, - { 0x0157D61,0x01572B1, 0x40,0xA3, 0xE, +0 }, - { 0x005DFA2,0x0077F61, 0x5D,0x40, 0xF, +0 }, - { 0x001FF20,0x4068F61, 0x36,0x00, 0x8, +0 }, - { 0x00FFF21,0x4078F61, 0x27,0x00, 0x9, +0 }, - { 0x1035317,0x004F608, 0x1A,0x0D, 0x2, +0 }, - { 0x03241A1,0x0156161, 0x9D,0x00, 0x3, +0 }, - { 0x031A181,0x0032571, 0xA1,0x00, 0xB, +0 }, - { 0x0141161,0x0165561, 0x17,0x00, 0xC, +0 }, - { 0x445C361,0x025C361, 0x14,0x00, 0xD, +0 }, - { 0x021542A,0x0136A27, 0x80,0xA6, 0xE, +0 }, - { 0x0015431,0x0036A72, 0x5D,0x00, 0xF, +0 }, - { 0x0331121,0x02542A1, 0x89,0x03, 0xA, +0 }, - { 0x1471161,0x007CF21, 0x15,0x00, 0x0, +0 }, - { 0x1B1F2DE,0x0B281D1, 0x57,0x0A, 0xE, +0 }, - { 0x2322121,0x0133220, 0x8C,0x97, 0x6, +0 }, - { 0x1031121,0x0133121, 0x0E,0x00, 0x7, +0 }, - { 0x0F6F358,0x0F6F241, 0x62,0x00, 0x0, +0 }, - { 0x00F5F00,0x005FF00, 0x00,0x00, 0x0, +0 }, - { 0x03111A1,0x0031D61, 0x8C,0x80, 0x6, +0 }, - { 0x173F364,0x02381A1, 0x4C,0x00, 0x4, +0 }, - { 0x053F301,0x1F6F101, 0x46,0x80, 0x0, +0 }, - { 0x053F201,0x0F6F208, 0x43,0x40, 0x1, +0 }, - { 0x135A511,0x133A517, 0x10,0xA4, 0x0, +0 }, - { 0x141F611,0x2E5F211, 0x0D,0x00, 0x0, +0 }, - { 0x0F8F755,0x1E4F752, 0x92,0x9F, 0xE, +0 }, - { 0x0E4F341,0x1E5F351, 0x13,0x00, 0xE, +0 }, - { 0x032D493,0x111EB11, 0x91,0x00, 0x8, +0 }, - { 0x032D453,0x112EB13, 0x91,0x0D, 0x9, +0 }, - { 0x3E5F720,0x0E5F521, 0x00,0x0C, 0xD, +0 }, - { 0x0207C21,0x10C6F22, 0x09,0x09, 0x7, +0 }, - { 0x133DD02,0x0166601, 0x83,0x80, 0xB, +0 }, - { 0x0298961,0x406D8A3, 0x33,0xA4, 0x6, +0 }, - { 0x005DA21,0x00B8F22, 0x17,0x80, 0x6, +0 }, - { 0x026EC08,0x016F804, 0x15,0x00, 0xA, +0 }, - { 0x026EC07,0x016F802, 0x15,0x00, 0xB, +0 }, - { 0x024682C,0x035DF01, 0xAB,0x00, 0x0, +0 }, - { 0x0356705,0x005DF01, 0x9D,0x00, 0x1, +0 }, - { 0x0A3FD07,0x078F902, 0xC0,0x00, 0xE, +0 }, - { 0x055FC14,0x005F311, 0x8D,0x00, 0xE, +0 }, - { 0x455F811,0x0E5F410, 0x86,0x00, 0xE, +0 }, - { 0x155F311,0x0E5F410, 0x9C,0x00, 0xF, +0 }, - { 0x0001E0E,0x3FE1800, 0x00,0x00, 0xE, +0 }, - { 0x05C5F0E,0x16C870E, 0x00,0x02, 0x0, +0 }, - { 0x0F0F00E,0x0841300, 0x00,0x00, 0xE, +0 }, - { 0x0F0F000,0x0F05F0C, 0x2E,0x00, 0xE, +0 }, - { 0x061F217,0x0B4F112, 0x4F,0x0A, 0x8, +0 }, - { 0x001EFEE,0x0069FE0, 0x01,0x04, 0x6, +0 }, - { 0x001FF26,0x71612E4, 0x00,0x00, 0xE, +0 }, - { 0x0F10001,0x0F10001, 0x3F,0x3F, 0xF, +0 }, - { 0x059F200,0x000F701, 0x00,0x00, 0xE, +0 }, - { 0x0F0F301,0x6C9F601, 0x00,0x00, 0xE, +0 }, - { 0x029A100,0x0696521, 0x02,0x08, 0xE, +0 }, - { 0x29BF300,0x008F311, 0x0C,0x00, 0xE, +0 }, - { 0x068FAC0,0x377F701, 0x02,0x00, 0x2, +0 }, - { 0x0C4FA01,0x33FF600, 0x03,0x00, 0x0, +0 }, - { 0x0FFF832,0x07FF511, 0x44,0x00, 0xE, +0 }, - { 0x27AFB12,0x047F611, 0x40,0x00, 0x6, +0 }, - { 0x144F5C6,0x018F6C1, 0x5C,0x83, 0xE, +0 }, - { 0x0D0CCC0,0x028EAC1, 0x10,0x00, 0x0, +0 }, - { 0x2B7F811,0x006F311, 0x46,0x00, 0x8, +0 }, - { 0x2BAE610,0x005EA10, 0x04,0x00, 0x0, +0 }, - { 0x0F70700,0x0F70710, 0xFF,0xFF, 0x0, +0 }, - { 0x218F401,0x008F800, 0x00,0x00, 0xC, +0 }, - { 0x0F0F009,0x0F7B700, 0x0E,0x00, 0xE, +0 }, - { 0x0FEF812,0x07ED511, 0x47,0x00, 0xE, +0 }, - { 0x005F010,0x004D011, 0x25,0x80, 0xE, +0 }, - { 0x00F9F30,0x0FAE83A, 0x00,0x00, 0xE, +0 }, - { 0x0976800,0x3987802, 0x00,0x00, 0x0, +0 }, - { 0x0FBF116,0x069F911, 0x08,0x02, 0x0, +0 }, - { 0x06CF800,0x04AE80E, 0x00,0x40, 0x0, +0 }, - { 0x0F2FA25,0x09AF612, 0x1B,0x00, 0x0, +0 }, - { 0x2F5F5C5,0x005C301, 0x08,0x06, 0x1, +0 }, - { 0x257F900,0x046FB00, 0x00,0x00, 0x0, +12 }, - { 0x0FEF512,0x0FFF612, 0x11,0xA2, 0x6, +0 }, - { 0x0FFF901,0x0FFF811, 0x0F,0x00, 0x6, +0 }, - { 0x0F0F01E,0x0B6F70E, 0x00,0x00, 0xE, +0 }, - { 0x204FF82,0x015FF10, 0x00,0x06, 0xE, +0 }, - { 0x007FF00,0x008FF01, 0x02,0x00, 0xF, +0 }, - { 0x04CA800,0x13FD600, 0x0B,0x00, 0x0, +0 }, - { 0x25E980C,0x306FB0F, 0x00,0x00, 0xF, +12 }, - { 0x25E780C,0x32B8A0A, 0x00,0x80, 0xF, +12 }, - { 0x201C700,0x233F90B, 0x45,0x00, 0xE, +12 }, - { 0x04FF82E,0x3EFF521, 0x07,0x0B, 0xE, +0 }, - { 0x065F981,0x030F241, 0x00,0x00, 0xE, +0 }, - { 0x000FE46,0x055F585, 0x00,0x00, 0xE, +0 }, - { 0x0009429,0x344F904, 0x10,0x04, 0xE, +0 }, - { 0x282B2A4,0x1D49703, 0x00,0x80, 0xE, +0 }, - { 0x000F68E,0x3029F5E, 0x00,0x00, 0xE, +0 }, - { 0x152FE09,0x008F002, 0xC0,0x00, 0xE, +0 }, - { 0x055F201,0x000F441, 0x00,0x00, 0xE, +0 }, - { 0x000F301,0x0A4F48F, 0x00,0x00, 0xE, +0 }, - { 0x100FF80,0x1F7F500, 0x00,0x00, 0xC, +0 }, - { 0x05EFD2E,0x3EFF527, 0x07,0x0C, 0xE, +0 }, - { 0x256FB00,0x026FA00, 0x00,0x00, 0x4, +12 }, - { 0x256FB00,0x017F700, 0x80,0x00, 0x0, +12 }, - { 0x1779A01,0x084F700, 0x00,0x00, 0x8, +0 }, - { 0x367FD01,0x098F601, 0x00,0x00, 0x8, +12 }, - { 0x001FF0E,0x377790E, 0x00,0x02, 0xE, +0 }, - { 0x2079F20,0x22B950E, 0x1C,0x00, 0x0, +0 }, - { 0x2079F20,0x23B940E, 0x1E,0x00, 0x0, +0 }, - { 0x506F680,0x016F610, 0x00,0x00, 0xC, +0 }, - { 0x50F6F00,0x50F6F00, 0x00,0x00, 0xD, +0 }, - { 0x50F4F00,0x50F4F00, 0x00,0x00, 0xD, +0 }, - { 0x0FFEE03,0x0FFE808, 0x40,0x00, 0xC, +0 }, - { 0x060F2C5,0x07AF4D4, 0x4F,0x80, 0x8, +12 }, - { 0x160F285,0x0B7F294, 0x4F,0x80, 0x8, +12 }, - { 0x04F760F,0x2187700, 0x40,0x08, 0xE, +0 }, - { 0x332F905,0x0A6D604, 0x05,0x40, 0xE, +0 }, - { 0x332F805,0x0A67404, 0x05,0x40, 0xF, +0 }, - { 0x0F0F126,0x0F5F527, 0x44,0x40, 0x6, +0 }, - { 0x3948F03,0x06FFA15, 0x00,0x00, 0x0, +0 }, - { 0x0F0F007,0x0DC5C00, 0x00,0x00, 0xE, +0 }, - { 0x00FFF7E,0x00F3F6E, 0x00,0x00, 0xE, +0 }, - { 0x0B3FA00,0x005D000, 0x00,0x00, 0xC, +0 }, - { 0x0FFF832,0x07FF511, 0x84,0x00, 0xE, +0 }, - { 0x0089FD4,0x0089FD4, 0xC0,0xC0, 0x4, +0 }, - { 0x2F4F50E,0x424120CA, 0x00,0x51, 0x3, +0 }, - { 0x283E0C4,0x14588C0, 0x81,0x00, 0xE, +0 }, - { 0x0B0900E,0x0BF990E, 0x03,0x03, 0xA, +0 }, - { 0x0DFDCC2,0x026C9C0, 0x17,0x00, 0x0, +0 }, - { 0x0D0ACC0,0x028EAC1, 0x18,0x00, 0x0, +0 }, - { 0x0A7CDC2,0x028EAC1, 0x2B,0x02, 0x0, +0 }, - { 0x0FE6227,0x3D9950A, 0x00,0x07, 0x8, +0 }, - { 0x1199523,0x0198421, 0x48,0x00, 0x8, +0 }, - { 0x055F231,0x076F221, 0x49,0x00, 0x8, +0 }, - { 0x038F101,0x028F121, 0x57,0x00, 0x0, +0 }, - { 0x038F101,0x028F121, 0x93,0x00, 0x0, +0 }, - { 0x001A221,0x0D5F136, 0x80,0x0E, 0x8, +0 }, - { 0x0A8C201,0x058C201, 0x92,0x00, 0xA, +0 }, - { 0x054F60C,0x0B5F381, 0x5C,0x00, 0x0, +0 }, - { 0x032F607,0x011F511, 0x97,0x80, 0x2, +0 }, - { 0x0E6F318,0x0F6F281, 0x62,0x00, 0x0, +0 }, - { 0x0A6F615,0x0E6F601, 0x91,0x00, 0x4, +0 }, - { 0x082D345,0x0E3A381, 0x59,0x80, 0xC, +0 }, - { 0x122F603,0x0F3F321, 0x87,0x80, 0x6, +0 }, - { 0x09AA101,0x0DFF221, 0x89,0x40, 0x8, +0 }, - { 0x15572A1,0x0187121, 0x86,0x0D, 0x0, +0 }, - { 0x0F00010,0x0F00010, 0x3F,0x3F, 0x0, +0 }, - { 0x0F1F02E,0x3487407, 0x00,0x07, 0x8, +0 }, - { 0x0FE5229,0x3D9850E, 0x00,0x07, 0x6, +0 }, - { 0x0FDF800,0x0C7F601, 0x0B,0x00, 0x8, +0 }, - { 0x000FF26,0x0A7F802, 0x00,0x02, 0xE, +0 }, - { 0x01FFA06,0x0F5F511, 0x0A,0x00, 0xF, +0 }, - { 0x0F1F52E,0x3F99906, 0x05,0x02, 0x0, +0 }, - { 0x0F89227,0x3D8750A, 0x00,0x03, 0x8, +0 }, - { 0x2009F2C,0x3A4C50E, 0x00,0x09, 0xE, +0 }, - { 0x0009429,0x344F904, 0x10,0x0C, 0xE, +0 }, - { 0x0F1F52E,0x3F78706, 0x09,0x02, 0x0, +0 }, - { 0x2F1F535,0x028F703, 0x19,0x02, 0x0, +0 }, - { 0x0FAFA25,0x0F99803, 0xCD,0x00, 0x0, +0 }, - { 0x1FAF825,0x0F7A803, 0x1B,0x00, 0x0, +0 }, - { 0x1FAF825,0x0F69603, 0x21,0x00, 0xE, +0 }, - { 0x2F5F504,0x236F603, 0x16,0x03, 0xA, +0 }, - { 0x091F015,0x0E8A617, 0x1E,0x04, 0xE, +0 }, - { 0x001FF0E,0x077780E, 0x06,0x04, 0xE, +0 }, - { 0x0F7F020,0x33B8809, 0x00,0x00, 0xC, +0 }, - { 0x0F7F420,0x33B560A, 0x03,0x00, 0x0, +0 }, - { 0x05BF714,0x089F712, 0x4B,0x00, 0x0, +0 }, - { 0x0F2FA27,0x09AF612, 0x22,0x00, 0x0, +0 }, - { 0x1F75020,0x03B7708, 0x09,0x05, 0x0, +0 }, - { 0x1077F26,0x06B7703, 0x29,0x05, 0x0, +0 }, - { 0x0F0F126,0x0FCF727, 0x44,0x40, 0x6, +0 }, - { 0x0F3F821,0x0ADC620, 0x1C,0x00, 0xC, +0 }, - { 0x0FFFF01,0x0FFFF01, 0x3F,0x3F, 0x0, +0 }, - { 0x4FFEE03,0x0FFE804, 0x80,0x00, 0xC, +0 }, - { 0x122F603,0x0F8F3A1, 0x87,0x80, 0x6, +0 }, - { 0x007A810,0x005FA00, 0x86,0x03, 0x6, +0 }, - { 0x053F131,0x227F232, 0x48,0x00, 0x6, +0 }, - { 0x01A9161,0x01AC1E6, 0x40,0x03, 0x8, +0 }, - { 0x071FB11,0x0B9F301, 0x00,0x00, 0x0, +0 }, - { 0x1B57231,0x098D523, 0x0B,0x00, 0x8, +0 }, - { 0x024D501,0x0228511, 0x0F,0x00, 0xA, +0 }, - { 0x025F911,0x034F131, 0x05,0x00, 0xA, +0 }, - { 0x01576A1,0x0378261, 0x94,0x00, 0xC, +0 }, - { 0x1362261,0x0084F22, 0x10,0x40, 0x8, +0 }, - { 0x2363360,0x0084F22, 0x15,0x40, 0xC, +0 }, - { 0x007F804,0x0748201, 0x0E,0x05, 0x6, +0 }, - { 0x0E5F131,0x174F131, 0x89,0x00, 0xC, +0 }, - { 0x0E3F131,0x073F172, 0x8A,0x00, 0xA, +0 }, - { 0x0FFF101,0x0FF5091, 0x0D,0x80, 0x6, +0 }, - { 0x1473161,0x007AF61, 0x0F,0x00, 0xA, +0 }, - { 0x0D3B303,0x024F204, 0x40,0x80, 0x4, +0 }, - { 0x1037531,0x0445462, 0x1A,0x40, 0xE, +0 }, - { 0x021A1A1,0x116C261, 0x92,0x40, 0x6, +0 }, - { 0x0F0F240,0x0F4F440, 0x00,0x00, 0x4, +0 }, - { 0x003F1C0,0x001107E, 0x4F,0x0C, 0x2, +0 }, - { 0x0459BC0,0x015F9C1, 0x05,0x00, 0xE, +0 }, - { 0x0064F50,0x003FF50, 0x10,0x00, 0x0, +0 }, - { 0x2F0F005,0x1B4F600, 0x08,0x00, 0xC, +0 }, - { 0x0F2F931,0x042F210, 0x40,0x00, 0x4, +0 }, - { 0x00FFF7E,0x00F2F6E, 0x00,0x00, 0xE, +0 }, - { 0x2F95401,0x2FB5401, 0x19,0x00, 0x8, +0 }, - { 0x0665F53,0x0077F00, 0x05,0x00, 0x6, +0 }, - { 0x003F1C0,0x006707E, 0x4F,0x03, 0x2, +0 }, - { 0x1111EF0,0x11411E2, 0x00,0xC0, 0x8, +0 }, - { 0x0F0A006,0x075C584, 0x00,0x00, 0xE, +0 }, - { 0x1F5F213,0x0F5F111, 0xC6,0x05, 0x0, +0 }, - { 0x153F101,0x274F111, 0x49,0x02, 0x6, +0 }, - { 0x0E4F4D0,0x006A29E, 0x80,0x00, 0x8, +0 }, - { 0x0871321,0x0084221, 0xCD,0x80, 0x8, +0 }, - { 0x065B400,0x075B400, 0x00,0x00, 0x7, +0 }, - { 0x02AF800,0x145F600, 0x03,0x00, 0x4, +0 }, - { 0x0FFF830,0x07FF511, 0x44,0x00, 0x8, +0 }, - { 0x0F9F900,0x023F110, 0x08,0x00, 0xA, +0 }, - { 0x0F9F900,0x026F180, 0x04,0x00, 0x8, +0 }, - { 0x1FDF800,0x059F800, 0xC4,0x00, 0xA, +0 }, - { 0x06FFA00,0x08FF600, 0x0B,0x00, 0x0, +0 }, - { 0x0F9F900,0x023F191, 0x04,0x00, 0x8, +0 }, - { 0x097C802,0x097C802, 0x00,0x00, 0x1, +0 }, - { 0x0BFFA01,0x0BFDA02, 0x00,0x00, 0x8, +0 }, - { 0x2F0FB01,0x096F701, 0x10,0x00, 0xE, +0 }, - { 0x002FF04,0x007FF00, 0x00,0x00, 0xE, +0 }, - { 0x0F0F006,0x0B7F600, 0x00,0x00, 0xC, +0 }, - { 0x0F0F006,0x034C4C4, 0x00,0x03, 0xE, +0 }, - { 0x0F0F019,0x0F7B720, 0x0E,0x0A, 0xE, +0 }, - { 0x0F0F006,0x0B4F600, 0x00,0x00, 0xE, +0 }, - { 0x0F0F006,0x0B6F800, 0x00,0x00, 0xE, +0 }, - { 0x0F2F931,0x008F210, 0x40,0x00, 0x4, +0 }, - { 0x0BFFA01,0x0BFDA09, 0x00,0x08, 0x8, +0 }, - { 0x210BA2E,0x2F4B40E, 0x0E,0x00, 0xE, +0 }, - { 0x210FA2E,0x2F4F40E, 0x0E,0x00, 0xE, +0 }, - { 0x2A2B2A4,0x1D49703, 0x02,0x80, 0xE, +0 }, - { 0x200FF04,0x206FFC3, 0x00,0x00, 0x8, +0 }, - { 0x200FF04,0x2F5F6C3, 0x00,0x00, 0x8, +0 }, - { 0x0E1C000,0x153951E, 0x80,0x80, 0x6, +0 }, - { 0x200FF03,0x3F6F6C4, 0x00,0x00, 0x8, +0 }, - { 0x202FF4E,0x3F7F701, 0x00,0x00, 0x8, +0 }, - { 0x202FF4E,0x3F6F601, 0x00,0x00, 0x8, +0 }, - { 0x2588A51,0x018A452, 0x00,0x00, 0xC, +0 }, - { 0x0FFFB13,0x0FFE808, 0x40,0x00, 0x8, +0 }, - { 0x0FFEE05,0x0FFE808, 0x55,0x00, 0xE, +0 }, - { 0x0FF0006,0x0FDF715, 0x3F,0x0D, 0x1, +0 }, - { 0x0F6F80E,0x0F6F80E, 0x00,0x00, 0x0, +0 }, - { 0x060F207,0x072F212, 0x4F,0x09, 0x8, +0 }, - { 0x061F217,0x074F212, 0x4F,0x08, 0x8, +0 }, - { 0x022FB18,0x012F425, 0x88,0x80, 0x8, +0 }, - { 0x0F0FF04,0x0B5F4C1, 0x00,0x00, 0xE, +0 }, - { 0x02FC811,0x0F5F531, 0x2D,0x00, 0xC, +0 }, - { 0x03D6709,0x3FC692C, 0x00,0x00, 0xE, +0 }, - { 0x053D144,0x05642B2, 0x80,0x15, 0xE, +0 }, - { 0x253B1C4,0x083B1D2, 0x8F,0x84, 0x2, +0 }, - { 0x175F5C2,0x074F2D1, 0x21,0x83, 0xE, +0 }, - { 0x1F6FB34,0x04394B1, 0x83,0x00, 0xC, +0 }, - { 0x0BDF211,0x09BA004, 0x46,0x40, 0x8, +0 }, - { 0x144F221,0x3457122, 0x8A,0x40, 0x0, +0 }, - { 0x144F221,0x1447122, 0x8A,0x40, 0x0, +0 }, - { 0x053F101,0x153F108, 0x40,0x40, 0x0, +0 }, - { 0x102FF00,0x3FFF200, 0x08,0x00, 0x0, +0 }, - { 0x144F221,0x345A122, 0x8A,0x40, 0x0, +0 }, - { 0x028F131,0x018F031, 0x0F,0x00, 0xA, +0 }, - { 0x307D7E1,0x107B6E0, 0x8D,0x00, 0x1, +0 }, - { 0x03DD500,0x02CD500, 0x11,0x00, 0xA, +0 }, - { 0x1199563,0x219C420, 0x46,0x00, 0x8, +0 }, - { 0x044D08C,0x2F4D181, 0xA1,0x80, 0x8, +0 }, - { 0x0022171,0x1035231, 0x93,0x80, 0x0, +0 }, - { 0x1611161,0x01311A2, 0x91,0x80, 0x8, +0 }, - { 0x25666E1,0x02665A1, 0x4C,0x00, 0x0, +0 }, - { 0x038FB00,0x0DAF400, 0x00,0x00, 0x4, +0 }, - { 0x2BFFB15,0x31FF817, 0x0A,0x00, 0x0, +0 }, - { 0x0BFFBC6,0x02FE8C9, 0x00,0x00, 0xE, +0 }, - { 0x2F0F006,0x2B7F800, 0x00,0x00, 0xE, +0 }, - { 0x097C802,0x040E000, 0x00,0x00, 0x1, +0 }, - { 0x00FFF2E,0x04AF602, 0x0A,0x1B, 0xE, +0 }, - { 0x3A5F0EE,0x36786CE, 0x00,0x00, 0xE, +0 }, - { 0x0B0FCD6,0x008BDD6, 0x00,0x05, 0xA, +0 }, - { 0x0F0F007,0x0DC5C00, 0x08,0x00, 0xE, +0 }, - { 0x0E7F301,0x078F211, 0x58,0x00, 0xA, +0 }, - { 0x0EFF230,0x078F521, 0x1E,0x00, 0xE, +0 }, - { 0x019D530,0x01B6171, 0x88,0x80, 0xC, +0 }, - { 0x001F201,0x0B7F211, 0x0D,0x0D, 0xA, +0 }, - { 0x03DD500,0x02CD500, 0x14,0x00, 0xA, +0 }, - { 0x010E032,0x0337D16, 0x87,0x84, 0x8, +0 }, - { 0x0F8F161,0x008F062, 0x80,0x80, 0x8, +0 }, - { 0x0745391,0x0755451, 0x00,0x00, 0xA, +0 }, - { 0x08E6121,0x09E7231, 0x15,0x00, 0xE, +0 }, - { 0x0BC7321,0x0BC8121, 0x19,0x00, 0xE, +0 }, - { 0x23C7320,0x0BC8121, 0x19,0x00, 0xE, +0 }, - { 0x209A060,0x20FF014, 0x02,0x80, 0x1, +0 }, - { 0x064F207,0x075F612, 0x73,0x00, 0x8, +0 }, - { 0x054D221,0x075B231, 0x4D,0x80, 0x8, +0 }, - { 0x053D221,0x073B231, 0x56,0x80, 0x8, +0 }, - { 0x053D221,0x073B231, 0x55,0x80, 0x8, +0 }, - { 0x201AF70,0x0084F32, 0x19,0x40, 0xC, +0 }, - { 0x201AF70,0x0083F32, 0x19,0x40, 0xC, +0 }, - { 0x0302221,0x0064F32, 0x99,0x00, 0xE, +0 }, - { 0x0006F71,0x0064F32, 0x99,0x00, 0xE, +0 }, - { 0x0006F71,0x0074F32, 0x99,0x80, 0xE, +0 }, - { 0x0006F71,0x0054F32, 0x9E,0x80, 0xE, +0 }, - { 0x0006F71,0x0054F31, 0x9E,0x80, 0xE, +0 }, - { 0x0006F71,0x0054F32, 0x9C,0x80, 0xE, +0 }, - { 0x006F231,0x0084221, 0xCF,0x80, 0x6, +0 }, - { 0x0811321,0x0074221, 0xCD,0x80, 0x8, +0 }, - { 0x0957406,0x074A401, 0x5B,0x00, 0x0, +0 }, - { 0x021A1A1,0x116C261, 0x92,0x00, 0x6, +0 }, - { 0x0EFF230,0x078F522, 0x1E,0x00, 0xE, +0 }, - { 0x01FF003,0x01FF001, 0x5B,0x80, 0xA, +0 }, - { 0x00FFF24,0x00FFF21, 0x80,0x80, 0x1, +0 }, - { 0x00F4021,0x10F1020, 0x00,0x00, 0xE, +0 }, - { 0x045F221,0x076F221, 0x8F,0x06, 0x8, +0 }, - { 0x053B121,0x074C231, 0x4F,0x00, 0x6, +0 }, - { 0x011F111,0x0B3C101, 0x4A,0x80, 0x6, +0 }, - { 0x058F381,0x058F201, 0x63,0x80, 0x0, +0 }, - { 0x001F701,0x0B7F407, 0x0D,0x06, 0xA, +0 }, - { 0x060F206,0x072F211, 0x4F,0x0C, 0x8, +0 }, - { 0x0E3F318,0x093F281, 0x62,0x00, 0x0, +0 }, - { 0x326CE15,0x025F901, 0x57,0x00, 0xC, +0 }, - { 0x1558403,0x005D381, 0x49,0x80, 0x4, +0 }, - { 0x0F0FB3E,0x09BA071, 0x29,0x40, 0x0, +0 }, - { 0x01FF003,0x014F001, 0x5B,0x88, 0xA, +0 }, - { 0x14941A1,0x009CF21, 0x15,0x00, 0x0, +0 }, - { 0x074A302,0x075C441, 0x9A,0x80, 0xA, +0 }, - { 0x01FF260,0x07CF521, 0x11,0x00, 0xA, +0 }, - { 0x122F603,0x0F4F321, 0x87,0x80, 0x6, +0 }, - { 0x0442009,0x0F4D184, 0xA1,0x80, 0x8, +0 }, - { 0x066C101,0x066A201, 0x9A,0x40, 0xA, +0 }, - { 0x0236321,0x0266421, 0x97,0x00, 0x0, +0 }, - { 0x111C031,0x1157221, 0x20,0x06, 0xC, +0 }, - { 0x1107421,0x0165223, 0x0C,0x08, 0x2, +0 }, - { 0x1DBB851,0x1567591, 0x17,0x00, 0xC, +0 }, - { 0x075C502,0x0F3C201, 0x29,0x83, 0x0, +0 }, - { 0x0EFE800,0x0FFA401, 0x0D,0x00, 0x6, +0 }, - { 0x01171B1,0x1177261, 0x8B,0x40, 0x6, +0 }, - { 0x111F0F1,0x1131121, 0x95,0x00, 0x0, +0 }, - { 0x111C031,0x1159221, 0x20,0x06, 0xC, +0 }, - { 0x111C0B1,0x1159221, 0x20,0x08, 0xC, +0 }, - { 0x00B4131,0x03B9261, 0x1C,0x80, 0xC, +0 }, - { 0x01F4131,0x03B9261, 0x1C,0x80, 0xE, +0 }, - { 0x0646300,0x0757211, 0x1C,0x00, 0xE, +0 }, - { 0x0014131,0x03B9261, 0x1C,0x80, 0xE, +0 }, - { 0x05A5321,0x01AAA21, 0x9C,0x80, 0xE, +0 }, - { 0x003F200,0x0FFF220, 0x80,0x00, 0xE, +0 }, - { 0x0001F0E,0x3F01FC0, 0x00,0x00, 0xE, +0 }, - { 0x179A1A1,0x1495121, 0x1C,0x00, 0x0, +0 }, - { 0x0177EB1,0x00E7B22, 0xC5,0x05, 0x2, +0 }, - { 0x019D531,0x01B6132, 0xD1,0x80, 0xC, +0 }, - { 0x01B5132,0x03BA261, 0x9A,0x82, 0xC, +0 }, - { 0x1047021,0x06D6361, 0xC6,0x00, 0xE, +0 }, - { 0x08F6EE0,0x02A6561, 0xEC,0x00, 0xE, +0 }, - { 0x0297122,0x0296431, 0x08,0x04, 0xD, +0 }, - { 0x20FF2D0,0x08562C1, 0xEB,0x06, 0x0, +0 }, - { 0x0154221,0x0065021, 0xE3,0x00, 0x8, +0 }, - { 0x144F221,0x0439422, 0x8A,0x40, 0x0, +0 }, - { 0x05312C4,0x07212F1, 0x17,0x00, 0xA, +0 }, - { 0x0536244,0x0046041, 0x56,0x00, 0xC, +0 }, - { 0x0E6E800,0x0F6A300, 0x0D,0x00, 0x6, +0 }, - { 0x141FA11,0x2F5F411, 0x06,0x00, 0x4, +0 }, - { 0x0268721,0x1188421, 0x07,0x00, 0x6, +0 }, - { 0x055F502,0x053F601, 0x99,0x80, 0x0, +0 }, - { 0x060F207,0x072F212, 0x4F,0x00, 0x8, +0 }, - { 0x0105AEC,0x1F454EE, 0x00,0x00, 0xE, +0 }, - { 0x286F2A5,0x228670E, 0x00,0x00, 0xE, +0 }, - { 0x007FF01,0x007FF21, 0x00,0x00, 0x7, +0 }, - { 0x00CFF01,0x00BFF21, 0x00,0x00, 0x7, +0 }, - { 0x211BA12,0x2F5B400, 0x0B,0x00, 0xE, +0 }, - { 0x021FF13,0x003FF10, 0x51,0x40, 0xA, +0 }, - { 0x002F002,0x004D001, 0xC0,0x00, 0x4, +0 }, - { 0x050F101,0x07CD201, 0x4F,0x04, 0x6, +0 }, - { 0x2129A14,0x004FA01, 0x97,0x80, 0xE, +0 }, - { 0x0038165,0x007F171, 0xD2,0x00, 0x2, +0 }, - { 0x0AE7121,0x01ED320, 0x1C,0x00, 0xE, +0 }, - { 0x053F101,0x083F212, 0xCF,0x00, 0x2, +0 }, - { 0x154FF0A,0x0F5F002, 0x04,0x00, 0x0, +0 }, - { 0x035F813,0x004FF11, 0x12,0x00, 0x8, +0 }, - { 0x100FF22,0x10BF020, 0x92,0x00, 0x4, +0 }, - { 0x00FFF24,0x00FFF21, 0x00,0x40, 0x1, +0 }, - { 0x0F0FB3E,0x09BA071, 0x29,0x00, 0x0, +0 }, - { 0x275F602,0x066F521, 0x9B,0x00, 0x4, +0 }, - { 0x315EF11,0x0B5F481, 0x53,0x00, 0x8, +0 }, - { 0x10BF224,0x00B5231, 0x50,0x00, 0xE, +0 }, - { 0x000EA36,0x003D01A, 0x8B,0x00, 0x8, +0 }, - { 0x1C3C223,0x103D000, 0x14,0x00, 0xC, +0 }, - { 0x001F211,0x0B1F215, 0x0D,0x0D, 0xA, +0 }, - { 0x0AFF832,0x07FF310, 0x45,0x00, 0xE, +0 }, - { 0x153F101,0x274F111, 0x49,0x00, 0x6, +0 }, - { 0x0F7F000,0x00687A1, 0x30,0x00, 0xF, +0 }, - { 0x0009F71,0x1069F62, 0x45,0x00, 0x2, +0 }, - { 0x0009F71,0x1069062, 0x51,0x00, 0x0, +0 }, - { 0x275F602,0x066F521, 0x1B,0x00, 0x4, +0 }, - { 0x0F7F001,0x00687A1, 0x00,0x00, 0x1, +0 }, - { 0x141B403,0x03FF311, 0x5E,0x00, 0xA, +0 }, - { 0x141B203,0x097F211, 0x5E,0x00, 0xA, +0 }, - { 0x101F901,0x0F5F001, 0x34,0x00, 0x4, +0 }, - { 0x0EFF201,0x078F501, 0x1D,0x00, 0xA, +0 }, - { 0x1EFF201,0x078F501, 0x1D,0x00, 0x6, +0 }, - { 0x01774E1,0x01765E2, 0x83,0x00, 0x7, +0 }, - { 0x154F103,0x054F10A, 0x00,0x00, 0x0, +0 }, - { 0x001EF81,0x0FB9201, 0x8E,0x00, 0x4, +0 }, - { 0x000EA36,0x024DF1A, 0x8B,0x00, 0x8, +0 }, - { 0x061F217,0x076F212, 0x4F,0x00, 0x8, +0 }, - { 0x2298432,0x0448421, 0x1A,0x00, 0x6, +0 }, - { 0x0176EB1,0x00E8B22, 0xC5,0x05, 0x2, +0 }, - { 0x01572A1,0x02784A1, 0x1C,0x00, 0xE, +0 }, - { 0x0427887,0x0548594, 0x4D,0x00, 0xA, +0 }, - { 0x011F111,0x0B3F101, 0x4A,0x85, 0x6, +0 }, - { 0x0115172,0x11552A2, 0x89,0x00, 0xA, +0 }, - { 0x2F3F021,0x004F021, 0x4F,0x00, 0x6, +0 }, - { 0x095AB0E,0x0C6F702, 0xC0,0x00, 0xE, +0 }, - { 0x00351B2,0x01352A2, 0x1C,0x05, 0xE, +0 }, - { 0x01152B0,0x0FE31B1, 0xC5,0x40, 0x0, +0 }, - { 0x0B69401,0x0268300, 0x00,0x00, 0x0, +0 }, - { 0x075F502,0x0F3F201, 0x29,0x83, 0x0, +0 }, - { 0x243A321,0x022C411, 0x11,0x00, 0xC, +0 }, - { 0x01FF201,0x088F501, 0x11,0x00, 0xA, +0 }, - { 0x07D8207,0x07D8214, 0x8F,0x80, 0xC, +0 }, - { 0x00BF224,0x00B5231, 0x4F,0x00, 0xE, +0 }, - { 0x025DC03,0x009F031, 0x90,0x00, 0x8, +0 }, - { 0x02F2501,0x06C6521, 0x15,0x80, 0xA, +0 }, - { 0x0176E30,0x12F8B32, 0x4B,0x05, 0x4, +0 }, - { 0x08F7461,0x02A6561, 0x27,0x00, 0x2, +0 }, - { 0x0EBFA10,0x0DAFA0E, 0x00,0x00, 0x0, +0 }, - { 0x0F7F0F5,0x0068771, 0x2E,0x00, 0xB, +0 }, - { 0x0537101,0x07C5212, 0x4F,0x00, 0xA, +0 }, - { 0x3DFFF20,0x20FFF21, 0x00,0x00, 0x0, +0 }, - { 0x000FF24,0x00BF020, 0x97,0x00, 0x4, +0 }, - { 0x0176EB1,0x00E8BA2, 0xC5,0x05, 0x2, +0 }, - { 0x019D530,0x01B6171, 0xCD,0x40, 0xC, +0 }, - { 0x203B122,0x005F172, 0x4F,0x00, 0x2, +0 }, - { 0x0F16000,0x0F87001, 0x1D,0x00, 0xE, +0 }, - { 0x1009F71,0x1069F22, 0x45,0x00, 0x2, +0 }, - { 0x01D5321,0x03B5261, 0x1C,0x80, 0xC, +0 }, - { 0x01F41B1,0x03B9261, 0x1C,0x80, 0xE, +0 }, - { 0x05A5321,0x01AAA21, 0x9F,0x80, 0xC, +0 }, - { 0x0078061,0x0077062, 0x80,0x00, 0x7, +0 }, - { 0x2D3B121,0x0149121, 0x4F,0x80, 0x6, +0 }, - { 0x1F27021,0x0F68021, 0x14,0x00, 0xE, +0 }, - { 0x2129A16,0x0039A12, 0x97,0x00, 0x2, +0 }, - { 0x01FF003,0x019F000, 0x1F,0x05, 0xA, +0 }, - { 0x204D983,0x004D081, 0x17,0x00, 0xE, +0 }, - { 0x025DA05,0x015F901, 0x8E,0x00, 0xA, +0 }, - { 0x112AA83,0x1119B91, 0x1C,0x00, 0xE, +0 }, - { 0x001FF64,0x0F3F53E, 0xDB,0xC0, 0x4, +0 }, - { 0x0AC9051,0x1F4F071, 0x1A,0x00, 0xF, +0 }, - { 0x22F5570,0x31E87E0, 0x16,0x80, 0xC, +0 }, - { 0x08F6EA0,0x02A65E1, 0xEC,0x00, 0xE, +0 }, - { 0x0EFE800,0x0FFA500, 0x0D,0x00, 0x6, +0 }, - { 0x102FD16,0x0039F12, 0x96,0x80, 0xE, +0 }, - { 0x035F803,0x004FF01, 0x12,0x00, 0x8, +0 }, - { 0x006FA15,0x025F501, 0xD3,0x00, 0xA, +0 }, - { 0x2129A16,0x0019A12, 0x97,0x00, 0x2, +0 }, - { 0x0F0E029,0x031FF1E, 0x1A,0x00, 0x6, +0 }, - { 0x0056581,0x0743251, 0x83,0x00, 0xA, +0 }, - { 0x2129FD6,0x0F290D2, 0x17,0x00, 0x2, +0 }, - { 0x0F0F000,0x0048C2C, 0x2E,0x00, 0xE, +0 }, - { 0x0111E00,0x0A11220, 0x00,0x00, 0x6, +0 }, - { 0x054F10F,0x054F60F, 0x00,0x00, 0xE, +0 }, - { 0x069F000,0x0FFF633, 0x00,0x00, 0xE, +0 }, - { 0x0F00000,0x0F00000, 0x3F,0x3F, 0x0, +0 }, - { 0x04CA800,0x045D600, 0x0B,0x00, 0x0, +0 }, - { 0x04CA800,0x04FD600, 0x0B,0x00, 0x0, +0 }, - { 0x0F0F31E,0x0F6F610, 0x00,0x00, 0xE, +0 }, - { 0x00FFF2E,0x04CF600, 0x00,0x18, 0xE, +0 }, - { 0x0BFFA01,0x0B6D602, 0x00,0x00, 0x8, +0 }, - { 0x3F6F01E,0x307F01E, 0x00,0x00, 0xE, +0 }, - { 0x30AFF2E,0x306FF1E, 0x00,0x00, 0xE, +0 }, - { 0x0F0F31E,0x0F4F410, 0x00,0x00, 0xE, +0 }, - { 0x3F6F61E,0x302F21E, 0x00,0x0C, 0xE, +0 }, - { 0x1FBFA1E,0x102F21E, 0x00,0x04, 0xE, +0 }, - { 0x0BFFA11,0x0BFDA02, 0x34,0x00, 0x8, +0 }, - { 0x001FFEF,0x0F3F53E, 0xCD,0xC0, 0xE, +0 }, - { 0x16FAA12,0x006FF06, 0x14,0x00, 0x0, +0 }, - { 0x16FAA12,0x008FF06, 0x14,0x00, 0x0, +0 }, - { 0x0FFFB13,0x0FFE804, 0x40,0x00, 0x8, +0 }, - { 0x26EF800,0x03FF600, 0x08,0x02, 0x0, +0 }, - { 0x26EF800,0x034F400, 0x08,0x02, 0x0, +0 }, - { 0x16FAA12,0x006FF06, 0x00,0x00, 0x0, +0 }, - { 0x0F0E029,0x03FF21E, 0x1A,0x00, 0x6, +0 }, - { 0x0F0E029,0x0FFF13E, 0x1A,0x00, 0x6, +0 }, - { 0x050B233,0x1F5B131, 0x5A,0x00, 0x0, +0 }, - { 0x153F231,0x0F5F111, 0x49,0x03, 0x6, +0 }, - { 0x183D131,0x0F5C132, 0x95,0x03, 0xC, +0 }, - { 0x163F334,0x1F59211, 0x9B,0x00, 0x0, +0 }, - { 0x2B7F827,0x0F9F191, 0x28,0x00, 0x0, +0 }, - { 0x1EEF31A,0x0F5F111, 0x2D,0x00, 0x0, +0 }, - { 0x158F235,0x1F68132, 0x95,0x02, 0xE, +0 }, - { 0x040C931,0x1B9C235, 0x85,0x00, 0x0, +0 }, - { 0x064C709,0x035B201, 0x15,0x05, 0x9, +0 }, - { 0x144F406,0x034F201, 0x03,0x1B, 0x1, +0 }, - { 0x124A904,0x074F501, 0x06,0x01, 0xB, +0 }, - { 0x033F6D4,0x0E361F1, 0x00,0x00, 0x1, +0 }, - { 0x0E8F7D4,0x064A4D1, 0x00,0x00, 0x5, +0 }, - { 0x0F7F736,0x0F5B531, 0x16,0x07, 0x0, +0 }, - { 0x043A203,0x074F300, 0x1B,0x00, 0xA, +0 }, - { 0x135F8C3,0x194C311, 0x8E,0x00, 0x0, +0 }, - { 0x11BF4E2,0x10DF4E0, 0x07,0x00, 0x7, +0 }, - { 0x02CF6F2,0x10BF5F0, 0x00,0x00, 0x5, +0 }, - { 0x015B6F1,0x007BFF0, 0x06,0x00, 0xB, +0 }, - { 0x1167922,0x1086DE0, 0x03,0x00, 0x9, +0 }, - { 0x0066331,0x1175172, 0x27,0x00, 0x0, +0 }, - { 0x11653B4,0x1175171, 0x1D,0x00, 0xE, +0 }, - { 0x0159725,0x1085332, 0x29,0x00, 0x0, +0 }, - { 0x0156724,0x1065331, 0x9E,0x00, 0xE, +0 }, - { 0x1B4A313,0x0F8D231, 0x27,0x00, 0x4, +0 }, - { 0x032F317,0x1C7E211, 0xA3,0x00, 0x0, +0 }, - { 0x1C1D233,0x09CF131, 0x24,0x00, 0xE, +0 }, - { 0x044F831,0x1C9F232, 0x05,0x02, 0x0, +0 }, - { 0x07B9C21,0x0FB9502, 0x09,0x03, 0x6, +0 }, - { 0x1988121,0x059A121, 0x84,0x04, 0x6, +0 }, - { 0x04378B1,0x3FC9122, 0x0C,0x03, 0x0, +0 }, - { 0x08C8200,0x0ECB408, 0x0A,0x02, 0x8, +0 }, - { 0x046AB21,0x0F79321, 0x13,0x00, 0x0, +0 }, - { 0x032F901,0x058C122, 0x0A,0x04, 0x0, +0 }, - { 0x077FA21,0x06AC322, 0x07,0x02, 0xA, +0 }, - { 0x0577121,0x0876221, 0x17,0x00, 0xA, +0 }, - { 0x178FA25,0x097F312, 0x01,0x00, 0x6, +0 }, - { 0x088FA21,0x097B313, 0x03,0x00, 0xC, +0 }, - { 0x17FF521,0x0CCF323, 0x09,0x04, 0x8, +0 }, - { 0x09BA301,0x0AA9301, 0x10,0x00, 0x8, +0 }, - { 0x129F6E2,0x10878E1, 0x19,0x00, 0xC, +0 }, - { 0x129F6E2,0x10878E1, 0x1C,0x00, 0xC, +0 }, - { 0x1166961,0x1275461, 0x19,0x00, 0xA, +0 }, - { 0x1318271,0x0566132, 0x18,0x00, 0xC, +0 }, - { 0x10670E2,0x11675E1, 0x23,0x00, 0xC, +0 }, - { 0x0E68802,0x1F6F561, 0x00,0x00, 0x9, +0 }, - { 0x1D5F612,0x0E3F311, 0x20,0x80, 0xE, +0 }, - { 0x1F4F461,0x0F5B500, 0x0E,0x00, 0x0, +0 }, - { 0x1049C61,0x0167121, 0x1E,0x80, 0xE, +0 }, - { 0x2D6C0A2,0x1553021, 0x2A,0x00, 0xE, +0 }, - { 0x1357261,0x1366261, 0x21,0x00, 0xE, +0 }, - { 0x1237221,0x0075121, 0x1A,0x02, 0xE, +0 }, - { 0x03197E1,0x0396261, 0x16,0x00, 0x8, +0 }, - { 0x0457922,0x0276621, 0xC3,0x00, 0x0, +0 }, - { 0x1556321,0x0467321, 0xDE,0x00, 0x0, +0 }, - { 0x0F78642,0x1767450, 0x05,0x00, 0xB, +0 }, - { 0x0026131,0x0389261, 0x1C,0x81, 0xE, +0 }, - { 0x0235271,0x0197161, 0x1E,0x02, 0xE, +0 }, - { 0x0167621,0x0098121, 0x1A,0x01, 0xE, +0 }, - { 0x22C8925,0x24B8320, 0x28,0x00, 0x6, +0 }, - { 0x0167921,0x05971A2, 0x1F,0x05, 0x8, +0 }, - { 0x0168721,0x0398221, 0x19,0x03, 0xE, +0 }, - { 0x0357521,0x0178422, 0x17,0x82, 0xE, +0 }, - { 0x0586221,0x0167221, 0x22,0x02, 0xE, +0 }, - { 0x10759B1,0x00A7BA1, 0x1B,0x00, 0x0, +0 }, - { 0x0049F21,0x10C8521, 0x16,0x00, 0xA, +0 }, - { 0x020A821,0x10A7B23, 0x0F,0x00, 0xC, +0 }, - { 0x0048821,0x1187926, 0x0F,0x00, 0x8, +0 }, - { 0x0058F31,0x0087332, 0x18,0x01, 0x0, +0 }, - { 0x1378CA1,0x00A7724, 0x0A,0x04, 0x0, +0 }, - { 0x067A831,0x0195175, 0x04,0x00, 0xA, +0 }, - { 0x12677A2,0x0097421, 0x1F,0x01, 0x0, +0 }, - { 0x194B8E1,0x0286321, 0x07,0x01, 0x0, +0 }, - { 0x05987A1,0x00A65E1, 0x93,0x00, 0x0, +0 }, - { 0x0389F22,0x0296761, 0x10,0x00, 0x0, +0 }, - { 0x19A88E2,0x0096721, 0x0D,0x00, 0x0, +0 }, - { 0x09498A2,0x0286A21, 0x10,0x01, 0xE, +0 }, - { 0x02686F1,0x02755F1, 0x1C,0x00, 0xE, +0 }, - { 0x0099FE1,0x0086FE1, 0x3F,0x00, 0x1, +0 }, - { 0x019F7E2,0x0077A21, 0x3B,0x00, 0x0, +0 }, - { 0x00C9222,0x00DA261, 0x1E,0x06, 0xE, +0 }, - { 0x122F421,0x05FA321, 0x15,0x00, 0xE, +0 }, - { 0x16647F2,0x02742F1, 0x20,0x00, 0x2, +0 }, - { 0x0288861,0x049B261, 0x19,0x05, 0xE, +0 }, - { 0x01B8221,0x179B223, 0x16,0x00, 0x0, +0 }, - { 0x093CA21,0x01A7A22, 0x00,0x00, 0x0, +0 }, - { 0x1C99223,0x1288222, 0x00,0x00, 0x9, +0 }, - { 0x07BF321,0x05FC322, 0x1D,0x02, 0xE, +0 }, - { 0x12581E1,0x195C4A6, 0x00,0x86, 0x1, +0 }, - { 0x0013121,0x0154421, 0x27,0x00, 0xE, +0 }, - { 0x2358360,0x006D161, 0x14,0x00, 0xC, +0 }, - { 0x101D3E1,0x0378262, 0x5C,0x00, 0x0, +0 }, - { 0x2863428,0x0354121, 0x38,0x00, 0x0, +0 }, - { 0x1F35224,0x1F53223, 0x12,0x02, 0x4, +0 }, - { 0x0A66261,0x02661A1, 0x1D,0x00, 0xA, +0 }, - { 0x1D52222,0x1053F21, 0x0F,0x84, 0xA, +0 }, - { 0x024F9E3,0x0F6D131, 0x1F,0x01, 0x0, +0 }, - { 0x1554163,0x10541A2, 0x00,0x00, 0x7, +0 }, - { 0x165A7C7,0x0E4F3C1, 0x25,0x05, 0x0, +0 }, - { 0x1B7F7E3,0x1F59261, 0x19,0x00, 0x0, +0 }, - { 0x044A866,0x1E4F241, 0x9B,0x04, 0xE, +0 }, - { 0x0752261,0x0254561, 0x20,0x00, 0xC, +0 }, - { 0x084F6E1,0x036A3E1, 0x21,0x01, 0xE, +0 }, - { 0x16473E2,0x10598E1, 0x14,0x01, 0xA, +0 }, - { 0x0347221,0x1F6A324, 0x0B,0x02, 0x8, +0 }, - { 0x053F421,0x0F8F604, 0x16,0x00, 0xC, +0 }, - { 0x002DA21,0x0F5F335, 0x18,0x00, 0xC, +0 }, - { 0x063FA25,0x1E59402, 0x0F,0x00, 0x8, +0 }, - { 0x096F932,0x0448411, 0x07,0x00, 0x0, +0 }, - { 0x2189720,0x1188325, 0x0E,0x03, 0x8, +0 }, - { 0x029F661,0x1087862, 0x18,0x01, 0x0, +0 }, - { 0x01976E6,0x1088E61, 0x21,0x03, 0xA, +0 }, - { 0x0D4F027,0x046F205, 0x23,0x09, 0x0, +0 }, - { 0x131F91C,0x1E89615, 0x0C,0x00, 0xE, +0 }, - { 0x2167502,0x1F6F601, 0x00,0x00, 0x7, +0 }, - { 0x093F502,0x045C600, 0x1D,0x00, 0x0, +0 }, - { 0x032F511,0x0B4F410, 0x15,0x00, 0x4, +0 }, - { 0x099FA22,0x025D501, 0x06,0x00, 0x8, +0 }, - { 0x200FF2E,0x02D210E, 0x00,0x0E, 0xE, +0 }, - { 0x1E45630,0x2875517, 0x0B,0x00, 0x0, +0 }, - { 0x003FF24,0x1879805, 0x00,0x08, 0xC, +0 }, - { 0x200F00E,0x304170A, 0x00,0x04, 0xE, +0 }, - { 0x0F7F620,0x2F9770E, 0x08,0x05, 0x0, +0 }, - { 0x008F120,0x008F42E, 0x14,0x02, 0x0, +0 }, - { 0x100F220,0x1053623, 0x04,0x00, 0x2, +0 }, - { 0x002FF2E,0x355322A, 0x00,0x05, 0xE, +0 }, - { 0x00F9F3E,0x0FA8730, 0x00,0x00, 0xE, +0 }, - { 0x0977801,0x3988802, 0x00,0x00, 0x8, +0 }, - { 0x0FBF116,0x069F911, 0x08,0x00, 0x0, +0 }, - { 0x06CF800,0x04AE80E, 0x00,0x80, 0x0, +0 }, - { 0x0F3F900,0x08AF701, 0x00,0x00, 0x4, +0 }, - { 0x0FDFA01,0x047F601, 0x07,0x00, 0x4, +0 }, - { 0x000FF24,0x0A9F702, 0x00,0x00, 0xE, +0 }, - { 0x01FFA06,0x0F5F511, 0x0A,0x00, 0xD, +0 }, - { 0x0FEF22C,0x3D8B802, 0x00,0x06, 0x6, +0 }, - { 0x0F6822E,0x3F87404, 0x00,0x10, 0x4, +0 }, - { 0x2009F2C,0x3D4C50E, 0x00,0x05, 0xE, +0 }, - { 0x0F1F52E,0x3F78706, 0x09,0x03, 0x0, +0 }, - { 0x1A1F737,0x028F603, 0x14,0x00, 0x8, +0 }, - { 0x0FAFA25,0x0F99903, 0xC4,0x00, 0x0, +0 }, - { 0x1FAFB21,0x0F7A802, 0x03,0x00, 0x0, +0 }, - { 0x2FAF924,0x0F6A603, 0x18,0x00, 0xE, +0 }, - { 0x2F5F505,0x236F603, 0x14,0x00, 0x6, +0 }, - { 0x107AF20,0x22BA50E, 0x15,0x00, 0x4, +0 }, - { 0x107BF20,0x23B930E, 0x18,0x00, 0x0, +0 }, - { 0x0F7F020,0x33B8908, 0x00,0x01, 0xA, +0 }, - { 0x0FAF320,0x22B5308, 0x00,0x0A, 0x8, +0 }, - { 0x19AF815,0x089F613, 0x21,0x00, 0x8, +0 }, - { 0x0075F20,0x14B8708, 0x01,0x00, 0x0, +0 }, - { 0x1F75725,0x1677803, 0x12,0x00, 0x0, +0 }, - { 0x0F0F122,0x0FCF827, 0x2F,0x02, 0x6, +0 }, - { 0x0E5AD37,0x1A58211, 0x40,0x00, 0x0, +0 }, - { 0x053F335,0x1F5F111, 0xDA,0x03, 0x0, +0 }, - { 0x163F435,0x1F5F211, 0xCF,0x03, 0x0, +0 }, - { 0x163F374,0x1F5F251, 0xD3,0x03, 0x0, +0 }, - { 0x0F7F201,0x2C9F887, 0x06,0x15, 0x5, +0 }, - { 0x08EF63C,0x0F5F131, 0x1B,0x09, 0x0, +0 }, - { 0x20AFAB2,0x1F7C231, 0x15,0x05, 0xC, +0 }, - { 0x020F831,0x1DCF236, 0x0F,0x04, 0x0, +0 }, - { 0x234F825,0x085F401, 0xA2,0x07, 0x6, +0 }, - { 0x226F6C2,0x075A501, 0x05,0x05, 0x9, +0 }, - { 0x131F6F5,0x0E3F1F1, 0x2A,0x02, 0x0, +0 }, - { 0x0F8F8F8,0x064E4D1, 0x1A,0x07, 0xC, +0 }, - { 0x0F7F73C,0x0F5F531, 0x0C,0x06, 0x9, +0 }, - { 0x0F0B022,0x0F4C425, 0x21,0x08, 0x0, +0 }, - { 0x136F8C5,0x194C311, 0x09,0x06, 0x0, +0 }, - { 0x11BF4E2,0x11DD4E0, 0x08,0x04, 0x1, +0 }, - { 0x04CF7F2,0x00BF5F0, 0x02,0x04, 0x1, +0 }, - { 0x13DF4E0,0x13BF5E0, 0x03,0x00, 0x7, +0 }, - { 0x1166722,0x1086DE0, 0x09,0x05, 0xB, +0 }, - { 0x0066331,0x1175172, 0x27,0x04, 0x0, +0 }, - { 0x11653B4,0x1175171, 0x1B,0x06, 0xE, +0 }, - { 0x1057824,0x1085333, 0x1E,0x09, 0x0, +0 }, - { 0x11653B3,0x1175172, 0x1F,0x05, 0x0, +0 }, - { 0x127F833,0x0F8F231, 0x23,0x04, 0xE, +0 }, - { 0x132F418,0x1A7E211, 0x26,0x03, 0x0, +0 }, - { 0x0C1A233,0x09CB131, 0x9D,0x85, 0x8, +0 }, - { 0x1F4F335,0x1C9F232, 0x16,0x07, 0xA, +0 }, - { 0x07B9C21,0x0FB9402, 0x12,0x03, 0xA, +0 }, - { 0x24C8120,0x17AF126, 0x06,0x0C, 0x0, +0 }, - { 0x28B7120,0x378F120, 0x11,0x06, 0x0, +0 }, - { 0x38C7205,0x19CE203, 0x13,0x0A, 0x4, +0 }, - { 0x0B6AF31,0x0F78331, 0x00,0x00, 0x0, +0 }, - { 0x068F321,0x0FCC121, 0x17,0x06, 0x8, +0 }, - { 0x077FB21,0x06AC322, 0x00,0x03, 0x8, +0 }, - { 0x047A131,0x0878231, 0x97,0x84, 0xA, +0 }, - { 0x0A8FA25,0x197F312, 0x0D,0x00, 0x8, +0 }, - { 0x06CFA21,0x0FCF334, 0x05,0x07, 0xC, +0 }, - { 0x17FF521,0x0CCF322, 0x17,0x03, 0xE, +0 }, - { 0x09BA301,0x0AA9301, 0x13,0x04, 0xA, +0 }, - { 0x129F6E2,0x10878E1, 0x19,0x05, 0xC, +0 }, - { 0x129F6E2,0x10878E1, 0x1C,0x03, 0xC, +0 }, - { 0x0099861,0x1087E61, 0x20,0x03, 0xC, +0 }, - { 0x1017171,0x05651F1, 0x1E,0x06, 0xE, +0 }, - { 0x10670E2,0x11675E1, 0x23,0x04, 0xC, +0 }, - { 0x0E69802,0x0F6F521, 0x05,0x07, 0x9, +0 }, - { 0x075F602,0x0C5F401, 0x2A,0x82, 0xE, +0 }, - { 0x1BABF61,0x0468501, 0x40,0x00, 0x0, +0 }, - { 0x195CCE1,0x12850E1, 0x00,0x00, 0x0, +0 }, - { 0x2D6C0E2,0x15530E1, 0x27,0x09, 0xE, +0 }, - { 0x1556261,0x1566261, 0x26,0x03, 0xE, +0 }, - { 0x16372A1,0x00751A1, 0x18,0x07, 0xE, +0 }, - { 0x145B822,0x0278621, 0xD2,0x02, 0x0, +0 }, - { 0x1556321,0x0467321, 0xDE,0x05, 0x0, +0 }, - { 0x0F78642,0x1767450, 0x0A,0x00, 0xD, +0 }, - { 0x0026131,0x0388261, 0x1F,0x87, 0xE, +0 }, - { 0x0135571,0x0197061, 0x20,0x0B, 0xE, +0 }, - { 0x0166621,0x0097121, 0x1C,0x06, 0xE, +0 }, - { 0x21C7824,0x14B9321, 0x19,0x84, 0x0, +0 }, - { 0x0167921,0x05971A1, 0x21,0x03, 0xC, +0 }, - { 0x0358221,0x0388221, 0x1B,0x07, 0xE, +0 }, - { 0x0357221,0x0378222, 0x1A,0x87, 0xE, +0 }, - { 0x0586221,0x0167221, 0x23,0x06, 0xE, +0 }, - { 0x10759F1,0x00A7B61, 0x1B,0x06, 0x0, +0 }, - { 0x0049F21,0x10C8521, 0x16,0x07, 0xA, +0 }, - { 0x010B821,0x1DC72A6, 0x04,0x04, 0x8, +0 }, - { 0x0096831,0x1086334, 0x0B,0x09, 0x6, +0 }, - { 0x1058F31,0x00B5333, 0x14,0x16, 0x0, +0 }, - { 0x1079FA1,0x00A7724, 0x1D,0x08, 0xA, +0 }, - { 0x009D531,0x01D6175, 0x1B,0x4C, 0xA, +0 }, - { 0x0076172,0x01B6223, 0x26,0x10, 0xE, +0 }, - { 0x194A8E1,0x0086221, 0x0F,0x04, 0x0, +0 }, - { 0x00986F1,0x00B75E1, 0x9C,0x0B, 0x0, +0 }, - { 0x008DF22,0x0297761, 0x2C,0x03, 0x0, +0 }, - { 0x27A88E2,0x0097721, 0x2C,0x00, 0x0, +0 }, - { 0x05488E2,0x0087721, 0x17,0x0B, 0xE, +0 }, - { 0x02686F1,0x02755F1, 0x1F,0x04, 0xE, +0 }, - { 0x0099FE1,0x0086FE1, 0x3F,0x05, 0x1, +0 }, - { 0x004A822,0x0096A21, 0xE6,0x05, 0x0, +0 }, - { 0x00C9222,0x00DA261, 0x1B,0x0A, 0xE, +0 }, - { 0x122F461,0x05FA361, 0x15,0x04, 0xE, +0 }, - { 0x10ABB21,0x0096FA1, 0xD2,0x03, 0xC, +0 }, - { 0x0387761,0x0499261, 0x17,0x09, 0x8, +0 }, - { 0x21D7120,0x178F124, 0x08,0x05, 0x0, +0 }, - { 0x193CA21,0x01A7A21, 0x00,0x03, 0x0, +0 }, - { 0x1C99223,0x1089122, 0x06,0x08, 0xB, +0 }, - { 0x01BF321,0x05FE122, 0x1D,0x04, 0xE, +0 }, - { 0x15562E1,0x125FAC8, 0x01,0x0B, 0x5, +0 }, - { 0x0012161,0x01534E1, 0x26,0x02, 0xE, +0 }, - { 0x0358361,0x106D161, 0x19,0x02, 0xC, +0 }, - { 0x101D3E1,0x0378262, 0xDC,0x82, 0x0, +0 }, - { 0x166446A,0x0365161, 0x33,0x04, 0x0, +0 }, - { 0x0F38262,0x1F53261, 0x0B,0x06, 0x4, +0 }, - { 0x1766261,0x02661A1, 0x9A,0x04, 0xC, +0 }, - { 0x1D52222,0x1053F21, 0x13,0x06, 0xA, +0 }, - { 0x0F4F2E1,0x0F69121, 0x9C,0x05, 0xE, +0 }, - { 0x1554163,0x10541A2, 0x0A,0x06, 0xB, +0 }, - { 0x005F604,0x0E5F301, 0x18,0x0E, 0x0, +0 }, - { 0x196F9E3,0x1F5C261, 0x10,0x00, 0x8, +0 }, - { 0x1C6A144,0x1E5B241, 0xD2,0x06, 0xE, +0 }, - { 0x1772261,0x0264561, 0x94,0x05, 0xE, +0 }, - { 0x184F5E1,0x036A2E1, 0x19,0x07, 0xE, +0 }, - { 0x16473E2,0x10598E1, 0x14,0x07, 0xA, +0 }, - { 0x0348321,0x1F6C324, 0x0B,0x09, 0x8, +0 }, - { 0x19AFB25,0x1F7F432, 0x00,0x03, 0x0, +0 }, - { 0x002DA21,0x0F5F335, 0x1B,0x04, 0xC, +0 }, - { 0x034F763,0x1E5F301, 0x4E,0x05, 0x0, +0 }, - { 0x296F931,0x0F6F531, 0x0F,0x04, 0xA, +0 }, - { 0x1176731,0x01A7325, 0x17,0x0A, 0xE, +0 }, - { 0x129F6E1,0x20868E2, 0x15,0x07, 0x0, +0 }, - { 0x019A6E6,0x1088E61, 0x23,0x05, 0x0, +0 }, - { 0x0D4F027,0x046F205, 0x23,0x0C, 0x0, +0 }, - { 0x1167504,0x1F6C601, 0x07,0x00, 0x5, +0 }, - { 0x033F731,0x085F510, 0x19,0x00, 0x0, +0 }, - { 0x089FA22,0x025F501, 0x0F,0x05, 0xE, +0 }, - { 0x200FF2E,0x02D210E, 0x00,0x18, 0xE, +0 }, - { 0x0F45630,0x2875517, 0x00,0x00, 0x8, +0 }, - { 0x003FF20,0x3967604, 0x00,0x06, 0xE, +0 }, - { 0x200F00E,0x304170A, 0x00,0x13, 0xE, +0 }, - { 0x007F020,0x2F9920E, 0x0C,0x08, 0x0, +0 }, - { 0x008F120,0x008F42E, 0x14,0x08, 0x0, +0 }, - { 0x100F220,0x0052423, 0x09,0x05, 0xE, +0 }, - { 0x002FF2E,0x325332E, 0x00,0x0A, 0xE, +0 }, - { 0x0DF8120,0x0DFF310, 0x00,0x03, 0xE, +0 }, - { 0x1FCF720,0x04AF80A, 0x00,0x00, 0x6, +0 }, - { 0x053F600,0x07AF710, 0x0C,0x00, 0x0, +0 }, - { 0x0FEF227,0x3D8980A, 0x00,0x0C, 0x8, +0 }, - { 0x0F8F128,0x3667606, 0x00,0x0A, 0xC, +0 }, - { 0x050F335,0x1F5F111, 0x69,0x02, 0x0, +0 }, - { 0x2B49230,0x208A421, 0x0F,0x00, 0xC, +0 }, - { 0x0A7FB2C,0x0C9F281, 0x16,0x08, 0x0, +0 }, - { 0x08EA43A,0x085A131, 0x35,0x07, 0xC, +0 }, - { 0x0F7F838,0x0F5F537, 0x13,0x06, 0x8, +0 }, - { 0x061C21A,0x072C212, 0x18,0x03, 0x6, +0 }, - { 0x136F8C2,0x194C311, 0x03,0x03, 0x0, +0 }, - { 0x34FFAE1,0x11AD4E0, 0x07,0x07, 0x1, +0 }, - { 0x13DF9E3,0x03BF5E0, 0x00,0x00, 0x0, +0 }, - { 0x1F62334,0x1173131, 0x1E,0x06, 0xE, +0 }, - { 0x1F2F235,0x1A7E211, 0x02,0x03, 0x0, +0 }, - { 0x084FA37,0x1C9F232, 0x09,0x00, 0x0, +0 }, - { 0x3CEFA21,0x0FBF403, 0x03,0x00, 0x0, +0 }, - { 0x2989120,0x159B125, 0x06,0x06, 0x0, +0 }, - { 0x073F9A1,0x3FCA120, 0x0D,0x04, 0xA, +0 }, - { 0x036F821,0x0F7C123, 0x11,0x00, 0x8, +0 }, - { 0x017F821,0x0FAF223, 0x9E,0x00, 0xE, +0 }, - { 0x146F821,0x006C322, 0x0C,0x07, 0x6, +0 }, - { 0x047F531,0x087F233, 0x96,0x80, 0xA, +0 }, - { 0x0B8FA21,0x077F412, 0x04,0x07, 0x0, +0 }, - { 0x08CF921,0x0FCF334, 0x05,0x00, 0x0, +0 }, - { 0x066F801,0x1F6F521, 0x08,0x06, 0x8, +0 }, - { 0x09BF501,0x0AAF302, 0x19,0x04, 0xC, +0 }, - { 0x124F661,0x2065860, 0x17,0x0B, 0xE, +0 }, - { 0x006F701,0x3F6F720, 0x19,0x08, 0xE, +0 }, - { 0x1F4F461,0x0F5B500, 0x14,0x00, 0x0, +0 }, - { 0x104F6E1,0x12670E1, 0x23,0x05, 0xE, +0 }, - { 0x113F221,0x0055121, 0x20,0x09, 0xE, +0 }, - { 0x0026131,0x0388261, 0x1F,0x83, 0xE, +0 }, - { 0x0135571,0x0197061, 0x20,0x06, 0xE, +0 }, - { 0x0157121,0x0177122, 0x1C,0x00, 0xE, +0 }, - { 0x0257521,0x01771A1, 0x21,0x00, 0xC, +0 }, - { 0x0358221,0x0388221, 0x19,0x03, 0xE, +0 }, - { 0x0357221,0x0378222, 0x1A,0x82, 0xE, +0 }, - { 0x1058F31,0x0085333, 0x14,0x0A, 0x0, +0 }, - { 0x009D531,0x01B6175, 0x1B,0x84, 0xA, +0 }, - { 0x0076172,0x0186223, 0x26,0x0A, 0xE, +0 }, - { 0x00986F1,0x00A75E1, 0x9C,0x05, 0x0, +0 }, - { 0x02384F1,0x01655F2, 0x1D,0x00, 0xE, +0 }, - { 0x2D86901,0x0B65701, 0x1B,0x00, 0xC, +0 }, - { 0x0C4FF22,0x0077921, 0x00,0x0D, 0x0, +0 }, - { 0x05FB9A2,0x0FB9121, 0x0B,0x0F, 0xE, +0 }, - { 0x072FA62,0x198F541, 0x09,0x00, 0xC, +0 }, - { 0x21D8120,0x179F125, 0x08,0x05, 0x0, +0 }, - { 0x1C99223,0x1089122, 0x0C,0x0E, 0xD, +0 }, - { 0x01BF321,0x05FE121, 0x1D,0x0A, 0xE, +0 }, - { 0x001F1A1,0x0153421, 0x27,0x07, 0xE, +0 }, - { 0x2A2F120,0x315F321, 0x14,0x12, 0x0, +0 }, - { 0x034D2E8,0x1343261, 0xDD,0x8B, 0x0, +0 }, - { 0x053F265,0x1F33263, 0x0E,0x11, 0x0, +0 }, - { 0x0837222,0x1055221, 0x19,0x05, 0xC, +0 }, - { 0x074F161,0x07441A1, 0x22,0x06, 0xE, +0 }, - { 0x00553A1,0x0F43221, 0x25,0x00, 0xE, +0 }, - { 0x1554163,0x10541A2, 0x0A,0x03, 0xB, +0 }, - { 0x091F010,0x0E7A51E, 0x0C,0x00, 0x0, +0 }, - { 0x2B29130,0x204A121, 0x10,0x00, 0xC, +0 }, - { 0x0D6F662,0x2E5B241, 0x22,0x00, 0xE, +0 }, - { 0x104F021,0x0043221, 0x2B,0x06, 0xE, +0 }, - { 0x06473E4,0x10548E1, 0x25,0x08, 0x0, +0 }, - { 0x156FA23,0x0FBF622, 0x00,0x00, 0x0, +0 }, - { 0x28CFA21,0x1F7F331, 0x13,0x04, 0xC, +0 }, - { 0x0559131,0x3788133, 0x0D,0x02, 0xA, +0 }, - { 0x0411160,0x14431E6, 0x05,0x00, 0x8, +0 }, - { 0x0722121,0x2646129, 0x0D,0x0D, 0x4, +0 }, - { 0x3922220,0x0A44125, 0x84,0x82, 0x8, +0 }, - { 0x1023220,0x3343120, 0x03,0x00, 0xC, +0 }, - { 0x0B5F100,0x0C2D400, 0x0B,0x07, 0xA, +0 }, - { 0x300FF36,0x2F4F41E, 0x09,0x00, 0xE, +0 }, - { 0x0211131,0x0937122, 0x0A,0x02, 0xA, +0 }, - { 0x1728281,0x0743182, 0x0E,0x05, 0xC, +0 }, - { 0x0331221,0x1243122, 0x00,0x00, 0x8, +0 }, - { 0x0F9F700,0x0CA8601, 0x08,0x00, 0x0, +0 }, - { 0x1F3F030,0x1F4F130, 0x54,0x00, 0xA, +12 }, - { 0x0F3F030,0x1F4F130, 0x52,0x00, 0xA, +12 }, - { 0x1F3E130,0x0F4F130, 0x4E,0x00, 0x8, +12 }, - { 0x015E811,0x014F712, 0x00,0x00, 0x1, +12 }, - { 0x153F110,0x0F4D110, 0x4F,0x00, 0x6, +12 }, - { 0x053F111,0x0F4D111, 0x4F,0x00, 0x6, +12 }, - { 0x051F121,0x0E5D231, 0x66,0x00, 0x6, +0 }, - { 0x0E6F130,0x0E5F1B0, 0x51,0x40, 0x6, +12 }, - { 0x079F212,0x099F110, 0x43,0x40, 0x9, +12 }, - { 0x201F230,0x1F4C130, 0x87,0x00, 0x6, +12 }, - { 0x162A190,0x1A79110, 0x8E,0x00, 0xC, +12 }, - { 0x164F228,0x0E4F231, 0x4F,0x00, 0x8, +0 }, - { 0x0119113,0x0347D14, 0x0E,0x00, 0x9, +0 }, - { 0x041F6B2,0x092D290, 0x0F,0x00, 0x0, +12 }, - { 0x0F3F1F0,0x0F4F1F2, 0x02,0x00, 0x1, +12 }, - { 0x0157980,0x275F883, 0x00,0x00, 0x1, +12 }, - { 0x093F614,0x053F610, 0x1F,0x00, 0x8, +12 }, - { 0x113B681,0x013FF02, 0x99,0x00, 0xA, +0 }, - { 0x0119130,0x0535211, 0x47,0x80, 0x8, +12 }, - { 0x016B1A0,0x117D161, 0x88,0x80, 0x7, +12 }, - { 0x105F130,0x036F494, 0x00,0x00, 0x7, +0 }, - { 0x017F2E2,0x107FF60, 0x9E,0x80, 0x0, +0 }, - { 0x117F2E0,0x007FFA0, 0x9E,0x80, 0x0, +12 }, - { 0x0043030,0x1145431, 0x92,0x80, 0x9, +12 }, - { 0x0178000,0x1176081, 0x49,0x80, 0x6, +12 }, - { 0x015A220,0x1264131, 0x48,0x00, 0xA, +12 }, - { 0x0158220,0x1264631, 0x4A,0x00, 0xA, +12 }, - { 0x03460B0,0x01642B2, 0x0C,0x80, 0x8, +12 }, - { 0x105F020,0x2055231, 0x92,0x00, 0x8, +12 }, - { 0x105F020,0x2055231, 0x92,0x00, 0x0, +12 }, - { 0x0F5F120,0x0F6F120, 0x8D,0x00, 0x0, +12 }, - { 0x1E4E130,0x0E3F230, 0x0D,0x00, 0xA, +12 }, - { 0x21FF100,0x088F400, 0x21,0x00, 0xA, +12 }, - { 0x132EA10,0x2E7D210, 0x87,0x00, 0x2, +12 }, - { 0x0F4E030,0x0F5F230, 0x92,0x80, 0x0, +12 }, - { 0x0FFF100,0x1FFF051, 0x10,0x00, 0xA, +12 }, - { 0x0FFF110,0x1FFF051, 0x0D,0x00, 0xC, +12 }, - { 0x297A110,0x0E7E111, 0x43,0x00, 0x0, +12 }, - { 0x020C420,0x0F6C3B0, 0x0E,0x00, 0x0, +12 }, - { 0x0FFF030,0x0F8F131, 0x96,0x00, 0xA, +12 }, - { 0x014E020,0x0D6E130, 0x8F,0x80, 0x8, +12 }, - { 0x14551E1,0x14691A0, 0x4D,0x00, 0x0, +0 }, - { 0x14551A1,0x14681A0, 0x4D,0x00, 0x0, +12 }, - { 0x2E7F030,0x047F131, 0x00,0x00, 0x0, +0 }, - { 0x0E5F030,0x0F5F131, 0x90,0x80, 0x8, +12 }, - { 0x1F5F430,0x0F6F330, 0x0A,0x00, 0xA, +12 }, - { 0x1468330,0x017D231, 0x15,0x00, 0xA, +12 }, - { 0x1455060,0x14661A1, 0x17,0x00, 0x6, +12 }, - { 0x04460F0,0x0154171, 0x8F,0x00, 0x2, +12 }, - { 0x214D0B0,0x1176261, 0x0F,0x80, 0x6, +0 }, - { 0x211B1F0,0x115A020, 0x8A,0x80, 0x6, +12 }, - { 0x201C3F0,0x0058361, 0x89,0x40, 0x6, +0 }, - { 0x201B370,0x1059360, 0x89,0x40, 0x6, +12 }, - { 0x2F9F830,0x0E67620, 0x97,0x00, 0xE, +12 }, - { 0x035F131,0x0B3F320, 0x24,0x00, 0x0, +12 }, - { 0x0C8AA00,0x0B3D210, 0x04,0x00, 0xA, +12 }, - { 0x104C060,0x10455B1, 0x51,0x80, 0x4, +12 }, - { 0x10490A0,0x1045531, 0x52,0x80, 0x6, +12 }, - { 0x1059020,0x10535A1, 0x51,0x80, 0x4, +12 }, - { 0x10590A0,0x1053521, 0x52,0x80, 0x6, +12 }, - { 0x20569A1,0x20266F1, 0x93,0x00, 0xA, +0 }, - { 0x0031121,0x1043120, 0x4D,0x80, 0x0, +12 }, - { 0x2331100,0x1363100, 0x82,0x80, 0x8, +12 }, - { 0x0549060,0x0047060, 0x56,0x40, 0x0, +12 }, - { 0x0549020,0x0047060, 0x92,0xC0, 0x0, +12 }, - { 0x0B7B1A0,0x08572A0, 0x99,0x80, 0x0, +12 }, - { 0x05460B0,0x07430B0, 0x5A,0x80, 0x0, +12 }, - { 0x0433010,0x0146410, 0x90,0x00, 0x2, -12 }, - { 0x0425090,0x0455411, 0x8F,0x00, 0x2, +0 }, - { 0x1158020,0x0365130, 0x8E,0x00, 0xA, +12 }, - { 0x01F71B0,0x03B7220, 0x1A,0x80, 0xE, +12 }, - { 0x0468020,0x1569220, 0x16,0x00, 0xC, +12 }, - { 0x1E68080,0x1F65190, 0x8D,0x00, 0xC, +12 }, - { 0x0B87020,0x0966120, 0x22,0x80, 0xE, +12 }, - { 0x0B87020,0x0966120, 0x23,0x80, 0xE, +12 }, - { 0x1156020,0x0365130, 0x8E,0x00, 0xA, +12 }, - { 0x1177030,0x1366130, 0x92,0x00, 0xE, +12 }, - { 0x2A69120,0x1978120, 0x4D,0x00, 0xC, +12 }, - { 0x2A69120,0x1979120, 0x8C,0x00, 0xC, +12 }, - { 0x2A68130,0x1976130, 0x50,0x00, 0xC, +12 }, - { 0x2A68130,0x1976130, 0x4A,0x00, 0xA, +12 }, - { 0x00560A0,0x11652B1, 0x96,0x00, 0x6, +12 }, - { 0x10670A0,0x11662B0, 0x89,0x00, 0x6, +12 }, - { 0x00B98A0,0x10B73B0, 0x4A,0x00, 0xA, +12 }, - { 0x10B90A0,0x11B63B0, 0x85,0x00, 0xA, +12 }, - { 0x0167070,0x0085CA2, 0x90,0x80, 0x6, +12 }, - { 0x007C820,0x1077331, 0x4F,0x00, 0xA, +12 }, - { 0x0199030,0x01B6131, 0x91,0x80, 0xA, +12 }, - { 0x017A530,0x01763B0, 0x8D,0x80, 0x8, +12 }, - { 0x08F6EF0,0x02A3570, 0x80,0x00, 0xE, +12 }, - { 0x08850A0,0x02A5560, 0x93,0x80, 0x8, +12 }, - { 0x0176520,0x02774A0, 0x0A,0x00, 0xB, +12 }, - { 0x12724B0,0x01745B0, 0x84,0x00, 0x9, +12 }, - { 0x00457E1,0x0375760, 0xAD,0x00, 0xE, +12 }, - { 0x33457F1,0x05D67E1, 0x28,0x00, 0xE, +0 }, - { 0x00F31D0,0x0053270, 0xC7,0x00, 0xB, +12 }, - { 0x00551B0,0x0294230, 0xC7,0x00, 0xB, +12 }, - { 0x15B5122,0x1256030, 0x52,0x00, 0x0, +12 }, - { 0x15B9122,0x125F030, 0x4D,0x00, 0x0, +12 }, - { 0x19BC120,0x165C031, 0x43,0x00, 0x8, +12 }, - { 0x1ABB160,0x005F131, 0x41,0x00, 0x8, +12 }, - { 0x33357F0,0x00767E0, 0x28,0x00, 0xE, +12 }, - { 0x30457E0,0x04D67E0, 0x23,0x00, 0xE, +12 }, - { 0x304F7E0,0x04D87E0, 0x23,0x00, 0xE, +12 }, - { 0x10B78A1,0x12BF130, 0x42,0x00, 0x8, +12 }, - { 0x0558060,0x014F2E0, 0x21,0x00, 0x8, +12 }, - { 0x0559020,0x014A2A0, 0x21,0x00, 0x8, +12 }, - { 0x195C120,0x16370B0, 0x43,0x80, 0xA, +12 }, - { 0x19591A0,0x1636131, 0x49,0x00, 0xA, +7 }, - { 0x1075124,0x229FDA0, 0x40,0x00, 0x9, +0 }, - { 0x0053280,0x0053360, 0xC0,0x00, 0x9, +12 }, - { 0x0053240,0x00533E0, 0x40,0x00, 0x9, +12 }, - { 0x2A5A1A0,0x196A1A0, 0x8F,0x00, 0xC, +12 }, - { 0x005F0E0,0x0548160, 0x44,0x00, 0x1, +12 }, - { 0x105F0E0,0x0547160, 0x44,0x80, 0x1, +12 }, - { 0x033A180,0x05452E0, 0x8A,0x00, 0x7, +12 }, - { 0x1528081,0x1532340, 0x9D,0x80, 0xE, +12 }, - { 0x14551E1,0x14691A0, 0x4D,0x00, 0x0, +12 }, - { 0x15211E1,0x17380E0, 0x8C,0x80, 0x8, +12 }, - { 0x0477220,0x019F883, 0x40,0x00, 0xB, +12 }, - { 0x1028500,0x11245C1, 0xD2,0x00, 0xA, +0 }, - { 0x0034522,0x23535E3, 0xD2,0x00, 0xA, +7 }, - { 0x074F604,0x024A302, 0xC0,0x00, 0x0, -12 }, - { 0x0D2C090,0x0D2D130, 0x8E,0x00, 0x0, +12 }, - { 0x0D2D090,0x0D2F130, 0x8E,0x00, 0x0, +12 }, - { 0x0F390D0,0x0F3C2C0, 0x12,0x00, 0x0, +12 }, - { 0x0F390D0,0x0F2C2C0, 0x12,0x80, 0x0, +12 }, - { 0x15213E0,0x21333F1, 0x1A,0x80, 0x0, +0 }, - { 0x0BA45E0,0x19132F0, 0x1A,0x00, 0x0, +12 }, - { 0x1025810,0x0724202, 0x18,0x00, 0xA, +12 }, - { 0x0B36320,0x0B36324, 0x08,0x00, 0x2, +12 }, - { 0x0127730,0x1F4F310, 0x0D,0x00, 0x4, +12 }, - { 0x033F900,0x273F400, 0x80,0x80, 0x0, +12 }, - { 0x2ACF907,0x229F90F, 0x1A,0x00, 0x0, +12 }, - { 0x153F220,0x0E49122, 0x21,0x00, 0x8, +12 }, - { 0x339F103,0x074D615, 0x4F,0x00, 0x6, +0 }, - { 0x1158930,0x2076B21, 0x42,0x00, 0xA, +12 }, - { 0x003A130,0x0265221, 0x1F,0x00, 0xE, +12 }, - { 0x0134030,0x1166130, 0x13,0x80, 0x8, +12 }, - { 0x032A113,0x172B212, 0x00,0x80, 0x1, +5 }, - { 0x001E795,0x0679616, 0x81,0x00, 0x4, +12 }, - { 0x104F003,0x0058220, 0x49,0x00, 0x6, +12 }, - { 0x0D1F813,0x078F512, 0x44,0x00, 0x6, +12 }, - { 0x0ECA710,0x0F5D510, 0x0B,0x00, 0x0, +0 }, - { 0x0C8A820,0x0B7D601, 0x0B,0x00, 0x0, +0 }, - { 0x0C4F800,0x0B7D300, 0x0B,0x00, 0x0, +12 }, - { 0x031410C,0x31D2110, 0x8F,0x80, 0xE, +0 }, - { 0x1B33432,0x3F75431, 0x21,0x00, 0xE, +12 }, - { 0x00437D1,0x0343750, 0xAD,0x00, 0xE, +12 }, - { 0x2013E02,0x2F31408, 0x00,0x00, 0xE, +0 }, - { 0x003EBF5,0x06845F6, 0xD4,0x00, 0x7, +0 }, - { 0x171DAF0,0x117B0CA, 0x00,0xC0, 0x8, +0 }, - { 0x1111EF0,0x11121E2, 0x00,0xC0, 0x8, -24 }, - { 0x20053EF,0x30210EF, 0x86,0xC0, 0xE, +12 }, - { 0x2F0F00C,0x0E6F604, 0x00,0x00, 0xE, +0 }, - { 0x047FA00,0x006F900, 0x00,0x00, 0x6, +12 }, - { 0x067FD02,0x078F703, 0x80,0x00, 0x6, +12 }, - { 0x214F70F,0x247F900, 0x05,0x00, 0xE, +12 }, - { 0x3FB88E1,0x2A8A6FF, 0x00,0x00, 0xF, +12 }, - { 0x0FFAA06,0x0FAF700, 0x00,0x00, 0xE, +12 }, - { 0x06CF502,0x138F703, 0x00,0x00, 0x7, +0 }, - { 0x078F502,0x137F700, 0x00,0x00, 0x7, +0 }, - { 0x037F502,0x137F702, 0x00,0x00, 0x3, +12 }, - { 0x0E6C204,0x343E800, 0x10,0x00, 0xE, +12 }, - { 0x212FD03,0x205FD02, 0x80,0x80, 0xA, +12 }, - { 0x085E400,0x234D7C0, 0x80,0x80, 0xE, +12 }, - { 0x0E6E204,0x144B801, 0x90,0x00, 0xE, +12 }, - { 0x2777602,0x3679801, 0x87,0x00, 0xF, +12 }, - { 0x270F604,0x3A3C607, 0x81,0x00, 0xE, +12 }, - { 0x067FD00,0x098F601, 0x00,0x00, 0x6, +12 }, - { 0x0F0F081,0x004F49F, 0x00,0xC3, 0xA, +0 }, - { 0x056FB03,0x017F700, 0x81,0x00, 0x0, +12 }, - { 0x2D65A00,0x0FFFFBF, 0x0E,0xC0, 0xA, +12 }, - { 0x1C7F900,0x0FFFF80, 0x07,0xC0, 0xA, +12 }, - { 0x1D1F813,0x078F512, 0x44,0x00, 0x6, +12 }, - { 0x1DC5E01,0x0FFFFBF, 0x0B,0xC0, 0xA, +12 }, - { 0x113F020,0x027E322, 0x8C,0x80, 0xA, +12 }, - { 0x125A020,0x136B220, 0x86,0x00, 0x6, +12 }, - { 0x015C520,0x0A6D221, 0x28,0x00, 0xC, +12 }, - { 0x1006010,0x0F68110, 0x1A,0x00, 0x8, +12 }, - { 0x2E7F030,0x047F131, 0x12,0x00, 0x0, +0 }, - { 0x1E7F510,0x2E7F610, 0x0D,0x00, 0xD, +12 }, - { 0x0465020,0x1569220, 0x96,0x80, 0xC, +12 }, - { 0x075FC01,0x037F800, 0x00,0x00, 0x0, +12 }, - { 0x175F701,0x336FC00, 0xC0,0x00, 0xC, +54 }, - { 0x2709404,0x3A3C607, 0x81,0x00, 0xE, +12 }, - { 0x0B5F901,0x050D4BF, 0x07,0xC0, 0xB, +12 }, - { 0x0FFF110,0x1FFF051, 0x06,0x00, 0x2, +12 }, - { 0x0069421,0x0A6C3A2, 0x0E,0x00, 0x2, +0 }, - { 0x000F081,0x004F41F, 0x00,0xC3, 0xA, +0 }, - { 0x03BF271,0x00BF3A1, 0x0E,0x00, 0x6, +0 }, - { 0x054F60C,0x0B5F341, 0x5C,0x00, 0x0, +0 }, - { 0x0E6F318,0x0F6F241, 0x62,0x00, 0x0, +0 }, - { 0x082D385,0x0E3A341, 0x59,0x80, 0xC, +0 }, - { 0x1557403,0x005B341, 0x49,0x80, 0x4, +0 }, - { 0x014F6B1,0x007F131, 0x92,0x00, 0x2, +0 }, - { 0x058C7B2,0x008C730, 0x14,0x00, 0x2, +0 }, - { 0x018AAB0,0x0088A71, 0x44,0x00, 0x4, +0 }, - { 0x1239723,0x0145571, 0x93,0x00, 0x4, +0 }, - { 0x10497A1,0x0045571, 0x13,0x80, 0x0, +0 }, - { 0x12A9824,0x01A4671, 0x48,0x00, 0xC, +0 }, - { 0x10691A1,0x0076121, 0x13,0x00, 0xA, +0 }, - { 0x0067121,0x0076161, 0x13,0x89, 0x6, +0 }, - { 0x194F302,0x0C8F381, 0x9C,0x80, 0xC, +0 }, - { 0x04F2009,0x0F8D144, 0xA1,0x80, 0x8, +0 }, - { 0x0069421,0x0A6C362, 0x1E,0x00, 0x2, +0 }, - { 0x11CD1B1,0x00C6131, 0x49,0x00, 0x8, +0 }, - { 0x1037F61,0x1073F21, 0x98,0x00, 0x0, +0 }, - { 0x012C161,0x0054FA1, 0x93,0x00, 0xA, +0 }, - { 0x022C121,0x0054FA1, 0x18,0x00, 0xC, +0 }, - { 0x015F431,0x0058AB2, 0x5B,0x83, 0x0, +0 }, - { 0x0397461,0x06771A1, 0x90,0x00, 0x0, +0 }, - { 0x00554B1,0x0057AB2, 0x57,0x00, 0xC, +0 }, - { 0x0635450,0x045A581, 0x00,0x00, 0x8, +0 }, - { 0x0157621,0x03782A1, 0x94,0x00, 0xC, +0 }, - { 0x01F75A1,0x00F7422, 0x8A,0x06, 0x8, +0 }, - { 0x1557261,0x0187121, 0x86,0x0D, 0x0, +0 }, - { 0x1029331,0x00B72A1, 0x8F,0x00, 0x8, +0 }, - { 0x1039331,0x00982A1, 0x91,0x00, 0xA, +0 }, - { 0x10F9331,0x00F72A1, 0x8E,0x00, 0xA, +0 }, - { 0x01F7561,0x00A7521, 0x9C,0x00, 0x2, +0 }, - { 0x05666E1,0x0266561, 0x4C,0x00, 0x0, +0 }, - { 0x04676A2,0x0365561, 0xCB,0x00, 0x0, +0 }, - { 0x00757A2,0x0075661, 0x99,0x00, 0xB, +0 }, - { 0x00777A2,0x0077661, 0x93,0x00, 0xB, +0 }, - { 0x0126621,0x00A9661, 0x45,0x00, 0x0, +0 }, - { 0x005DF62,0x0076FA1, 0x9E,0x40, 0x2, +0 }, - { 0x001EF20,0x2068FA0, 0x1A,0x00, 0x0, +0 }, - { 0x09453B7,0x005A061, 0xA5,0x00, 0x2, +0 }, - { 0x011A8A1,0x0032571, 0x1F,0x80, 0xA, +0 }, - { 0x03491A1,0x01655A1, 0x17,0x00, 0xC, +0 }, - { 0x00154B1,0x0036AB2, 0x5D,0x00, 0x0, +0 }, - { 0x0432121,0x0354262, 0x97,0x00, 0x8, +0 }, - { 0x177A161,0x1473121, 0x1C,0x00, 0x0, +0 }, - { 0x0F6F83A,0x0028691, 0xCE,0x00, 0x2, +0 }, - { 0x081B122,0x026F2A1, 0x92,0x83, 0xC, +0 }, - { 0x151F181,0x0F5F282, 0x4D,0x00, 0x0, +0 }, - { 0x15111A1,0x0131163, 0x94,0x80, 0x6, +0 }, - { 0x032D453,0x111EB51, 0x91,0x00, 0x8, +0 }, - { 0x303FF40,0x014FF10, 0x00,0x0D, 0xC, +0 }, - { 0x306F640,0x3176711, 0x00,0x00, 0xE, +0 }, - { 0x205F540,0x3164611, 0x00,0x09, 0xE, +0 }, - { 0x048F881,0x0057582, 0x45,0x08, 0x0, +0 }, - { 0x132FA13,0x1F9F211, 0x80,0x0A, 0x8, +0 }, - { 0x0F2F409,0x0E2F211, 0x1B,0x80, 0x2, +0 }, - { 0x0F3D403,0x0F3A340, 0x94,0x40, 0x6, +0 }, - { 0x1058761,0x0058730, 0x80,0x03, 0x7, +0 }, - { 0x174A423,0x0F8F271, 0x9D,0x80, 0xC, +0 }, - { 0x0007FF1,0x1167F21, 0x8D,0x00, 0x0, +0 }, - { 0x0759511,0x1F5C501, 0x0D,0x80, 0x0, +0 }, - { 0x073F222,0x0F3F331, 0x97,0x80, 0x2, +0 }, - { 0x105F510,0x0C3F411, 0x41,0x00, 0x6, +0 }, - { 0x01096C1,0x1166221, 0x8B,0x00, 0x6, +0 }, - { 0x01096C1,0x1153221, 0x8E,0x00, 0x6, +0 }, - { 0x012C4A1,0x0065F61, 0x97,0x00, 0xE, +0 }, - { 0x010E4B1,0x0056A62, 0xCD,0x83, 0x0, +0 }, - { 0x0F57591,0x144A440, 0x0D,0x00, 0xE, +0 }, - { 0x0256421,0x0088F21, 0x92,0x01, 0xC, +0 }, - { 0x0167421,0x0078F21, 0x93,0x00, 0xC, +0 }, - { 0x0176421,0x0378261, 0x94,0x00, 0xC, +0 }, - { 0x0195361,0x0077F21, 0x94,0x04, 0xA, +0 }, - { 0x0187461,0x0088422, 0x8F,0x00, 0xA, +0 }, - { 0x016A571,0x00A8F21, 0x4A,0x00, 0x8, +0 }, - { 0x00A8871,0x1198131, 0x4A,0x00, 0x0, +0 }, - { 0x0219632,0x0187261, 0x4A,0x00, 0x4, +0 }, - { 0x04A85E2,0x01A85E1, 0x59,0x00, 0x0, +0 }, - { 0x02887E1,0x01975E1, 0x48,0x00, 0x0, +0 }, - { 0x0451261,0x1045F21, 0x8E,0x84, 0x8, +0 }, - { 0x106A510,0x004FA00, 0x86,0x03, 0x6, +0 }, - { 0x202A50E,0x017A700, 0x09,0x00, 0xE, +0 }, - { 0x0F6B710,0x005F011, 0x40,0x00, 0x6, +0 }, - { 0x00BF506,0x008F602, 0x07,0x00, 0xA, +0 }, - { 0x001FF0E,0x008FF0E, 0x00,0x00, 0xE, +0 }, - { 0x209F300,0x005F600, 0x06,0x00, 0x4, +0 }, - { 0x006F60C,0x247FB12, 0x00,0x00, 0xE, +0 }, - { 0x004F60C,0x244CB12, 0x00,0x05, 0xE, +0 }, - { 0x001F60C,0x242CB12, 0x00,0x00, 0xA, +0 }, - { 0x000F00E,0x3049F40, 0x00,0x00, 0xE, +0 }, - { 0x030F50E,0x0039F50, 0x00,0x04, 0xE, +0 }, - { 0x204940E,0x0F78700, 0x02,0x0A, 0xA, +0 }, - { 0x000F64E,0x2039F1E, 0x00,0x00, 0xE, +0 }, - { 0x000F60E,0x3029F50, 0x00,0x00, 0xE, +0 }, - { 0x100FF00,0x014FF10, 0x00,0x00, 0xC, +0 }, - { 0x04F760E,0x2187700, 0x40,0x03, 0xE, +0 }, - { 0x1F4FC02,0x0F4F712, 0x00,0x05, 0x6, +0 }, - { 0x053F101,0x074D211, 0x4F,0x00, 0x6, +0 }, - { 0x00381A5,0x005F1B2, 0xD2,0x80, 0x2, +0 }, - { 0x0F0FB3E,0x09BA0B1, 0x29,0x00, 0x0, +0 }, - { 0x315EF11,0x0B5F441, 0x53,0x00, 0x8, +0 }, - { 0x0F7F000,0x0068761, 0x30,0x00, 0xF, +0 }, - { 0x0100133,0x0337D14, 0x87,0x80, 0x8, +0 }, - { 0x1FFF000,0x1FFF001, 0x0A,0x00, 0xE, +0 }, - { 0x0AE71E1,0x09E81E1, 0x16,0x00, 0xA, +0 }, - { 0x2831621,0x0C31320, 0xDA,0x00, 0x8, +0 }, - { 0x0022A95,0x0F34212, 0x97,0x80, 0x0, +0 }, - { 0x001EF4F,0x0F19801, 0x81,0x00, 0x4, +0 }, - { 0x019D530,0x01B61B1, 0x88,0x80, 0xC, +0 }, - { 0x0176E71,0x00E8B22, 0xC5,0x05, 0x2, +0 }, - { 0x0157261,0x0278461, 0x1C,0x00, 0xE, +0 }, - { 0x0427847,0x0548554, 0x4D,0x00, 0xA, +0 }, - { 0x011F111,0x0B3F101, 0x4A,0x88, 0x6, +0 }, - { 0x0117171,0x11562A1, 0x8B,0x00, 0x6, +0 }, - { 0x0035172,0x0135262, 0x1C,0x05, 0xE, +0 }, - { 0x0035131,0x06754A1, 0x1C,0x80, 0xE, +0 }, - { 0x0115270,0x0FE3171, 0xC5,0x40, 0x0, +0 }, - { 0x021FF13,0x003FF11, 0x96,0x80, 0xA, +0 }, - { 0x01797F1,0x018F121, 0x01,0x0D, 0x8, +0 }, - { 0x0F7F0F5,0x00687B1, 0x2E,0x00, 0xB, +0 }, - { 0x01B5132,0x03BA2A1, 0x9A,0x82, 0xC, +0 }, - { 0x0176E71,0x00E8B62, 0xC5,0x05, 0x2, +0 }, - { 0x019D530,0x01B61B1, 0xCD,0x40, 0xC, +0 }, - { 0x00B4131,0x03B92A1, 0x1C,0x80, 0xC, +0 }, - { 0x01D5321,0x03B52A1, 0x1C,0x80, 0xC, +0 }, - { 0x01F4171,0x03B92A1, 0x1C,0x80, 0xE, +0 }, - { 0x0177421,0x0176562, 0x83,0x00, 0x7, +0 }, - { 0x0AE7121,0x09E8121, 0x16,0x00, 0xE, +0 }, - { 0x212AA53,0x021AC51, 0x97,0x80, 0xE, +0 }, - { 0x112AA43,0x1119B51, 0x1C,0x00, 0xE, +0 }, - { 0x001FFA4,0x0F3F53E, 0xDB,0xC0, 0x4, +0 }, - { 0x0AC9011,0x1F4F071, 0x1A,0x00, 0xF, +0 }, - { 0x22F55B0,0x31E87E0, 0x16,0x80, 0xC, +0 }, - { 0x08F6EE0,0x02A65A1, 0xEC,0x00, 0xE, +0 }, - { 0x2A2B264,0x1D49703, 0x02,0x80, 0xE, +0 }, - { 0x0F3F8E2,0x0F3F770, 0x86,0x40, 0x4, +0 }, - { 0x0F0E026,0x031FF1E, 0x03,0x00, 0x8, +0 }, - { 0x0056541,0x0743291, 0x83,0x00, 0xA, +0 }, - { 0x061F217,0x0B2F112, 0x4F,0x08, 0x8, +0 }, - { 0x011F111,0x061D001, 0x4A,0x40, 0x6, +0 }, - { 0x282B264,0x1DA9803, 0x00,0x00, 0xE, +0 }, - { 0x282B264,0x1D49703, 0x00,0x80, 0xE, +0 }, - { 0x06F9A02,0x007A006, 0x00,0x00, 0x0, +0 }, - { 0x0B2F131,0x0AFF111, 0x8F,0x83, 0x8, +0 }, - { 0x0B2F131,0x0D5C131, 0x19,0x01, 0x9, +0 }, - { 0x0D2F111,0x0E6F211, 0x4C,0x83, 0xA, +0 }, - { 0x0D5C111,0x0E6C231, 0x15,0x00, 0xB, +0 }, - { 0x0D4F315,0x0E4B115, 0x5F,0x61, 0xE, +0 }, - { 0x0E4B111,0x0B5B111, 0x5C,0x00, 0xE, +0 }, - { 0x0D4F111,0x0E4C302, 0x89,0x5F, 0xD, +12 }, - { 0x035C100,0x0D5C111, 0x9B,0x00, 0xC, +0 }, - { 0x050F210,0x0F0E131, 0x60,0x5D, 0x4, +12 }, - { 0x040B230,0x5E9F111, 0xA2,0x80, 0x4, +0 }, - { 0x0E3F217,0x0E2C211, 0x54,0x06, 0xA, +0 }, - { 0x0C3F219,0x0D2F291, 0x2B,0x07, 0xB, +0 }, - { 0x004A61A,0x004F600, 0x27,0x0A, 0x3, +0 }, - { 0x0790824,0x0E6E384, 0x9A,0x5B, 0xA, +12 }, - { 0x0E6F314,0x0E6F280, 0x62,0x00, 0xB, +0 }, - { 0x055F71C,0x0D88520, 0xA3,0x0D, 0x6, +0 }, - { 0x055F718,0x0D8E521, 0x23,0x00, 0x7, +0 }, - { 0x0F7E701,0x1557403, 0x84,0x49, 0xD, +0 }, - { 0x005B301,0x0F77601, 0x80,0x80, 0xD, +0 }, - { 0x02AA2A0,0x02AA522, 0x85,0x9E, 0x7, +0 }, - { 0x02AA5A2,0x02AA128, 0x83,0x95, 0x7, +0 }, - { 0x038C620,0x057F621, 0x81,0x80, 0x7, +0 }, - { 0x00AAFE1,0x00AAF62, 0x91,0x83, 0x9, +0 }, - { 0x002B025,0x0057030, 0x5F,0x40, 0xC, +0 }, - { 0x002C031,0x0056031, 0x46,0x80, 0xD, +0 }, - { 0x015C821,0x0056F31, 0x93,0x00, 0xC, +0 }, - { 0x005CF31,0x0057F32, 0x16,0x87, 0xD, +0 }, - { 0x4F2B913,0x0119102, 0x0D,0x1A, 0xA, +0 }, - { 0x14A9221,0x02A9122, 0x99,0x00, 0xA, +0 }, - { 0x242F823,0x2FA9122, 0x96,0x1A, 0x0, +0 }, - { 0x0BA9221,0x04A9122, 0x99,0x00, 0x0, +0 }, - { 0x0487131,0x0487131, 0x19,0x00, 0xD, +0 }, - { 0x0DAF904,0x0DFF701, 0x0B,0x80, 0x9, +0 }, - { 0x09AA101,0x0DFF221, 0x89,0x40, 0x6, +0 }, - { 0x0DAF904,0x0DFF701, 0x0B,0x80, 0x7, +0 }, - { 0x0C8F621,0x0C8F101, 0x1C,0x1F, 0xA, +0 }, - { 0x0C8F101,0x0C8F201, 0xD8,0x00, 0xA, +0 }, - { 0x1038D12,0x0866503, 0x95,0x8B, 0x9, +0 }, - { 0x113DD31,0x0265621, 0x17,0x00, 0x8, +0 }, - { 0x012C121,0x0054F61, 0x1A,0x00, 0xC, +0 }, - { 0x012C1A1,0x0054F21, 0x93,0x00, 0xD, +0 }, - { 0x022C122,0x0054F22, 0x0B,0x1C, 0xD, +0 }, - { 0x0F5A006,0x035A3E4, 0x03,0x23, 0xE, +0 }, - { 0x0077FA1,0x0077F61, 0x51,0x00, 0xF, +0 }, - { 0x0578402,0x074A7E4, 0x05,0x16, 0xE, +0 }, - { 0x03974A1,0x0677161, 0x90,0x00, 0xF, +0 }, - { 0x054990A,0x0639707, 0x65,0x60, 0x8, +0 }, - { 0x1045FA1,0x0066F61, 0x59,0x00, 0x8, +0 }, - { 0x0178421,0x008AF61, 0x15,0x0B, 0xD, +0 }, - { 0x0178521,0x0097F21, 0x94,0x05, 0xC, +0 }, - { 0x0178421,0x008AF61, 0x15,0x0D, 0xD, +0 }, - { 0x1277131,0x0499161, 0x15,0x83, 0xC, +0 }, - { 0x0277DB1,0x0297A21, 0x10,0x08, 0xD, +0 }, - { 0x00A6321,0x00B7F21, 0x9F,0x00, 0xE, +0 }, - { 0x00A65A1,0x00B7F61, 0xA2,0x00, 0xF, +0 }, - { 0x02AA961,0x036A823, 0xA3,0x52, 0x8, +0 }, - { 0x016AAA1,0x00A8F21, 0x94,0x80, 0x8, +0 }, - { 0x011DA25,0x068A6E3, 0x00,0x2B, 0xC, +0 }, - { 0x05F85E1,0x01A65E1, 0x1F,0x00, 0xD, +0 }, - { 0x05F88E1,0x01A65E1, 0x46,0x00, 0xD, +0 }, - { 0x011DA25,0x068A623, 0x00,0x1E, 0xC, +0 }, - { 0x0588821,0x01A6521, 0x8C,0x00, 0xD, +0 }, - { 0x001DF26,0x03876E4, 0x00,0x2B, 0xC, +0 }, - { 0x0369522,0x00776E1, 0xD8,0x00, 0xD, +0 }, - { 0x087C4A3,0x076C626, 0x00,0x57, 0xE, +0 }, - { 0x0558622,0x0186421, 0x46,0x80, 0xF, +0 }, - { 0x04AA321,0x00A8621, 0x48,0x00, 0x8, +0 }, - { 0x0126621,0x00A9621, 0x45,0x00, 0x9, +0 }, - { 0x109F121,0x109F121, 0x1D,0x80, 0xB, +0 }, - { 0x0332121,0x0454222, 0x97,0x03, 0x8, +0 }, - { 0x0D421A1,0x0D54221, 0x99,0x03, 0x9, +0 }, - { 0x0336121,0x0354261, 0x8D,0x03, 0xA, +0 }, - { 0x177A1A1,0x1473121, 0x1C,0x00, 0xB, +0 }, - { 0x0331121,0x0354261, 0x89,0x03, 0xA, +0 }, - { 0x0E42121,0x0D54261, 0x8C,0x03, 0xB, +0 }, - { 0x1471121,0x007CF21, 0x15,0x00, 0x0, +0 }, - { 0x0E41121,0x0D55261, 0x8C,0x00, 0x1, +0 }, - { 0x58AFE0F,0x006FB04, 0x83,0x85, 0xC, +0 }, - { 0x003A821,0x004A722, 0x99,0x00, 0xD, +0 }, - { 0x0937501,0x0B4C502, 0x61,0x80, 0x8, +0 }, - { 0x0957406,0x072A501, 0x5B,0x00, 0x9, +0 }, - { 0x056B222,0x056F261, 0x92,0x8A, 0xC, +0 }, - { 0x2343121,0x00532A1, 0x9D,0x80, 0xD, +0 }, - { 0x088A324,0x087A322, 0x40,0x5B, 0xE, +0 }, - { 0x151F101,0x0F5F241, 0x13,0x00, 0xF, +0 }, - { 0x04211A1,0x0731161, 0x10,0x92, 0xA, +0 }, - { 0x0211161,0x0031DA1, 0x98,0x80, 0xB, +0 }, - { 0x0167D62,0x01672A2, 0x57,0x80, 0x4, +0 }, - { 0x0069F61,0x0049FA1, 0x5B,0x00, 0x5, +0 }, - { 0x024A238,0x024F231, 0x9F,0x9C, 0x6, +0 }, - { 0x014F123,0x0238161, 0x9F,0x00, 0x6, +0 }, - { 0x053C601,0x0D5F583, 0x71,0x40, 0x7, +0 }, - { 0x4FCFA15,0x0ECFA12, 0x11,0x80, 0xA, +0 }, - { 0x0FCFA18,0x0E5F812, 0x9D,0x00, 0xB, +0 }, - { 0x007A801,0x083F600, 0x5C,0x03, 0x7, +0 }, - { 0x458F811,0x0E5F310, 0x8F,0x00, 0xE, +0 }, - { 0x154F610,0x0E4F410, 0x92,0x00, 0xF, +0 }, - { 0x0001F0F,0x3F01FC0, 0x00,0x00, 0xE, +0 }, - { 0x0001F0F,0x3F11FC0, 0x3F,0x3F, 0xF, +0 }, - { 0x024F806,0x7845603, 0x80,0x88, 0xE, +0 }, - { 0x024D803,0x7846604, 0x1E,0x08, 0xF, +0 }, - { 0x001FF06,0x3043414, 0x00,0x00, 0xE, +0 }, - { 0x001FF26,0x1841204, 0x00,0x00, 0xE, +0 }, - { 0x0F86848,0x0F10001, 0x00,0x3F, 0x5, +0 }, - { 0x0F86747,0x0F8464C, 0x00,0x00, 0x5, +0 }, - { 0x261B235,0x015F414, 0x1C,0x08, 0xA, +1 }, - { 0x715FE11,0x019F487, 0x20,0xC0, 0xB, +0 }, - { 0x1112EF0,0x11621E2, 0x00,0xC0, 0x8, -36 }, - { 0x7112EF0,0x11621E2, 0x00,0xC0, 0x9, +0 }, - { 0x007FC01,0x638F802, 0x03,0x03, 0xF, +0 }, - { 0x007FC00,0x638F801, 0x03,0x03, 0xF, +0 }, - { 0x00CFD01,0x03CD600, 0x07,0x00, 0x0, +0 }, - { 0x00CF600,0x006F600, 0x00,0x00, 0x1, +0 }, - { 0x008F60C,0x247FB12, 0x00,0x00, 0xB, +0 }, - { 0x008F60C,0x2477B12, 0x00,0x00, 0xA, +0 }, - { 0x008F60C,0x2477B12, 0x00,0x00, 0xB, +0 }, - { 0x002F60C,0x243CB12, 0x00,0x15, 0xB, +0 }, - { 0x3E4E40F,0x1E5F508, 0x00,0x0A, 0x6, +0 }, - { 0x366F50F,0x1A5F508, 0x00,0x19, 0x7, +0 }, - { 0x3E4E40F,0x1E5F507, 0x00,0x11, 0x6, +0 }, - { 0x365F50F,0x1A5F506, 0x00,0x1E, 0x7, +0 }, - { 0x0C49406,0x2F5F604, 0x00,0x00, 0x0, +0 }, - { 0x004F902,0x0F79705, 0x00,0x03, 0x0, +0 }, - { 0x156F28F,0x100F446, 0x03,0x00, 0xE, +0 }, - { 0x000F38F,0x0A5F442, 0x00,0x06, 0xE, +0 }, - { 0x237F811,0x005F310, 0x45,0x00, 0x8, +0 }, - { 0x037F811,0x005F310, 0x05,0x08, 0x9, +0 }, - { 0x155F381,0x000F441, 0x00,0x00, 0xE, +0 }, - { 0x000F341,0x0A4F48F, 0x00,0x00, 0xE, +0 }, - { 0x503FF80,0x014FF10, 0x00,0x00, 0xC, +0 }, - { 0x503FF80,0x014FF10, 0x00,0x0D, 0xD, +0 }, - { 0x3E5E40F,0x1E7F508, 0x00,0x0A, 0x6, +0 }, - { 0x366F50F,0x1A8F608, 0x00,0x19, 0x7, +0 }, - { 0x00CF506,0x008F502, 0xC8,0x0B, 0x6, +0 }, - { 0x00CF506,0x007F501, 0xC5,0x03, 0x7, +0 }, - { 0x0BFFA01,0x096C802, 0x8F,0x80, 0x6, +0 }, - { 0x0BFFA01,0x096C802, 0xCF,0x0B, 0x7, +0 }, - { 0x087FA01,0x0B7FA01, 0x4F,0x08, 0x7, +0 }, - { 0x08DFA01,0x0B5F802, 0x55,0x00, 0x6, +0 }, - { 0x08DFA01,0x0B5F802, 0x55,0x12, 0x7, +0 }, - { 0x08DFA01,0x0B6F802, 0x59,0x00, 0x6, +0 }, - { 0x08DFA01,0x0B6F802, 0x59,0x12, 0x7, +0 }, - { 0x00AFA01,0x006F900, 0x00,0x00, 0xE, +0 }, - { 0x00AFA01,0x006F900, 0x00,0x0D, 0xF, +0 }, - { 0x089F900,0x06CF600, 0x80,0x08, 0xF, +0 }, - { 0x388F803,0x0B6F60C, 0x8D,0x00, 0xE, +0 }, - { 0x088F803,0x0B8F80C, 0x88,0x12, 0xF, +0 }, - { 0x388F803,0x0B6F60C, 0x88,0x03, 0xE, +0 }, - { 0x388F803,0x0B8F80C, 0x88,0x0F, 0xF, +0 }, - { 0x04F760F,0x2187700, 0x00,0x12, 0xF, +0 }, - { 0x249C80F,0x2699B02, 0x40,0x80, 0xE, +0 }, - { 0x249C80F,0x2699B0F, 0xC0,0x19, 0xF, +0 }, - { 0x305AD57,0x0058D87, 0xDC,0x00, 0xE, +0 }, - { 0x305AD47,0x0058D87, 0xDC,0x12, 0xF, +0 }, - { 0x304A857,0x0048887, 0xDC,0x00, 0xE, +0 }, - { 0x304A857,0x0058887, 0xDC,0x08, 0xF, +0 }, - { 0x3F40006,0x0F5F715, 0x3F,0x00, 0x0, +0 }, - { 0x3F40006,0x0F5F715, 0x3F,0x08, 0x1, +0 }, - { 0x3F40006,0x0F5F712, 0x3F,0x08, 0x1, +0 }, - { 0x7476701,0x0476703, 0xCD,0x40, 0x8, +0 }, - { 0x0476701,0x0556501, 0xC0,0x00, 0x9, +0 }, - { 0x0A76701,0x0356503, 0x17,0x1E, 0xA, +0 }, - { 0x0777701,0x0057501, 0x9D,0x00, 0xB, +0 }, - { 0x3F0E00A,0x005FF1F, 0x40,0x40, 0x8, +0 }, - { 0x3F0E00A,0x005FF1F, 0x40,0x48, 0x9, +0 }, - { 0x3F0E00A,0x002FF1F, 0x7C,0x40, 0x8, +0 }, - { 0x3E0F50A,0x003FF1F, 0x7C,0x40, 0x9, +0 }, - { 0x04F7F0F,0x21E7E00, 0x40,0x88, 0xE, +0 }, - { 0x04F7F0F,0x21E7E00, 0x40,0x14, 0xF, +0 }, - { 0x6E5E403,0x7E7F507, 0x0D,0x11, 0xB, +0 }, - { 0x366F500,0x4A8F604, 0x1B,0x15, 0xA, +0 }, - { 0x3F40003,0x0F5F715, 0x3F,0x00, 0x8, +0 }, - { 0x3F40003,0x0F5F715, 0x3F,0x08, 0x9, +0 }, - { 0x08DFA01,0x0B5F802, 0x4F,0x00, 0x6, +0 }, - { 0x08DFA01,0x0B5F802, 0x4F,0x12, 0x7, +0 }, - { 0x084FA01,0x0B4F800, 0x4F,0x00, 0x6, +0 }, - { 0x084FA01,0x0B4F800, 0x4F,0x00, 0x7, +0 }, - { 0x0F3F040,0x0038761, 0x30,0x00, 0xF, +0 }, - { 0x033E813,0x0F3F011, 0x12,0x00, 0x8, +0 }, - { 0x133F721,0x2F4F320, 0x48,0x00, 0x4, +0 }, - { 0x1F4F201,0x0F5F009, 0x00,0x00, 0x6, +0 }, - { 0x1114070,0x0034061, 0x84,0x00, 0x0, +0 }, - { 0x0D3B305,0x024F246, 0x40,0x80, 0x2, +0 }, - { 0x106F90E,0x0F4F001, 0x2F,0x00, 0xB, +0 }, - { 0x0126E71,0x0045061, 0x0D,0x00, 0x0, +0 }, - { 0x2A31321,0x0F31220, 0x1A,0x00, 0x8, +0 }, - { 0x025DC03,0x009F031, 0xA2,0x00, 0x8, +0 }, - { 0x025DC03,0x009F021, 0x17,0x00, 0x8, +0 }, - { 0x025DF23,0x0F9F021, 0x20,0x00, 0xE, +0 }, - { 0x1025161,0x0024173, 0x52,0x00, 0xA, +0 }, - { 0x0195132,0x0396061, 0x5A,0x85, 0xC, +0 }, - { 0x025DC03,0x009F031, 0x9A,0x00, 0x8, +0 }, - { 0x025DC03,0x009F031, 0x98,0x00, 0x8, +0 }, - { 0x1126EB1,0x0045021, 0x47,0x02, 0x0, +0 }, - { 0x025DC03,0x009F031, 0x97,0x00, 0x8, +0 }, - { 0x025DC03,0x009F031, 0x96,0x00, 0x8, +0 }, - { 0x025DC03,0x009F031, 0x94,0x00, 0x8, +0 }, - { 0x025DB02,0x006F030, 0x10,0x00, 0x8, +0 }, - { 0x1145152,0x0147242, 0x88,0x00, 0xA, +0 }, - { 0x0115172,0x01572A2, 0x89,0x00, 0xA, +0 }, - { 0x0F8AF00,0x0F6F401, 0xC0,0x00, 0xE, +0 }, - { 0x0009FB1,0x1069FA2, 0x45,0x0D, 0x2, +0 }, - { 0x0009FB1,0x1069FA2, 0x45,0x08, 0x2, +0 }, - { 0x1016F00,0x0F57001, 0x19,0x00, 0xE, +0 }, - { 0x229FFF2,0x0F480E1, 0x1A,0x00, 0x6, +0 }, - { 0x025DC03,0x009F032, 0x12,0x00, 0xA, +0 }, - { 0x025DC03,0x009F032, 0x10,0x00, 0xA, +0 }, - { 0x025DC03,0x009F032, 0x0E,0x00, 0xA, +0 }, - { 0x025DC03,0x009F032, 0x0C,0x00, 0xA, +0 }, - { 0x025DC03,0x009F032, 0x0A,0x00, 0xA, +0 }, - { 0x025DC03,0x009F031, 0x92,0x00, 0x8, +0 }, - { 0x1062F01,0x0076521, 0x07,0x00, 0x0, +0 }, - { 0x00470F5,0x0F38071, 0x1C,0x00, 0xB, +0 }, - { 0x0F77061,0x0256061, 0x21,0x00, 0x2, +0 }, - { 0x0C76012,0x00550F1, 0x28,0x00, 0x2, +0 }, - { 0x0049F21,0x0049F62, 0x00,0x00, 0x1, +0 }, - { 0x2119A16,0x0029012, 0x14,0x00, 0x2, +0 }, - { 0x033F813,0x003FF11, 0x0E,0x00, 0x8, +0 }, - { 0x0057F72,0x0F56071, 0x1D,0x00, 0x2, +0 }, - { 0x203B162,0x005F172, 0x4A,0x00, 0x2, +0 }, - { 0x2027062,0x0029062, 0x4A,0x00, 0x2, +0 }, - { 0x0FF0F20,0x0F1F021, 0xFF,0x00, 0x0, +0 }, - { 0x0F28021,0x0037021, 0x8F,0x00, 0x0, +0 }, - { 0x2129A16,0x0039012, 0x97,0x00, 0x2, +0 }, - { 0x212AA93,0x021AC91, 0x97,0x80, 0xE, +0 }, - { 0x024DA05,0x013F901, 0x8B,0x00, 0xA, +0 }, - { 0x203B162,0x0046172, 0xCF,0x00, 0x2, +0 }, - { 0x006FA04,0x095F201, 0xD3,0x00, 0xA, +0 }, - { 0x0847162,0x0246061, 0x21,0x00, 0x8, +0 }, - { 0x0FFF000,0x02FF607, 0x00,0x00, 0x0, +0 }, - { 0x3F27026,0x0568705, 0x00,0x00, 0xE, +0 }, - { 0x005FC11,0x1F5DF12, 0x00,0x00, 0x1, +0 }, - { 0x104F021,0x0D6F401, 0xCF,0x00, 0xA, +0 }, - { 0x104F021,0x0D6F401, 0xC7,0x00, 0x0, +0 }, - { 0x004F021,0x0D6F401, 0x1B,0x00, 0xA, +0 }, - { 0x104F061,0x1D6F441, 0xCE,0x00, 0x4, +0 }, - { 0x065F301,0x07DF111, 0x12,0x00, 0x8, +0 }, - { 0x254F5A8,0x0B7F321, 0xE8,0x00, 0x0, +0 }, - { 0x14FF101,0x3D6F311, 0xC6,0x06, 0xA, +0 }, - { 0x0ADF303,0x15E8301, 0x58,0x00, 0xE, +0 }, - { 0x01F4C28,0x045F601, 0xD4,0x00, 0xE, +0 }, - { 0x223F208,0x073F414, 0x92,0x80, 0x0, -12 }, - { 0x22F6216,0x06AF401, 0x64,0x41, 0x0, +0 }, - { 0x036F506,0x025FDA1, 0x10,0x80, 0x3, +0 }, - { 0x0176D0A,0x005F001, 0xD5,0x00, 0x4, +0 }, - { 0x265F812,0x0D7F601, 0xC8,0x00, 0xC, +0 }, - { 0x092FF43,0x003F015, 0x00,0x00, 0xE, -12 }, - { 0x0388B03,0x2398300, 0xC0,0x80, 0x0, +0 }, - { 0x00FF060,0x00FF062, 0xC0,0x06, 0xD, +0 }, - { 0x29FFF24,0x10FF021, 0x00,0x00, 0xF, +0 }, - { 0x11FFF30,0x14C5E32, 0x00,0x00, 0x7, +0 }, - { 0x10BF024,0x20B5030, 0x49,0x00, 0xF, +0 }, - { 0x00BF024,0x10B5031, 0xCC,0x0A, 0xA, +0 }, - { 0x12F6F24,0x20D4030, 0xCA,0x0A, 0x0, +0 }, - { 0x00BF022,0x10B5071, 0xCD,0x03, 0x0, +0 }, - { 0x105F003,0x1C8F211, 0xCE,0x00, 0x0, +0 }, - { 0x125FF03,0x1C8F211, 0x49,0x00, 0x0, +0 }, - { 0x145F503,0x03AF621, 0xD3,0x00, 0xE, +0 }, - { 0x1269E03,0x0BBF221, 0x90,0x80, 0xE, +0 }, - { 0x047FF01,0x2BCF400, 0xC0,0x00, 0xE, +0 }, - { 0x04F6F20,0x31FFF20, 0xE0,0x01, 0x0, +0 }, - { 0x32F5F30,0x31FFE30, 0xE0,0x01, 0x0, +0 }, - { 0x3598600,0x02A7284, 0x42,0x80, 0xC, +0 }, - { 0x054FE10,0x00FF030, 0x00,0x00, 0x6, +12 }, - { 0x0397530,0x088F220, 0xC2,0x40, 0x8, +12 }, - { 0x125FF10,0x006F030, 0x0A,0x00, 0xC, +12 }, - { 0x039F330,0x00CF0A0, 0x0F,0x00, 0x8, +12 }, - { 0x07FF420,0x00FF021, 0x18,0x00, 0xE, +0 }, - { 0x106F010,0x006F030, 0x00,0x00, 0x6, +12 }, - { 0x05FF620,0x00FF021, 0x16,0x00, 0xE, +0 }, - { 0x006F010,0x006F030, 0x08,0x00, 0x4, +0 }, - { 0x092FF43,0x003F015, 0x00,0x00, 0xE, +0 }, - { 0x106F031,0x10650B1, 0xC5,0x00, 0x0, +0 }, - { 0x11FF431,0x13653A1, 0x40,0x00, 0x0, +0 }, - { 0x01FF431,0x13663A1, 0xC0,0x00, 0x0, +0 }, - { 0x043F271,0x1285161, 0x1D,0x00, 0xE, +0 }, - { 0x279A702,0x284F410, 0xD2,0x00, 0x0, +0 }, - { 0x194F622,0x09BF231, 0x1B,0x80, 0xA, +0 }, - { 0x126F801,0x105F000, 0x40,0x00, 0x0, +0 }, - { 0x043F231,0x1285121, 0x1D,0x00, 0xE, +0 }, - { 0x1011031,0x2042030, 0x56,0x00, 0xE, +0 }, - { 0x136F131,0x0286121, 0x1B,0x00, 0xE, +0 }, - { 0x034F131,0x0285121, 0x1C,0x00, 0xE, +0 }, - { 0x015F431,0x0056072, 0x5B,0x83, 0x0, +0 }, - { 0x172FCE1,0x01762B1, 0x46,0x00, 0x0, +0 }, - { 0x0053071,0x0055072, 0x57,0x00, 0xC, +0 }, - { 0x062F600,0x01BF301, 0x00,0x08, 0x6, +0 }, - { 0x06553B1,0x00FF021, 0x14,0x00, 0xA, +0 }, - { 0x0254231,0x00FF0A1, 0x56,0x01, 0xE, +0 }, - { 0x1255221,0x02993A1, 0x55,0x01, 0xE, +0 }, - { 0x07554B1,0x0089021, 0x20,0x00, 0xE, +0 }, - { 0x0375421,0x008F021, 0x1B,0x00, 0xE, +0 }, - { 0x1396521,0x09EF221, 0x16,0x00, 0xE, +0 }, - { 0x0375621,0x00AF021, 0x1E,0x00, 0xE, +0 }, - { 0x0046021,0x1095031, 0x4E,0x00, 0x6, +0 }, - { 0x0046021,0x1095031, 0x8E,0x00, 0xA, +0 }, - { 0x0055021,0x1095021, 0x8E,0x00, 0xA, +0 }, - { 0x0055031,0x1095021, 0x8E,0x00, 0xA, +0 }, - { 0x0038031,0x136F132, 0x17,0x00, 0x0, +0 }, - { 0x2066020,0x10A7022, 0x19,0x00, 0x0, +0 }, - { 0x1065020,0x00A6022, 0x1E,0x00, 0x0, +0 }, - { 0x0258C32,0x0176221, 0x4C,0x00, 0xC, +0 }, - { 0x00430B1,0x00A5021, 0x57,0x00, 0xC, +0 }, - { 0x04451B1,0x00A5021, 0x55,0x00, 0xC, +0 }, - { 0x20F4032,0x0095021, 0xDF,0x00, 0x0, +0 }, - { 0x39C4611,0x05A6321, 0x20,0x00, 0xE, +0 }, - { 0x39D7531,0x0095021, 0x17,0x00, 0xE, +0 }, - { 0x35AF802,0x02A42B1, 0x00,0x00, 0xE, +0 }, - { 0x20FF022,0x00FF021, 0x5D,0x00, 0xE, +0 }, - { 0x0535231,0x147F221, 0x0F,0x00, 0xC, +0 }, - { 0x39D65B1,0x0095021, 0x17,0x00, 0xE, +0 }, - { 0x05AF802,0x22A42B0, 0x00,0x00, 0xE, +0 }, - { 0x057F421,0x228F232, 0xC0,0x00, 0x0, +0 }, - { 0x29D6561,0x2095021, 0xC6,0x00, 0x0, -12 }, - { 0x358F423,0x3486422, 0xC0,0x10, 0xB, -24 }, - { 0x0EDF331,0x07DF131, 0xCB,0x00, 0x8, +0 }, - { 0x395FF09,0x02552E1, 0xC0,0x00, 0x0, +0 }, - { 0x0052031,0x0063031, 0x58,0x40, 0x0, +0 }, - { 0x0735421,0x008F021, 0x0E,0x07, 0xA, +0 }, - { 0x0033071,0x0044072, 0x5D,0x00, 0x0, +0 }, - { 0x2023034,0x003F021, 0x27,0x09, 0xE, +0 }, - { 0x3042001,0x2042030, 0x63,0x00, 0x0, +0 }, - { 0x0585201,0x0364161, 0x99,0x00, 0x6, +0 }, - { 0x0261131,0x0071031, 0x1B,0x00, 0xC, +0 }, - { 0x0B4F251,0x075F101, 0xD0,0x00, 0x0, +0 }, - { 0x0572132,0x01942A3, 0x06,0x00, 0x9, -12 }, - { 0x3859F45,0x043F311, 0x15,0x00, 0xE, +0 }, - { 0x115F403,0x0C8F221, 0xD7,0x00, 0xA, +0 }, - { 0x295F300,0x2B9F260, 0x11,0x00, 0x0, +0 }, - { 0x0050021,0x2041020, 0xCF,0x00, 0x0, +0 }, - { 0x2A3F400,0x2B9F260, 0x1B,0x00, 0x0, +0 }, - { 0x0644312,0x2028030, 0x22,0x00, 0xE, +0 }, - { 0x098F201,0x1D5F307, 0x40,0x09, 0x0, +0 }, - { 0x083FF00,0x166F502, 0x00,0x00, 0xE, -12 }, - { 0x275FF12,0x2E8F310, 0x80,0x00, 0xE, +0 }, - { 0x163F402,0x164F502, 0x0F,0x00, 0x0, -12 }, - { 0x064FB05,0x2579600, 0xC9,0x00, 0x0, +0 }, - { 0x1B2FF13,0x30F5030, 0x0C,0x0A, 0xE, +0 }, - { 0x21DF230,0x10C4021, 0x0E,0x00, 0xA, +0 }, - { 0x3023030,0x2064030, 0xC0,0x00, 0x0, +0 }, - { 0x375FF25,0x033FE03, 0xC0,0x00, 0x0, -7 }, - { 0x37DFE25,0x0079003, 0xC0,0x00, 0x0, -7 }, - { 0x0034007,0x0056001, 0xDC,0x00, 0x0, +0 }, - { 0x2B3F811,0x003F010, 0xC1,0x03, 0x4, -7 }, - { 0x00CF000,0x006F000, 0x00,0x00, 0x4, +2 }, - { 0x32C8F01,0x006F000, 0x00,0x00, 0xE, +0 }, - { 0x2A2FF40,0x30E104E, 0x00,0x00, 0xE, +0 }, - { 0x092FF11,0x306301E, 0xC0,0x00, 0xE, +0 }, - { 0x003402E,0x003105E, 0x00,0x00, 0xE, +0 }, - { 0x2A3375B,0x237461A, 0x95,0x40, 0x0, +0 }, - { 0x344FF6B,0x02AF1EA, 0xC0,0x01, 0xC, -12 }, - { 0x10EF07E,0x00E3030, 0x00,0x0A, 0xE, +0 }, - { 0x003F02E,0x00310FE, 0x00,0x00, 0xE, +0 }, - { 0x023FCC0,0x006F04E, 0x00,0x00, 0xE, +0 }, - { 0x0A3FB00,0x007F000, 0xC0,0x00, 0xA, +0 }, - { 0x0C2FD05,0x3D9F910, 0xC0,0x00, 0x0, +0 }, - { 0x03A8F2E,0x067A800, 0x00,0x00, 0xE, +0 }, - { 0x22C8305,0x0589903, 0x00,0x00, 0xE, +0 }, - { 0x25C8400,0x08AF800, 0x00,0x00, 0xE, +0 }, - { 0x00CFF00,0x006FF00, 0x00,0x00, 0x4, +0 }, - { 0x004F041,0x308F009, 0xC0,0x00, 0xE, +0 }, - { 0x006F001,0x339880D, 0x40,0x00, 0xC, +0 }, - { 0x12FF201,0x356F54E, 0xC0,0x00, 0xE, +0 }, - { 0x12FF241,0x356F54E, 0xC0,0x00, 0xE, +0 }, - { 0x155AF00,0x364FF4B, 0x00,0x00, 0xE, +0 }, - { 0x1496401,0x356F54A, 0xC0,0x00, 0xE, +0 }, - { 0x2678900,0x357874E, 0x00,0x00, 0xE, +0 }, - { 0x02FF241,0x356F54E, 0xC0,0x00, 0x0, +0 }, - { 0x05FF210,0x27FC40E, 0x00,0x00, 0x6, +0 }, - { 0x00CF003,0x03AF802, 0xC0,0x00, 0x0, +0 }, - { 0x00BF003,0x037F702, 0xC0,0x00, 0x0, +0 }, - { 0x00CF003,0x01AFD02, 0xC0,0x00, 0xE, +0 }, - { 0x00BF002,0x037F702, 0xC0,0x00, 0x0, +0 }, - { 0x325FF25,0x0078003, 0xC0,0x00, 0x0, +0 }, - { 0x0089011,0x357894E, 0xC0,0x00, 0xE, +0 }, - { 0x11BF100,0x3468B5E, 0x00,0x00, 0xE, +0 }, - { 0x205508C,0x05C855D, 0x80,0x0A, 0xA, +0 }, - { 0x205504C,0x05C858D, 0x40,0x0A, 0x0, +0 }, - { 0x206F04B,0x346F610, 0x00,0x00, 0xE, +0 }, - { 0x392F700,0x2AF475E, 0x00,0x00, 0xE, +0 }, - { 0x30FF01D,0x0F0F715, 0x00,0x00, 0x1, +0 }, - { 0x0EB3402,0x0075004, 0x87,0x00, 0x0, +0 }, - { 0x0EF3301,0x0075002, 0xCB,0x00, 0x0, +0 }, - { 0x2B2FF04,0x2188719, 0x80,0x04, 0x0, +0 }, - { 0x27FFF06,0x204F009, 0x80,0x0A, 0x0, +0 }, - { 0x053F300,0x247694E, 0x43,0x00, 0xE, +0 }, - { 0x224F10E,0x335FF4E, 0x40,0x02, 0x0, +0 }, - { 0x274F911,0x108F010, 0x41,0x00, 0x2, +0 }, - { 0x288F911,0x004F010, 0xC1,0x03, 0x4, +0 }, - { 0x15DFD25,0x0079003, 0xC0,0x00, 0x0, +0 }, - { 0x015FF0E,0x0BFF800, 0x00,0x00, 0xE, +0 }, - { 0x008A000,0x1679810, 0x00,0x00, 0xE, +0 }, - { 0x104F041,0x308F009, 0xC0,0x00, 0xE, +0 }, - { 0x040F520,0x0F7F010, 0x0D,0x89, 0xA, +0 }, - { 0x060F101,0x07BD211, 0x4D,0x00, 0x8, +0 }, - { 0x013F202,0x043F502, 0x22,0x00, 0xE, +0 }, - { 0x0F0FB3E,0x09BA0B1, 0x29,0x40, 0x0, +0 }, - { 0x00381A5,0x005F1B1, 0xD2,0x40, 0x2, +0 }, - { 0x0F466E1,0x086B0E1, 0x13,0x00, 0xC, +0 }, - { 0x0014171,0x03B92A1, 0x1C,0x00, 0xE, +0 }, - { 0x0064131,0x03792A1, 0x1A,0x80, 0xC, +0 }, - { 0x175A563,0x045A421, 0x0F,0x8D, 0x0, +0 }, - { 0x002A474,0x04245D7, 0x47,0x40, 0x6, +0 }, - { 0x05331C5,0x07242D9, 0x8F,0x00, 0x6, +0 }, - { 0x1F07151,0x1856092, 0x91,0x80, 0xA, +0 }, - { 0x3D3B1E1,0x1741221, 0x4F,0x00, 0x6, +0 }, - { 0x00FF071,0x15F63B2, 0x8D,0x80, 0xA, +0 }, - { 0x175F502,0x0358501, 0x1A,0x88, 0x0, +0 }, - { 0x053F101,0x053F108, 0x40,0x40, 0x0, +0 }, - { 0x040F520,0x0F7F010, 0x0D,0x90, 0xA, +0 }, - { 0x0A4F3F0,0x1F5F460, 0x00,0x07, 0x8, +0 }, - { 0x0051F21,0x00A7121, 0x98,0x00, 0x2, +0 }, - { 0x03FFA10,0x064F210, 0x86,0x0C, 0xE, +0 }, - { 0x0013171,0x03BF2A1, 0x1C,0x00, 0xE, +0 }, - { 0x0754231,0x0F590A1, 0x98,0x80, 0xC, +0 }, - { 0x0044131,0x034F2A1, 0x1A,0x80, 0xC, +0 }, - { 0x0289130,0x048C131, 0x58,0x0E, 0xE, +0 }, - { 0x0F463E0,0x08670E1, 0x1E,0x00, 0xC, +0 }, - { 0x2034122,0x10561F2, 0x4F,0x80, 0x2, +0 }, - { 0x0175331,0x03B92A1, 0x18,0x80, 0xC, +0 }, - { 0x00B5131,0x03BA2A1, 0x1C,0x40, 0xE, +0 }, - { 0x03A4331,0x00AAA21, 0x1C,0x00, 0xC, +0 }, - { 0x1FAF000,0x1FAF211, 0x02,0x85, 0x6, +0 }, - { 0x1A57121,0x0958121, 0x17,0x00, 0xE, +0 }, - { 0x0AE7161,0x02E8160, 0x1C,0x00, 0xE, +0 }, - { 0x054F606,0x0B3F241, 0x73,0x0E, 0x0, +0 }, - { 0x055F718,0x0D5E521, 0x23,0x0E, 0x0, +0 }, - { 0x0A21B14,0x0A4A0F0, 0x7F,0x7F, 0x2, +0 }, - { 0x05285E1,0x05662E1, 0x18,0x00, 0x0, +0 }, - { 0x3F0FB02,0x006F3C2, 0x00,0x0D, 0x0, +0 }, - { 0x2448711,0x0B68041, 0x00,0x84, 0x0, +0 }, - { 0x00FBF0C,0x004F001, 0x07,0x0A, 0x0, +0 }, - { 0x0F9F913,0x0047310, 0x86,0x06, 0x0, +0 }, - { 0x03FFA10,0x064F210, 0x86,0x06, 0xE, +0 }, - { 0x1F0F001,0x136F7E4, 0x00,0x0A, 0x0, +0 }, - { 0x277F810,0x006F311, 0x44,0x07, 0x8, +0 }, - { 0x200A01E,0x0FFF810, 0x00,0x0E, 0xE, +0 }, - { 0x018BF20,0x066F800, 0x00,0x11, 0xE, +0 }, - { 0x0FFF902,0x0FFF811, 0x19,0x06, 0x0, +0 }, - { 0x215CF3E,0x0F9D92E, 0x00,0x11, 0xE, +0 }, - { 0x2A0B26E,0x2D4960E, 0x00,0x00, 0xE, +0 }, - { 0x2E0136E,0x1D4A502, 0x00,0x00, 0x0, +0 }, - { 0x025F522,0x005EF24, 0x95,0x9A, 0xE, +0 }, - { 0x004EF26,0x0065F24, 0xA1,0x07, 0xE, +0 }, - { 0x1047B20,0x072F521, 0x4B,0x00, 0xE, +0 }, - { 0x019992F,0x0BFFAA2, 0x00,0x22, 0xE, +0 }, - { 0x015FAA1,0x00B7F21, 0x55,0x08, 0xE, +0 }, - { 0x0137221,0x0B26425, 0x94,0x3E, 0xC, +0 }, - { 0x0739321,0x0099DA1, 0x38,0x04, 0xC, +0 }, - { 0x0298421,0x0CFF828, 0x9C,0xB2, 0xE, +0 }, - { 0x0187521,0x00A9F21, 0x22,0x07, 0xE, +0 }, - { 0x0F3F211,0x034F2E1, 0x0F,0x00, 0xA, +0 }, - { 0x1039761,0x004C770, 0x41,0x00, 0x3, +0 }, - { 0x00221C1,0x014B421, 0x1A,0x00, 0xE, +0 }, - { 0x001F2F1,0x02562E1, 0xCE,0x40, 0x6, +0 }, - { 0x212F1C2,0x054F743, 0x25,0x03, 0xE, +0 }, - { 0x2017230,0x2269420, 0x1C,0x00, 0xE, +0 }, - { 0x021A161,0x116C2A1, 0x92,0x40, 0x6, +0 }, - { 0x046A502,0x044F901, 0x64,0x80, 0x0, +0 }, - { 0x175F403,0x0F4F301, 0x31,0x83, 0xE, +0 }, - { 0x0858300,0x0C872A0, 0x2A,0x80, 0x6, +0 }, - { 0x0437721,0x006A5E1, 0x25,0x80, 0x8, +0 }, - { 0x0177423,0x017C563, 0x83,0x8D, 0x7, +0 }, - { 0x0187132,0x038B2A1, 0x9A,0x82, 0xC, +0 }, - { 0x0065231,0x037F2A1, 0x1B,0x80, 0xE, +0 }, - { 0x060F207,0x072F212, 0x13,0x00, 0x8, +0 }, - { 0x036BA02,0x015F901, 0x0A,0x00, 0x4, +0 }, - { 0x024F621,0x014C421, 0x13,0x80, 0x0, +0 }, - { 0x025F521,0x015C521, 0x17,0x80, 0x0, +0 }, - { 0x02C6621,0x014A521, 0x17,0x80, 0x0, +0 }, - { 0x064E400,0x074A400, 0x00,0x00, 0x7, +0 }, - { 0x2F0F009,0x047F920, 0x0D,0x00, 0xE, +0 }, - { 0x0F6E901,0x006D600, 0x15,0x00, 0xE, +0 }, - { 0x0F0F280,0x0F4F480, 0x00,0x00, 0x4, +0 }, - { 0x003F1C0,0x00110BE, 0x4F,0x0C, 0x2, +0 }, - { 0x202FF8E,0x3F6F601, 0x00,0x00, 0x8, +0 }, - { 0x202FF8E,0x3F7F701, 0x00,0x00, 0x8, +0 }, - { 0x053F101,0x074F131, 0x4B,0x00, 0x4, +0 }, - { 0x053F201,0x064F311, 0x49,0x00, 0x6, +0 }, - { 0x053F201,0x064F331, 0x50,0x00, 0x4, +0 }, - { 0x078C423,0x048C231, 0x99,0x00, 0x8, +0 }, - { 0x098C423,0x058C231, 0x97,0x00, 0x6, +0 }, - { 0x088C423,0x048C231, 0x5E,0x00, 0x0, +0 }, - { 0x05AC421,0x03AC231, 0x4E,0x00, 0x6, +0 }, - { 0x056B301,0x056B301, 0x8D,0x00, 0x8, +0 }, - { 0x019D0A3,0x017F021, 0x5C,0x80, 0xC, +0 }, - { 0x018D0A3,0x018F021, 0x64,0x80, 0x0, +0 }, - { 0x018F6B3,0x008F131, 0x61,0x00, 0x2, +0 }, - { 0x09EAAB3,0x03E80A1, 0x08,0x00, 0x6, +0 }, - { 0x1239723,0x0144571, 0x93,0x00, 0x4, +0 }, - { 0x12497A1,0x0145571, 0x0D,0x80, 0x2, +0 }, - { 0x1249761,0x0144571, 0x8F,0x00, 0xA, +0 }, - { 0x000A121,0x0F6F236, 0x80,0x00, 0x8, +0 }, - { 0x085F211,0x0B7F212, 0x87,0x80, 0x4, +0 }, - { 0x054F607,0x0B6F242, 0x73,0x00, 0x0, +0 }, - { 0x054F60E,0x0B6F242, 0x73,0x00, 0x0, +0 }, - { 0x1E26301,0x01E8821, 0x46,0x00, 0x6, +0 }, - { 0x24D7520,0x01D8921, 0x8B,0x80, 0xA, +0 }, - { 0x01C6421,0x03CD621, 0xC4,0x00, 0xA, +0 }, - { 0x03C6421,0x01CA621, 0x4A,0x00, 0x8, +0 }, - { 0x008F321,0x228F322, 0x92,0x80, 0xA, +0 }, - { 0x028F331,0x038B1B1, 0x92,0x00, 0xA, +0 }, - { 0x002DB77,0x0125831, 0xE0,0x00, 0x8, +0 }, - { 0x00211B1,0x0034231, 0x93,0x80, 0x0, +0 }, - { 0x0023AB1,0x0134232, 0xAF,0x80, 0x0, +0 }, - { 0x2556823,0x1055461, 0xD2,0x00, 0xA, +0 }, - { 0x05312C4,0x07212F1, 0x10,0x00, 0x2, +0 }, - { 0x1D6FB34,0x0269471, 0x83,0x00, 0xC, +0 }, - { 0x061F217,0x074F212, 0x4F,0x00, 0x8, +0 }, - { 0x0096821,0x01B5731, 0x11,0x80, 0xA, +0 }, - { 0x02FA433,0x0117575, 0x14,0x00, 0x0, +0 }, - { 0x078F71A,0x0024691, 0xC6,0x00, 0x2, +0 }, - { 0x0287C31,0x01AAB23, 0x91,0x00, 0xA, +0 }, - { 0x0124D01,0x013F501, 0x02,0x00, 0x7, +0 }, - { 0x118D671,0x018F571, 0x1E,0x00, 0xC, +0 }, - { 0x0287271,0x0186361, 0x95,0x00, 0xC, +0 }, - { 0x054F589,0x023F582, 0x5E,0x07, 0x2, +0 }, - { 0x20FFF22,0x00FFF21, 0x5A,0x80, 0x0, +0 }, - { 0x125F121,0x0087262, 0x56,0x00, 0xE, +0 }, - { 0x121F131,0x0166F21, 0x40,0x00, 0x2, +0 }, - { 0x1388231,0x0086821, 0x4B,0x00, 0x0, +0 }, - { 0x175F502,0x0F8F501, 0x58,0x80, 0x0, +0 }, - { 0x11561B1,0x00562A1, 0x16,0x00, 0x8, +0 }, - { 0x01351A1,0x0175221, 0x1E,0x80, 0xE, +0 }, - { 0x1145131,0x00552A1, 0x92,0x00, 0xA, +0 }, - { 0x12CF131,0x01C61B1, 0x8F,0x00, 0x8, +0 }, - { 0x1228131,0x0167223, 0x4D,0x80, 0x2, +0 }, - { 0x171D201,0x238F301, 0x55,0x00, 0x2, +0 }, - { 0x114F413,0x013F201, 0x49,0x80, 0x6, +0 }, - { 0x154F203,0x044F301, 0x4C,0x40, 0x4, +0 }, - { 0x119F523,0x019F421, 0x51,0x00, 0xC, +0 }, - { 0x1547003,0x004B301, 0x51,0x80, 0xC, +0 }, - { 0x05FF561,0x02AF562, 0x21,0x00, 0x2, +0 }, - { 0x018F221,0x018F521, 0x0F,0x80, 0x6, +0 }, - { 0x038F2A1,0x018F321, 0x93,0x00, 0xA, +0 }, - { 0x13FF631,0x01FF321, 0x89,0x40, 0xA, +0 }, - { 0x13FF431,0x01FF221, 0x88,0x40, 0xA, +0 }, - { 0x04F6421,0x028F231, 0x91,0x00, 0xA, +0 }, - { 0x05FF561,0x05A6661, 0x1E,0x00, 0x2, +0 }, - { 0x05FF561,0x02A7561, 0x1E,0x07, 0x2, +0 }, - { 0x03FF561,0x01A7562, 0x28,0x04, 0x2, +0 }, - { 0x01F7561,0x02A7561, 0x21,0x00, 0x2, +0 }, - { 0x05F8571,0x01A6661, 0x51,0x00, 0xC, +0 }, - { 0x13F93B1,0x01F6221, 0x45,0x80, 0x8, +0 }, - { 0x13FA3B1,0x00F8221, 0x89,0x80, 0x8, +0 }, - { 0x13F86B1,0x00F7221, 0x8F,0x80, 0xC, +0 }, - { 0x137C6B1,0x0067221, 0x87,0x80, 0xC, +0 }, - { 0x0217B32,0x0176221, 0x95,0x00, 0x0, +0 }, - { 0x0219B32,0x0176221, 0x97,0x00, 0x0, +0 }, - { 0x0115231,0x11E3132, 0xC5,0x00, 0x8, +0 }, - { 0x1177E31,0x10C8B21, 0x43,0x00, 0x2, +0 }, - { 0x019D520,0x11B6121, 0x93,0x00, 0xC, +0 }, - { 0x0069161,0x0076161, 0x12,0x00, 0xA, +0 }, - { 0x00D5131,0x01F7221, 0x1C,0x80, 0xE, +0 }, - { 0x13DC231,0x00F7761, 0x8A,0x80, 0xA, +0 }, - { 0x02DF431,0x00F7321, 0x8B,0x80, 0x6, +0 }, - { 0x02DA831,0x00F8321, 0x8B,0x80, 0x6, +0 }, - { 0x06A6121,0x00A7F21, 0x26,0x00, 0x2, +0 }, - { 0x01C8D21,0x00FA521, 0x90,0x00, 0xA, +0 }, - { 0x01F75A1,0x00F7422, 0x10,0x00, 0x8, +0 }, - { 0x11F75A0,0x01F7521, 0x15,0x00, 0xC, +0 }, - { 0x033F5C5,0x025FDE1, 0x53,0x80, 0xA, +0 }, - { 0x013F5C5,0x005FDE1, 0x59,0x80, 0xA, +0 }, - { 0x0248305,0x014A301, 0x66,0x00, 0x2, +0 }, - { 0x031A585,0x011F511, 0xD3,0x80, 0x2, +0 }, - { 0x033F284,0x022F211, 0xC7,0x80, 0xA, +0 }, - { 0x122F210,0x012FC11, 0xC9,0x00, 0x6, +0 }, - { 0x206FB03,0x006D901, 0xD2,0x00, 0x4, +0 }, - { 0x024D443,0x004E741, 0x51,0x40, 0x8, +0 }, - { 0x05FF561,0x01A6661, 0x1E,0x00, 0x2, +0 }, - { 0x0275722,0x0275661, 0x59,0x40, 0xB, +0 }, - { 0x0175622,0x0176361, 0xA7,0x40, 0x5, +0 }, - { 0x205A8F1,0x00563B1, 0x9B,0x00, 0xA, +0 }, - { 0x05F8571,0x00A6B61, 0x4B,0x00, 0xC, +0 }, - { 0x105F510,0x0C3F211, 0x47,0x00, 0x2, +0 }, - { 0x247F811,0x054F311, 0x47,0x00, 0x4, +0 }, - { 0x21AF400,0x008F800, 0x00,0x00, 0xC, +0 }, - { 0x01AF400,0x038F800, 0x00,0x00, 0xA, +0 }, - { 0x079F400,0x017F600, 0x03,0x00, 0xA, +0 }, - { 0x007A810,0x115DA00, 0x06,0x00, 0x6, +0 }, - { 0x009A810,0x107DF10, 0x07,0x00, 0xE, +0 }, - { 0x334F407,0x2D4F415, 0x00,0x00, 0xE, +0 }, - { 0x0F4000A,0x0F6F717, 0x3F,0x00, 0x1, +0 }, - { 0x0F2E00E,0x033FF1E, 0x5E,0x40, 0x8, +0 }, - { 0x0645451,0x045A581, 0x00,0x00, 0xA, +0 }, - { 0x261B235,0x0B2F112, 0x5C,0x08, 0xA, +0 }, - { 0x38CF800,0x06BF600, 0x80,0x00, 0xF, +0 }, - { 0x060F207,0x072F212, 0x54,0x80, 0x4, +0 }, - { 0x0557542,0x0257541, 0x96,0x87, 0x8, +0 }, - { 0x268F911,0x005F211, 0x46,0x00, 0x8, +0 }, - { 0x14BFA01,0x03BFA08, 0x08,0x00, 0xD, +0 }, - { 0x007FF21,0x107F900, 0x80,0x00, 0xE, +0 }, - { 0x20DFF20,0x027FF02, 0x00,0x00, 0xE, +0 }, - { 0x0C8F60C,0x257FF12, 0xC2,0x00, 0xC, +0 }, - { 0x000F60E,0x3059F10, 0x00,0x00, 0xE, +0 }, - { 0x000F60E,0x3039F10, 0x00,0x00, 0xE, +0 }, - { 0x0C5F59E,0x2F7F70E, 0x00,0x00, 0xF, +0 }, - { 0x2B7F811,0x003F310, 0x45,0x00, 0x8, +0 }, - { 0x0BFFA01,0x097C803, 0x00,0x00, 0x7, +0 }, - { 0x08DFA01,0x0BAFA03, 0x4F,0x00, 0x7, +0 }, - { 0x38FF801,0x06FF600, 0x47,0x00, 0xF, +0 }, - { 0x38CF800,0x06EF600, 0x80,0x00, 0xF, +0 }, - { 0x38CF803,0x0B5F80C, 0x80,0x00, 0xF, +0 }, - { 0x38CF803,0x0B5F80C, 0x83,0x00, 0xF, +0 }, - { 0x0DFF611,0x0DEF710, 0x4F,0x40, 0xC, +0 }, - { 0x053F101,0x0F3F211, 0x4F,0x80, 0x4, +0 }, - { 0x1C5C202,0x104D000, 0x11,0x00, 0xC, +0 }, - { 0x2129A16,0x0039012, 0x97,0x04, 0x2, +0 }, - { 0x0F3F507,0x0F2F501, 0x19,0x00, 0xA, +0 }, - { 0x2F3F507,0x0F2F501, 0x19,0x00, 0xA, +0 }, - { 0x0229F16,0x032B0D2, 0x16,0x00, 0x8, +0 }, - { 0x025DA05,0x015F001, 0x4E,0x00, 0xA, +0 }, - { 0x025C811,0x0F2F511, 0x29,0x00, 0xC, +0 }, - { 0x012FF54,0x0F2F051, 0x16,0x00, 0x0, +0 }, - { 0x212FF54,0x0F2F051, 0x16,0x00, 0x0, +0 }, - { 0x106DF24,0x005FF21, 0x15,0x00, 0x1, +0 }, - { 0x104F223,0x0045231, 0x50,0x80, 0xE, +0 }, - { 0x00BF223,0x00B5230, 0x4F,0x82, 0xE, +0 }, - { 0x2036162,0x0058172, 0x4A,0x00, 0x2, +0 }, - { 0x01CF201,0x087F501, 0x10,0x00, 0xA, +0 }, - { 0x014F201,0x084F501, 0x10,0x00, 0xA, +0 }, - { 0x103AF00,0x3FFF021, 0x06,0x00, 0x6, +0 }, - { 0x025DA05,0x06A5334, 0x8E,0x00, 0xA, +0 }, - { 0x035F813,0x004FF11, 0x12,0x03, 0x8, +0 }, - { 0x0114172,0x01562A2, 0x89,0x40, 0xA, +0 }, - { 0x0F9F121,0x0F6F721, 0x1C,0x00, 0xE, +0 }, - { 0x075F502,0x0F3F201, 0x29,0x00, 0x0, +0 }, - { 0x005FF00,0x0F3F020, 0x18,0x00, 0x0, +0 }, - { 0x0114172,0x01562A1, 0x89,0x40, 0xA, +0 }, - { 0x2A32321,0x1F34221, 0x1A,0x00, 0x8, +0 }, - { 0x010A130,0x0337D10, 0x07,0x00, 0x0, +0 }, - { 0x01D5320,0x03B6261, 0x18,0x00, 0xA, +0 }, - { 0x01572A1,0x02784A1, 0x17,0x00, 0xE, +0 }, - { 0x05A5321,0x01A8A21, 0x9F,0x00, 0xC, +0 }, - { 0x0009F71,0x0069060, 0x51,0x00, 0x0, +0 }, - { 0x0009F71,0x0069062, 0x51,0x00, 0x0, +0 }, - { 0x0077061,0x0077062, 0x80,0x80, 0x7, +0 }, - { 0x0077061,0x0077041, 0x80,0x80, 0x7, +0 }, - { 0x0F7F000,0x00687A2, 0x30,0x00, 0xF, +0 }, - { 0x2129A16,0x1039012, 0x97,0x04, 0x2, +0 }, - { 0x0037165,0x0076171, 0xD2,0x00, 0x2, +0 }, - { 0x0011E00,0x0A11220, 0x40,0x40, 0x6, +0 }, - { 0x0059221,0x1059421, 0x1C,0x00, 0xE, +0 }, - { 0x044FF25,0x033F324, 0x15,0x01, 0xC, +0 }, - { 0x0132F20,0x0132321, 0x0D,0x00, 0x1, +0 }, - { 0x0012E01,0x0216221, 0x40,0x40, 0x6, +0 }, - { 0x3134362,0x0038261, 0x2E,0x00, 0x2, +0 }, - { 0x2035FE6,0x00350E1, 0x0F,0x00, 0x3, +0 }, - { 0x3034F61,0x0035061, 0x0D,0x00, 0x9, +0 }, - { 0x1034F61,0x0035061, 0x00,0x00, 0x9, +0 }, - { 0x3033F60,0x0033061, 0x0D,0x00, 0x7, +0 }, - { 0x112FF53,0x0F1F071, 0x13,0x00, 0x0, +0 }, - { 0x112FFD1,0x0F1F0F1, 0x12,0x00, 0x0, +0 }, - { 0x0E11126,0x0E11120, 0xA5,0x00, 0x0, +0 }, - { 0x30244A1,0x04245E1, 0x51,0x00, 0x2, +0 }, - { 0x0E1A126,0x0E1A120, 0xA5,0x0E, 0x0, +0 }, - { 0x054F101,0x004F008, 0x40,0x00, 0x0, +0 }, - { 0x011A131,0x0437D16, 0x47,0x40, 0x8, +0 }, - { 0x211A131,0x0437D11, 0x14,0x00, 0x0, +0 }, - { 0x091AB0E,0x0C3F702, 0xC0,0x00, 0xE, +0 }, - { 0x02FC811,0x0F5F431, 0x2D,0x00, 0xC, +0 }, - { 0x1176E31,0x20CAB22, 0x43,0x08, 0x2, +0 }, - { 0x1176E31,0x20CAB22, 0x4F,0x08, 0x2, +0 }, - { 0x002FF64,0x0F3F522, 0xDB,0x02, 0x4, +0 }, - { 0x001FF63,0x0F3F534, 0xDB,0x00, 0x2, +0 }, - { 0x0FFFB13,0x0FFE802, 0x40,0x00, 0x8, +0 }, - { 0x108FF00,0x006F000, 0x00,0x00, 0x0, +0 }, - { 0x0F1100E,0x0F61800, 0x00,0x00, 0xE, +0 }, - { 0x1F18F2A,0x1F63816, 0x00,0x00, 0x8, +0 }, - { 0x0F0102E,0x2821020, 0x00,0x00, 0xE, +0 }, - { 0x201EFEE,0x0069FEE, 0x10,0x04, 0x6, +0 }, - { 0x201EFEE,0x0069FEE, 0x01,0x04, 0x6, +0 }, - { 0x001F02E,0x0064820, 0x00,0x00, 0xE, +0 }, - { 0x3EFF71C,0x08FFD0E, 0x00,0x00, 0xF, +0 }, - { 0x202FF0E,0x103FF1E, 0x00,0x80, 0xE, +0 }, - { 0x202BF8E,0x2049F0E, 0x00,0x00, 0xE, +0 }, - { 0x003FF64,0x0F6F73E, 0xDB,0x00, 0x4, +0 }, - { 0x100F300,0x054F600, 0x00,0x00, 0xC, +0 }, - { 0x2F3F40C,0x3D66E0E, 0x00,0x00, 0xE, +0 }, - { 0x07B9C21,0x0FB9502, 0x0A,0x00, 0x8, +0 }, - { 0x0778121,0x0879221, 0x17,0x00, 0xA, +0 }, - { 0x1237221,0x0075121, 0x1A,0x06, 0xE, +0 }, - { 0x0295231,0x0197121, 0x1E,0x04, 0xE, +0 }, - { 0x0187621,0x0098121, 0x1A,0x05, 0xE, +0 }, - { 0x0167921,0x05971A1, 0x1F,0x00, 0x8, +0 }, - { 0x0257521,0x0178421, 0x1A,0x81, 0xE, +0 }, - { 0x0586221,0x0167221, 0x22,0x01, 0xE, +0 }, - { 0x10759B1,0x00A7BA1, 0x1B,0x05, 0x0, +0 }, - { 0x020A821,0x10A7B23, 0x0F,0x05, 0xC, +0 }, - { 0x1378CA1,0x00A7724, 0x0A,0x07, 0x0, +0 }, - { 0x06BFF31,0x0195175, 0x04,0x03, 0xA, +0 }, - { 0x0599BA1,0x00A75E1, 0x8C,0x00, 0x0, +0 }, - { 0x0389F22,0x0296761, 0x1D,0x01, 0x0, +0 }, - { 0x00C9222,0x00DA261, 0x1D,0x03, 0xE, +0 }, - { 0x1C99223,0x1288222, 0x00,0x00, 0x9, -12 }, - { 0x2863428,0x0354121, 0x39,0x07, 0x0, +0 }, - { 0x1F35224,0x1F53223, 0x12,0x09, 0x4, +0 }, - { 0x1D52222,0x1053F21, 0x10,0x88, 0xA, +0 }, - { 0x1554163,0x10541A2, 0x00,0x00, 0x7, -12 }, - { 0x0F7F620,0x2F9770E, 0x08,0x05, 0x0, -24 }, - { 0x100F220,0x1053623, 0x04,0x00, 0x2, -36 }, - { 0x0EFA120,0x0DFF310, 0x00,0x00, 0xE, +0 }, - { 0x000FF24,0x0A9F802, 0x00,0x03, 0xE, +0 }, - { 0x0FEF22C,0x3D8B802, 0x00,0x01, 0x6, +0 }, - { 0x0FE822C,0x3D98802, 0x00,0x07, 0x6, +0 }, - { 0x0F6822E,0x3F87404, 0x00,0x09, 0x4, +0 }, - { 0x100FF2E,0x334D609, 0x00,0x01, 0xC, +0 }, - { 0x389F837,0x0F8F703, 0x0C,0x04, 0x0, +0 }, - { 0x0FAFA25,0x0F9AA03, 0x14,0x00, 0x0, +0 }, - { 0x0F7F241,0x0F7F281, 0x12,0x00, 0x6, +0 }, - { 0x10BD0E0,0x109E0A4, 0x80,0x8E, 0x1, +0 }, - { 0x0F4F60C,0x0F5F341, 0x5C,0x00, 0x0, +0 }, - { 0x1557261,0x0187121, 0x86,0x83, 0x0, +0 }, - { 0x09612F3,0x10430B1, 0x45,0x86, 0x1, +0 }, - { 0x204F061,0x2055020, 0x9D,0x83, 0xC, +0 }, - { 0x236F312,0x2D7B300, 0x2A,0x00, 0x0, +0 }, - { 0x143F701,0x1E4F3A2, 0x00,0x00, 0x8, +0 }, - { 0x35B8721,0x00A6021, 0x99,0x00, 0xE, +0 }, - { 0x0F3D385,0x0F3A341, 0x59,0x80, 0xC, +0 }, - { 0x125FF10,0x015F711, 0x56,0x00, 0xE, +0 }, - { 0x04AFA02,0x074F490, 0x16,0x01, 0xE, +0 }, - { 0x045F668,0x0289E87, 0x00,0x01, 0x6, +0 }, - { 0x164F923,0x177F607, 0x95,0x00, 0xE, +0 }, - { 0x0E7F21C,0x0B8F201, 0x6F,0x80, 0xC, +12 }, - { 0x0E2CE02,0x4E2F402, 0x25,0x00, 0x0, +0 }, - { 0x0E2F507,0x0E2F341, 0xA1,0x00, 0x0, +0 }, - { 0x2E5F5D9,0x0E5F251, 0x22,0x00, 0x8, +0 }, - { 0x0E1F111,0x0E1F251, 0x10,0x08, 0x9, +0 }, - { 0x4B1F0C9,0x0B2F251, 0x98,0x01, 0x8, +0 }, - { 0x082F311,0x0E3F311, 0x44,0x80, 0x9, +0 }, - { 0x0828523,0x0728212, 0xB3,0xA7, 0xE, +0 }, - { 0x0728201,0x0328411, 0x27,0x00, 0xE, +0 }, - { 0x4E5F111,0x4E5F312, 0xA1,0x40, 0x4, -12 }, - { 0x0E5F111,0x0E6F111, 0x89,0x00, 0x5, +0 }, - { 0x5047130,0x01474A0, 0x99,0x01, 0xE, +12 }, - { 0x1147561,0x0147522, 0x88,0x00, 0xF, +0 }, - { 0x5047130,0x01474A0, 0x99,0x01, 0xE, +0 }, - { 0x0141161,0x0165561, 0x17,0x00, 0xC, +12 }, - { 0x7217230,0x604BF31, 0x1B,0x03, 0xC, +0 }, - { 0x0357A31,0x03A7A31, 0x1D,0x09, 0xD, +0 }, - { 0x06599E1,0x0154825, 0x80,0x85, 0x8, +0 }, - { 0x015AA62,0x0058F21, 0x94,0x80, 0x9, +0 }, - { 0x025C9A4,0x0056F21, 0xA2,0x80, 0xC, +0 }, - { 0x015CAA2,0x0056F21, 0xAA,0x00, 0xD, +0 }, - { 0x07E0824,0x0E4E383, 0x80,0x40, 0xA, +24 }, - { 0x0E6F314,0x0E6F281, 0x63,0x00, 0xB, +0 }, - { 0x205FC00,0x017FA00, 0x40,0x00, 0xE, +0 }, - { 0x007FC00,0x638F801, 0x00,0x80, 0xF, +0 }, - { 0x0038165,0x005F172, 0xD2,0x80, 0x2, +0 }, - { 0x0038165,0x005F171, 0xD2,0x40, 0x2, +0 }, - { 0x002A4B4,0x04245D7, 0x47,0x40, 0x6, +0 }, - { 0x0022A55,0x0F34212, 0x97,0x80, 0x0, +0 }, - { 0x001EF8F,0x0F19801, 0x81,0x00, 0x4, +0 }, - { 0x01171B1,0x1154261, 0x8B,0x40, 0x6, +0 }, - { 0x053090E,0x094F702, 0x80,0x00, 0xE, +0 }, - { 0x08F74A1,0x02A65A1, 0x27,0x80, 0x2, +0 }, - { 0x0667190,0x08B5250, 0x92,0x00, 0xE, +0 }, - { 0x0247332,0x0577521, 0x16,0x80, 0xE, +0 }, - { 0x28FA520,0x03D3621, 0x8E,0x00, 0x6, +0 }, - { 0x08C4321,0x02F8521, 0x19,0x80, 0xC, +0 }, - { 0x0AE71A1,0x02E81A0, 0x1C,0x00, 0xE, +0 }, - { 0x054F606,0x0B3F281, 0x73,0x03, 0x0, +0 }, - { 0x0177421,0x01765A2, 0x83,0x8D, 0x7, +0 }, - { 0x0F3F8E2,0x0F3F7B0, 0x86,0x40, 0x4, +0 }, - { 0x0031801,0x090F6B4, 0x80,0xC1, 0xE, +0 }, - { 0x04CA800,0x04FD600, 0x0B,0x03, 0x0, +0 }, - { 0x282B2A4,0x1DA9803, 0x00,0x93, 0xE, +0 }, - { 0x0A0B2A4,0x1D69603, 0x02,0x80, 0xE, +0 }, - { 0x104F0A1,0x1D6F481, 0xCE,0x00, 0x4, +0 }, - { 0x254F568,0x0B7F321, 0xE8,0x00, 0x0, +0 }, - { 0x036F506,0x025FD61, 0x10,0x80, 0x3, +0 }, - { 0x092FF83,0x003F015, 0x00,0x00, 0xE, -12 }, - { 0x00FF0A0,0x00FF0A2, 0xC0,0x06, 0xD, +0 }, - { 0x00BF022,0x10B50B1, 0xCD,0x03, 0x0, +0 }, - { 0x3598600,0x02A7244, 0x42,0x80, 0xC, +0 }, - { 0x039F330,0x00CF060, 0x0F,0x00, 0x8, +12 }, - { 0x1378D31,0x0163871, 0x85,0x00, 0xA, +0 }, - { 0x106F031,0x1065071, 0xC5,0x00, 0x0, +0 }, - { 0x11FF431,0x1365361, 0x40,0x00, 0x0, +0 }, - { 0x01FF431,0x1366361, 0xC0,0x00, 0x0, +0 }, - { 0x043F2B1,0x12851A1, 0x1D,0x00, 0xE, +0 }, - { 0x015F431,0x00560B2, 0x5B,0x83, 0x0, +0 }, - { 0x172FCE1,0x0176271, 0x46,0x00, 0x0, +0 }, - { 0x00530B1,0x00550B2, 0x57,0x00, 0xC, +0 }, - { 0x0655371,0x00FF021, 0x14,0x00, 0xA, +0 }, - { 0x0254231,0x00FF061, 0x56,0x01, 0xE, +0 }, - { 0x1255221,0x0299361, 0x55,0x01, 0xE, +0 }, - { 0x0755471,0x0089021, 0x20,0x00, 0xE, +0 }, - { 0x0043071,0x00A5021, 0x57,0x00, 0xC, +0 }, - { 0x0445171,0x00A5021, 0x55,0x00, 0xC, +0 }, - { 0x35AF802,0x02A4271, 0x00,0x00, 0xE, +0 }, - { 0x08F4EE0,0x02A55A1, 0xEC,0x00, 0xE, +0 }, - { 0x39D6571,0x0095021, 0x17,0x00, 0xE, +0 }, - { 0x05AF802,0x22A4270, 0x00,0x00, 0xE, +0 }, - { 0x29D65A1,0x2095021, 0xC6,0x00, 0x0, -12 }, - { 0x00330B1,0x00440B2, 0x5D,0x00, 0x0, +0 }, - { 0x0585201,0x03641A1, 0x99,0x00, 0x6, +0 }, - { 0x0B4F291,0x075F101, 0xD0,0x00, 0x0, +0 }, - { 0x0572132,0x0194263, 0x06,0x00, 0x9, -12 }, - { 0x3859F85,0x043F311, 0x15,0x00, 0xE, +0 }, - { 0x295F300,0x2B9F2A0, 0x11,0x00, 0x0, +0 }, - { 0x2A3F400,0x2B9F2A0, 0x1B,0x00, 0x0, +0 }, - { 0x2A2FF80,0x30E108E, 0x00,0x00, 0xE, +0 }, - { 0x003402E,0x003109E, 0x00,0x00, 0xE, +0 }, - { 0x2A3379B,0x237461A, 0x95,0x40, 0x0, +0 }, - { 0x344FFAB,0x02AF1EA, 0xC0,0x01, 0xC, -12 }, - { 0x10EF0BE,0x00E3030, 0x00,0x0A, 0xE, +0 }, - { 0x023FCC0,0x006F08E, 0x00,0x00, 0xE, +0 }, - { 0x004F081,0x308F009, 0xC0,0x00, 0xE, +0 }, - { 0x12FF201,0x356F58E, 0xC0,0x00, 0xE, +0 }, - { 0x12FF281,0x356F58E, 0xC0,0x00, 0xE, +0 }, - { 0x155AF00,0x364FF8B, 0x00,0x00, 0xE, +0 }, - { 0x1496401,0x356F58A, 0xC0,0x00, 0xE, +0 }, - { 0x2678900,0x357878E, 0x00,0x00, 0xE, +0 }, - { 0x02FF281,0x356F58E, 0xC0,0x00, 0x0, +0 }, - { 0x0089011,0x357898E, 0xC0,0x00, 0xE, +0 }, - { 0x11BF100,0x3468B9E, 0x00,0x00, 0xE, +0 }, - { 0x205504C,0x05C859D, 0x80,0x0A, 0xA, +0 }, - { 0x205508C,0x05C854D, 0x40,0x0A, 0x0, +0 }, - { 0x206F08B,0x346F610, 0x00,0x00, 0xE, +0 }, - { 0x392F700,0x2AF479E, 0x00,0x00, 0xE, +0 }, - { 0x053F300,0x247698E, 0x43,0x00, 0xE, +0 }, - { 0x224F10E,0x335FF8E, 0x40,0x02, 0x0, +0 }, - { 0x104F081,0x308F009, 0xC0,0x00, 0xE, +0 }, - { 0x215BFD1,0x20473C1, 0x9C,0x00, 0x4, +0 }, - { 0x177F810,0x008F711, 0x91,0x00, 0x6, +0 }, - { 0x277F810,0x108F311, 0xF9,0xC0, 0x6, +0 }, - { 0x25DFB14,0x058F611, 0x80,0x00, 0x8, +0 }, - { 0x12AF900,0x22BFA01, 0x02,0x00, 0x5, +0 }, - { 0x28268D1,0x10563D0, 0x42,0x00, 0xA, +0 }, - { 0x317B142,0x317B101, 0x93,0x00, 0x3, +0 }, - { 0x317B242,0x317B201, 0x93,0x00, 0x3, +0 }, - { 0x2BAE610,0x005EA10, 0x3F,0x3F, 0x0, +0 }, - { 0x053B101,0x074C211, 0x4F,0x00, 0x6, +0 }, - { 0x011F111,0x0B3F101, 0x4A,0x80, 0x6, +0 }, - { 0x1FAF000,0x1FAF211, 0x02,0x80, 0x6, +0 }, - { 0x032F607,0x012F511, 0x97,0x80, 0x2, +0 }, - { 0x0E3F318,0x093F241, 0x62,0x00, 0x0, +0 }, - { 0x025DA05,0x015F901, 0x4E,0x00, 0xA, +0 }, - { 0x1558403,0x005D341, 0x49,0x80, 0x4, +0 }, - { 0x01FF003,0x012F001, 0x5B,0x92, 0xA, +0 }, - { 0x01FF2A0,0x07CF521, 0x11,0x00, 0xA, +0 }, - { 0x0442009,0x0F4D144, 0xA1,0x80, 0x8, +0 }, - { 0x08AE220,0x0A8E420, 0x11,0x00, 0xA, +0 }, - { 0x1DBB891,0x1567551, 0x17,0x00, 0xC, +0 }, - { 0x0117171,0x11772A1, 0x8B,0x40, 0x6, +0 }, - { 0x111F0F1,0x1151121, 0x95,0x00, 0x0, +0 }, - { 0x111C071,0x1159221, 0x20,0x08, 0xC, +0 }, - { 0x0C57461,0x165B220, 0x0F,0x08, 0xA, +0 }, - { 0x08153E1,0x0B962E1, 0x9F,0x05, 0xE, +0 }, - { 0x0AE71E1,0x09E81E1, 0x19,0x07, 0xA, +0 }, - { 0x0AE73E1,0x09881E2, 0x49,0x08, 0xC, +0 }, - { 0x0177E71,0x00E7B22, 0xC5,0x05, 0x2, +0 }, - { 0x08F7461,0x02A6561, 0x27,0x80, 0x2, +0 }, - { 0x0D761E1,0x0F793E1, 0x85,0x80, 0xB, +0 }, - { 0x1F6FB34,0x0439471, 0x83,0x00, 0xC, +0 }, - { 0x011A131,0x0437D16, 0x87,0x80, 0x8, +0 }, - { 0x1111EF0,0x11111E2, 0x00,0xC0, 0x8, +0 }, - { 0x053F101,0x1F5F718, 0x4F,0x00, 0x6, +0 }, - { 0x20CA808,0x13FD903, 0x09,0x00, 0x0, +0 }, - { 0x0A1B2E0,0x1D6950E, 0x84,0x00, 0xE, +0 }, - { 0x286F265,0x228670E, 0x00,0x00, 0xE, +0 }, - { 0x00CFD01,0x034D600, 0x07,0x00, 0x0, +0 }, - { 0x00CF600,0x004F600, 0x00,0x00, 0x1, +0 }, - { 0x0FEF512,0x0FFF652, 0x11,0xA2, 0x6, +0 }, - { 0x0FFF941,0x0FFF851, 0x0F,0x00, 0x6, +0 }, - { 0x205FC80,0x017FA00, 0x00,0x00, 0xE, +0 }, - { 0x034A501,0x602FF01, 0x00,0x00, 0x7, +0 }, - { 0x007FB00,0x004A401, 0x09,0x00, 0x7, +0 }, - { 0x004F902,0x0F69705, 0x00,0x03, 0x0, +0 }, - { 0x156F284,0x100F442, 0x03,0x00, 0xE, +0 }, - { 0x000F34F,0x0A5F48F, 0x00,0x06, 0xE, +0 }, - { 0x0B6FA01,0x096C802, 0x8A,0x40, 0xE, +0 }, - { 0x00CF505,0x007F501, 0xEC,0x00, 0xF, +0 }, - { 0x0BFFA01,0x095C802, 0x8F,0x80, 0x6, +0 }, - { 0x00CF505,0x006F501, 0xEC,0x00, 0x7, +0 }, - { 0x08DFA01,0x0BAFA03, 0x4F,0x00, 0x6, +0 }, - { 0x08DFA01,0x0B5F803, 0x4F,0x00, 0x6, +0 }, - { 0x006FA01,0x006FA00, 0x00,0x00, 0xE, +0 }, - { 0x38CF800,0x06EF600, 0x80,0x00, 0xE, +0 }, - { 0x38CF803,0x0B5F80C, 0x80,0x00, 0xE, +0 }, - { 0x38CF803,0x0B5F80C, 0x83,0x00, 0xE, +0 }, - { 0x049C80F,0x2699B03, 0x40,0x00, 0xE, +0 }, - { 0x305AD57,0x2058D47, 0xDC,0x00, 0xE, +0 }, - { 0x304A857,0x2048847, 0xDC,0x00, 0xE, +0 }, - { 0x506FF80,0x016FF10, 0x00,0x00, 0xC, +0 }, - { 0x7476601,0x0476603, 0xCD,0x40, 0x8, +0 }, - { 0x0476601,0x0576601, 0xC0,0x00, 0x9, +0 }, - { 0x0E56701,0x0356503, 0x11,0x24, 0xA, +0 }, - { 0x0757900,0x0057601, 0x9A,0x00, 0xB, +0 }, - { 0x0E6F622,0x0E5F923, 0x1E,0x03, 0x0, +0 }, - { 0x0E6F924,0x0E4F623, 0x28,0x00, 0x1, +0 }, - { 0x0E6F522,0x0E5F623, 0x1E,0x03, 0x0, +0 }, - { 0x0E6F524,0x0E4F423, 0x28,0x00, 0x1, +0 }, - { 0x0E5F108,0x0E5C302, 0x66,0x86, 0x8, +0 }, - { 0x052F605,0x0D5F582, 0x69,0x47, 0x9, +0 }, - { 0x131FF13,0x003FF11, 0x43,0x00, 0x6, +0 }, - { 0x074A302,0x075C401, 0x9A,0x80, 0xA, +0 }, - { 0x103E702,0x005E604, 0x86,0x40, 0xB, +0 }, - { 0x0145321,0x025D221, 0x8B,0x21, 0x8, +0 }, - { 0x104C3A1,0x0158221, 0x9F,0x0F, 0x8, +0 }, - { 0x075F502,0x0F3F201, 0x20,0x83, 0xC, +0 }, - { 0x7D2FE85,0x074F342, 0x8F,0x80, 0x6, -12 }, - { 0x0119131,0x11572A1, 0x8A,0x00, 0x6, +0 }, - { 0x0013121,0x10545A1, 0x4D,0x82, 0x6, +0 }, - { 0x0075131,0x0399261, 0x1D,0x80, 0xE, +0 }, - { 0x00741B1,0x0398221, 0x1C,0x87, 0xF, +0 }, - { 0x21A73A0,0x03A8523, 0x95,0x00, 0xE, +0 }, - { 0x05A5321,0x01A6C21, 0x9F,0x80, 0xC, +0 }, - { 0x0565321,0x0277C21, 0x18,0x00, 0xD, +0 }, - { 0x0299960,0x036F823, 0xA3,0x5D, 0xA, +12 }, - { 0x015FAA0,0x00B8F22, 0x90,0x08, 0xA, +0 }, - { 0x22871A0,0x01A8124, 0x23,0x00, 0xA, +0 }, - { 0x2287320,0x01A8424, 0x97,0x98, 0xB, +0 }, - { 0x0068B20,0x0008F21, 0x2F,0x20, 0xE, +12 }, - { 0x007CF20,0x0097F22, 0x5B,0x00, 0xE, +0 }, - { 0x0277784,0x01655A1, 0x9B,0x85, 0xC, +0 }, - { 0x01566A2,0x00566A1, 0x9B,0x06, 0xD, +0 }, - { 0x137FB00,0x05CE711, 0x05,0x00, 0x8, +0 }, - { 0x04CA900,0x04FD600, 0x0B,0x00, 0x0, +0 }, - { 0x023F302,0x067F700, 0x08,0x00, 0xE, +0 }, - { 0x017FB01,0x008FD02, 0x40,0x00, 0x9, +0 }, - { 0x0F4F306,0x0E4E203, 0xA4,0x6D, 0x6, +0 }, - { 0x0D4E101,0x0E5E111, 0x53,0x02, 0x6, +0 }, - { 0x053F241,0x0F3F213, 0x9D,0x00, 0x6, +0 }, - { 0x050F101,0x076D201, 0x4F,0x04, 0x6, +0 }, - { 0x053F101,0x0849212, 0xC3,0x09, 0x8, +0 }, - { 0x074F202,0x077F401, 0x92,0x83, 0x8, +0 }, - { 0x013F202,0x044F502, 0x22,0x00, 0xE, +0 }, - { 0x475F113,0x256F201, 0x96,0x81, 0x6, +0 }, - { 0x0100133,0x033AD14, 0x87,0x80, 0x8, +0 }, - { 0x0E5F14C,0x0E5C301, 0x69,0x06, 0x8, +0 }, - { 0x0E2660F,0x0E4C191, 0x9D,0x06, 0xE, +0 }, - { 0x033F584,0x015FDA0, 0x59,0x80, 0x2, +0 }, - { 0x0B5F615,0x0E6F311, 0x97,0x01, 0x4, +0 }, - { 0x0F8FF06,0x055F8C4, 0x01,0x00, 0xE, +0 }, - { 0x063F207,0x074F212, 0x4F,0x00, 0x8, +0 }, - { 0x341F5A3,0x203F811, 0x11,0x00, 0x0, +0 }, - { 0x01AF003,0x01DF001, 0x5B,0x80, 0xA, +0 }, - { 0x22A9132,0x12A91B1, 0xCD,0x80, 0x9, +0 }, - { 0x0038165,0x005F171, 0xD2,0x80, 0x2, +0 }, - { 0x00AFF24,0x00DFF21, 0x80,0x80, 0x1, +0 }, - { 0x01CF003,0x01EA001, 0x54,0x84, 0xC, +0 }, - { 0x0186223,0x02A6221, 0x19,0x84, 0xE, +0 }, - { 0x0087224,0x00B4231, 0x4F,0x00, 0xE, +0 }, - { 0x0186222,0x02A6221, 0x19,0x84, 0xE, +0 }, - { 0x0C3C201,0x056F501, 0x0A,0x00, 0x6, +0 }, - { 0x034F401,0x039F201, 0x13,0x80, 0x8, +0 }, - { 0x07FC611,0x0DFF511, 0x4D,0x00, 0x6, +0 }, - { 0x4C5A421,0x004F821, 0x20,0x00, 0x2, +0 }, - { 0x0E78301,0x078F201, 0x56,0x00, 0xA, +0 }, - { 0x0AFF301,0x078F501, 0x11,0x00, 0x8, +0 }, - { 0x114FF20,0x0D4F561, 0xCB,0x00, 0xC, +0 }, - { 0x1937510,0x182F501, 0x00,0x00, 0x0, +0 }, - { 0x01379C0,0x07472D2, 0x4F,0x00, 0x6, +12 }, - { 0x2355612,0x12D9531, 0x9C,0x00, 0xA, +0 }, - { 0x21351A0,0x2275360, 0x9B,0x01, 0xE, +0 }, - { 0x163F2A1,0x0368331, 0x48,0x00, 0x6, +0 }, - { 0x171A501,0x2539600, 0x0D,0x02, 0x7, +0 }, - { 0x051F431,0x074B711, 0x57,0x00, 0xC, +0 }, - { 0x005F624,0x095C702, 0xDB,0x23, 0x8, +0 }, - { 0x095F422,0x0D5F401, 0x22,0x00, 0x8, +0 }, - { 0x016F521,0x03493A1, 0x8C,0x00, 0x0, +0 }, - { 0x01FB431,0x01FA2A1, 0x1A,0x80, 0xE, +0 }, - { 0x04654A1,0x0078FA1, 0x1C,0x07, 0xE, +0 }, - { 0x0466421,0x0078FE1, 0x14,0x01, 0xF, +0 }, - { 0x0796520,0x0268AA1, 0x8C,0x03, 0x8, +12 }, - { 0x2179280,0x03686A0, 0xCF,0x00, 0x9, +0 }, - { 0x03A5321,0x00B6521, 0x9C,0x01, 0xA, +0 }, - { 0x01C7321,0x02C7C21, 0xC0,0x97, 0xB, +0 }, - { 0x06581E1,0x07C52F2, 0x51,0x00, 0xC, +0 }, - { 0x22E71E0,0x01E80E4, 0x23,0x00, 0xA, +0 }, - { 0x019D530,0x01B6171, 0xC8,0x80, 0xC, +0 }, - { 0x01582A3,0x007E562, 0x21,0x9E, 0xE, +0 }, - { 0x005D224,0x0076F21, 0x9F,0x02, 0xF, +0 }, - { 0x48674A1,0x02765A1, 0x1F,0x00, 0x0, +0 }, - { 0x0277584,0x01655A1, 0xA0,0x81, 0xC, +0 }, - { 0x01566A2,0x00566A1, 0x8A,0x00, 0xD, +0 }, - { 0x016D322,0x07DE82F, 0x9B,0x2E, 0xE, -12 }, - { 0x006C524,0x02764B2, 0x62,0x04, 0xE, +0 }, - { 0x0557221,0x096F481, 0x0B,0x08, 0x6, +0 }, - { 0x0A6CF22,0x09C8410, 0xD5,0x0D, 0x7, +0 }, - { 0x001F501,0x0F1F101, 0x37,0x20, 0x0, +0 }, - { 0x0E3F201,0x0E7F501, 0x11,0x00, 0x0, +0 }, - { 0x03CF201,0x0E2F111, 0x3F,0x14, 0x0, +0 }, - { 0x0E6F541,0x0E7F312, 0x13,0x01, 0x0, +0 }, - { 0x01582A3,0x00AF562, 0x21,0xA3, 0xE, +0 }, - { 0x005F224,0x00A6F21, 0xA2,0x09, 0xF, +0 }, - { 0x0F0F006,0x2B6F800, 0x00,0x00, 0xE, +0 }, - { 0x04CA900,0x03FF600, 0x07,0x00, 0xA, +0 }, - { 0x008B902,0x01DFC03, 0x00,0x00, 0xB, +0 }, - { 0x60AF905,0x41CFC0A, 0x00,0x00, 0xD, +0 }, - { 0x033F400,0x4FFF700, 0x04,0x00, 0xE, +0 }, - { 0x40AFF02,0x01CFF00, 0xC0,0x01, 0x4, +0 }, - { 0x003F902,0x247FB00, 0x00,0x00, 0xE, +0 }, - { 0x403FB02,0x447FB01, 0x00,0x00, 0xE, +0 }, - { 0x609F505,0x709F30F, 0x00,0x00, 0x6, +0 }, - { 0x201C687,0x023BC15, 0xC0,0x40, 0xE, +0 }, - { 0x435DE00,0x438F801, 0xC0,0x00, 0xA, +0 }, - { 0x30AF400,0x278F700, 0x47,0x04, 0xE, +0 }, - { 0x30AF400,0x278F700, 0x4B,0x02, 0xE, +0 }, - { 0x509F601,0x429F701, 0x00,0x00, 0x7, +0 }, - { 0x407FF00,0x769A901, 0x00,0x40, 0x9, +0 }, - { 0x408FA01,0x769DB02, 0x00,0x40, 0x7, +0 }, - { 0x112AA03,0x1F59011, 0x1C,0x00, 0xE, +0 }, - { 0x073F668,0x063F5A1, 0x1B,0x0D, 0x0, +0 }, - { 0x054F1A1,0x0F4F060, 0x54,0x00, 0x2, +0 }, - { 0x0038164,0x005D171, 0xD2,0x80, 0x2, +0 }, - { 0x0F1FB3E,0x093A071, 0x29,0x00, 0x0, +0 }, - { 0x022FE30,0x007FB20, 0x07,0x00, 0x0, +0 }, - { 0x0527101,0x0735012, 0x8F,0x00, 0xA, +0 }, - { 0x1249F16,0x035B012, 0x11,0x00, 0x8, +0 }, - { 0x1119183,0x0F1B142, 0xD7,0x00, 0x0, +0 }, - { 0x006FA04,0x005FF01, 0xD3,0x00, 0xA, +0 }, - { 0x044F406,0x034F201, 0x03,0x1B, 0x1, +0 }, - { 0x088FA21,0x097B313, 0x06,0x00, 0xC, +0 }, - { 0x031F91C,0x0E89615, 0x0C,0x00, 0xE, +0 }, - { 0x0F7F521,0x0F7F521, 0x99,0x80, 0xE, +0 }, - { 0x038B2F1,0x0488122, 0x19,0x40, 0xC, +0 }, - { 0x016D221,0x0F8C201, 0x1D,0x00, 0xA, +0 }, - { 0x082D301,0x0B8D301, 0x4E,0x06, 0xA, +0 }, - { 0x0036101,0x0F86101, 0x14,0x0D, 0xC, +0 }, - { 0x017F321,0x0E8F222, 0x17,0x08, 0xC, +0 }, - { 0x0CEB161,0x1BAD061, 0x13,0x40, 0xA, +0 }, - { 0x075C130,0x0659131, 0x10,0x42, 0xA, +0 }, - { 0x0977801,0x0988802, 0x00,0x00, 0x8, +0 }, - { 0x0FEF22C,0x0D8B802, 0x00,0x1A, 0x6, +0 }, - { 0x0F6822E,0x0F87404, 0x00,0x27, 0x4, +0 }, - { 0x0009F2C,0x0D4C50E, 0x00,0x05, 0xE, +0 }, - { 0x0009429,0x044F904, 0x10,0x04, 0xE, +0 }, - { 0x0F1F52E,0x0F78706, 0x09,0x03, 0x0, +0 }, - { 0x0A1F737,0x028F603, 0x14,0x00, 0x8, +0 }, - { 0x000FF80,0x0F7F500, 0x00,0x00, 0xC, +0 }, - { 0x0FAFB21,0x0F7A802, 0x03,0x00, 0x0, +0 }, - { 0x0FAF924,0x0F6A603, 0x18,0x00, 0xE, +0 }, - { 0x0F5F505,0x036F603, 0x14,0x00, 0x6, +0 }, - { 0x001FF0E,0x077790E, 0x00,0x02, 0xE, +0 }, - { 0x007AF20,0x02BA50E, 0x15,0x00, 0x4, +0 }, - { 0x007BF20,0x03B930E, 0x18,0x00, 0x0, +0 }, - { 0x0F7F020,0x03B8908, 0x00,0x01, 0xA, +0 }, - { 0x0FAF320,0x02B5308, 0x00,0x0A, 0x8, +0 }, - { 0x09AF815,0x089F613, 0x21,0x10, 0x8, +0 }, - { 0x0075F20,0x04B8708, 0x01,0x00, 0x0, +0 }, - { 0x0F75725,0x0677803, 0x12,0x00, 0x0, +0 }, - { 0x0F0F126,0x0F5F527, 0x97,0xA1, 0x4, +0 }, - { 0x054F123,0x173F231, 0x66,0x00, 0x6, +0 }, - { 0x010A132,0x0337D16, 0x87,0x80, 0x8, +0 }, - { 0x143F523,0x204F811, 0x0E,0x00, 0x0, +0 }, - { 0x0100133,0x0027D14, 0x87,0x80, 0x8, +0 }, - { 0x001AF64,0x062A33F, 0xDB,0xC0, 0x4, +0 }, - { 0x0118171,0x1156261, 0x8B,0x40, 0x6, +0 }, - { 0x0127171,0x11652E1, 0x8B,0x40, 0x6, +0 }, - { 0x143F523,0x208F831, 0x0E,0x00, 0x0, +0 }, - { 0x0E7F301,0x078F201, 0x58,0x00, 0xA, +0 }, - { 0x054C701,0x096A201, 0x4D,0x00, 0x4, +0 }, - { 0x154C701,0x096A201, 0x4D,0x00, 0x4, +0 }, - { 0x0C28621,0x0BDF221, 0x16,0x00, 0x2, +0 }, - { 0x08DF520,0x08CF311, 0x49,0x00, 0xA, +12 }, - { 0x09EF520,0x05BF411, 0x90,0x00, 0xC, +12 }, - { 0x5144261,0x3344261, 0x87,0x82, 0x1, +0 }, - { 0x02371A1,0x1286371, 0x4F,0x02, 0x6, +0 }, - { 0x11152F0,0x12E32F1, 0xC5,0x80, 0x0, +0 }, - { 0x01171F1,0x11542E1, 0x8B,0x40, 0x6, +0 }, - { 0x01FF201,0x088F701, 0x17,0x00, 0xA, +0 }, - { 0x054C701,0x096A201, 0x8D,0x00, 0x4, -24 }, - { 0x0117171,0x11542E1, 0x8B,0x40, 0x6, +0 }, - { 0x053F121,0x1743232, 0x4F,0x00, 0x6, +0 }, - { 0x0117171,0x1154261, 0x8B,0x40, 0x6, +0 }, - { 0x01271B1,0x1166261, 0x8B,0x40, 0x6, +0 }, - { 0x011A1B1,0x1159261, 0x8B,0x40, 0x6, +0 }, - { 0x5176261,0x3176261, 0x80,0x82, 0x5, +0 }, - { 0x5155261,0x3166362, 0x80,0x83, 0x5, +0 }, - { 0x0065131,0x03B9261, 0x1C,0x80, 0xE, +0 }, - { 0x01F61B1,0x03B9261, 0x1C,0x80, 0xE, +0 }, - { 0x0276561,0x2275570, 0x83,0x03, 0xB, +0 }, - { 0x0537101,0x07C6212, 0x4E,0x00, 0xA, +0 }, - { 0x0658181,0x07C52B2, 0x93,0x00, 0xA, +0 }, - { 0x02661B0,0x0375271, 0x96,0x00, 0xE, +12 }, - { 0x0A6FF64,0x01424B1, 0x8A,0x00, 0xE, +0 }, - { 0x0A4F724,0x0132431, 0x5B,0x00, 0xE, +0 }, - { 0x0384161,0x028E1A1, 0x97,0x00, 0x6, +0 }, - { 0x01797F1,0x048F321, 0x06,0x0D, 0x8, +0 }, - { 0x054F406,0x053F281, 0x73,0x03, 0x0, +0 }, - { 0x1E31111,0x0D42101, 0x09,0x05, 0x6, +0 }, - { 0x30217B1,0x0057321, 0x29,0x03, 0x6, +0 }, - { 0x08311E6,0x0541120, 0x11,0x00, 0x0, +0 }, - { 0x00361B1,0x0175461, 0x1F,0x01, 0xE, +0 }, - { 0x0F00000,0x0A21B14, 0x02,0x80, 0xE, +0 }, - { 0x03FB300,0x0F0AB08, 0x80,0x00, 0xA, +0 }, - { 0x1B29510,0x0069510, 0x11,0x00, 0x8, +0 }, - { 0x0F0F000,0x0B69800, 0x00,0x08, 0xE, +0 }, - { 0x0F0F009,0x0F7B720, 0x0E,0x0A, 0xE, +0 }, - { 0x21AF400,0x008F800, 0x00,0x08, 0xC, +0 }, - { 0x054C701,0x096A201, 0x8D,0x00, 0x4, +0 }, - { 0x202FF4F,0x3F6F601, 0x00,0x0F, 0x8, +0 }, - { 0x300EF9E,0x0D8A705, 0x80,0x00, 0xC, +0 }, - { 0x0F0F006,0x035C4C4, 0x00,0x03, 0xE, +0 }, - { 0x210BA2F,0x2F4B40F, 0x0E,0x00, 0xE, +0 }, - { 0x053F101,0x0B5F700, 0x7F,0x00, 0x6, +0 }, - { 0x013FA43,0x096F342, 0xD6,0x80, 0xA, +0 }, - { 0x030F930,0x0FEF600, 0x01,0x00, 0xE, +0 }, - { 0x0FF0006,0x0FDF715, 0x3F,0x0D, 0x0, +0 }, - { 0x0F0F006,0x0B4F600, 0x00,0x20, 0xE, +0 }, - { 0x1DEB421,0x0EEF231, 0x45,0x00, 0x6, +0 }, - { 0x0135821,0x0031531, 0x2B,0x00, 0x8, +0 }, - { 0x0ADF321,0x05DF321, 0x08,0x00, 0x8, +0 }, - { 0x0EFD245,0x0EFA301, 0x4F,0x00, 0xA, +0 }, - { 0x0E7F217,0x0E7C211, 0x54,0x06, 0xA, +0 }, - { 0x0C7F219,0x0D7F291, 0x2B,0x07, 0xB, +0 }, - { 0x1084331,0x0084232, 0x93,0x00, 0xC, +0 }, - { 0x0084522,0x01844F1, 0x65,0x00, 0xD, +0 }, - { 0x0E8F318,0x0F8F281, 0x62,0x00, 0x0, +0 }, - { 0x0DFD441,0x0DFC280, 0x8A,0x0C, 0x4, +0 }, - { 0x0DFD345,0x0FFA381, 0x93,0x00, 0x5, +0 }, - { 0x02CA760,0x00DAFE1, 0xC6,0x80, 0x4, +0 }, - { 0x0EEF121,0x17FD131, 0x00,0x00, 0x4, +0 }, - { 0x02FA7A3,0x00FAFE1, 0x56,0x83, 0x8, +0 }, - { 0x00FAF61,0x00FAFA2, 0x91,0x83, 0x9, +0 }, - { 0x275A421,0x1456161, 0x13,0x00, 0x4, +0 }, - { 0x4FAB913,0x0DA9102, 0x0D,0x1A, 0xA, +0 }, - { 0x04FF923,0x2FF9122, 0xA1,0x16, 0xE, +0 }, - { 0x0BF9120,0x04F9122, 0x99,0x00, 0xE, +0 }, - { 0x0432121,0x0355222, 0x97,0x00, 0x8, +0 }, - { 0x0AD9101,0x0CD9301, 0x53,0x00, 0x2, +0 }, - { 0x0EAF111,0x0EAF312, 0xA8,0x57, 0x4, +0 }, - { 0x0EAE111,0x0EAE111, 0x97,0x00, 0x4, +0 }, - { 0x0ECF131,0x07DF131, 0x8D,0x00, 0xA, +0 }, - { 0x02A5131,0x04A7132, 0x5B,0x00, 0xC, +0 }, - { 0x04A7131,0x04A7131, 0x19,0x00, 0xD, +0 }, - { 0x0AE9101,0x0CE9302, 0x93,0x00, 0x6, +0 }, - { 0x02FF120,0x3CFF220, 0x8C,0x00, 0x6, +0 }, - { 0x04FF220,0x35FF222, 0x94,0x00, 0x8, +0 }, - { 0x2036130,0x21754A0, 0x95,0x00, 0xA, +0 }, - { 0x3107560,0x2176520, 0x89,0x00, 0xB, +0 }, - { 0x513DD31,0x0385621, 0x95,0x00, 0xC, +0 }, - { 0x1038D13,0x0786025, 0x95,0x89, 0xD, +0 }, - { 0x121F131,0x0166FE1, 0x40,0x00, 0x2, +0 }, - { 0x1038D14,0x0266620, 0x95,0x89, 0x9, +0 }, - { 0x1FFF510,0x0FFF211, 0x41,0x00, 0x2, +0 }, - { 0x1176561,0x0176521, 0x96,0x00, 0xF, +0 }, - { 0x2097861,0x1095821, 0x16,0x00, 0x8, +0 }, - { 0x121F131,0x0177C61, 0x40,0x00, 0x2, +0 }, - { 0x6EF1F15,0x6E21115, 0xC0,0x40, 0xE, +0 }, - { 0x0E21111,0x0E31111, 0x40,0x00, 0xE, +0 }, - { 0x2686500,0x616C500, 0x00,0x00, 0xB, +0 }, - { 0x6DAC600,0x30E7400, 0x00,0x00, 0xB, +0 }, - { 0x01C8521,0x00C8F21, 0x92,0x01, 0xC, +0 }, - { 0x01C8421,0x00CAF61, 0x15,0x0B, 0xD, +0 }, - { 0x01B8521,0x00B7F21, 0x94,0x05, 0xC, +0 }, - { 0x01B8421,0x00BAF61, 0x15,0x0D, 0xD, +0 }, - { 0x0158621,0x0378221, 0x94,0x00, 0xC, +0 }, - { 0x0178521,0x0098F61, 0x92,0x00, 0xC, +0 }, - { 0x00A7321,0x00B8F21, 0x9F,0x00, 0xE, +0 }, - { 0x00A65A1,0x00B9F61, 0x9B,0x00, 0xF, +0 }, - { 0x02E7221,0x00E8F21, 0x16,0x00, 0xC, +0 }, - { 0x0EE7521,0x03E8A21, 0x1D,0x00, 0xD, +0 }, - { 0x0AC54A1,0x01CA661, 0x50,0x00, 0x8, +0 }, - { 0x2089331,0x00A72A1, 0x96,0x00, 0x8, +0 }, - { 0x0088521,0x12A8431, 0x96,0x00, 0x9, +0 }, - { 0x10A9331,0x00D72A1, 0x8E,0x00, 0x8, +0 }, - { 0x00AC524,0x12D6431, 0xA1,0x00, 0x9, +0 }, - { 0x10F9331,0x00F7271, 0x8D,0x00, 0xA, +0 }, - { 0x006A524,0x11664B1, 0x9D,0x00, 0xB, +0 }, - { 0x51E7E71,0x10F8B21, 0x4D,0x00, 0x6, +0 }, - { 0x1197531,0x0196172, 0x8E,0x00, 0xA, +0 }, - { 0x0269B32,0x0187321, 0x90,0x00, 0x4, +0 }, - { 0x02F7721,0x02F7A73, 0x21,0x55, 0x2, +0 }, - { 0x01F7A21,0x01F7A22, 0x93,0x00, 0x2, +0 }, - { 0x01DAFA1,0x00D7521, 0x9C,0x00, 0x2, +0 }, - { 0x011DA65,0x068A663, 0x00,0x1E, 0xC, +0 }, - { 0x0588861,0x01A6561, 0x8C,0x00, 0xD, +0 }, - { 0x1282121,0x0184161, 0x12,0x00, 0x0, +0 }, - { 0x00FFF21,0x60FFF21, 0x09,0x80, 0x5, +0 }, - { 0x3FAF100,0x3FAF111, 0x8E,0x00, 0x0, +0 }, - { 0x2C686A1,0x0569321, 0x46,0x80, 0xA, +0 }, - { 0x01B7D61,0x01B72B1, 0x40,0x23, 0xE, +0 }, - { 0x00BDFA2,0x00B7F61, 0x5D,0x80, 0xF, +0 }, - { 0x009FF20,0x40A8F61, 0x36,0x00, 0x8, +0 }, - { 0x00FFF21,0x40D8F61, 0x27,0x00, 0x9, +0 }, - { 0x0FCF521,0x0FDF523, 0x0F,0x00, 0xA, +0 }, - { 0x0FDF926,0x6FCF921, 0x16,0x00, 0xB, +0 }, - { 0x011A861,0x0032531, 0x1F,0x80, 0xA, +0 }, - { 0x031A101,0x0032571, 0xA1,0x00, 0xB, +0 }, - { 0x0141161,0x0175561, 0x17,0x00, 0xC, +0 }, - { 0x446C361,0x026C361, 0x14,0x00, 0xD, +0 }, - { 0x63311E1,0x0353261, 0x89,0x03, 0xA, +0 }, - { 0x6E42161,0x6D53261, 0x8C,0x03, 0xB, +0 }, - { 0x0336121,0x0355261, 0x8D,0x03, 0xA, +0 }, - { 0x177A1A1,0x1471121, 0x1C,0x00, 0xB, +0 }, - { 0x03311E1,0x0353261, 0x89,0x03, 0xA, +0 }, - { 0x0E42161,0x0D53261, 0x8C,0x03, 0xB, +0 }, - { 0x003A801,0x005A742, 0x99,0x00, 0xD, +0 }, - { 0x2332121,0x0143260, 0x8C,0x97, 0x6, +0 }, - { 0x1041161,0x0143121, 0x0E,0x00, 0x7, +0 }, - { 0x056B222,0x054F261, 0x92,0x00, 0xC, +0 }, - { 0x04311A1,0x0741161, 0x0E,0x92, 0xA, +0 }, - { 0x0841161,0x0041DA1, 0x8E,0x80, 0xB, +0 }, - { 0x0346161,0x0055D21, 0x4C,0x80, 0x6, +0 }, - { 0x0CFF411,0x1EFF411, 0x05,0x00, 0x4, +0 }, - { 0x035D493,0x114EB11, 0x11,0x00, 0x8, +0 }, - { 0x035D453,0x116EB13, 0x11,0x0D, 0x9, +0 }, - { 0x1E31117,0x2E31114, 0x10,0x6E, 0xC, +0 }, - { 0x0E31111,0x0E31111, 0x80,0x00, 0xC, +0 }, - { 0x017A821,0x0042571, 0x23,0x00, 0xA, +0 }, - { 0x45FF811,0x0EFF310, 0x4F,0x00, 0xE, +0 }, - { 0x15FF630,0x0EFF410, 0x12,0x00, 0xF, +0 }, - { 0x00F4F2F,0x30F3F20, 0x00,0x00, 0xC, +0 }, - { 0x03FF923,0x2FF9222, 0x23,0x0A, 0xE, +0 }, - { 0x0BF9122,0x04FA123, 0x18,0x00, 0xE, +0 }, - { 0x000F80F,0x3F93410, 0x00,0x05, 0xE, +0 }, - { 0x034A121,0x0166521, 0x17,0x00, 0xC, +0 }, - { 0x0FA6848,0x04AAA01, 0x00,0x3F, 0x5, +0 }, - { 0x0FA6747,0x0FA464C, 0x00,0x00, 0x5, +0 }, - { 0x2037F21,0x1065F61, 0x18,0x00, 0x0, +0 }, - { 0x10C2EF0,0x10C21E2, 0x00,0x00, 0x4, -36 }, - { 0x70C2EF0,0x10C21E2, 0x00,0x00, 0x5, +0 }, - { 0x039A321,0x03C7461, 0x8D,0x03, 0xA, +0 }, - { 0x179A3A1,0x14C2321, 0x1C,0x00, 0xB, +0 }, - { 0x01A7521,0x00F8F21, 0x97,0x00, 0xC, +0 }, - { 0x0FFF920,0x0FFF620, 0xC0,0x00, 0x8, +0 }, - { 0x277F810,0x0AFF611, 0x44,0x00, 0x8, +0 }, - { 0x01FF933,0x0FFF810, 0x80,0x00, 0x4, +0 }, - { 0x2FFF500,0x0FFF700, 0x00,0x00, 0xC, +0 }, - { 0x0DFF712,0x0DFF811, 0x08,0x00, 0x2, +0 }, - { 0x0FFF210,0x0FFF510, 0x00,0x00, 0xC, +0 }, - { 0x1DFE920,0x0CEF400, 0x00,0x00, 0x4, +0 }, - { 0x2DFF50E,0x0AFF712, 0x00,0x00, 0xE, +0 }, - { 0x03FF800,0x1FFF410, 0x03,0x00, 0x4, +0 }, - { 0x2FFF012,0x3BF8608, 0x11,0x80, 0xE, +0 }, - { 0x0FFF20E,0x2DF9502, 0x00,0x00, 0xC, +0 }, - { 0x2DDF014,0x0FF93F0, 0x00,0x00, 0xE, +0 }, - { 0x3EFE40E,0x1EFF507, 0x0A,0x40, 0x6, +0 }, - { 0x0EFB402,0x0FF9705, 0x03,0x0A, 0xE, +0 }, - { 0x01FF66E,0x3FF945E, 0x08,0x00, 0xE, +0 }, - { 0x200F6CE,0x3FFF21A, 0x04,0x00, 0xC, +0 }, - { 0x3FFF040,0x0FEF510, 0x00,0x00, 0xC, +0 }, - { 0x38CF803,0x0BCF60C, 0x80,0x08, 0xF, +0 }, - { 0x38FF803,0x0BFF60C, 0x85,0x00, 0xF, +0 }, - { 0x04F760E,0x2CF7800, 0x40,0x08, 0xE, +0 }, - { 0x04FC80E,0x26F9903, 0x40,0x00, 0xE, +0 }, - { 0x1DF75CE,0x2EF38E1, 0x00,0x00, 0xE, +0 }, - { 0x03FF162,0x0FF4B20, 0x00,0x00, 0x8, +0 }, - { 0x0F40006,0x0FBF715, 0x3F,0x00, 0x1, +0 }, - { 0x0FF47E1,0x0FF47EA, 0x00,0x00, 0x0, +0 }, - { 0x3FFE00A,0x0FFF51E, 0x40,0x0E, 0x8, +0 }, - { 0x3FFE00A,0x0FFF21E, 0x7C,0x52, 0x8, +0 }, - { 0x04E7A0E,0x21E7B00, 0x81,0x00, 0xE, +0 }, - { 0x35FF925,0x0FFD524, 0x05,0x40, 0xE, +0 }, - { 0x08FFA01,0x0FFF802, 0x4F,0x00, 0x7, +0 }, - { 0x0FFFC00,0x0FFF520, 0x00,0x00, 0x4, +0 }, - { 0x60FF331,0x70FB135, 0x94,0xD5, 0xF, +0 }, - { 0x302B133,0x305B131, 0x63,0x00, 0xE, +0 }, - { 0x04F270C,0x0F8D104, 0x98,0x90, 0x8, +0 }, - { 0x0F8F502,0x0F8F402, 0x96,0x00, 0x9, +0 }, - { 0x759F201,0x600F701, 0x40,0x00, 0x0, +0 }, - { 0x6F0F301,0x7C9F601, 0x00,0x00, 0x0, +0 }, - { 0x60FFF15,0x66FB115, 0xC0,0x40, 0xE, +0 }, - { 0x68FB111,0x6EFB111, 0x40,0x00, 0xE, +0 }, - { 0x44FF920,0x2FF9122, 0x80,0x09, 0xE, +0 }, - { 0x7BF9121,0x64F9122, 0x99,0x00, 0xE, +0 }, - { 0x00AAFE1,0x00AAF62, 0x11,0x00, 0x9, +0 }, - { 0x022FA02,0x0F3F501, 0x4C,0x97, 0x8, +0 }, - { 0x1F3C504,0x0F7C511, 0x9D,0x00, 0x8, +0 }, - { 0x0AFC711,0x0F8F501, 0x8D,0x04, 0x8, +0 }, - { 0x098C301,0x0F8C302, 0x18,0x06, 0x9, +0 }, - { 0x40FF923,0x20F9122, 0x90,0x1B, 0xE, +0 }, - { 0x00F9121,0x00F9122, 0x9F,0x00, 0xE, +0 }, - { 0x60FFF15,0x61FB015, 0xC0,0x40, 0xE, +0 }, - { 0x65FB111,0x63FB011, 0x40,0x00, 0xE, +0 }, - { 0x60FFF35,0x60FB135, 0xC0,0x40, 0xE, +0 }, - { 0x6BFB131,0x60FB131, 0x40,0x00, 0xE, +0 }, - { 0x0C8F121,0x0C8F501, 0x13,0x29, 0x6, +0 }, - { 0x0C8F501,0x0C8F401, 0x14,0x00, 0x6, +0 }, - { 0x09AF381,0x0DFF521, 0x89,0x40, 0x6, +0 }, - { 0x0C8F121,0x0C8F701, 0x0F,0x25, 0xA, +0 }, - { 0x0C8F601,0x0C8F601, 0x12,0x00, 0xA, +0 }, - { 0x105F510,0x0C5F411, 0x41,0x00, 0x2, +0 }, - { 0x005F511,0x0C5F212, 0x01,0x1E, 0x3, +0 }, - { 0x012C1A1,0x0076F21, 0x93,0x00, 0xD, +0 }, - { 0x011DA65,0x068A663, 0x00,0x1B, 0xC, +0 }, - { 0x0588861,0x01A6561, 0x0A,0x00, 0xD, +0 }, - { 0x00FFF21,0x409CF61, 0x1D,0x05, 0xA, +0 }, - { 0x70FFF20,0x30FFF61, 0x1A,0x14, 0x0, +0 }, - { 0x00FFF61,0x609CF61, 0x1A,0x07, 0x0, +0 }, - { 0x10D5317,0x00E3608, 0x1A,0x0D, 0x2, +0 }, - { 0x03D41A1,0x01E6161, 0x9D,0x00, 0x3, +0 }, - { 0x0FC8561,0x4FD8463, 0x15,0x07, 0xA, +0 }, - { 0x0FD8966,0x6FC7761, 0x1F,0x00, 0xB, +0 }, - { 0x10A5317,0x0033608, 0x1A,0x0D, 0x2, +0 }, - { 0x0041121,0x3355261, 0x8C,0x00, 0x1, +0 }, - { 0x0C6F521,0x096F461, 0x92,0x8A, 0xC, +0 }, - { 0x266F521,0x496F5A1, 0x90,0x80, 0xD, +0 }, - { 0x035D493,0x114EB11, 0x91,0x00, 0x8, +0 }, - { 0x035D453,0x116EB13, 0x91,0x0D, 0x9, +0 }, - { 0x56FF500,0x40FF300, 0x08,0x00, 0x1, +0 }, - { 0x65FF604,0x38FF580, 0x00,0x40, 0x0, +0 }, - { 0x66FF100,0x40FF300, 0x09,0x00, 0x0, +0 }, - { 0x65FF601,0x73FF580, 0x1C,0x00, 0x0, +0 }, - { 0x00F112F,0x30F1120, 0x00,0x00, 0xE, +0 }, - { 0x00F1129,0x30F1120, 0x38,0x35, 0xF, +0 }, - { 0x024F806,0x7845603, 0x00,0x04, 0xE, +0 }, - { 0x624D803,0x784F604, 0x0B,0x00, 0xF, +0 }, - { 0x624F802,0x7845604, 0x00,0x04, 0xA, +0 }, - { 0x624D800,0x784F603, 0x0B,0x00, 0xB, +0 }, - { 0x46FF220,0x07FF400, 0x14,0x00, 0xF, +1 }, - { 0x01FF501,0x51FF487, 0x00,0xC0, 0xF, +0 }, - { 0x059F200,0x700F701, 0x00,0x00, 0xE, +0 }, - { 0x0F0F301,0x6C9F401, 0x00,0x00, 0xE, +0 }, - { 0x0F7F810,0x006F211, 0x40,0x00, 0x8, +0 }, - { 0x002F010,0x006FE00, 0x00,0x00, 0xC, +0 }, - { 0x207F70E,0x008FF12, 0x00,0x00, 0xE, +0 }, - { 0x092FF83,0x003F015, 0x00,0x00, 0xE, +0 }, - { 0x0F4C306,0x0E4C203, 0xB5,0x76, 0x4, +0 }, - { 0x0D4C101,0x0E5B111, 0x53,0x02, 0x4, +0 }, - { 0x0F3C301,0x0F3C307, 0xA1,0x70, 0xC, +12 }, - { 0x034B000,0x0F5A111, 0xCC,0x00, 0xC, +0 }, - { 0x034FB31,0x0F7C131, 0x93,0x00, 0xC, +0 }, - { 0x0DFB811,0x0F7F121, 0x97,0x8B, 0xD, +0 }, - { 0x0E4A115,0x0E4A115, 0x6A,0x67, 0xE, +0 }, - { 0x0E4A111,0x0E5A111, 0x55,0x03, 0xE, +0 }, - { 0x0E7C21A,0x0E7C201, 0x33,0x85, 0x0, +0 }, - { 0x0F4B111,0x0E4B111, 0x1D,0x83, 0x1, +0 }, - { 0x0E7C21C,0x0E6C201, 0xBD,0x8B, 0xE, +0 }, - { 0x0E4B111,0x0E5B111, 0x52,0x85, 0xF, +0 }, - { 0x050F210,0x0F0E12A, 0xA1,0x64, 0xE, +12 }, - { 0x020BD20,0x0E7C112, 0x19,0x03, 0xE, +0 }, - { 0x12A91B1,0x00AF021, 0x80,0xA1, 0x7, +12 }, - { 0x038D620,0x0B7F8A6, 0x03,0x05, 0x7, +0 }, - { 0x017F820,0x0057F31, 0x94,0x08, 0xC, +12 }, - { 0x029F623,0x00A8F22, 0x1E,0x0B, 0xD, +0 }, - { 0x00AB028,0x00AB0A1, 0x5A,0x21, 0x1, +0 }, - { 0x00A8024,0x00AB021, 0xC0,0x09, 0x1, +0 }, - { 0x00AF0A2,0x00AF024, 0x06,0xA1, 0x5, +0 }, - { 0x00AF0A4,0x00AF021, 0x0A,0x06, 0x5, +0 }, - { 0x00FFF27,0x00FFF21, 0x29,0x07, 0x0, +0 }, - { 0x00FFF21,0x00FFF22, 0x18,0x06, 0x1, +0 }, - { 0x00AFF61,0x00AFF22, 0x0E,0xA1, 0x7, +0 }, - { 0x00AFF64,0x00AFF21, 0x0A,0x0B, 0x7, +0 }, - { 0x00FFF20,0x00FFFA1, 0x22,0x88, 0xC, +12 }, - { 0x00FFF22,0x00FFFA1, 0x56,0x84, 0xD, +0 }, - { 0x0F6EA09,0x0F4F518, 0x0F,0x8C, 0x0, +0 }, - { 0x00FEFA2,0x00B8F21, 0x3E,0x07, 0x1, +0 }, - { 0x0186223,0x02A6221, 0x1C,0x87, 0xE, +0 }, - { 0x1186223,0x02A62A2, 0x19,0x82, 0xF, +0 }, - { 0x001F201,0x0F1F101, 0x21,0x1D, 0xA, +0 }, - { 0x0E3F301,0x0E6F211, 0x4B,0x00, 0xA, +0 }, - { 0x030FE10,0x0F0E13A, 0x9F,0x65, 0xE, +12 }, - { 0x020BD20,0x0E7C112, 0x8D,0x07, 0xE, +0 }, - { 0x025F5E2,0x005EF24, 0x1E,0x9F, 0xE, -12 }, - { 0x004EF26,0x006CF24, 0x9E,0x06, 0xE, +0 }, - { 0x043D227,0x0E4E215, 0x9A,0x03, 0x8, -12 }, - { 0x023A7B7,0x0E4C215, 0x19,0x08, 0x9, +0 }, - { 0x043D223,0x0E4E212, 0x98,0x03, 0x8, +0 }, - { 0x023A7B3,0x0E4C212, 0x19,0x08, 0x9, +0 }, - { 0x0E6CE22,0x0E6F421, 0x25,0x03, 0x0, +0 }, - { 0x0E6F727,0x0E5F521, 0x32,0x09, 0x1, +0 }, - { 0x006F504,0x041F001, 0x3F,0x05, 0x0, +0 }, - { 0x035D208,0x005F120, 0x00,0x06, 0x0, +0 }, - { 0x034D201,0x003F120, 0x00,0x06, 0x0, +0 }, - { 0x0276621,0x0486621, 0x1C,0x00, 0xE, +0 }, - { 0x00A6621,0x0486621, 0x94,0x00, 0xF, +0 }, - { 0x0E44100,0x0046620, 0x91,0x08, 0xC, +12 }, - { 0x0E65120,0x0066620, 0x8E,0x08, 0xD, +0 }, - { 0x0257521,0x00AAF21, 0x1A,0x08, 0xE, +0 }, - { 0x0257521,0x00AAF21, 0x1A,0x0C, 0xF, +0 }, - { 0x015A221,0x00AAF21, 0x12,0x02, 0xC, +0 }, - { 0x055F2A1,0x00AAF21, 0x28,0x05, 0xD, +0 }, - { 0x0CFF416,0x0E6F205, 0x23,0x69, 0xC, +12 }, - { 0x0D5F200,0x0ECE301, 0x15,0x00, 0xC, +0 }, - { 0x058F620,0x05AF520, 0x98,0x19, 0xE, +12 }, - { 0x009FF21,0x00CFF20, 0x24,0x00, 0xE, +0 }, - { 0x006F801,0x0D5D500, 0x17,0x17, 0x8, +12 }, - { 0x4E6F511,0x0E8F500, 0x14,0x00, 0x8, +0 }, - { 0x045FB01,0x050FF12, 0x10,0x0C, 0x0, +12 }, - { 0x034FF00,0x027F300, 0x16,0x00, 0x0, +0 }, - { 0x0EAF50C,0x0E6F21F, 0x21,0x21, 0xE, +0 }, - { 0x0F6F401,0x0E7F113, 0x15,0x03, 0xE, +0 }, - { 0x0E6F407,0x0F6A114, 0x9B,0x1D, 0xE, +0 }, - { 0x00FFF21,0x0E6F112, 0x12,0x04, 0xE, +0 }, - { 0x062F227,0x062F231, 0x26,0x18, 0xC, +0 }, - { 0x066F521,0x0E4F116, 0x0E,0x03, 0xC, +0 }, - { 0x015A221,0x0DAC401, 0x13,0x14, 0xC, +0 }, - { 0x055F221,0x0DAA401, 0x2A,0x00, 0xC, +0 }, - { 0x09CF901,0x0F98701, 0x00,0x03, 0x6, +0 }, - { 0x0ACF904,0x0F98701, 0x00,0x00, 0x7, +0 }, - { 0x025F261,0x015F2A5, 0x22,0x5E, 0xE, +0 }, - { 0x015F223,0x0C6E111, 0x5B,0x02, 0xE, +0 }, - { 0x006FF22,0x00B9F22, 0x1C,0x08, 0xE, +0 }, - { 0x005FA21,0x00B9F21, 0x19,0x07, 0xF, +0 }, - { 0x0F6D133,0x0F7F221, 0x9A,0x03, 0xC, +0 }, - { 0x0E4F22F,0x0F7F224, 0x28,0x8A, 0xD, +0 }, - { 0x03FF43A,0x04FF231, 0x64,0x5A, 0xE, +0 }, - { 0x024F211,0x085F311, 0x25,0x08, 0xE, +0 }, - { 0x026F211,0x04FF43A, 0x23,0x5F, 0xE, +0 }, - { 0x04FF231,0x0D6F211, 0x63,0x07, 0xE, +0 }, - { 0x03AA021,0x097A123, 0x23,0x21, 0xE, +12 }, - { 0x0F2A310,0x0F5A020, 0x12,0x05, 0xE, +0 }, - { 0x030F70C,0x0A8F101, 0x23,0x26, 0xA, +0 }, - { 0x0C6F201,0x043F212, 0x13,0x00, 0xA, +0 }, - { 0x054D41F,0x0F5C411, 0x65,0x42, 0xC, +0 }, - { 0x0F4B113,0x0E5A111, 0x50,0x05, 0xD, +0 }, - { 0x0AFF505,0x03DFD2C, 0x3F,0x13, 0xA, +0 }, - { 0x0B0F607,0x074F411, 0x0F,0x08, 0xA, +0 }, - { 0x022E832,0x0F5B210, 0x08,0x12, 0x2, +12 }, - { 0x021F730,0x0F5B214, 0x08,0x0D, 0x3, +0 }, - { 0x025F5E2,0x005EF24, 0x20,0x9F, 0xE, -12 }, - { 0x004EF26,0x0065F24, 0x9E,0x06, 0xE, +0 }, - { 0x004EFE2,0x005EF24, 0x24,0x21, 0xE, -12 }, - { 0x004EF26,0x0065F24, 0x9F,0x07, 0xE, +0 }, - { 0x002EFE2,0x003EF24, 0xAA,0xA1, 0xE, -12 }, - { 0x003EF26,0x0065F24, 0xA4,0x03, 0xE, +0 }, - { 0x016D122,0x0055572, 0x9A,0x06, 0xE, -12 }, - { 0x0F6C102,0x2055571, 0xD9,0x0D, 0xF, +0 }, - { 0x012F322,0x0054F22, 0x1D,0x04, 0xE, +0 }, - { 0x013F321,0x0054F22, 0x91,0x80, 0xF, +0 }, - { 0x015F322,0x0065F22, 0x1D,0x05, 0xE, +0 }, - { 0x015F321,0x0075F23, 0x91,0x80, 0xF, +0 }, - { 0x295F520,0x353F411, 0x90,0x00, 0xC, +12 }, - { 0x295F520,0x353F411, 0x90,0x09, 0xC, +12 }, - { 0x0FAF52F,0x0FAF423, 0xB2,0x64, 0xE, +0 }, - { 0x0FAE323,0x0FAF321, 0x66,0x03, 0xE, +0 }, - { 0x036D122,0x0055572, 0x9A,0x00, 0xE, -12 }, - { 0x4F6C102,0x2055574, 0xD9,0x07, 0xF, +0 }, - { 0x0D6F328,0x0F9F423, 0xA2,0x5F, 0xC, +0 }, - { 0x0F8E223,0x0E8F301, 0xA6,0x03, 0xC, +0 }, - { 0x01AD1A1,0x00A9F22, 0x2C,0x8F, 0xE, +0 }, - { 0x00A9F22,0x00A9F22, 0x0F,0x08, 0xE, +0 }, - { 0x020FE70,0x0E9C212, 0x13,0x80, 0xA, +12 }, - { 0x07FBC20,0x0E9C212, 0x11,0x05, 0xB, +0 }, - { 0x020FE10,0x0E7C212, 0x12,0x00, 0xC, +12 }, - { 0x053BD00,0x0E7C212, 0x15,0x07, 0xD, +0 }, - { 0x0E54151,0x0E8F652, 0xA9,0x63, 0xE, +0 }, - { 0x0E8D151,0x0E6C251, 0x9B,0x80, 0xE, +0 }, - { 0x0C8F621,0x0F8F821, 0x1D,0x23, 0xE, +12 }, - { 0x0F8F420,0x0F8F320, 0x20,0x00, 0xE, +0 }, - { 0x058F520,0x059F520, 0x9B,0x19, 0xE, +12 }, - { 0x089F320,0x00CFF20, 0x19,0x07, 0xE, +0 }, - { 0x061F800,0x0EAF582, 0x2B,0x15, 0xC, +12 }, - { 0x0FFF420,0x097F400, 0x1B,0x00, 0xC, +0 }, - { 0x0E54711,0x0E68511, 0x29,0x1E, 0xE, +0 }, - { 0x0E8F512,0x0E6C251, 0x5E,0x40, 0xE, +0 }, - { 0x010F101,0x0C2F101, 0x35,0x17, 0xA, +0 }, - { 0x0C4F307,0x0E3F212, 0x12,0x00, 0xA, +0 }, - { 0x0DFF63C,0x0DFF521, 0xA7,0x18, 0xE, +12 }, - { 0x0D7F220,0x0E8F320, 0x1A,0x00, 0xE, +0 }, - { 0x0A0F400,0x0A7F101, 0x05,0x26, 0xA, +12 }, - { 0x0C5F201,0x043F212, 0x12,0x00, 0xA, +0 }, - { 0x019AA2F,0x0CFF9A2, 0x00,0x1F, 0xE, +0 }, - { 0x015FAA1,0x00B7F21, 0x9F,0x06, 0xE, +0 }, - { 0x01171B1,0x1E54141, 0x8B,0x40, 0x6, +0 }, - { 0x0AE7101,0x0EE8101, 0x1E,0x00, 0xE, +0 }, - { 0x0AE7101,0x0EE8101, 0x20,0x00, 0xE, +0 }, - { 0x016D322,0x02764B2, 0x9A,0x04, 0xE, -12 }, - { 0x006C524,0x02764B2, 0x61,0x09, 0xF, +0 }, - { 0x0066231,0x0E7A241, 0x1E,0x80, 0xE, +0 }, - { 0x0AE7101,0x0EE8101, 0x1C,0x00, 0xE, +0 }, - { 0x2129A13,0x0119B91, 0x97,0x80, 0xE, +0 }, - { 0x0056F22,0x0094F31, 0x56,0x0A, 0x8, +0 }, - { 0x0056F22,0x0094FB1, 0x59,0x0C, 0x9, +0 }, - { 0x1298920,0x1268532, 0x1F,0x5F, 0x0, +12 }, - { 0x0159AA0,0x01A8D22, 0x4C,0x03, 0x0, +0 }, - { 0x007CF20,0x0E97102, 0x5B,0x00, 0xE, +0 }, - { 0x0014131,0x03B9261, 0x99,0x80, 0xE, +0 }, - { 0x0475421,0x0097F21, 0x1D,0x07, 0xE, +0 }, - { 0x0476421,0x0087F61, 0x19,0x0B, 0xF, +0 }, - { 0x0176421,0x0098F21, 0x98,0x07, 0xE, +0 }, - { 0x0176421,0x0087F61, 0x17,0x0F, 0xF, +0 }, - { 0x0296321,0x00A7F21, 0x22,0x03, 0xE, +0 }, - { 0x0186521,0x00A7F61, 0x1B,0x0D, 0xF, +0 }, - { 0x0156220,0x0E67141, 0x9A,0x00, 0xE, +12 }, - { 0x02651B1,0x0E65151, 0xDB,0x87, 0xF, +0 }, - { 0x02365A3,0x0059F21, 0x1C,0x1C, 0xE, +0 }, - { 0x003DFA1,0x00BDF21, 0x1A,0x07, 0xE, +0 }, - { 0x0014131,0x03B9261, 0x20,0x80, 0xE, +0 }, - { 0x04AF823,0x0C5D283, 0xB5,0x52, 0x8, +12 }, - { 0x0E6F414,0x0D5F280, 0x99,0x00, 0x9, +0 }, - { 0x0FAF40C,0x0F4C212, 0x37,0x2B, 0x0, +0 }, - { 0x053F685,0x0E4F191, 0x64,0x00, 0x0, +0 }, - { 0x006F600,0x0E9F51F, 0x35,0x25, 0x0, +12 }, - { 0x000F023,0x0E5F280, 0x5E,0x00, 0x0, +0 }, - { 0x0F5F50C,0x0F5F2A1, 0xA9,0x05, 0xE, +0 }, - { 0x0F6F307,0x0F6F281, 0x31,0x04, 0xF, +0 }, - { 0x0E5F14F,0x0E5C301, 0x69,0x06, 0x8, +0 }, - { 0x052F605,0x0D5F281, 0x2D,0x03, 0x9, +0 }, - { 0x0E6F482,0x03AFE00, 0x0F,0x26, 0x1, +12 }, - { 0x0F6F380,0x0F5F787, 0x03,0x10, 0x1, +0 }, - { 0x0F5FD2C,0x0F5F427, 0x8E,0x20, 0x0, +0 }, - { 0x0F4F827,0x0F5F421, 0x20,0x00, 0x0, +0 }, - { 0x097CB05,0x0D5E801, 0x9F,0x00, 0xA, +0 }, - { 0x035F705,0x0E6E401, 0x28,0x05, 0xB, +0 }, - { 0x0095FE1,0x0076FE1, 0x58,0x03, 0x0, +0 }, - { 0x054890A,0x063A726, 0x6C,0x63, 0xA, +0 }, - { 0x0094F21,0x0083F61, 0xCE,0x02, 0xA, +0 }, - { 0x00F7F04,0x0CFF5EA, 0x30,0xA9, 0x8, +0 }, - { 0x00F5F21,0x00AAF61, 0x1C,0x06, 0x8, +0 }, - { 0x0549963,0x06AA768, 0x98,0xA9, 0xE, +0 }, - { 0x0095F61,0x0097F61, 0xD1,0x03, 0xE, +0 }, - { 0x0549963,0x06AA768, 0xD4,0x5E, 0xE, +0 }, - { 0x0095F61,0x0097F61, 0xC9,0x06, 0xE, +0 }, - { 0x0B643A1,0x0B6F6A3, 0x2A,0xB0, 0xE, +0 }, - { 0x0067FA1,0x0066F61, 0x2C,0x02, 0xE, +0 }, - { 0x053F101,0x0B5F700, 0x73,0x00, 0x6, +0 }, - { 0x021A121,0x116C221, 0x92,0x40, 0x6, +0 }, - { 0x024A80F,0x005DF02, 0xB8,0x03, 0x0, -12 }, - { 0x035A70A,0x005DF02, 0xA2,0x03, 0x1, +0 }, - { 0x01379C0,0x07372D2, 0x4F,0x00, 0x6, -12 }, - { 0x013FA43,0x095F342, 0xD6,0x80, 0xA, -24 }, - { 0x020D933,0x0E4B211, 0x08,0x08, 0x6, +0 }, - { 0x02278B0,0x0E4B214, 0x06,0x0D, 0x7, +0 }, - { 0x10475A0,0x0057221, 0x12,0x40, 0x6, +0 }, - { 0x0F1F007,0x0349800, 0x00,0x00, 0xE, +0 }, - { 0x1137521,0x0B47182, 0x92,0x40, 0xA, +0 }, - { 0x6B5F100,0x6B8F100, 0xD5,0x51, 0xB, +0 }, - { 0x0F0F601,0x0E2F01C, 0x3F,0x1C, 0x8, +0 }, - { 0x003F103,0x093F0A0, 0x00,0x00, 0x8, +0 }, - { 0x0F00010,0x0F00000, 0x3F,0x3F, 0x0, +0 }, - { 0x025C5A2,0x005EF24, 0x20,0x9F, 0xE, -12 }, - { 0x004EF26,0x0068F24, 0x9C,0x02, 0xE, +0 }, - { 0x0064131,0x03892A1, 0x1C,0x80, 0xE, +0 }, - { 0x0064131,0x02882A1, 0x1B,0x80, 0xF, +0 }, - { 0x0156220,0x0267321, 0x98,0x00, 0xE, +12 }, - { 0x02651B1,0x0265171, 0xD1,0x00, 0xF, +0 }, - { 0x0766321,0x0167CA1, 0x93,0x00, 0xC, +0 }, - { 0x1168321,0x0269CA1, 0x4D,0x00, 0xD, +0 }, - { 0x163F401,0x174F111, 0x12,0x00, 0xA, +0 }, - { 0x201F130,0x083F001, 0x44,0x83, 0xA, +0 }, - { 0x0117171,0x11542A1, 0x8B,0x40, 0x6, +0 }, - { 0x0667150,0x08B5290, 0x92,0x00, 0xE, +0 }, - { 0x054F606,0x0B3F241, 0x73,0x03, 0x0, +0 }, - { 0x0177421,0x0176562, 0x83,0x8D, 0x7, +0 }, - { 0x0031801,0x090F674, 0x80,0xC1, 0xE, +0 }, - { 0x282B264,0x1DA9803, 0x00,0x93, 0xE, +0 }, - { 0x0A0B264,0x1D69603, 0x02,0x80, 0xE, +0 }, - { 0x053F101,0x074F111, 0x4B,0x00, 0x6, +0 }, - { 0x0117F27,0x0441122, 0x0E,0x00, 0xE, +0 }, - { 0x0111122,0x0121123, 0x15,0x00, 0x4, +0 }, - { 0x053F101,0x074F111, 0x59,0x00, 0x6, +0 }, - { 0x0FFF691,0x0F4F511, 0x00,0x00, 0x8, +0 }, - { 0x3087631,0x00F6531, 0x08,0x00, 0x2, +0 }, - { 0x019D083,0x017F002, 0x5D,0x80, 0xA, +0 }, - { 0x019D083,0x017F002, 0x58,0x80, 0xA, +0 }, - { 0x013F6A6,0x005F1B1, 0xE5,0x40, 0x2, +0 }, - { 0x1239722,0x013457A, 0x44,0x00, 0x4, +0 }, - { 0x1239721,0x0134572, 0x8A,0x80, 0x2, +0 }, - { 0x0FFF4F1,0x06FF2F1, 0x02,0x00, 0x0, +0 }, - { 0x00F3FF1,0x06FF2F1, 0x02,0x00, 0x0, +0 }, - { 0x1E26301,0x01EB821, 0x16,0x00, 0x8, +0 }, - { 0x1226341,0x01E8821, 0x8F,0x00, 0x8, +0 }, - { 0x0024471,0x01E8831, 0x9D,0x00, 0xE, +0 }, - { 0x002A434,0x0427575, 0x54,0x40, 0x8, +0 }, - { 0x256F605,0x2047404, 0xC0,0x00, 0xE, +0 }, - { 0x0FFF09E,0x00F3F00, 0x07,0x00, 0xE, +0 }, - { 0x1217131,0x0066222, 0x40,0x40, 0x2, +0 }, - { 0x131F231,0x0066F21, 0x47,0x00, 0x0, +0 }, - { 0x0035131,0x06764A1, 0x1C,0x80, 0xE, +0 }, - { 0x0115270,0x0FE4171, 0xC5,0x40, 0x0, +0 }, - { 0x1218131,0x0167423, 0x4D,0x40, 0x2, +0 }, - { 0x151D203,0x278F301, 0x1D,0x00, 0xA, +0 }, - { 0x0F0F09E,0x063F300, 0x07,0x00, 0xE, +0 }, - { 0x0F7B096,0x00FFFE0, 0x00,0x00, 0x0, +0 }, - { 0x3199B85,0x0297424, 0x49,0x00, 0x6, +0 }, - { 0x0FFA691,0x0F45511, 0x00,0x00, 0x8, +0 }, - { 0x1226341,0x000A821, 0x8F,0x00, 0x8, +0 }, - { 0x1239721,0x0136572, 0x8A,0x80, 0x2, +0 }, - { 0x061F217,0x074F212, 0x6C,0x00, 0x8, +0 }, - { 0x1239721,0x0138572, 0x8A,0x80, 0x2, +0 }, - { 0x00D5131,0x01F7221, 0x1C,0x80, 0xC, +0 }, - { 0x08C6320,0x02F9520, 0x19,0x80, 0xC, +0 }, - { 0x1F5E510,0x162E231, 0x46,0x00, 0x0, +0 }, - { 0x24FF60E,0x318F700, 0x40,0x00, 0xE, +0 }, - { 0x0C8F60C,0x257FF12, 0xC0,0x00, 0xA, +0 }, - { 0x354B506,0x095D507, 0x00,0xC0, 0x0, +0 }, - { 0x0F0E02A,0x031FF1E, 0x52,0x54, 0x8, +0 }, - { 0x0745451,0x0756591, 0x00,0x00, 0xA, +0 }, - { 0x002A414,0x0427555, 0x54,0x40, 0x8, +0 }, - { 0x0115F31,0x11E3132, 0xC5,0x00, 0x8, +0 }, - { 0x1217131,0x0069222, 0x40,0x40, 0x2, +0 }, - { 0x053F101,0x0B5F704, 0x4F,0x00, 0x7, +0 }, - { 0x04FF60E,0x218F700, 0x40,0x00, 0xE, +0 }, - { 0x0297721,0x00B9721, 0x89,0x80, 0x6, +0 }, - { 0x12DC331,0x00F7861, 0x8A,0x00, 0xA, +0 }, - { 0x07A6161,0x00AC121, 0x99,0x80, 0x4, +0 }, - { 0x07A6161,0x00AC121, 0x9A,0x80, 0x4, +0 }, - { 0x04CA900,0x04FF600, 0x07,0x00, 0xA, +0 }, - { 0x075F80F,0x2B78A03, 0x80,0x00, 0xE, +0 }, - { 0x059A490,0x4C86590, 0x0B,0x00, 0xE, +0 }, - { 0x055A210,0x4766600, 0x0A,0x00, 0xE, +0 }, - { 0x059FA00,0x09AF500, 0x05,0x00, 0x6, +0 }, - { 0x02661B1,0x0266171, 0xD3,0x80, 0xD, +12 }, - { 0x035C100,0x0D5C111, 0x9B,0x00, 0xC, +12 }, - { 0x040B230,0x5E9F111, 0xA2,0x80, 0x4, +12 }, - { 0x0E6F314,0x0E6F280, 0x62,0x00, 0xB, +12 }, - { 0x715FE11,0x019F487, 0x20,0xC0, 0xB, +1 }, - { 0x7112EF0,0x11621E2, 0x00,0xC0, 0x9, -36 }, - { 0x00CF600,0x00CF600, 0x00,0x00, 0x1, +0 }, - { 0x001FF26,0x3751304, 0x00,0x00, 0xE, +0 }, - { 0x0E5F108,0x0E5C302, 0x66,0x86, 0x8, +5 }, - { 0x052F605,0x0D5F582, 0x69,0x47, 0x9, +5 }, - { 0x6E5E403,0x7E7F507, 0x0D,0x11, 0xB, +12 }, - { 0x366F500,0x4A8F604, 0x1B,0x15, 0xA, +12 }, - { 0x053F101,0x065D131, 0x4E,0x0C, 0x6, +0 }, - { 0x014F201,0x097F201, 0x22,0x08, 0xE, +0 }, - { 0x050F101,0x07CD301, 0x4F,0x10, 0x6, +0 }, - { 0x001F141,0x188D251, 0x4E,0x0A, 0x4, +0 }, - { 0x134A401,0x0A6C301, 0x0A,0x09, 0x9, +0 }, - { 0x103A361,0x022C411, 0x28,0x05, 0xC, +0 }, - { 0x010C733,0x033D311, 0x84,0x8A, 0x8, +0 }, - { 0x0188232,0x0076061, 0x1C,0x91, 0xC, +0 }, - { 0x0100132,0x0337212, 0x80,0x8F, 0x8, +0 }, - { 0x055F587,0x054F022, 0x91,0x13, 0x6, +0 }, - { 0x013F218,0x0E3C1E1, 0x4D,0x15, 0x8, +0 }, - { 0x043FA07,0x045F341, 0x51,0x11, 0x6, +0 }, - { 0x025DA05,0x015F901, 0x4E,0x0C, 0xA, +0 }, - { 0x0F0FE04,0x0B5F6C2, 0x00,0x0C, 0xE, +0 }, - { 0x032B6B3,0x031D190, 0x4A,0x0E, 0xE, +0 }, - { 0x011F111,0x0B3F101, 0x8A,0x4F, 0x6, +0 }, - { 0x10FFF22,0x00FFF21, 0x8D,0x87, 0x1, +0 }, - { 0x0B5F708,0x0CFD001, 0x07,0x11, 0x1, +0 }, - { 0x107E465,0x078F241, 0xD7,0x8C, 0x0, +0 }, - { 0x11F4001,0x11F8002, 0x42,0x0B, 0xB, +0 }, - { 0x0038121,0x00C6171, 0x12,0x92, 0x8, +0 }, - { 0x00BD224,0x00B5231, 0x4F,0x16, 0xE, +0 }, - { 0x243A321,0x022C411, 0x11,0x00, 0xD, +0 }, - { 0x143F401,0x074F111, 0x49,0x11, 0x4, +0 }, - { 0x133FF01,0x077F111, 0x80,0x17, 0xA, +0 }, - { 0x249A320,0x039C411, 0x0A,0x0C, 0xD, +0 }, - { 0x1E7C271,0x018F131, 0x09,0x13, 0x6, +0 }, - { 0x01FF201,0x047F701, 0x16,0x0D, 0xA, +0 }, - { 0x10BB021,0x057E221, 0x08,0x14, 0x4, +0 }, - { 0x010F631,0x016E233, 0x02,0x1A, 0x8, +0 }, - { 0x267AA01,0x013C603, 0x17,0x80, 0x8, +0 }, - { 0x1539321,0x08AC311, 0x1B,0x0B, 0x0, +0 }, - { 0x07BE001,0x098E212, 0x4E,0x12, 0x6, +0 }, - { 0x126F531,0x0C8E111, 0x49,0x0F, 0x4, +0 }, - { 0x023F221,0x0D6B212, 0x1C,0x0D, 0x4, +0 }, - { 0x0B8F413,0x0DBF111, 0x13,0x18, 0x2, +0 }, - { 0x147D621,0x00BF431, 0x88,0x8E, 0x8, +0 }, - { 0x175A501,0x0A48251, 0x86,0x16, 0x8, +0 }, - { 0x019D531,0x08B8352, 0x89,0x91, 0xA, +0 }, - { 0x0035171,0x0175421, 0x1C,0x0D, 0xE, +0 }, - { 0x0155471,0x0495321, 0x1C,0x11, 0xE, +0 }, - { 0x0035171,0x0175461, 0x56,0x10, 0xE, +0 }, - { 0x0035171,0x0175421, 0x1C,0x0C, 0xE, +0 }, - { 0x10351F1,0x01754A1, 0x16,0x0D, 0xC, +0 }, - { 0x0038171,0x017B601, 0x0E,0x0E, 0x8, +0 }, - { 0x075F502,0x0F3F201, 0x2A,0x8B, 0x0, +0 }, - { 0x117ED40,0x069C541, 0x80,0x89, 0x2, +0 }, - { 0x1DAD0A1,0x1D69012, 0x17,0x0D, 0xC, +0 }, - { 0x1DAD0A1,0x0D69012, 0x11,0x16, 0xA, +0 }, - { 0x1DAD061,0x1D69012, 0x11,0x11, 0xA, +0 }, - { 0x2DAD021,0x1D69091, 0x11,0x11, 0xA, +0 }, - { 0x207F0A0,0x03C7222, 0x17,0x16, 0xC, +0 }, - { 0x307F020,0x00C7022, 0x1A,0x16, 0x8, +0 }, - { 0x3078020,0x00C7022, 0x32,0x12, 0xE, +0 }, - { 0x20B73A1,0x246A500, 0x13,0x09, 0x8, +0 }, - { 0x00753B1,0x067D061, 0x19,0x13, 0xC, +0 }, - { 0x0064131,0x036A061, 0x1F,0x0F, 0xC, +0 }, - { 0x0586361,0x018A021, 0x19,0x12, 0xC, +0 }, - { 0x05A6321,0x01A7A21, 0x9F,0x80, 0xC, +0 }, - { 0x0577261,0x017A021, 0x19,0x12, 0xC, +0 }, - { 0x0777261,0x017A021, 0x15,0x14, 0xC, +0 }, - { 0x0577361,0x017A021, 0x19,0x13, 0xE, +0 }, - { 0x00A6331,0x00B63A1, 0x16,0x12, 0xC, +0 }, - { 0x00E7321,0x00E6361, 0x0E,0x15, 0x8, +0 }, - { 0x00A6331,0x00B6321, 0x13,0x14, 0xA, +0 }, - { 0x0178E71,0x00E8B22, 0xC3,0x13, 0x2, +0 }, - { 0x01B5132,0x0389261, 0x9A,0x89, 0xC, +0 }, - { 0x06FF4A1,0x01D53A1, 0x27,0x8A, 0xA, +0 }, - { 0x24369C1,0x00DBD21, 0x1C,0x0C, 0x0, +0 }, - { 0x0537901,0x20DBD21, 0x0D,0x0D, 0x6, +0 }, - { 0x0F0F530,0x09BF034, 0x35,0x13, 0x2, +0 }, - { 0x0F0F530,0x09BF032, 0x35,0x10, 0x2, +0 }, - { 0x047F021,0x078F012, 0x1B,0x16, 0xE, +0 }, - { 0x0FFF001,0x088F202, 0x0B,0x17, 0x8, +0 }, - { 0x25368C1,0x10DBD61, 0x14,0x0C, 0x0, +0 }, - { 0x014F6A1,0x0EAF102, 0x09,0x19, 0x2, +0 }, - { 0x02811A1,0x0187121, 0x20,0x11, 0xC, +0 }, - { 0x047F121,0x078D012, 0x11,0x19, 0xA, +0 }, - { 0x232B583,0x035D221, 0x52,0x14, 0x0, +0 }, - { 0x1137323,0x0229331, 0x1C,0x14, 0xC, +0 }, - { 0x0BF1182,0x38C9301, 0x10,0x16, 0xF, +0 }, - { 0x1E884A1,0x0487061, 0x19,0x95, 0x4, +0 }, - { 0x357B260,0x13C9022, 0x0E,0x91, 0x8, +0 }, - { 0x3679400,0x056B191, 0x4E,0x0E, 0xC, +0 }, - { 0x23AACA3,0x0BAC301, 0x18,0x12, 0x8, +0 }, - { 0x068C2A1,0x04872A1, 0x20,0x0D, 0xE, +0 }, - { 0x23A9CA3,0x04A9241, 0x17,0x95, 0x8, +0 }, - { 0x1A3C282,0x1F6E201, 0x18,0x11, 0x8, +0 }, - { 0x3C3A621,0x144E311, 0x14,0x0C, 0xA, +0 }, - { 0x243F702,0x027DC01, 0x18,0x00, 0x8, +0 }, - { 0x001A021,0x0612102, 0x02,0x18, 0xE, +0 }, - { 0x24C5803,0x11FF315, 0x00,0x00, 0x1, +0 }, - { 0x049C441,0x026F741, 0x08,0x03, 0xE, +0 }, - { 0x038FA00,0x07BF701, 0x06,0x00, 0x0, +0 }, - { 0x20A60E0,0x228F00E, 0x1D,0x00, 0xC, +0 }, - { 0x10A60E0,0x228F00E, 0x1D,0x00, 0x2, +0 }, - { 0x227F0F0,0x017F6C1, 0x0B,0x00, 0xE, +0 }, - { 0x05CA800,0x07FD600, 0x0F,0x00, 0x8, +0 }, - { 0x218F201,0x06BE601, 0x09,0x04, 0xC, +0 }, - { 0x246A321,0x026C511, 0x06,0x04, 0xE, +0 }, - { 0x248A721,0x006C801, 0x0A,0x04, 0x0, +0 }, - { 0x047A34F,0x138B703, 0x03,0x00, 0x2, +0 }, - { 0x248A721,0x015C801, 0x0A,0x04, 0x0, +0 }, - { 0x017A30E,0x119B602, 0x03,0x00, 0x8, +0 }, - { 0x248A721,0x015C801, 0x0A,0x07, 0x0, +0 }, - { 0x286F30D,0x148E404, 0x07,0x03, 0xA, +0 }, - { 0x248A721,0x025C801, 0x0C,0x07, 0x8, +0 }, - { 0x473A128,0x264A329, 0x07,0x00, 0x2, +0 }, - { 0x344F427,0x254F526, 0x09,0x00, 0xC, +0 }, - { 0x15B8308,0x32AC60A, 0x11,0x00, 0xA, +0 }, - { 0x473A048,0x264A329, 0x0D,0x00, 0x4, +0 }, - { 0x052F221,0x073D231, 0x4F,0x00, 0x6, +0 }, - { 0x050F201,0x076D201, 0x4B,0x03, 0x6, +0 }, - { 0x0F9F131,0x0F9F331, 0x8E,0x80, 0xA, +0 }, - { 0x0F9F131,0x0F9F332, 0x8E,0x81, 0xA, +0 }, - { 0x061F216,0x074F211, 0x4F,0x0A, 0x8, +0 }, - { 0x0617216,0x0B2F311, 0x4F,0x08, 0x8, +0 }, - { 0x212AA93,0x021AC91, 0x97,0x00, 0xE, +0 }, - { 0x016DA85,0x005F981, 0x4D,0x80, 0xA, +0 }, - { 0x065FE05,0x085F8C4, 0x05,0x00, 0xE, +0 }, - { 0x096F527,0x057F521, 0x1F,0x03, 0x8, +0 }, - { 0x053F103,0x074F217, 0x4F,0x0B, 0x6, +0 }, - { 0x00FFF64,0x00FFF21, 0x86,0x80, 0x1, +0 }, - { 0x20BD8F0,0x10BB3F2, 0x93,0x07, 0xA, +0 }, - { 0x4069FB2,0x10F95B0, 0x43,0x00, 0x9, +0 }, - { 0x0FFF001,0x00F9033, 0x4F,0x05, 0x6, +0 }, - { 0x10BF224,0x00B5231, 0x4F,0x10, 0xE, +0 }, - { 0x0035121,0x06742A2, 0x15,0x80, 0xA, +0 }, - { 0x0AFF5E1,0x10FF4E1, 0xD0,0x00, 0xC, +0 }, - { 0x001FF11,0x003FF11, 0x8D,0x80, 0x0, +0 }, - { 0x031F121,0x044F406, 0x40,0x85, 0x0, +0 }, - { 0x0BF73C8,0x09FF4C4, 0x12,0x03, 0x8, +0 }, - { 0x0B69402,0x0268301, 0x00,0x00, 0x1, +0 }, - { 0x0EEC101,0x0DEF302, 0x62,0x00, 0xA, +0 }, - { 0x0EFF231,0x078F522, 0x1E,0x00, 0xE, +0 }, - { 0x1B57431,0x0B8D423, 0x0B,0x00, 0x8, +0 }, - { 0x2035130,0x24753A0, 0x1C,0x00, 0xE, +0 }, - { 0x3115230,0x1254131, 0xD0,0x80, 0x0, +0 }, - { 0x11152B1,0x1FE41B2, 0xC5,0x80, 0x0, +0 }, - { 0x07572C1,0x1FE61C1, 0xCA,0x80, 0x6, +0 }, - { 0x0A7F131,0x0C6F731, 0x50,0x80, 0xE, +0 }, - { 0x171F502,0x083F211, 0x60,0x40, 0xE, +0 }, - { 0x2005130,0x2655420, 0x1C,0x00, 0xE, +0 }, - { 0x01151B1,0x1154261, 0x8B,0x40, 0x6, +0 }, - { 0x1817021,0x12C7322, 0x16,0x07, 0xC, +0 }, - { 0x0537141,0x07C62C2, 0x4F,0x40, 0xA, +0 }, - { 0x173F141,0x074F241, 0x4F,0x10, 0x6, +0 }, - { 0x10691C1,0x20562C1, 0x0F,0x00, 0xC, +0 }, - { 0x00B4131,0x03B9261, 0x1C,0x80, 0xE, +0 }, - { 0x0655201,0x0767301, 0x1D,0x00, 0xE, +0 }, - { 0x0AE71E1,0x09E81E2, 0x15,0x0A, 0xC, +0 }, - { 0x029BB21,0x00A9021, 0x8E,0x80, 0x8, +0 }, - { 0x0AE71E1,0x09E81E1, 0x16,0x0A, 0xA, +0 }, - { 0x2AE71E0,0x19E80E2, 0x23,0x00, 0xA, +0 }, - { 0x0687121,0x05E5232, 0x4E,0x00, 0xA, +0 }, - { 0x05B7111,0x07B5212, 0x56,0x00, 0xE, +0 }, - { 0x009F021,0x00A9024, 0x94,0x05, 0xA, +0 }, - { 0x0176EB1,0x00E8BA1, 0xC5,0x80, 0x2, +0 }, - { 0x02495A1,0x02A60A1, 0x1D,0x85, 0x2, +0 }, - { 0x0195132,0x0396061, 0x9A,0x8B, 0xC, +0 }, - { 0x030F5A2,0x03A61A1, 0x12,0x8B, 0x2, +0 }, - { 0x00457E2,0x0775761, 0x6D,0x00, 0xE, +0 }, - { 0x0C70CF1,0x0A560F1, 0x9A,0x80, 0xD, +0 }, - { 0x0537102,0x07C5211, 0x4F,0x05, 0xA, +0 }, - { 0x007F804,0x0748201, 0x08,0x05, 0x8, +0 }, - { 0x04FF660,0x00F7660, 0x03,0x04, 0x2, +0 }, - { 0x33457F1,0x00D67E1, 0x28,0x04, 0xE, +0 }, - { 0x0F55551,0x0F55501, 0x80,0x00, 0x8, +0 }, - { 0x0339661,0x02B5521, 0x00,0x02, 0x6, +0 }, - { 0x0F2F251,0x2F2F241, 0x0D,0x00, 0xA, +0 }, - { 0x091A311,0x094C503, 0x80,0x80, 0x6, +0 }, - { 0x145F171,0x044F423, 0x00,0x00, 0x5, +0 }, - { 0x251B1E0,0x275E0F0, 0x16,0x03, 0x0, +0 }, - { 0x102FF51,0x002FF01, 0x03,0x08, 0x4, +0 }, - { 0x11122F1,0x02E31F1, 0x46,0x80, 0xC, +0 }, - { 0x0FFF101,0x0FF5011, 0x0D,0x80, 0x6, +0 }, - { 0x0FF1000,0x0FF5011, 0x12,0x80, 0xA, +0 }, - { 0x002A4B4,0x04245F5, 0x87,0x80, 0x6, +0 }, - { 0x01111F1,0x01111F1, 0x41,0x41, 0x2, +0 }, - { 0x002A4B4,0x04245F7, 0x87,0x80, 0x6, +0 }, - { 0x1007861,0x247A260, 0x54,0x03, 0x6, +0 }, - { 0x0417F21,0x0213521, 0x56,0x00, 0xE, +0 }, - { 0x301F171,0x001F131, 0x00,0x40, 0x4, +0 }, - { 0x053F101,0x074F219, 0x4F,0x00, 0x6, +0 }, - { 0x01FF201,0x088F508, 0x11,0x00, 0x8, +0 }, - { 0x1176E31,0x20C8B22, 0x43,0x05, 0x2, +0 }, - { 0x1037531,0x0445462, 0x1C,0x00, 0xE, +0 }, - { 0x0427880,0x0548595, 0x4D,0x00, 0xE, +0 }, - { 0x072F107,0x004FC08, 0x48,0x80, 0x0, +0 }, - { 0x0FFF835,0x075F511, 0x44,0x00, 0xE, +0 }, - { 0x1068F02,0x005FF00, 0xC0,0x00, 0xA, +0 }, - { 0x0ECA710,0x0F5D510, 0x0B,0x08, 0x0, +0 }, - { 0x10B5F01,0x10B5F01, 0x80,0x80, 0x4, +0 }, - { 0x2056651,0x0066642, 0x00,0x05, 0x0, +0 }, - { 0x000200E,0x001210E, 0x00,0x00, 0xE, +0 }, - { 0x08785F4,0x09974F3, 0x50,0x80, 0xC, +0 }, - { 0x050F102,0x076D201, 0x50,0x0E, 0x6, +0 }, - { 0x050F101,0x076D201, 0x4B,0x0E, 0x6, +0 }, - { 0x050F113,0x076D201, 0x50,0x0E, 0x6, +0 }, - { 0x011FF32,0x013FF01, 0x92,0x8B, 0xA, +0 }, - { 0x010FF34,0x004FF03, 0x92,0x0B, 0xA, +0 }, - { 0x000F153,0x086D251, 0x4E,0x11, 0x6, +0 }, - { 0x0E5F828,0x0FFC021, 0xCF,0x0B, 0x0, +0 }, - { 0x0E5F8E2,0x00EC0E1, 0xCA,0x0B, 0x8, +0 }, - { 0x0FFF92C,0x0FFC0A1, 0xD4,0x0B, 0x0, +0 }, - { 0x0E5F82B,0x0FFC021, 0xCA,0x0B, 0x0, +0 }, - { 0x091F029,0x086E021, 0xCD,0x0B, 0x2, +0 }, - { 0x001F024,0x086E021, 0xD0,0x0B, 0x2, +0 }, - { 0x001F023,0x086E021, 0xC8,0x0B, 0x2, +0 }, - { 0x001B064,0x086F061, 0xC9,0x0B, 0x2, +0 }, - { 0x010A133,0x0237215, 0x85,0x8B, 0x8, +0 }, - { 0x010A131,0x0337315, 0x85,0x8B, 0x8, +0 }, - { 0x030A131,0x074C216, 0x81,0x8B, 0x8, +0 }, - { 0x07BF003,0x07BF402, 0x8A,0x8B, 0x8, +0 }, - { 0x07BF003,0x07BF401, 0x8A,0x80, 0x8, +0 }, - { 0x07BF223,0x07BF401, 0x8A,0x80, 0x8, +0 }, - { 0x0100132,0x0337212, 0x80,0x8B, 0x8, +0 }, - { 0x0100132,0x0337314, 0x80,0x8B, 0x8, +0 }, - { 0x08E7331,0x09E8021, 0x16,0x0B, 0xE, +0 }, - { 0x07E7330,0x09E8021, 0x16,0x0B, 0xE, +0 }, - { 0x0733331,0x097A021, 0x94,0x00, 0xE, +0 }, - { 0x073D331,0x097A021, 0x94,0x0C, 0xE, +0 }, - { 0x053F131,0x027F232, 0x45,0x0B, 0x6, +0 }, - { 0x001F213,0x0B6F215, 0x0C,0x18, 0x8, +0 }, - { 0x001F211,0x0B6F211, 0x0C,0x0B, 0x8, +0 }, - { 0x004FE11,0x0BDF211, 0x0A,0x0B, 0x8, +0 }, - { 0x011CA53,0x0F171E1, 0x4D,0x13, 0x2, +0 }, - { 0x011BA12,0x03124F1, 0x40,0x0C, 0x2, +0 }, - { 0x08E7261,0x01A50E1, 0xA7,0x8B, 0x2, +0 }, - { 0x0133218,0x0E351E1, 0x4D,0x0C, 0x8, +0 }, - { 0x0411217,0x0311331, 0xC0,0x8B, 0x6, +0 }, - { 0x055F503,0x033F321, 0x8F,0x8B, 0x0, +0 }, - { 0x011FA13,0x0F1F1E1, 0x4D,0x0C, 0x8, +0 }, - { 0x0154011,0x0F8A1F1, 0x43,0x0C, 0x8, +0 }, - { 0x0978211,0x0F2F0E4, 0x03,0x4C, 0x8, +0 }, - { 0x053D105,0x0715114, 0x40,0x0B, 0x6, +0 }, - { 0x01727F1,0x0185120, 0x01,0x0B, 0xC, +0 }, - { 0x01132F1,0x013F1E1, 0x18,0x0B, 0x0, +0 }, - { 0x053F173,0x006F171, 0x48,0x17, 0x8, +0 }, - { 0x0117171,0x0157261, 0x8D,0x4B, 0x6, +0 }, - { 0x061F2D7,0x0B2F1D2, 0x4F,0x0B, 0x8, +0 }, - { 0x0FFF001,0x0F8F001, 0x11,0x0B, 0xA, +0 }, - { 0x0114131,0x0132261, 0x8B,0x0B, 0x6, +0 }, - { 0x021FF31,0x0154461, 0x8B,0x0B, 0xA, +0 }, - { 0x0114131,0x0153261, 0x8B,0x0B, 0x2, +0 }, - { 0x013FD71,0x0D6E721, 0x1C,0x0B, 0xE, +0 }, - { 0x0035171,0x0675421, 0x1C,0x0B, 0xE, +0 }, - { 0x0035171,0x0175421, 0x1C,0x0B, 0xE, +0 }, - { 0x0155471,0x0495321, 0x1C,0x0B, 0xE, +0 }, - { 0x0035171,0x0175461, 0x56,0x0B, 0xE, +0 }, - { 0x075F502,0x0F3F201, 0x29,0x8B, 0x0, +0 }, - { 0x075F002,0x033F401, 0x29,0x8B, 0x0, +0 }, - { 0x053F101,0x074F111, 0x49,0x0B, 0x6, +0 }, - { 0x053F101,0x074F111, 0x89,0x0B, 0x6, +0 }, - { 0x053F102,0x074F111, 0x89,0x0B, 0x6, +0 }, - { 0x053F102,0x074F111, 0x80,0x0B, 0x6, +0 }, - { 0x053F101,0x053F108, 0x40,0x4B, 0x0, +0 }, - { 0x02CD321,0x02CC321, 0x15,0x8B, 0xA, +0 }, - { 0x0F2D401,0x08AC421, 0x18,0x8B, 0xA, +0 }, - { 0x07BF001,0x0C8F411, 0x4E,0x0B, 0x4, +0 }, - { 0x0ABF001,0x0ABF311, 0x44,0x0B, 0x4, +0 }, - { 0x0C8F453,0x0BBF111, 0x0E,0x0B, 0x4, +0 }, - { 0x0C8F253,0x0C5F211, 0x0B,0x0B, 0x4, +0 }, - { 0x04CB421,0x0AC9421, 0x15,0x0B, 0xA, +0 }, - { 0x01C9421,0x0AC6421, 0x15,0x0B, 0xA, +0 }, - { 0x08F7721,0x02A60A1, 0x16,0x8B, 0x6, +0 }, - { 0x0BF7721,0x02A60A1, 0x19,0x8B, 0x6, +0 }, - { 0x0AFD6A1,0x02A60E2, 0x13,0x8B, 0x2, +0 }, - { 0x02495A2,0x02A60E2, 0x1D,0x8B, 0x2, +0 }, - { 0x130F4A4,0x02A60E1, 0x12,0x8B, 0xA, +0 }, - { 0x00E6321,0x00E6321, 0x16,0x0B, 0xC, +0 }, - { 0x00A6331,0x00B6321, 0x16,0x0B, 0xC, +0 }, - { 0x00A6321,0x00B6321, 0x1B,0x0B, 0xC, +0 }, - { 0x00A6320,0x00B6321, 0x1B,0x0B, 0xC, +0 }, - { 0x0188232,0x0076061, 0x1C,0x8B, 0xC, +0 }, - { 0x0145132,0x03662E1, 0x18,0x8B, 0xC, +0 }, - { 0x0178731,0x00E8B22, 0xC3,0x0B, 0x2, +0 }, - { 0x0178E71,0x00E8B22, 0xC3,0x0F, 0x2, +0 }, - { 0x0176E70,0x00E6B22, 0x8D,0x0B, 0x2, +0 }, - { 0x006F224,0x0065231, 0x4F,0x0B, 0xE, +0 }, - { 0x0076431,0x067D061, 0x1B,0x0B, 0xE, +0 }, - { 0x0066131,0x036D261, 0x1B,0x0B, 0xC, +0 }, - { 0x0063131,0x0365061, 0x1F,0x0B, 0xC, +0 }, - { 0x0064131,0x036A061, 0x1F,0x0B, 0xC, +0 }, - { 0x0565321,0x016A021, 0x9A,0x8B, 0xE, +0 }, - { 0x0585361,0x018A021, 0x19,0x0B, 0xC, +0 }, - { 0x0577361,0x017A021, 0x19,0x0B, 0xC, +0 }, - { 0x0A67121,0x096A121, 0x1B,0x0B, 0xE, +0 }, - { 0x044F585,0x045F0A1, 0x91,0x0B, 0x6, +0 }, - { 0x033F507,0x025F061, 0x51,0x0B, 0x6, +0 }, - { 0x021FF13,0x003FF11, 0x8C,0x80, 0xE, +0 }, - { 0x00DF338,0x033F5B1, 0x8C,0x40, 0xE, +0 }, - { 0x055F587,0x054F022, 0x91,0x0B, 0x6, +0 }, - { 0x032B6B3,0x031D190, 0x4A,0x0B, 0xE, +0 }, - { 0x0F0FEC4,0x0B5F6C2, 0x0E,0x12, 0x0, +0 }, - { 0x015DA05,0x013F001, 0x4E,0x80, 0xA, +0 }, - { 0x09AF231,0x027F032, 0x44,0x0B, 0x6, +0 }, - { 0x002A4B0,0x04240D7, 0xC4,0x8B, 0x0, +0 }, - { 0x0F0F0CA,0x06259CC, 0x84,0x0B, 0xC, +0 }, - { 0x0F0F530,0x09BF035, 0x35,0x0B, 0x2, +0 }, - { 0x002A4B4,0x04240D7, 0x87,0x8B, 0x6, +0 }, - { 0x0530907,0x094F605, 0x40,0x0B, 0xE, +0 }, - { 0x025DA09,0x015F101, 0x4E,0x0B, 0xA, +0 }, - { 0x0A0F406,0x046F600, 0x00,0x0B, 0xE, +0 }, - { 0x0F0F007,0x0DC5C00, 0x00,0x0B, 0xE, +0 }, - { 0x0FFF832,0x07FF511, 0x44,0x0B, 0xE, +0 }, - { 0x0FFF832,0x07FF511, 0x44,0x0E, 0xE, +0 }, - { 0x0FFF832,0x07FF511, 0x44,0x10, 0xE, +0 }, - { 0x0530900,0x094F702, 0x40,0x00, 0xE, +0 }, - { 0x0A8F211,0x0A8A001, 0x86,0x8B, 0x8, +0 }, - { 0x070F200,0x072F213, 0x50,0x0B, 0xE, +0 }, - { 0x01111F0,0x01111E0, 0x00,0xCB, 0xE, +0 }, - { 0x060F207,0x072F212, 0x4F,0x0B, 0x8, +0 }, - { 0x04FA800,0x04FD600, 0x0B,0x00, 0x0, +0 }, - { 0x0BFF80C,0x04FD600, 0x00,0x00, 0x1, +0 }, - { 0x0BFF704,0x04FD600, 0x00,0x00, 0x1, +0 }, - { 0x0BFF501,0x04FD600, 0x00,0x00, 0x1, +0 }, - { 0x0BFF701,0x00F10DE, 0x00,0x00, 0x1, +0 }, - { 0x0045617,0x004F601, 0x21,0x00, 0x2, +12 }, - { 0x0790825,0x0E6E385, 0x9A,0x5B, 0xA, +0 }, - { 0x0E6F315,0x0E6F281, 0x62,0x00, 0xB, +0 }, - { 0x055F71C,0x0D88520, 0xA3,0x0D, 0x6, +12 }, - { 0x002B025,0x0057030, 0x5F,0x40, 0xC, +12 }, - { 0x042B401,0x0C8F201, 0x12,0x00, 0xA, +0 }, - { 0x261B235,0x015F414, 0x1C,0x08, 0xA, +0 }, - { 0x1112EF0,0x11621E2, 0x00,0xC0, 0x8, +0 }, - { 0x00AF601,0x036D600, 0x07,0x00, 0x0, +0 }, - { 0x006F600,0x00CF600, 0x00,0x00, 0x1, +0 }, - { 0x204FF82,0x055FF10, 0x00,0x06, 0xE, +0 }, - { 0x00CFD01,0x036D600, 0x07,0x00, 0x0, +0 }, - { 0x3E2E20F,0x1E3F308, 0x00,0x0A, 0x6, +0 }, - { 0x366F30F,0x1A5F508, 0x00,0x19, 0x7, +0 }, - { 0x3E2E20F,0x1E4F408, 0x00,0x0A, 0x6, +0 }, - { 0x153F101,0x074F111, 0x49,0x04, 0x6, +0 }, - { 0x153F101,0x074F111, 0x89,0x07, 0x6, +0 }, - { 0x160F101,0x07BD211, 0x4D,0x01, 0x8, +0 }, - { 0x153F181,0x074F111, 0x49,0x00, 0x6, +0 }, - { 0x150F101,0x07CD201, 0x4F,0x05, 0x6, +0 }, - { 0x118F603,0x0F9F212, 0x1C,0x04, 0xF, +0 }, - { 0x1F9F131,0x0F9F331, 0x0E,0x04, 0xA, +0 }, - { 0x153F101,0x074F111, 0x49,0x01, 0x6, +0 }, - { 0x1100133,0x0037D14, 0x07,0x00, 0x8, +0 }, - { 0x1F0F517,0x0F3F201, 0x53,0x09, 0x8, +0 }, - { 0x1FFF5A3,0x0FFF5A2, 0x47,0x00, 0x0, +0 }, - { 0x154F606,0x0B3F281, 0x73,0x03, 0x0, +0 }, - { 0x105F012,0x003F011, 0x15,0x80, 0xA, +0 }, - { 0x108F006,0x008F001, 0x0E,0x00, 0xE, +0 }, - { 0x101FF64,0x062F32E, 0x1B,0x00, 0x4, +0 }, - { 0x4049404,0x0059500, 0x00,0x00, 0x0, +0 }, - { 0x1118371,0x0828F73, 0x03,0x80, 0x9, +0 }, - { 0x111C371,0x082CF73, 0x03,0x80, 0x9, +0 }, - { 0x10381F0,0x005F171, 0xD9,0x85, 0xE, +0 }, - { 0x10F75F2,0x00FFFF0, 0x81,0x0E, 0x3, +0 }, - { 0x1037532,0x0F8B062, 0x1C,0x04, 0xE, +0 }, - { 0x10BF224,0x00B5231, 0x4F,0x08, 0xE, +0 }, - { 0x1F09091,0x0FC4082, 0x88,0x80, 0x8, +0 }, - { 0x10BF261,0x00B5270, 0x68,0x10, 0xA, +0 }, - { 0x131F121,0x045C302, 0x0F,0x03, 0x0, +0 }, - { 0x112F101,0x082F101, 0x10,0x04, 0xA, +0 }, - { 0x1518503,0x071D211, 0x5E,0x07, 0xE, +0 }, - { 0x113F201,0x0F88401, 0x11,0x00, 0xA, +0 }, - { 0x121FF13,0x003FF11, 0x16,0x00, 0xA, +0 }, - { 0x14AF8F0,0x047F022, 0x00,0x0A, 0x8, +0 }, - { 0x11797F0,0x018F161, 0x01,0x0A, 0x8, +0 }, - { 0x11797F1,0x018F126, 0x01,0x08, 0x8, +0 }, - { 0x1EFF201,0x078F101, 0x1D,0x0A, 0xA, +0 }, - { 0x10FF7E1,0x00BF9B1, 0x9A,0x09, 0x8, +0 }, - { 0x1618221,0x0619522, 0x12,0x05, 0x8, +0 }, - { 0x18AE221,0x0A8E421, 0x11,0x00, 0xA, +0 }, - { 0x150F101,0x025F301, 0x4F,0x05, 0x6, +0 }, - { 0x1937511,0x082F501, 0x4F,0x05, 0x0, +0 }, - { 0x119D531,0x01B6171, 0x88,0x80, 0xC, +0 }, - { 0x125F871,0x085F171, 0x40,0x08, 0x8, +0 }, - { 0x1035131,0x0065461, 0x1C,0x04, 0xE, +0 }, - { 0x1035131,0x0065461, 0x16,0x04, 0xE, +0 }, - { 0x11152B0,0x00531B1, 0xC5,0x82, 0x0, +0 }, - { 0x1B69401,0x0268300, 0x00,0x14, 0x1, +0 }, - { 0x11171B1,0x0154261, 0x82,0x04, 0x6, +0 }, - { 0x171E4B1,0x0E5E461, 0x8B,0x40, 0x6, +0 }, - { 0x1829531,0x0B1F130, 0x9C,0x88, 0xC, +0 }, - { 0x1847824,0x004B000, 0x9A,0x00, 0x0, +0 }, - { 0x111A1B1,0x0157261, 0x81,0x04, 0x6, +0 }, - { 0x11161B1,0x0153261, 0x81,0x04, 0x6, +0 }, - { 0x1339111,0x0345122, 0x8A,0x80, 0x6, +0 }, - { 0x11171B1,0x0154261, 0x85,0x04, 0x6, +0 }, - { 0x015E5D1,0x0057B72, 0x5B,0x82, 0x0, +0 }, - { 0x04964F2,0x0069261, 0x90,0x06, 0x0, +0 }, - { 0x1537101,0x00CB222, 0x4F,0x08, 0xA, +0 }, - { 0x1526641,0x0768501, 0x00,0x00, 0x0, +0 }, - { 0x0177E61,0x0098E21, 0x92,0x00, 0xE, +0 }, - { 0x0176E60,0x0096E21, 0x92,0x10, 0xE, +0 }, - { 0x165C201,0x006F321, 0x1D,0x0C, 0xE, +0 }, - { 0x0177E61,0x0098E21, 0x8F,0x04, 0xE, +0 }, - { 0x15A5321,0x01AAA21, 0x9F,0x82, 0xC, +0 }, - { 0x1AE71E1,0x00E81E2, 0x15,0x08, 0xE, +0 }, - { 0x1AE7081,0x09EB023, 0x12,0x09, 0xA, +0 }, - { 0x1AE7081,0x09EB023, 0x18,0x09, 0xA, +0 }, - { 0x1FB7012,0x0FF5014, 0x92,0x04, 0xE, +0 }, - { 0x1FB7012,0x0FF5013, 0x92,0x06, 0xE, +0 }, - { 0x1FB7011,0x0FF5013, 0x92,0x02, 0xE, +0 }, - { 0x1FB7010,0x0FF5011, 0x92,0x0A, 0xE, +0 }, - { 0x1FB7010,0x0FF5013, 0x92,0x06, 0xE, +0 }, - { 0x1FB7011,0x0FF5011, 0x92,0x02, 0xE, +0 }, - { 0x119D530,0x01B6171, 0xC8,0x82, 0xC, +0 }, - { 0x11B5132,0x00BA261, 0x1A,0x0A, 0xC, +0 }, - { 0x1297461,0x0097362, 0x12,0x80, 0xB, +0 }, - { 0x05FF732,0x01F65B1, 0x43,0x80, 0x8, +0 }, - { 0x05F87B1,0x01F67B0, 0x83,0x83, 0x8, +0 }, - { 0x05F8732,0x01F65B1, 0x83,0x80, 0x8, +0 }, - { 0x15F87A2,0x01F65B1, 0x03,0x00, 0x6, +0 }, - { 0x0177E62,0x0098E21, 0x92,0x0C, 0xE, +0 }, - { 0x1C70CB3,0x0A560B2, 0x9A,0x80, 0xD, +0 }, - { 0x15F6721,0x0FF5501, 0x83,0x86, 0x7, +0 }, - { 0x11797F1,0x0E8F121, 0x00,0x04, 0x8, +0 }, - { 0x31797F1,0x0E8F121, 0x00,0x06, 0x8, +0 }, - { 0x15F8781,0x01B6580, 0x83,0x80, 0x6, +0 }, - { 0x1F69401,0x009F426, 0x80,0x04, 0xA, +0 }, - { 0x1F69442,0x008F423, 0x80,0x04, 0xA, +0 }, - { 0x10875E6,0x00963E3, 0x66,0x00, 0xF, +0 }, - { 0x1177426,0x017F5A0, 0x8E,0x83, 0xD, +0 }, - { 0x116F1A1,0x008F421, 0x88,0x02, 0xC, +0 }, - { 0x143C373,0x0432370, 0x0C,0x00, 0x5, +0 }, - { 0x04914F2,0x0665261, 0x90,0x08, 0x0, +0 }, - { 0x11797B1,0x018F161, 0x06,0x08, 0x8, +0 }, - { 0x1176E81,0x0048B22, 0xC5,0x08, 0x8, +0 }, - { 0x100586E,0x0012632, 0x18,0x80, 0x6, +0 }, - { 0x104C113,0x0075161, 0xD3,0x0A, 0xE, +0 }, - { 0x107F021,0x0089022, 0x8E,0x40, 0x0, +0 }, - { 0x111D570,0x0112671, 0xC8,0x82, 0xA, +0 }, - { 0x1427887,0x00485B6, 0x4D,0x02, 0xA, +0 }, - { 0x11171B1,0x0154261, 0x8B,0x00, 0x6, +0 }, - { 0x654F699,0x003F2A1, 0x33,0x08, 0x0, +0 }, - { 0x1537101,0x0047132, 0x49,0x0A, 0x6, +0 }, - { 0x102A4B4,0x00245F6, 0x07,0x00, 0x6, +0 }, - { 0x10214B3,0x00285F5, 0x07,0x00, 0x6, +0 }, - { 0x015E5D1,0x0027B72, 0x9B,0x83, 0x0, +0 }, - { 0x1339660,0x02B5520, 0x00,0x03, 0x6, +0 }, - { 0x153F101,0x053F108, 0x00,0x00, 0x0, +0 }, - { 0x11FF721,0x03FF523, 0x0A,0x00, 0x4, +0 }, - { 0x153F101,0x088F108, 0x00,0x00, 0x0, +0 }, - { 0x110F201,0x004F508, 0x11,0x00, 0x8, +0 }, - { 0x105F011,0x003F010, 0x15,0x40, 0xA, +0 }, - { 0x1176E30,0x00C8B21, 0x61,0x0C, 0x2, +0 }, - { 0x1035131,0x0075462, 0x1C,0x05, 0xE, +0 }, - { 0x2FB7010,0x0FF5013, 0x52,0x06, 0xE, +0 }, - { 0x106FF09,0x004FF84, 0x4D,0x00, 0xC, +0 }, - { 0x106FF09,0x007FF84, 0x0D,0x00, 0xC, +0 }, - { 0x1847825,0x004B001, 0x9A,0x06, 0x0, +0 }, - { 0x340FF55,0x007FF12, 0x80,0x00, 0x0, +0 }, - { 0x340FF90,0x003FF10, 0x80,0x11, 0x0, +0 }, - { 0x040FF10,0x003FF10, 0x80,0x8C, 0xE, +0 }, - { 0x640FF10,0x003FF10, 0x37,0x0E, 0x0, +0 }, - { 0x000FF4E,0x0FD1F40, 0x00,0x00, 0xA, +0 }, - { 0x1945315,0x0757800, 0x00,0x00, 0x0, +0 }, - { 0x3063F72,0x0075F20, 0x85,0x0A, 0x6, +0 }, - { 0x000FF4E,0x0021E60, 0x00,0x00, 0xA, +0 }, - { 0x1F0F000,0x0FF5F09, 0x2E,0x00, 0xE, +0 }, - { 0x111FE3E,0x019F123, 0x00,0xC0, 0x8, +0 }, - { 0x111FEB0,0x019F1A0, 0x00,0xC0, 0x8, +0 }, - { 0x000FF4E,0x0022C60, 0x00,0x00, 0xA, +0 }, - { 0x000FF0D,0x006F020, 0x00,0x00, 0xA, +0 }, - { 0x0000000,0x0000000, 0x00,0x00, 0x0, +0 }, - { 0x0E8E800,0x0F8A500, 0x0D,0x00, 0x6, +0 }, - { 0x038EC12,0x009FA00, 0x06,0x06, 0xE, +0 }, - { 0x2F5F02F,0x207FA0F, 0x00,0x00, 0xE, +0 }, - { 0x077F005,0x0EDFA00, 0x00,0x00, 0xE, +0 }, - { 0x0F0F006,0x0F7F700, 0x00,0x00, 0xE, +0 }, - { 0x0F6F600,0x097F700, 0x00,0x03, 0x1, +0 }, - { 0x100F046,0x067FE02, 0x00,0x00, 0xE, +0 }, - { 0x0F6F600,0x0C7F700, 0x00,0x03, 0x1, +0 }, - { 0x0F0F063,0x2099902, 0x00,0x03, 0xE, +0 }, - { 0x0F6F600,0x0C6F600, 0x00,0x03, 0x1, +0 }, - { 0x1F0F043,0x204FD02, 0x00,0x03, 0xE, +0 }, - { 0x0F6F500,0x0C5F500, 0x00,0x03, 0x1, +0 }, - { 0x000F00F,0x2F4F4A0, 0x00,0x00, 0xE, +0 }, - { 0x342F809,0x3E4F407, 0x06,0x40, 0xE, +0 }, - { 0x320F413,0x254F800, 0x4B,0x00, 0xE, +0 }, - { 0x04F960E,0x218B700, 0x40,0x08, 0xE, +0 }, - { 0x276F502,0x0D6F809, 0x1B,0x05, 0x4, +0 }, - { 0x10070E1,0x0F4A4E0, 0x00,0x09, 0xE, +0 }, - { 0x342F809,0x3E4F404, 0x06,0x44, 0xE, +0 }, - { 0x1F8F830,0x0B6F511, 0x21,0x08, 0x0, +0 }, - { 0x1F8F830,0x0A6F511, 0x1E,0x08, 0x0, +0 }, - { 0x248EB00,0x078F700, 0x95,0x0D, 0x0, +0 }, - { 0x259FB00,0x038E700, 0x94,0x0D, 0x0, +0 }, - { 0x256FB00,0x0C7F600, 0x98,0x0D, 0x0, +0 }, - { 0x1F8F832,0x0F5F531, 0x85,0x08, 0xC, +0 }, - { 0x1BAE812,0x099F511, 0x80,0x08, 0xC, +0 }, - { 0x387FD00,0x0F6E622, 0x00,0x08, 0x0, +0 }, - { 0x387FD00,0x0F6F522, 0x00,0x08, 0x0, +0 }, - { 0x0FEF025,0x2586C03, 0x00,0x93, 0xE, +0 }, - { 0x04F760E,0x2187704, 0x40,0x08, 0xE, +0 }, - { 0x3F77723,0x2F68623, 0x04,0x0A, 0xC, +0 }, - { 0x3F76623,0x2F68623, 0x04,0x0A, 0xC, +0 }, - { 0x306FF80,0x0176F11, 0x00,0x0B, 0xE, +0 }, - { 0x306FF80,0x0166F11, 0x00,0x0B, 0xE, +0 }, - { 0x1D1F813,0x0F5F532, 0x61,0x0C, 0x6, +0 }, - { 0x1D1F813,0x0F6F632, 0x6C,0x08, 0x6, +0 }, - { 0x045FC41,0x0C56943, 0x45,0x00, 0x0, +0 }, - { 0x045FC41,0x0056942, 0x45,0x00, 0x0, +0 }, - { 0x060F205,0x07AF414, 0x51,0x80, 0xA, +0 }, - { 0x060F285,0x0B8F294, 0x51,0x80, 0xA, +0 }, - { 0x1F5F213,0x0F5F111, 0xC6,0x00, 0x0, +0 }, - { 0x013F201,0x043F501, 0x22,0x00, 0xE, +0 }, - { 0x0F9F131,0x0F9F332, 0x8E,0x80, 0xA, +0 }, - { 0x060F207,0x072F212, 0x4F,0x0A, 0x8, +0 }, - { 0x015DA85,0x013F981, 0x4E,0x80, 0xA, +0 }, - { 0x0F0FF06,0x0B5F8C4, 0x00,0x00, 0xE, +0 }, - { 0x060F217,0x072F202, 0x4F,0x10, 0x8, +0 }, - { 0x053F103,0x074F217, 0x0F,0x0B, 0x0, +0 }, - { 0x00FFF24,0x00FFF22, 0x80,0x40, 0x1, +0 }, - { 0x0FFF001,0x00F9031, 0x4F,0x00, 0x6, +0 }, - { 0x1069FB2,0x10FB4B0, 0xC0,0x80, 0x9, +0 }, - { 0x0FFF001,0x00F9033, 0x4F,0x08, 0x6, +0 }, - { 0x00BF224,0x00B9231, 0x4F,0x10, 0xE, +0 }, - { 0x0035121,0x0677262, 0x15,0x80, 0xA, +0 }, - { 0x1AFF5E0,0x10FF4E1, 0xCE,0x00, 0xC, +0 }, - { 0x021FF13,0x003FF11, 0x93,0x80, 0xA, +0 }, - { 0x101FF11,0x003FF11, 0x8B,0x80, 0x0, +0 }, - { 0x171F503,0x083F211, 0x5E,0x00, 0xE, +0 }, - { 0x031F121,0x044F406, 0x40,0x80, 0x0, +0 }, - { 0x01A9161,0x01AC1E5, 0x40,0x03, 0x8, +0 }, - { 0x0AE71E1,0x07EF0E7, 0x16,0x40, 0xA, +0 }, - { 0x0EEC101,0x0DEF302, 0x23,0x00, 0xA, +0 }, - { 0x071FB51,0x0B9F301, 0x00,0x00, 0x0, +0 }, - { 0x0EFF230,0x078F520, 0x1E,0x00, 0xE, +0 }, - { 0x1889501,0x003FF12, 0x40,0x00, 0x6, +0 }, - { 0x1F7F501,0x2F7F501, 0x10,0x00, 0x0, +0 }, - { 0x029D521,0x006B332, 0x4F,0x00, 0xA, +0 }, - { 0x2035170,0x267B420, 0x1C,0x00, 0xE, +0 }, - { 0x21152F0,0x1FE91F1, 0xD0,0x40, 0x0, +0 }, - { 0x11152B0,0x1FE71B1, 0xC5,0x80, 0x0, +0 }, - { 0x01152B1,0x1CF80B1, 0xC5,0x84, 0x8, +0 }, - { 0x01171B1,0x1156261, 0x8B,0x40, 0x6, +0 }, - { 0x0F9F131,0x0D5F531, 0x9C,0x80, 0xE, +0 }, - { 0x123B391,0x106F761, 0x4F,0x40, 0x6, +0 }, - { 0x005F010,0x004D010, 0x25,0x80, 0xE, +0 }, - { 0x2005130,0x2656420, 0x1C,0x00, 0xE, +0 }, - { 0x1037531,0x1445462, 0x1C,0x02, 0xE, +0 }, - { 0x081B021,0x12CD323, 0x16,0x00, 0xC, +0 }, - { 0x10872E1,0x02BFAE2, 0xC0,0x89, 0x0, +0 }, - { 0x1C2F071,0x0F2F2C1, 0x46,0x00, 0x4, +0 }, - { 0x173F141,0x174F242, 0x4F,0x03, 0x6, +0 }, - { 0x0059100,0x3068200, 0x0F,0x00, 0x0, +0 }, - { 0x00B4131,0x03BC262, 0x1C,0x80, 0xE, +0 }, - { 0x01F41B1,0x03BB261, 0x1C,0x80, 0xE, +0 }, - { 0x0655200,0x076A321, 0x1D,0x00, 0xE, +0 }, - { 0x08C4321,0x12FA522, 0x19,0x80, 0xC, +0 }, - { 0x05A5321,0x11ABA21, 0x9F,0x80, 0xC, +0 }, - { 0x1AE91E1,0x09EA1E1, 0x55,0x0A, 0xE, +0 }, - { 0x029BB21,0x00AB061, 0x8E,0x80, 0x8, +0 }, - { 0x0AE71E1,0x19EA1E1, 0x16,0x06, 0xA, +0 }, - { 0x2AE71E0,0x19EA1E2, 0x23,0x00, 0xA, +0 }, - { 0x0537101,0x07C9212, 0x4F,0x00, 0xA, +0 }, - { 0x0687120,0x05E9232, 0x4E,0x00, 0xA, +0 }, - { 0x05B7110,0x07B9250, 0x4F,0x00, 0xE, +0 }, - { 0x009F021,0x10AC024, 0x96,0x00, 0xA, +0 }, - { 0x0176EB1,0x10EDBA2, 0xC5,0x00, 0x2, +0 }, - { 0x019D531,0x00A9173, 0x4D,0x00, 0x8, +0 }, - { 0x01B5132,0x03BB261, 0x9A,0x02, 0xC, +0 }, - { 0x0160020,0x015B022, 0x5B,0x00, 0xA, +0 }, - { 0x0177421,0x117A5A1, 0x83,0x40, 0x7, +0 }, - { 0x18F7EE2,0x02A8661, 0xDB,0x00, 0xE, +0 }, - { 0x0160020,0x01560E1, 0x5B,0x40, 0xA, +0 }, - { 0x1063F54,0x0077E01, 0x85,0x00, 0x6, +0 }, - { 0x08F6EE0,0x02AA661, 0xEC,0x00, 0xE, +0 }, - { 0x0C70CF4,0x0A580F3, 0x9A,0x40, 0xD, +0 }, - { 0x0537102,0x07C7211, 0x4F,0x00, 0xA, +0 }, - { 0x007F803,0x074B201, 0x08,0x00, 0x8, +0 }, - { 0x14FF661,0x00FA661, 0x0B,0x00, 0x2, +0 }, - { 0x0086882,0x008C7F1, 0x90,0x00, 0x4, +0 }, - { 0x0F55551,0x1E65602, 0x80,0x00, 0x8, +0 }, - { 0x0339661,0x02B6522, 0x00,0x00, 0x6, +0 }, - { 0x303F660,0x016F621, 0x07,0x00, 0x4, +0 }, - { 0x0E1B311,0x0E4A101, 0x85,0x00, 0xA, +0 }, - { 0x1E9F251,0x0B6F272, 0x41,0x00, 0xA, +0 }, - { 0x002A4B3,0x04285F5, 0x87,0x00, 0x6, +0 }, - { 0x19041F1,0x005B2B1, 0xC0,0x00, 0x8, +0 }, - { 0x102FF52,0x104FF01, 0x03,0x01, 0x4, +0 }, - { 0x0AFF5E1,0x20FF4E0, 0xD0,0x00, 0xC, +0 }, - { 0x21133F4,0x32E53F1, 0x02,0x00, 0x3, +0 }, - { 0x0D3B305,0x125F243, 0x40,0x00, 0x2, +0 }, - { 0x3CF7232,0x1EE5111, 0x4D,0x00, 0x2, +0 }, - { 0x0FF1001,0x0FF5011, 0x12,0x00, 0xA, +0 }, - { 0x00FFF7E,0x10F6F61, 0x1A,0x00, 0xE, +0 }, - { 0x01131F1,0x11222F1, 0x41,0x40, 0x2, +0 }, - { 0x203E5B6,0x14245F1, 0x4B,0x00, 0x6, +0 }, - { 0x1005872,0x0022620, 0x18,0x40, 0x6, +0 }, - { 0x202F950,0x001FFC5, 0x90,0x00, 0x4, +0 }, - { 0x00F4D20,0x105FF00, 0x03,0x00, 0x2, +0 }, - { 0x0427F35,0x02135A2, 0xD7,0x00, 0xE, +0 }, - { 0x303F17C,0x001F130, 0x40,0x00, 0x6, +0 }, - { 0x053F101,0x053F128, 0x40,0x80, 0x0, +0 }, - { 0x011A131,0x0438D13, 0x87,0x80, 0x8, +0 }, - { 0x053F101,0x074F237, 0x4F,0x00, 0x6, +0 }, - { 0x01FF201,0x188F521, 0x0B,0x00, 0x0, +0 }, - { 0x055F502,0x053F621, 0x99,0x00, 0x0, +0 }, - { 0x1176E31,0x10CABA1, 0x43,0x00, 0x2, +0 }, - { 0x2035530,0x1448461, 0x19,0x00, 0xA, +0 }, - { 0x0427881,0x0558593, 0x4B,0x00, 0xE, +0 }, - { 0x272F107,0x104FC18, 0x46,0x00, 0x0, +0 }, - { 0x0E6F80E,0x0F6F80F, 0x00,0x00, 0x0, +0 }, - { 0x1078F03,0x1059F02, 0xC0,0x00, 0xA, +0 }, - { 0x097C802,0x097F802, 0x00,0x00, 0x1, +0 }, - { 0x007FF01,0x107FF00, 0x00,0x00, 0x5, +0 }, - { 0x196C801,0x086F800, 0x00,0x00, 0xA, +0 }, - { 0x0B3F109,0x0B4F600, 0x00,0x00, 0xE, +0 }, - { 0x00B5F01,0x30F5F00, 0x80,0x00, 0x6, +0 }, - { 0x2056651,0x2066642, 0x00,0x00, 0x2, +0 }, - { 0x3665F54,0x0077F40, 0x0A,0x00, 0x4, +0 }, - { 0x005F1C0,0x02394FB, 0x51,0x00, 0x2, +0 }, - { 0x10FFFFC,0x30FFFF0, 0xC0,0x00, 0x0, +0 }, - { 0x00FFF7E,0x00F5F6E, 0x00,0x00, 0xE, +0 }, - { 0x0F0A00A,0x075C586, 0x00,0x00, 0xE, +0 }, - { 0x050F101,0x0D6D101, 0x4E,0x06, 0xA, +0 }, - { 0x054F231,0x0C6F201, 0x48,0x00, 0x8, +0 }, - { 0x023F503,0x0E7D101, 0x47,0x06, 0xA, +0 }, - { 0x000F113,0x0F6D194, 0x54,0x00, 0x4, +0 }, - { 0x15BF80C,0x0CCD201, 0x71,0x03, 0x0, +0 }, - { 0x0DAF101,0x0E9F301, 0x93,0x00, 0x0, +0 }, - { 0x128FB23,0x0E8D301, 0x87,0x40, 0x6, +0 }, - { 0x0A5C201,0x0D7C201, 0x92,0x00, 0xA, +0 }, - { 0x040FF36,0x0F4F311, 0xC0,0x80, 0x4, +0 }, - { 0x055F587,0x0C4F411, 0x91,0x00, 0x2, +0 }, - { 0x0045616,0x034F601, 0x21,0x00, 0x2, +0 }, - { 0x0E6F318,0x0F6F281, 0xD0,0x00, 0x0, +0 }, - { 0x0FFF718,0x0D8B501, 0x21,0x00, 0x0, +0 }, - { 0x0FFF816,0x0F6F601, 0x98,0x00, 0x0, +0 }, - { 0x032FD13,0x042FD00, 0x86,0x03, 0x8, +0 }, - { 0x1058401,0x0C5F481, 0x49,0x82, 0x0, +0 }, - { 0x2E5F062,0x00EC060, 0x5D,0x00, 0x0, +0 }, - { 0x0FFF062,0x00FCF60, 0xCF,0x00, 0x0, +0 }, - { 0x00FAA30,0x10FFF71, 0x57,0x00, 0x0, +0 }, - { 0x14BF02C,0x01B5071, 0x55,0x08, 0x0, +0 }, - { 0x1059721,0x0054F31, 0x13,0x80, 0x0, +0 }, - { 0x1058721,0x0054F32, 0x8F,0x00, 0x6, +0 }, - { 0x006F223,0x00642B1, 0x53,0x0B, 0xE, +0 }, - { 0x1058721,0x0054F31, 0x50,0x00, 0x0, +0 }, - { 0x2F4F502,0x0F8F301, 0x64,0x00, 0xA, +0 }, - { 0x1FAF303,0x0F7C301, 0x57,0x00, 0xE, +0 }, - { 0x0F0F003,0x0F8F301, 0xD5,0x00, 0x2, +0 }, - { 0x120F723,0x0F7F401, 0x86,0x40, 0x8, +0 }, - { 0x043F903,0x0FAF421, 0xC0,0x00, 0x6, +0 }, - { 0x0FFF101,0x3FFF054, 0x43,0x40, 0x8, +0 }, - { 0x353F100,0x396F110, 0x49,0x00, 0xC, +0 }, - { 0x15FF510,0x1FFF134, 0x40,0x00, 0x0, +0 }, - { 0x0F2D401,0x08AC321, 0x18,0x80, 0xA, +0 }, - { 0x02FF131,0x086F131, 0x8F,0x00, 0xA, +0 }, - { 0x02FF131,0x086F131, 0x8C,0x00, 0xA, +0 }, - { 0x04CB421,0x0FC8201, 0x15,0x00, 0xA, +0 }, - { 0x016F701,0x088F321, 0x8E,0x00, 0xC, +0 }, - { 0x016FD01,0x088F321, 0x0D,0x00, 0xC, +0 }, - { 0x016F501,0x088F321, 0x8C,0x00, 0xA, +0 }, - { 0x004F311,0x06DF231, 0x06,0x00, 0x8, +0 }, - { 0x1035171,0x0155221, 0x1C,0x00, 0xE, +0 }, - { 0x113FF31,0x0366661, 0x16,0x00, 0x8, +0 }, - { 0x0035171,0x0175461, 0x56,0x00, 0xE, +0 }, - { 0x0035171,0x0476421, 0x1D,0x00, 0xE, +0 }, - { 0x121F131,0x0166FE1, 0x46,0x00, 0x2, +0 }, - { 0x0FFF611,0x0F37211, 0x05,0x00, 0x0, +0 }, - { 0x075F002,0x053F701, 0x1D,0x00, 0x0, +0 }, - { 0x1057510,0x0F3F311, 0x41,0x00, 0x0, +0 }, - { 0x1035131,0x0153061, 0x1C,0x00, 0xE, +0 }, - { 0x014C121,0x0054161, 0x93,0x00, 0xA, +0 }, - { 0x0223101,0x0159041, 0x18,0x00, 0xC, +0 }, - { 0x01FF421,0x0073F72, 0xDB,0x07, 0x0, +0 }, - { 0x0697961,0x0677121, 0x96,0x00, 0x0, +0 }, - { 0x069E961,0x0677121, 0x96,0x00, 0x0, +0 }, - { 0x0665410,0x045A581, 0x04,0x00, 0x8, +0 }, - { 0x0076431,0x067D021, 0x1E,0x00, 0xE, +0 }, - { 0x0177521,0x0078F21, 0x94,0x80, 0xC, +0 }, - { 0x0586321,0x018A021, 0x19,0x00, 0xC, +0 }, - { 0x00F7321,0x00F9321, 0x16,0x00, 0xC, +0 }, - { 0x0565321,0x016A021, 0x9A,0x80, 0xE, +0 }, - { 0x0076431,0x067D021, 0x18,0x00, 0xE, +0 }, - { 0x03E4131,0x09EF022, 0x16,0x00, 0xE, +0 }, - { 0x0566121,0x016A021, 0x99,0x80, 0xE, +0 }, - { 0x100FF31,0x0087F61, 0x94,0x00, 0x8, +0 }, - { 0x1009831,0x0096F61, 0x8E,0x00, 0x8, +0 }, - { 0x1055E31,0x0087F61, 0x8D,0x00, 0xA, +0 }, - { 0x0178731,0x00E8BA2, 0xC1,0x00, 0xC, +0 }, - { 0x0178731,0x10E8BA2, 0xC3,0x00, 0xC, +0 }, - { 0x017FE71,0x00A6B22, 0x0D,0x00, 0x8, +0 }, - { 0x0219F32,0x0F770B1, 0x48,0x00, 0x4, +0 }, - { 0x03794A1,0x00A6521, 0x1F,0x00, 0x0, +0 }, - { 0x05F7621,0x02A60A1, 0x19,0x80, 0x6, +0 }, - { 0x0195131,0x0396021, 0x9A,0x80, 0xC, +0 }, - { 0x05084B2,0x0186721, 0x8D,0x00, 0x0, +0 }, - { 0x00457E2,0x0876861, 0x52,0x00, 0x8, +0 }, - { 0x1032171,0x0175461, 0x96,0x00, 0x4, +0 }, - { 0x0031171,0x0175461, 0xD6,0x00, 0x4, +0 }, - { 0x00FF032,0x0077621, 0xF4,0x00, 0x0, +0 }, - { 0x203F422,0x00CF061, 0xA1,0x00, 0x0, +0 }, - { 0x10FFC21,0x10FF9A1, 0x0E,0x00, 0x0, +0 }, - { 0x0558721,0x0186421, 0x42,0x80, 0x0, +0 }, - { 0x0126621,0x0099021, 0x45,0x00, 0x6, +0 }, - { 0x121A221,0x02A91A2, 0x8E,0x00, 0xA, +0 }, - { 0x069E962,0x0677121, 0xAA,0x00, 0x0, +0 }, - { 0x0104100,0x206F760, 0xC4,0x00, 0x0, +0 }, - { 0x030F201,0x009F461, 0x8F,0x80, 0xA, +0 }, - { 0x0F45217,0x005A0A1, 0xA7,0x00, 0xE, +0 }, - { 0x011E861,0x00327B1, 0x1F,0x80, 0xA, +0 }, - { 0x02C6161,0x018F521, 0x16,0x00, 0xC, +0 }, - { 0x001EF71,0x0036172, 0x60,0x00, 0x0, +0 }, - { 0x0935136,0x0714331, 0xC4,0x80, 0x6, +0 }, - { 0x175A1C1,0x1752101, 0x51,0x00, 0x0, +0 }, - { 0x010F4A1,0x0033F32, 0xDB,0x07, 0x0, +0 }, - { 0x1181121,0x007CFA1, 0x15,0x00, 0x0, +0 }, - { 0x0F1B061,0x0F2F1B1, 0x1F,0x00, 0xA, +0 }, - { 0x1051201,0x0144121, 0x15,0x00, 0x0, +0 }, - { 0x0156215,0x004AD81, 0x58,0x00, 0x2, +0 }, - { 0x056F523,0x025F3A1, 0x48,0x80, 0x0, +0 }, - { 0x151F261,0x0A5F242, 0x4D,0x00, 0x0, +0 }, - { 0x1511261,0x0131123, 0x09,0x80, 0xC, +0 }, - { 0x0F11141,0x0031DA1, 0x8E,0x06, 0xA, +0 }, - { 0x15AB061,0x01AB0A3, 0x94,0x80, 0x0, +0 }, - { 0x083F101,0x085F108, 0x40,0x40, 0x0, +0 }, - { 0x1119311,0x0C5A213, 0x0C,0x09, 0x0, +0 }, - { 0x1429811,0x0D7F311, 0x06,0x00, 0x4, +0 }, - { 0x0328513,0x112E591, 0x91,0x00, 0x8, +0 }, - { 0x2569D04,0x005F201, 0x8F,0x80, 0xE, +0 }, - { 0x1206721,0x10C6F22, 0x41,0x00, 0x6, +0 }, - { 0x0206721,0x10C6F22, 0x41,0x00, 0x6, +0 }, - { 0x1178731,0x00E8B22, 0x48,0x80, 0xC, +0 }, - { 0x0E5F105,0x0E5C302, 0xD8,0x80, 0x6, +0 }, - { 0x026EC07,0x087F702, 0x0A,0x00, 0xE, +0 }, - { 0x0155805,0x005EF01, 0x9D,0x00, 0xE, +0 }, - { 0x018FA17,0x054F812, 0x18,0x00, 0x8, +0 }, - { 0x0F3E900,0x005FF00, 0x11,0x00, 0x0, +0 }, - { 0x147F811,0x003F310, 0x01,0x80, 0x4, +0 }, - { 0x0696940,0x0657300, 0x96,0x00, 0x4, +0 }, - { 0x0F0F00C,0x0DF270C, 0x00,0x00, 0xE, +0 }, - { 0x024F806,0x2D65602, 0x80,0x8D, 0xE, +0 }, - { 0x07DF011,0x0865611, 0x0A,0x89, 0xE, +0 }, - { 0x0FFF00B,0x2FF120C, 0x00,0x00, 0xE, +0 }, - { 0x05BE51C,0x0FA5D0C, 0x1E,0x00, 0xE, +0 }, - { 0x0FFD02C,0x0FFF020, 0x40,0x00, 0xE, +0 }, - { 0x200F600,0x2FF4FD0, 0x00,0x00, 0xE, +0 }, - { 0x001FF6C,0x016126C, 0x00,0x40, 0xE, +0 }, - { 0x0FFF30C,0x1DFF60C, 0x00,0x00, 0xE, +0 }, - { 0x0F00020,0x0F00000, 0x3F,0x3F, 0xD, +0 }, - { 0x0C8AA00,0x0B7D200, 0x00,0x00, 0x0, +0 }, - { 0x22BFB03,0x00BF507, 0x00,0x00, 0xF, +0 }, - { 0x3FFFFF0,0x0F0FBE5, 0xC0,0x00, 0xE, +0 }, - { 0x00AFF21,0x119F800, 0x80,0x00, 0xE, +0 }, - { 0x098C601,0x098C601, 0x08,0x08, 0x5, +0 }, - { 0x098C601,0x098C601, 0x00,0x08, 0x5, +0 }, - { 0x342F80E,0x3E4F407, 0x00,0x40, 0xE, +0 }, - { 0x342F80F,0x3E4F407, 0x00,0x40, 0xE, +0 }, - { 0x342F804,0x3E4F407, 0x00,0x44, 0xE, +0 }, - { 0x342F80F,0x3E4F40D, 0x00,0x40, 0xE, +0 }, - { 0x342F80F,0x3E4F408, 0x00,0x40, 0xE, +0 }, - { 0x200F880,0x3049F90, 0x0D,0x00, 0xE, +0 }, - { 0x08DFA01,0x0B5F801, 0x4F,0x00, 0x7, +0 }, - { 0x30AF901,0x006FA00, 0x00,0x00, 0xF, +0 }, - { 0x0EFF702,0x397C802, 0x00,0x00, 0xB, +0 }, - { 0x0EFF702,0x397C802, 0x00,0x40, 0xB, +0 }, - { 0x276F502,0x2D6F609, 0x1B,0x05, 0x4, +0 }, - { 0x05BE51C,0x0FA7D07, 0x16,0x00, 0xE, +0 }, - { 0x0FEE51C,0x0067D07, 0x16,0x00, 0xE, +0 }, - { 0x0F40006,0x005F713, 0x3F,0x00, 0x1, +0 }, - { 0x0F40006,0x005F712, 0x3F,0x00, 0x1, +0 }, - { 0x3F0E02A,0x005FF1E, 0x40,0x40, 0x8, +0 }, - { 0x3F0E02A,0x002FF1E, 0x7C,0x40, 0x8, +0 }, - { 0x053F171,0x227F272, 0x48,0x00, 0xA, +0 }, - { 0x121F1B1,0x0166F61, 0x46,0x00, 0x2, +0 }, - { 0x03EC131,0x09EF022, 0x1B,0x00, 0xE, +0 }, - { 0x203F4A2,0x00CF0F1, 0xA1,0x00, 0x0, +0 }, - { 0x008C782,0x00857F1, 0x0D,0x00, 0x0, +0 }, - { 0x053F101,0x074F217, 0x4F,0x00, 0x6, +0 }, - { 0x0328513,0x112E591, 0x90,0x00, 0x8, +0 }, - { 0x2569D04,0x005F201, 0xCF,0x80, 0xE, +0 }, - { 0x0F2EB20,0x005FF10, 0x08,0x00, 0x0, +0 }, - { 0x0F0F029,0x1DF2703, 0x00,0x00, 0xE, +0 }, - { 0x0F6A90F,0x2F6F90F, 0x02,0xC0, 0x0, +0 }, - { 0x098F601,0x008CB00, 0x00,0x00, 0x5, +0 }, - { 0x306FF80,0x0176F11, 0x00,0x00, 0xE, +0 }, - { 0x306FF80,0x0166F11, 0x00,0x00, 0xE, +0 }, - { 0x0F00006,0x0FFF816, 0x3F,0x00, 0x1, +0 }, - { 0x0FF0006,0x0FFF815, 0x3F,0x00, 0x1, +0 }, - { 0x094F3C1,0x0C8E3C1, 0x8C,0x40, 0xC, +12 }, - { 0x1E4E130,0x0E3F230, 0x8D,0x00, 0xA, +12 }, - { 0x21FF120,0x088F420, 0x21,0x00, 0xA, +12 }, - { 0x100A010,0x0F6B110, 0x15,0x00, 0x8, +12 }, - { 0x054A1E0,0x0049160, 0x4B,0x40, 0x0, +12 }, - { 0x1059020,0x10575A1, 0x51,0x80, 0x4, +12 }, - { 0x10580A0,0x1056521, 0x52,0x80, 0x6, +12 }, - { 0x10569A0,0x10266E0, 0x93,0x00, 0xA, +12 }, - { 0x0033221,0x1042120, 0x4D,0x80, 0x0, +12 }, - { 0x054A160,0x0049160, 0x4D,0x80, 0x0, +12 }, - { 0x10BA8A1,0x128D330, 0x48,0x00, 0xA, +12 }, - { 0x0C8A820,0x0B7D601, 0x00,0x00, 0x0, +0 }, - { 0x117F7CE,0x04CF9C0, 0x21,0x00, 0xF, +12 }, - { 0x075FC01,0x037F800, 0x21,0x00, 0x1, +12 }, - { 0x25E980C,0x306FB0F, 0x80,0x80, 0xF, +12 }, - { 0x0F5F201,0x0F6F201, 0x8F,0x06, 0x8, +0 }, - { 0x0F5F201,0x0F6F201, 0x4B,0x00, 0x8, +0 }, - { 0x0F5F201,0x0F5F201, 0x49,0x00, 0x8, +0 }, - { 0x0F6F2C1,0x0F6F241, 0x12,0x00, 0x6, +0 }, - { 0x0F8F181,0x0F7F201, 0x57,0x00, 0x0, +0 }, - { 0x0F7F101,0x0F6F201, 0x93,0x00, 0x0, +0 }, - { 0x0F5F60C,0x0F5F381, 0x5C,0x00, 0x0, +0 }, - { 0x0F5F3D8,0x0F5F281, 0x62,0x00, 0x0, +0 }, - { 0x014F6B1,0x004F1F1, 0x92,0x00, 0x2, +0 }, - { 0x05FC772,0x004C730, 0x14,0x00, 0x2, +0 }, - { 0x016AA70,0x0048AB1, 0x44,0x00, 0x4, +0 }, - { 0x1259723,0x01355B1, 0x93,0x00, 0x4, +0 }, - { 0x1299824,0x01646B1, 0x48,0x00, 0xC, +0 }, - { 0x1069121,0x0066161, 0x13,0x00, 0xA, +0 }, - { 0x0067121,0x00661E1, 0x13,0x89, 0x6, +0 }, - { 0x197F302,0x0C6F341, 0x9C,0x80, 0xC, +0 }, - { 0x198F303,0x0E5F111, 0x54,0x00, 0xC, +0 }, - { 0x03EF123,0x0F7F221, 0x5F,0x00, 0x0, +0 }, - { 0x127F623,0x0F7F321, 0x87,0x80, 0x6, +0 }, - { 0x054F903,0x03FF621, 0x47,0x00, 0x0, +0 }, - { 0x1479163,0x0178421, 0x4A,0x05, 0x8, +0 }, - { 0x1189563,0x0179461, 0x4A,0x00, 0x8, +0 }, - { 0x0482029,0x0F7D1A4, 0xA1,0x80, 0x8, +0 }, - { 0x077F131,0x005F771, 0x13,0x00, 0xA, +0 }, - { 0x0E7F171,0x075F171, 0x8D,0x00, 0xA, +0 }, - { 0x0276131,0x0157172, 0x5B,0x00, 0xC, +0 }, - { 0x096A101,0x0D6F261, 0x8B,0x40, 0x8, +0 }, - { 0x016A261,0x0D6A121, 0x8A,0x08, 0x8, +0 }, - { 0x0E5F431,0x075F131, 0x8B,0x00, 0xA, +0 }, - { 0x057F271,0x007E122, 0x0F,0x00, 0x6, +0 }, - { 0x114DD31,0x0265621, 0x15,0x00, 0x8, +0 }, - { 0x113DD31,0x00666E1, 0x16,0x00, 0x8, +0 }, - { 0x116D171,0x0066131, 0x49,0x00, 0x8, +0 }, - { 0x11471A1,0x0057263, 0x4D,0x80, 0x2, +0 }, - { 0x124F1F1,0x0156FE1, 0x40,0x00, 0x2, +0 }, - { 0x176F502,0x0358501, 0x1A,0x80, 0x0, +0 }, - { 0x175F422,0x0F3F301, 0x1D,0x80, 0x0, +0 }, - { 0x126B121,0x00572A2, 0x9B,0x01, 0xE, +0 }, - { 0x1037FA1,0x1053F21, 0x98,0x00, 0x0, +0 }, - { 0x03441A1,0x0035161, 0x93,0x00, 0xA, +0 }, - { 0x025C121,0x0054F61, 0x18,0x00, 0xC, +0 }, - { 0x013F431,0x0038A72, 0x5B,0x83, 0x0, +0 }, - { 0x03974A1,0x0667161, 0x90,0x00, 0x0, +0 }, - { 0x08662E1,0x0057A72, 0x57,0x00, 0xC, +0 }, - { 0x0188561,0x0088F61, 0x92,0x01, 0xC, +0 }, - { 0x01775A1,0x0078F21, 0x94,0x05, 0xC, +0 }, - { 0x0157621,0x0368261, 0x94,0x00, 0xC, +0 }, - { 0x1189E31,0x1286221, 0x43,0x00, 0x2, +0 }, - { 0x0676121,0x0067F21, 0x9B,0x00, 0x2, +0 }, - { 0x0187561,0x00874A2, 0x8A,0x06, 0x8, +0 }, - { 0x15772A1,0x0177161, 0x86,0x83, 0x0, +0 }, - { 0x0375421,0x016A621, 0x4D,0x00, 0x8, +0 }, - { 0x1079331,0x0077261, 0x8F,0x00, 0x8, +0 }, - { 0x1079331,0x0077261, 0x8E,0x00, 0x8, +0 }, - { 0x1079331,0x0078261, 0x91,0x00, 0xA, +0 }, - { 0x118AA61,0x0088F21, 0x4B,0x00, 0x8, +0 }, - { 0x1167E31,0x1078B21, 0x90,0x00, 0x6, +0 }, - { 0x0289B32,0x0187221, 0x90,0x00, 0x4, +0 }, - { 0x05C85E1,0x01765E1, 0x1F,0x00, 0x0, +0 }, - { 0x05C88E1,0x01765E1, 0x46,0x00, 0x0, +0 }, - { 0x01F75A1,0x0077521, 0x9C,0x00, 0x2, +0 }, - { 0x2FCF122,0x006FF61, 0x51,0x00, 0x0, +0 }, - { 0x1FCF121,0x207FF21, 0x0E,0x00, 0x0, +0 }, - { 0x0588622,0x01664E1, 0x46,0x80, 0x0, +0 }, - { 0x17A9221,0x02A9122, 0x8B,0x00, 0x0, +0 }, - { 0x005DFA2,0x0056F61, 0x9E,0x40, 0x2, +0 }, - { 0x0A8F121,0x007F461, 0x8F,0x80, 0xA, +0 }, - { 0x0935337,0x005A0E1, 0xA5,0x00, 0x2, +0 }, - { 0x0759121,0x0155561, 0x17,0x00, 0xC, +0 }, - { 0x0025471,0x0036A72, 0x5D,0x00, 0x0, +0 }, - { 0x0432161,0x03542A2, 0x97,0x00, 0x8, +0 }, - { 0x173A161,0x1433161, 0x1C,0x00, 0x0, +0 }, - { 0x0341121,0x0244261, 0x89,0x03, 0xA, +0 }, - { 0x14711A1,0x007CF61, 0x15,0x00, 0x0, +0 }, - { 0x085B122,0x025F261, 0x92,0x83, 0xC, +0 }, - { 0x155F101,0x0F4F242, 0x4D,0x00, 0x0, +0 }, - { 0x1511161,0x01321A3, 0x94,0x80, 0x6, +0 }, - { 0x0311161,0x0035DA1, 0x8C,0x80, 0x6, +0 }, - { 0x1F1A131,0x0F4A233, 0x0C,0x80, 0x0, +0 }, - { 0x0277C21,0x1076F22, 0x49,0x00, 0x6, +0 }, - { 0x134DD31,0x0165621, 0x85,0x00, 0xA, +0 }, - { 0x207DA20,0x0078F21, 0x04,0x81, 0x6, +0 }, - { 0x0E5F105,0x0E3C303, 0x6A,0x80, 0x6, +0 }, - { 0x0A337D5,0x03756FA, 0x95,0x40, 0x0, +0 }, - { 0x261B2B5,0x0A5F4B4, 0x5C,0x08, 0xA, +0 }, - { 0x001F6EE,0x3A54FF0, 0x00,0x00, 0xE, +0 }, - { 0x0F0F300,0x2C6F600, 0x00,0x00, 0xE, +0 }, - { 0x060F213,0x072F201, 0x4F,0x10, 0x8, +0 }, - { 0x0FFF001,0x00F9031, 0x4F,0x04, 0x6, +0 }, - { 0x021FF13,0x0F6F311, 0x96,0x80, 0xA, +0 }, - { 0x001FF11,0x0F5F311, 0x8D,0x80, 0x0, +0 }, - { 0x171F503,0x0F6F211, 0x5E,0x00, 0xE, +0 }, - { 0x031F121,0x0F8F406, 0x40,0x85, 0x0, +0 }, - { 0x09F8331,0x078F422, 0x10,0x04, 0xA, +0 }, - { 0x024D501,0x0258531, 0x0F,0x00, 0xA, +0 }, - { 0x0A7F131,0x0C6F731, 0x5A,0x80, 0xE, +0 }, - { 0x08B7261,0x01950E1, 0xA7,0x81, 0x2, +0 }, - { 0x0089782,0x00897F1, 0x0D,0x00, 0x0, +0 }, - { 0x0E1A311,0x0E4A103, 0x80,0x80, 0x6, +0 }, - { 0x003FF41,0x0F4F123, 0x23,0x00, 0x8, +0 }, - { 0x007FF01,0x007FF01, 0x00,0x00, 0x7, +0 }, - { 0x096D801,0x096D801, 0x00,0x00, 0xA, +0 }, - { 0x277C005,0x0EDB900, 0x00,0x00, 0xC, +0 }, - { 0x204FD36,0x0F8F809, 0x00,0x00, 0xC, +0 }, - { 0x0530900,0x094F700, 0x40,0x00, 0x0, +0 }, - { 0x077F005,0x0EBFA00, 0x00,0x00, 0xE, +0 }, - { 0x077F005,0x0E58A00, 0x00,0x00, 0xE, +0 }, - { 0x073F005,0x0A3FA00, 0x00,0x00, 0xE, +0 }, - { 0x042F80E,0x3E4F407, 0x08,0x51, 0xE, +0 }, - { 0x37CFD23,0x0F58401, 0x15,0x08, 0x0, +0 }, - { 0x035F203,0x4F5F401, 0x5D,0x08, 0x1, +0 }, - { 0x0F5F303,0x4F5F301, 0x7D,0x08, 0x0, +0 }, - { 0x0F5F203,0x4F5F201, 0x55,0x08, 0x1, +0 }, - { 0x0F5B111,0x0D5F211, 0x1B,0x80, 0x1, +0 }, - { 0x005F276,0x006F27A, 0x25,0x29, 0xE, +12 }, - { 0x0F2F100,0x0F7F200, 0x24,0x00, 0xE, +0 }, - { 0x185DC85,0x055F401, 0x91,0x0E, 0x3, +0 }, - { 0x0F6E181,0x0F6E798, 0x00,0x2B, 0x1, +0 }, - { 0x0F4F194,0x0A7E98A, 0x00,0x15, 0x1, +0 }, - { 0x0B3D407,0x0B4C202, 0x9A,0x00, 0xA, -12 }, - { 0x082D307,0x0E3A302, 0x9A,0x00, 0xA, -12 }, - { 0x156940A,0x132F411, 0xA7,0x05, 0x5, +0 }, - { 0x027A2A0,0x023A522, 0x85,0x9E, 0x7, +0 }, - { 0x02AA5A2,0x02AA168, 0x80,0x8F, 0x7, +0 }, - { 0x02AA623,0x00AAF61, 0x51,0x80, 0x8, -12 }, - { 0x00AAF61,0x00AAF22, 0x91,0x80, 0x9, +0 }, - { 0x1239723,0x01455B1, 0x93,0x00, 0x4, +12 }, - { 0x1069FB2,0x10B55B0, 0x09,0x22, 0x5, +0 }, - { 0x066752A,0x067702A, 0x26,0x2B, 0xE, +0 }, - { 0x013C321,0x00B7022, 0x22,0x00, 0xE, +0 }, - { 0x0F4F505,0x0F9F200, 0x29,0x1E, 0x6, +12 }, - { 0x0F1F101,0x0F7F100, 0x2F,0x00, 0x6, +0 }, - { 0x0F4F405,0x0F6F110, 0x29,0x19, 0x6, +12 }, - { 0x0F1F111,0x0F7F100, 0x31,0x00, 0x6, +0 }, - { 0x19F53C8,0x07FFAE4, 0x1C,0x03, 0x9, +0 }, - { 0x0049420,0x0A5C523, 0x2A,0x24, 0xE, +12 }, - { 0x0F9F200,0x0F8F101, 0x21,0x00, 0xE, +0 }, - { 0x02BF82A,0x02BF620, 0x24,0x2D, 0xE, +12 }, - { 0x02BF420,0x02BF420, 0x12,0x00, 0xE, +0 }, - { 0x0ABF82A,0x02BF620, 0x23,0x32, 0xE, +12 }, - { 0x0285130,0x0487130, 0x5B,0x00, 0x0, +12 }, - { 0x0487130,0x048A130, 0x1E,0x00, 0x1, +0 }, - { 0x0F7F52F,0x1C7F523, 0x14,0x33, 0x8, +12 }, - { 0x097F320,0x0F8F121, 0x20,0x00, 0x8, +0 }, - { 0x0F7F52F,0x1C7F523, 0x1B,0x30, 0x8, +12 }, - { 0x0E8F431,0x078F131, 0x15,0x00, 0xE, +0 }, - { 0x0E8F501,0x078F101, 0x15,0x00, 0xF, +0 }, - { 0x0CFF416,0x0E6F405, 0x23,0x69, 0xC, +12 }, - { 0x0D6F200,0x0E6E201, 0x14,0x00, 0xC, +0 }, - { 0x2036130,0x20434A0, 0x98,0x0B, 0xE, +0 }, - { 0x1156561,0x0073521, 0x92,0x01, 0xF, +0 }, - { 0x012D121,0x0054F61, 0x1A,0x00, 0xC, +0 }, - { 0x016C1A1,0x0044F21, 0x93,0x00, 0xD, +0 }, - { 0x0049100,0x2045240, 0x0F,0x00, 0x9, +0 }, - { 0x0157620,0x0368261, 0x94,0x00, 0xC, +12 }, - { 0x02661B1,0x0276171, 0xD3,0x80, 0xD, +0 }, - { 0x118543A,0x5177472, 0x1E,0x00, 0x4, -12 }, - { 0x04A6121,0x00B7F21, 0x9F,0x00, 0xE, +0 }, - { 0x00A65A1,0x0067F61, 0xA2,0x00, 0xF, +0 }, - { 0x0277221,0x0067F21, 0x16,0x05, 0xC, +0 }, - { 0x0866131,0x0D6C261, 0x1A,0x00, 0xE, +0 }, - { 0x0866131,0x0D6C261, 0x16,0x00, 0xF, +0 }, - { 0x0678221,0x0179222, 0x1A,0x00, 0xE, +0 }, - { 0x0678221,0x0179222, 0x15,0x0A, 0x7, +0 }, - { 0x00AD961,0x006A861, 0x28,0x1E, 0xE, +0 }, - { 0x0069A21,0x00ACF24, 0x25,0x00, 0xE, +0 }, - { 0x02A9B32,0x0177221, 0x90,0x00, 0x4, +0 }, - { 0x01CB632,0x01B66E1, 0x92,0x82, 0x5, +0 }, - { 0x00457F2,0x0375761, 0xA8,0x00, 0xE, +0 }, - { 0x2545C73,0x0776821, 0x00,0x0D, 0xE, +0 }, - { 0x00FFF61,0x00FFF22, 0x1C,0x00, 0xE, +0 }, - { 0x00FFF21,0x009CF62, 0x1C,0x00, 0xF, +0 }, - { 0x0559622,0x0187421, 0x46,0x80, 0xF, +0 }, - { 0x09041F1,0x00322B1, 0xCB,0x07, 0xB, +0 }, - { 0x0022A55,0x0F34212, 0x97,0x86, 0x7, +0 }, - { 0x1D38201,0x04442E1, 0x40,0x0D, 0x1, +0 }, - { 0x2164460,0x00450E1, 0xAB,0x01, 0xB, +0 }, - { 0x0022A55,0x0F34212, 0x97,0x86, 0x1, +0 }, - { 0x1623524,0x1023171, 0x20,0x05, 0x1, +0 }, - { 0x155F261,0x0A5F242, 0x4D,0x00, 0x0, +0 }, - { 0x2343161,0x00532A1, 0x9D,0x80, 0xD, +0 }, - { 0x011A131,0x0137D16, 0x87,0x08, 0x1, +0 }, - { 0x1127533,0x4F4F211, 0x58,0x03, 0x6, +0 }, - { 0x3F0F014,0x6F7F611, 0x40,0x43, 0xA, +0 }, - { 0x033F201,0x373F402, 0xD1,0x8A, 0x0, +0 }, - { 0x6A7F907,0x229A904, 0x1A,0x00, 0xA, -12 }, - { 0x055C902,0x024A601, 0x1A,0x05, 0xD, +0 }, - { 0x1397931,0x2099B22, 0x80,0x00, 0x6, +0 }, - { 0x2137931,0x1079B22, 0x42,0xC2, 0xA, +0 }, - { 0x119FFA1,0x0089024, 0x0C,0x11, 0x7, +0 }, - { 0x004F007,0x004F081, 0x51,0x13, 0x7, +0 }, - { 0x026EC07,0x016F801, 0x15,0x00, 0xA, +0 }, - { 0x001FF17,0x0057A12, 0x1C,0x0B, 0xB, +0 }, - { 0x4046306,0x005A902, 0xCA,0x08, 0x6, +0 }, - { 0x0045413,0x005A601, 0x51,0x08, 0xA, +0 }, - { 0x09FF831,0x004FF10, 0x8B,0x05, 0x7, +0 }, - { 0x5C8FB00,0x0B7E601, 0x00,0x00, 0x0, +0 }, - { 0x2F0F00F,0x0F8F800, 0x00,0x40, 0xE, +12 }, - { 0x001FF0E,0x20F2F01, 0x00,0x0D, 0xE, +0 }, - { 0x0534313,0x7574A1F, 0x20,0x03, 0xE, -14 }, - { 0x003FF15,0x0934511, 0x09,0x1F, 0xF, +0 }, - { 0x200C327,0x6021300, 0x80,0x12, 0xE, -23 }, - { 0x200C32B,0x6021300, 0x80,0x12, 0xE, -24 }, - { 0x060F209,0x072F214, 0x4F,0x19, 0xB, +0 }, - { 0x1111EF0,0x11311E2, 0x00,0xC5, 0xF, +0 }, - { 0x000FFEE,0x30318EE, 0x00,0x00, 0xE, +0 }, - { 0x059F802,0x01CF600, 0x11,0x00, 0xC, +0 }, - { 0x2159506,0x65AB701, 0x00,0x04, 0xE, +0 }, - { 0x10F5F81,0x0164611, 0x00,0x0A, 0x6, +0 }, - { 0x00F5F01,0x20F5F00, 0x00,0x00, 0x8, +0 }, - { 0x0D6D725,0x3A9A909, 0x1F,0x00, 0xE, -9 }, - { 0x0F0A00F,0x0F8F80F, 0x80,0x8C, 0xF, +0 }, - { 0x2FDFD00,0x6FAFA00, 0x00,0x00, 0xE, +0 }, - { 0x4F1F103,0x6FAFA07, 0x00,0x00, 0x8, +0 }, - { 0x0F0F007,0x2F6F60F, 0x27,0x00, 0x0, +21 }, - { 0x0F7B710,0x005F011, 0x42,0x00, 0x8, +0 }, - { 0x6EF8801,0x608B502, 0x0D,0x00, 0x0, +0 }, - { 0x0F1F10F,0x007840F, 0x00,0x08, 0xC, +12 }, - { 0x6EF8800,0x608F502, 0x13,0x00, 0x0, +8 }, - { 0x0F1D101,0x0078400, 0x00,0x00, 0xE, +1 }, - { 0x254F307,0x307F905, 0x04,0x08, 0x6, -5 }, - { 0x254F307,0x207F905, 0x04,0x08, 0x8, +0 }, - { 0x254D307,0x3288905, 0x04,0x03, 0xA, -5 }, - { 0x2F2E327,0x3F5C525, 0x04,0x08, 0xA, -5 }, - { 0x2F2F326,0x2F5C525, 0x04,0x08, 0x8, +0 }, - { 0x292F108,0x354F201, 0x00,0x08, 0x8, +12 }, - { 0x283E108,0x334D700, 0x00,0x08, 0x8, +12 }, - { 0x283E109,0x334D500, 0x00,0x08, 0x8, +11 }, - { 0x2E1F119,0x3F3F11B, 0x04,0x08, 0x8, +0 }, - { 0x251F206,0x263C504, 0x04,0x09, 0xA, +0 }, - { 0x241F287,0x353B502, 0x05,0x09, 0xA, +1 }, - { 0x292F108,0x354F201, 0x00,0x03, 0x8, +12 }, - { 0x456FB02,0x017F700, 0x81,0x00, 0xC, +12 }, - { 0x556FA01,0x117F701, 0x00,0x0D, 0xA, +10 }, - { 0x556FB02,0x117F701, 0x81,0x0D, 0xA, +10 }, - { 0x0F00000,0x0F00000, 0x3F,0x3F, 0xC, +0 }, - { 0x000F020,0x40A8A00, 0x0A,0x00, 0xE, +0 }, - { 0x70F5F20,0x70F4F00, 0x00,0x00, 0x2, -12 }, - { 0x0D1F815,0x078F512, 0x44,0x00, 0x8, +12 }, - { 0x2D1F213,0x098F614, 0x9D,0x00, 0x0, +0 }, - { 0x2D1F213,0x098F614, 0x9D,0x21, 0x0, -2 }, - { 0x0985900,0x039870F, 0x07,0x00, 0x8, +13 }, - { 0x2F3F307,0x09C9B0F, 0x1D,0x00, 0x0, +13 }, - { 0x09C4B00,0x43A6705, 0x21,0x00, 0xC, +13 }, - { 0x0F7F907,0x2987805, 0x1C,0x00, 0x0, +13 }, - { 0x3F0E00A,0x0F7F21F, 0x7C,0x40, 0x8, +0 }, - { 0x3E0F50A,0x0FAF31F, 0x7C,0x40, 0x9, +0 }, - { 0x227A305,0x36A560A, 0x87,0x08, 0xE, +12 }, - { 0x247C345,0x3697809, 0x87,0x08, 0xE, +12 }, - { 0x037A309,0x06DF904, 0x11,0x00, 0xE, +0 }, - { 0x1F5F213,0x0F5F111, 0xC6,0x0A, 0x0, +0 }, - { 0x019F603,0x0F4F212, 0x30,0x10, 0xF, +0 }, - { 0x1069FB2,0x10F94B0, 0xC0,0x86, 0x9, +0 }, - { 0x1069FB2,0x10F94B0, 0xC0,0x80, 0x9, +0 }, - { 0x1F69182,0x1F69180, 0xC0,0x86, 0x9, +0 }, - { 0x00BF224,0x00B5231, 0x4F,0x1B, 0xE, +0 }, - { 0x021FE13,0x094F231, 0x96,0x80, 0xA, +0 }, - { 0x153F201,0x174F511, 0x4D,0x00, 0x8, +0 }, - { 0x0199421,0x0099428, 0x01,0x09, 0x6, +0 }, - { 0x0199421,0x0099428, 0x01,0x13, 0x6, +0 }, - { 0x06FFA24,0x0F891C2, 0x8A,0x03, 0x8, +0 }, - { 0x0CFF121,0x048F621, 0x1A,0x00, 0xA, +0 }, - { 0x022B701,0x037C422, 0x1D,0x00, 0xE, +0 }, - { 0x0EFF231,0x068F122, 0x1E,0x00, 0xE, +0 }, - { 0x025F911,0x034F131, 0x05,0x09, 0xA, +0 }, - { 0x019D531,0x01B6172, 0x8A,0x00, 0xC, +0 }, - { 0x255A511,0x1B3F511, 0x96,0x80, 0xC, +0 }, - { 0x0058001,0x006F011, 0x9C,0x80, 0x0, +0 }, - { 0x243A5C0,0x123D400, 0x0D,0x00, 0x0, +0 }, - { 0x1E3C221,0x3166120, 0x58,0x00, 0x0, +0 }, - { 0x081B021,0x12CB322, 0x16,0x00, 0xC, +0 }, - { 0x0AE7121,0x09E8121, 0x1D,0x00, 0xE, +0 }, - { 0x00B4131,0x01B92F1, 0x1C,0x00, 0xA, +0 }, - { 0x0AE71E1,0x09E81E2, 0x15,0x03, 0xE, +0 }, - { 0x0537121,0x04C5232, 0x4F,0x00, 0xA, +0 }, - { 0x0687120,0x05E5231, 0x4E,0x00, 0xA, +0 }, - { 0x0219B32,0x0077221, 0xC0,0x00, 0x4, +0 }, - { 0x08F6EE1,0x02A6562, 0xEC,0x00, 0xE, +0 }, - { 0x0C70CF5,0x0A560F2, 0x9A,0x80, 0xD, +0 }, - { 0x203FF22,0x00FFF21, 0x59,0x08, 0x0, +0 }, - { 0x00E7121,0x00E8121, 0x1D,0x00, 0xE, +0 }, - { 0x0FFF100,0x0FF5011, 0x0D,0x80, 0x6, +0 }, - { 0x0EF1100,0x00FB031, 0x10,0x80, 0xA, +0 }, - { 0x173F3A4,0x0238161, 0x4C,0x10, 0x4, +0 }, - { 0x200F601,0x3061FDD, 0x00,0x00, 0xC, +0 }, - { 0x22BFB03,0x00BF50F, 0x00,0x00, 0xF, +0 }, - { 0x07CFA01,0x004F200, 0x00,0x00, 0x0, +0 }, - { 0x000F601,0x3029FDD, 0x0C,0x00, 0xC, +0 }, - { 0x002F60C,0x213CB12, 0x00,0x00, 0xA, +0 }, - { 0x342F80E,0x3E4F407, 0x06,0x44, 0xE, +0 }, - { 0x200F601,0x3029FDD, 0x00,0x00, 0xC, +0 }, - { 0x276F502,0x0D6F609, 0x1B,0x00, 0x4, +0 }, - { 0x000F600,0x24393DF, 0x09,0x00, 0xE, +0 }, - { 0x0BFFA02,0x097C804, 0x00,0x00, 0xB, +0 }, - { 0x306FF80,0x0164F11, 0x00,0x00, 0xE, +0 }, - { 0x332F985,0x0A5D684, 0x05,0x40, 0xE, +0 }, - { 0x0FFF00B,0x2FF220C, 0x00,0x00, 0xE, +0 }, - { 0x223A133,0x4F4F131, 0xD6,0x09, 0x6, +0 }, - { 0x023B131,0x0F4F131, 0xD3,0x0A, 0x6, +0 }, - { 0x433F133,0x0F4F131, 0xD6,0x09, 0x8, +0 }, - { 0x2F3F132,0x4F6F131, 0xD3,0x0A, 0x6, +0 }, - { 0x2A4A112,0x4B5F211, 0xD2,0x05, 0x4, +0 }, - { 0x4A49112,0x2B5D110, 0xCF,0x05, 0x4, +0 }, - { 0x073FA31,0x4F4D111, 0x8E,0x08, 0xA, +0 }, - { 0x473FA32,0x4F4D111, 0x8C,0x09, 0xA, +0 }, - { 0x2E7F21A,0x0B8F201, 0x6F,0x48, 0xC, +0 }, - { 0x0E5B111,0x0B8F211, 0x9C,0x80, 0x0, +0 }, - { 0x2C7F436,0x0D7F231, 0x9D,0x0A, 0xE, +0 }, - { 0x0C7F021,0x0F8F111, 0x1E,0x0F, 0x0, +0 }, - { 0x523F134,0x4F5D111, 0x51,0x0D, 0x6, +0 }, - { 0x203FC32,0x1F7D111, 0x4B,0x0D, 0x6, +0 }, - { 0x559F101,0x0F7F111, 0x44,0x08, 0x6, +0 }, - { 0x0F00000,0x4F7F111, 0x3F,0x0D, 0x9, +0 }, - { 0x087F607,0x0E4F231, 0x54,0x08, 0x9, +0 }, - { 0x587F617,0x0E4F231, 0x54,0x08, 0x9, +0 }, - { 0x0A5F33F,0x0F2C312, 0xA1,0x06, 0xC, -12 }, - { 0x0A5F43F,0x0F2F392, 0xD5,0x07, 0x0, -12 }, - { 0x462A417,0x0027A11, 0x9C,0x08, 0x9, +0 }, - { 0x062A416,0x0028811, 0x99,0x07, 0x9, +0 }, - { 0x0F6F2B2,0x0F6F281, 0xE8,0x05, 0xF, +0 }, - { 0x0F6F2A4,0x007F08F, 0x45,0x05, 0x1, +0 }, - { 0x0F6F618,0x0F7E500, 0x63,0x80, 0x6, +12 }, - { 0x5A6F40E,0x007D804, 0x5B,0x80, 0x0, +0 }, - { 0x2F6F71A,0x0F5F413, 0x1F,0x03, 0x4, -19 }, - { 0x0F00000,0x1F7F715, 0x3F,0x00, 0x1, +2 }, - { 0x082F307,0x0E3F302, 0x97,0x8A, 0x6, -12 }, - { 0x082D307,0x0E3F302, 0x97,0x8A, 0x6, -12 }, - { 0x4109131,0x3B5F322, 0x52,0x88, 0x8, +0 }, - { 0x118B1A4,0x11BD161, 0x88,0x80, 0x7, +0 }, - { 0x108B1A3,0x11BD161, 0x88,0x88, 0x5, +12 }, - { 0x0F8F032,0x0F8F001, 0x65,0x07, 0xE, -12 }, - { 0x0F8F024,0x008F009, 0x43,0x07, 0x1, -12 }, - { 0x018AA70,0x0088AB1, 0x44,0x10, 0x4, +0 }, - { 0x118AA71,0x0088AB2, 0x4B,0x10, 0x4, +0 }, - { 0x1043031,0x1145432, 0x92,0x80, 0xD, +0 }, - { 0x1045033,0x1145430, 0x92,0x80, 0xB, +0 }, - { 0x1178001,0x1176082, 0x5D,0x83, 0x4, +0 }, - { 0x4178000,0x1176081, 0x54,0x83, 0x6, +0 }, - { 0x025A721,0x1264132, 0x4D,0x08, 0x6, +0 }, - { 0x1258621,0x1264633, 0x4F,0x08, 0x6, +0 }, - { 0x4FAF022,0x01A6221, 0x96,0x08, 0xC, +0 }, - { 0x105FF2C,0x01A6222, 0x9D,0x12, 0x8, +0 }, - { 0x107F021,0x2055232, 0x92,0x07, 0x8, +0 }, - { 0x107F021,0x2055232, 0x92,0x07, 0x0, +0 }, - { 0x574A613,0x4B8F401, 0x9D,0x0D, 0x6, +0 }, - { 0x2249134,0x2B8D301, 0x61,0x05, 0xA, -12 }, - { 0x5E5F133,0x1E4F211, 0x99,0x07, 0x6, +0 }, - { 0x1E5F133,0x5E4F211, 0x9E,0x0B, 0x0, +0 }, - { 0x21FF021,0x088F211, 0xA5,0x80, 0xA, +12 }, - { 0x11FF023,0x088F211, 0x5E,0x80, 0xA, +0 }, - { 0x132ED11,0x3E7D211, 0x87,0x0A, 0x6, +0 }, - { 0x332ED12,0x1E7D211, 0x80,0x45, 0x2, +0 }, - { 0x0F4E431,0x0F5F331, 0x97,0x86, 0x8, +0 }, - { 0x3F0F701,0x1F8F900, 0x00,0x0D, 0xE, +0 }, - { 0x0F77111,0x3F7F011, 0x48,0x87, 0xA, +0 }, - { 0x0F78140,0x3F7F040, 0x86,0x00, 0xC, +14 }, - { 0x0F78140,0x3F7F040, 0x07,0x40, 0xC, +12 }, - { 0x0F78100,0x3F7F000, 0x86,0x03, 0xC, +14 }, - { 0x6F78AE8,0x649B1F4, 0x03,0x0A, 0xA, +0 }, - { 0x6F78AE8,0x649B1F4, 0x43,0x4B, 0xA, +0 }, - { 0x0609533,0x4E5C131, 0x63,0x05, 0x0, +0 }, - { 0x0608521,0x0E4A131, 0xD4,0x05, 0x4, +0 }, - { 0x0F9F030,0x0F8F131, 0x9D,0x05, 0xA, +12 }, - { 0x7F0F017,0x7F9B700, 0x00,0x0F, 0xA, +12 }, - { 0x026AA21,0x0D7F132, 0xCF,0x84, 0xA, +0 }, - { 0x5F9F40B,0x445F711, 0x4B,0x4D, 0x2, +0 }, - { 0x010D331,0x0B68112, 0x9A,0x40, 0x6, +0 }, - { 0x0404121,0x0B56113, 0x9B,0x4C, 0x8, +0 }, - { 0x2E69419,0x5B6B311, 0x5E,0x08, 0x0, +0 }, - { 0x077FA21,0x0F79321, 0x07,0x0D, 0x0, +0 }, - { 0x2E69515,0x1B6B211, 0x17,0x08, 0x0, +0 }, - { 0x077FA21,0x06AC332, 0x07,0x0D, 0x0, +0 }, - { 0x0F5F430,0x0F6F330, 0x0E,0x00, 0xA, +12 }, - { 0x139A331,0x0F8F133, 0x93,0x08, 0xC, +0 }, - { 0x139A331,0x0F8F133, 0x93,0x08, 0xA, +0 }, - { 0x2257020,0x4266161, 0x95,0x05, 0xA, +0 }, - { 0x1257021,0x0266141, 0x99,0x07, 0x8, +0 }, - { 0x2426070,0x2154130, 0x4F,0x00, 0xA, +0 }, - { 0x214D070,0x1175222, 0x0F,0x88, 0x2, +0 }, - { 0x524D071,0x5075222, 0x13,0x88, 0x0, +0 }, - { 0x521F571,0x4166022, 0x90,0x09, 0x6, +0 }, - { 0x52151F0,0x4156021, 0x97,0x0D, 0x4, +12 }, - { 0x223F8F2,0x4055421, 0x99,0x8A, 0xC, +0 }, - { 0x4A35211,0x0E4C411, 0x9C,0x08, 0x6, +0 }, - { 0x2C79613,0x4E45411, 0xD7,0x08, 0xA, +0 }, - { 0x023E133,0x0F2F131, 0xA2,0x09, 0xE, +0 }, - { 0x023F132,0x0F2F131, 0x24,0x0A, 0xE, +0 }, - { 0x4C3C404,0x4B4B519, 0x21,0x05, 0x0, -31 }, - { 0x17A9913,0x0B4F213, 0x0F,0x00, 0x0, -19 }, - { 0x223F832,0x4056421, 0x99,0x8A, 0xC, +0 }, - { 0x433CB32,0x5057561, 0x9B,0x8A, 0xA, +0 }, - { 0x1029033,0x4044561, 0x5B,0x85, 0x4, +0 }, - { 0x4109033,0x2044520, 0xA8,0x85, 0xA, +0 }, - { 0x2034170,0x0043671, 0x0B,0x20, 0xB, +0 }, - { 0x1024171,0x0043671, 0x0C,0x17, 0xB, +0 }, - { 0x005A061,0x0F55022, 0x69,0x06, 0x0, +0 }, - { 0x0008060,0x0F55021, 0x33,0x08, 0x0, +12 }, - { 0x239B420,0x0076121, 0x50,0x05, 0x6, +0 }, - { 0x139B462,0x00D7161, 0x91,0x14, 0x0, +0 }, - { 0x05470F1,0x07440B1, 0x69,0x80, 0x0, +0 }, - { 0x054A0F1,0x07430B1, 0x5E,0x80, 0x0, +0 }, - { 0x2436110,0x714D211, 0xCD,0x00, 0xA, +0 }, - { 0x5436192,0x745F312, 0xCB,0x00, 0xA, +0 }, - { 0x0147421,0x0077521, 0x94,0x04, 0xE, +0 }, - { 0x0178461,0x008AF28, 0x10,0xA6, 0xC, +0 }, - { 0x0235271,0x0198161, 0x1E,0x08, 0xE, +0 }, - { 0x0235361,0x0196161, 0x1D,0x03, 0xE, +0 }, - { 0x0155331,0x0378261, 0x94,0x00, 0xA, +0 }, - { 0x0365121,0x0257221, 0x1E,0x08, 0x0, +0 }, - { 0x2844521,0x20592A0, 0x23,0x03, 0x0, +0 }, - { 0x0578321,0x117C021, 0x19,0x03, 0xC, +0 }, - { 0x2E77530,0x307F520, 0x10,0x08, 0x8, +0 }, - { 0x036F121,0x337F121, 0x95,0x08, 0xE, +0 }, - { 0x0368121,0x037F121, 0x95,0x08, 0xE, +0 }, - { 0x0A66121,0x0976121, 0x9B,0x08, 0xE, +0 }, - { 0x5237731,0x1F65012, 0x4B,0x00, 0xA, +0 }, - { 0x0137732,0x0F65011, 0xC7,0x0A, 0xA, +0 }, - { 0x1067021,0x1165231, 0x46,0x00, 0x6, +0 }, - { 0x00B9820,0x10B5330, 0x8E,0x00, 0xA, +12 }, - { 0x10B8020,0x11B6330, 0x87,0x00, 0x8, +12 }, - { 0x1235031,0x0077C24, 0xC0,0x08, 0x2, +0 }, - { 0x045D933,0x4076C35, 0xD0,0x26, 0x4, +0 }, - { 0x6077831,0x2076331, 0x1E,0x00, 0x6, +0 }, - { 0x0199031,0x01B6134, 0x95,0x80, 0xA, +0 }, - { 0x0177532,0x0174531, 0x93,0x03, 0xC, +0 }, - { 0x0277530,0x0174536, 0x14,0x9C, 0xE, +12 }, - { 0x08B8EF1,0x0285571, 0xC0,0x00, 0xE, +0 }, - { 0x08860A1,0x01A6561, 0x5C,0x00, 0x8, +0 }, - { 0x2176522,0x0277421, 0x5A,0x00, 0x6, +0 }, - { 0x1267532,0x0166531, 0x8D,0x05, 0x4, +0 }, - { 0x2F0F011,0x0987801, 0x03,0x17, 0xA, +0 }, - { 0x5543737,0x25D67A1, 0x28,0x00, 0x8, +0 }, - { 0x6243371,0x46D6331, 0x20,0x00, 0x6, +0 }, - { 0x00F31D1,0x0053271, 0xC7,0x00, 0xB, +0 }, - { 0x00581A2,0x0295231, 0x37,0x00, 0x6, +0 }, - { 0x20FFF22,0x60FFF21, 0x7F,0x12, 0x5, +0 }, - { 0x30FFF22,0x60FFF21, 0xBF,0x12, 0x5, +0 }, - { 0x39BC120,0x368C030, 0xBF,0x06, 0x0, +0 }, - { 0x3AB8120,0x308F130, 0x9E,0x06, 0x0, +0 }, - { 0x13357F1,0x00767E1, 0x21,0x00, 0xA, +0 }, - { 0x43357F2,0x00767E1, 0x28,0x00, 0x0, +0 }, - { 0x2444830,0x21D67A1, 0x22,0x00, 0x8, +0 }, - { 0x534B821,0x02D87A1, 0x1F,0x00, 0xA, +0 }, - { 0x32B7420,0x12BF134, 0x46,0x00, 0x8, +0 }, - { 0x5029072,0x0069061, 0x96,0x0C, 0x8, +0 }, - { 0x1019031,0x0069061, 0x1A,0x0C, 0x6, +0 }, - { 0x245C224,0x2550133, 0x81,0x80, 0x9, -36 }, - { 0x2459224,0x2556133, 0x81,0x80, 0x9, -36 }, - { 0x132ED10,0x3E7D010, 0x87,0x0D, 0x6, +12 }, - { 0x132ED30,0x3E7D010, 0x87,0x12, 0x6, +12 }, - { 0x073513A,0x013C121, 0xA4,0x0A, 0x2, +0 }, - { 0x273F325,0x0228231, 0x20,0x0A, 0x4, +0 }, - { 0x0031131,0x0054361, 0xD4,0x08, 0x4, +0 }, - { 0x20311B0,0x00543E1, 0xD9,0x08, 0x4, +0 }, - { 0x245A121,0x126A121, 0x98,0x05, 0xC, +0 }, - { 0x255A421,0x126A121, 0x98,0x05, 0xC, +0 }, - { 0x50470E1,0x1148161, 0x59,0x03, 0x2, +0 }, - { 0x10460E2,0x4148161, 0x5F,0x83, 0x6, +0 }, - { 0x0336186,0x05452E1, 0xA7,0x00, 0x6, +0 }, - { 0x13351A6,0x05452E1, 0xA7,0x00, 0x0, +0 }, - { 0x2529084,0x1534341, 0x9D,0x80, 0xC, +0 }, - { 0x2529082,0x0534341, 0x9D,0x80, 0xC, +0 }, - { 0x2345231,0x2135120, 0x98,0x00, 0x6, +0 }, - { 0x410F422,0x1233231, 0x20,0x00, 0xA, +0 }, - { 0x1522162,0x1633021, 0x99,0x80, 0x8, +0 }, - { 0x1522161,0x1633021, 0x99,0x80, 0x8, +0 }, - { 0x157B261,0x019F806, 0x04,0x40, 0x7, +0 }, - { 0x157B261,0x0145114, 0x04,0x40, 0x7, +0 }, - { 0x2322122,0x0133221, 0x8C,0x92, 0x6, +0 }, - { 0x4033121,0x0132122, 0x93,0x48, 0x4, +7 }, - { 0x074F624,0x0249303, 0xC0,0x0D, 0x0, +0 }, - { 0x3D2C092,0x1D2D131, 0x8E,0x09, 0x0, +0 }, - { 0x0D2D091,0x1D23132, 0x8E,0x09, 0x0, +0 }, - { 0x5F29054,0x0F2C241, 0x99,0x06, 0xE, +0 }, - { 0x1F19011,0x0F2C241, 0x1A,0x06, 0x6, +0 }, - { 0x05233E1,0x0131371, 0x1A,0x88, 0x7, +0 }, - { 0x5522363,0x0131331, 0x1A,0x8D, 0x7, +0 }, - { 0x0B67061,0x0928032, 0x9C,0x11, 0xA, +0 }, - { 0x0057F21,0x0038F62, 0x9C,0x11, 0xA, +0 }, - { 0x0625331,0x1648221, 0x94,0x06, 0xE, +0 }, - { 0x2645321,0x2445521, 0x15,0x0D, 0xA, +0 }, - { 0x0B37121,0x5F48221, 0x16,0x08, 0x2, +0 }, - { 0x2B37102,0x5F48221, 0x90,0x08, 0x6, +0 }, - { 0x5E2F321,0x6E4F523, 0x1B,0x08, 0x8, +0 }, - { 0x455F71C,0x0D68501, 0xA3,0x08, 0x6, +0 }, - { 0x055F718,0x0D6E501, 0x23,0x08, 0x0, +0 }, - { 0x302A130,0x0266221, 0x1E,0x00, 0xE, +0 }, - { 0x0136031,0x1169131, 0x12,0x80, 0x8, +0 }, - { 0x032A115,0x172B212, 0x00,0x80, 0x1, +5 }, - { 0x001E79A,0x067961C, 0x81,0x00, 0x4, +0 }, - { 0x4D1F214,0x098F715, 0xA0,0x00, 0xC, +0 }, - { 0x008F312,0x004F600, 0x08,0xC8, 0x4, -12 }, - { 0x27CFA01,0x004F200, 0x08,0x08, 0x0, +0 }, - { 0x518F890,0x0E7F310, 0x00,0x00, 0x8, -12 }, - { 0x250F610,0x0E7F510, 0x00,0xC8, 0x6, +0 }, - { 0x2114109,0x51D2101, 0x05,0x80, 0xA, +0 }, - { 0x2114108,0x31D2101, 0x05,0x80, 0xA, +12 }, - { 0x00437D2,0x0343471, 0xA1,0x07, 0xC, +0 }, - { 0x0F0F00C,0x0F66700, 0x00,0xCD, 0xE, +0 }, - { 0x003EBD7,0x06845D8, 0xD4,0x00, 0x7, +12 }, - { 0x62FDA20,0x614B009, 0x42,0x48, 0x4, -24 }, - { 0x62FDA20,0x614B009, 0x82,0x48, 0x4, -20 }, - { 0x101FE30,0x6142120, 0x00,0x00, 0xC, -36 }, - { 0x6019460,0x1142120, 0x26,0x00, 0xC, -14 }, - { 0x200832F,0x6044020, 0x80,0x00, 0xE, -36 }, - { 0x200832F,0x6044020, 0x80,0x00, 0xE, -35 }, - { 0x2305431,0x6E7F600, 0x00,0x00, 0xE, +0 }, - { 0x0F0A00F,0x0F8F80F, 0x00,0x0C, 0xE, +0 }, - { 0x559FA00,0x047F800, 0x00,0x00, 0x4, +0 }, - { 0x3F1F102,0x0078400, 0x00,0x26, 0xC, +0 }, - { 0x048FA00,0x008F900, 0x00,0x00, 0x6, +12 }, - { 0x287F702,0x678F802, 0x80,0x88, 0xE, +12 }, - { 0x2F7F602,0x0F8F802, 0x00,0x88, 0xE, +12 }, - { 0x008F700,0x007F609, 0x00,0x00, 0xD, -24 }, - { 0x0F1F105,0x0078407, 0x00,0x08, 0xC, -12 }, - { 0x05476C1,0x30892C5, 0x80,0x08, 0x0, +0 }, - { 0x05477C1,0x30892C5, 0x00,0x08, 0xA, -2 }, - { 0x007C604,0x007C604, 0x08,0x08, 0x1, +0 }, - { 0x201F302,0x057AB09, 0x03,0x07, 0xC, +12 }, - { 0x058F30B,0x308F90D, 0x04,0x08, 0x6, +0 }, - { 0x255F308,0x308F909, 0x04,0x08, 0x8, +4 }, - { 0x006C604,0x007C604, 0x08,0x08, 0x1, +0 }, - { 0x201F312,0x057AB09, 0x03,0x07, 0xC, +12 }, - { 0x0015500,0x007C716, 0x0C,0x00, 0x0, +0 }, - { 0x201F312,0x057AB09, 0x00,0x07, 0xC, +12 }, - { 0x0015500,0x007C718, 0x0C,0x00, 0x0, +0 }, - { 0x001F312,0x047BB05, 0x03,0x07, 0xC, +12 }, - { 0x0015500,0x007C71B, 0x0C,0x00, 0x0, +0 }, - { 0x201F312,0x047BB09, 0x03,0x07, 0xC, +12 }, - { 0x291F108,0x333F401, 0x00,0x00, 0x8, +12 }, - { 0x291F108,0x333F501, 0x00,0x00, 0x8, +12 }, - { 0x0015500,0x007C71F, 0x0C,0x00, 0x0, +0 }, - { 0x300F50C,0x605FE05, 0x07,0x8A, 0x0, +12 }, - { 0x310F508,0x604FE05, 0x86,0x8A, 0x0, +11 }, - { 0x2E1F11E,0x3F3F318, 0x04,0x00, 0x8, +0 }, - { 0x2777603,0x3679601, 0x87,0x08, 0x6, +12 }, - { 0x277C643,0x3679601, 0x87,0x08, 0xE, +12 }, - { 0x366F905,0x099F701, 0x00,0x00, 0xC, +12 }, - { 0x291F108,0x334F401, 0x00,0x00, 0x8, +12 }, - { 0x431A000,0x085B41A, 0x81,0x05, 0xA, +12 }, - { 0x459F640,0x185B418, 0x00,0x20, 0xB, +12 }, - { 0x300F50C,0x605FE04, 0x07,0x8A, 0x0, +12 }, - { 0x2A8F9E3,0x0779643, 0x1E,0x08, 0x2, +6 }, - { 0x0A5F7E8,0x0D89949, 0xDE,0x00, 0x0, +0 }, - { 0x2A8F9E3,0x0779643, 0x1E,0x00, 0xE, +12 }, - { 0x0A5F7E9,0x0D8994A, 0xDE,0x08, 0xC, +0 }, - { 0x0A8F7E9,0x5D8990A, 0x08,0x00, 0xC, +0 }, - { 0x0A5F7E9,0x0D8994A, 0x29,0x08, 0xC, +10 }, - { 0x2A8F9E2,0x0779642, 0x1E,0x00, 0xE, +8 }, - { 0x0A5F7E9,0x5D8994A, 0x08,0x00, 0xC, +0 }, - { 0x367FE06,0x668F701, 0x09,0x08, 0x8, +12 }, - { 0x367FD10,0x098F901, 0x00,0x0D, 0x8, +6 }, - { 0x367FE05,0x678F701, 0x09,0x08, 0x8, +12 }, - { 0x367FD10,0x078F901, 0x00,0x0D, 0x8, +11 }, - { 0x098600F,0x3FC8590, 0x08,0xC0, 0xE, +12 }, - { 0x009F020,0x27DA788, 0x25,0x00, 0x0, +12 }, - { 0x00FC020,0x22DA388, 0x25,0x00, 0xA, +12 }, - { 0x160F2C6,0x07AF4D4, 0x4F,0x80, 0x8, +12 }, - { 0x160F286,0x0B7F294, 0x4F,0x80, 0x8, +12 }, - { 0x4755406,0x3667601, 0x87,0x08, 0x6, +12 }, - { 0x275A346,0x3667601, 0x87,0x08, 0x6, +12 }, - { 0x6E4840B,0x6E4B409, 0x12,0x09, 0x1, +0 }, - { 0x6E4440B,0x6E46407, 0x21,0x13, 0x1, +3 }, - { 0x6F9A902,0x2F7C801, 0x00,0x40, 0x8, +0 }, - { 0x4F9F901,0x4F7C713, 0x1F,0x48, 0x0, -7 }, - { 0x4B7C720,0x1F3F300, 0x0B,0x00, 0x0, +0 }, - { 0x01BF4E0,0x018F3E0, 0x8D,0x23, 0xA, +12 }, - { 0x00FFFE4,0x00FFFE1, 0x8A,0xA9, 0x1, +0 }, - { 0x031FF10,0x004FF01, 0x07,0x25, 0xA, +12 }, - { 0x050F101,0x07CE401, 0x4F,0x22, 0x6, +12 }, - { 0x00361F0,0x02CE371, 0x86,0x1F, 0xA, +12 }, - { 0x00361B0,0x02CE3F3, 0x86,0x1F, 0x8, +12 }, - { 0x00331F2,0x02C53F4, 0x4B,0x21, 0x4, -12 }, - { 0x08FAEE2,0x02A8561, 0x11,0x23, 0xE, +12 }, - { 0x019D530,0x01B6171, 0x15,0x9B, 0xC, +12 }, - { 0x00B4131,0x03B9261, 0x1C,0x99, 0xE, +0 }, - { 0x01F61B1,0x01B9261, 0x1C,0x9D, 0xE, +0 }, - { 0x04C6321,0x00FC521, 0x18,0xA0, 0xC, +0 }, - { 0x060F207,0x072F212, 0x4F,0x21, 0x8, +0 }, - { 0x053F401,0x053F308, 0x40,0x64, 0x0, -6 }, - { 0x0FFF832,0x07FF511, 0x44,0x1F, 0xE, -18 }, - { 0x04CA700,0x04FC600, 0x00,0x22, 0x0, +12 }, - { 0x0F5F062,0x0F8F60E, 0x00,0x1F, 0xE, +12 }, - { 0x005FC4E,0x0F8F90C, 0x00,0x24, 0x0, +12 }, - { 0x005756E,0x0F8F601, 0x00,0x22, 0xE, +12 }, - { 0x011F131,0x043D418, 0x90,0xA5, 0x8, -12 }, - { 0x08FAEE0,0x00A8561, 0xE8,0x21, 0xE, +12 }, - { 0x02990F2,0x02C61F2, 0x16,0x22, 0xA, -12 }, - { 0x02BF4E0,0x048F3E0, 0x8D,0x1F, 0x8, +12 }, - { 0x023F331,0x09C4333, 0x45,0x25, 0x6, -12 }, - { 0x04CA700,0x04FC600, 0x00,0x2B, 0x0, -12 }, - { 0x0B5F704,0x002010C, 0x00,0x00, 0x8, +21 }, - { 0x050F113,0x076D201, 0x50,0x40, 0x6, +0 }, - { 0x050F113,0x076D201, 0x50,0x00, 0x6, +0 }, - { 0x054F113,0x076D201, 0x53,0x00, 0x6, +0 }, - { 0x054F113,0x076D201, 0x50,0x00, 0x6, +0 }, - { 0x0FFF92C,0x0FFC1A1, 0xD4,0x00, 0x0, +0 }, - { 0x050F101,0x07CD301, 0x4F,0x00, 0x6, +0 }, - { 0x030A131,0x074C216, 0x81,0x80, 0x8, +0 }, - { 0x0FFF201,0x0F8F101, 0x11,0x00, 0xA, +0 }, - { 0x011FAD6,0x0FCF161, 0x4D,0x00, 0x8, +0 }, - { 0x011FA16,0x0F1F1E1, 0x4D,0x00, 0x8, +0 }, - { 0x011FAD6,0x0F5F561, 0x4D,0x00, 0x8, +0 }, - { 0x015DA45,0x0F6F361, 0x4E,0x80, 0x0, +0 }, - { 0x0F0FE04,0x0B5F6C2, 0x00,0x00, 0xE, -12 }, - { 0x004FE11,0x0BDF211, 0x11,0x00, 0x8, +0 }, - { 0x00FFF24,0x00FFF21, 0x80,0x80, 0x1, -12 }, - { 0x0FFF92C,0x0FFC0A1, 0xD4,0x00, 0x0, -12 }, - { 0x0E5F8E2,0x00EC0E1, 0xCA,0x00, 0x8, +0 }, - { 0x0FD5524,0x02D5031, 0x54,0x00, 0xE, +0 }, - { 0x0C8F253,0x0C5F211, 0x16,0x40, 0x4, +0 }, - { 0x0C8F253,0x0C5F211, 0x20,0x00, 0x4, +0 }, - { 0x0FFF111,0x3FFF054, 0x43,0x00, 0x8, +0 }, - { 0x0FFF111,0x3FFF054, 0x43,0x40, 0x8, +0 }, - { 0x0F0F0CA,0x06859EC, 0x4E,0x00, 0xC, +0 }, - { 0x02CD321,0x02CC321, 0x15,0x80, 0xA, +0 }, - { 0x0F2D401,0x08AC421, 0x18,0x80, 0xA, +0 }, - { 0x07AB400,0x07CC301, 0x1D,0x00, 0x0, +12 }, - { 0x07E7330,0x09E8021, 0x16,0x00, 0xE, +12 }, - { 0x004FE11,0x0BDF211, 0x0A,0x00, 0x8, +0 }, - { 0x0035171,0x0175461, 0x20,0x00, 0xE, +0 }, - { 0x0035171,0x0175461, 0x1E,0x00, 0xE, +0 }, - { 0x0035171,0x0175423, 0x1C,0x00, 0xE, +0 }, - { 0x04CA800,0x04FD600, 0x0B,0x00, 0x0, +12 }, - { 0x075F502,0x0F3F201, 0x29,0x80, 0x0, +0 }, - { 0x0530900,0x094F702, 0x40,0x00, 0xE, -12 }, - { 0x01432F1,0x016F1E1, 0x18,0x00, 0x0, +0 }, - { 0x01432F1,0x01631E1, 0x18,0x00, 0x0, +0 }, - { 0x01132F1,0x014F1E1, 0x18,0x00, 0x0, +0 }, - { 0x0154011,0x03831F1, 0x92,0x00, 0x8, +0 }, - { 0x0948411,0x0F4F4E4, 0x03,0x40, 0x8, -12 }, - { 0x0577361,0x017A021, 0x19,0x00, 0xC, +0 }, - { 0x0585361,0x018A021, 0x19,0x00, 0xC, +0 }, - { 0x0565361,0x016A021, 0x19,0x00, 0xC, +0 }, - { 0x0035171,0x0675421, 0x1C,0x00, 0xE, +0 }, - { 0x0576361,0x017A021, 0x1C,0x00, 0xC, +0 }, - { 0x0176E70,0x00E6B22, 0x8D,0x00, 0x2, +12 }, - { 0x00E7170,0x00E7823, 0x16,0x07, 0xE, +12 }, - { 0x0178731,0x00E8B22, 0x45,0x00, 0x2, +0 }, - { 0x0195132,0x0396061, 0x9A,0x80, 0xC, +0 }, - { 0x02495A2,0x02A60E2, 0x1D,0x80, 0x2, -12 }, - { 0x0AFD6A1,0x02A60E2, 0x13,0x80, 0x2, +0 }, - { 0x02498A2,0x02A60E2, 0x1D,0x80, 0x2, -12 }, - { 0x04FD6A1,0x02A60E2, 0x13,0x80, 0x2, +0 }, - { 0x0BF7721,0x02A60A1, 0x19,0x80, 0x6, +0 }, - { 0x0E5F8E2,0x00E70E1, 0xCA,0x00, 0x8, +0 }, - { 0x30FF221,0x018F221, 0x1D,0x00, 0x0, +0 }, - { 0x0FFF041,0x0FFF001, 0x11,0x00, 0xA, +0 }, - { 0x0BDF101,0x39FF102, 0xCE,0x80, 0x0, +0 }, - { 0x0FFF141,0x0FFF001, 0x0E,0x09, 0xA, +0 }, - { 0x0867261,0x01450E1, 0xA7,0x80, 0x2, +0 }, - { 0x049F430,0x033F410, 0x90,0x00, 0xC, +12 }, - { 0x0F0F0CA,0x06459CC, 0x4E,0x00, 0xC, +0 }, - { 0x0152011,0x0F831F1, 0x43,0x00, 0x8, +0 }, - { 0x0152011,0x0F831F1, 0x92,0x00, 0x8, +0 }, - { 0x010FF34,0x004FF03, 0x91,0x00, 0xA, +0 }, - { 0x002A4B0,0x04240D7, 0x84,0x80, 0x0, +0 }, - { 0x032B6B3,0x031D1B0, 0x4A,0x00, 0xE, +12 }, - { 0x0978211,0x0F3F0E4, 0x03,0x40, 0x8, +0 }, - { 0x002A4B4,0x04240D7, 0x87,0x80, 0x6, +0 }, - { 0x0F0A133,0x0F37115, 0x85,0x80, 0x8, +0 }, - { 0x053F101,0x074F211, 0x4F,0x00, 0x6, +0 }, - { 0x0E8F80B,0x0F4C301, 0xCA,0x00, 0x0, +0 }, - { 0x0FFF001,0x0F8F001, 0x11,0x00, 0xA, +0 }, - { 0x0EE7130,0x01E8823, 0x16,0x00, 0xE, +0 }, - { 0x025DA09,0x015F101, 0x4E,0x00, 0xA, +0 }, - { 0x0FFF832,0x07FF511, 0x44,0x00, 0xE, +12 }, - { 0x0F33900,0x005FF00, 0x3F,0x00, 0x0, +12 }, - { 0x0FFF832,0x0F8F501, 0x44,0x00, 0xE, +0 }, - { 0x0F0F007,0x0DC5C00, 0x00,0x00, 0xE, +12 }, - { 0x002A4B0,0x04240D7, 0xC4,0x89, 0x0, +0 }, - { 0x1111EF0,0x11121E2, 0x00,0xC0, 0x8, -12 }, - { 0x0EFE800,0x0FFA500, 0x0D,0x00, 0x6, +12 }, - { 0x077F005,0x0EDFA00, 0x00,0x00, 0xE, +12 }, - { 0x0F0F006,0x0F7F700, 0x00,0x00, 0xE, +12 }, - { 0x1FFF005,0x0B9F800, 0x00,0x00, 0xE, +0 }, - { 0x0F33900,0x005FF00, 0x3F,0x00, 0x0, +0 }, - { 0x077F005,0x0FBFA00, 0x00,0x00, 0xE, +0 }, - { 0x077F005,0x0EAFA00, 0x00,0x00, 0xE, +12 }, - { 0x0FFF005,0x0FFF600, 0x00,0x06, 0xE, +0 }, - { 0x0C0F006,0x034C6CF, 0x0E,0x00, 0xE, +0 }, - { 0x360F207,0x352F212, 0x0A,0x0C, 0x0, +0 }, - { 0x360F207,0x352F212, 0x0A,0x0B, 0x0, +0 }, - { 0x0F0F406,0x0F78700, 0x00,0x0D, 0xE, +0 }, - { 0x1FFF005,0x0B9F800, 0x00,0x00, 0x8, +0 }, - { 0x0F0F000,0x0F5F500, 0x00,0x09, 0xA, +0 }, - { 0x0590900,0x097F700, 0x40,0x00, 0x0, +24 }, - { 0x052F301,0x194F700, 0x40,0x00, 0x0, +12 }, - { 0x0530907,0x096F605, 0x40,0x00, 0xE, +0 }, - { 0x070F005,0x0E57A00, 0x00,0x10, 0xE, +12 }, - { 0x070F005,0x0E59A00, 0x00,0x10, 0xE, +12 }, - { 0x070F005,0x0E55A00, 0x00,0x10, 0xE, +12 }, - { 0x07BF003,0x07BF502, 0x8A,0x80, 0x8, +0 }, - { 0x07BF003,0x07BF402, 0x8A,0x80, 0x8, +0 }, -}; -const struct adlinsdata adlins[4678] = -{ - { 0, 0, 0, 0, 9006, 133, 0, 0 }, - { 1, 1, 0, 0, 9206, 146, 0, 0 }, - { 2, 2, 0, 0, 9246, 240, 0, 0 }, - { 3, 3, 0, 0, 9440, 140, 0, 0 }, - { 4, 4, 0, 0, 8900, 120, 0, 0 }, - { 5, 5, 0, 0, 9400, 140, 0, 0 }, - { 6, 6, 0, 0, 7460, 380, 0, 0 }, - { 7, 7, 0, 0, 9226, 93, 0, 0 }, - { 8, 8, 0, 0, 4613, 420, 0, 0 }, - { 9, 9, 0, 0, 7286, 4713, 0, 0 }, - { 10, 10, 0, 0, 2280, 746, 0, 0 }, - { 11, 11, 0, 0, 9233, 240, 0, 0 }, - { 12, 12, 0, 0, 346, 153, 0, 0 }, - { 13, 13, 0, 0, 633, 233, 0, 0 }, - { 14, 14, 0, 0, 4660, 1573, 0, 0 }, - { 15, 15, 0, 0, 1166, 400, 0, 0 }, - { 16, 16, 0, 0, 40000, 126, 0, 0 }, - { 17, 17, 0, 0, 40000, 93, 0, 0 }, - { 18, 18, 0, 0, 40000, 93, 0, 0 }, - { 19, 19, 0, 0, 40000, 553, 0, 0 }, - { 20, 20, 0, 0, 40000, 660, 0, 0 }, - { 21, 21, 0, 0, 40000, 73, 0, 0 }, - { 22, 22, 0, 0, 40000, 146, 0, 0 }, - { 23, 23, 0, 0, 40000, 146, 0, 0 }, - { 24, 24, 0, 0, 4026, 100, 0, 0 }, - { 25, 25, 0, 0, 14286, 120, 0, 0 }, - { 26, 26, 0, 0, 9233, 106, 0, 0 }, - { 27, 27, 0, 0, 4480, 100, 0, 0 }, - { 28, 28, 0, 0, 40000, 60, 0, 0 }, - { 29, 29, 0, 0, 40000, 80, 0, 0 }, - { 30, 30, 0, 0, 40000, 80, 0, 0 }, - { 31, 31, 0, 0, 18226, 100, 0, 0 }, - { 32, 32, 0, 0, 40000, 0, 0, 0 }, - { 33, 33, 0, 0, 40000, 80, 0, 0 }, - { 34, 34, 0, 0, 40000, 0, 0, 0 }, - { 35, 35, 0, 0, 40000, 53, 0, 0 }, - { 36, 36, 0, 0, 40000, 0, 0, 0 }, - { 37, 37, 0, 0, 40000, 0, 0, 0 }, - { 38, 38, 0, 0, 40000, 0, 0, 0 }, - { 39, 39, 0, 0, 40000, 160, 0, 0 }, - { 40, 40, 0, 0, 40000, 233, 0, 0 }, - { 41, 41, 0, 0, 40000, 73, 0, 0 }, - { 42, 42, 0, 0, 40000, 233, 0, 0 }, - { 43, 43, 0, 0, 40000, 213, 0, 0 }, - { 44, 44, 0, 0, 1246, 453, 0, 0 }, - { 45, 45, 0, 0, 4580, 786, 0, 0 }, - { 46, 46, 0, 0, 6873, 1246, 0, 0 }, - { 47, 47, 0, 0, 40000, 100, 0, 0 }, - { 48, 48, 0, 0, 40000, 140, 0, 0 }, - { 49, 49, 0, 0, 40000, 393, 0, 0 }, - { 50, 50, 0, 0, 40000, 406, 0, 0 }, - { 51, 51, 0, 0, 40000, 373, 0, 0 }, - { 52, 52, 0, 0, 40000, 0, 0, 0 }, - { 53, 53, 0, 0, 40000, 360, 0, 0 }, - { 54, 54, 0, 0, 1060, 380, 0, 0 }, - { 55, 55, 0, 0, 40000, 80, 0, 0 }, - { 56, 56, 0, 0, 40000, 73, 0, 0 }, - { 57, 57, 0, 0, 40000, 66, 0, 0 }, - { 58, 58, 0, 0, 40000, 60, 0, 0 }, - { 59, 59, 0, 0, 40000, 73, 0, 0 }, - { 60, 60, 0, 0, 40000, 66, 0, 0 }, - { 61, 61, 0, 0, 40000, 86, 0, 0 }, - { 62, 62, 0, 0, 40000, 66, 0, 0 }, - { 63, 63, 0, 0, 40000, 73, 0, 0 }, - { 64, 64, 0, 0, 40000, 80, 0, 0 }, - { 65, 65, 0, 0, 40000, 80, 0, 0 }, - { 66, 66, 0, 0, 40000, 73, 0, 0 }, - { 67, 67, 0, 0, 40000, 73, 0, 0 }, - { 68, 68, 0, 0, 40000, 53, 0, 0 }, - { 69, 69, 0, 0, 40000, 73, 0, 0 }, - { 70, 70, 0, 0, 40000, 126, 0, 0 }, - { 71, 71, 0, 0, 40000, 73, 0, 0 }, - { 72, 72, 0, 0, 40000, 73, 0, 0 }, - { 73, 73, 0, 0, 40000, 73, 0, 0 }, - { 74, 74, 0, 0, 40000, 66, 0, 0 }, - { 75, 75, 0, 0, 40000, 153, 0, 0 }, - { 76, 76, 0, 0, 40000, 153, 0, 0 }, - { 77, 77, 0, 0, 40000, 146, 0, 0 }, - { 78, 78, 0, 0, 40000, 146, 0, 0 }, - { 79, 79, 0, 0, 40000, 66, 0, 0 }, - { 80, 80, 0, 0, 40000, 60, 0, 0 }, - { 81, 81, 0, 0, 40000, 86, 0, 0 }, - { 82, 82, 0, 0, 40000, 73, 0, 0 }, - { 83, 83, 0, 0, 40000, 66, 0, 0 }, - { 84, 84, 0, 0, 40000, 153, 0, 0 }, - { 85, 85, 0, 0, 40000, 233, 0, 0 }, - { 86, 86, 0, 0, 40000, 80, 0, 0 }, - { 87, 87, 0, 0, 40000, 400, 0, 0 }, - { 88, 88, 0, 0, 40000, 1373, 0, 0 }, - { 89, 89, 0, 0, 40000, 193, 0, 0 }, - { 90, 90, 0, 0, 40000, 1273, 0, 0 }, - { 91, 91, 0, 0, 40000, 186, 0, 0 }, - { 92, 92, 0, 0, 40000, 86, 0, 0 }, - { 93, 93, 0, 0, 40000, 286, 0, 0 }, - { 94, 94, 0, 0, 40000, 140, 0, 0 }, - { 95, 95, 0, 0, 7440, 2473, 0, 0 }, - { 96, 96, 0, 0, 40000, 1220, 0, 0 }, - { 97, 97, 0, 0, 4946, 2713, 0, 0 }, - { 98, 98, 0, 0, 40000, 160, 0, 0 }, - { 99, 99, 0, 0, 8966, 406, 0, 0 }, - { 100, 100, 0, 0, 40000, 1353, 0, 0 }, - { 101, 101, 0, 0, 40000, 1306, 0, 0 }, - { 102, 102, 0, 0, 40000, 933, 0, 0 }, - { 103, 103, 0, 0, 9086, 226, 0, 0 }, - { 104, 104, 0, 0, 7233, 326, 0, 0 }, - { 105, 105, 0, 0, 7286, 200, 0, 0 }, - { 106, 106, 0, 0, 14180, 4406, 0, 0 }, - { 107, 107, 0, 0, 1180, 406, 0, 0 }, - { 108, 108, 0, 0, 40000, 66, 0, 0 }, - { 109, 109, 0, 0, 40000, 213, 0, 0 }, - { 110, 110, 0, 0, 40000, 73, 0, 0 }, - { 111, 111, 0, 0, 4606, 413, 0, 0 }, - { 112, 112, 0, 0, 613, 240, 0, 0 }, - { 113, 113, 0, 0, 1166, 400, 0, 0 }, - { 114, 114, 0, 0, 200, 353, 0, 0 }, - { 115, 115, 0, 0, 4553, 1480, 0, 0 }, - { 116, 116, 0, 0, 3740, 1260, 0, 0 }, - { 117, 117, 0, 0, 7240, 2300, 0, 0 }, - { 118, 118, 0, 0, 3020, 73, 0, 0 }, - { 119, 119, 0, 0, 1626, 800, 0, 0 }, - { 120, 120, 0, 0, 2466, 620, 0, 0 }, - { 121, 121, 0, 0, 12053, 3160, 0, 0 }, - { 122, 122, 0, 0, 466, 120, 0, 0 }, - { 123, 123, 0, 0, 1000, 320, 0, 0 }, - { 124, 124, 0, 0, 380, 60, 0, 0 }, - { 125, 125, 0, 0, 40000, 200, 0, 0 }, - { 126, 126, 0, 0, 560, 86, 0, 0 }, - { 127, 127, 35, 0, 386, 160, 0, 0 }, - { 128, 128, 52, 0, 126, 26, 0, 0 }, - { 129, 129, 48, 0, 286, 126, 0, 0 }, - { 130, 130, 58, 0, 173, 93, 0, 0 }, - { 129, 129, 60, 0, 286, 126, 0, 0 }, - { 131, 131, 47, 0, 520, 200, 0, 0 }, - { 132, 132, 43, 0, 173, 93, 0, 0 }, - { 131, 131, 49, 0, 520, 200, 0, 0 }, - { 133, 133, 43, 0, 160, 80, 0, 0 }, - { 131, 131, 51, 0, 526, 206, 0, 0 }, - { 134, 134, 43, 0, 1860, 653, 0, 0 }, - { 131, 131, 54, 0, 520, 200, 0, 0 }, - { 131, 131, 57, 0, 520, 200, 0, 0 }, - { 135, 135, 72, 0, 1860, 633, 0, 0 }, - { 131, 131, 60, 0, 506, 200, 0, 0 }, - { 136, 136, 76, 0, 1566, 546, 0, 0 }, - { 137, 137, 84, 0, 1340, 466, 0, 0 }, - { 138, 138, 36, 0, 1220, 433, 0, 0 }, - { 139, 139, 65, 0, 293, 133, 0, 0 }, - { 140, 140, 84, 0, 1333, 460, 0, 0 }, - { 141, 141, 83, 0, 220, 113, 0, 0 }, - { 135, 135, 84, 0, 1366, 473, 0, 0 }, - { 142, 142, 24, 0, 1893, 633, 0, 0 }, - { 136, 136, 77, 0, 1586, 553, 0, 0 }, - { 143, 143, 60, 0, 173, 93, 0, 0 }, - { 144, 144, 65, 0, 213, 126, 0, 0 }, - { 145, 145, 59, 0, 173, 140, 0, 0 }, - { 146, 146, 51, 0, 173, 100, 0, 0 }, - { 147, 147, 45, 0, 260, 206, 0, 0 }, - { 148, 148, 71, 0, 433, 180, 0, 0 }, - { 149, 149, 60, 0, 280, 26, 0, 0 }, - { 150, 150, 58, 0, 500, 186, 0, 0 }, - { 151, 151, 53, 0, 513, 200, 0, 0 }, - { 152, 152, 64, 0, 220, 86, 0, 0 }, - { 153, 153, 71, 0, 106, 46, 0, 0 }, - { 154, 154, 61, 0, 993, 340, 0, 0 }, - { 155, 155, 61, 0, 1906, 640, 0, 0 }, - { 156, 156, 44, 0, 206, 86, 0, 0 }, - { 157, 157, 40, 0, 586, 140, 0, 0 }, - { 158, 158, 69, 0, 126, 140, 0, 0 }, - { 159, 159, 68, 0, 126, 140, 0, 0 }, - { 160, 160, 63, 0, 146, 166, 0, 0 }, - { 161, 161, 74, 0, 280, 100, 0, 0 }, - { 162, 162, 60, 0, 1026, 320, 0, 0 }, - { 163, 163, 80, 0, 226, 100, 0, 0 }, - { 164, 164, 64, 0, 2713, 913, 0, 0 }, - { 165, 165, 72, 0, 120, 66, 0, 0 }, - { 166, 166, 73, 0, 386, 80, 0, 0 }, - { 167, 167, 70, 0, 553, 306, 0, 0 }, - { 168, 168, 68, 0, 126, 140, 0, 0 }, - { 169, 169, 48, 0, 386, 373, 0, 0 }, - { 131, 131, 53, 0, 520, 206, 0, 0 }, - { 170, 170, 0, 0, 40000, 0, 0, 0 }, - { 171, 171, 0, 0, 40000, 73, 0, 0 }, - { 172, 173, 0, 4, 5886, 100, 0, 0 }, - { 174, 175, 0, 4, 6913, 93, 0, 0 }, - { 176, 177, 0, 4, 4873, 120, 0, 0 }, - { 178, 178, 0, 0, 40000, 0, 0, 0 }, - { 179, 180, 0, 4, 4626, 433, 0, 0 }, - { 181, 181, 0, 0, 2280, 746, 0, 0 }, - { 182, 182, 0, 0, 40000, 0, 0, 0 }, - { 183, 184, 0, 4, 620, 233, 0, 0 }, - { 185, 186, 0, 4, 4626, 1546, 0, 0 }, - { 187, 187, 0, 0, 1166, 400, 0, 0 }, - { 188, 189, 0, 4, 40000, 60, 0, 0 }, - { 190, 191, 0, 4, 40000, 60, 0, 0 }, - { 192, 193, 0, 4, 40000, 73, 0, 0 }, - { 194, 194, 0, 0, 40000, 73, 0, 0 }, - { 195, 196, 0, 4, 40000, 66, 0, 0 }, - { 197, 198, 0, 4, 40000, 86, 0, 0 }, - { 199, 200, 0, 4, 40000, 66, 0, 0 }, - { 201, 202, 0, 4, 3713, 100, 0, 0 }, - { 203, 204, 0, 4, 14686, 126, 0, 0 }, - { 205, 206, 0, 4, 9233, 153, 0, 0 }, - { 207, 208, 0, 4, 14640, 133, 0, 0 }, - { 209, 210, 0, 4, 4626, 106, 0, 0 }, - { 211, 212, 0, 4, 40000, 66, 0, 0 }, - { 213, 213, 0, 0, 40000, 73, 0, 0 }, - { 214, 215, 0, 4, 620, 100, 0, 0 }, - { 216, 217, 0, 4, 4060, 100, 0, 0 }, - { 218, 219, 0, 4, 14513, 193, 0, 0 }, - { 220, 221, 0, 4, 2813, 106, 0, 0 }, - { 222, 223, 0, 4, 493, 153, 0, 0 }, - { 224, 224, 0, 0, 40000, 0, 0, 0 }, - { 225, 226, 0, 4, 7993, 93, 0, 0 }, - { 227, 227, 0, 0, 40000, 0, 0, 0 }, - { 228, 228, 0, 0, 40000, 133, 0, 0 }, - { 229, 230, 0, 4, 713, 213, 0, 0 }, - { 231, 232, 0, 4, 40000, 146, 0, 0 }, - { 233, 234, 0, 4, 40000, 0, 0, 0 }, - { 235, 236, 0, 4, 993, 340, 0, 0 }, - { 235, 237, 0, 4, 3260, 1120, 0, 0 }, - { 46, 238, 0, 4, 6720, 1246, 0, 0 }, - { 239, 240, 0, 4, 40000, 140, 0, 0 }, - { 241, 242, 0, 4, 40000, 146, 0, 0 }, - { 243, 243, 0, 0, 40000, 100, 0, 0 }, - { 244, 244, 0, 0, 40000, 60, 0, 0 }, - { 245, 245, 0, 0, 40000, 73, 0, 0 }, - { 246, 247, 0, 4, 720, 106, 0, 0 }, - { 248, 249, 0, 4, 40000, 126, 0, 0 }, - { 250, 250, 0, 0, 40000, 0, 0, 0 }, - { 251, 251, 0, 0, 40000, 126, 0, 0 }, - { 252, 253, 0, 4, 40000, 66, 0, 0 }, - { 254, 255, 0, 4, 40000, 93, 0, 0 }, - { 256, 257, 0, 4, 40000, 73, 0, 0 }, - { 258, 259, 0, 4, 40000, 86, 0, 0 }, - { 260, 261, 0, 4, 40000, 93, 0, 0 }, - { 262, 263, 0, 4, 40000, 80, 0, 0 }, - { 264, 265, 0, 4, 40000, 200, 0, 0 }, - { 266, 267, 0, 4, 40000, 73, 0, 0 }, - { 268, 269, 0, 4, 40000, 80, 0, 0 }, - { 270, 271, 0, 4, 40000, 73, 0, 0 }, - { 272, 273, 0, 4, 40000, 126, 0, 0 }, - { 274, 275, 0, 4, 40000, 100, 0, 0 }, - { 276, 276, 0, 0, 40000, 113, 0, 0 }, - { 277, 278, 0, 4, 40000, 186, 0, 0 }, - { 279, 280, 0, 4, 40000, 160, 0, 0 }, - { 281, 282, 0, 4, 40000, 206, 0, 0 }, - { 283, 283, 0, 0, 40000, 80, 0, 0 }, - { 284, 285, 0, 4, 40000, 73, 0, 0 }, - { 286, 287, 0, 4, 40000, 73, 0, 0 }, - { 288, 288, 0, 0, 40000, 93, 0, 0 }, - { 289, 290, 0, 4, 40000, 66, 0, 0 }, - { 291, 292, 0, 4, 40000, 153, 0, 0 }, - { 293, 294, 0, 4, 40000, 153, 0, 0 }, - { 295, 296, 0, 4, 40000, 320, 0, 0 }, - { 88, 297, 0, 4, 40000, 1280, 0, 0 }, - { 298, 299, 0, 4, 40000, 266, 0, 0 }, - { 300, 301, 0, 4, 40000, 1180, 0, 0 }, - { 302, 302, 0, 0, 40000, 286, 0, 0 }, - { 303, 303, 0, 0, 40000, 140, 0, 0 }, - { 304, 304, 0, 0, 13246, 2473, 0, 0 }, - { 305, 306, 0, 4, 40000, 1073, 0, 0 }, - { 307, 307, 0, 0, 9233, 240, 0, 0 }, - { 308, 308, 0, 0, 1186, 406, 0, 0 }, - { 309, 309, 0, 0, 40000, 1306, 0, 0 }, - { 310, 310, 0, 0, 40000, 933, 0, 0 }, - { 311, 312, 0, 4, 9100, 240, 0, 0 }, - { 313, 314, 0, 4, 7280, 326, 0, 0 }, - { 315, 316, 0, 4, 3553, 326, 0, 0 }, - { 317, 318, 0, 4, 6966, 2206, 0, 0 }, - { 107, 319, 0, 4, 1160, 406, 0, 0 }, - { 108, 320, 0, 4, 40000, 66, 0, 0 }, - { 109, 321, 0, 4, 720, 213, 0, 0 }, - { 322, 323, 0, 4, 40000, 73, 0, 0 }, - { 324, 325, 0, 4, 613, 246, 0, 0 }, - { 326, 327, 0, 4, 1206, 386, 0, 0 }, - { 328, 328, 0, 0, 173, 106, 0, 0 }, - { 329, 329, 0, 0, 966, 333, 0, 0 }, - { 330, 331, 0, 4, 1906, 320, 0, 0 }, - { 332, 332, 0, 0, 3120, 73, 0, 0 }, - { 333, 333, 0, 0, 226, 73, 0, 0 }, - { 334, 334, 0, 0, 6600, 806, 0, 0 }, - { 335, 335, 0, 0, 273, 60, 0, 0 }, - { 336, 336, 0, 0, 12053, 660, 0, 0 }, - { 337, 337, 0, 0, 40000, 240, 0, 0 }, - { 338, 339, 0, 6, 6, 0, 0, 0 }, - { 340, 341, 0, 4, 560, 73, 0, 0 }, - { 342, 342, 35, 0, 40000, 0, 0, 0 }, - { 343, 343, 0, 0, 180, 100, 0, 0 }, - { 344, 344, 35, 0, 340, 146, 0, 0 }, - { 345, 345, 35, 0, 213, 33, 0, 0 }, - { 346, 346, 50, 0, 306, 20, 0, 0 }, - { 347, 347, 18, 0, 420, 146, 0, 0 }, - { 348, 348, 72, 0, 173, 86, 0, 0 }, - { 349, 349, 74, 0, 160, 93, 0, 0 }, - { 350, 350, 35, 0, 380, 146, 0, 0 }, - { 351, 351, 16, 0, 1206, 420, 0, 0 }, - { 352, 352, 0, 2, 6, 0, 0, 0 }, - { 353, 353, 38, 0, 200, 106, 0, 0 }, - { 354, 354, 38, 0, 346, 146, 0, 0 }, - { 355, 355, 31, 0, 406, 20, 0, 0 }, - { 355, 355, 35, 0, 406, 66, 0, 0 }, - { 355, 355, 38, 0, 406, 66, 0, 0 }, - { 355, 355, 41, 0, 406, 66, 0, 0 }, - { 355, 355, 45, 0, 306, 73, 0, 0 }, - { 355, 355, 50, 0, 306, 73, 0, 0 }, - { 356, 356, 36, 0, 1373, 493, 0, 0 }, - { 357, 357, 36, 0, 146, 33, 0, 0 }, - { 358, 358, 48, 0, 213, 86, 0, 0 }, - { 358, 358, 36, 0, 246, 86, 0, 0 }, - { 359, 359, 36, 0, 113, 53, 0, 0 }, - { 360, 360, 0, 0, 133, 40, 0, 0 }, - { 361, 361, 61, 0, 180, 26, 0, 0 }, - { 362, 362, 96, 0, 706, 266, 0, 0 }, - { 363, 363, 38, 0, 520, 193, 0, 0 }, - { 127, 127, 16, 0, 620, 233, 0, 0 }, - { 364, 365, 18, 4, 200, 26, 0, 0 }, - { 366, 366, 30, 0, 406, 246, 0, 0 }, - { 367, 368, 35, 4, 200, 100, 0, 0 }, - { 129, 129, 0, 0, 353, 153, 0, 0 }, - { 369, 369, 0, 0, 213, 13, 0, 0 }, - { 370, 370, 88, 0, 333, 113, 0, 0 }, - { 371, 371, 88, 0, 140, 73, 0, 0 }, - { 372, 372, 79, 0, 2540, 1040, 0, 0 }, - { 135, 135, 14, 0, 9213, 3066, 0, 0 }, - { 373, 373, 46, 0, 1093, 60, 0, 0 }, - { 374, 375,129, 4, 1193, 433, 0, 0 }, - { 376, 376, 58, 0, 1600, 726, 0, 0 }, - { 377, 377,164, 0, 526, 820, 0, 0 }, - { 378, 378,142, 0, 9153, 3073, 0, 0 }, - { 379, 379, 9, 0, 200, 100, 0, 0 }, - { 380, 381, 35, 4, 2340, 806, 0, 0 }, - { 382, 382, 28, 0, 1060, 120, 0, 0 }, - { 383, 383, 46, 0, 953, 20, 0, 0 }, - { 384, 384, 60, 0, 440, 160, 0, 0 }, - { 384, 384, 54, 0, 513, 180, 0, 0 }, - { 385, 385, 72, 0, 253, 120, 0, 0 }, - { 385, 385, 67, 0, 253, 113, 0, 0 }, - { 385, 385, 60, 0, 253, 106, 0, 0 }, - { 386, 386, 1, 0, 966, 613, 0, 0 }, - { 387, 387, 77, 0, 340, 86, 0, 0 }, - { 387, 387, 72, 0, 340, 86, 0, 0 }, - { 388, 388, 90, 0, 213, 86, 0, 0 }, - { 389, 389, 39, 0, 266, 73, 0, 0 }, - { 390, 390, 36, 0, 593, 73, 0, 0 }, - { 391, 392, 35, 4, 173, 46, 0, 0 }, - { 391, 393, 35, 4, 460, 66, 0, 0 }, - { 394, 394, 60, 0, 173, 20, 0, 0 }, - { 328, 328, 7, 0, 173, 106, 0, 0 }, - { 395, 395, 90, 0, 193, 20, 0, 0 }, - { 396, 396, 90, 0, 793, 40, 0, 0 }, - { 397, 397, 35, 0, 253, 86, 0, 0 }, - { 398, 399, 5, 4, 1913, 226, 0, 0 }, - { 400, 400,103, 0, 713, 273, 0, 0 }, - { 401, 401, 3, 0, 100, 26, 0, 0 }, - { 169, 169, 1, 0, 466, 413, 0, 0 }, - { 131, 131, 0, 0, 613, 226, 0, 0 }, - { 402, 402, 36, 0, 273, 53, 0, 0 }, - { 403, 403, 60, 0, 40000, 73, 0, 0 }, - { 404, 404, 37, 0, 1193, 426, 0, 0 }, - { 405, 405, 36, 0, 406, 20, 0, 0 }, - { 406, 406, 32, 0, 146, 73, 0, 0 }, - { 407, 407, 50, 0, 40000, 0, 0, 0 }, - { 408, 408, 50, 0, 793, 346, 0, 0 }, - { 409, 409, 83, 0, 120, 13, 0, 0 }, - { 410, 410, 72, 0, 433, 193, 0, 0 }, - { 148, 148, 59, 0, 513, 200, 0, 0 }, - { 411, 411, 64, 0, 173, 93, 0, 0 }, - { 411, 411, 60, 0, 173, 93, 0, 0 }, - { 412, 412, 72, 0, 160, 93, 0, 0 }, - { 412, 412, 62, 0, 173, 93, 0, 0 }, - { 413, 413, 83, 0, 773, 60, 0, 0 }, - { 414, 414, 0, 0, 40000, 80, 0, 0 }, - { 415, 415, 0, 0, 40000, 0, 0, 0 }, - { 416, 416, 0, 0, 40000, 73, 0, 0 }, - { 417, 417, 0, 0, 40000, 86, 0, 0 }, - { 418, 418, 0, 0, 40000, 0, 0, 0 }, - { 419, 419, 0, 0, 3440, 100, 0, 0 }, - { 420, 420, 0, 0, 3913, 420, 0, 0 }, - { 421, 421, 0, 0, 13620, 4640, 0, 0 }, - { 422, 422, 0, 0, 9233, 240, 0, 0 }, - { 423, 423, 0, 0, 633, 233, 0, 0 }, - { 424, 424, 0, 0, 4660, 1573, 0, 0 }, - { 425, 425, 0, 0, 4480, 1413, 0, 0 }, - { 426, 426, 0, 0, 40000, 0, 0, 0 }, - { 427, 427, 0, 0, 40000, 86, 0, 0 }, - { 428, 428, 60, 2, 6, 0, 0, 0 }, - { 429, 429, 73, 0, 593, 86, 0, 0 }, - { 429, 429, 74, 0, 593, 86, 0, 0 }, - { 429, 429, 80, 0, 593, 86, 0, 0 }, - { 429, 429, 84, 0, 593, 86, 0, 0 }, - { 429, 429, 92, 0, 520, 86, 0, 0 }, - { 430, 430, 81, 0, 786, 80, 0, 0 }, - { 430, 430, 83, 0, 786, 80, 0, 0 }, - { 430, 430, 95, 0, 680, 80, 0, 0 }, - { 431, 431, 35, 0, 593, 140, 0, 0 }, - { 432, 432, 60, 0, 213, 133, 0, 0 }, - { 357, 357, 59, 0, 113, 33, 0, 0 }, - { 432, 432, 44, 0, 213, 133, 0, 0 }, - { 433, 433, 41, 0, 713, 273, 0, 0 }, - { 434, 434, 97, 0, 113, 46, 0, 0 }, - { 433, 433, 44, 0, 513, 206, 0, 0 }, - { 433, 433, 48, 0, 506, 200, 0, 0 }, - { 435, 435, 96, 0, 700, 86, 0, 0 }, - { 433, 433, 51, 0, 520, 200, 0, 0 }, - { 433, 433, 54, 0, 513, 206, 0, 0 }, - { 436, 436, 40, 0, 1506, 793, 0, 0 }, - { 433, 433, 57, 0, 380, 160, 0, 0 }, - { 437, 437, 58, 0, 1600, 726, 0, 0 }, - { 438, 438, 97, 0, 233, 106, 0, 0 }, - { 439, 439, 50, 0, 186, 93, 0, 0 }, - { 437, 437, 60, 0, 1573, 713, 0, 0 }, - { 440, 440, 53, 0, 180, 73, 0, 0 }, - { 441, 441, 46, 0, 173, 126, 0, 0 }, - { 440, 440, 57, 0, 180, 40, 0, 0 }, - { 442, 442, 42, 0, 640, 240, 0, 0 }, - { 442, 442, 37, 0, 633, 233, 0, 0 }, - { 443, 443, 41, 0, 626, 240, 0, 0 }, - { 443, 443, 37, 0, 620, 233, 0, 0 }, - { 444, 444, 77, 0, 173, 40, 0, 0 }, - { 444, 444, 72, 0, 173, 40, 0, 0 }, - { 445, 445, 70, 0, 233, 100, 0, 0 }, - { 445, 445, 90, 0, 233, 93, 0, 0 }, - { 446, 446, 46, 0, 133, 73, 0, 0 }, - { 447, 447, 48, 0, 333, 73, 0, 0 }, - { 448, 448, 85, 0, 106, 33, 0, 0 }, - { 449, 449, 66, 0, 180, 26, 0, 0 }, - { 449, 449, 61, 0, 180, 26, 0, 0 }, - { 450, 450, 41, 0, 200, 66, 0, 0 }, - { 451, 451, 41, 0, 253, 66, 0, 0 }, - { 452, 452, 81, 0, 253, 26, 0, 0 }, - { 400, 400, 81, 0, 820, 306, 0, 0 }, - { 400, 400, 76, 0, 813, 300, 0, 0 }, - { 359, 359, 60, 0, 100, 40, 0, 0 }, - { 453, 453, 53, 0, 40000, 0, 0, 0 }, - { 454, 454, 0, 2, 6, 0, 0, 0 }, - { 455, 455, 0, 0, 200, 20, 0, 0 }, - { 456, 456, 0, 0, 4480, 100, 0, 0 }, - { 457, 457, 0, 0, 1180, 406, 0, 0 }, - { 458, 458, 0, 0, 40000, 86, 0, 0 }, - { 459, 459, 0, 0, 40000, 73, 0, 0 }, - { 460, 460, 0, 0, 3700, 66, 0, 0 }, - { 461, 461, 0, 0, 40000, 0, 0, 0 }, - { 462, 462, 0, 0, 6746, 2606, 0, 0 }, - { 463, 463, 0, 0, 40000, 213, 0, 0 }, - { 464, 464, 0, 0, 40000, 66, 0, 0 }, - { 465, 465, 0, 0, 40000, 100, 0, 0 }, - { 466, 466, 0, 0, 40000, 100, 0, 0 }, - { 467, 467, 0, 0, 5840, 806, 0, 0 }, - { 468, 468, 0, 0, 40000, 0, 0, 0 }, - { 469, 469, 0, 0, 40000, 0, 0, 0 }, - { 470, 470, 0, 0, 40000, 73, 0, 0 }, - { 471, 471, 0, 0, 40000, 133, 0, 0 }, - { 472, 472, 0, 0, 3320, 800, 0, 0 }, - { 473, 473, 0, 0, 40000, 173, 0, 0 }, - { 474, 474, 0, 0, 40000, 193, 0, 0 }, - { 475, 475, 0, 0, 2373, 800, 0, 0 }, - { 476, 476, 0, 0, 40000, 4986, 0, 0 }, - { 477, 477, 0, 0, 1180, 413, 0, 0 }, - { 478, 478, 0, 0, 3673, 1200, 0, 0 }, - { 479, 479, 0, 0, 973, 800, 0, 0 }, - { 480, 480, 0, 0, 7233, 2286, 0, 0 }, - { 481, 481, 0, 0, 40000, 73, 0, 0 }, - { 482, 482, 0, 0, 2526, 73, 0, 0 }, - { 483, 483, 0, 0, 393, 126, 0, 0 }, - { 484, 484, 0, 0, 40000, 200, 0, 0 }, - { 485, 485, 0, 0, 40000, 546, 0, 0 }, - { 486, 486, 0, 0, 1186, 413, 0, 0 }, - { 487, 487, 0, 0, 14166, 320, 0, 0 }, - { 488, 488, 0, 0, 8326, 646, 0, 0 }, - { 489, 489, 0, 0, 513, 206, 0, 0 }, - { 490, 490, 0, 0, 40000, 93, 0, 0 }, - { 491, 491, 50, 0, 1406, 353, 0, 0 }, - { 492, 492, 37, 0, 1040, 400, 0, 0 }, - { 493, 493, 39, 0, 406, 73, 0, 0 }, - { 494, 494, 39, 0, 3746, 860, 0, 0 }, - { 495, 495, 86, 0, 2133, 173, 0, 0 }, - { 496, 496, 43, 0, 140, 66, 0, 0 }, - { 127, 127, 24, 0, 513, 206, 0, 0 }, - { 127, 127, 29, 0, 520, 206, 0, 0 }, - { 497, 497, 50, 0, 340, 20, 0, 0 }, - { 498, 498, 30, 0, 5306, 1266, 0, 0 }, - { 498, 498, 33, 0, 3773, 886, 0, 0 }, - { 498, 498, 38, 0, 3746, 860, 0, 0 }, - { 498, 498, 42, 0, 3793, 906, 0, 0 }, - { 499, 499, 24, 0, 266, 160, 0, 0 }, - { 499, 499, 27, 0, 260, 153, 0, 0 }, - { 499, 499, 29, 0, 260, 153, 0, 0 }, - { 499, 499, 32, 0, 260, 153, 0, 0 }, - { 500, 500, 32, 0, 106, 26, 0, 0 }, - { 501, 501, 53, 0, 373, 186, 0, 0 }, - { 501, 501, 57, 0, 380, 193, 0, 0 }, - { 502, 502, 60, 0, 286, 133, 0, 0 }, - { 503, 503, 55, 0, 460, 126, 0, 0 }, - { 486, 486, 85, 0, 813, 293, 0, 0 }, - { 504, 504, 90, 0, 1580, 546, 0, 0 }, - { 505, 505, 84, 0, 246, 120, 0, 0 }, - { 506, 506, 48, 0, 826, 646, 0, 0 }, - { 507, 507, 48, 0, 266, 213, 0, 0 }, - { 132, 132, 72, 0, 126, 66, 0, 0 }, - { 508, 508, 72, 0, 106, 46, 0, 0 }, - { 509, 509, 72, 0, 100, 26, 0, 0 }, - { 510, 510, 63, 0, 1860, 633, 0, 0 }, - { 510, 510, 65, 0, 1853, 633, 0, 0 }, - { 511, 511, 79, 0, 1573, 553, 0, 0 }, - { 512, 512, 38, 0, 520, 793, 0, 0 }, - { 513, 513, 94, 0, 380, 160, 0, 0 }, - { 514, 514, 87, 0, 433, 306, 0, 0 }, - { 514, 514, 94, 0, 380, 273, 0, 0 }, - { 515, 515, 80, 0, 546, 273, 0, 0 }, - { 516, 516, 47, 0, 506, 200, 0, 0 }, - { 517, 517, 61, 0, 286, 133, 0, 0 }, - { 517, 517, 68, 0, 246, 120, 0, 0 }, - { 518, 518, 61, 0, 513, 206, 0, 0 }, - { 518, 518, 68, 0, 433, 180, 0, 0 }, - { 499, 499, 60, 0, 220, 133, 0, 0 }, - { 519, 519, 60, 0, 153, 46, 0, 0 }, - { 520, 520, 36, 0, 200, 20, 0, 0 }, - { 520, 520, 60, 0, 173, 20, 0, 0 }, - { 521, 521, 60, 0, 173, 20, 0, 0 }, - { 522, 522, 68, 0, 126, 26, 0, 0 }, - { 523, 523, 71, 0, 160, 186, 0, 0 }, - { 523, 523, 72, 0, 160, 186, 0, 0 }, - { 524, 524,101, 0, 966, 353, 0, 0 }, - { 525, 525, 36, 0, 3333, 480, 0, 0 }, - { 526, 526, 25, 0, 40000, 2293, 0, 0 }, - { 527, 527, 37, 0, 2106, 426, 0, 0 }, - { 528, 528, 36, 0, 720, 266, 0, 0 }, - { 528, 528, 41, 0, 713, 266, 0, 0 }, - { 529, 529, 84, 0, 173, 60, 0, 0 }, - { 530, 530, 54, 0, 40000, 0, 0, 0 }, - { 481, 481, 48, 0, 40000, 73, 0, 0 }, - { 531, 531, 0, 0, 10060, 1266, 0, 0 }, - { 532, 532, 0, 0, 4600, 606, 0, 0 }, - { 533, 533, 0, 0, 40000, 253, 0, 0 }, - { 534, 534, 0, 0, 40000, 73, 0, 0 }, - { 535, 535, 0, 0, 40000, 66, 0, 0 }, - { 536, 536, 0, 0, 40000, 80, 0, 0 }, - { 537, 537, 0, 0, 9413, 1393, 0, 0 }, - { 538, 538, 0, 0, 9000, 66, 0, 0 }, - { 539, 539, 0, 0, 40000, 0, 0, 0 }, - { 540, 540, 0, 0, 40000, 80, 0, 0 }, - { 541, 541, 0, 0, 40000, 120, 0, 0 }, - { 542, 542, 0, 0, 253, 73, 0, 0 }, - { 543, 543, 0, 0, 40000, 73, 0, 0 }, - { 544, 544, 0, 0, 18280, 800, 0, 0 }, - { 545, 545, 0, 0, 40000, 1133, 0, 0 }, - { 546, 546, 0, 0, 40000, 1226, 0, 0 }, - { 547, 547, 0, 0, 40000, 153, 0, 0 }, - { 135, 135, 49, 0, 3633, 1186, 0, 0 }, - { 548, 548, 35, 0, 2193, 80, 0, 0 }, - { 549, 549, 41, 0, 73, 26, 0, 0 }, - { 366, 366, 38, 0, 406, 246, 0, 0 }, - { 550, 550, 39, 0, 106, 20, 0, 0 }, - { 551, 551, 49, 0, 200, 133, 0, 0 }, - { 408, 408, 59, 0, 780, 326, 0, 0 }, - { 552, 552, 24, 0, 40000, 0, 0, 0 }, - { 552, 552, 27, 0, 40000, 0, 0, 0 }, - { 552, 552, 29, 0, 40000, 0, 0, 0 }, - { 552, 552, 32, 0, 40000, 0, 0, 0 }, - { 553, 553, 84, 0, 200, 33, 0, 0 }, - { 512, 512, 79, 0, 346, 460, 0, 0 }, - { 554, 554, 61, 0, 400, 126, 0, 0 }, - { 554, 554, 68, 0, 353, 120, 0, 0 }, - { 555, 555, 36, 0, 146, 86, 0, 0 }, - { 555, 555, 60, 0, 113, 53, 0, 0 }, - { 556, 556, 36, 0, 273, 53, 0, 0 }, - { 115, 115, 37, 0, 4580, 1513, 0, 0 }, - { 557, 557, 0, 0, 3806, 73, 0, 0 }, - { 558, 558, 0, 0, 40000, 0, 0, 0 }, - { 559, 559, 0, 0, 40000, 66, 0, 0 }, - { 560, 560, 0, 0, 5886, 133, 0, 0 }, - { 561, 561, 0, 0, 253, 26, 0, 0 }, - { 562, 562, 0, 0, 3246, 753, 0, 0 }, - { 563, 563, 0, 0, 40000, 100, 0, 0 }, - { 564, 564, 0, 0, 1620, 366, 0, 0 }, - { 565, 565, 0, 0, 40000, 0, 0, 0 }, - { 566, 566, 0, 0, 40000, 0, 0, 0 }, - { 567, 567, 0, 0, 40000, 0, 0, 0 }, - { 568, 568, 0, 0, 40000, 80, 0, 0 }, - { 569, 569, 0, 0, 760, 340, 0, 0 }, - { 570, 570, 0, 0, 40000, 0, 0, 0 }, - { 571, 571, 0, 0, 40000, 0, 0, 0 }, - { 572, 572, 0, 0, 40000, 0, 0, 0 }, - { 356, 356, 0, 0, 1893, 646, 0, 0 }, - { 573, 573, 0, 0, 40000, 93, 0, 0 }, - { 574, 574, 0, 0, 40000, 93, 0, 0 }, - { 575, 575, 0, 0, 40000, 200, 0, 0 }, - { 576, 576, 0, 0, 40000, 200, 0, 0 }, - { 577, 577, 0, 0, 40000, 126, 0, 0 }, - { 578, 578, 0, 0, 40000, 353, 0, 0 }, - { 579, 579, 0, 0, 40000, 346, 0, 0 }, - { 580, 580, 0, 0, 40000, 353, 0, 0 }, - { 581, 581, 0, 0, 40000, 100, 0, 0 }, - { 582, 582, 0, 0, 40000, 133, 0, 0 }, - { 583, 583, 0, 0, 2286, 713, 0, 0 }, - { 584, 584, 0, 0, 40000, 193, 0, 0 }, - { 585, 585, 0, 0, 40000, 0, 0, 0 }, - { 516, 516, 0, 0, 633, 240, 0, 0 }, - { 586, 586, 0, 0, 40000, 73, 0, 0 }, - { 587, 587, 0, 0, 40000, 73, 0, 0 }, - { 588, 588, 0, 0, 40000, 73, 0, 0 }, - { 498, 498, 26, 0, 5293, 1253, 0, 0 }, - { 494, 494, 35, 0, 3800, 913, 0, 0 }, - { 350, 350, 41, 0, 380, 153, 0, 0 }, - { 353, 353, 48, 0, 173, 100, 0, 0 }, - { 354, 354, 67, 0, 246, 120, 0, 0 }, - { 502, 502, 24, 0, 340, 146, 0, 0 }, - { 346, 346, 36, 0, 406, 73, 0, 0 }, - { 346, 346, 38, 0, 406, 20, 0, 0 }, - { 346, 346, 40, 0, 406, 73, 0, 0 }, - { 346, 346, 42, 0, 406, 20, 0, 0 }, - { 346, 346, 44, 0, 306, 20, 0, 0 }, - { 510, 510, 55, 0, 1866, 646, 0, 0 }, - { 346, 346, 46, 0, 306, 20, 0, 0 }, - { 136, 136, 80, 0, 1600, 573, 0, 0 }, - { 486, 486, 24, 0, 1193, 426, 0, 0 }, - { 153, 153, 50, 0, 106, 40, 0, 0 }, - { 346, 346, 24, 0, 540, 73, 0, 0 }, - { 516, 516, 31, 0, 626, 240, 0, 0 }, - { 498, 498, 35, 0, 3760, 880, 0, 0 }, - { 517, 517, 60, 0, 286, 133, 0, 0 }, - { 530, 530, 36, 0, 40000, 0, 0, 0 }, - { 530, 530, 48, 0, 40000, 0, 0, 0 }, - { 589, 589, 0, 0, 40000, 0, 0, 0 }, - { 139, 139, 76, 0, 253, 106, 0, 0 }, - { 156, 156, 48, 0, 206, 80, 0, 0 }, - { 157, 157, 48, 0, 426, 106, 0, 0 }, - { 165, 165, 69, 0, 120, 66, 0, 0 }, - { 167, 167, 75, 0, 546, 306, 0, 0 }, - { 590, 590, 0, 0, 40000, 0, 0, 0 }, - { 591, 591, 0, 0, 15486, 1580, 0, 0 }, - { 592, 592, 0, 0, 3446, 106, 0, 0 }, - { 593, 593, 0, 0, 1926, 146, 0, 0 }, - { 594, 594, 0, 0, 7293, 2380, 0, 0 }, - { 595, 595, 0, 0, 7613, 1566, 0, 0 }, - { 596, 596, 0, 0, 1153, 460, 0, 0 }, - { 597, 597, 0, 0, 1166, 400, 0, 0 }, - { 598, 598, 0, 0, 40000, 73, 0, 0 }, - { 599, 599, 0, 0, 40000, 766, 0, 0 }, - { 600, 600, 0, 0, 40000, 80, 0, 0 }, - { 601, 601, 0, 0, 1840, 513, 0, 0 }, - { 602, 602, 0, 0, 40000, 0, 0, 0 }, - { 603, 603, 0, 0, 4480, 733, 0, 0 }, - { 604, 604, 0, 0, 18226, 786, 0, 0 }, - { 605, 605, 0, 0, 4333, 233, 0, 0 }, - { 606, 606, 0, 0, 40000, 106, 0, 0 }, - { 607, 607, 0, 0, 40000, 366, 0, 0 }, - { 608, 608, 0, 0, 40000, 200, 0, 0 }, - { 609, 609, 0, 0, 713, 200, 0, 0 }, - { 610, 610, 0, 0, 8866, 1366, 0, 0 }, - { 611, 611, 0, 0, 2300, 73, 0, 0 }, - { 612, 612, 0, 0, 40000, 126, 0, 0 }, - { 613, 613, 0, 0, 40000, 1413, 0, 0 }, - { 614, 614, 0, 0, 40000, 333, 0, 0 }, - { 615, 615, 0, 0, 40000, 333, 0, 0 }, - { 616, 616, 0, 0, 40000, 26, 0, 0 }, - { 617, 617, 0, 0, 40000, 40, 0, 0 }, - { 618, 618, 0, 0, 4240, 353, 0, 0 }, - { 619, 619, 0, 0, 40000, 0, 0, 0 }, - { 620, 620, 0, 0, 40000, 73, 0, 0 }, - { 621, 621, 0, 0, 9020, 60, 0, 0 }, - { 622, 622, 0, 0, 3020, 0, 0, 0 }, - { 623, 623, 0, 0, 40000, 60, 0, 0 }, - { 624, 624, 0, 0, 40000, 73, 0, 0 }, - { 625, 625, 0, 0, 40000, 60, 0, 0 }, - { 626, 626, 0, 0, 40000, 53, 0, 0 }, - { 627, 627, 0, 0, 40000, 0, 0, 0 }, - { 628, 628, 0, 0, 40000, 66, 0, 0 }, - { 629, 629, 0, 0, 40000, 66, 0, 0 }, - { 630, 630, 0, 0, 5913, 426, 0, 0 }, - { 631, 631, 0, 0, 40000, 246, 0, 0 }, - { 632, 632, 0, 0, 40000, 206, 0, 0 }, - { 633, 633, 0, 0, 40000, 0, 0, 0 }, - { 634, 634, 0, 0, 2453, 780, 0, 0 }, - { 635, 635, 0, 0, 4740, 240, 0, 0 }, - { 636, 636, 0, 0, 1840, 353, 0, 0 }, - { 637, 637, 0, 0, 40000, 86, 0, 0 }, - { 638, 638, 0, 0, 3446, 1786, 0, 0 }, - { 346, 346, 0, 0, 540, 20, 0, 0 }, - { 639, 639, 0, 0, 7406, 2486, 0, 0 }, - { 404, 404, 0, 0, 1220, 466, 0, 0 }, - { 506, 506, 0, 0, 1000, 813, 0, 0 }, - { 639, 639, 60, 0, 2666, 913, 0, 0 }, - { 639, 639, 79, 0, 1366, 486, 0, 0 }, - { 640, 640, 65, 0, 2053, 646, 0, 0 }, - { 486, 486, 31, 0, 1206, 440, 0, 0 }, - { 486, 486, 36, 0, 1200, 433, 0, 0 }, - { 640, 640, 72, 0, 1713, 520, 0, 0 }, - { 136, 136, 79, 0, 1580, 560, 0, 0 }, - { 148, 148, 57, 0, 520, 206, 0, 0 }, - { 150, 150, 53, 0, 500, 193, 0, 0 }, - { 641, 641, 84, 0, 226, 66, 0, 0 }, - { 520, 520, 66, 0, 173, 20, 0, 0 }, - { 642, 642, 31, 0, 40000, 113, 0, 0 }, - { 642, 642, 29, 0, 40000, 113, 0, 0 }, - { 356, 356, 31, 0, 1366, 486, 0, 0 }, - { 356, 356, 19, 0, 1866, 633, 0, 0 }, - { 643, 643, 31, 0, 40000, 73, 0, 0 }, - { 643, 643, 29, 0, 40000, 73, 0, 0 }, - { 644, 644, 31, 0, 2286, 400, 0, 0 }, - { 644, 644, 35, 0, 2313, 420, 0, 0 }, - { 644, 644, 40, 0, 2353, 433, 0, 0 }, - { 644, 644, 47, 0, 1860, 346, 0, 0 }, - { 516, 516, 32, 0, 626, 240, 0, 0 }, - { 516, 516, 43, 0, 506, 200, 0, 0 }, - { 495, 495, 26, 0, 3180, 240, 0, 0 }, - { 495, 495, 44, 0, 2553, 206, 0, 0 }, - { 496, 496, 26, 0, 160, 73, 0, 0 }, - { 496, 496, 51, 0, 146, 66, 0, 0 }, - { 496, 496, 39, 0, 160, 73, 0, 0 }, - { 495, 495, 30, 0, 3180, 240, 0, 0 }, - { 645, 645, 44, 0, 1880, 653, 0, 0 }, - { 645, 645, 43, 0, 1886, 653, 0, 0 }, - { 646, 646, 0, 0, 2393, 833, 0, 0 }, - { 647, 647, 0, 0, 4693, 26, 0, 0 }, - { 648, 648, 0, 0, 2306, 773, 0, 0 }, - { 649, 649, 0, 0, 40000, 120, 0, 0 }, - { 650, 650, 0, 0, 40000, 66, 0, 0 }, - { 651, 651, 0, 0, 5866, 1206, 0, 0 }, - { 652, 652, 0, 0, 40000, 426, 0, 0 }, - { 653, 653, 0, 0, 1873, 633, 0, 0 }, - { 654, 654, 0, 0, 40000, 66, 0, 0 }, - { 655, 655, 0, 0, 40000, 73, 0, 0 }, - { 656, 656, 0, 0, 40000, 73, 0, 0 }, - { 657, 657, 0, 0, 40000, 0, 0, 0 }, - { 658, 658, 0, 0, 2040, 380, 0, 0 }, - { 659, 659, 0, 0, 40000, 73, 0, 0 }, - { 660, 660, 0, 0, 3720, 1260, 0, 0 }, - { 661, 661, 0, 0, 4080, 1046, 0, 0 }, - { 662, 662, 0, 0, 8693, 4666, 0, 0 }, - { 663, 663, 0, 0, 1926, 73, 0, 0 }, - { 664, 664, 0, 0, 8326, 646, 0, 0 }, - { 665, 665, 0, 0, 40000, 240, 0, 0 }, - { 666, 666, 0, 0, 40000, 226, 0, 0 }, - { 667, 667, 0, 0, 40000, 220, 0, 0 }, - { 668, 668, 0, 0, 40000, 0, 0, 0 }, - { 669, 669, 0, 0, 40000, 193, 0, 0 }, - { 670, 670, 0, 0, 880, 20, 0, 0 }, - { 671, 671, 0, 0, 4873, 120, 0, 0 }, - { 672, 672, 0, 0, 40000, 413, 0, 0 }, - { 673, 673, 0, 0, 700, 106, 0, 0 }, - { 674, 674, 0, 0, 700, 100, 0, 0 }, - { 675, 675, 0, 0, 40000, 126, 0, 0 }, - { 676, 676, 0, 0, 8113, 806, 0, 0 }, - { 677, 677, 0, 0, 8900, 80, 0, 0 }, - { 678, 678, 0, 0, 1893, 653, 0, 0 }, - { 679, 679, 0, 0, 3973, 206, 0, 0 }, - { 680, 680, 0, 0, 40000, 173, 0, 0 }, - { 681, 681, 0, 0, 40000, 73, 0, 0 }, - { 682, 682, 0, 0, 40000, 93, 0, 0 }, - { 683, 683, 0, 0, 1606, 640, 0, 0 }, - { 684, 684, 0, 0, 15486, 1580, 0, 0 }, - { 685, 685, 0, 0, 40000, 346, 0, 0 }, - { 686, 686, 0, 0, 40000, 786, 0, 0 }, - { 687, 687, 0, 0, 386, 240, 0, 0 }, - { 688, 688, 0, 0, 40000, 2066, 0, 0 }, - { 689, 689, 0, 0, 15453, 73, 0, 0 }, - { 690, 690, 0, 0, 1206, 240, 0, 0 }, - { 691, 691, 0, 0, 8866, 1366, 0, 0 }, - { 692, 692, 0, 0, 5913, 2253, 0, 0 }, - { 693, 693, 0, 0, 773, 106, 0, 0 }, - { 694, 694, 0, 0, 3793, 73, 0, 0 }, - { 695, 695, 0, 0, 40000, 73, 0, 0 }, - { 645, 645, 0, 0, 3633, 1180, 0, 0 }, - { 696, 696, 0, 0, 40000, 80, 0, 0 }, - { 697, 697, 0, 0, 40000, 0, 0, 0 }, - { 698, 698, 0, 0, 40000, 66, 0, 0 }, - { 699, 699, 0, 0, 40000, 66, 0, 0 }, - { 700, 700, 0, 0, 106, 53, 0, 0 }, - { 701, 701, 0, 0, 40000, 200, 0, 0 }, - { 702, 702, 0, 0, 3913, 73, 0, 0 }, - { 703, 703, 0, 0, 40000, 73, 0, 0 }, - { 704, 704, 0, 0, 40000, 73, 0, 0 }, - { 705, 705, 0, 0, 40000, 73, 0, 0 }, - { 706, 706, 0, 0, 40000, 66, 0, 0 }, - { 707, 707, 0, 0, 40000, 313, 0, 0 }, - { 708, 708, 0, 0, 40000, 100, 0, 0 }, - { 709, 709, 0, 0, 40000, 213, 0, 0 }, - { 710, 710, 0, 0, 40000, 53, 0, 0 }, - { 711, 711, 0, 0, 40000, 40, 0, 0 }, - { 712, 712, 0, 0, 40000, 73, 0, 0 }, - { 713, 713, 0, 0, 40000, 140, 0, 0 }, - { 714, 714, 0, 0, 40000, 606, 0, 0 }, - { 715, 715, 0, 0, 40000, 226, 0, 0 }, - { 716, 716, 0, 0, 3746, 1273, 0, 0 }, - { 717, 717, 0, 0, 40000, 80, 0, 0 }, - { 718, 718, 0, 0, 2360, 806, 0, 0 }, - { 719, 719, 0, 0, 1186, 420, 0, 0 }, - { 720, 720, 0, 0, 12533, 1953, 0, 0 }, - { 721, 721, 0, 0, 973, 1280, 0, 0 }, - { 722, 722, 0, 0, 40000, 426, 0, 0 }, - { 723, 723, 0, 0, 40000, 53, 0, 0 }, - { 724, 724, 0, 0, 40000, 66, 0, 0 }, - { 725, 725, 0, 0, 1246, 73, 0, 0 }, - { 726, 726, 0, 0, 3726, 1246, 0, 0 }, - { 727, 727, 0, 0, 2346, 813, 0, 0 }, - { 728, 728, 0, 0, 1206, 433, 0, 0 }, - { 507, 507, 0, 0, 306, 246, 0, 0 }, - { 512, 512, 0, 0, 526, 840, 0, 0 }, - { 729, 729, 0, 0, 14793, 4933, 0, 0 }, - { 730, 730, 0, 0, 14640, 4806, 0, 0 }, - { 731, 731, 0, 0, 5233, 633, 0, 0 }, - { 732, 732, 0, 0, 40000, 2513, 0, 0 }, - { 733, 733, 0, 0, 40000, 820, 0, 0 }, - { 734, 734, 0, 0, 40000, 0, 0, 0 }, - { 735, 735, 0, 0, 1726, 793, 0, 0 }, - { 736, 736, 0, 0, 513, 20, 0, 0 }, - { 737, 737, 0, 2, 6, 0, 0, 0 }, - { 738, 738, 38, 0, 1020, 413, 0, 0 }, - { 739, 739, 44, 0, 220, 33, 0, 0 }, - { 500, 500, 58, 0, 100, 26, 0, 0 }, - { 740, 740, 24, 0, 513, 206, 0, 0 }, - { 741, 741, 60, 0, 220, 26, 0, 0 }, - { 736, 736, 44, 0, 286, 20, 0, 0 }, - { 742, 742, 25, 0, 626, 246, 0, 0 }, - { 743, 743, 60, 0, 146, 86, 0, 0 }, - { 742, 742, 30, 0, 626, 240, 0, 0 }, - { 377, 377, 60, 0, 446, 626, 0, 0 }, - { 742, 742, 33, 0, 620, 226, 0, 0 }, - { 744, 744, 60, 0, 220, 113, 0, 0 }, - { 742, 742, 35, 0, 620, 233, 0, 0 }, - { 742, 742, 37, 0, 633, 246, 0, 0 }, - { 745, 745, 0, 0, 1880, 640, 0, 0 }, - { 742, 742, 40, 0, 640, 260, 0, 0 }, - { 746, 746,102, 0, 960, 300, 0, 0 }, - { 747, 747, 80, 0, 1106, 126, 0, 0 }, - { 377, 377, 0, 0, 500, 760, 0, 0 }, - { 748, 748, 56, 0, 100, 26, 0, 0 }, - { 749, 749, 0, 0, 973, 1300, 0, 0 }, - { 746, 746,100, 0, 960, 340, 0, 0 }, - { 750, 750, 40, 0, 626, 240, 0, 0 }, - { 750, 750, 35, 0, 626, 240, 0, 0 }, - { 751, 751, 29, 0, 206, 106, 0, 0 }, - { 750, 750, 29, 0, 633, 240, 0, 0 }, - { 750, 750, 22, 0, 640, 233, 0, 0 }, - { 500, 500, 0, 0, 106, 26, 0, 0 }, - { 752, 752, 0, 0, 206, 26, 0, 0 }, - { 753, 753, 84, 0, 166, 20, 0, 0 }, - { 754, 754, 84, 0, 1580, 553, 0, 0 }, - { 755, 755, 0, 0, 633, 233, 0, 0 }, - { 755, 755, 71, 0, 440, 180, 0, 0 }, - { 755, 755, 53, 0, 513, 200, 0, 0 }, - { 755, 755, 48, 0, 520, 206, 0, 0 }, - { 756, 756, 95, 0, 286, 20, 0, 0 }, - { 757, 757, 95, 0, 1880, 20, 0, 0 }, - { 758, 758, 0, 0, 14413, 333, 0, 0 }, - { 759, 759, 0, 0, 14453, 360, 0, 0 }, - { 760, 760, 0, 0, 14940, 353, 0, 0 }, - { 761, 761, 0, 0, 7286, 340, 0, 0 }, - { 762, 762, 0, 0, 14700, 60, 0, 0 }, - { 763, 763, 0, 0, 14506, 340, 0, 0 }, - { 764, 764, 0, 0, 14706, 200, 0, 0 }, - { 765, 765, 0, 0, 40000, 0, 0, 0 }, - { 766, 766, 0, 0, 2900, 426, 0, 0 }, - { 767, 767, 0, 0, 2986, 753, 0, 0 }, - { 768, 768, 0, 0, 1706, 680, 0, 0 }, - { 769, 769, 0, 0, 14646, 1253, 0, 0 }, - { 770, 770, 0, 0, 1713, 486, 0, 0 }, - { 771, 771, 0, 0, 966, 346, 0, 0 }, - { 772, 772, 0, 0, 3453, 766, 0, 0 }, - { 773, 773, 0, 0, 2866, 486, 0, 0 }, - { 774, 774, 0, 0, 40000, 73, 0, 0 }, - { 775, 775, 0, 0, 40000, 73, 0, 0 }, - { 776, 776, 0, 0, 40000, 166, 0, 0 }, - { 777, 777, 0, 0, 40000, 126, 0, 0 }, - { 778, 778, 0, 0, 40000, 113, 0, 0 }, - { 779, 779, 0, 0, 40000, 113, 0, 0 }, - { 780, 780, 0, 0, 40000, 93, 0, 0 }, - { 781, 781, 0, 0, 40000, 200, 0, 0 }, - { 782, 782, 0, 0, 7186, 93, 0, 0 }, - { 783, 783, 0, 0, 6406, 120, 0, 0 }, - { 784, 784, 0, 0, 40000, 0, 0, 0 }, - { 785, 785, 0, 0, 40000, 0, 0, 0 }, - { 786, 786, 0, 0, 1220, 73, 0, 0 }, - { 787, 787, 0, 0, 40000, 0, 0, 0 }, - { 788, 788, 0, 0, 17566, 66, 0, 0 }, - { 789, 789, 0, 0, 2333, 26, 0, 0 }, - { 790, 790, 0, 0, 4560, 153, 0, 0 }, - { 791, 791, 0, 0, 40000, 0, 0, 0 }, - { 792, 792, 0, 0, 40000, 0, 0, 0 }, - { 793, 793, 0, 0, 40000, 0, 0, 0 }, - { 794, 794, 0, 0, 2506, 126, 0, 0 }, - { 795, 795, 0, 0, 2513, 126, 0, 0 }, - { 796, 796, 0, 0, 40000, 0, 0, 0 }, - { 797, 797, 0, 0, 3386, 80, 0, 0 }, - { 798, 798, 0, 0, 40000, 100, 0, 0 }, - { 799, 799, 0, 0, 40000, 100, 0, 0 }, - { 800, 800, 0, 0, 40000, 120, 0, 0 }, - { 801, 801, 0, 0, 40000, 0, 0, 0 }, - { 802, 802, 0, 0, 40000, 200, 0, 0 }, - { 803, 803, 0, 0, 1080, 180, 0, 0 }, - { 804, 804, 0, 0, 3620, 1166, 0, 0 }, - { 805, 805, 0, 0, 1186, 393, 0, 0 }, - { 806, 806, 0, 0, 40000, 213, 0, 0 }, - { 807, 807, 0, 0, 40000, 426, 0, 0 }, - { 808, 808, 0, 0, 40000, 146, 0, 0 }, - { 809, 809, 0, 0, 40000, 146, 0, 0 }, - { 810, 810, 0, 0, 40000, 60, 0, 0 }, - { 811, 811, 0, 0, 40000, 113, 0, 0 }, - { 812, 812, 0, 0, 40000, 93, 0, 0 }, - { 813, 813, 0, 0, 1186, 153, 0, 0 }, - { 814, 814, 0, 0, 40000, 0, 0, 0 }, - { 815, 815, 0, 0, 40000, 80, 0, 0 }, - { 816, 816, 0, 0, 40000, 80, 0, 0 }, - { 817, 817, 0, 0, 40000, 46, 0, 0 }, - { 818, 818, 0, 0, 40000, 0, 0, 0 }, - { 819, 819, 0, 0, 40000, 66, 0, 0 }, - { 820, 820, 0, 0, 40000, 126, 0, 0 }, - { 821, 821, 0, 0, 40000, 213, 0, 0 }, - { 822, 822, 0, 0, 40000, 80, 0, 0 }, - { 823, 823, 0, 0, 40000, 73, 0, 0 }, - { 824, 824, 0, 0, 40000, 73, 0, 0 }, - { 825, 825, 0, 0, 40000, 100, 0, 0 }, - { 826, 826, 0, 0, 40000, 93, 0, 0 }, - { 827, 827, 0, 0, 40000, 73, 0, 0 }, - { 828, 828, 0, 0, 40000, 73, 0, 0 }, - { 829, 829, 0, 0, 40000, 80, 0, 0 }, - { 830, 830, 0, 0, 40000, 80, 0, 0 }, - { 831, 831, 0, 0, 40000, 80, 0, 0 }, - { 832, 832, 0, 0, 40000, 73, 0, 0 }, - { 833, 833, 0, 0, 40000, 80, 0, 0 }, - { 834, 834, 0, 0, 40000, 86, 0, 0 }, - { 835, 835, 0, 0, 40000, 100, 0, 0 }, - { 836, 836, 0, 0, 40000, 100, 0, 0 }, - { 837, 837, 0, 0, 40000, 140, 0, 0 }, - { 838, 838, 0, 0, 40000, 73, 0, 0 }, - { 839, 839, 0, 0, 40000, 0, 0, 0 }, - { 840, 840, 0, 0, 40000, 93, 0, 0 }, - { 841, 841, 0, 0, 40000, 0, 0, 0 }, - { 842, 842, 0, 0, 40000, 0, 0, 0 }, - { 843, 843, 0, 0, 40000, 73, 0, 0 }, - { 844, 844, 0, 0, 40000, 66, 0, 0 }, - { 845, 845, 0, 0, 40000, 0, 0, 0 }, - { 846, 846, 0, 0, 40000, 193, 0, 0 }, - { 847, 847, 0, 0, 40000, 340, 0, 0 }, - { 848, 848, 0, 0, 40000, 233, 0, 0 }, - { 849, 849, 0, 0, 40000, 80, 0, 0 }, - { 850, 850, 0, 0, 40000, 186, 0, 0 }, - { 851, 851, 0, 0, 9973, 426, 0, 0 }, - { 852, 852, 0, 0, 40000, 200, 0, 0 }, - { 853, 853, 0, 0, 40000, 400, 0, 0 }, - { 854, 854, 0, 0, 14633, 200, 0, 0 }, - { 855, 855, 0, 0, 40000, 333, 0, 0 }, - { 856, 856, 0, 0, 4620, 800, 0, 0 }, - { 857, 857, 0, 0, 8940, 386, 0, 0 }, - { 858, 858, 0, 0, 8966, 740, 0, 0 }, - { 859, 859, 0, 0, 40000, 273, 0, 0 }, - { 860, 860, 0, 0, 40000, 126, 0, 0 }, - { 861, 861, 0, 0, 40000, 400, 0, 0 }, - { 862, 862, 0, 0, 4480, 213, 0, 0 }, - { 863, 863, 0, 0, 633, 100, 0, 0 }, - { 864, 864, 0, 0, 3740, 353, 0, 0 }, - { 865, 865, 0, 0, 2333, 406, 0, 0 }, - { 866, 866, 0, 0, 1933, 566, 0, 0 }, - { 867, 867, 0, 0, 40000, 93, 0, 0 }, - { 868, 868, 0, 0, 40000, 106, 0, 0 }, - { 869, 869, 0, 0, 40000, 100, 0, 0 }, - { 870, 870, 0, 0, 3093, 240, 0, 0 }, - { 871, 871, 0, 0, 513, 93, 0, 0 }, - { 872, 872, 0, 0, 700, 180, 0, 0 }, - { 361, 361, 0, 0, 373, 40, 0, 0 }, - { 873, 873, 0, 0, 1046, 446, 0, 0 }, - { 874, 874, 0, 0, 1886, 520, 0, 0 }, - { 875, 875, 0, 0, 1226, 366, 0, 0 }, - { 876, 876, 0, 0, 4193, 73, 0, 0 }, - { 877, 877, 0, 0, 826, 120, 0, 0 }, - { 878, 878, 0, 0, 280, 146, 0, 0 }, - { 879, 879, 0, 0, 5266, 806, 0, 0 }, - { 880, 880, 0, 0, 386, 80, 0, 0 }, - { 881, 881, 0, 0, 40000, 100, 0, 0 }, - { 882, 882, 0, 0, 40000, 413, 0, 0 }, - { 883, 883, 0, 0, 40000, 0, 0, 0 }, - { 884, 884, 36, 0, 233, 80, 0, 0 }, - { 885, 885, 48, 0, 193, 93, 0, 0 }, - { 885, 885, 36, 0, 226, 100, 0, 0 }, - { 886, 886, 36, 0, 113, 53, 0, 0 }, - { 887, 887, 32, 0, 133, 40, 0, 0 }, - { 767, 767, 96, 0, 1760, 480, 0, 0 }, - { 888, 888, 30, 0, 246, 40, 0, 0 }, - { 889, 889, 35, 0, 420, 140, 0, 0 }, - { 890, 890, 60, 0, 240, 60, 0, 0 }, - { 884, 884, 59, 0, 146, 20, 0, 0 }, - { 890, 890, 44, 0, 240, 60, 0, 0 }, - { 891, 891, 41, 0, 713, 273, 0, 0 }, - { 892, 892, 47, 0, 173, 93, 0, 0 }, - { 891, 891, 44, 0, 513, 206, 0, 0 }, - { 891, 891, 48, 0, 506, 200, 0, 0 }, - { 893, 893, 62, 0, 1926, 93, 0, 0 }, - { 891, 891, 51, 0, 520, 200, 0, 0 }, - { 891, 891, 54, 0, 513, 206, 0, 0 }, - { 894, 894, 40, 0, 1280, 793, 0, 0 }, - { 891, 891, 57, 0, 380, 160, 0, 0 }, - { 895, 895, 97, 0, 233, 106, 0, 0 }, - { 896, 896, 50, 0, 220, 93, 0, 0 }, - { 376, 376, 60, 0, 1573, 713, 0, 0 }, - { 897, 897, 53, 0, 126, 73, 0, 0 }, - { 898, 898, 46, 0, 173, 133, 0, 0 }, - { 897, 897, 57, 0, 126, 33, 0, 0 }, - { 899, 899, 42, 0, 626, 233, 0, 0 }, - { 899, 899, 37, 0, 633, 240, 0, 0 }, - { 900, 900, 41, 0, 626, 240, 0, 0 }, - { 900, 900, 37, 0, 626, 240, 0, 0 }, - { 871, 871, 77, 0, 173, 40, 0, 0 }, - { 871, 871, 72, 0, 173, 40, 0, 0 }, - { 388, 388, 70, 0, 213, 86, 0, 0 }, - { 901, 901, 39, 0, 260, 26, 0, 0 }, - { 902, 902, 36, 0, 1093, 73, 0, 0 }, - { 903, 903, 46, 0, 120, 73, 0, 0 }, - { 904, 904, 48, 0, 766, 80, 0, 0 }, - { 905, 905, 85, 0, 126, 26, 0, 0 }, - { 361, 361, 66, 0, 180, 26, 0, 0 }, - { 906, 906, 41, 0, 193, 73, 0, 0 }, - { 907, 907, 41, 0, 333, 106, 0, 0 }, - { 908, 908, 81, 0, 160, 26, 0, 0 }, - { 400, 400, 10, 0, 1186, 413, 0, 0 }, - { 886, 886, 60, 0, 100, 40, 0, 0 }, - { 873, 873, 53, 0, 846, 360, 0, 0 }, - { 909, 909, 0, 0, 5593, 340, 0, 0 }, - { 910, 910, 0, 0, 14646, 346, 0, 0 }, - { 911, 911, 0, 0, 6826, 280, 0, 0 }, - { 912, 912, 0, 0, 7000, 306, 0, 0 }, - { 913, 913, 0, 0, 8793, 133, 0, 0 }, - { 914, 914, 0, 0, 14680, 346, 0, 0 }, - { 915, 915, 0, 0, 7246, 126, 0, 0 }, - { 916, 916, 0, 0, 40000, 0, 0, 0 }, - { 917, 917, 0, 0, 1866, 433, 0, 0 }, - { 362, 362, 0, 0, 1106, 340, 0, 0 }, - { 918, 918, 0, 0, 1053, 273, 0, 0 }, - { 919, 919, 0, 0, 14513, 1213, 0, 0 }, - { 920, 920, 0, 0, 1886, 646, 0, 0 }, - { 921, 921, 0, 0, 926, 313, 0, 0 }, - { 922, 922, 0, 0, 2340, 806, 0, 0 }, - { 923, 923, 0, 0, 2966, 553, 0, 0 }, - { 924, 924, 0, 0, 40000, 66, 0, 0 }, - { 925, 925, 0, 0, 40000, 73, 0, 0 }, - { 926, 926, 0, 0, 40000, 0, 0, 0 }, - { 927, 927, 0, 0, 40000, 126, 0, 0 }, - { 928, 928, 0, 0, 40000, 113, 0, 0 }, - { 929, 929, 0, 0, 40000, 113, 0, 0 }, - { 930, 930, 0, 0, 40000, 93, 0, 0 }, - { 931, 931, 0, 0, 40000, 113, 0, 0 }, - { 932, 932, 0, 0, 7200, 86, 0, 0 }, - { 933, 933, 0, 0, 5373, 106, 0, 0 }, - { 934, 934, 0, 0, 40000, 0, 0, 0 }, - { 935, 935, 0, 0, 40000, 0, 0, 0 }, - { 936, 936, 0, 0, 2380, 73, 0, 0 }, - { 937, 937, 0, 0, 40000, 0, 0, 0 }, - { 938, 938, 0, 0, 40000, 0, 0, 0 }, - { 939, 939, 0, 0, 6013, 53, 0, 0 }, - { 940, 940, 0, 0, 3713, 126, 0, 0 }, - { 941, 941, 0, 0, 17566, 26, 0, 0 }, - { 942, 942, 0, 0, 40000, 0, 0, 0 }, - { 943, 943, 0, 0, 40000, 0, 0, 0 }, - { 944, 944, 0, 0, 2506, 126, 0, 0 }, - { 945, 945, 0, 0, 3733, 73, 0, 0 }, - { 946, 946, 0, 0, 40000, 0, 0, 0 }, - { 947, 947, 0, 0, 3386, 80, 0, 0 }, - { 948, 948, 0, 0, 40000, 100, 0, 0 }, - { 949, 949, 0, 0, 40000, 100, 0, 0 }, - { 950, 950, 0, 0, 40000, 113, 0, 0 }, - { 951, 951, 0, 0, 40000, 0, 0, 0 }, - { 952, 952, 0, 0, 40000, 200, 0, 0 }, - { 953, 953, 0, 0, 1140, 213, 0, 0 }, - { 954, 954, 0, 0, 2140, 400, 0, 0 }, - { 955, 955, 0, 0, 813, 240, 0, 0 }, - { 956, 956, 0, 0, 40000, 100, 0, 0 }, - { 957, 957, 0, 0, 40000, 426, 0, 0 }, - { 958, 958, 0, 0, 40000, 0, 0, 0 }, - { 959, 959, 0, 0, 40000, 146, 0, 0 }, - { 960, 960, 0, 0, 40000, 120, 0, 0 }, - { 961, 961, 0, 0, 40000, 93, 0, 0 }, - { 962, 962, 0, 0, 1193, 153, 0, 0 }, - { 963, 963, 0, 0, 40000, 46, 0, 0 }, - { 964, 964, 0, 0, 40000, 80, 0, 0 }, - { 965, 965, 0, 0, 40000, 80, 0, 0 }, - { 966, 966, 0, 0, 40000, 20, 0, 0 }, - { 967, 967, 0, 0, 40000, 0, 0, 0 }, - { 968, 968, 0, 0, 40000, 93, 0, 0 }, - { 969, 969, 0, 0, 40000, 86, 0, 0 }, - { 970, 970, 0, 0, 40000, 213, 0, 0 }, - { 971, 971, 0, 0, 40000, 80, 0, 0 }, - { 972, 972, 0, 0, 40000, 73, 0, 0 }, - { 973, 973, 0, 0, 40000, 0, 0, 0 }, - { 974, 974, 0, 0, 40000, 93, 0, 0 }, - { 975, 975, 0, 0, 40000, 73, 0, 0 }, - { 976, 976, 0, 0, 40000, 73, 0, 0 }, - { 977, 977, 0, 0, 40000, 66, 0, 0 }, - { 978, 978, 0, 0, 40000, 66, 0, 0 }, - { 979, 979, 0, 0, 40000, 100, 0, 0 }, - { 980, 980, 0, 0, 40000, 73, 0, 0 }, - { 981, 981, 0, 0, 40000, 73, 0, 0 }, - { 982, 982, 0, 0, 40000, 80, 0, 0 }, - { 983, 983, 0, 0, 40000, 100, 0, 0 }, - { 984, 984, 0, 0, 40000, 100, 0, 0 }, - { 985, 985, 0, 0, 40000, 100, 0, 0 }, - { 986, 986, 0, 0, 40000, 80, 0, 0 }, - { 987, 987, 0, 0, 40000, 73, 0, 0 }, - { 988, 988, 0, 0, 40000, 0, 0, 0 }, - { 989, 989, 0, 0, 40000, 86, 0, 0 }, - { 990, 990, 0, 0, 40000, 0, 0, 0 }, - { 991, 991, 0, 0, 40000, 0, 0, 0 }, - { 992, 992, 0, 0, 40000, 80, 0, 0 }, - { 993, 993, 0, 0, 40000, 86, 0, 0 }, - { 994, 994, 0, 0, 40000, 0, 0, 0 }, - { 995, 995, 0, 0, 40000, 0, 0, 0 }, - { 996, 996, 0, 0, 40000, 333, 0, 0 }, - { 997, 997, 0, 0, 40000, 180, 0, 0 }, - { 998, 998, 0, 0, 40000, 80, 0, 0 }, - { 999, 999, 0, 0, 40000, 120, 0, 0 }, - {1000,1000, 0, 0, 10006, 460, 0, 0 }, - {1001,1001, 0, 0, 40000, 186, 0, 0 }, - {1002,1002, 0, 0, 40000, 400, 0, 0 }, - {1003,1003, 0, 0, 20333, 260, 0, 0 }, - {1004,1004, 0, 0, 40000, 373, 0, 0 }, - {1005,1005, 0, 0, 4520, 400, 0, 0 }, - {1006,1006, 0, 0, 8213, 306, 0, 0 }, - {1007,1007, 0, 0, 8646, 360, 0, 0 }, - {1008,1008, 0, 0, 40000, 160, 0, 0 }, - {1009,1009, 0, 0, 40000, 133, 0, 0 }, - {1010,1010, 0, 0, 40000, 400, 0, 0 }, - {1011,1011, 0, 0, 4473, 193, 0, 0 }, - {1012,1012, 0, 0, 1813, 120, 0, 0 }, - {1013,1013, 0, 0, 3726, 353, 0, 0 }, - {1014,1014, 0, 0, 4400, 373, 0, 0 }, - {1015,1015, 0, 0, 953, 166, 0, 0 }, - {1016,1016, 0, 0, 40000, 73, 0, 0 }, - {1017,1017, 0, 0, 40000, 100, 0, 0 }, - {1018,1018, 0, 0, 40000, 100, 0, 0 }, - {1019,1019, 0, 0, 3100, 240, 0, 0 }, - { 444, 444, 0, 0, 513, 93, 0, 0 }, - {1020,1020, 0, 0, 626, 180, 0, 0 }, - { 449, 449, 0, 0, 373, 80, 0, 0 }, - { 453, 453, 0, 0, 40000, 0, 0, 0 }, - {1021,1021, 0, 0, 1020, 340, 0, 0 }, - {1022,1022, 0, 0, 1200, 366, 0, 0 }, - {1023,1023, 0, 0, 4193, 73, 0, 0 }, - {1024,1024, 0, 0, 820, 120, 0, 0 }, - {1025,1025, 0, 0, 680, 213, 0, 0 }, - {1026,1026, 0, 0, 5260, 806, 0, 0 }, - {1027,1027, 0, 0, 9193, 86, 0, 0 }, - {1028,1028, 0, 0, 40000, 100, 0, 0 }, - {1029,1029, 0, 0, 40000, 426, 0, 0 }, - {1030,1030, 0, 0, 40000, 260, 0, 0 }, - {1031,1031, 0, 0, 3480, 66, 0, 0 }, - {1032,1032, 32, 0, 133, 46, 0, 0 }, - {1033,1033, 30, 0, 200, 40, 0, 0 }, - {1034,1034, 96, 0, 146, 73, 0, 0 }, - {1035,1035, 60, 0, 553, 186, 0, 0 }, - {1036,1036, 0, 0, 13193, 260, 0, 0 }, - {1037,1037, 0, 0, 40000, 100, 0, 0 }, - {1038,1038, 0, 0, 7980, 66, 0, 0 }, - {1039,1039, 0, 0, 40000, 0, 0, 0 }, - {1040,1040, 0, 0, 980, 340, 0, 0 }, - {1041,1041, 0, 0, 7413, 2480, 0, 0 }, - {1042,1042, 0, 0, 2906, 520, 0, 0 }, - {1043,1043, 0, 0, 40000, 73, 0, 0 }, - {1044,1044, 0, 0, 40000, 53, 0, 0 }, - {1045,1045, 0, 0, 40000, 113, 0, 0 }, - {1046,1046, 0, 0, 5380, 113, 0, 0 }, - {1047,1047, 0, 0, 40000, 0, 0, 0 }, - {1048,1048, 0, 0, 2366, 73, 0, 0 }, - {1049,1049, 0, 0, 40000, 0, 0, 0 }, - {1050,1050, 0, 0, 18293, 80, 0, 0 }, - {1051,1051, 0, 0, 18466, 146, 0, 0 }, - {1052,1052, 0, 0, 9220, 73, 0, 0 }, - {1053,1053, 0, 0, 40000, 240, 0, 0 }, - {1054,1054, 0, 0, 40000, 0, 0, 0 }, - {1055,1055, 0, 0, 1086, 126, 0, 0 }, - {1056,1056, 0, 0, 3766, 73, 0, 0 }, - {1057,1057, 0, 0, 1186, 226, 0, 0 }, - {1058,1058, 0, 0, 3373, 73, 0, 0 }, - {1059,1059, 0, 0, 40000, 246, 0, 0 }, - {1060,1060, 0, 0, 340, 220, 0, 0 }, - {1061,1061, 0, 0, 1186, 386, 0, 0 }, - {1062,1062, 0, 0, 40000, 253, 0, 0 }, - {1063,1063, 0, 0, 40000, 440, 0, 0 }, - {1064,1064, 0, 0, 40000, 46, 0, 0 }, - {1065,1065, 0, 0, 40000, 80, 0, 0 }, - {1066,1066, 0, 0, 40000, 126, 0, 0 }, - {1067,1067, 0, 0, 40000, 133, 0, 0 }, - {1068,1068, 0, 0, 40000, 93, 0, 0 }, - {1069,1069, 0, 0, 40000, 86, 0, 0 }, - {1070,1070, 0, 0, 40000, 93, 0, 0 }, - {1071,1071, 0, 0, 40000, 66, 0, 0 }, - {1072,1072, 0, 0, 40000, 93, 0, 0 }, - {1073,1073, 0, 0, 40000, 73, 0, 0 }, - {1074,1074, 0, 0, 40000, 173, 0, 0 }, - {1075,1075, 0, 0, 586, 193, 0, 0 }, - {1076,1076, 0, 0, 40000, 146, 0, 0 }, - {1077,1077, 0, 0, 18460, 73, 0, 0 }, - {1078,1078, 0, 0, 846, 93, 0, 0 }, - {1079,1079, 0, 0, 40000, 0, 0, 0 }, - {1080,1080, 0, 0, 40000, 86, 0, 0 }, - {1081,1081, 0, 0, 40000, 0, 0, 0 }, - {1082,1082, 0, 0, 40000, 353, 0, 0 }, - {1083,1083, 0, 0, 40000, 300, 0, 0 }, - {1084,1084, 0, 0, 40000, 320, 0, 0 }, - {1085,1085, 0, 0, 9920, 1553, 0, 0 }, - {1086,1086, 0, 0, 40000, 386, 0, 0 }, - {1087,1087, 0, 0, 40000, 0, 0, 0 }, - {1088,1088, 0, 0, 9980, 873, 0, 0 }, - {1089,1089, 0, 0, 40000, 386, 0, 0 }, - {1090,1090, 0, 0, 966, 126, 0, 0 }, - {1091,1091, 0, 0, 40000, 820, 0, 0 }, - {1092,1092, 0, 0, 8620, 366, 0, 0 }, - {1093,1093, 0, 0, 40000, 826, 0, 0 }, - {1094,1094, 0, 0, 40000, 433, 0, 0 }, - {1095,1095, 0, 0, 633, 73, 0, 0 }, - {1096,1096, 0, 0, 3693, 126, 0, 0 }, - {1097,1097, 0, 0, 40000, 0, 0, 0 }, - {1098,1098, 0, 0, 40000, 153, 0, 0 }, - {1099,1099, 0, 0, 40000, 0, 0, 0 }, - {1100,1100, 0, 0, 40000, 0, 0, 0 }, - {1101,1101, 0, 0, 40000, 306, 0, 0 }, - {1102,1102, 0, 0, 3666, 3093, 0, 0 }, - {1103,1103, 0, 0, 1873, 653, 0, 0 }, - {1104,1104, 0, 0, 40000, 0, 0, 0 }, - {1105,1105, 0, 0, 11293, 886, 0, 0 }, - {1106,1106, 0, 0, 40000, 546, 0, 0 }, - { 430, 430, 0, 0, 1146, 80, 0, 0 }, - {1107,1107, 35, 0, 580, 80, 0, 0 }, - {1090,1090, 77, 0, 280, 60, 0, 0 }, - {1090,1090, 72, 0, 280, 60, 0, 0 }, - {1108,1108, 0, 0, 10180, 600, 0, 0 }, - {1109,1109, 0, 0, 10053, 353, 0, 0 }, - {1110,1111, 0, 1, 9940, 480, 0, 0 }, - {1112,1113, 0, 1, 10620, 473, 0, 0.03125 }, - {1114,1114, 0, 0, 40000, 0, 0, 0 }, - {1115,1116, 0, 1, 9833, 220, 0, 0 }, - {1117,1117, 0, 0, 10286, 473, 0, 0 }, - {1118,1118, 0, 0, 7686, 93, 0, 0 }, - {1119,1119, 0, 0, 7220, 613, 0, 0 }, - {1120,1120, 0, 0, 11513, 1666, 0, 0 }, - {1121,1121, 0, 0, 5200, 1700, 0, 0 }, - {1122,1122, 0, 0, 10173, 626, 0, 0 }, - {1123,1123, 0, 0, 1206, 380, 0, 0 }, - {1124,1124, 0, 0, 1953, 866, 0, 0 }, - {1125,1125, 0, 0, 4686, 1586, 0, 0 }, - {1126,1126, 0, 0, 3786, 893, 0, 0 }, - {1127,1127, 0, 0, 40000, 126, 0, 0 }, - {1128,1128, 0, 0, 40000, 120, 0, 0 }, - {1129,1130, 0, 1, 40000, 146, 0, 0.15625 }, - {1131,1131, 0, 0, 40000, 433, 0, 0 }, - {1132,1132, 0, 0, 40000, 133, 0, 0 }, - {1133,1134, 0, 1, 40000, 126, 0, -0.046875 }, - {1135,1135, 0, 0, 40000, 113, 0, 0 }, - {1136,1137, 0, 1, 40000, 253, 0, 2.5e-05 }, - {1138,1138, 0, 0, 18440, 240, 0, 0 }, - {1139,1139, 0, 0, 5213, 886, 0, 0 }, - {1140,1140, 0, 0, 1446, 113, 0, 0 }, - {1141,1141, 0, 0, 5233, 106, 0, 0 }, - {1142,1142, 0, 0, 5286, 266, 0, 0 }, - {1143,1143, 0, 0, 40000, 66, 0, 0 }, - {1144,1144, 0, 0, 40000, 66, 0, 0 }, - {1145,1145, 0, 0, 10593, 106, 0, 0 }, - {1146,1146, 0, 0, 2733, 160, 0, 0 }, - {1147,1147, 0, 0, 10313, 93, 0, 0 }, - {1148,1148, 0, 0, 40000, 0, 0, 0 }, - {1149,1150, 0, 1, 40000, 0, 0, -0.03125 }, - {1151,1151, 0, 0, 40000, 53, 0, 0 }, - {1152,1152, 0, 0, 10560, 246, 0, 0 }, - {1153,1153, 0, 0, 2700, 153, 0, 0 }, - {1154,1154, 0, 1, 40000, 100, 0, -0.15625 }, - {1155,1155, 0, 0, 40000, 73, 0, 0 }, - {1156,1156, 0, 0, 40000, 220, 0, 0 }, - {1157,1157, 0, 0, 40000, 140, 0, 0 }, - {1158,1158, 0, 0, 40000, 380, 0, 0 }, - {1159,1160, 0, 1, 40000, 400, 0, 0.171875 }, - {1161,1161, 0, 0, 40000, 0, 0, 0 }, - {1162,1162, 0, 0, 40000, 0, 0, 0 }, - {1163,1163, 0, 0, 4733, 906, 0, 0 }, - {1164,1165, 0, 1, 40000, 393, 0, -0.125 }, - {1166,1167, 0, 1, 40000, 366, 0, 0.078125 }, - {1168,1168, 0, 1, 40000, 2453, 0, -0.078125 }, - {1169,1170, 0, 1, 40000, 546, 0, 0.0625 }, - {1171,1172, 0, 1, 40000, 786, 0, 0.15625 }, - {1173,1173, 0, 0, 40000, 0, 0, 0 }, - {1174,1174, 0, 0, 40000, 513, 0, 0 }, - {1175,1176, 0, 1, 2300, 533, 0, 0 }, - {1177,1177, 0, 0, 40000, 80, 0, 0 }, - {1178,1178, 0, 0, 40000, 60, 0, 0 }, - {1179,1179, 0, 0, 40000, 0, 0, 0 }, - {1180,1180, 0, 0, 10653, 86, 0, 0 }, - {1181,1182, 0, 1, 40000, 0, 0, 2.5e-05 }, - {1183,1184, 0, 1, 40000, 86, 0, 0.046875 }, - {1185,1186, 0, 1, 40000, 0, 0, 0.09375 }, - {1187,1188, 0, 1, 40000, 0, 0, 0.09375 }, - {1189,1189, 0, 0, 40000, 133, 0, 0 }, - {1190,1190, 0, 0, 40000, 140, 0, 0 }, - {1191,1191, 0, 0, 40000, 73, 0, 0 }, - {1192,1192, 0, 0, 40000, 60, 0, 0 }, - {1193,1193, 0, 0, 40000, 106, 0, 0 }, - {1194,1194, 0, 0, 40000, 93, 0, 0 }, - {1195,1195, 0, 0, 40000, 66, 0, 0 }, - {1196,1196, 0, 0, 40000, 93, 0, 0 }, - {1197,1197, 0, 0, 40000, 60, 0, 0 }, - {1198,1198, 0, 0, 40000, 66, 0, 0 }, - {1199,1199, 0, 0, 40000, 120, 0, 0 }, - {1200,1200, 0, 0, 40000, 100, 0, 0 }, - {1201,1201, 0, 0, 40000, 86, 0, 0 }, - {1202,1202, 0, 0, 40000, 0, 0, 0 }, - {1203,1203, 0, 0, 40000, 233, 0, 0 }, - {1204,1204, 0, 0, 40000, 100, 0, 0 }, - {1205,1206, 0, 1, 40000, 266, 0, 0.03125 }, - {1207,1208, 0, 1, 40000, 260, 0, -2.5e-05 }, - {1209,1209, 0, 0, 40000, 146, 0, 0 }, - {1210,1211, 0, 1, 40000, 60, 0, 0.03125 }, - {1212,1212, 0, 0, 40000, 53, 0, 0 }, - {1213,1214, 0, 1, 40000, 706, 0, -0.09375 }, - {1215,1216, 0, 1, 40000, 660, 0, -0.046875 }, - {1217,1217, 0, 0, 40000, 133, 0, 0 }, - {1218,1219, 0, 1, 40000, 426, 0, 0.03125 }, - {1220,1220, 0, 1, 40000, 0, 0, 0.03125 }, - {1221,1222, 0, 1, 40000, 260, 0, 0.171875 }, - {1223,1223, 0, 0, 40000, 0, 0, 0 }, - {1224,1224, 0, 0, 6100, 1580, 0, 0 }, - {1225,1150, 0, 1, 40000, 73, 0, -0.03125 }, - {1226,1226, 0, 0, 40000, 1580, 0, 0 }, - {1227,1227, 0, 0, 40000, 40, 0, 0 }, - {1228,1229, 0, 1, 40000, 113, 0, 0.125 }, - {1230,1230, 0, 0, 2666, 846, 0, 0 }, - {1231,1232, 0, 1, 40000, 0, 0, -0.03125 }, - {1233,1234, 0, 1, 9233, 2413, 0, -0.1875 }, - {1235,1235, 0, 0, 40000, 1020, 0, 0 }, - {1236,1236, 0, 0, 40000, 0, 0, 0 }, - {1237,1237, 0, 0, 9633, 3073, 0, 0 }, - {1238,1238, 0, 0, 40000, 0, 0, 0 }, - {1239,1239, 0, 0, 2446, 386, 0, 0 }, - {1240,1241, 0, 1, 3113, 1133, 0, 0 }, - {1242,1242, 0, 0, 18473, 813, 0, 0 }, - {1243,1243, 0, 0, 1206, 660, 0, 0 }, - {1244,1244, 0, 0, 40000, 153, 0, 0 }, - {1245,1245, 0, 0, 40000, 160, 0, 0 }, - {1246,1246, 0, 0, 40000, 133, 0, 0 }, - {1247,1247, 0, 0, 8660, 2386, 0, 0 }, - {1248,1248, 0, 0, 293, 106, 0, 0 }, - {1249,1249, 0, 0, 40000, 433, 0, 0 }, - {1250,1250, 0, 0, 426, 80, 0, 0 }, - {1251,1251, 0, 0, 973, 360, 0, 0 }, - {1252,1252, 0, 0, 573, 153, 0, 0 }, - {1253,1253, 0, 0, 3746, 126, 0, 0 }, - {1254,1254, 0, 0, 2313, 73, 0, 0 }, - {1255,1255, 0, 0, 1473, 106, 0, 0 }, - {1256,1256, 0, 0, 1500, 320, 0, 0 }, - {1257,1257, 0, 0, 5280, 1593, 0, 0 }, - {1258,1258, 0, 0, 40000, 60, 0, 0 }, - {1259,1259, 0, 0, 40000, 146, 0, 0 }, - {1260,1260, 29, 0, 40000, 300, 0, 0 }, - {1261,1261, 65, 0, 40000, 2040, 0, 0 }, - {1262,1262, 0, 0, 626, 240, 0, 0 }, - {1263,1263, 25, 0, 626, 226, 0, 0 }, - {1264,1264, 83, 0, 180, 80, 0, 0 }, - {1265,1265, 32, 0, 260, 140, 0, 0 }, - {1266,1266, 60, 0, 40000, 0, 0, 0 }, - {1267,1267, 36, 0, 286, 40, 0, 0 }, - {1268,1268, 27, 0, 573, 80, 0, 0 }, - {1269,1269, 31, 0, 693, 106, 0, 0 }, - {1270,1270, 21, 0, 500, 146, 0, 0 }, - {1270,1270, 26, 0, 493, 140, 0, 0 }, - {1270,1270, 28, 0, 500, 146, 0, 0 }, - {1271,1271, 60, 0, 2420, 1080, 0, 0 }, - {1270,1270, 32, 0, 413, 126, 0, 0 }, - {1272,1272, 60, 0, 806, 300, 0, 0 }, - {1273,1273, 96, 0, 1146, 493, 0, 0 }, - {1274,1274, 72, 0, 1246, 586, 0, 0 }, - {1275,1275, 79, 0, 286, 106, 0, 0 }, - {1276,1276, 69, 0, 1193, 1046, 0, 0 }, - {1277,1277, 71, 0, 340, 93, 0, 0 }, - {1278,1278, 22, 0, 1880, 653, 0, 0 }, - {1279,1279, 55, 0, 246, 120, 0, 0 }, - {1279,1279, 48, 0, 286, 133, 0, 0 }, - {1280,1280, 0, 0, 40, 93, 0, 0 }, - {1281,1281, 49, 2, 40, 93, 0, 0 }, - {1282,1282, 73, 0, 166, 33, 0, 0 }, - {1282,1282, 68, 0, 166, 33, 0, 0 }, - {1282,1282, 61, 0, 200, 40, 0, 0 }, - {1283,1283, 0, 0, 40, 93, 0, 0 }, - {1284,1284, 0, 0, 40000, 100, 0, 0 }, - {1285,1285, 0, 0, 40000, 60, 0, 0 }, - {1286,1286, 0, 0, 40000, 0, 0, 0 }, - {1287,1287, 0, 0, 10460, 153, 0, 0 }, - {1288,1289, 0, 1, 40000, 0, 0, 0 }, - {1290,1290, 0, 0, 40000, 0, 0, 0 }, - {1291,1292, 36, 1, 353, 153, 0, 0 }, - {1293,1293, 69, 0, 1206, 1060, 0, 0 }, - {1294,1294, 0, 0, 40000, 0, 0, 0 }, - {1295,1295, 0, 0, 40000, 73, 0, 0 }, - {1296,1296, 0, 0, 40000, 0, 0, 0 }, - {1297,1297, 22, 0, 1880, 653, 0, 0 }, - {1298,1298, 0, 0, 40000, 73, 0, 0 }, - {1299,1299, 0, 0, 3913, 420, 0, 0 }, - {1300,1300, 0, 0, 9233, 240, 0, 0 }, - {1301,1301, 0, 0, 4660, 1573, 0, 0 }, - {1302,1302, 0, 0, 1166, 400, 0, 0 }, - {1303,1303, 0, 0, 40000, 126, 0, 0 }, - {1304,1304, 0, 0, 40000, 93, 0, 0 }, - {1305,1305, 0, 0, 40000, 93, 0, 0 }, - {1306,1306, 0, 0, 40000, 553, 0, 0 }, - {1307,1307, 0, 0, 40000, 660, 0, 0 }, - {1308,1308, 0, 0, 40000, 73, 0, 0 }, - {1309,1309, 0, 0, 40000, 146, 0, 0 }, - {1310,1310, 0, 0, 40000, 146, 0, 0 }, - {1311,1311, 0, 0, 4026, 100, 0, 0 }, - {1312,1312, 0, 0, 18226, 100, 0, 0 }, - {1313,1313, 0, 0, 40000, 0, 0, 0 }, - {1314,1314, 0, 0, 40000, 73, 0, 0 }, - {1315,1315, 0, 0, 40000, 140, 0, 0 }, - {1316,1316, 0, 0, 40000, 393, 0, 0 }, - {1317,1317, 0, 0, 40000, 406, 0, 0 }, - {1318,1318, 0, 0, 40000, 373, 0, 0 }, - {1319,1319, 0, 0, 40000, 0, 0, 0 }, - {1320,1320, 0, 0, 40000, 360, 0, 0 }, - {1321,1321, 0, 0, 1060, 380, 0, 0 }, - {1322,1322, 0, 0, 40000, 66, 0, 0 }, - {1323,1323, 0, 0, 40000, 66, 0, 0 }, - {1324,1324, 0, 0, 40000, 86, 0, 0 }, - {1325,1325, 0, 0, 40000, 73, 0, 0 }, - { 260, 260, 0, 0, 40000, 80, 0, 0 }, - {1326,1326, 0, 0, 40000, 80, 0, 0 }, - {1327,1327, 0, 0, 40000, 73, 0, 0 }, - {1328,1328, 0, 0, 40000, 73, 0, 0 }, - {1329,1329, 0, 0, 40000, 153, 0, 0 }, - {1330,1330, 0, 0, 40000, 153, 0, 0 }, - {1331,1331, 0, 0, 40000, 146, 0, 0 }, - {1332,1332, 0, 0, 40000, 146, 0, 0 }, - {1333,1333, 0, 0, 40000, 73, 0, 0 }, - {1334,1334, 0, 0, 40000, 153, 0, 0 }, - {1335,1335, 0, 0, 40000, 233, 0, 0 }, - {1336,1336, 0, 0, 40000, 400, 0, 0 }, - {1337,1337, 0, 0, 40000, 1373, 0, 0 }, - {1338,1338, 0, 0, 40000, 193, 0, 0 }, - {1339,1339, 0, 0, 40000, 1273, 0, 0 }, - {1340,1340, 0, 0, 40000, 186, 0, 0 }, - {1341,1341, 0, 0, 40000, 86, 0, 0 }, - {1342,1342, 0, 0, 7440, 2473, 0, 0 }, - {1343,1343, 0, 0, 40000, 160, 0, 0 }, - {1344,1344, 0, 0, 8966, 406, 0, 0 }, - {1345,1345, 0, 0, 40000, 1353, 0, 0 }, - {1346,1346, 0, 0, 14180, 4406, 0, 0 }, - { 378, 378, 84, 0, 1333, 460, 0, 0 }, - {1347,1347, 24, 0, 1893, 633, 0, 0 }, - {1348,1348, 44, 0, 206, 86, 0, 0 }, - {1349,1349, 40, 0, 586, 140, 0, 0 }, - {1350,1350, 60, 0, 1026, 320, 0, 0 }, - {1351,1351, 0, 0, 6560, 33, 0, 0 }, - {1352,1352, 0, 0, 7373, 2453, 0, 0 }, - {1353,1353, 0, 0, 4660, 1573, 0, 0 }, - {1354,1354, 0, 0, 40000, 346, 0, 0 }, - {1355,1355, 0, 0, 7126, 86, 0, 0 }, - {1356,1356, 0, 0, 40000, 213, 0, 0 }, - {1357,1357, 0, 0, 1180, 340, 0, 0 }, - {1358,1358, 0, 0, 3893, 1466, 0, 0 }, - {1359,1359, 0, 0, 2053, 1173, 0, 0 }, - {1360,1360, 0, 0, 40000, 200, 0, 0 }, - {1361,1361, 0, 0, 40000, 353, 0, 0 }, - {1362,1362, 0, 0, 40000, 273, 0, 0 }, - {1363,1363, 0, 0, 40000, 433, 0, 0 }, - {1364,1364, 0, 0, 1940, 426, 0, 0 }, - {1365,1365, 0, 0, 40000, 80, 0, 0 }, - {1366,1366, 0, 0, 40000, 106, 0, 0 }, - {1367,1367, 0, 0, 40000, 60, 0, 0 }, - {1368,1368, 0, 0, 40000, 140, 0, 0 }, - {1369,1369, 0, 0, 40000, 93, 0, 0 }, - {1370,1370, 0, 0, 40000, 73, 0, 0 }, - {1371,1371, 0, 0, 40000, 73, 0, 0 }, - {1372,1372, 0, 0, 40000, 93, 0, 0 }, - {1373,1373, 0, 0, 40000, 73, 0, 0 }, - {1374,1374, 0, 0, 40000, 80, 0, 0 }, - {1375,1375, 0, 0, 40000, 746, 0, 0 }, - {1376,1376, 0, 0, 2360, 813, 0, 0 }, - {1377,1377, 0, 0, 340, 146, 0, 0 }, - {1378,1378, 35, 0, 713, 273, 0, 0 }, - {1379,1379, 49, 0, 173, 93, 0, 0 }, - {1377,1377, 48, 0, 286, 126, 0, 0 }, - {1380,1380, 58, 0, 173, 100, 0, 0 }, - {1377,1377, 60, 0, 286, 133, 0, 0 }, - {1381,1381, 47, 0, 973, 360, 0, 0 }, - {1382,1382, 60, 0, 146, 86, 0, 0 }, - {1381,1381, 49, 0, 966, 333, 0, 0 }, - {1383,1383, 72, 0, 506, 206, 0, 0 }, - {1381,1381, 51, 0, 953, 340, 0, 0 }, - {1384,1384, 84, 0, 1340, 480, 0, 0 }, - {1381,1381, 54, 0, 986, 360, 0, 0 }, - {1381,1381, 57, 0, 980, 346, 0, 0 }, - {1385,1385, 72, 0, 1573, 440, 0, 0 }, - {1381,1381, 60, 0, 953, 340, 0, 0 }, - {1386,1386, 36, 0, 2673, 900, 0, 0 }, - {1387,1387, 93, 0, 233, 106, 0, 0 }, - {1388,1388, 72, 0, 966, 353, 0, 0 }, - {1389,1389, 84, 0, 1366, 473, 0, 0 }, - {1390,1390, 36, 0, 1326, 446, 0, 0 }, - {1391,1391, 64, 0, 220, 86, 0, 0 }, - {1392,1392, 68, 0, 126, 220, 0, 0 }, - {1393,1393, 0, 0, 4513, 640, 0, 0 }, - {1394,1394, 0, 0, 40000, 353, 0, 0 }, - {1395,1395, 0, 0, 40000, 73, 0, 0 }, - {1396,1396, 0, 0, 2040, 380, 0, 0 }, - {1397,1397, 0, 0, 40000, 240, 0, 0 }, - {1398,1398, 0, 0, 3246, 753, 0, 0 }, - {1399,1399, 0, 0, 40000, 66, 0, 0 }, - {1400,1400, 0, 0, 40000, 0, 0, 0 }, - {1401,1401, 0, 0, 40000, 0, 0, 0 }, - {1402,1402, 0, 0, 7720, 1260, 0, 0 }, - {1403,1403, 0, 0, 213, 6420, 0, 0 }, - {1404,1404, 0, 0, 40000, 66, 0, 0 }, - {1405,1405, 0, 0, 40000, 73, 0, 0 }, - {1406,1406, 0, 0, 40000, 93, 0, 0 }, - {1407,1407, 0, 0, 1606, 640, 0, 0 }, - {1408,1408, 0, 0, 15486, 1580, 0, 0 }, - {1409,1409, 0, 0, 40000, 353, 0, 0 }, - {1410,1410, 0, 0, 40000, 2066, 0, 0 }, - {1411,1411, 0, 0, 40000, 0, 0, 0 }, - {1412,1412, 0, 0, 15453, 73, 0, 0 }, - {1413,1413, 0, 0, 3726, 1240, 0, 0 }, - {1414,1414, 0, 0, 40000, 86, 0, 0 }, - {1415,1415, 0, 0, 40000, 200, 0, 0 }, - {1416,1416, 0, 0, 40000, 53, 0, 0 }, - {1417,1417, 0, 0, 40000, 73, 0, 0 }, - {1418,1418, 0, 0, 40000, 66, 0, 0 }, - {1419,1419, 0, 0, 40000, 26, 0, 0 }, - {1420,1420, 0, 0, 40000, 53, 0, 0 }, - {1421,1421, 0, 0, 40000, 40, 0, 0 }, - {1422,1422, 0, 0, 40000, 126, 0, 0 }, - {1423,1423, 0, 0, 40000, 0, 0, 0 }, - {1424,1424, 0, 0, 13653, 4720, 0, 0 }, - {1425,1425, 0, 0, 12533, 1953, 0, 0 }, - {1426,1426, 0, 0, 973, 1280, 0, 0 }, - {1427,1427, 0, 0, 40000, 426, 0, 0 }, - {1428,1428, 0, 0, 40000, 53, 0, 0 }, - {1429,1429, 0, 0, 40000, 66, 0, 0 }, - {1430,1430, 0, 0, 526, 840, 0, 0 }, - {1431,1431, 0, 0, 286, 1293, 0, 0 }, - {1432,1432, 0, 0, 14726, 4920, 0, 0 }, - {1433,1433, 0, 0, 5233, 633, 0, 0 }, - {1434,1434, 0, 0, 13226, 2500, 0, 0 }, - { 740, 740, 0, 0, 513, 200, 0, 0 }, - {1435,1435, 0, 0, 40000, 5666, 0, 0 }, - { 739, 739, 48, 0, 213, 20, 0, 0 }, - { 500, 500, 55, 0, 100, 26, 0, 0 }, - { 740, 740, 60, 0, 226, 113, 0, 0 }, - { 500, 500, 41, 0, 106, 26, 0, 0 }, - {1436,1436, 84, 0, 160, 26, 0, 0 }, - {1437,1437, 84, 0, 386, 493, 0, 0 }, - { 500, 500, 48, 0, 100, 26, 0, 0 }, - {1438,1438, 15, 0, 340, 140, 0, 0 }, - { 752, 752, 49, 0, 173, 20, 0, 0 }, - {1438,1438, 16, 0, 346, 146, 0, 0 }, - {1438,1438, 12, 0, 340, 140, 0, 0 }, - { 740, 740, 55, 0, 220, 113, 0, 0 }, - { 752, 752, 18, 0, 206, 20, 0, 0 }, - { 752, 752, 15, 0, 200, 20, 0, 0 }, - { 752, 752, 17, 0, 206, 20, 0, 0 }, - {1439,1440, 0, 4, 40000, 0, 0, 0 }, - {1441,1442, 0, 4, 7320, 193, 0, 0 }, - {1443,1444, 0, 4, 11833, 320, 0, 0 }, - {1445,1446, 0, 4, 9920, 326, 0, 0 }, - {1447,1448, 0, 4, 10133, 26, 0, 0 }, - {1449,1450, 0, 4, 7373, 2486, 0, 0 }, - { 181,1451, 0, 4, 2313, 733, 0, 0 }, - {1452,1453, 0, 4, 9213, 240, 0, 0 }, - {1454,1455, 0, 4, 40000, 0, 0, 0 }, - {1456,1457, 0, 4, 660, 126, 0, 0 }, - {1458,1459, 0, 4, 40000, 66, 0, 0 }, - { 190,1460, 0, 4, 40000, 60, 0, 0 }, - { 192,1461, 0, 4, 40000, 73, 0, 0 }, - {1462,1463, 0, 4, 40000, 353, 0, 0 }, - {1464,1465, 0, 4, 40000, 353, 0, 0 }, - {1466,1467, 0, 4, 40000, 66, 0, 0 }, - {1468,1469, 0, 4, 40000, 46, 0, 0 }, - { 35,1470, 0, 4, 40000, 46, 0, 0 }, - { 36,1471, 0, 4, 320, 26, 0, 0 }, - {1472,1473, 0, 4, 320, 26, 0, 0 }, - {1474,1475, 0, 4, 7986, 93, 0, 0 }, - { 39,1476, 0, 4, 1046, 226, 0, 0 }, - {1477,1476, 0, 4, 1046, 226, 0, 0 }, - {1478,1479, 0, 4, 40000, 453, 0, 0 }, - { 50,1480, 0, 4, 40000, 400, 0, 0 }, - {1481,1482, 0, 4, 40000, 133, 0, 0 }, - {1483,1484, 0, 4, 40000, 0, 0, 0 }, - {1485,1486, 0, 4, 40000, 226, 0, 0 }, - { 55,1487, 0, 4, 40000, 100, 0, 0 }, - {1488,1489, 0, 4, 40000, 93, 0, 0 }, - {1490,1491, 0, 4, 40000, 73, 0, 0 }, - {1492,1493, 0, 4, 40000, 73, 0, 0 }, - {1494,1495, 0, 4, 40000, 73, 0, 0 }, - {1496,1497, 0, 4, 40000, 80, 0, 0 }, - {1496,1498, 0, 4, 40000, 73, 0, 0 }, - {1499,1500, 0, 4, 40000, 66, 0, 0 }, - {1501,1502, 0, 4, 40000, 146, 0, 0 }, - {1503,1504, 0, 4, 40000, 93, 0, 0 }, - {1505,1506, 0, 4, 40000, 73, 0, 0 }, - { 86,1507, 0, 4, 40000, 80, 0, 0 }, - {1508,1509, 0, 4, 40000, 0, 0, 0 }, - {1510,1511, 0, 4, 40000, 60, 0, 0 }, - {1512,1513, 0, 4, 40000, 0, 0, 0 }, - {1514,1515, 0, 4, 40000, 0, 0, 0 }, - {1516,1517, 0, 4, 40000, 766, 0, 0 }, - {1518,1519, 0, 4, 5286, 2966, 0, 0 }, - {1520,1521, 0, 4, 40000, 406, 0, 0 }, - {1522,1523, 0, 4, 9040, 360, 0, 0 }, - {1524,1525, 0, 4, 40000, 1200, 0, 0 }, - {1526,1527, 0, 4, 40000, 800, 0, 0 }, - {1528,1529, 0, 4, 40000, 960, 0, 0 }, - { 111,1530, 0, 4, 1193, 433, 0, 0 }, - {1531,1532, 0, 4, 220, 386, 0, 0 }, - { 115,1533, 0, 4, 2413, 1646, 0, 0 }, - {1534,1535, 0, 4, 1853, 640, 0, 0 }, - {1536,1537, 0, 4, 3006, 53, 0, 0 }, - {1538,1539, 0, 4, 1506, 720, 0, 0 }, - {1540, 339, 0, 6, 6, 0, 0, 0 }, - {1541, 339, 0, 6, 6, 0, 0, 0 }, - {1542,1543, 0, 4, 993, 93, 0, 0 }, - {1544,1545, 0, 4, 293, 86, 0, 0 }, - {1546,1547, 0, 4, 40000, 153, 0, 0 }, - { 364, 365, 44, 4, 120, 26, 0, 0 }, - { 129,1548, 48, 4, 173, 93, 0, 0 }, - { 367, 368, 58, 4, 173, 93, 0, 0 }, - { 129,1549, 60, 4, 173, 93, 0, 0 }, - {1550,1551, 48, 4, 520, 200, 0, 0 }, - { 132,1552, 43, 4, 173, 93, 0, 0 }, - {1550,1551, 49, 4, 520, 200, 0, 0 }, - {1553,1554, 43, 4, 160, 80, 0, 0 }, - {1550,1551, 51, 4, 513, 206, 0, 0 }, - { 134,1555, 43, 4, 1686, 613, 0, 0 }, - {1550,1551, 54, 4, 506, 200, 0, 0 }, - {1550,1551, 57, 4, 506, 200, 0, 0 }, - { 380, 381, 72, 4, 1573, 553, 0, 0 }, - {1550,1551, 60, 4, 513, 206, 0, 0 }, - {1556,1557, 70, 4, 766, 306, 0, 0 }, - { 374, 375, 60, 4, 973, 360, 0, 0 }, - {1558,1559, 36, 4, 1126, 420, 0, 0 }, - {1560,1561, 65, 4, 293, 133, 0, 0 }, - {1562,1563, 84, 4, 1353, 300, 0, 0 }, - {1564,1565, 59, 4, 380, 160, 0, 0 }, - {1566,1567, 84, 4, 1586, 566, 0, 0 }, - {1568,1569, 35, 4, 1320, 473, 0, 0 }, - {1570,1571, 44, 4, 406, 93, 0, 0 }, - {1572,1573, 67, 4, 246, 113, 0, 0 }, - {1574,1575, 66, 4, 286, 193, 0, 0 }, - { 145,1576, 59, 4, 140, 120, 0, 0 }, - {1577,1578, 51, 4, 326, 340, 0, 0 }, - {1579,1580, 45, 4, 233, 193, 0, 0 }, - {1581,1582, 71, 4, 433, 180, 0, 0 }, - { 149,1583, 60, 4, 280, 26, 0, 0 }, - {1584,1585, 58, 4, 166, 93, 0, 0 }, - {1586,1587, 53, 4, 173, 93, 0, 0 }, - { 397,1588, 64, 4, 213, 80, 0, 0 }, - {1589,1590, 71, 4, 106, 53, 0, 0 }, - {1591,1592, 61, 4, 973, 340, 0, 0 }, - {1593,1594, 61, 4, 986, 340, 0, 0 }, - { 391, 392, 48, 4, 160, 46, 0, 0 }, - { 391, 393, 48, 4, 380, 60, 0, 0 }, - {1595,1596, 69, 4, 120, 120, 0, 0 }, - { 159,1597, 68, 4, 120, 120, 0, 0 }, - { 159,1597, 63, 4, 140, 153, 0, 0 }, - {1598,1599, 74, 4, 893, 273, 0, 0 }, - {1600,1601, 60, 4, 1006, 306, 0, 0 }, - {1602,1603, 80, 4, 213, 106, 0, 0 }, - {1604,1605, 64, 4, 1346, 486, 0, 0 }, - {1606,1607, 69, 4, 120, 73, 0, 0 }, - { 398, 399, 55, 4, 1533, 193, 0, 0 }, - {1608,1609, 75, 4, 1560, 300, 0, 0 }, - {1610,1611, 68, 4, 120, 120, 0, 0 }, - {1612,1613, 48, 4, 333, 340, 0, 0 }, - {1614,1615, 53, 4, 593, 620, 0, 0 }, - {1616,1616, 0, 0, 40000, 1586, 0, 0 }, - {1617,1617, 0, 0, 40000, 1226, 0, 0 }, - {1618,1618, 0, 0, 4546, 766, 0, 0 }, - {1619,1619, 0, 0, 40000, 420, 0, 0 }, - {1620,1620, 0, 0, 40000, 1573, 0, 0 }, - {1621,1621, 0, 0, 3326, 806, 0, 0 }, - {1622,1622, 0, 0, 40000, 746, 0, 0 }, - {1623,1623, 0, 0, 40000, 900, 0, 0 }, - {1624,1624, 0, 0, 12166, 1573, 0, 0 }, - {1625,1625, 0, 0, 40000, 80, 0, 0 }, - {1626,1626, 0, 0, 40000, 80, 0, 0 }, - {1627,1627, 0, 0, 40000, 80, 0, 0 }, - {1628,1628, 0, 0, 40000, 2713, 0, 0 }, - {1629,1629, 0, 0, 40000, 86, 0, 0 }, - {1630,1630, 0, 0, 40000, 80, 0, 0 }, - {1631,1631, 0, 0, 40000, 80, 0, 0 }, - {1632,1632, 0, 0, 40000, 813, 0, 0 }, - {1633,1633, 0, 0, 40000, 80, 0, 0 }, - {1634,1634, 0, 0, 40000, 80, 0, 0 }, - {1635,1635, 0, 0, 40000, 80, 0, 0 }, - {1636,1636, 0, 0, 40000, 193, 0, 0 }, - {1637,1637, 0, 0, 2920, 733, 0, 0 }, - {1638,1638, 0, 0, 40000, 373, 0, 0 }, - {1639,1639, 0, 0, 2286, 226, 0, 0 }, - {1640,1640, 0, 0, 40000, 226, 0, 0 }, - {1641,1641, 0, 0, 40000, 226, 0, 0 }, - {1642,1642, 0, 0, 40000, 433, 0, 0 }, - {1643,1643, 0, 0, 40000, 813, 0, 0 }, - {1644,1644, 0, 0, 40000, 80, 0, 0 }, - {1645,1645, 0, 0, 40000, 80, 0, 0 }, - {1646,1646, 0, 0, 40000, 80, 0, 0 }, - {1647,1647, 0, 0, 40000, 80, 0, 0 }, - {1648,1648, 0, 0, 40000, 80, 0, 0 }, - {1649,1649, 0, 0, 40000, 80, 0, 0 }, - {1650,1650, 0, 0, 40000, 146, 0, 0 }, - {1651,1651, 0, 0, 40000, 1280, 0, 0 }, - {1652,1652, 0, 0, 40000, 513, 0, 0 }, - {1653,1653, 0, 0, 40000, 313, 0, 0 }, - {1654,1654, 0, 0, 40000, 773, 0, 0 }, - {1655,1655, 0, 0, 7400, 2480, 0, 0 }, - {1656,1656, 0, 0, 3760, 1253, 0, 0 }, - {1657,1657, 0, 0, 40000, 380, 0, 0 }, - {1658,1658, 0, 0, 40000, 333, 0, 0 }, - {1659,1659, 0, 0, 40000, 2926, 0, 0 }, - {1660,1660, 0, 0, 40000, 5666, 0, 0 }, - {1661,1661, 0, 0, 40000, 1613, 0, 0 }, - {1662,1662, 0, 0, 3746, 1273, 0, 0 }, - {1663,1663, 0, 0, 13653, 4720, 0, 0 }, - {1664,1664, 0, 0, 4640, 1553, 0, 0 }, - {1665,1665, 0, 0, 40000, 680, 0, 0 }, - {1666,1666, 0, 0, 6393, 426, 0, 0 }, - {1667,1667, 0, 0, 40000, 713, 0, 0 }, - {1668,1668, 12, 0, 166, 20, 0, 0 }, - {1669,1669, 48, 0, 460, 193, 0, 0 }, - { 736, 736, 52, 0, 286, 20, 0, 0 }, - {1670,1670, 48, 0, 506, 200, 0, 0 }, - {1670,1670, 36, 0, 713, 260, 0, 0 }, - { 377, 377, 84, 0, 386, 493, 0, 0 }, - { 730, 730, 95, 0, 1886, 653, 0, 0 }, - {1669,1669, 84, 0, 386, 166, 0, 0 }, - { 755, 755, 20, 0, 633, 240, 0, 0 }, - { 755, 755, 22, 0, 626, 240, 0, 0 }, - { 755, 755, 24, 0, 633, 246, 0, 0 }, - {1671,1671, 0, 0, 2233, 220, 0, 0 }, - {1672,1672, 0, 0, 2233, 240, 0, 0 }, - {1673,1673, 0, 0, 2233, 206, 0, 0 }, - {1674,1674, 0, 0, 2126, 173, 0, 0 }, - {1675,1675, 0, 0, 7473, 73, 0, 0 }, - {1676,1676, 0, 0, 40000, 0, 0, 0 }, - {1677,1677, 0, 0, 3493, 193, 0, 0 }, - {1678,1678, 0, 0, 1746, 73, 0, 0 }, - {1679,1679, 0, 0, 1013, 400, 0, 0 }, - {1680,1680, 0, 0, 3473, 1560, 0, 0 }, - {1681,1681, 0, 0, 1073, 40, 0, 0 }, - {1682,1682, 0, 0, 40000, 380, 0, 0 }, - {1683,1683, 0, 0, 1166, 400, 0, 0 }, - {1684,1684, 0, 0, 606, 146, 0, 0 }, - {1685,1685, 0, 0, 4553, 1486, 0, 0 }, - {1686,1686, 0, 0, 1126, 80, 0, 0 }, - {1687,1687, 0, 0, 40000, 73, 0, 0 }, - {1688,1688, 0, 0, 40000, 60, 0, 0 }, - {1689,1689, 0, 0, 40000, 66, 0, 0 }, - {1690,1690, 0, 0, 40000, 73, 0, 0 }, - {1691,1691, 0, 0, 40000, 73, 0, 0 }, - {1692,1692, 0, 0, 40000, 73, 0, 0 }, - {1693,1693, 0, 0, 40000, 73, 0, 0 }, - {1694,1694, 0, 0, 6380, 53, 0, 0 }, - {1695,1695, 0, 0, 6380, 60, 0, 0 }, - {1696,1696, 0, 0, 40000, 53, 0, 0 }, - {1697,1697, 0, 0, 40000, 0, 0, 0 }, - {1698,1698, 0, 0, 1880, 80, 0, 0 }, - {1699,1699, 0, 0, 40000, 60, 0, 0 }, - {1700,1700, 0, 0, 40000, 60, 0, 0 }, - {1701,1701, 0, 0, 1460, 80, 0, 0 }, - {1702,1702, 0, 0, 40000, 73, 0, 0 }, - {1703,1703, 0, 0, 40000, 0, 0, 0 }, - {1704,1704, 0, 0, 40000, 146, 0, 0 }, - {1705,1705, 0, 0, 40000, 66, 0, 0 }, - {1706,1706, 0, 0, 40000, 73, 0, 0 }, - {1707,1707, 0, 0, 40000, 160, 0, 0 }, - {1708,1708, 0, 0, 40000, 73, 0, 0 }, - {1709,1709, 0, 0, 40000, 193, 0, 0 }, - {1710,1710, 0, 0, 3740, 1260, 0, 0 }, - {1711,1711, 0, 0, 40000, 180, 0, 0 }, - {1712,1712, 0, 0, 40000, 173, 0, 0 }, - {1713,1713, 0, 0, 40000, 113, 0, 0 }, - {1714,1714, 0, 0, 40000, 86, 0, 0 }, - {1715,1715, 0, 0, 1853, 633, 0, 0 }, - {1716,1716, 0, 0, 40000, 0, 0, 0 }, - {1717,1717, 0, 0, 1066, 306, 0, 0 }, - {1718,1718, 0, 0, 40000, 86, 0, 0 }, - {1719,1719, 0, 0, 40000, 586, 0, 0 }, - {1720,1720, 0, 0, 40000, 86, 0, 0 }, - {1721,1721, 0, 0, 40000, 93, 0, 0 }, - {1722,1722, 0, 0, 40000, 373, 0, 0 }, - {1723,1723, 0, 0, 40000, 113, 0, 0 }, - {1724,1724, 0, 0, 40000, 353, 0, 0 }, - {1725,1725, 0, 0, 420, 73, 0, 0 }, - {1726,1726, 0, 0, 40000, 66, 0, 0 }, - {1727,1727, 0, 0, 40000, 53, 0, 0 }, - {1728,1728, 0, 0, 40000, 66, 0, 0 }, - {1729,1729, 0, 0, 40000, 100, 0, 0 }, - {1730,1730, 0, 0, 40000, 93, 0, 0 }, - {1731,1731, 0, 0, 40000, 0, 0, 0 }, - {1732,1732, 0, 0, 40000, 73, 0, 0 }, - {1733,1733, 0, 0, 40000, 80, 0, 0 }, - {1734,1734, 0, 0, 40000, 80, 0, 0 }, - {1735,1735, 0, 0, 40000, 80, 0, 0 }, - {1736,1736, 0, 0, 40000, 80, 0, 0 }, - {1737,1737, 0, 0, 40000, 80, 0, 0 }, - {1738,1738, 0, 0, 40000, 73, 0, 0 }, - {1739,1739, 0, 0, 40000, 73, 0, 0 }, - {1740,1740, 0, 0, 40000, 106, 0, 0 }, - {1741,1741, 0, 0, 40000, 73, 0, 0 }, - {1742,1742, 0, 0, 40000, 73, 0, 0 }, - {1743,1743, 0, 0, 40000, 80, 0, 0 }, - {1744,1744, 0, 0, 40000, 0, 0, 0 }, - {1745,1745, 0, 0, 40000, 80, 0, 0 }, - {1746,1746, 0, 0, 40000, 66, 0, 0 }, - {1747,1747, 0, 0, 40000, 73, 0, 0 }, - {1748,1748, 0, 0, 40000, 0, 0, 0 }, - {1749,1749, 0, 0, 40000, 80, 0, 0 }, - {1750,1750, 0, 0, 40000, 66, 0, 0 }, - {1751,1751, 0, 0, 40000, 73, 0, 0 }, - {1752,1752, 0, 0, 40000, 80, 0, 0 }, - {1753,1753, 0, 0, 40000, 33, 0, 0 }, - {1754,1754, 0, 0, 40000, 0, 0, 0 }, - {1755,1755, 0, 0, 40000, 266, 0, 0 }, - {1756,1756, 0, 0, 40000, 160, 0, 0 }, - {1757,1757, 0, 0, 40000, 93, 0, 0 }, - {1758,1758, 0, 0, 40000, 660, 0, 0 }, - {1759,1759, 0, 0, 40000, 1453, 0, 0 }, - {1760,1760, 0, 0, 40000, 660, 0, 0 }, - {1761,1761, 0, 0, 40000, 120, 0, 0 }, - {1762,1762, 0, 0, 40000, 140, 0, 0 }, - {1763,1763, 0, 0, 9820, 393, 0, 0 }, - {1764,1764, 0, 0, 40000, 73, 0, 0 }, - {1765,1765, 0, 0, 3620, 1166, 0, 0 }, - {1766,1766, 0, 0, 40000, 0, 0, 0 }, - {1767,1767, 0, 0, 40000, 0, 0, 0 }, - {1768,1768, 0, 0, 40000, 813, 0, 0 }, - {1769,1769, 0, 0, 40000, 0, 0, 0 }, - {1770,1770, 0, 0, 40000, 2386, 0, 0 }, - {1771,1771, 0, 0, 4380, 400, 0, 0 }, - {1772,1772, 0, 0, 853, 220, 0, 0 }, - {1773,1773, 0, 0, 3700, 93, 0, 0 }, - {1774,1774, 0, 0, 1580, 300, 0, 0 }, - {1775,1775, 0, 0, 453, 140, 0, 0 }, - {1776,1776, 0, 0, 40000, 66, 0, 0 }, - {1777,1777, 0, 0, 40000, 73, 0, 0 }, - {1778,1778, 0, 0, 40000, 206, 0, 0 }, - {1779,1779, 0, 0, 4646, 1560, 0, 0 }, - {1780,1780, 0, 0, 353, 146, 0, 0 }, - {1781,1781, 0, 0, 1300, 400, 0, 0 }, - {1782,1782, 0, 0, 4593, 1546, 0, 0 }, - {1783,1783, 0, 0, 613, 226, 0, 0 }, - {1784,1784, 0, 0, 626, 233, 0, 0 }, - {1785,1785, 0, 0, 3020, 66, 0, 0 }, - {1786,1786, 0, 0, 1093, 186, 0, 0 }, - {1787,1787, 0, 0, 6053, 1240, 0, 0 }, - {1788,1788, 0, 0, 633, 126, 0, 0 }, - {1789,1789, 0, 0, 40000, 66, 0, 0 }, - {1790,1790, 0, 0, 40000, 73, 0, 0 }, - {1791,1791, 0, 0, 40000, 1253, 0, 0 }, - {1792,1792, 0, 0, 626, 246, 0, 0 }, - {1793,1793, 48, 0, 293, 120, 0, 0 }, - {1794,1794, 48, 0, 100, 40, 0, 0 }, - {1795,1795, 60, 0, 240, 133, 0, 0 }, - {1796,1796, 60, 0, 160, 66, 0, 0 }, - {1797,1797, 70, 0, 140, 33, 0, 0 }, - {1798,1798, 51, 0, 526, 206, 0, 0 }, - {1799,1799, 60, 0, 173, 93, 0, 0 }, - {1798,1798, 54, 0, 520, 200, 0, 0 }, - {1800,1800, 60, 0, 153, 80, 0, 0 }, - {1798,1798, 56, 0, 520, 206, 0, 0 }, - {1801,1801, 60, 0, 673, 206, 0, 0 }, - {1798,1798, 61, 0, 506, 200, 0, 0 }, - {1798,1798, 63, 0, 513, 206, 0, 0 }, - {1802,1802, 48, 0, 673, 200, 0, 0 }, - {1798,1798, 68, 0, 440, 180, 0, 0 }, - {1803,1803, 60, 0, 1873, 653, 0, 0 }, - {1804,1804, 60, 0, 673, 200, 0, 0 }, - {1805,1805, 66, 0, 306, 120, 0, 0 }, - {1806,1806, 60, 0, 673, 200, 0, 0 }, - { 379, 379, 59, 0, 173, 93, 0, 0 }, - {1802,1802, 64, 0, 673, 206, 0, 0 }, - {1807,1807, 48, 0, 1006, 20, 0, 0 }, - {1808,1808, 56, 0, 120, 40, 0, 0 }, - {1809,1809, 53, 0, 286, 133, 0, 0 }, - {1810,1810, 65, 0, 106, 46, 0, 0 }, - {1811,1811, 49, 0, 293, 133, 0, 0 }, - {1811,1811, 43, 0, 293, 133, 0, 0 }, - { 386, 386, 65, 0, 1013, 673, 0, 0 }, - { 386, 386, 60, 0, 1000, 660, 0, 0 }, - {1812,1812, 70, 0, 260, 113, 0, 0 }, - {1812,1812, 65, 0, 306, 120, 0, 0 }, - {1813,1813, 60, 0, 246, 106, 0, 0 }, - {1814,1814, 60, 0, 193, 120, 0, 0 }, - {1815,1815, 56, 0, 206, 13, 0, 0 }, - {1816,1816, 53, 0, 433, 73, 0, 0 }, - {1817,1817, 60, 0, 220, 113, 0, 0 }, - {1818,1818, 48, 0, 300, 66, 0, 0 }, - {1819,1819, 69, 0, 126, 0, 0, 0 }, - { 328, 328, 67, 0, 140, 93, 0, 0 }, - { 328, 328, 62, 0, 153, 100, 0, 0 }, - {1820,1820, 65, 0, 433, 100, 0, 0 }, - {1821,1821, 60, 0, 426, 100, 0, 0 }, - {1822,1822, 63, 0, 113, 46, 0, 0 }, - {1823,1823, 63, 0, 1866, 653, 0, 0 }, - {1824,1824, 67, 0, 273, 60, 0, 0 }, - {1825,1825, 60, 0, 973, 360, 0, 0 }, - {1825,1825, 72, 0, 806, 273, 0, 0 }, - { 401, 401, 62, 0, 46, 33, 0, 0 }, - {1826,1826, 48, 0, 126, 66, 0, 0 }, - {1827,1827, 53, 0, 980, 353, 0, 0 }, - {1828,1828, 60, 0, 293, 133, 0, 0 }, - {1829,1829, 60, 0, 160, 20, 0, 0 }, - {1830,1830, 60, 0, 126, 86, 0, 0 }, - {1831,1831, 60, 0, 173, 93, 0, 0 }, - {1832,1832, 0, 0, 40000, 106, 0, 0 }, - {1833,1833, 0, 0, 3780, 73, 0, 0 }, - {1834,1834, 0, 0, 3820, 1666, 0, 0 }, - {1835,1835, 0, 0, 40000, 73, 0, 0 }, - {1836,1836, 0, 0, 40000, 333, 0, 0 }, - {1837,1837, 0, 0, 40000, 220, 0, 0 }, - {1838,1838, 0, 0, 40000, 0, 0, 0 }, - {1839,1839, 0, 0, 40000, 53, 0, 0 }, - {1840,1840, 0, 0, 40000, 60, 0, 0 }, - {1841,1841, 0, 0, 5913, 2306, 0, 0 }, - {1842,1842, 0, 0, 7713, 2466, 0, 0 }, - { 525, 525, 0, 0, 4660, 660, 0, 0 }, - {1843,1843, 0, 0, 40000, 313, 0, 0 }, - {1844,1844, 0, 0, 40000, 0, 0, 0 }, - {1845,1845, 0, 0, 40000, 0, 0, 0 }, - {1846,1846, 0, 0, 1246, 453, 0, 0 }, - {1847,1847, 0, 0, 9600, 1580, 0, 0 }, - {1848,1848, 0, 0, 40000, 106, 0, 0 }, - {1849,1849, 0, 0, 2040, 400, 0, 0 }, - {1850,1850, 0, 0, 40000, 73, 0, 0 }, - {1851,1851, 0, 0, 4220, 620, 0, 0 }, - {1852,1852, 0, 0, 40000, 0, 0, 0 }, - {1853,1853, 0, 0, 40000, 433, 0, 0 }, - {1854,1854, 0, 0, 40000, 66, 0, 0 }, - {1855,1855, 0, 0, 40000, 46, 0, 0 }, - {1856,1856, 0, 0, 40000, 240, 0, 0 }, - {1857,1857, 0, 0, 40000, 313, 0, 0 }, - {1858,1858, 0, 0, 40000, 26, 0, 0 }, - {1859,1859, 0, 0, 40000, 0, 0, 0 }, - {1860,1860, 0, 0, 40000, 73, 0, 0 }, - {1861,1861, 0, 0, 6940, 66, 0, 0 }, - {1862,1862, 0, 0, 40000, 0, 0, 0 }, - {1863,1863, 0, 0, 40000, 60, 0, 0 }, - {1864,1864, 0, 0, 8140, 1440, 0, 0 }, - {1865,1865, 0, 0, 40000, 0, 0, 0 }, - {1866,1866, 0, 0, 40000, 613, 0, 0 }, - {1867,1867, 0, 0, 40000, 0, 0, 0 }, - {1868,1868, 0, 0, 633, 233, 0, 0 }, - {1869,1869, 0, 0, 40000, 226, 0, 0 }, - {1870,1870, 0, 0, 2280, 746, 0, 0 }, - {1871,1871, 0, 0, 1940, 633, 0, 0 }, - {1872,1872, 0, 0, 4220, 620, 0, 0 }, - {1873,1873, 0, 0, 40000, 133, 0, 0 }, - {1874,1874, 41, 0, 380, 153, 0, 0 }, - {1875,1875, 70, 0, 106, 26, 0, 0 }, - {1876,1876, 60, 0, 380, 206, 0, 0 }, - {1877,1877, 80, 0, 100, 26, 0, 0 }, - {1878,1878, 84, 0, 120, 60, 0, 0 }, - {1879,1879, 72, 0, 500, 433, 0, 0 }, - {1880,1880, 84, 0, 860, 553, 0, 0 }, - { 128, 128, 70, 0, 106, 26, 0, 0 }, - { 132, 132, 60, 0, 146, 86, 0, 0 }, - {1881,1882, 0, 4, 40000, 260, 0, 0 }, - {1883,1883, 0, 0, 40000, 0, 0, 0 }, - {1884,1885, 0, 4, 40000, 73, 0, 0 }, - {1886,1887, 0, 4, 40000, 86, 0, 0 }, - {1888,1889, 0, 4, 40000, 73, 0, 0 }, - {1890,1890, 0, 0, 40000, 300, 0, 0 }, - {1891,1891, 0, 0, 40000, 693, 0, 0 }, - {1892,1892, 0, 0, 40000, 586, 0, 0 }, - {1893,1893, 0, 0, 40000, 286, 0, 0 }, - {1894,1894, 0, 0, 1620, 773, 0, 0 }, - {1895,1895, 0, 0, 40000, 0, 0, 0 }, - {1896,1896, 0, 0, 40000, 193, 0, 0 }, - {1897,1897, 0, 0, 1873, 820, 0, 0 }, - {1898,1898, 0, 0, 4520, 753, 0, 0 }, - {1899,1899, 0, 0, 40000, 0, 0, 0 }, - {1900,1900, 0, 0, 40000, 220, 0, 0 }, - {1901,1901, 0, 0, 40000, 133, 0, 0 }, - {1902,1902, 0, 0, 40000, 73, 0, 0 }, - {1903,1903, 0, 0, 40000, 0, 0, 0 }, - {1904,1904, 0, 0, 7326, 2420, 0, 0 }, - {1905,1905, 0, 0, 1186, 446, 0, 0 }, - {1906,1906, 0, 0, 40000, 553, 0, 0 }, - {1907,1907, 0, 0, 40000, 293, 0, 0 }, - {1908,1908, 0, 0, 40000, 586, 0, 0 }, - {1909,1909, 0, 0, 2326, 793, 0, 0 }, - { 501, 501, 0, 0, 480, 226, 0, 0 }, - {1910,1910, 0, 0, 40000, 93, 0, 0 }, - {1911,1911, 0, 0, 620, 226, 0, 0 }, - {1912,1912, 0, 0, 2373, 800, 0, 0 }, - {1913,1913, 0, 0, 40000, 4986, 0, 0 }, - {1914,1914, 0, 0, 626, 240, 0, 0 }, - { 511, 511, 0, 0, 2326, 800, 0, 0 }, - {1915,1915, 0, 0, 340, 146, 0, 0 }, - {1910,1910, 60, 0, 40000, 93, 0, 0 }, - { 511, 511, 72, 0, 1566, 546, 0, 0 }, - {1915,1915, 84, 0, 246, 120, 0, 0 }, - {1916,1916, 0, 0, 40000, 0, 0, 0 }, - {1917,1917, 0, 0, 2713, 666, 0, 0 }, - {1918,1918, 0, 0, 40000, 0, 0, 0 }, - {1919,1919, 0, 0, 40000, 46, 0, 0 }, - {1920,1920, 0, 0, 40000, 0, 0, 0 }, - {1921,1921, 0, 0, 40000, 53, 0, 0 }, - {1922,1922, 0, 0, 40000, 33, 0, 0 }, - {1923,1923, 0, 0, 2073, 193, 0, 0 }, - {1924,1924, 0, 0, 40000, 146, 0, 0 }, - {1925,1925, 0, 0, 40000, 100, 0, 0 }, - {1926,1926, 0, 0, 40000, 93, 0, 0 }, - {1927,1927, 0, 0, 40000, 73, 0, 0 }, - {1928,1928, 0, 0, 40000, 540, 0, 0 }, - {1929,1929, 0, 0, 40000, 520, 0, 0 }, - {1930,1930, 0, 0, 40000, 506, 0, 0 }, - {1931,1931, 0, 0, 7406, 200, 0, 0 }, - {1932,1932, 0, 0, 5906, 133, 0, 0 }, - {1933,1933, 0, 0, 7426, 240, 0, 0 }, - {1934,1934, 0, 0, 7426, 240, 0, 0 }, - {1935,1935, 0, 0, 40000, 66, 0, 0 }, - {1936,1936, 0, 0, 40000, 66, 0, 0 }, - {1937,1937, 0, 0, 40000, 53, 0, 0 }, - {1938,1938, 0, 0, 40000, 66, 0, 0 }, - {1939,1939, 0, 0, 40000, 66, 0, 0 }, - {1940,1940, 0, 0, 40000, 53, 0, 0 }, - {1941,1941, 0, 0, 40000, 2146, 0, 0 }, - {1942,1942, 0, 0, 40000, 1126, 0, 0 }, - {1943,1943, 0, 0, 40000, 1020, 0, 0 }, - {1944,1944, 0, 0, 40000, 433, 0, 0 }, - {1945,1945, 0, 0, 40000, 0, 0, 0 }, - {1946,1946, 0, 0, 40000, 140, 0, 0 }, - {1947,1947, 0, 0, 4660, 660, 0, 0 }, - {1948,1948, 0, 0, 40000, 66, 0, 0 }, - {1949,1949, 0, 0, 40000, 4193, 0, 0 }, - {1950,1950, 0, 0, 7713, 2466, 0, 0 }, - {1951,1951, 0, 0, 40000, 73, 0, 0 }, - {1952,1952, 0, 0, 8100, 2093, 0, 0 }, - {1953,1953, 0, 0, 40000, 86, 0, 0 }, - {1954,1954, 0, 0, 40000, 80, 0, 0 }, - {1955,1955, 0, 0, 4113, 1526, 0, 0 }, - {1956,1956, 0, 0, 40000, 66, 0, 0 }, - {1957,1957, 0, 0, 40000, 100, 0, 0 }, - {1958,1958, 0, 0, 40000, 213, 0, 0 }, - {1959,1959, 0, 0, 40000, 100, 0, 0 }, - {1960,1960, 0, 0, 1186, 100, 0, 0 }, - {1961,1961, 0, 0, 40000, 433, 0, 0 }, - {1962,1962, 0, 0, 40000, 146, 0, 0 }, - {1963,1963, 0, 0, 40000, 400, 0, 0 }, - {1964,1964, 0, 0, 40000, 66, 0, 0 }, - {1965,1965, 0, 0, 40000, 193, 0, 0 }, - {1966,1966, 0, 0, 1153, 100, 0, 0 }, - {1967,1967, 0, 0, 4800, 1400, 0, 0 }, - {1968,1968, 0, 0, 2906, 713, 0, 0 }, - {1969,1969, 0, 0, 40000, 73, 0, 0 }, - {1970,1970, 0, 0, 2280, 746, 0, 0 }, - {1971,1971, 0, 0, 40000, 66, 0, 0 }, - {1972,1972, 0, 0, 40000, 86, 0, 0 }, - {1973,1973, 0, 0, 40000, 86, 0, 0 }, - {1974,1974, 0, 0, 40000, 66, 0, 0 }, - {1975,1975, 0, 0, 40000, 66, 0, 0 }, - {1976,1976, 0, 0, 40000, 66, 0, 0 }, - {1977,1977, 0, 0, 40000, 46, 0, 0 }, - {1978,1978, 0, 0, 40000, 73, 0, 0 }, - {1979,1979, 0, 0, 40000, 73, 0, 0 }, - {1980,1980, 0, 0, 40000, 66, 0, 0 }, - {1981,1981, 0, 0, 40000, 66, 0, 0 }, - {1982,1982, 0, 0, 40000, 66, 0, 0 }, - {1983,1983, 0, 0, 40000, 73, 0, 0 }, - {1984,1984, 0, 0, 40000, 73, 0, 0 }, - {1985,1985, 0, 0, 40000, 253, 0, 0 }, - {1986,1986, 0, 0, 40000, 126, 0, 0 }, - {1987,1987, 0, 0, 40000, 126, 0, 0 }, - {1988,1988, 0, 0, 40000, 66, 0, 0 }, - {1989,1989, 0, 0, 40000, 66, 0, 0 }, - {1990,1990, 0, 0, 40000, 53, 0, 0 }, - {1991,1991, 0, 0, 40000, 140, 0, 0 }, - {1992,1992, 0, 0, 40000, 40, 0, 0 }, - {1993,1993, 0, 0, 40000, 73, 0, 0 }, - {1994,1994, 0, 0, 40000, 66, 0, 0 }, - {1995,1995, 0, 0, 40000, 73, 0, 0 }, - {1996,1996, 0, 0, 40000, 73, 0, 0 }, - {1997,1997, 0, 0, 40000, 73, 0, 0 }, - {1998,1998, 0, 0, 40000, 73, 0, 0 }, - {1999,1999, 0, 0, 40000, 66, 0, 0 }, - {2000,2000, 0, 0, 40000, 433, 0, 0 }, - {2001,2001, 0, 0, 40000, 433, 0, 0 }, - {2002,2002, 0, 0, 2440, 706, 0, 0 }, - {2003,2003, 0, 0, 13960, 4800, 0, 0 }, - {2004,2004, 0, 0, 7393, 2480, 0, 0 }, - {2005,2005, 0, 0, 7220, 2073, 0, 0 }, - {2006,2006, 0, 0, 633, 233, 0, 0 }, - {2007,2007, 0, 0, 2326, 780, 0, 0 }, - {2008,2008, 0, 0, 40000, 73, 0, 0 }, - {2009,2009, 0, 0, 40000, 106, 0, 0 }, - {2010,2010, 0, 0, 40000, 126, 0, 0 }, - {2011,2011, 0, 0, 40000, 386, 0, 0 }, - {2012,2012, 0, 0, 40000, 66, 0, 0 }, - {2013,2013, 0, 0, 6893, 1273, 0, 0 }, - {2014,2014, 0, 0, 2546, 633, 0, 0 }, - {2015,2015, 0, 0, 206, 106, 0, 0 }, - {2016,2016, 0, 0, 213, 113, 0, 0 }, - {2017,2017, 0, 0, 360, 140, 0, 0 }, - {2018,2018, 0, 0, 1013, 193, 0, 0 }, - {2019,2019, 0, 0, 266, 66, 0, 0 }, - {2020,2020, 0, 0, 1880, 660, 0, 0 }, - {2021,2021, 0, 0, 286, 206, 0, 0 }, - {2022,2022, 0, 0, 3706, 1353, 0, 0 }, - {2023,2023, 0, 0, 1106, 380, 0, 0 }, - {2024,2024, 0, 0, 13220, 2466, 0, 0 }, - {2025,2025, 0, 0, 333, 26, 0, 0 }, - {2026,2026, 0, 0, 7346, 2440, 0, 0 }, - {2027,2027, 0, 0, 1273, 453, 0, 0 }, - { 352, 352, 51, 2, 6, 0, 0, 0 }, - {2028,2028, 35, 0, 700, 253, 0, 0 }, - {2028,2028, 36, 0, 706, 266, 0, 0 }, - {2029,2029, 47, 0, 100, 33, 0, 0 }, - {2030,2030, 38, 0, 346, 140, 0, 0 }, - {2019,2019, 39, 0, 220, 106, 0, 0 }, - {2031,2031, 45, 0, 286, 133, 0, 0 }, - { 492, 492, 41, 0, 1040, 406, 0, 0 }, - {2032,2032, 42, 0, 220, 106, 0, 0 }, - {2033,2033, 44, 0, 500, 193, 0, 0 }, - { 492, 492, 48, 0, 833, 346, 0, 0 }, - {2034,2034, 46, 0, 1866, 646, 0, 0 }, - { 492, 492, 53, 0, 873, 386, 0, 0 }, - { 167, 167, 56, 0, 646, 353, 0, 0 }, - {2035,2035, 61, 0, 366, 146, 0, 0 }, - {2036,2036, 56, 0, 1346, 473, 0, 0 }, - {2037,2037, 60, 0, 213, 126, 0, 0 }, - { 144, 144, 59, 0, 213, 126, 0, 0 }, - {2038,2038, 59, 0, 106, 40, 0, 0 }, - { 169, 169, 51, 0, 380, 366, 0, 0 }, - { 169, 169, 45, 0, 380, 366, 0, 0 }, - {2039,2039, 72, 0, 246, 20, 0, 0 }, - {2040,2040, 60, 0, 280, 20, 0, 0 }, - {2041,2041, 58, 0, 373, 360, 0, 0 }, - {2042,2042, 53, 0, 380, 366, 0, 0 }, - {2043,2043, 73, 0, 120, 26, 0, 0 }, - { 158, 158, 75, 0, 126, 140, 0, 0 }, - {2044,2044, 0, 0, 6786, 1073, 0, 0 }, - {2045,2045, 0, 0, 2046, 473, 0, 0 }, - {2046,2046, 0, 0, 3746, 1273, 0, 0 }, - {2047,2047, 0, 0, 1200, 3086, 0, 0 }, - {2048,2048, 0, 0, 1200, 3080, 0, 0 }, - {2049,2049, 0, 0, 40000, 2453, 0, 0 }, - {2050,2050, 0, 0, 40000, 413, 0, 0 }, - {2051,2051, 0, 0, 980, 2553, 0, 0 }, - {2052,2052, 0, 0, 40000, 2420, 0, 0 }, - {2053,2053, 0, 0, 40000, 2506, 0, 0 }, - {2054,2054, 0, 0, 40000, 380, 0, 0 }, - {2055,2055, 0, 0, 40000, 660, 0, 0 }, - {2056,2056, 0, 0, 40000, 73, 0, 0 }, - {2057,2057, 0, 0, 40000, 333, 0, 0 }, - {2058,2058, 0, 0, 833, 146, 0, 0 }, - {2059,2059, 0, 0, 1686, 620, 0, 0 }, - {2060,2060, 0, 0, 40000, 73, 0, 0 }, - {2061,2061, 0, 0, 40000, 0, 0, 0 }, - {2062,2062, 0, 0, 1873, 633, 0, 0 }, - {2063,2063, 0, 0, 40000, 380, 0, 0 }, - {2064,2064, 0, 0, 366, 286, 0, 0 }, - {2065,2065, 0, 0, 8866, 1366, 0, 0 }, - {2066,2066, 0, 0, 40000, 1513, 0, 0 }, - {2067,2067, 0, 0, 40000, 333, 0, 0 }, - {2068,2068, 0, 0, 9600, 1573, 0, 0 }, - {2069,2069, 0, 0, 3293, 746, 0, 0 }, - {2070,2070, 0, 0, 40000, 53, 0, 0 }, - {2071,2071, 0, 0, 40000, 73, 0, 0 }, - {2072,2072, 0, 0, 40000, 73, 0, 0 }, - {2073,2073, 0, 0, 40000, 240, 0, 0 }, - {2074,2074, 0, 0, 40000, 240, 0, 0 }, - {2075,2075, 0, 0, 40000, 140, 0, 0 }, - {2076,2076, 0, 0, 40000, 113, 0, 0 }, - {2077,2077, 0, 0, 40000, 240, 0, 0 }, - {2078,2078, 0, 0, 3613, 1146, 0, 0 }, - {2079,2079, 0, 0, 40000, 126, 0, 0 }, - {2080,2080, 0, 0, 40000, 0, 0, 0 }, - {2081,2081, 0, 0, 40000, 633, 0, 0 }, - {2082,2082, 0, 0, 40000, 453, 0, 0 }, - {2083,2083, 0, 0, 40000, 1146, 0, 0 }, - {2084,2084, 0, 0, 40000, 3600, 0, 0 }, - {2085,2085, 0, 0, 40000, 1586, 0, 0 }, - {2086,2086, 0, 0, 40000, 1586, 0, 0 }, - {2087,2087, 0, 0, 40000, 1586, 0, 0 }, - {2088,2088, 0, 0, 40000, 1646, 0, 0 }, - {2089,2089, 0, 0, 40000, 1580, 0, 0 }, - {2090,2090, 0, 0, 40000, 4393, 0, 0 }, - {2091,2091, 0, 0, 40000, 4540, 0, 0 }, - {2092,2092, 0, 0, 21373, 6160, 0, 0 }, - {2093,2093, 0, 0, 40000, 633, 0, 0 }, - {2094,2094, 0, 0, 18420, 6146, 0, 0 }, - {2095,2095, 0, 0, 2306, 813, 0, 0 }, - {2096,2096, 0, 0, 2813, 333, 0, 0 }, - {2097,2097, 0, 0, 3106, 600, 0, 0 }, - {2098,2098, 0, 0, 1026, 1580, 0, 0 }, - {2099,2099, 0, 0, 1873, 346, 0, 0 }, - {2100,2100, 0, 0, 40000, 73, 0, 0 }, - {2101,2101, 0, 0, 40000, 73, 0, 0 }, - {2102,2102, 0, 0, 1200, 1906, 0, 0 }, - {2103,2103, 0, 0, 980, 1313, 0, 0 }, - {2104,2104, 0, 0, 200, 20, 0, 0 }, - {2105,2105, 0, 0, 640, 253, 0, 0 }, - {2106,2106, 0, 0, 3120, 240, 0, 0 }, - {2107,2107, 0, 0, 753, 146, 0, 0 }, - {2108,2108, 0, 0, 40000, 3060, 0, 0 }, - {2109,2109, 0, 0, 40000, 233, 0, 0 }, - {2110,2110, 0, 0, 40000, 246, 0, 0 }, - {2111,2111, 0, 0, 40000, 240, 0, 0 }, - { 752, 752, 60, 0, 173, 20, 0, 0 }, - { 755, 755, 12, 0, 626, 240, 0, 0 }, - {2112,2112, 89, 0, 113, 26, 0, 0 }, - {2113,2113, 89, 0, 700, 266, 0, 0 }, - { 755, 755, 14, 0, 626, 240, 0, 0 }, - { 755, 755, 16, 0, 626, 246, 0, 0 }, - {2114,2114, 84, 0, 1593, 553, 0, 0 }, - { 755, 755, 19, 0, 626, 240, 0, 0 }, - {2115,2115, 38, 0, 220, 166, 0, 0 }, - {2116,2116, 36, 0, 1686, 760, 0, 0 }, - { 755, 755, 28, 0, 626, 240, 0, 0 }, - { 755, 755, 26, 0, 626, 240, 0, 0 }, - { 755, 755, 35, 0, 633, 246, 0, 0 }, - { 755, 755, 30, 0, 626, 240, 0, 0 }, - {2117,2117, 60, 0, 180, 53, 0, 0 }, - {2104,2104, 60, 0, 173, 20, 0, 0 }, - {2104,2104, 55, 0, 173, 20, 0, 0 }, - { 730, 730, 94, 0, 1886, 660, 0, 0 }, - {2118,2118, 0, 0, 1226, 73, 0, 0 }, - {2119,2119, 0, 0, 40000, 0, 0, 0 }, - {2120,2120, 0, 0, 40000, 146, 0, 0 }, - {2121,2121, 0, 0, 40000, 80, 0, 0 }, - {2122,2122, 0, 0, 40000, 80, 0, 0 }, - {2123,2123, 0, 0, 40000, 0, 0, 0 }, - {2124,2124, 0, 0, 40000, 126, 0, 0 }, - {2125,2125, 0, 0, 40000, 213, 0, 0 }, - {2126,2126, 0, 0, 40000, 80, 0, 0 }, - {2127,2127, 0, 0, 40000, 73, 0, 0 }, - {2128,2128, 0, 0, 40000, 73, 0, 0 }, - {2129,2129, 0, 0, 40000, 73, 0, 0 }, - {2130,2130, 0, 0, 40000, 80, 0, 0 }, - {2131,2131, 0, 0, 40000, 73, 0, 0 }, - {2132,2132, 0, 0, 40000, 73, 0, 0 }, - {2133,2133, 0, 0, 40000, 66, 0, 0 }, - {2134,2134, 0, 0, 40000, 186, 0, 0 }, - {2135,2135, 0, 0, 9966, 426, 0, 0 }, - {2136,2136, 0, 0, 40000, 400, 0, 0 }, - {2137,2137, 0, 0, 40000, 326, 0, 0 }, - {2138,2138, 0, 0, 386, 80, 0, 0 }, - {2139,2139, 0, 0, 40000, 246, 0, 0 }, - {2140,2140, 0, 0, 3473, 73, 0, 0 }, - {2141,2141, 60, 0, 160, 66, 0, 0 }, - {2141,2141, 44, 0, 160, 60, 0, 0 }, - {2142,2142, 47, 0, 173, 93, 0, 0 }, - {2143,2143, 47, 0, 186, 80, 0, 0 }, - {2144,2144, 62, 0, 1933, 93, 0, 0 }, - {2145,2145, 93, 0, 1146, 473, 0, 0 }, - {2146,2146, 50, 0, 286, 93, 0, 0 }, - {2145,2145, 40, 0, 2013, 840, 0, 0 }, - {2147,2147, 60, 0, 106, 73, 0, 0 }, - { 898, 898, 60, 0, 173, 133, 0, 0 }, - {2147,2147, 57, 0, 106, 73, 0, 0 }, - { 900, 900, 42, 0, 620, 240, 0, 0 }, - { 900, 900, 38, 0, 626, 240, 0, 0 }, - { 908, 908, 88, 0, 160, 26, 0, 0 }, - {2148,2148, 0, 0, 9440, 140, 0, 0 }, - {2149,2149, 0, 0, 40000, 73, 0, 0 }, - {2150,2150, 0, 0, 4613, 420, 0, 0 }, - {2151,2151, 0, 0, 40000, 86, 0, 0 }, - {2152,2152, 0, 0, 40000, 406, 0, 0 }, - {2153,2153, 0, 0, 40000, 440, 0, 0 }, - {2154,2154, 0, 0, 4340, 133, 0, 0 }, - {2155,2155, 0, 0, 4460, 706, 0, 0 }, - {2156,2156, 0, 0, 40000, 73, 0, 0 }, - {2157,2157, 0, 0, 4660, 1573, 0, 0 }, - {2158,2158, 0, 0, 966, 333, 0, 0 }, - {2159,2159, 0, 0, 1933, 640, 0, 0 }, - { 136, 136, 0, 0, 2326, 786, 0, 0 }, - { 168, 168, 0, 0, 286, 366, 0, 0 }, - { 164, 164, 0, 0, 7373, 2460, 0, 0 }, - { 167, 167, 0, 0, 793, 426, 0, 0 }, - {2160,2160, 65, 0, 166, 73, 0, 0 }, - {2161,2161, 21, 0, 480, 146, 0, 0 }, - {2162, 173, 0, 4, 4220, 80, 0, 0 }, - {2163,2164, 0, 4, 4613, 3060, 0, 0 }, - {2165,2166, 0, 4, 7193, 3920, 0, 0 }, - {2167,2168, 0, 4, 3746, 1253, 0, 0 }, - {2169,2170, 0, 4, 6226, 2393, 0, 0 }, - {2171,2172, 0, 4, 18053, 226, 0, 0 }, - {2173,2174, 0, 4, 40000, 713, 0, 0 }, - {2175,2174, 0, 4, 40000, 733, 0, 0 }, - {2176, 299, 0, 4, 40000, 273, 0, 0 }, - {2177,2178, 0, 4, 40000, 66, 0, 0 }, - {2179,2180, 0, 4, 40000, 393, 0, 0 }, - {2181,2182, 0, 4, 40000, 413, 0, 0 }, - {2183,2184, 0, 4, 7366, 200, 0, 0 }, - { 127, 127, 65, 0, 226, 120, 0, 0 }, - { 127, 127, 72, 0, 180, 100, 0, 0 }, - { 364, 365, 52, 4, 120, 26, 0, 0 }, - {2185,2186, 60, 4, 173, 93, 0, 0 }, - {1550,1551, 47, 4, 520, 213, 0, 0 }, - {1556,1557, 76, 4, 766, 306, 0, 0 }, - { 374, 375, 84, 4, 813, 300, 0, 0 }, - {1564,1565, 83, 4, 220, 106, 0, 0 }, - {1568,1569, 24, 4, 1806, 620, 0, 0 }, - {1556,1557, 77, 4, 760, 300, 0, 0 }, - {1572,1573, 60, 4, 280, 126, 0, 0 }, - {1574,1575, 65, 4, 286, 193, 0, 0 }, - { 391, 392, 44, 4, 160, 53, 0, 0 }, - { 391, 393, 40, 4, 460, 66, 0, 0 }, - {1606,1607, 72, 4, 120, 73, 0, 0 }, - { 398, 399, 73, 4, 1286, 173, 0, 0 }, - {1608,1609, 70, 4, 1560, 300, 0, 0 }, - {2187,2187, 0, 0, 40000, 353, 0, 0 }, - {2188,2188, 0, 0, 40000, 333, 0, 0 }, - {2189,2189, 0, 0, 5913, 2306, 0, 0 }, - {2190,2190, 0, 0, 7720, 1260, 0, 0 }, - {2191,2191, 0, 0, 213, 6420, 0, 0 }, - {2192,2192, 0, 0, 40000, 380, 0, 0 }, - {2193,2193, 0, 0, 1153, 760, 0, 0 }, - {2194,2194, 0, 0, 40000, 66, 0, 0 }, - {2195,2195, 0, 0, 4440, 66, 0, 0 }, - {2196,2196, 0, 0, 40000, 73, 0, 0 }, - {2197,2197, 0, 0, 40000, 53, 0, 0 }, - {2198,2198, 0, 0, 40000, 60, 0, 0 }, - {2199,2199, 0, 0, 40000, 60, 0, 0 }, - {2200,2200, 0, 0, 8133, 1433, 0, 0 }, - { 528, 528, 0, 0, 966, 346, 0, 0 }, - {2201,2201, 0, 0, 40000, 126, 0, 0 }, - {2202,2202, 0, 0, 286, 1293, 0, 0 }, - {2203,2203, 0, 0, 40000, 0, 0, 0 }, - {2204,2204, 41, 0, 246, 20, 0, 0 }, - {2205,2205, 84, 0, 160, 26, 0, 0 }, - {2206,2206, 72, 0, 440, 180, 0, 0 }, - { 741, 741, 48, 0, 220, 26, 0, 0 }, - {2207,2207, 0, 0, 2126, 173, 0, 0 }, - {2208,2208, 0, 0, 40000, 0, 0, 0 }, - {2209,2209, 0, 0, 40000, 380, 0, 0 }, - {2210,2210, 0, 0, 4553, 1486, 0, 0 }, - {2211,2211, 0, 0, 40000, 73, 0, 0 }, - {2212,2212, 0, 0, 40000, 73, 0, 0 }, - {2213,2213, 0, 0, 1460, 80, 0, 0 }, - {2214,2214, 0, 0, 40000, 66, 0, 0 }, - {2215,2215, 0, 0, 40000, 186, 0, 0 }, - {2216,2216, 0, 0, 40000, 180, 0, 0 }, - {2217,2217, 0, 0, 40000, 173, 0, 0 }, - {2218,2218, 0, 0, 40000, 113, 0, 0 }, - {2219,2219, 0, 0, 40000, 86, 0, 0 }, - {2220,2220, 0, 0, 40000, 373, 0, 0 }, - {2221,2221, 0, 0, 40000, 113, 0, 0 }, - {2222,2222, 0, 0, 40000, 353, 0, 0 }, - {2223,2223, 0, 0, 40000, 66, 0, 0 }, - {2224,2224, 0, 0, 40000, 53, 0, 0 }, - {2225,2225, 0, 0, 40000, 66, 0, 0 }, - {2226,2226, 0, 0, 40000, 100, 0, 0 }, - {2227,2227, 0, 0, 40000, 73, 0, 0 }, - {2228,2228, 0, 0, 40000, 73, 0, 0 }, - {2229,2229, 0, 0, 40000, 66, 0, 0 }, - {2230,2230, 0, 0, 40000, 66, 0, 0 }, - {2231,2231, 0, 0, 40000, 80, 0, 0 }, - {2232,2232, 0, 0, 40000, 66, 0, 0 }, - {2233,2233, 0, 0, 40000, 80, 0, 0 }, - {2234,2234, 0, 0, 40000, 660, 0, 0 }, - {2235,2235, 0, 0, 40000, 120, 0, 0 }, - {2236,2236, 0, 0, 9820, 393, 0, 0 }, - {2237,2237, 0, 0, 40000, 73, 0, 0 }, - {2238,2238, 0, 0, 3620, 1166, 0, 0 }, - {2239,2239, 0, 0, 40000, 0, 0, 0 }, - {2240,2240, 0, 0, 40000, 0, 0, 0 }, - {2241,2241, 0, 0, 3020, 66, 0, 0 }, - {2242,2242, 0, 0, 6053, 1240, 0, 0 }, - {2243,2243, 0, 0, 633, 126, 0, 0 }, - {2244,2244, 0, 0, 40000, 66, 0, 0 }, - {2245,2245, 0, 0, 40000, 73, 0, 0 }, - {2246,2246, 0, 0, 626, 246, 0, 0 }, - {2247,2247, 60, 0, 173, 93, 0, 0 }, - {2248,2248, 60, 0, 673, 206, 0, 0 }, - {2249,2249, 48, 0, 673, 200, 0, 0 }, - {2250,2250, 60, 0, 1873, 653, 0, 0 }, - {2251,2251, 60, 0, 673, 200, 0, 0 }, - {2252,2252, 66, 0, 306, 120, 0, 0 }, - {2253,2253, 60, 0, 673, 200, 0, 0 }, - {2249,2249, 64, 0, 673, 206, 0, 0 }, - {2254,2254, 60, 0, 246, 106, 0, 0 }, - {2255,2255, 60, 0, 193, 120, 0, 0 }, - {2256,2256, 56, 0, 206, 13, 0, 0 }, - {2257,2257, 53, 0, 433, 73, 0, 0 }, - {2258,2258, 60, 0, 220, 113, 0, 0 }, - {2259,2259, 48, 0, 300, 66, 0, 0 }, - {2260,2260, 67, 0, 273, 60, 0, 0 }, - {2261,2261, 60, 0, 973, 360, 0, 0 }, - {2261,2261, 72, 0, 806, 273, 0, 0 }, - {2262,2262, 60, 0, 173, 93, 0, 0 }, - {2263,2263, 0, 0, 2493, 866, 0, 0 }, - {2264,2264, 24, 0, 173, 93, 0, 0 }, - {2265,2265, 36, 0, 140, 66, 0, 0 }, - { 343, 343, 36, 0, 146, 80, 0, 0 }, - { 347, 347, 0, 0, 353, 133, 0, 0 }, - { 347, 347, 12, 0, 420, 146, 0, 0 }, - {2266,2266, 12, 0, 346, 100, 0, 0 }, - {2267,2267, 24, 0, 106, 46, 0, 0 }, - {2267,2267, 36, 0, 100, 40, 0, 0 }, - {2268,2268, 0, 0, 1006, 293, 0, 0 }, - {2266,2266, 24, 0, 293, 93, 0, 0 }, - {2269,2269, 88, 0, 1106, 120, 0, 0 }, - {2270,2270, 88, 0, 666, 120, 0, 0 }, - {2271,2271, 13, 0, 760, 360, 0, 0 }, - { 351, 351, 0, 0, 966, 346, 0, 0 }, - {2271,2271, 15, 0, 760, 420, 0, 0 }, - {2272,2272, 0, 0, 4513, 640, 0, 0 }, - {2273,2273, 0, 0, 15486, 1580, 0, 0 }, - {2274,2274, 0, 0, 6940, 66, 0, 0 }, - {2275,2275, 0, 0, 6866, 2380, 0, 0 }, - {2276,2276, 0, 0, 7613, 1566, 0, 0 }, - {2277,2277, 0, 0, 1186, 420, 0, 0 }, - {2278,2278, 0, 0, 1166, 400, 0, 0 }, - {2279,2279, 0, 0, 40000, 2940, 0, 0 }, - {2280,2280, 0, 0, 40000, 0, 0, 0 }, - {2281,2281, 0, 0, 18226, 786, 0, 0 }, - {2282,2282, 0, 0, 40000, 0, 0, 0 }, - {2283,2283, 0, 0, 713, 200, 0, 0 }, - {2284,2284, 0, 0, 40000, 126, 0, 0 }, - {2285,2285, 0, 0, 40000, 353, 0, 0 }, - {2286,2286, 0, 0, 40000, 333, 0, 0 }, - {2287,2287, 0, 0, 40000, 0, 0, 0 }, - {2288,2288, 0, 0, 40000, 0, 0, 0 }, - {2289,2289, 0, 0, 40000, 0, 0, 0 }, - {2290,2290, 0, 0, 40000, 0, 0, 0 }, - {2291,2291, 0, 0, 40000, 73, 0, 0 }, - {2292,2292, 0, 0, 40000, 66, 0, 0 }, - {2293,2293, 0, 0, 15893, 153, 0, 0 }, - {2294,2294, 0, 0, 40000, 253, 0, 0 }, - {2295,2295, 0, 0, 2813, 333, 0, 0 }, - {2296,2296, 0, 0, 40000, 3920, 0, 0 }, - {2297,2297, 79, 0, 113, 113, 0, 0 }, - {2297,2297, 72, 0, 126, 140, 0, 0 }, - {2298,2298, 72, 0, 100, 26, 0, 0 }, - {2298,2298, 79, 0, 100, 26, 0, 0 }, - { 554, 554, 60, 0, 400, 126, 0, 0 }, - {2299,2299, 72, 0, 793, 173, 0, 0 }, - {2300,2300, 84, 0, 226, 66, 0, 0 }, - { 555, 555, 66, 0, 113, 53, 0, 0 }, - {2301,2302, 35, 4, 2320, 800, 0, 0 }, - {2303,2304, 52, 4, 120, 26, 0, 0 }, - {2305,1548, 48, 4, 173, 93, 0, 0 }, - {1595,1595, 58, 0, 146, 166, 0, 0 }, - {2305,1548, 60, 4, 173, 93, 0, 0 }, - {2306,2307, 47, 4, 1886, 700, 0, 0 }, - {2306,2307, 43, 4, 1946, 740, 0, 0 }, - {2306,2307, 49, 4, 1873, 686, 0, 0 }, - {2306,2307, 51, 4, 1880, 706, 0, 0 }, - {2306,2307, 54, 4, 1900, 720, 0, 0 }, - {2306,2307, 57, 4, 1893, 720, 0, 0 }, - {2306,2307, 72, 4, 1586, 606, 0, 0 }, - {2306,2307, 60, 4, 1893, 720, 0, 0 }, - {2306,2307, 76, 4, 1586, 606, 0, 0 }, - {2306,2307, 84, 4, 1593, 613, 0, 0 }, - {2306,2307, 36, 4, 2380, 920, 0, 0 }, - {1560,2308, 65, 4, 293, 213, 0, 0 }, - {2309,2310, 84, 4, 1366, 306, 0, 0 }, - {1564,1564, 83, 0, 220, 113, 0, 0 }, - { 380, 381, 84, 4, 1580, 566, 0, 0 }, - {1568,1568, 24, 0, 1833, 613, 0, 0 }, - {2306,2307, 77, 4, 1586, 606, 0, 0 }, - {2311,2312, 60, 4, 280, 126, 0, 0 }, - {2313,2314, 65, 4, 506, 200, 0, 0 }, - {2315,2315, 59, 0, 106, 40, 0, 0 }, - {2316,2316, 51, 0, 386, 373, 0, 0 }, - {1612,1612, 45, 0, 393, 380, 0, 0 }, - {2317,2317, 71, 0, 446, 180, 0, 0 }, - {2318,2318, 60, 0, 280, 20, 0, 0 }, - {2319,2319, 58, 0, 393, 373, 0, 0 }, - {2320,2320, 53, 0, 393, 380, 0, 0 }, - { 397, 397, 64, 0, 220, 86, 0, 0 }, - {2321,2321, 71, 0, 106, 46, 0, 0 }, - {2322,2322, 61, 0, 986, 340, 0, 0 }, - {2323,2323, 61, 0, 1893, 633, 0, 0 }, - {2324, 392, 44, 4, 166, 46, 0, 0 }, - {2324, 393, 40, 4, 460, 60, 0, 0 }, - {1595,1595, 69, 0, 126, 140, 0, 0 }, - {1595,1595, 68, 0, 126, 140, 0, 0 }, - {1595,1595, 63, 0, 146, 166, 0, 0 }, - {2325,2326, 74, 4, 380, 106, 0, 0 }, - {2327,2328, 60, 4, 1020, 333, 0, 0 }, - {2329,2330, 80, 4, 453, 560, 0, 0 }, - {2331,2332, 64, 4, 1880, 640, 0, 0 }, - { 397, 397, 72, 0, 193, 80, 0, 0 }, - {2333,2334, 78, 4, 793, 306, 0, 0 }, - {1608,1609, 82, 4, 1560, 300, 0, 0 }, - {2315,2315, 48, 0, 106, 46, 0, 0 }, - {2316,2316, 53, 0, 386, 373, 0, 0 }, - {2335,2335, 0, 0, 3586, 1133, 0, 0 }, - {2336,2337, 0, 4, 1180, 420, 0, 0 }, - {2338,2339, 0, 4, 40000, 320, 0, 0 }, - {2340,2340, 0, 0, 8826, 1346, 0, 0 }, - {2341,2341, 0, 0, 3440, 753, 0, 0 }, - {2342,2342, 0, 0, 40000, 360, 0, 0 }, - {2343,2343, 0, 0, 40000, 413, 0, 0 }, - {2344,2345, 0, 4, 40000, 60, 0, 0 }, - {2346,2346, 0, 0, 40000, 60, 0, 0 }, - {2347,2348, 0, 4, 40000, 126, 0, 0 }, - {2349,2350, 0, 4, 40000, 73, 0, 0 }, - {2351,2352, 0, 4, 40000, 73, 0, 0 }, - {2353,2354, 0, 4, 40000, 86, 0, 0 }, - {2355,2356, 0, 4, 40000, 453, 0, 0 }, - {2357,2357, 14, 0, 186, 20, 0, 0 }, - {2358,2358, 35, 0, 246, 73, 0, 0 }, - {2357,2357, 19, 0, 166, 26, 0, 0 }, - {2359,2359, 43, 0, 286, 133, 0, 0 }, - {2360,2360, 41, 0, 300, 113, 0, 0 }, - {2360,2360, 43, 0, 253, 106, 0, 0 }, - {2360,2360, 45, 0, 240, 100, 0, 0 }, - {2360,2360, 47, 0, 240, 100, 0, 0 }, - {2361,2362, 0, 4, 14633, 333, 0, 0 }, - {2363,2363, 0, 0, 7373, 1246, 0, 0 }, - {2364,2364, 0, 0, 4900, 233, 0, 0 }, - {2365,2365, 0, 0, 5106, 606, 0, 0 }, - {2366,2366, 0, 0, 1333, 153, 0, 0 }, - {2367,2367, 0, 0, 2093, 840, 0, 0 }, - {2368,2368, 0, 0, 3700, 226, 0, 0 }, - {2369,2369, 0, 0, 3546, 1266, 0, 0 }, - {2370,2370, 0, 0, 4606, 420, 0, 0 }, - {2371,2371, 0, 0, 14366, 606, 0, 0 }, - {2372,2372, 0, 0, 40000, 426, 0, 0 }, - {2373,2373, 0, 0, 3700, 200, 0, 0 }, - {2374,2374, 0, 0, 880, 440, 0, 0 }, - {2375,2375, 0, 0, 4660, 660, 0, 0 }, - {2376,2376, 0, 0, 3600, 1153, 0, 0 }, - {2377,2377, 0, 0, 40000, 73, 0, 0 }, - {2378,2378, 0, 0, 40000, 53, 0, 0 }, - {2379,2379, 0, 0, 40000, 333, 0, 0 }, - {2380,2380, 0, 0, 40000, 73, 0, 0 }, - {2381,2381, 0, 0, 40000, 73, 0, 0 }, - {2382,2382, 0, 0, 40000, 66, 0, 0 }, - {2383,2383, 0, 0, 40000, 73, 0, 0 }, - {2384,2384, 0, 0, 40000, 73, 0, 0 }, - {2385,2385, 0, 0, 840, 226, 0, 0 }, - {2386,2386, 0, 0, 2093, 86, 0, 0 }, - {2387,2387, 0, 0, 906, 73, 0, 0 }, - { 402, 402, 0, 0, 273, 60, 0, 0 }, - {2388,2388, 0, 0, 40000, 820, 0, 0 }, - {2389,2389, 0, 0, 4740, 93, 0, 0 }, - {2390,2390, 0, 0, 706, 106, 0, 0 }, - {2391,2391, 0, 0, 40000, 0, 0, 0 }, - {2392,2392, 0, 0, 3840, 2306, 0, 0 }, - {2393,2393, 0, 0, 3400, 493, 0, 0 }, - {2394,2394, 0, 0, 40000, 53, 0, 0 }, - {2395,2395, 0, 0, 40000, 133, 0, 0 }, - {2396,2397, 0, 4, 3066, 1400, 0, 0 }, - {2398,2398, 0, 0, 1080, 580, 0, 0 }, - {2399,2400, 0, 4, 2220, 400, 0, 0 }, - {2401,2401, 0, 0, 40000, 193, 0, 0 }, - {2402,2402, 0, 0, 40000, 60, 0, 0 }, - {2403,2404, 0, 4, 40000, 146, 0, 0 }, - {2405,2406, 0, 4, 40000, 133, 0, 0 }, - {2407,2408, 0, 4, 40000, 66, 0, 0 }, - {2409,2409, 0, 0, 40000, 0, 0, 0 }, - {2410,2410, 0, 0, 40000, 73, 0, 0 }, - {2411,2411, 0, 0, 40000, 66, 0, 0 }, - {2412,2413, 0, 4, 40000, 153, 0, 0 }, - {2414,2414, 0, 0, 40000, 126, 0, 0 }, - {2415,2416, 0, 4, 40000, 466, 0, 0 }, - {2417,2418, 0, 4, 40000, 113, 0, 0 }, - {2419,2420, 0, 4, 1280, 73, 0, 0 }, - {2421,2422, 0, 4, 1106, 146, 0, 0 }, - {2423,2424, 0, 4, 3640, 113, 0, 0 }, - {2425,2426, 0, 4, 40000, 80, 0, 0 }, - {2427,2427, 33, 0, 300, 246, 0, 0 }, - {2428,2429, 38, 4, 53, 26, 0, 0 }, - {2430,2430, 38, 0, 106, 46, 0, 0 }, - {2431,2431, 38, 0, 340, 20, 0, 0 }, - {2432,2432, 40, 0, 73, 40, 0, 0 }, - {2433,2434, 41, 4, 293, 106, 0, 0 }, - {2435,2435, 0, 0, 133, 73, 0, 0 }, - {2435,2435, 41, 0, 133, 73, 0, 0 }, - {2360,2360, 48, 0, 240, 100, 0, 0 }, - {2436,2436, 17, 0, 4620, 1553, 0, 0 }, - {2360,2360, 50, 0, 240, 100, 0, 0 }, - {2435,2435, 45, 0, 126, 66, 0, 0 }, - {2437,2437,254, 2, 6, 0, 0, 0 }, - {2438,2438, 60, 0, 226, 93, 0, 0 }, - {2439,2439, 56, 0, 233, 93, 0, 0 }, - {2440,2440, 60, 0, 140, 66, 0, 0 }, - {2440,2440, 55, 0, 140, 60, 0, 0 }, - {2441,2441, 63, 0, 286, 126, 0, 0 }, - {2442,2442, 57, 0, 173, 93, 0, 0 }, - {2443,2443, 0, 0, 40000, 280, 0, 0 }, - {2444,2444, 0, 0, 40000, 0, 0, 0 }, - {2445,2445, 0, 0, 40000, 746, 0, 0 }, - {2446,2446, 0, 0, 40000, 353, 0, 0 }, - {2447,2447, 0, 0, 40000, 1173, 0, 0 }, - {2448,2448, 0, 0, 40000, 146, 0, 0 }, - {2449,2449, 0, 0, 40000, 1160, 0, 0 }, - {2450,2450, 0, 0, 40000, 353, 0, 0 }, - {2451,2451, 0, 0, 18313, 6046, 0, 0 }, - {2452,2452, 0, 0, 1206, 420, 0, 0 }, - { 752, 752, 55, 0, 173, 20, 0, 0 }, - {2453,2453, 0, 0, 2860, 806, 0, 0 }, - {2454,2454, 0, 0, 2506, 126, 0, 0 }, - {2455,2455, 0, 0, 520, 93, 0, 0 }, - {2456,2456, 0, 0, 1420, 160, 0, 0 }, - {2457,2457, 0, 0, 40000, 53, 0, 0 }, - {2458,2458, 0, 0, 9106, 100, 0, 0 }, - {2459,2459, 0, 0, 3706, 100, 0, 0 }, - {2460,2460, 0, 0, 17933, 100, 0, 0 }, - {2461,2461, 0, 0, 40000, 0, 0, 0 }, - {2462,2462, 0, 0, 40000, 66, 0, 0 }, - {2463,2463, 0, 0, 40000, 0, 0, 0 }, - { 884, 884, 0, 0, 306, 73, 0, 0 }, - { 884, 884, 28, 0, 306, 73, 0, 0 }, - {2464,2464, 29, 0, 226, 93, 0, 0 }, - { 886, 886, 31, 0, 113, 53, 0, 0 }, - { 360, 360, 32, 0, 133, 40, 0, 0 }, - { 361, 361, 33, 0, 286, 80, 0, 0 }, - {2453,2453, 34, 0, 2873, 813, 0, 0 }, - { 888, 888, 29, 0, 246, 46, 0, 0 }, - { 886, 886, 55, 0, 100, 33, 0, 0 }, - { 890, 890, 48, 0, 240, 60, 0, 0 }, - { 884, 884, 58, 0, 146, 26, 0, 0 }, - {2465,2465, 45, 0, 173, 93, 0, 0 }, - {2465,2465, 43, 0, 173, 93, 0, 0 }, - {2466,2466, 73, 0, 1633, 86, 0, 0 }, - {2467,2467, 72, 0, 866, 553, 0, 0 }, - {2468,2468, 76, 0, 1380, 620, 0, 0 }, - {2467,2467, 84, 0, 873, 560, 0, 0 }, - {2468,2468, 36, 0, 1933, 880, 0, 0 }, - {2469,2469, 65, 0, 300, 120, 0, 0 }, - {2470,2470, 83, 0, 193, 86, 0, 0 }, - {2471,2471, 50, 0, 966, 126, 0, 0 }, - {2468,2468, 77, 0, 1373, 620, 0, 0 }, - { 897, 897, 55, 0, 126, 40, 0, 0 }, - {2472,2472, 60, 0, 180, 140, 0, 0 }, - { 897, 897, 50, 0, 126, 40, 0, 0 }, - {2473,2473, 42, 0, 633, 240, 0, 0 }, - {2473,2473, 46, 0, 513, 200, 0, 0 }, - {2474,2474, 71, 0, 433, 180, 0, 0 }, - {2474,2474, 60, 0, 513, 206, 0, 0 }, - {2455,2455, 58, 0, 220, 46, 0, 0 }, - {2455,2455, 53, 0, 286, 60, 0, 0 }, - {2475,2475, 91, 0, 186, 100, 0, 0 }, - {2476,2476, 61, 0, 226, 26, 0, 0 }, - {2477,2477, 61, 0, 886, 73, 0, 0 }, - {2478,2478, 44, 0, 120, 73, 0, 0 }, - {2479,2479, 40, 0, 933, 73, 0, 0 }, - {2480,2480, 69, 0, 146, 33, 0, 0 }, - { 361, 361, 68, 0, 153, 26, 0, 0 }, - { 361, 361, 63, 0, 180, 26, 0, 0 }, - {2481,2481, 74, 0, 153, 73, 0, 0 }, - {2482,2482, 60, 0, 280, 100, 0, 0 }, - { 908, 908, 80, 0, 160, 26, 0, 0 }, - {2483,2483, 64, 0, 986, 353, 0, 0 }, - {2483,2483, 73, 0, 813, 306, 0, 0 }, - {2483,2483, 70, 0, 820, 306, 0, 0 }, - { 886, 886, 68, 0, 93, 33, 0, 0 }, - { 886, 886, 48, 0, 106, 40, 0, 0 }, - {2484,2484, 0, 0, 40000, 0, 0, 0 }, - {2485,2485, 0, 0, 3226, 753, 0, 0 }, - {2486,2486, 0, 0, 1773, 553, 0, 0 }, - {2487,2487, 0, 0, 7473, 2460, 0, 0 }, - {2488,2488, 0, 0, 40000, 0, 0, 0 }, - {2489,2489, 0, 0, 40000, 353, 0, 0 }, - {2490,2490, 0, 0, 40000, 206, 0, 0 }, - {2491,2491, 0, 0, 40000, 86, 0, 0 }, - {2492,2492, 0, 0, 4740, 86, 0, 0 }, - {2493,2493, 0, 0, 6193, 193, 0, 0 }, - {2494,2494, 0, 0, 6200, 240, 0, 0 }, - {2495,2495, 0, 0, 40000, 0, 0, 0 }, - {2496,2496, 0, 0, 1586, 73, 0, 0 }, - {2497,2497, 0, 0, 560, 73, 0, 0 }, - {2498,2498, 0, 0, 40000, 480, 0, 0 }, - {2499,2499, 0, 0, 40000, 80, 0, 0 }, - {2500,2500, 0, 0, 40000, 66, 0, 0 }, - {2501,2501, 0, 0, 40000, 380, 0, 0 }, - {2502,2502, 0, 0, 280, 100, 0, 0 }, - {2503,2503, 0, 0, 6193, 233, 0, 0 }, - {2504,2504, 0, 0, 40000, 380, 0, 0 }, - {2505,2505, 0, 0, 40000, 0, 0, 0 }, - {2506,2506, 0, 0, 40000, 380, 0, 0 }, - {2507,2507, 0, 0, 40000, 200, 0, 0 }, - {2508,2508, 0, 0, 40000, 320, 0, 0 }, - {2509,2509, 0, 0, 40000, 126, 0, 0 }, - {2510,2510, 0, 0, 40000, 293, 0, 0 }, - {2511,2511, 0, 0, 40000, 0, 0, 0 }, - {2512,2512, 0, 0, 40000, 40, 0, 0 }, - {2513,2513, 0, 0, 40000, 106, 0, 0 }, - {2514,2514, 0, 0, 3846, 73, 0, 0 }, - {2515,2515, 0, 0, 40000, 0, 0, 0 }, - {2516,2516, 0, 0, 40000, 73, 0, 0 }, - {2517,2517, 0, 0, 40000, 533, 0, 0 }, - {2518,2518, 0, 0, 40000, 1020, 0, 0 }, - {2519,2519, 0, 0, 40000, 73, 0, 0 }, - {2520,2520, 0, 0, 40000, 53, 0, 0 }, - {2521,2521, 0, 0, 6153, 1433, 0, 0 }, - {2522,2522, 0, 0, 18813, 773, 0, 0 }, - {2523,2523, 0, 0, 40000, 433, 0, 0 }, - {2524,2524, 0, 0, 40000, 0, 0, 0 }, - {2525,2525, 0, 0, 40000, 133, 0, 0 }, - {2526,2526, 0, 0, 4486, 73, 0, 0 }, - { 346, 346, 30, 0, 540, 33, 0, 0 }, - { 346, 346, 31, 0, 406, 20, 0, 0 }, - { 346, 346, 32, 0, 406, 20, 0, 0 }, - { 346, 346, 33, 0, 406, 73, 0, 0 }, - { 346, 346, 34, 0, 406, 20, 0, 0 }, - { 346, 346, 35, 0, 406, 20, 0, 0 }, - { 346, 346, 37, 0, 406, 73, 0, 0 }, - { 346, 346, 39, 0, 406, 73, 0, 0 }, - { 346, 346, 41, 0, 406, 20, 0, 0 }, - { 346, 346, 43, 0, 306, 20, 0, 0 }, - { 346, 346, 45, 0, 306, 20, 0, 0 }, - { 346, 346, 47, 0, 306, 20, 0, 0 }, - { 346, 346, 48, 0, 306, 20, 0, 0 }, - { 346, 346, 49, 0, 306, 20, 0, 0 }, - { 512, 512, 84, 0, 353, 466, 0, 0 }, - {2206,2206, 84, 0, 440, 180, 0, 0 }, - {2527,2527, 55, 0, 100, 0, 0, 0 }, - {2528,2528, 36, 0, 400, 160, 0, 0 }, - {2529,2529, 38, 0, 313, 226, 0, 0 }, - {2530,2530, 60, 0, 286, 133, 0, 0 }, - {2531,2531, 38, 0, 200, 100, 0, 0 }, - {2532,2532, 17, 0, 6186, 240, 0, 0 }, - {2532,2532, 18, 0, 6186, 240, 0, 0 }, - {2532,2532, 19, 0, 6193, 233, 0, 0 }, - {2532,2532, 20, 0, 6193, 193, 0, 0 }, - {2532,2532, 21, 0, 6193, 193, 0, 0 }, - {2532,2532, 22, 0, 6193, 193, 0, 0 }, - {2532,2532, 23, 0, 6193, 193, 0, 0 }, - {2532,2532, 24, 0, 6193, 193, 0, 0 }, - {2532,2532, 25, 0, 6193, 193, 0, 0 }, - {2532,2532, 26, 0, 6193, 193, 0, 0 }, - {2532,2532, 27, 0, 6193, 253, 0, 0 }, - {2532,2532, 28, 0, 6193, 246, 0, 0 }, - {2532,2532, 29, 0, 6193, 246, 0, 0 }, - {2533,2533, 84, 0, 433, 180, 0, 0 }, - {2534,2534, 48, 0, 280, 93, 0, 0 }, - {2535,2535, 65, 0, 1166, 360, 0, 0 }, - {2536,2536, 65, 0, 1853, 633, 0, 0 }, - {2537,2537, 55, 0, 453, 366, 0, 0 }, - {2537,2537, 41, 0, 540, 433, 0, 0 }, - { 346, 346, 63, 0, 240, 66, 0, 0 }, - { 346, 346, 55, 0, 240, 66, 0, 0 }, - {2538,2538, 55, 0, 2586, 200, 0, 0 }, - {2538,2538, 53, 0, 2586, 200, 0, 0 }, - {2534,2534, 50, 0, 280, 93, 0, 0 }, - { 506, 506, 84, 0, 693, 566, 0, 0 }, - { 506, 506, 74, 0, 693, 560, 0, 0 }, - { 504, 504, 84, 0, 1566, 546, 0, 0 }, - { 504, 504, 74, 0, 1586, 560, 0, 0 }, - {2539,2539, 84, 0, 440, 20, 0, 0 }, - {2540,2540, 74, 0, 126, 26, 0, 0 }, - {1911,1911, 48, 0, 500, 180, 0, 0 }, - {1911,1911, 36, 0, 606, 220, 0, 0 }, - {2541,2541, 74, 0, 686, 560, 0, 0 }, - {2542,2542, 0, 0, 7313, 13, 0, 0 }, - {2543,2543, 0, 0, 40000, 1306, 0, 0 }, - {2544,2544, 0, 0, 40000, 0, 0, 0 }, - {2545,2545, 0, 0, 4613, 13, 0, 0 }, - {2546,2547, 0, 4, 6926, 126, 0, 0 }, - {2548,2549, 0, 4, 40000, 86, 0, 0 }, - {2550,2550, 0, 0, 9233, 100, 0, 0 }, - {2551,2552, 0, 4, 4620, 73, 0, 0 }, - {2553,2553, 0, 0, 40000, 73, 0, 0 }, - {2554,2554, 0, 0, 40000, 0, 0, 0 }, - {2555,2556, 0, 4, 40000, 73, 0, 0 }, - {2557,2557, 0, 0, 40000, 60, 0, 0 }, - {2558,1467, 0, 4, 40000, 66, 0, 0 }, - {2559,2560, 0, 4, 40000, 40, 0, 0 }, - {2561,2561, 0, 0, 40000, 186, 0, 0 }, - {2562,2562, 0, 0, 4026, 66, 0, 0 }, - {2563,2564, 0, 4, 14513, 80, 0, 0 }, - {2565,2565, 0, 0, 40000, 0, 0, 0 }, - {2566,2567, 0, 4, 40000, 40, 0, 0 }, - {2568,2568, 0, 0, 4020, 73, 0, 0 }, - {2569,2569, 0, 0, 40000, 0, 0, 0 }, - {2570,2570, 0, 0, 40000, 0, 0, 0 }, - {2571,2572, 0, 4, 40000, 126, 0, 0 }, - {2573,2574, 0, 4, 40000, 100, 0, 0 }, - {2575,2575, 0, 0, 40000, 213, 0, 0 }, - { 229,2576, 0, 4, 40000, 166, 0, 0 }, - {2577,2577, 0, 0, 7366, 53, 0, 0 }, - { 239,2578, 0, 4, 40000, 133, 0, 0 }, - {2579,2579, 0, 0, 40000, 80, 0, 0 }, - {2580,2580, 0, 0, 40000, 140, 0, 0 }, - {2581,2582, 0, 4, 16913, 1173, 0, 0 }, - {2583,2584, 0, 4, 726, 100, 0, 0 }, - {2585,2586, 0, 4, 40000, 73, 0, 0 }, - {2587,2588, 0, 4, 40000, 73, 0, 0 }, - {2589,2589, 0, 0, 40000, 60, 0, 0 }, - {2590,2590, 0, 0, 40000, 80, 0, 0 }, - {2591,2592, 0, 4, 40000, 73, 0, 0 }, - {2593,2594, 0, 4, 40000, 60, 0, 0 }, - {2595,2595, 0, 0, 40000, 66, 0, 0 }, - {2596,2597, 0, 4, 40000, 66, 0, 0 }, - {2598,2599, 0, 4, 40000, 60, 0, 0 }, - {2600,2601, 0, 4, 40000, 173, 0, 0 }, - {2602,2602, 0, 0, 40000, 60, 0, 0 }, - {2603,2603, 0, 0, 40000, 73, 0, 0 }, - {2604,2604, 0, 0, 40000, 93, 0, 0 }, - {2605,2606, 0, 4, 40000, 73, 0, 0 }, - {2607,2607, 0, 0, 40000, 66, 0, 0 }, - {2608,2609, 0, 4, 40000, 66, 0, 0 }, - {2610,2610, 0, 0, 40000, 86, 0, 0 }, - {2611,2611, 0, 0, 40000, 60, 0, 0 }, - {2612,2612, 0, 0, 14286, 73, 0, 0 }, - {2613,2613, 0, 0, 40000, 0, 0, 0 }, - {2614,2615, 0, 4, 40000, 73, 0, 0 }, - {2616,2617, 0, 4, 40000, 66, 0, 0 }, - {2618,2619, 0, 4, 133, 26, 0, 0 }, - {2620,2621, 0, 4, 40000, 1280, 0, 0 }, - {2622,2623, 0, 4, 40000, 160, 0, 0 }, - {2624,2625, 0, 4, 40000, 0, 0, 0 }, - {2626,2627, 0, 4, 40000, 73, 0, 0 }, - {2628,2629, 0, 4, 40000, 0, 0, 0 }, - {1516,2630, 0, 4, 1186, 406, 0, 0 }, - {2631,2632, 0, 4, 40000, 553, 0, 0 }, - {2633,2633, 0, 0, 40000, 40, 0, 0 }, - {2634,2635, 0, 4, 40000, 773, 0, 0 }, - {2636,2636, 0, 0, 40000, 320, 0, 0 }, - {2637,2637, 0, 0, 1880, 73, 0, 0 }, - {2638,2639, 0, 4, 473, 186, 0, 0 }, - {2640,2641, 0, 4, 16946, 1193, 0, 0 }, - {2642,2642, 0, 0, 40000, 720, 0, 0 }, - {2643,2644, 0, 4, 1880, 40, 0, 0 }, - {2645,2645, 0, 0, 40000, 73, 0, 0 }, - {2646,2647, 0, 4, 40000, 46, 0, 0 }, - {2648,2648, 0, 0, 2466, 80, 0, 0 }, - {2649,2649, 0, 0, 40000, 193, 0, 0 }, - {2650,2651, 0, 4, 993, 73, 0, 0 }, - {2652,2652, 0, 0, 40000, 220, 0, 0 }, - {2653,2654, 0, 4, 40000, 46, 0, 0 }, - {2655,2656, 0, 4, 40000, 46, 0, 0 }, - {2657,2657, 0, 0, 40000, 66, 0, 0 }, - {2658,2658, 35, 0, 626, 20, 0, 0 }, - {2659,2659, 35, 0, 306, 26, 0, 0 }, - {2660,2660, 52, 0, 126, 26, 0, 0 }, - {2661,2661, 60, 0, 286, 20, 0, 0 }, - {2662,2662, 58, 0, 113, 26, 0, 0 }, - {2663,2663, 60, 0, 380, 20, 0, 0 }, - {2664,2664, 50, 0, 1640, 66, 0, 0 }, - {2665,2665, 43, 0, 153, 20, 0, 0 }, - {2664,2664, 55, 0, 1640, 20, 0, 0 }, - {1553,1553, 43, 0, 160, 80, 0, 0 }, - {2666,2666, 50, 0, 980, 20, 0, 0 }, - {2667,2667, 43, 0, 446, 73, 0, 0 }, - {2666,2666, 53, 0, 1000, 80, 0, 0 }, - {2666,2666, 57, 0, 700, 73, 0, 0 }, - {2668,2668, 72, 0, 773, 13, 0, 0 }, - {2666,2666, 60, 0, 686, 20, 0, 0 }, - { 373, 373, 76, 0, 826, 20, 0, 0 }, - {2669,2669, 84, 0, 713, 20, 0, 0 }, - {2670,2670, 42, 0, 1186, 20, 0, 0 }, - {2671,2671, 65, 0, 293, 33, 0, 0 }, - {2672,2672, 84, 0, 386, 33, 0, 0 }, - {2673,2673, 84, 0, 1366, 20, 0, 0 }, - {2674,2674, 24, 0, 960, 73, 0, 0 }, - { 383, 383, 77, 0, 800, 20, 0, 0 }, - {2675,2675, 58, 0, 426, 26, 0, 0 }, - {2676,2676, 53, 0, 426, 20, 0, 0 }, - {2677,2677, 64, 0, 200, 66, 0, 0 }, - {2678,2678, 71, 0, 113, 13, 0, 0 }, - {2679,2679, 44, 0, 766, 66, 0, 0 }, - {2680,2680, 40, 0, 460, 60, 0, 0 }, - {2681,2681, 69, 0, 126, 26, 0, 0 }, - {2682,2682, 60, 0, 573, 66, 0, 0 }, - {2683,2683, 80, 0, 226, 20, 0, 0 }, - {2684,2684, 64, 0, 2693, 20, 0, 0 }, - {2685,2685, 72, 0, 120, 66, 0, 0 }, - {2686,2686, 70, 0, 820, 20, 0, 0 }, - {2687,2687, 48, 0, 173, 20, 0, 0 }, - {2688,2688, 53, 0, 980, 33, 0, 0 }, - {2689,2690, 0, 4, 40000, 286, 0, 0 }, - {2691,2692, 0, 4, 2326, 100, 0, 0 }, - {2693,2694, 0, 4, 380, 80, 0, 0 }, - {2695,2696, 0, 4, 14766, 73, 0, 0 }, - {2697,2698, 0, 4, 40000, 40, 0, 0 }, - { 192,2699, 0, 4, 40000, 73, 0, 0 }, - {2700,2701, 0, 4, 973, 126, 0, 0 }, - {2702,2703, 0, 4, 4626, 106, 0, 0 }, - {2704,2705, 0, 4, 40000, 73, 0, 0 }, - {2706,2707, 0, 4, 40000, 73, 0, 0 }, - {2708,2709, 0, 4, 40000, 73, 0, 0 }, - {2710,2711, 0, 4, 2053, 93, 0, 0 }, - {2712,1473, 0, 4, 320, 26, 0, 0 }, - {2713,2714, 0, 4, 573, 93, 0, 0 }, - {2715,2716, 0, 4, 6466, 353, 0, 0 }, - {1478,2717, 0, 4, 40000, 146, 0, 0 }, - {2718,2719, 0, 4, 40000, 66, 0, 0 }, - { 286,2720, 0, 4, 40000, 73, 0, 0 }, - {2721,2722, 0, 4, 40000, 86, 0, 0 }, - {2723,2724, 0, 4, 40000, 60, 0, 0 }, - {2725,2726, 0, 4, 393, 73, 0, 0 }, - {2727,2724, 0, 4, 40000, 60, 0, 0 }, - {1514,2728, 0, 4, 40000, 180, 0, 0 }, - {2729,2730, 0, 4, 40000, 0, 0, 0 }, - {2731,2732, 0, 4, 473, 186, 0, 0 }, - {2733,2734, 0, 4, 733, 33, 0, 0 }, - {2735,2736, 0, 4, 286, 40, 0, 0 }, - {2737,2738, 0, 4, 40000, 73, 0, 0 }, - {2739,2740, 0, 4, 1313, 746, 0, 0 }, - {2741,2742, 0, 4, 1326, 700, 0, 0 }, - {2743,2744, 0, 4, 40000, 0, 0, 0 }, - {2745,2746, 0, 4, 2046, 73, 0, 0 }, - {2747,2747, 35, 0, 386, 166, 0, 0 }, - {2748,2748, 60, 0, 493, 193, 0, 0 }, - {2749,2749, 43, 0, 126, 66, 0, 0 }, - {2750,2750, 0, 0, 3740, 1260, 0, 0 }, - {2751,2752, 0, 4, 14833, 360, 0, 0 }, - {2753,2754, 0, 4, 10206, 273, 0, 0 }, - {2755,2756, 0, 4, 18033, 146, 0, 0 }, - {2757,2758, 0, 4, 14433, 326, 0, 0 }, - {2759,2760, 0, 4, 14580, 626, 0, 0 }, - {2761,2762, 0, 4, 14720, 300, 0, 0 }, - {2763,2764, 0, 4, 10426, 106, 0, 0 }, - {2765,2766, 0, 4, 40000, 60, 0, 0 }, - {2767,2768, 0, 4, 40000, 80, 0, 0 }, - {2769,2770, 0, 4, 40000, 80, 0, 0 }, - {2771,2772, 0, 4, 40000, 73, 0, 0 }, - {2773,2774, 0, 4, 40000, 73, 0, 0 }, - {2775,2776, 0, 4, 40000, 80, 0, 0 }, - {2777,2778, 0, 4, 40000, 73, 0, 0 }, - {2779,2780, 0, 4, 40000, 73, 0, 0 }, - {2781,2782, 0, 4, 40000, 66, 0, 0 }, - {2783,2784, 0, 4, 7220, 186, 0, 0 }, - {2785,2786, 0, 4, 10300, 113, 0, 0 }, - {2787,2788, 0, 4, 40000, 246, 0, 0 }, - {2789,2790, 0, 4, 9106, 746, 0, 0 }, - {2791,2792, 0, 4, 7373, 666, 0, 0 }, - {2793,2794, 0, 4, 1200, 426, 0, 0 }, - {2795,2796, 0, 4, 40000, 413, 0, 0 }, - {2795,2797, 0, 4, 40000, 1506, 0, 0 }, - {2798,2799, 0, 4, 40000, 60, 0, 0 }, - {2800,2801, 0, 4, 40000, 233, 0, 0 }, - {2802,2803, 0, 4, 40000, 80, 0, 0 }, - {2804,2805, 0, 4, 40000, 80, 0, 0 }, - {2806,2807, 0, 4, 4500, 80, 0, 0 }, - {2808,2809, 0, 4, 40000, 73, 0, 0 }, - {2810,2811, 0, 4, 1180, 100, 0, 0 }, - {2812,2813, 0, 4, 953, 153, 0, 0 }, - {2814,2815, 0, 4, 14693, 126, 0, 0 }, - {2816,2817, 0, 4, 14693, 193, 0, 0 }, - {2818,2819, 0, 4, 14473, 633, 0, 0 }, - {2820,2821, 0, 4, 2200, 73, 0, 0 }, - {2822,2823, 0, 4, 366, 86, 0, 0 }, - {2824,2825, 0, 4, 12780, 200, 0, 0 }, - {2826,2827, 0, 4, 40000, 73, 0, 0 }, - {2828,2829, 0, 4, 9066, 146, 0, 0 }, - {2830,2831, 0, 4, 2526, 326, 0, 0 }, - {2832,2833, 0, 4, 6933, 200, 0, 0 }, - {2834,2835, 0, 4, 40000, 413, 0, 0 }, - {2836,2837, 0, 4, 4806, 1313, 0, 0 }, - {2838,2839, 0, 4, 14620, 340, 0, 0 }, - {2840,2841, 0, 4, 1866, 653, 0, 0 }, - {2842,2843, 0, 4, 5200, 260, 0, 0 }, - {2844,2845, 0, 4, 40000, 240, 0, 0 }, - {2846,2847, 0, 4, 40000, 240, 0, 0 }, - {2848,2849, 0, 4, 40000, 240, 0, 0 }, - {2850,2851, 0, 4, 40000, 406, 0, 0 }, - {2852,2853, 0, 4, 40000, 406, 0, 0 }, - {2854,2855, 0, 4, 40000, 146, 0, 0 }, - {2856,2856, 0, 0, 2400, 1126, 0, 0 }, - {2857,2857, 0, 0, 2400, 1126, 0, 0 }, - {2858,2859, 0, 4, 4586, 73, 0, 0 }, - {2860,2861, 0, 4, 40000, 426, 0, 0 }, - {2862,2863, 0, 4, 4553, 100, 0, 0 }, - {2864,2865, 0, 4, 40000, 80, 0, 0 }, - {2866,2867, 0, 4, 5260, 53, 0, 0 }, - {2868,2869, 0, 4, 5286, 113, 0, 0 }, - {2870,2871, 0, 4, 7040, 186, 0, 0 }, - {2872,2873, 0, 4, 4693, 106, 0, 0 }, - {2874,2875, 0, 4, 40000, 73, 0, 0 }, - {2876,2877, 0, 4, 1633, 146, 0, 0 }, - {2878,2879, 0, 4, 7266, 186, 0, 0 }, - {2880,2881, 0, 4, 7340, 1246, 0, 0 }, - {2882,2883, 0, 4, 4600, 93, 0, 0 }, - {2884,2885, 0, 4, 3446, 926, 0, 0 }, - {2886,2887, 0, 4, 40000, 73, 0, 0 }, - {2888,2888, 0, 0, 18926, 426, 0, 0 }, - {2889,2889, 0, 0, 18520, 73, 0, 0 }, - {2890,2890, 0, 0, 18473, 73, 0, 0 }, - {2891,2892, 0, 4, 40000, 93, 0, 0 }, - {2893,2893, 0, 0, 8006, 133, 0, 0 }, - {2894,2894, 0, 0, 18533, 66, 0, 0 }, - {2895,2895, 0, 0, 14786, 4966, 0, 0 }, - {2896,2897, 0, 4, 40000, 80, 0, 0 }, - {2898,2899, 0, 4, 40000, 73, 0, 0 }, - {2353,2900, 0, 4, 18420, 80, 0, 0 }, - {2901,2901, 0, 0, 40000, 0, 0, 0 }, - {2902,2903, 0, 4, 40000, 100, 0, 0 }, - {2904,2905, 0, 4, 40000, 93, 0, 0 }, - {2906,2907, 0, 4, 40000, 73, 0, 0 }, - {2908,2909, 0, 4, 10706, 160, 0, 0 }, - {2910,2911, 0, 4, 40000, 73, 0, 0 }, - {2912,2912, 0, 0, 40000, 40, 0, 0 }, - {2913,2914, 0, 4, 8713, 446, 0, 0 }, - {2915,2916, 0, 4, 14633, 653, 0, 0 }, - {2917,2918, 0, 4, 9166, 426, 0, 0 }, - {2919,2920, 0, 4, 9213, 240, 0, 0 }, - {2921,2922, 0, 4, 8700, 420, 0, 0 }, - {2923,2924, 0, 4, 2200, 346, 0, 0 }, - {2925,2926, 0, 4, 2360, 426, 0, 0 }, - {2927,2928, 0, 4, 2340, 233, 0, 0 }, - {2929,2929, 0, 0, 40000, 140, 0, 0 }, - {2930,2931, 0, 4, 40000, 100, 0, 0 }, - {2932,2933, 0, 4, 40000, 73, 0, 0 }, - {2934,2935, 0, 4, 40000, 80, 0, 0 }, - {2936,2937, 0, 4, 40000, 80, 0, 0 }, - {2938,2939, 0, 4, 40000, 246, 0, 0 }, - {2940,2940, 0, 0, 553, 446, 0, 0 }, - {2941,2941, 0, 0, 40000, 193, 0, 0 }, - {2942,2943, 0, 4, 1200, 406, 0, 0 }, - {2944,2944, 0, 0, 7026, 1553, 0, 0 }, - {2945,2945, 0, 0, 3426, 360, 0, 0 }, - {2946,2947, 0, 4, 7200, 646, 0, 0 }, - {2948,2948, 0, 0, 40000, 386, 0, 0 }, - {2949,2949, 0, 0, 1953, 726, 0, 0 }, - {2950,2951, 0, 4, 14606, 106, 0, 0 }, - {2952,2953, 0, 4, 40000, 1566, 0, 0 }, - {2954,2954, 60, 2, 6, 0, 0, 0 }, - {2955,2956, 0, 4, 40000, 240, 0, 0 }, - {2957,2958, 0, 4, 40000, 80, 0, 0 }, - {2959,2960, 0, 4, 40000, 113, 0, 0 }, - {2961,2962, 0, 4, 40000, 240, 0, 0 }, - {2963,2963, 0, 0, 8506, 680, 0, 0 }, - {2964,2964, 0, 0, 40000, 1593, 0, 0 }, - {2436,2436, 49, 0, 1873, 633, 0, 0 }, - {2357,2357, 61, 0, 113, 20, 0, 0 }, - {2357,2357, 56, 0, 113, 26, 0, 0 }, - {2357,2357, 58, 0, 113, 26, 0, 0 }, - {2357,2357, 49, 0, 126, 26, 0, 0 }, - {2357,2357, 44, 0, 126, 26, 0, 0 }, - {2965,2965, 0, 0, 40000, 380, 0, 0 }, - {2966,2966, 0, 0, 4440, 66, 0, 0 }, - {2967,2967, 0, 0, 8133, 1433, 0, 0 }, - {2968,2968, 0, 0, 40000, 126, 0, 0 }, - {2969,2969, 0, 0, 40000, 0, 0, 0 }, - {2970,2970, 84, 0, 160, 26, 0, 0 }, - {2971,2971, 72, 0, 440, 180, 0, 0 }, - {2972,2972, 0, 0, 8313, 580, 0, 0 }, - {2973,2973, 0, 0, 40000, 160, 0, 0 }, - {2974,2974, 0, 0, 40000, 3000, 0, 0 }, - {2975,2975, 0, 0, 8300, 493, 0, 0 }, - {2976,2976, 0, 0, 973, 673, 0, 0 }, - {2977,2977, 0, 0, 40000, 73, 0, 0 }, - {2978,2978, 0, 0, 40000, 133, 0, 0 }, - {2979,2979, 0, 0, 40000, 140, 0, 0 }, - {2980,2980, 0, 0, 40000, 346, 0, 0 }, - {2981,2981, 0, 0, 40000, 1006, 0, 0 }, - {2982,2982, 0, 0, 40000, 966, 0, 0 }, - {2983,2983, 0, 0, 40000, 0, 0, 0 }, - {2984,2984, 0, 0, 40000, 0, 0, 0 }, - {2985,2985, 0, 0, 40000, 66, 0, 0 }, - {2986,2986, 0, 0, 40000, 66, 0, 0 }, - {2987,2987, 0, 0, 40000, 46, 0, 0 }, - {2988,2988, 0, 0, 40000, 533, 0, 0 }, - {2989,2989, 0, 0, 2400, 780, 0, 0 }, - {2990,2990, 0, 0, 820, 66, 0, 0 }, - {2991,2991, 0, 0, 40000, 240, 0, 0 }, - {2992,2992, 0, 0, 40000, 220, 0, 0 }, - {2993,2993, 0, 0, 40000, 0, 0, 0 }, - {2994,2994, 0, 0, 15100, 73, 0, 0 }, - {2995,2995, 0, 0, 40000, 200, 0, 0 }, - {2996,2996, 0, 0, 2426, 93, 0, 0 }, - {2997,2997, 0, 0, 4640, 1553, 0, 0 }, - {2998,2998, 0, 0, 40000, 73, 0, 0 }, - {2999,2999, 0, 0, 40000, 73, 0, 0 }, - {3000,3000, 0, 0, 1133, 633, 0, 0 }, - {3001,3001, 0, 0, 40000, 0, 0, 0 }, - {3002,3002, 0, 0, 40000, 1006, 0, 0 }, - {3003,3003, 0, 0, 4653, 653, 0, 0 }, - {3004,3004, 0, 0, 40000, 1000, 0, 0 }, - {3005,3005, 0, 0, 40000, 53, 0, 0 }, - {3006,3006, 0, 0, 40000, 60, 0, 0 }, - {3007,3007, 0, 0, 40000, 0, 0, 0 }, - { 350, 350, 0, 0, 513, 200, 0, 0 }, - {3008,3008, 0, 0, 213, 106, 0, 0 }, - {3009,3009, 0, 0, 280, 126, 0, 0 }, - {3010,3010, 0, 0, 1193, 426, 0, 0 }, - {3011,3011, 0, 0, 14653, 4906, 0, 0 }, - {3012,3012, 0, 0, 1040, 326, 0, 0 }, - {3013,3013, 0, 0, 5740, 2326, 0, 0 }, - {3014,3014, 0, 0, 40000, 73, 0, 0 }, - {3015,3015, 0, 0, 40000, 240, 0, 0 }, - { 350, 350, 36, 0, 380, 153, 0, 0 }, - { 369, 369, 37, 0, 213, 66, 0, 0 }, - {3008,3008, 38, 0, 213, 106, 0, 0 }, - { 369, 369, 24, 0, 193, 13, 0, 0 }, - {3008,3008, 32, 0, 206, 106, 0, 0 }, - { 369, 369, 48, 0, 186, 20, 0, 0 }, - {3009,3009, 42, 0, 220, 106, 0, 0 }, - { 369, 369, 50, 0, 186, 73, 0, 0 }, - { 369, 369, 52, 0, 186, 73, 0, 0 }, - { 369, 369, 54, 0, 186, 33, 0, 0 }, - { 369, 369, 55, 0, 186, 33, 0, 0 }, - { 369, 369, 57, 0, 180, 33, 0, 0 }, - {3010,3010, 51, 0, 966, 353, 0, 0 }, - { 144, 144, 61, 0, 213, 126, 0, 0 }, - {3016,3016, 0, 0, 8340, 520, 0, 0 }, - {3016,3016, 63, 0, 6106, 373, 0, 0 }, - {3016,3016, 64, 0, 6073, 380, 0, 0 }, - {3017,3017, 40, 0, 206, 100, 0, 0 }, - {3017,3017, 70, 0, 160, 93, 0, 0 }, - {3018,3018, 0, 0, 40000, 73, 0, 0 }, - {3019,3019, 0, 0, 40000, 73, 0, 0 }, - {3020,3020, 0, 0, 40000, 73, 0, 0 }, - {3021,3021, 0, 0, 40000, 73, 0, 0 }, - {3022,3022, 38, 0, 246, 33, 0, 0 }, - {2441,2441, 57, 0, 286, 126, 0, 0 }, - {3023,3023, 63, 0, 146, 126, 0, 0 }, - {3024,3024, 74, 0, 280, 73, 0, 0 }, - {3025,3025, 74, 0, 453, 100, 0, 0 }, - {3026,3026, 60, 0, 666, 33, 0, 0 }, - {1593,1594, 35, 4, 1220, 413, 0, 0 }, - {1564,1565, 35, 4, 700, 260, 0, 0 }, - { 248,3027, 0, 4, 40000, 126, 0, 0 }, - {1445,3028, 0, 4, 9920, 326, 0, 0 }, - {1447,3029, 0, 4, 10133, 26, 0, 0 }, - {1452,3030, 0, 4, 9213, 240, 0, 0 }, - {1544,3031, 0, 4, 293, 86, 0, 0 }, - {1546,3032, 0, 4, 40000, 153, 0, 0 }, - { 398, 399, 35, 4, 1906, 226, 0, 0 }, - {1550,3033, 35, 4, 66, 26, 0, 0 }, - {1556,1557, 35, 4, 1126, 426, 0, 0 }, - {1558,1559, 35, 4, 1126, 413, 0, 0 }, - {1570,1571, 35, 4, 493, 100, 0, 0 }, - {1608,1609, 35, 4, 2286, 413, 0, 0 }, - {1595,1596, 35, 4, 220, 260, 0, 0 }, - { 159,1597, 35, 4, 220, 273, 0, 0 }, - {1610,1611, 35, 4, 220, 260, 0, 0 }, - { 397,1588, 35, 4, 253, 86, 0, 0 }, - {1606,1607, 35, 4, 140, 60, 0, 0 }, - { 145,1576, 35, 4, 160, 120, 0, 0 }, - {1612,1613, 35, 4, 413, 440, 0, 0 }, - {1577,1578, 35, 4, 373, 393, 0, 0 }, - {1614,1615, 35, 4, 706, 760, 0, 0 }, - {1550,1551, 35, 4, 620, 240, 0, 0 }, - { 364, 365, 35, 4, 146, 26, 0, 0 }, - { 129,1549, 35, 4, 200, 100, 0, 0 }, - { 132,1552, 35, 4, 213, 106, 0, 0 }, - {1553,1554, 35, 4, 206, 73, 0, 0 }, - { 129,1548, 35, 4, 200, 100, 0, 0 }, - { 134,1555, 35, 4, 2233, 680, 0, 0 }, - {1560,1561, 35, 4, 353, 146, 0, 0 }, - {1562,1563, 35, 4, 2013, 426, 0, 0 }, - {1572,1573, 35, 4, 346, 153, 0, 0 }, - {1574,1575, 35, 4, 360, 246, 0, 0 }, - {1581,1582, 35, 4, 620, 246, 0, 0 }, - { 149,1583, 35, 4, 326, 33, 0, 0 }, - {1584,1585, 35, 4, 200, 100, 0, 0 }, - {1591,1592, 35, 4, 1206, 413, 0, 0 }, - {1579,1580, 35, 4, 273, 233, 0, 0 }, - {1586,1587, 35, 4, 200, 100, 0, 0 }, - {1589,1590, 35, 4, 120, 86, 0, 0 }, - {1600,1601, 35, 4, 1246, 373, 0, 0 }, - {1602,1603, 35, 4, 700, 273, 0, 0 }, - {1604,1605, 35, 4, 2660, 926, 0, 0 }, - {1598,1599, 35, 4, 1300, 400, 0, 0 }, - { 374, 375, 35, 4, 1186, 426, 0, 0 }, - {1566,1567, 35, 4, 2333, 813, 0, 0 }, - {2306,2307, 35, 4, 2360, 906, 0, 0 }, - {3034, 339, 35, 6, 6, 0, 0, 0 }, - {2305,1548, 35, 4, 200, 100, 0, 0 }, - {1595,1595, 35, 0, 220, 273, 0, 0 }, - {2303,2304, 35, 4, 146, 26, 0, 0 }, - {1560,2308, 35, 4, 353, 233, 0, 0 }, - {2309,2310, 35, 4, 2013, 433, 0, 0 }, - {1568,1568, 35, 0, 1280, 453, 0, 0 }, - {2311,2312, 35, 4, 346, 146, 0, 0 }, - {2313,2314, 35, 4, 633, 240, 0, 0 }, - {2315,2315, 35, 0, 106, 46, 0, 0 }, - {2316,2316, 35, 0, 506, 453, 0, 0 }, - {1612,1612, 35, 0, 526, 400, 0, 0 }, - {2317,2317, 35, 0, 640, 253, 0, 0 }, - {2318,2318, 35, 0, 326, 20, 0, 0 }, - {2319,2319, 35, 0, 453, 446, 0, 0 }, - {2320,2320, 35, 0, 466, 453, 0, 0 }, - {2321,2321, 35, 0, 120, 26, 0, 0 }, - {2322,2322, 35, 0, 1220, 406, 0, 0 }, - {2323,2323, 35, 0, 2360, 786, 0, 0 }, - {2324, 392, 35, 4, 180, 46, 0, 0 }, - {2324, 393, 35, 4, 460, 66, 0, 0 }, - {2325,2326, 35, 4, 533, 133, 0, 0 }, - {2327,2328, 35, 4, 1273, 406, 0, 0 }, - {2329,2330, 35, 4, 613, 773, 0, 0 }, - {2331,2332, 35, 4, 2340, 780, 0, 0 }, - {3035,3036, 35, 4, 1193, 433, 0, 0 }, - {3037,3038, 35, 4, 1840, 340, 0, 0 }, - {1564,1564, 35, 0, 713, 273, 0, 0 }, - {3039,3039, 0, 0, 40000, 0, 0, 0 }, - {3040,3040, 0, 0, 6100, 146, 0, 0 }, - {3041,3041, 0, 0, 2386, 26, 0, 0 }, - {3042,3042, 0, 0, 4320, 80, 0, 0 }, - {3043,3043, 0, 0, 3433, 313, 0, 0 }, - {3044,3044, 0, 0, 6620, 2446, 0, 0 }, - {3045,3045, 0, 0, 3726, 1253, 0, 0 }, - {3046,3046, 0, 0, 40000, 133, 0, 0 }, - {3047,3047, 0, 0, 4566, 1253, 0, 0 }, - {3048,3048, 0, 0, 40000, 813, 0, 0 }, - {3049,3049, 0, 0, 18513, 1560, 0, 0 }, - {3050,3050, 0, 0, 2186, 426, 0, 0 }, - {3051,3051, 0, 0, 1186, 420, 0, 0 }, - {3052,3052, 0, 0, 766, 420, 0, 0 }, - {3053,3053, 0, 0, 14513, 4713, 0, 0 }, - {3054,3054, 0, 0, 15493, 1580, 0, 0 }, - {3055,3055, 0, 0, 40000, 66, 0, 0 }, - {3056,3056, 0, 0, 40000, 60, 0, 0 }, - {3057,3057, 0, 0, 4740, 100, 0, 0 }, - {3058,3058, 0, 0, 40000, 66, 0, 0 }, - {3059,3059, 0, 0, 40000, 73, 0, 0 }, - {3060,3060, 0, 0, 40000, 73, 0, 0 }, - {3061,3061, 0, 0, 40000, 0, 0, 0 }, - {3062,3062, 0, 0, 8373, 633, 0, 0 }, - {3063,3063, 0, 0, 7560, 133, 0, 0 }, - {3064,3064, 0, 0, 40000, 0, 0, 0 }, - {3065,3065, 0, 0, 40000, 86, 0, 0 }, - {3066,3066, 0, 0, 340, 140, 0, 0 }, - {3067,3067, 0, 0, 40000, 0, 0, 0 }, - {3068,3068, 0, 0, 40000, 166, 0, 0 }, - {3069,3069, 0, 0, 4280, 1466, 0, 0 }, - {3070,3070, 0, 0, 2193, 73, 0, 0 }, - {3071,3071, 0, 0, 4846, 100, 0, 0 }, - {3072,3072, 0, 0, 12740, 93, 0, 0 }, - {3073,3073, 0, 0, 6953, 200, 0, 0 }, - {3074,3074, 0, 0, 13780, 73, 0, 0 }, - {3075,3075, 0, 0, 40000, 73, 0, 0 }, - {3076,3076, 0, 0, 5860, 600, 0, 0 }, - {3077,3077, 0, 0, 2206, 73, 0, 0 }, - {3078,3078, 0, 0, 40000, 140, 0, 0 }, - {3079,3079, 0, 0, 40000, 53, 0, 0 }, - {3080,3080, 0, 0, 40000, 120, 0, 0 }, - {3081,3081, 0, 0, 40000, 140, 0, 0 }, - {3082,3082, 0, 0, 40000, 126, 0, 0 }, - {3083,3083, 0, 0, 360, 140, 0, 0 }, - {3084,3084, 0, 0, 8880, 1373, 0, 0 }, - {3085,3085, 0, 0, 593, 73, 0, 0 }, - {3086,3086, 0, 0, 40000, 193, 0, 0 }, - {3087,3087, 0, 0, 40000, 200, 0, 0 }, - {3088,3088, 0, 0, 40000, 160, 0, 0 }, - {3089,3089, 0, 0, 40000, 200, 0, 0 }, - {3090,3090, 0, 0, 40000, 53, 0, 0 }, - {3091,3091, 0, 0, 40000, 73, 0, 0 }, - {3092,3092, 0, 0, 40000, 73, 0, 0 }, - {3093,3093, 0, 0, 760, 213, 0, 0 }, - {3094,3094, 0, 0, 40000, 133, 0, 0 }, - {3095,3095, 0, 0, 40000, 220, 0, 0 }, - {3096,3096, 0, 0, 40000, 100, 0, 0 }, - {3097,3097, 0, 0, 40000, 73, 0, 0 }, - {3098,3098, 0, 0, 40000, 140, 0, 0 }, - {3099,3099, 0, 0, 40000, 140, 0, 0 }, - {3100,3100, 0, 0, 40000, 140, 0, 0 }, - {3101,3101, 0, 0, 40000, 73, 0, 0 }, - {3102,3102, 0, 0, 40000, 73, 0, 0 }, - {3103,3103, 0, 0, 40000, 73, 0, 0 }, - {3104,3104, 0, 0, 40000, 73, 0, 0 }, - {3105,3105, 0, 0, 40000, 66, 0, 0 }, - {3106,3106, 0, 0, 40000, 66, 0, 0 }, - {3107,3107, 0, 0, 40000, 73, 0, 0 }, - {3108,3108, 0, 0, 40000, 73, 0, 0 }, - {3109,3109, 0, 0, 40000, 73, 0, 0 }, - {3110,3110, 0, 0, 40000, 73, 0, 0 }, - {3111,3111, 0, 0, 40000, 86, 0, 0 }, - {3112,3112, 0, 0, 5393, 100, 0, 0 }, - {3113,3113, 0, 0, 40000, 60, 0, 0 }, - {3114,3114, 0, 0, 18500, 73, 0, 0 }, - {3115,3115, 0, 0, 40000, 93, 0, 0 }, - {3116,3116, 0, 0, 40000, 86, 0, 0 }, - {3117,3117, 0, 0, 40000, 173, 0, 0 }, - {3118,3118, 0, 0, 40000, 1353, 0, 0 }, - {3119,3119, 0, 0, 17506, 73, 0, 0 }, - {3120,3120, 0, 0, 40000, 100, 0, 0 }, - {3121,3121, 0, 0, 40000, 73, 0, 0 }, - {3122,3122, 0, 0, 5620, 193, 0, 0 }, - {3123,3123, 0, 0, 3700, 80, 0, 0 }, - {3124,3124, 0, 0, 40000, 66, 0, 0 }, - {3125,3125, 0, 0, 2740, 80, 0, 0 }, - {3126,3126, 0, 0, 8333, 173, 0, 0 }, - {3127,3127, 0, 0, 2226, 466, 0, 0 }, - {3128,3128, 0, 0, 340, 146, 0, 0 }, - {3129,3129, 0, 0, 19980, 6280, 0, 0 }, - {3130,3130, 0, 0, 353, 73, 0, 0 }, - {3131,3131, 35, 0, 566, 233, 0, 0 }, - {3132,3132, 35, 0, 226, 46, 0, 0 }, - {3133,3133, 35, 0, 40000, 100, 0, 0 }, - {3134,3134, 35, 0, 40000, 100, 0, 0 }, - {3135,3135, 35, 0, 360, 146, 0, 0 }, - {3061,3061, 35, 0, 40000, 0, 0, 0 }, - {3136,3136, 35, 0, 366, 20, 0, 0 }, - { 739, 739, 35, 0, 246, 20, 0, 0 }, - {3137,3137, 35, 0, 333, 33, 0, 0 }, - {3138,3138, 35, 0, 420, 166, 0, 0 }, - {3139,3139, 35, 0, 626, 240, 0, 0 }, - {3140,3140, 35, 0, 233, 100, 0, 0 }, - {3141,3141, 35, 0, 1166, 440, 0, 0 }, - {3142,3142, 35, 0, 166, 66, 0, 0 }, - {3143,3143, 35, 0, 1166, 440, 0, 0 }, - {3144,3144, 35, 0, 813, 100, 0, 0 }, - {3145,3145, 35, 0, 1040, 440, 0, 0 }, - {3146,3146, 35, 0, 40000, 0, 0, 0 }, - {3147,3147, 35, 0, 40000, 0, 0, 0 }, - {3148,3148, 35, 0, 180, 40, 0, 0 }, - {3149,3149, 35, 0, 40000, 0, 0, 0 }, - {3150,3150, 0, 0, 40000, 0, 0, 0 }, - {3151,3151, 0, 0, 4900, 240, 0, 0 }, - {3152,3152, 0, 0, 3480, 80, 0, 0 }, - {3153,3153, 0, 0, 3586, 86, 0, 0 }, - {3154,3154, 0, 0, 4626, 633, 0, 0 }, - {3155,3155, 0, 0, 4293, 2286, 0, 0 }, - {3156,3156, 0, 0, 13653, 4720, 0, 0 }, - {3157,3157, 0, 0, 1206, 426, 0, 0 }, - {3158,3158, 0, 0, 653, 426, 0, 0 }, - {3159,3159, 0, 0, 40000, 0, 0, 0 }, - {3160,3160, 0, 0, 4633, 633, 0, 0 }, - {3161,3161, 0, 0, 40000, 73, 0, 0 }, - {3162,3162, 0, 0, 40000, 60, 0, 0 }, - {3163,3163, 0, 0, 40000, 146, 0, 0 }, - {3164,3164, 0, 0, 40000, 73, 0, 0 }, - {3165,3165, 0, 0, 40000, 73, 0, 0 }, - {3166,3166, 0, 0, 40000, 0, 0, 0 }, - {3167,3167, 0, 0, 40000, 66, 0, 0 }, - {3168,3168, 0, 0, 3680, 1180, 0, 0 }, - {3169,3169, 0, 0, 2406, 846, 0, 0 }, - {3170,3170, 0, 0, 1560, 73, 0, 0 }, - {3171,3171, 0, 0, 1946, 226, 0, 0 }, - {3172,3172, 0, 0, 4333, 13, 0, 0 }, - {3173,3173, 0, 0, 40000, 0, 0, 0 }, - {3174,3174, 0, 0, 40000, 0, 0, 0 }, - {3175,3175, 0, 0, 40000, 66, 0, 0 }, - {3176,3176, 0, 0, 40000, 180, 0, 0 }, - {3177,3177, 0, 0, 15380, 80, 0, 0 }, - {3178,3178, 0, 0, 18213, 73, 0, 0 }, - {3179,3179, 0, 0, 1706, 0, 0, 0 }, - {3180,3180, 0, 0, 5733, 1266, 0, 0 }, - {3181,3181, 0, 0, 40000, 0, 0, 0 }, - {3182,3182, 0, 0, 40000, 366, 0, 0 }, - {3183,3183, 0, 0, 40000, 66, 0, 0 }, - {3184,3184, 0, 0, 4786, 73, 0, 0 }, - {3185,3185, 0, 0, 5660, 720, 0, 0 }, - {3186,3186, 0, 0, 1293, 406, 0, 0 }, - {3187,3187, 0, 0, 40000, 0, 0, 0 }, - {3188,3188, 0, 0, 2686, 233, 0, 0 }, - {3189,3189, 0, 0, 40000, 0, 0, 0 }, - {3190,3190, 0, 0, 40000, 73, 0, 0 }, - {3191,3191, 0, 0, 40000, 0, 0, 0 }, - {3192,3192, 0, 0, 40000, 73, 0, 0 }, - {3193,3193, 0, 0, 40000, 0, 0, 0 }, - {3194,3194, 0, 0, 3920, 73, 0, 0 }, - {3195,3195, 0, 0, 40000, 73, 0, 0 }, - {3196,3196, 0, 0, 40000, 66, 0, 0 }, - {3197,3197, 0, 0, 40000, 80, 0, 0 }, - {3198,3198, 0, 0, 40000, 86, 0, 0 }, - {3199,3199, 0, 0, 40000, 60, 0, 0 }, - {3200,3200, 0, 0, 40000, 0, 0, 0 }, - {3201,3201, 0, 0, 40000, 353, 0, 0 }, - {3202,3202, 0, 0, 3920, 73, 0, 0 }, - {3203,3203, 0, 0, 5833, 813, 0, 0 }, - {3204,3204, 0, 0, 40000, 60, 0, 0 }, - {3205,3205, 0, 0, 40000, 73, 0, 0 }, - {3206,3206, 0, 0, 1400, 406, 0, 0 }, - {3207,3207, 0, 0, 40000, 66, 0, 0 }, - {3208,3208, 0, 0, 9066, 2220, 0, 0 }, - {3209,3209, 0, 0, 1473, 773, 0, 0 }, - {3210,3210, 0, 0, 40000, 120, 0, 0 }, - {3211,3211, 0, 0, 40000, 306, 0, 0 }, - {3212,3212, 0, 0, 9306, 3013, 0, 0 }, - {3213,3213, 0, 0, 40000, 60, 0, 0 }, - {3214,3214, 0, 0, 40000, 73, 0, 0 }, - {3215,3215, 0, 0, 40000, 73, 0, 0 }, - {3216,3216, 0, 0, 40000, 453, 0, 0 }, - {3217,3217, 0, 0, 40000, 3460, 0, 0 }, - {3218,3218, 0, 0, 40000, 453, 0, 0 }, - {3219,3219, 0, 0, 40000, 40, 0, 0 }, - {3220,3220, 0, 0, 40000, 3926, 0, 0 }, - {3221,3221, 0, 0, 40000, 4506, 0, 0 }, - {3222,3222, 0, 0, 4646, 646, 0, 0 }, - {3223,3223, 0, 0, 773, 100, 0, 0 }, - {3224,3224, 0, 0, 40000, 73, 0, 0 }, - {3225,3225, 0, 0, 40000, 173, 0, 0 }, - {3226,3226, 0, 0, 1606, 653, 0, 0 }, - {3227,3227, 0, 0, 2353, 806, 0, 0 }, - {3228,3228, 0, 0, 980, 360, 0, 0 }, - {3229,3229, 0, 0, 1193, 413, 0, 0 }, - { 499, 499, 0, 0, 266, 160, 0, 0 }, - {3230,3230, 0, 0, 973, 360, 0, 0 }, - {3231,3231, 0, 0, 273, 53, 0, 0 }, - {3232,3232, 0, 0, 726, 220, 0, 0 }, - {3233,3233, 0, 0, 19933, 6093, 0, 0 }, - {3234,3234, 0, 0, 40000, 0, 0, 0 }, - { 403, 403, 0, 0, 40000, 73, 0, 0 }, - {3235,3235, 0, 0, 4966, 233, 0, 0 }, - {3236,3236, 0, 0, 4946, 240, 0, 0 }, - {3237,3237, 0, 0, 4946, 233, 0, 0 }, - {3238,3238, 0, 0, 4640, 1613, 0, 0 }, - {3239,3239, 0, 0, 2360, 806, 0, 0 }, - {3240,3240, 0, 0, 4466, 200, 0, 0 }, - {3241,3241, 0, 0, 40000, 73, 0, 0 }, - {3242,3242, 0, 0, 40000, 73, 0, 0 }, - {3243,3243, 0, 0, 40000, 73, 0, 0 }, - {3244,3244, 0, 0, 40000, 73, 0, 0 }, - {3245,3245, 0, 0, 40000, 240, 0, 0 }, - {3246,3246, 0, 0, 40000, 226, 0, 0 }, - {3247,3247, 0, 0, 40000, 233, 0, 0 }, - {3248,3248, 0, 0, 40000, 240, 0, 0 }, - {3249,3249, 0, 0, 4306, 1253, 0, 0 }, - {3250,3250, 0, 0, 3873, 1206, 0, 0 }, - {3251,3251, 0, 0, 4640, 633, 0, 0 }, - {3252,3252, 0, 0, 1233, 80, 0, 0 }, - {3253,3253, 0, 0, 1233, 26, 0, 0 }, - {3254,3254, 0, 0, 1233, 26, 0, 0 }, - {3255,3255, 0, 0, 4573, 1253, 0, 0 }, - {3256,3256, 0, 0, 3793, 1240, 0, 0 }, - {3257,3257, 0, 0, 40000, 73, 0, 0 }, - {3258,3258, 0, 0, 40000, 73, 0, 0 }, - {3259,3259, 0, 0, 40000, 140, 0, 0 }, - {3260,3260, 0, 0, 40000, 146, 0, 0 }, - {3261,3261, 0, 0, 40000, 80, 0, 0 }, - {3262,3262, 0, 0, 5953, 200, 0, 0 }, - {3263,3263, 0, 0, 5926, 200, 0, 0 }, - {3264,3264, 0, 0, 5866, 26, 0, 0 }, - {3265,3265, 0, 0, 18573, 6153, 0, 0 }, - {3266,3266, 0, 0, 40000, 2093, 0, 0 }, - {3267,3267, 0, 0, 40000, 73, 0, 0 }, - {3268,3268, 0, 0, 18626, 1553, 0, 0 }, - {3269,3269, 0, 0, 40000, 1820, 0, 0 }, - {3270,3270, 0, 0, 40000, 500, 0, 0 }, - {3271,3271, 0, 0, 18206, 5900, 0, 0 }, - {3272,3272, 0, 0, 14200, 93, 0, 0 }, - {3273,3273, 0, 0, 40000, 2873, 0, 0 }, - {3274,3274, 0, 0, 14960, 4913, 0, 0 }, - {3275,3275, 0, 0, 40000, 86, 0, 0 }, - {3276,3276, 0, 0, 40000, 826, 0, 0 }, - {3277,3277, 0, 0, 40000, 200, 0, 0 }, - {3278,3278, 0, 0, 40000, 340, 0, 0 }, - {3279,3279, 0, 0, 13220, 2500, 0, 0 }, - {3280,3280, 0, 0, 40000, 100, 0, 0 }, - {3281,3281, 0, 0, 40000, 1026, 0, 0 }, - {3282,3282, 0, 0, 40000, 366, 0, 0 }, - {3283,3283, 0, 0, 40000, 386, 0, 0 }, - {3284,3284, 0, 0, 40000, 0, 0, 0 }, - {3285,3285, 0, 0, 40000, 0, 0, 0 }, - {3286,3286, 0, 0, 40000, 140, 0, 0 }, - {3287,3287, 0, 0, 40000, 53, 0, 0 }, - {3288,3288, 0, 0, 40000, 120, 0, 0 }, - {3289,3289, 0, 0, 8866, 1366, 0, 0 }, - {3290,3290, 0, 0, 4193, 1400, 0, 0 }, - {3291,3291, 0, 0, 8353, 673, 0, 0 }, - {3292,3292, 0, 0, 8353, 673, 0, 0 }, - {3293,3293, 0, 0, 8400, 593, 0, 0 }, - {3294,3294, 0, 0, 8440, 666, 0, 0 }, - {3295,3295, 0, 0, 9600, 1580, 0, 0 }, - {3296,3296, 0, 0, 40000, 46, 0, 0 }, - {3297,3297, 0, 0, 40000, 0, 0, 0 }, - {3298,3298, 0, 0, 1653, 93, 0, 0 }, - {3299,3299, 0, 0, 2706, 73, 0, 0 }, - {3300,3300, 0, 0, 11680, 26, 0, 0 }, - {3301,3301, 0, 0, 6500, 340, 0, 0 }, - {3302,3302, 0, 0, 40000, 0, 0, 0 }, - {3303,3303, 0, 0, 40000, 0, 0, 0 }, - {3304,3304, 0, 0, 40000, 73, 0, 0 }, - {3305,3305, 0, 0, 40000, 73, 0, 0 }, - {3306,3306, 0, 0, 40000, 73, 0, 0 }, - {3307,3307, 0, 0, 40000, 73, 0, 0 }, - {3308,3308, 0, 0, 40000, 73, 0, 0 }, - {3309,3309, 0, 0, 40000, 73, 0, 0 }, - {3310,3310, 0, 0, 40000, 73, 0, 0 }, - {3311,3311, 0, 0, 40000, 73, 0, 0 }, - {3312,3312, 0, 0, 40000, 73, 0, 0 }, - {3313,3313, 0, 0, 40000, 133, 0, 0 }, - {3314,3314, 0, 0, 40000, 126, 0, 0 }, - {3315,3315, 0, 0, 40000, 73, 0, 0 }, - {3316,3316, 0, 0, 40000, 73, 0, 0 }, - {3317,3317, 0, 0, 40000, 73, 0, 0 }, - {3318,3318, 0, 0, 40000, 200, 0, 0 }, - {3319,3319, 0, 0, 40000, 133, 0, 0 }, - {3320,3320, 0, 0, 40000, 0, 0, 0 }, - {3321,3321, 0, 0, 40000, 240, 0, 0 }, - {3322,3322, 0, 0, 40000, 220, 0, 0 }, - {3323,3323, 0, 0, 40000, 226, 0, 0 }, - {3324,3324, 0, 0, 40000, 100, 0, 0 }, - {3325,3325, 0, 0, 40000, 140, 0, 0 }, - {3326,3326, 0, 0, 40000, 0, 0, 0 }, - {3327,3327, 0, 0, 40000, 426, 0, 0 }, - {3328,3328, 0, 0, 40000, 426, 0, 0 }, - {3329,3329, 0, 0, 3680, 1220, 0, 0 }, - {3330,3330, 0, 0, 40000, 533, 0, 0 }, - {3331,3331, 0, 0, 40000, 813, 0, 0 }, - {3332,3332, 0, 0, 14506, 4706, 0, 0 }, - {3333,3333, 0, 0, 766, 420, 0, 0 }, - {3334,3334, 0, 0, 40000, 1566, 0, 0 }, - {3335,3335, 0, 0, 40000, 120, 0, 0 }, - {3336,3336, 0, 0, 40000, 2380, 0, 0 }, - {3337,3337, 0, 0, 5666, 300, 0, 0 }, - {3338,3338, 0, 0, 40000, 73, 0, 0 }, - {3339,3339, 0, 0, 40000, 2513, 0, 0 }, - {3340,3340, 0, 0, 1260, 826, 0, 0 }, - {3341,3341, 0, 0, 2420, 413, 0, 0 }, - {3342,3342, 0, 0, 626, 240, 0, 0 }, - {3343,3343, 0, 0, 273, 60, 0, 0 }, - {3344,3344, 0, 0, 540, 20, 0, 0 }, - {3345,3345, 0, 0, 540, 20, 0, 0 }, - {3346,3346, 0, 0, 540, 20, 0, 0 }, - {3347,3347, 0, 0, 1153, 760, 0, 0 }, - {3348,3348, 0, 0, 40000, 100, 0, 0 }, - {3349,3349, 0, 0, 7326, 2380, 0, 0 }, - {3350,3350, 0, 0, 40000, 4426, 0, 0 }, - {3351,3351, 0, 0, 7413, 2493, 0, 0 }, - {3352,3352, 0, 0, 253, 20, 0, 0 }, - {3353,3353, 0, 0, 246, 33, 0, 0 }, - {3354,3354, 0, 0, 286, 13, 0, 0 }, - {3355,3355, 0, 0, 953, 13, 0, 0 }, - {3356,3356, 0, 0, 293, 20, 0, 0 }, - { 142, 142, 20, 0, 1893, 620, 0, 0 }, - {3357,1451, 0, 4, 2340, 780, 0, 0 }, - {3358,3359, 0, 4, 9206, 240, 0, 0 }, - {3360,1455, 0, 4, 40000, 0, 0, 0 }, - {3361,1463, 0, 4, 40000, 266, 0, 0 }, - { 225,3362, 0, 4, 7993, 100, 0, 0 }, - {3363,1545, 0, 4, 293, 86, 0, 0 }, - {3364,1547, 0, 4, 40000, 180, 0, 0 }, - {3365,3366, 39, 4, 66, 26, 0, 0 }, - {3367, 368, 58, 4, 173, 93, 0, 0 }, - {3368,1551, 48, 4, 520, 200, 0, 0 }, - {3368,3033, 49, 4, 53, 26, 0, 0 }, - {3368,3033, 51, 4, 53, 26, 0, 0 }, - {3368,3033, 54, 4, 60, 26, 0, 0 }, - {3368,3033, 57, 4, 60, 26, 0, 0 }, - {3368,3033, 60, 4, 60, 26, 0, 0 }, - {3369,3370, 70, 4, 773, 306, 0, 0 }, - {1564,1565, 80, 4, 220, 106, 0, 0 }, - {3371,1571, 44, 4, 413, 93, 0, 0 }, - {3372,3372, 0, 0, 8366, 666, 0, 0 }, - {3373,3373, 0, 0, 8366, 666, 0, 0 }, - {3374,3374, 0, 0, 3773, 73, 0, 0 }, - {3375,3375, 0, 0, 8366, 666, 0, 0 }, - {3376,3376, 0, 0, 4693, 26, 0, 0 }, - {3377,3377, 0, 0, 7400, 80, 0, 0 }, - {3378,3378, 0, 0, 3586, 80, 0, 0 }, - {3379,3379, 0, 0, 8366, 666, 0, 0 }, - {3380,3380, 0, 0, 3786, 1240, 0, 0 }, - {3381,3381, 0, 0, 9013, 1466, 0, 0 }, - {3382,3382, 0, 0, 1200, 73, 0, 0 }, - {3383,3383, 0, 0, 8146, 1446, 0, 0 }, - {3384,3384, 0, 0, 3660, 1206, 0, 0 }, - {3385,3385, 0, 0, 200, 100, 0, 0 }, - {3386,3386, 0, 0, 40000, 0, 0, 0 }, - {3387,3387, 0, 0, 1213, 426, 0, 0 }, - {3388,3388, 0, 0, 40000, 2573, 0, 0 }, - {3389,3389, 0, 0, 40000, 3446, 0, 0 }, - {3390,3390, 0, 0, 40000, 333, 0, 0 }, - {3391,3391, 0, 0, 40000, 73, 0, 0 }, - {3392,3392, 0, 0, 40000, 93, 0, 0 }, - {3393,3393, 0, 0, 40000, 73, 0, 0 }, - {3394,3394, 0, 0, 40000, 73, 0, 0 }, - {3395,3395, 0, 0, 40000, 73, 0, 0 }, - {3396,3396, 0, 0, 2193, 413, 0, 0 }, - {3397,3397, 0, 0, 14606, 2886, 0, 0 }, - {3398,3398, 0, 0, 10626, 4520, 0, 0 }, - {3399,3399, 0, 0, 2413, 100, 0, 0 }, - {3400,3400, 0, 0, 3593, 1140, 0, 0 }, - {3401,3401, 0, 0, 40000, 146, 0, 0 }, - {3402,3402, 0, 0, 40000, 86, 0, 0 }, - {3403,3403, 0, 0, 40000, 86, 0, 0 }, - {3404,3404, 0, 0, 9366, 106, 0, 0 }, - {3405,3405, 0, 0, 40000, 73, 0, 0 }, - {3406,3406, 0, 0, 40000, 0, 0, 0 }, - {3407,3407, 0, 0, 40000, 0, 0, 0 }, - {3408,3408, 0, 0, 1626, 400, 0, 0 }, - {3409,3409, 0, 0, 4473, 2933, 0, 0 }, - {3410,3410, 0, 0, 40000, 66, 0, 0 }, - {3411,3411, 0, 0, 40000, 0, 0, 0 }, - {3412,3412, 0, 0, 40000, 253, 0, 0 }, - {3413,3413, 0, 0, 40000, 233, 0, 0 }, - {3414,3414, 0, 0, 40000, 346, 0, 0 }, - {3415,3415, 0, 0, 1966, 26, 0, 0 }, - {3416,3416, 0, 0, 40000, 366, 0, 0 }, - {3417,3417, 0, 0, 2266, 386, 0, 0 }, - {3418,3418, 0, 0, 40000, 0, 0, 0 }, - {3419,3419, 0, 0, 2313, 766, 0, 0 }, - {3420,3420, 0, 0, 40000, 340, 0, 0 }, - {3421,3421, 0, 0, 40000, 346, 0, 0 }, - {3422,3422, 0, 0, 40000, 340, 0, 0 }, - {3423,3423, 0, 0, 40000, 353, 0, 0 }, - {3424,3424, 0, 0, 40000, 353, 0, 0 }, - {3425,3425, 0, 0, 40000, 226, 0, 0 }, - {3426,3426, 0, 0, 40000, 73, 0, 0 }, - {3427,3427, 0, 0, 940, 253, 0, 0 }, - {3428,3428, 0, 0, 40000, 73, 0, 0 }, - {3429,3429, 0, 0, 40000, 80, 0, 0 }, - {3430,3430, 0, 0, 40000, 240, 0, 0 }, - {3431,3431, 0, 0, 40000, 80, 0, 0 }, - {3432,3432, 0, 0, 40000, 73, 0, 0 }, - {3433,3433, 0, 0, 40000, 73, 0, 0 }, - {3434,3434, 0, 0, 40000, 73, 0, 0 }, - {3435,3435, 0, 0, 40000, 73, 0, 0 }, - {3436,3436, 0, 0, 40000, 73, 0, 0 }, - {3437,3437, 0, 0, 40000, 73, 0, 0 }, - {3438,3438, 0, 0, 40000, 73, 0, 0 }, - {3439,3439, 0, 0, 40000, 73, 0, 0 }, - {3440,3440, 0, 0, 40000, 73, 0, 0 }, - {3441,3441, 0, 0, 40000, 73, 0, 0 }, - {3442,3442, 0, 0, 40000, 66, 0, 0 }, - {3443,3443, 0, 0, 40000, 73, 0, 0 }, - {3444,3444, 0, 0, 40000, 80, 0, 0 }, - {3445,3445, 0, 0, 40000, 66, 0, 0 }, - {3446,3446, 0, 0, 40000, 66, 0, 0 }, - {3447,3447, 0, 0, 40000, 66, 0, 0 }, - {3448,3448, 0, 0, 40000, 66, 0, 0 }, - {3449,3449, 0, 0, 40000, 80, 0, 0 }, - {3450,3450, 0, 0, 40000, 353, 0, 0 }, - {3451,3451, 0, 0, 40000, 0, 0, 0 }, - {3452,3452, 0, 0, 18440, 100, 0, 0 }, - {3453,3453, 0, 0, 18086, 100, 0, 0 }, - {3454,3454, 0, 0, 266, 66, 0, 0 }, - {3455,3455, 0, 0, 40000, 80, 0, 0 }, - {3456,3456, 0, 0, 40000, 100, 0, 0 }, - {3457,3457, 0, 0, 40000, 80, 0, 0 }, - {3458,3458, 0, 0, 40000, 120, 0, 0 }, - {3459,3459, 0, 0, 40000, 93, 0, 0 }, - {3460,3460, 0, 0, 40000, 233, 0, 0 }, - {3461,3461, 0, 0, 40000, 0, 0, 0 }, - {3462,3462, 0, 0, 40000, 86, 0, 0 }, - {3463,3463, 0, 0, 40000, 820, 0, 0 }, - {3464,3464, 0, 0, 40000, 4986, 0, 0 }, - {3465,3465, 0, 0, 40000, 146, 0, 0 }, - {3466,3466, 0, 0, 40000, 100, 0, 0 }, - {3467,3467, 0, 0, 40000, 3346, 0, 0 }, - {3468,3468, 0, 0, 40000, 660, 0, 0 }, - {3469,3469, 0, 0, 40000, 366, 0, 0 }, - {3470,3470, 0, 0, 40000, 1480, 0, 0 }, - {3471,3471, 0, 0, 40000, 646, 0, 0 }, - {3472,3472, 0, 0, 40000, 2673, 0, 0 }, - {3473,3473, 0, 0, 40000, 2500, 0, 0 }, - {3474,3474, 0, 0, 40000, 2513, 0, 0 }, - {3475,3475, 0, 0, 40000, 66, 0, 0 }, - {3476,3476, 0, 0, 9600, 1580, 0, 0 }, - {3477,3477, 0, 0, 40000, 46, 0, 0 }, - {3478,3478, 0, 0, 10673, 100, 0, 0 }, - {3479,3479, 0, 0, 2333, 800, 0, 0 }, - {3480,3480, 0, 0, 3673, 1200, 0, 0 }, - {3481,3481, 0, 0, 40000, 73, 0, 0 }, - {3482,3482, 0, 0, 40000, 146, 0, 0 }, - {3483,3483, 0, 0, 40000, 73, 0, 0 }, - {3484,3484, 0, 0, 2266, 726, 0, 0 }, - {3485,3485, 0, 0, 333, 140, 0, 0 }, - {3486,3486, 0, 0, 2286, 746, 0, 0 }, - {3487,3487, 0, 0, 293, 126, 0, 0 }, - {3488,3488, 0, 0, 3700, 1213, 0, 0 }, - {3489,3489, 0, 0, 3773, 1186, 0, 0 }, - {3490,3490, 0, 0, 3646, 1200, 0, 0 }, - {3491,3491, 0, 0, 3020, 73, 0, 0 }, - {3492,3492, 0, 0, 786, 273, 0, 0 }, - {3493,3493, 0, 0, 40000, 146, 0, 0 }, - {3494,3494, 0, 0, 40000, 3093, 0, 0 }, - {3495,3495, 0, 0, 273, 60, 0, 0 }, - {3496,3496, 0, 0, 40000, 73, 0, 0 }, - {3497,3497, 0, 0, 40000, 73, 0, 0 }, - {3498,3498, 0, 0, 40000, 3093, 0, 0 }, - {3499,3499, 0, 0, 40000, 240, 0, 0 }, - {3500,3500, 0, 2, 6, 0, 0, 0 }, - { 739, 739, 46, 0, 220, 33, 0, 0 }, - {3501,3501, 47, 0, 973, 93, 0, 0 }, - {3502,3502, 64, 0, 126, 66, 0, 0 }, - {3503,3503, 40, 0, 340, 146, 0, 0 }, - {3504,3504, 48, 0, 100, 26, 0, 0 }, - {3505,3505, 48, 0, 286, 133, 0, 0 }, - {3506,3506, 46, 0, 466, 166, 0, 0 }, - {3507,3507,111, 0, 226, 113, 0, 0 }, - {3508,3508, 49, 0, 473, 166, 0, 0 }, - {3509,3509, 56, 0, 126, 40, 0, 0 }, - {3510,3510, 52, 0, 520, 206, 0, 0 }, - {3511,3511, 96, 0, 1346, 473, 0, 0 }, - {3510,3510, 54, 0, 513, 206, 0, 0 }, - {3512,3512, 57, 0, 973, 266, 0, 0 }, - {3513,3513, 82, 0, 1580, 553, 0, 0 }, - {3510,3510, 60, 0, 506, 200, 0, 0 }, - {3514,3514, 60, 0, 1886, 646, 0, 0 }, - {3515,3515, 92, 0, 1026, 520, 0, 0 }, - {3516,3516, 60, 0, 180, 93, 0, 0 }, - {3517,3517, 58, 0, 213, 213, 0, 0 }, - {3518,3518, 22, 0, 2300, 766, 0, 0 }, - {3519,3519, 60, 0, 1873, 653, 0, 0 }, - {3520,3520, 72, 0, 260, 93, 0, 0 }, - {3521,3521, 77, 0, 253, 93, 0, 0 }, - {3522,3522, 70, 0, 206, 93, 0, 0 }, - {3523,3523, 75, 0, 173, 93, 0, 0 }, - {3524,3524, 69, 0, 406, 113, 0, 0 }, - {3525,3525, 59, 0, 380, 160, 0, 0 }, - {3526,3526, 48, 0, 373, 40, 0, 0 }, - {3527,3527, 89, 0, 433, 180, 0, 0 }, - {3528,3528, 84, 0, 813, 180, 0, 0 }, - {3529,3529, 33, 0, 240, 53, 0, 0 }, - {3530,3530, 55, 0, 220, 86, 0, 0 }, - {3531,3531, 58, 0, 526, 200, 0, 0 }, - {3532,3532, 52, 0, 526, 193, 0, 0 }, - {3533,3533, 57, 0, 166, 80, 0, 0 }, - {3534,3534, 57, 0, 240, 100, 0, 0 }, - {3535,3535, 85, 0, 220, 113, 0, 0 }, - {3536,3536, 68, 0, 173, 93, 0, 0 }, - {3536,3536, 61, 0, 220, 113, 0, 0 }, - {3537,3537, 64, 0, 346, 53, 0, 0 }, - {3538,3538, 44, 0, 1080, 346, 0, 0 }, - {3539,3539,100, 0, 193, 20, 0, 0 }, - {3540,3540,100, 0, 793, 26, 0, 0 }, - {3541,3541, 0, 0, 14166, 320, 0, 0 }, - {3542,3542, 0, 0, 3873, 1613, 0, 0 }, - {3543,3543, 0, 0, 3586, 86, 0, 0 }, - {3544,3544, 0, 0, 7406, 2486, 0, 0 }, - {3545,3545, 0, 0, 4640, 1560, 0, 0 }, - {3546,3546, 0, 0, 446, 440, 0, 0 }, - {3547,3547, 0, 0, 9253, 3100, 0, 0 }, - {3548,3548, 0, 0, 4646, 646, 0, 0 }, - {3549,3549, 0, 0, 40000, 66, 0, 0 }, - {3550,3550, 0, 0, 40000, 73, 0, 0 }, - {3551,3551, 0, 0, 40000, 113, 0, 0 }, - {3552,3552, 0, 0, 40000, 73, 0, 0 }, - {3553,3553, 0, 0, 40000, 73, 0, 0 }, - {3554,3554, 0, 0, 40000, 0, 0, 0 }, - {3555,3555, 0, 0, 40000, 60, 0, 0 }, - {3556,3556, 0, 0, 3673, 1206, 0, 0 }, - {3557,3557, 0, 0, 3706, 1293, 0, 0 }, - {3558,3558, 0, 0, 5693, 1126, 0, 0 }, - {3559,3559, 0, 0, 2406, 846, 0, 0 }, - {3560,3560, 0, 0, 40000, 66, 0, 0 }, - {3561,3561, 0, 0, 40000, 73, 0, 0 }, - {3562,3562, 0, 0, 4333, 13, 0, 0 }, - {3563,3563, 0, 0, 3700, 66, 0, 0 }, - {3564,3564, 0, 0, 40000, 0, 0, 0 }, - {3565,3565, 0, 0, 3713, 1260, 0, 0 }, - {3566,3566, 0, 0, 1140, 126, 0, 0 }, - {3567,3567, 0, 0, 40000, 186, 0, 0 }, - {3568,3568, 0, 0, 40000, 0, 0, 0 }, - {3569,3569, 0, 0, 14400, 6, 0, 0 }, - {3570,3570, 0, 0, 14580, 66, 0, 0 }, - {3571,3571, 0, 0, 40000, 73, 0, 0 }, - {3572,3572, 0, 0, 40000, 353, 0, 0 }, - {3573,3573, 0, 0, 40000, 0, 0, 0 }, - {3574,3574, 0, 0, 40000, 173, 0, 0 }, - {3575,3575, 0, 0, 1833, 600, 0, 0 }, - {3576,3576, 0, 0, 40000, 0, 0, 0 }, - {3577,3577, 0, 0, 40000, 206, 0, 0 }, - {3578,3578, 0, 0, 40000, 46, 0, 0 }, - {3579,3579, 0, 0, 40000, 73, 0, 0 }, - {3580,3580, 0, 0, 9166, 2900, 0, 0 }, - {3581,3581, 0, 0, 5640, 680, 0, 0 }, - {3582,3582, 0, 0, 640, 220, 0, 0 }, - {3583,3583, 0, 0, 40000, 53, 0, 0 }, - {3584,3584, 0, 0, 40000, 26, 0, 0 }, - {3585,3585, 0, 0, 40000, 0, 0, 0 }, - {3586,3586, 0, 0, 40000, 66, 0, 0 }, - {3587,3587, 0, 0, 40000, 60, 0, 0 }, - {3588,3588, 0, 0, 40000, 0, 0, 0 }, - {3589,3589, 0, 0, 40000, 73, 0, 0 }, - {3590,3590, 0, 0, 40000, 0, 0, 0 }, - {3591,3591, 0, 0, 40000, 0, 0, 0 }, - {3592,3592, 0, 0, 3780, 73, 0, 0 }, - {3593,3593, 0, 0, 40000, 0, 0, 0 }, - {3594,3594, 0, 0, 3786, 73, 0, 0 }, - {3595,3595, 0, 0, 40000, 73, 0, 0 }, - {3596,3596, 0, 0, 40000, 66, 0, 0 }, - {3597,3597, 0, 0, 40000, 73, 0, 0 }, - {3598,3598, 0, 0, 40000, 53, 0, 0 }, - {3599,3599, 0, 0, 40000, 426, 0, 0 }, - {3600,3600, 0, 0, 40000, 133, 0, 0 }, - {3601,3601, 0, 0, 40000, 66, 0, 0 }, - {3602,3602, 0, 0, 40000, 433, 0, 0 }, - {3603,3603, 0, 0, 393, 126, 0, 0 }, - {3604,3604, 0, 0, 40000, 66, 0, 0 }, - {3605,3605, 0, 0, 40000, 353, 0, 0 }, - {3606,3606, 0, 0, 3813, 73, 0, 0 }, - {3607,3607, 0, 0, 5793, 780, 0, 0 }, - {3608,3608, 0, 0, 40000, 73, 0, 0 }, - {3609,3609, 0, 0, 40000, 86, 0, 0 }, - {3610,3610, 0, 0, 820, 206, 0, 0 }, - {3611,3611, 0, 0, 40000, 66, 0, 0 }, - {3612,3612, 0, 0, 40000, 200, 0, 0 }, - {3613,3613, 0, 0, 18186, 720, 0, 0 }, - {3614,3614, 0, 0, 40000, 0, 0, 0 }, - {3615,3615, 0, 0, 40000, 493, 0, 0 }, - {3616,3616, 0, 0, 40000, 306, 0, 0 }, - {3617,3617, 0, 0, 2166, 600, 0, 0 }, - {3618,3618, 0, 0, 40000, 73, 0, 0 }, - {3619,3619, 0, 0, 40000, 3073, 0, 0 }, - {3620,3620, 0, 0, 2333, 413, 0, 0 }, - {3621,3621, 0, 0, 14880, 73, 0, 0 }, - {3622,3622, 0, 0, 40000, 66, 0, 0 }, - {3623,3623, 0, 0, 40000, 73, 0, 0 }, - {3624,3624, 0, 0, 40000, 1873, 0, 0 }, - {3625,3625, 0, 0, 40000, 446, 0, 0 }, - {3626,3626, 0, 0, 40000, 3126, 0, 0 }, - {3627,3627, 0, 0, 18446, 6140, 0, 0 }, - {3628,3628, 0, 0, 1113, 240, 0, 0 }, - {3629,3629, 0, 0, 40000, 3600, 0, 0 }, - {3630,3630, 0, 0, 40000, 4726, 0, 0 }, - {3631,3631, 0, 0, 40000, 0, 0, 0 }, - {3632,3632, 0, 0, 2893, 606, 0, 0 }, - {3633,3633, 0, 0, 40000, 0, 0, 0 }, - {3634,3634, 0, 0, 40000, 0, 0, 0 }, - {3635,3635, 0, 0, 40000, 173, 0, 0 }, - {3636,3636, 0, 0, 40000, 60, 0, 0 }, - {3637,3637, 0, 0, 40000, 0, 0, 0 }, - {3638,3638, 0, 0, 986, 326, 0, 0 }, - {3639,3639, 0, 0, 1873, 646, 0, 0 }, - {3640,3640, 0, 0, 200, 260, 0, 0 }, - {3641,3641, 0, 0, 1180, 393, 0, 0 }, - {3642,3642, 0, 0, 266, 160, 0, 0 }, - {3643,3643, 0, 0, 313, 126, 0, 0 }, - {3644,3644, 0, 0, 406, 253, 0, 0 }, - {3645,3645, 0, 0, 1013, 813, 0, 0 }, - {3646,3646, 0, 0, 273, 53, 0, 0 }, - {3647,3647, 0, 0, 720, 213, 0, 0 }, - {3648,3648, 0, 0, 386, 120, 0, 0 }, - {3649,3649, 0, 0, 40000, 766, 0, 0 }, - {3650,3650, 0, 0, 40000, 66, 0, 0 }, - {3651,3651, 0, 0, 40000, 73, 0, 0 }, - {3652,3652, 0, 0, 1186, 426, 0, 0 }, - {3653,3653, 0, 0, 16720, 240, 0, 0 }, - {3654,3654, 0, 0, 8026, 246, 0, 0 }, - {3655,3655, 0, 0, 18186, 140, 0, 0 }, - {3656,3656, 0, 0, 14566, 200, 0, 0 }, - {3657,3657, 0, 0, 7973, 20, 0, 0 }, - {3658,3658, 0, 0, 4446, 86, 0, 0 }, - {3659,3659, 0, 0, 4473, 100, 0, 0 }, - {3660,3660, 0, 0, 8646, 153, 0, 0 }, - {3661,3661, 0, 0, 3726, 660, 0, 0 }, - {3662,3662, 0, 0, 1893, 653, 0, 0 }, - {3663,3663, 0, 0, 1933, 760, 0, 0 }, - {3664,3664, 0, 0, 9160, 240, 0, 0 }, - {3665,3665, 0, 0, 1133, 100, 0, 0 }, - {3666,3666, 0, 0, 633, 233, 0, 0 }, - {3667,3667, 0, 0, 9153, 3060, 0, 0 }, - {3668,3668, 0, 0, 2166, 406, 0, 0 }, - {3669,3669, 0, 0, 40000, 66, 0, 0 }, - {3670,3670, 0, 0, 40000, 73, 0, 0 }, - {3671,3671, 0, 0, 40000, 73, 0, 0 }, - {3672,3672, 0, 0, 40000, 73, 0, 0 }, - {3673,3673, 0, 0, 40000, 346, 0, 0 }, - {3674,3674, 0, 0, 40000, 353, 0, 0 }, - {3675,3675, 0, 0, 40000, 200, 0, 0 }, - {3676,3676, 0, 0, 40000, 320, 0, 0 }, - {3677,3677, 0, 0, 4646, 100, 0, 0 }, - {3678,3678, 0, 0, 4426, 133, 0, 0 }, - {3679,3679, 0, 0, 4633, 100, 0, 0 }, - {3680,3680, 0, 0, 2266, 133, 0, 0 }, - {3681,3681, 0, 0, 2346, 53, 0, 0 }, - {3682,3682, 0, 0, 40000, 66, 50, 0 }, - {3683,3683, 0, 0, 9686, 173, 20, 0 }, - {3684,3684, 0, 0, 14300, 66, 0, 0 }, - {3685,3685, 0, 0, 40000, 0, 0, 0 }, - {3686,3686, 0, 0, 40000, 0, 0, 0 }, - {3687,3687, 0, 0, 40000, 0, 0, 0 }, - {3688,3688, 0, 0, 8613, 73, 0, 0 }, - {3689,3689, 0, 0, 40000, 0, 0, 0 }, - {3690,3690, 0, 0, 40000, 0, 0, 0 }, - {3691,3691, 0, 0, 40000, 0, 0, 0 }, - {3692,3692, 0, 0, 40000, 0, 0, 0 }, - {3693,3693, 0, 0, 40000, 393, 0, 0 }, - {3694,3694, 0, 0, 40000, 126, 0, 0 }, - {3695,3695, 0, 0, 40000, 120, 0, 0 }, - {3696,3696, 0, 0, 40000, 0, 0, 0 }, - {3697,3697, 0, 0, 40000, 226, 0, 0 }, - {3698,3698, 0, 0, 7420, 1186, 0, 0 }, - {3699,3699, 0, 0, 3280, 1726, 0, 0 }, - {3700,3700, 0, 0, 3680, 1220, 0, 0 }, - {3701,3701, 0, 0, 40000, 480, 0, 0 }, - {3702,3702, 0, 0, 40000, 306, 0, 0 }, - {3703,3703, 0, 0, 40000, 433, 0, 0 }, - {3704,3704, 0, 0, 40000, 133, 0, 0 }, - {3705,3705, 0, 0, 40000, 0, 0, 0 }, - {3706,3706, 0, 0, 40000, 0, 0, 0 }, - {3707,3707, 0, 0, 1166, 380, 0, 0 }, - {3708,3708, 0, 0, 40000, 140, 0, 0 }, - {3709,3709, 0, 0, 40000, 126, 0, 0 }, - {3710,3710, 0, 0, 40000, 100, 0, 0 }, - {3711,3711, 0, 0, 40000, 66, 0, 0 }, - {3712,3712, 0, 0, 40000, 226, 0, 0 }, - {3713,3713, 0, 0, 40000, 133, 0, 0 }, - {3714,3714, 0, 0, 40000, 73, 0, 0 }, - {3715,3715, 0, 0, 40000, 226, 0, 0 }, - {3716,3716, 0, 0, 40000, 100, 0, 0 }, - {3717,3717, 0, 0, 40000, 80, 0, 0 }, - {3718,3718, 0, 0, 40000, 100, 0, 0 }, - {3719,3719, 0, 0, 40000, 73, 0, 0 }, - {3720,3720, 0, 0, 40000, 73, 0, 0 }, - {3721,3721, 0, 0, 40000, 73, 0, 0 }, - {3722,3722, 0, 0, 40000, 126, 0, 0 }, - {3723,3723, 0, 0, 40000, 80, 0, 0 }, - {3724,3724, 0, 0, 40000, 73, 0, 0 }, - {3725,3725, 0, 0, 40000, 86, 0, 0 }, - {3726,3726, 0, 0, 40000, 100, 0, 0 }, - {3727,3727, 0, 0, 40000, 0, 0, 0 }, - {3728,3728, 0, 0, 40000, 126, 0, 0 }, - {3729,3729, 0, 0, 40000, 133, 0, 0 }, - {3730,3730, 0, 0, 40000, 140, 0, 0 }, - {3731,3731, 0, 0, 40000, 73, 0, 0 }, - {3732,3732, 0, 0, 40000, 60, 0, 0 }, - {3733,3733, 0, 0, 40000, 93, 0, 0 }, - {3734,3734, 0, 0, 40000, 80, 0, 0 }, - {3735,3735, 0, 0, 40000, 66, 0, 0 }, - {3736,3736, 0, 0, 40000, 0, 0, 0 }, - {3737,3737, 0, 0, 40000, 220, 0, 0 }, - {3738,3738, 0, 0, 40000, 80, 0, 0 }, - {3739,3739, 0, 0, 40000, 400, 0, 0 }, - {3740,3740, 0, 0, 40000, 1373, 0, 0 }, - {3741,3741, 0, 0, 40000, 86, 0, 0 }, - {3742,3742, 0, 0, 40000, 1313, 0, 0 }, - {3743,3743, 0, 0, 40000, 0, -50, 0 }, - {3744,3744, 0, 0, 11486, 593, 0, 0 }, - {3745,3745, 0, 0, 40000, 1246, 0, 0 }, - {3746,3746, 0, 0, 40000, 140, -20, 0 }, - {3747,3747, 0, 0, 14386, 2680, 0, 0 }, - {3748,3748, 0, 0, 40000, 653, 0, 0 }, - {3749,3749, 0, 0, 2286, 713, 0, 0 }, - {3750,3750, 0, 0, 40000, 253, 0, 0 }, - {3751,3751, 0, 0, 6933, 406, 0, 0 }, - {3752,3752, 0, 0, 40000, 1313, 0, 0 }, - {3753,3753, 0, 0, 40000, 1440, 0, 0 }, - {3754,3754, 0, 0, 40000, 73, 0, 0 }, - {3755,3755, 0, 0, 11100, 420, 0, 0 }, - {3756,3756, 0, 0, 6493, 320, 0, 0 }, - {3757,3757, 0, 0, 3486, 126, 0, 0 }, - {3758,3758, 0, 0, 6620, 2133, 0, 0 }, - {3759,3759, 0, 0, 1180, 413, 0, 0 }, - {3760,3760, 0, 0, 40000, 73, 0, 0 }, - {3761,3761, 0, 0, 40000, 73, 0, 0 }, - {3762,3762, 0, 0, 40000, 66, 0, 0 }, - {3763,3763, 0, 0, 4580, 413, 0, 0 }, - {3764,3764, 0, 0, 340, 146, 0, 0 }, - {3765,3765, 0, 0, 1166, 400, 0, 0 }, - {3766,3766, 0, 0, 1346, 660, 0, 0 }, - {3767,3767, 0, 0, 1260, 393, 0, 0 }, - {3768,3768, 0, 0, 3646, 1186, 0, 0 }, - {3769,3769, 0, 0, 2713, 400, 0, 0 }, - {3770,3770, 0, 0, 1780, 73, 0, 0 }, - {3771,3771, 0, 0, 800, 213, 0, 0 }, - {3772,3772, 0, 0, 660, 173, 0, 0 }, - {3773,3773, 0, 0, 12146, 73, 0, 0 }, - {3774,3774, 0, 0, 273, 60, 0, 0 }, - {3775,3775, 0, 0, 40000, 73, 0, 0 }, - {3776,3776, 0, 0, 380, 53, 0, 0 }, - {3777,3777, 0, 0, 40000, 200, 0, 0 }, - {3778,3778, 0, 0, 586, 20, 0, 0 }, - {3779,3779, 0, 2, 6, 0, 40, 0 }, - { 738, 738, 44, 0, 840, 340, 33, 0 }, - {3780,3780, 36, 0, 7366, 140, 33, 0 }, - {3781,3781, 32, 0, 100, 40, 40, 0 }, - {2030,2030, 60, 0, 293, 126, 50, 0 }, - {3782,3782, 24, 0, 100, 0, 40, 0 }, - {3783,3783, 60, 0, 126, 73, 50, 0 }, - {3784,3784, 44, 0, 393, 93, 50, 0 }, - { 132, 132, 44, 0, 173, 100, 40, 0 }, - {3785,3785, 47, 0, 393, 93, 50, 0 }, - { 152, 152, 44, 0, 213, 86, 40, 0 }, - {3784,3784, 50, 0, 393, 93, 50, 0 }, - { 139, 139, 44, 0, 293, 100, 40, 0 }, - {3784,3784, 54, 0, 393, 93, 50, 0 }, - {3784,3784, 57, 0, 393, 93, 50, 0 }, - {3786,3786, 60, 0, 1900, 666, 40, 0 }, - {3784,3784, 60, 0, 393, 93, 50, 0 }, - {3514,3514, 60, 0, 1886, 646, 30, 0 }, - {3787,3787, 60, 0, 1900, 666, 45, 0 }, - {3788,3788, 60, 0, 1886, 666, 30, 0 }, - {3516,3516, 60, 0, 180, 93, 40, 0 }, - {3789,3789, 60, 0, 1866, 653, 40, 0 }, - {3517,3517, 58, 0, 213, 213, 40, 0 }, - {3790,3790, 60, 0, 1873, 633, 40, 0 }, - {3791,3791, 44, 0, 946, 333, 40, 0 }, - {3519,3519, 60, 0, 1873, 653, 20, 0 }, - {2037,2037, 44, 0, 213, 126, 40, 0 }, - { 144, 144, 44, 0, 213, 126, 40, 0 }, - {2038,2038, 44, 0, 106, 46, 40, 0 }, - {3792,3792, 44, 0, 380, 360, 40, 0 }, - {3793,3793, 44, 0, 520, 206, 40, 0 }, - {3794,3794, 45, 0, 273, 100, 40, 0 }, - {3795,3795, 33, 0, 326, 106, 40, 0 }, - {3796,3796, 56, 0, 506, 200, 40, 0 }, - {3796,3796, 51, 0, 506, 200, 40, 0 }, - {3530,3530, 55, 0, 220, 86, 40, 0 }, - {3797,3797, 44, 0, 126, 66, 40, 0 }, - {3798,3798, 44, 0, 553, 186, 40, 0 }, - {3533,3533, 57, 0, 166, 80, 40, 0 }, - {3534,3534, 56, 0, 240, 100, 40, 0 }, - { 158, 158, 68, 0, 126, 140, 40, 0 }, - {3799,3799, 51, 0, 513, 206, 40, 0 }, - {3800,3800, 46, 0, 506, 200, 40, 0 }, - {3537,3537, 64, 0, 346, 53, 40, 0 }, - {3538,3538, 44, 0, 1080, 346, 40, 0 }, - {3801,3801, 44, 0, 513, 206, 40, 0 }, - {3802,3802, 44, 0, 3720, 1260, 40, 0 }, - { 152, 152, 45, 0, 220, 80, 20, 0 }, - {3683,3683, 0, 0, 9686, 173, 50, 0 }, - {3803,3803, 0, 0, 40000, 86, 20, 0 }, - {3804,3804, 0, 0, 40000, 226, 0, 0 }, - {3712,3712, 0, 0, 40000, 226, 50, 0 }, - {3805,3805, 0, 0, 40000, 73, 0, 0 }, - {3806,3806, 0, 0, 40000, 73, 0, 0 }, - {3807,3807, 0, 0, 40000, 93, 0, 0 }, - {3808,3808, 0, 0, 4653, 660, -18, 0 }, - {3809,3809, 0, 0, 6686, 2246, 10, 0 }, - {3810,3810, 0, 0, 1180, 413, 0, 0 }, - {3811,3811, 0, 0, 966, 293, 30, 0 }, - {3812,3812, 0, 0, 1780, 66, 0, 0 }, - {3780,3780, 45, 0, 5900, 113, 20, 0 }, - {3061,3061, 45, 0, 40000, 0, 40, 0 }, - {3813,3813, 60, 0, 126, 226, 60, 0 }, - {3781,3781, 60, 0, 93, 33, 60, 0 }, - {3814,3814, 44, 0, 393, 86, 50, 0 }, - {3815,3815, 57, 0, 166, 80, 127, 0 }, - {3816,3816, 56, 0, 240, 100, 127, 0 }, - {3817,3817, 60, 0, 113, 26, 60, 0 }, - {3818,3818, 60, 0, 113, 26, 60, 0 }, - {3061,3061, 45, 0, 40000, 0, 20, 0 }, - {3517,3517, 45, 0, 213, 213, 20, 0 }, - {3819,3819, 0, 0, 4033, 100, 0, 0 }, - {3820,3820, 0, 0, 5200, 873, 0, 0 }, - {3821,3821, 0, 0, 40000, 0, 0, 0 }, - {3822,3822, 0, 0, 10493, 160, 0, 0 }, - {3823,3823, 0, 0, 40000, 740, 0, 0 }, - {3824,3825, 0, 1, 40000, 366, 0, 0.078125 }, - {3826,3826, 0, 0, 40000, 5100, 0, 0 }, - {3827,3827, 0, 0, 40000, 766, 0, 0 }, - {3828,1172, 0, 1, 40000, 780, 0, 0.15625 }, - {3829,3829, 0, 0, 40000, 60, 0, 0 }, - {3830,3830, 0, 0, 566, 133, 0, 0 }, - {3831,3831, 32, 0, 146, 33, 0, 0 }, - {3832,3832, 36, 0, 273, 140, 0, 0 }, - {3833,3833, 88, 0, 340, 120, 0, 0 }, - {3834,3834, 0, 0, 9006, 240, 0, 0 }, - {3835,3835, 0, 0, 9206, 246, 0, 0 }, - {3836,3836, 0, 0, 9246, 386, 0, 0 }, - {3837,3837, 0, 0, 9440, 220, 0, 0 }, - {3838,3838, 0, 0, 8900, 133, 0, 0 }, - {3839,3839, 0, 0, 9400, 253, 0, 0 }, - {3840,3840, 0, 0, 4613, 420, 0, 0 }, - {3841,3841, 0, 0, 9233, 426, 0, 0 }, - {3842,3842, 0, 0, 40000, 526, 0, 0 }, - {3843,3843, 0, 0, 40000, 640, 0, 0 }, - {3844,3844, 0, 0, 40000, 666, 0, 0 }, - {3845,3845, 0, 0, 40000, 1053, 0, 0 }, - {3846,3846, 0, 0, 40000, 173, 0, 0 }, - {3847,3847, 0, 0, 40000, 246, 0, 0 }, - {3848,3848, 0, 0, 40000, 226, 0, 0 }, - {3849,3849, 0, 0, 4073, 233, 0, 0 }, - {3850,3850, 0, 0, 14286, 326, 0, 0 }, - {3851,3851, 0, 0, 9233, 146, 0, 0 }, - {3852,3852, 0, 0, 4480, 133, 0, 0 }, - {3853,3853, 0, 0, 40000, 53, 0, 0 }, - {3854,3854, 0, 0, 40000, 126, 0, 0 }, - {3855,3855, 0, 0, 40000, 126, 0, 0 }, - {3856,3856, 0, 0, 18226, 146, 0, 0 }, - {3857,3857, 0, 0, 40000, 326, 0, 0 }, - {3858,3858, 0, 0, 40000, 0, 0, 0 }, - {3859,3859, 0, 0, 40000, 300, 0, 0 }, - {3860,3860, 0, 0, 40000, 0, 0, 0 }, - {3861,3861, 0, 0, 40000, 0, 0, 0 }, - {3862,3862, 0, 0, 40000, 0, 0, 0 }, - {3863,3863, 0, 0, 40000, 140, 0, 0 }, - {3864,3864, 0, 0, 40000, 153, 0, 0 }, - {3865,3865, 0, 0, 40000, 233, 0, 0 }, - {3866,3866, 0, 0, 40000, 186, 0, 0 }, - {3867,3867, 0, 0, 40000, 413, 0, 0 }, - {3868,3868, 0, 0, 40000, 373, 0, 0 }, - {3869,3869, 0, 0, 1246, 440, 0, 0 }, - {3870,3870, 0, 0, 4620, 1513, 0, 0 }, - {3871,3871, 0, 0, 40000, 433, 0, 0 }, - {3872,3872, 0, 0, 40000, 453, 0, 0 }, - {3873,3873, 0, 0, 40000, 1440, 0, 0 }, - {3874,3874, 0, 0, 40000, 480, 0, 0 }, - {3875,3875, 0, 0, 40000, 1360, 0, 0 }, - {3876,3876, 0, 0, 40000, 0, 0, 0 }, - {3877,3877, 0, 0, 40000, 353, 0, 0 }, - {3878,3878, 0, 0, 40000, 86, 0, 0 }, - {3879,3879, 0, 0, 40000, 126, 0, 0 }, - {3880,3880, 0, 0, 40000, 73, 0, 0 }, - {3881,3881, 0, 0, 40000, 80, 0, 0 }, - {3882,3882, 0, 0, 40000, 246, 0, 0 }, - {3883,3883, 0, 0, 40000, 93, 0, 0 }, - {3884,3884, 0, 0, 40000, 120, 0, 0 }, - {3885,3885, 0, 0, 40000, 180, 0, 0 }, - {3886,3886, 0, 0, 40000, 133, 0, 0 }, - {3887,3887, 0, 0, 40000, 133, 0, 0 }, - {3888,3888, 0, 0, 40000, 153, 0, 0 }, - {3889,3889, 0, 0, 40000, 93, 0, 0 }, - {3890,3890, 0, 0, 40000, 140, 0, 0 }, - {3891,3891, 0, 0, 40000, 100, 0, 0 }, - {3892,3892, 0, 0, 40000, 146, 0, 0 }, - {3893,3893, 0, 0, 40000, 126, 0, 0 }, - {3894,3894, 0, 0, 40000, 160, 0, 0 }, - {3895,3895, 0, 0, 40000, 226, 0, 0 }, - {3896,3896, 0, 0, 40000, 140, 0, 0 }, - {3897,3897, 0, 0, 40000, 200, 0, 0 }, - {3898,3898, 0, 0, 40000, 66, 0, 0 }, - {3899,3899, 0, 0, 40000, 446, 0, 0 }, - {3900,3900, 0, 0, 40000, 140, 0, 0 }, - {3901,3901, 0, 0, 40000, 400, 0, 0 }, - {3902,3902, 0, 0, 40000, 373, 0, 0 }, - {3903,3903, 0, 0, 40000, 1306, 0, 0 }, - {3904,3904, 0, 0, 40000, 186, 0, 0 }, - {3905,3905, 0, 0, 40000, 640, 0, 0 }, - {3906,3906, 0, 0, 40000, 346, 0, 0 }, - {3907,3907, 0, 0, 40000, 140, 0, 0 }, - {3908,3908, 0, 0, 40000, 253, 0, 0 }, - {3909,3909, 0, 0, 8980, 746, 0, 0 }, - {3910,3910, 0, 0, 40000, 1266, 0, 0 }, - {3911,3911, 0, 0, 40000, 1306, 0, 0 }, - {3912,3912, 0, 0, 7226, 593, 0, 0 }, - {3913,3913, 0, 0, 40000, 140, 0, 0 }, - {3914,3914, 0, 0, 40000, 220, 0, 0 }, - {3915,3915, 0, 0, 40000, 146, 0, 0 }, - {3916,3916, 0, 0, 4606, 1506, 0, 0 }, - {3917,3917, 0, 0, 40000, 80, 0, 0 }, - {3918,3918, 0, 0, 40000, 0, 0, 0 }, - {3919,3919, 0, 0, 40000, 0, 0, 0 }, - {3920,3920, 0, 0, 613, 226, 0, 0 }, - {3921,3921, 0, 0, 9073, 2946, 0, 0 }, - {3922,3922, 0, 0, 40000, 73, 0, 0 }, - {3923,3923, 0, 0, 3726, 200, 0, 0 }, - {3924,3924, 0, 0, 3680, 373, 0, 0 }, - {3925,3925, 0, 0, 7113, 186, 0, 0 }, - {3926,3926, 0, 0, 2406, 106, 0, 0 }, - {3927,3927, 0, 0, 40000, 0, 0, 0 }, - {3928,3928, 0, 0, 40000, 253, 0, 0 }, - {3929,3929, 0, 0, 40000, 0, 0, 0 }, - {3930,3930, 0, 0, 40000, 80, 0, 0 }, - {3931,3931, 0, 0, 40000, 86, 0, 0 }, - {3932,3932, 0, 0, 18186, 740, 0, 0 }, - {3933,3933, 0, 0, 18426, 813, 0, 0 }, - { 523, 523, 0, 0, 200, 260, 0, 0 }, - {3934,3934, 0, 0, 340, 146, 0, 0 }, - {3935,3935, 0, 0, 366, 260, 0, 0 }, - {3936,3936, 48, 0, 126, 26, 0, 0 }, - {3937,3937, 27, 0, 200, 106, 0, 0 }, - {3938,3938, 40, 0, 1073, 800, 0, 0 }, - {3939,3939, 48, 0, 100, 33, 0, 0 }, - {3938,3938, 45, 0, 933, 666, 0, 0 }, - {3940,3940, 48, 0, 140, 333, 0, 0 }, - {3938,3938, 47, 0, 933, 666, 0, 0 }, - {3941,3941, 48, 0, 1840, 1373, 0, 0 }, - {3938,3938, 49, 0, 953, 686, 0, 0 }, - {3938,3938, 53, 0, 906, 686, 0, 0 }, - {3938,3938, 56, 0, 913, 693, 0, 0 }, - { 129, 129, 52, 0, 293, 126, 0, 0 }, - { 130, 130, 48, 0, 173, 93, 0, 0 }, - { 129, 129, 58, 0, 286, 126, 0, 0 }, - { 132, 132, 47, 0, 173, 100, 0, 0 }, - { 492, 492, 43, 0, 820, 306, 0, 0 }, - { 132, 132, 49, 0, 173, 93, 0, 0 }, - { 132, 132, 51, 0, 173, 93, 0, 0 }, - { 132, 132, 54, 0, 173, 93, 0, 0 }, - { 132, 132, 57, 0, 146, 86, 0, 0 }, - { 492, 492, 72, 0, 706, 300, 0, 0 }, - { 137, 137, 76, 0, 1900, 666, 0, 0 }, - { 138, 138, 84, 0, 740, 300, 0, 0 }, - { 139, 139, 36, 0, 353, 146, 0, 0 }, - { 140, 140, 76, 0, 1886, 680, 0, 0 }, - { 141, 141, 84, 0, 220, 113, 0, 0 }, - { 135, 135, 83, 0, 1353, 480, 0, 0 }, - { 142, 142, 84, 0, 386, 160, 0, 0 }, - {3942,3942, 24, 0, 2313, 780, 0, 0 }, - { 137, 137, 77, 0, 1893, 660, 0, 0 }, - { 144, 144, 60, 0, 213, 126, 0, 0 }, - { 145, 145, 65, 0, 180, 146, 0, 0 }, - { 146, 146, 59, 0, 173, 93, 0, 0 }, - { 147, 147, 51, 0, 266, 213, 0, 0 }, - { 148, 148, 45, 0, 513, 200, 0, 0 }, - { 149, 149, 71, 0, 246, 26, 0, 0 }, - { 150, 150, 60, 0, 500, 193, 0, 0 }, - { 151, 151, 58, 0, 513, 200, 0, 0 }, - { 152, 152, 53, 0, 220, 86, 0, 0 }, - { 153, 153, 64, 0, 113, 40, 0, 0 }, - { 154, 154, 71, 0, 840, 300, 0, 0 }, - { 156, 156, 61, 0, 166, 80, 0, 0 }, - { 158, 158, 48, 0, 173, 213, 0, 0 }, - { 159, 159, 69, 0, 126, 140, 0, 0 }, - { 160, 160, 68, 0, 126, 140, 0, 0 }, - { 161, 161, 63, 0, 326, 113, 0, 0 }, - { 162, 162, 74, 0, 860, 286, 0, 0 }, - { 163, 163, 60, 0, 386, 160, 0, 0 }, - { 164, 164, 80, 0, 1106, 273, 0, 0 }, - { 165, 165, 64, 0, 126, 66, 0, 0 }, - { 166, 166, 69, 0, 386, 80, 0, 0 }, - { 167, 167, 73, 0, 546, 306, 0, 0 }, - { 168, 168, 75, 0, 126, 140, 0, 0 }, - { 169, 169, 68, 0, 340, 320, 0, 0 }, - { 131, 131, 48, 0, 520, 200, 0, 0 }, - {3061,3061, 53, 0, 40000, 0, 0, 0 }, - {3943,3944, 0, 4, 2133, 333, 0, 0 }, - {3945,3946, 0, 4, 8966, 393, 0, 0 }, - { 174,3947, 0, 4, 6946, 320, 0, 0 }, - {3948,3949, 0, 4, 9320, 133, 0, 0 }, - { 9,3950, 0, 4, 1606, 426, 0, 0 }, - {3951,3952, 0, 4, 18373, 240, 0, 0 }, - {3953,3954, 0, 1, 7440, 1100, 0, 0.0625 }, - { 15,3955, 0, 4, 5640, 1986, 0, 0 }, - {3956,3957, 0, 4, 40000, 100, 0, 0 }, - {3958,3959, 0, 4, 40000, 73, 0, 0 }, - {3960,3961, 0, 4, 40000, 73, 0, 0 }, - {3962,3963, 0, 4, 40000, 73, 0, 0 }, - {3964,3965, 0, 4, 18186, 153, 0, 0 }, - {3966,3967, 0, 4, 18453, 153, 0, 0 }, - { 31,3968, 0, 4, 40000, 0, 0, 0 }, - {3969,3970, 0, 4, 17886, 100, 0, 0 }, - {3971,3972, 0, 4, 40000, 66, 0, 0 }, - {3973,3972, 0, 4, 40000, 66, 0, 0 }, - {3974,3975, 0, 4, 40000, 46, 0, 0 }, - {3976,3977, 0, 4, 18553, 106, 0, 0 }, - {3978,3977, 0, 4, 18460, 106, 0, 0 }, - {3979,3980, 0, 4, 9366, 106, 0, 0 }, - {3981,3982, 0, 4, 9073, 226, 0, 0 }, - {3983,3984, 0, 4, 40000, 140, 0, 0 }, - {3985,3986, 0, 4, 40000, 800, 0, 0 }, - { 54,3987, 0, 4, 2513, 706, 0, 0 }, - {3988,3989, 0, 4, 40000, 86, 0, 0 }, - {3990,3990, 0, 0, 40000, 126, 0, 0 }, - {3991,3992, 0, 4, 40000, 233, 0, 0 }, - {3993, 253, 0, 4, 40000, 66, 0, 0 }, - {3994,3995, 0, 4, 40000, 0, 0, 0 }, - {3996,3997, 0, 4, 40000, 126, 0, 0 }, - {3998,3999, 0, 4, 40000, 80, 0, 0 }, - {4000,4001, 0, 4, 40000, 73, 0, 0 }, - {4002,4003, 0, 1, 40000, 86, 0, 0.046875 }, - {4004,4005, 0, 4, 40000, 86, 0, 0 }, - {1503,4006, 0, 4, 40000, 93, 0, 0 }, - { 88,4007, 0, 4, 40000, 1220, 0, 0 }, - {3743,4008, 0, 4, 7646, 1260, 0, 0 }, - { 92,4009, 0, 4, 40000, 186, 0, 0 }, - { 93,4010, 0, 4, 40000, 813, 0, 0 }, - { 94,4011, 0, 4, 7660, 1260, 0, 0 }, - { 96,4012, 0, 4, 40000, 2460, 0, 0 }, - {4013,4014, 0, 4, 40000, 420, 0, 0 }, - { 103,4015, 0, 4, 3673, 1240, 0, 0 }, - {4016,4017, 0, 1, 6286, 380, 0, 0 }, - {4018,4019, 0, 1, 2220, 426, 0, 0.03125 }, - { 107,4020, 0, 4, 2086, 760, 0, 0 }, - {4021,4022, 0, 1, 40000, 100, 0, 0.0625 }, - { 110,4023, 0, 4, 40000, 100, 0, 0 }, - { 111,4024, 0, 4, 2300, 820, 0, 0 }, - {4025,4026, 0, 4, 1013, 326, 0, 0 }, - {4027,4028, 0, 1, 1220, 393, 0, 0.03125 }, - { 115,4029, 0, 4, 1813, 646, 0, 0 }, - {4030,4031, 0, 1, 566, 146, 0, 0 }, - { 118,4032, 0, 4, 1553, 53, 0, 0 }, - {4033,4033, 0, 0, 613, 60, 0, 0 }, - { 120,4034, 0, 4, 2126, 1166, 0, 0 }, - {4035,4036, 0, 1, 11880, 2993, 0, 0 }, - { 123,4037, 0, 4, 7080, 2473, 0, 0 }, - { 124,4038, 0, 4, 40000, 1126, 0, 0 }, - { 125,4039, 0, 4, 40000, 1546, 0, 0 }, - {4040,4040, 34, 0, 133, 40, 0, 0 }, - {4041,4041, 28, 0, 193, 46, 0, 0 }, - {4042,4043, 39, 1, 553, 126, 0, 0 }, - {4042,4043, 33, 1, 553, 126, 0, 0 }, - {4044,4045, 63, 4, 166, 93, 0, 0 }, - {4046,4046, 15, 0, 113, 66, 0, 0 }, - {4047,4047, 36, 0, 106, 53, 0, 0 }, - {4047,4048, 36, 1, 480, 173, 0, 0.40625 }, - {4049,4049, 35, 0, 706, 266, 0, 0 }, - {4050,4051, 38, 1, 273, 106, 0, 0 }, - {4052,4053, 38, 1, 366, 133, 0, 0 }, - {4054,4055, 48, 1, 280, 133, 0, -1.90625 }, - {4056,4056, 48, 0, 180, 86, 0, 0 }, - {4057,4058, 48, 1, 953, 346, 0, -1.90625 }, - {4059,4059, 61, 1, 3200, 540, 0, 0.09375 }, - {3369,1557, 70, 4, 766, 306, 0, 0 }, - {4060,4061, 79, 1, 1306, 513, 0, 0.078125 }, - {4062,4062, 62, 0, 5200, 466, 0, 0 }, - {4063,4064, 67, 1, 2153, 1080, 0, 0.078125 }, - {4065,4065, 62, 1, 3226, 573, 0, 0.09375 }, - {4066,4067, 54, 1, 286, 133, 0, 0 }, - {4066,4068, 48, 1, 286, 126, 0, 0 }, - {1589,1589, 71, 0, 106, 46, 0, 0 }, - { 389, 389, 42, 0, 266, 73, 0, 0 }, - {4069,4070, 60, 1, 120, 80, 0, 0 }, - {4070,4071, 60, 1, 380, 80, 0, 0 }, - {4072,4072, 73, 0, 166, 33, 0, 0 }, - {4073,4074, 68, 1, 153, 40, 0, 0 }, - {4075,4076, 18, 1, 200, 80, 0, 0 }, - {4077,4078, 18, 1, 253, 73, 0, 0 }, - {4079,4080, 64, 4, 1346, 33, 0, 0 }, - {4081,4082, 64, 1, 373, 73, 0, 0.03125 }, - {4083,4083, 67, 0, 106, 26, 0, 0 }, - { 844, 844,244, 2, 6, 0, 0, 0 }, - { 855, 855,244, 2, 6, 0, 0, 0 }, - { 880, 880,232, 0, 253, 80, 0, 0 }, - { 882, 882,220, 0, 40000, 266, 0, 0 }, - { 887, 887, 35, 0, 133, 46, 0, 0 }, - { 884, 884, 35, 0, 233, 80, 0, 0 }, - { 885, 885, 35, 0, 226, 86, 0, 0 }, - { 886, 886, 35, 0, 113, 53, 0, 0 }, - { 361, 361, 35, 0, 286, 73, 0, 0 }, - { 767, 767, 35, 0, 3020, 786, 0, 0 }, - { 888, 888, 35, 0, 246, 53, 0, 0 }, - {2141,2141, 35, 0, 186, 73, 0, 0 }, - { 891, 891, 35, 0, 713, 266, 0, 0 }, - {2142,2142, 35, 0, 200, 100, 0, 0 }, - {2143,2143, 35, 0, 220, 80, 0, 0 }, - {2144,2144, 35, 0, 2393, 100, 0, 0 }, - {2145,2145, 35, 0, 1980, 813, 0, 0 }, - { 376, 376, 35, 0, 1880, 840, 0, 0 }, - { 895, 895, 35, 0, 366, 140, 0, 0 }, - {2146,2146, 35, 0, 346, 106, 0, 0 }, - { 382, 382, 35, 0, 1073, 113, 0, 0 }, - {2147,2147, 35, 0, 106, 80, 0, 0 }, - { 898, 898, 35, 0, 206, 153, 0, 0 }, - { 899, 899, 35, 0, 633, 240, 0, 0 }, - { 900, 900, 35, 0, 620, 240, 0, 0 }, - { 871, 871, 35, 0, 380, 73, 0, 0 }, - { 388, 388, 35, 0, 286, 80, 0, 0 }, - { 901, 901, 35, 0, 260, 26, 0, 0 }, - { 902, 902, 35, 0, 1093, 73, 0, 0 }, - { 903, 903, 35, 0, 126, 73, 0, 0 }, - {3500,3500, 35, 2, 6, 0, 0, 0 }, - {4084,4084, 0, 0, 14166, 320, 0, 0 }, - {4085,4085, 0, 0, 7413, 653, 0, 0 }, - {4086,4086, 0, 0, 40000, 146, 0, 0 }, - {4087,4087, 0, 0, 40000, 113, 0, 0 }, - {4088,4088, 0, 0, 16773, 193, 0, 0 }, - {4089,4089, 0, 0, 40000, 73, 0, 0 }, - {4090,4090, 0, 0, 40000, 0, 0, 0 }, - {4091,4091, 0, 0, 966, 373, 0, 0 }, - {4092,4092, 0, 0, 40000, 80, 0, 0 }, - {4093,4093, 0, 0, 40000, 80, 0, 0 }, - {4094,4094, 0, 0, 18473, 93, 0, 0 }, - {4095,4095, 0, 0, 40000, 60, 0, 0 }, - {4096,4096, 0, 0, 40000, 73, 0, 0 }, - {4097,4097, 0, 0, 40000, 0, 0, 0 }, - {4098,4098, 0, 0, 40000, 213, 0, 0 }, - {4099,4099, 0, 0, 40000, 66, 0, 0 }, - {4100,4100, 0, 0, 1413, 1026, 0, 0 }, - {4101,4101, 0, 0, 506, 200, 0, 0 }, - {4102,4102, 0, 0, 3793, 1106, 0, 0 }, - {4103,4103, 0, 0, 40000, 220, 0, 0 }, - {4104,4104, 0, 0, 40000, 46, 0, 0 }, - {4105,4105, 0, 0, 40000, 0, 0, 0 }, - {4106,4106, 0, 0, 40000, 60, 0, 0 }, - {4107,4107, 0, 0, 40000, 0, 0, 0 }, - {4108,4108, 0, 0, 40000, 33, 0, 0 }, - {4109,4109, 0, 0, 40000, 0, 0, 0 }, - {4110,4110, 0, 0, 40000, 146, 0, 0 }, - {4111,4111, 0, 0, 40000, 66, 0, 0 }, - {4112,4112, 0, 0, 40000, 353, 0, 0 }, - {4113,4113, 0, 0, 40000, 66, 0, 0 }, - {4114,4114, 0, 0, 40000, 53, 0, 0 }, - {4115,4115, 0, 0, 40000, 73, 0, 0 }, - {4116,4116, 0, 0, 40000, 66, 0, 0 }, - {4117,4117, 0, 0, 40000, 926, 0, 0 }, - {4118,4118, 0, 0, 2833, 200, 0, 0 }, - { 127, 127, 36, 0, 386, 166, 0, 0 }, - {4119,4119, 36, 0, 100, 33, 0, 0 }, - {2030,2030, 36, 0, 346, 140, 0, 0 }, - {3782,3782, 48, 0, 93, 0, 0, 0 }, - {3783,3783, 36, 0, 146, 86, 0, 0 }, - {4120,4120, 48, 0, 1886, 653, 0, 0 }, - { 132, 132, 69, 0, 126, 66, 0, 0 }, - {4120,4120, 52, 0, 1853, 626, 0, 0 }, - { 152, 152, 48, 0, 220, 86, 0, 0 }, - {4120,4120, 55, 0, 1886, 640, 0, 0 }, - { 139, 139, 57, 0, 293, 133, 0, 0 }, - {4120,4120, 58, 0, 1860, 633, 0, 0 }, - {4120,4120, 60, 0, 1886, 633, 0, 0 }, - {4121,4121, 62, 0, 2660, 900, 0, 0 }, - {4120,4120, 63, 0, 1880, 646, 0, 0 }, - { 134, 134, 70, 0, 966, 360, 0, 0 }, - {4122,4122, 70, 0, 973, 346, 0, 0 }, - {4123,4123, 53, 0, 1866, 640, 0, 0 }, - {3516,3516, 48, 0, 180, 93, 0, 0 }, - {4124,4124, 84, 0, 1360, 473, 0, 0 }, - {4125,4125, 43, 0, 513, 206, 0, 0 }, - {4126,4126, 56, 0, 1353, 480, 0, 0 }, - {3791,3791, 24, 0, 1866, 613, 0, 0 }, - { 134, 134, 65, 0, 1346, 486, 0, 0 }, - { 146, 146, 48, 0, 173, 93, 0, 0 }, - { 146, 146, 54, 0, 173, 93, 0, 0 }, - {4127,4127, 42, 0, 246, 140, 0, 0 }, - {4127,4127, 39, 0, 240, 133, 0, 0 }, - {3816,3816, 52, 0, 306, 113, 0, 0 }, - {4128,4128, 52, 0, 413, 86, 0, 0 }, - { 158, 158, 60, 0, 146, 166, 0, 0 }, - { 158, 158, 66, 0, 146, 166, 0, 0 }, - { 158, 158, 59, 0, 146, 166, 0, 0 }, - {3538,3538, 91, 0, 773, 233, 0, 0 }, - {3547,3547,109, 0, 5300, 1786, 0, 0 }, - {4129,4129, 79, 0, 560, 313, 0, 0 }, - {4130,4130, 0, 0, 10646, 73, 0, 0 }, - {4131,4132, 0, 1, 14166, 586, 0, 0.03125 }, - {4133,4134, 0, 1, 15553, 546, 0, 0.03125 }, - {4135,4136, 0, 1, 11746, 320, 0, 0.046875 }, - {4137,4138, 0, 1, 14706, 646, 0, 0.15625 }, - {4139,4140, 0, 1, 7320, 100, 0, 0.046875 }, - {4141,4142, 0, 1, 40000, 0, 0, 0.0625 }, - {4143,4144, 0, 1, 13660, 260, 0, 0 }, - {4145,4146, 0, 1, 15026, 133, 0, 0 }, - {4147,4148, 0, 1, 40000, 0, 0, 2.5e-05 }, - {4149,4150, 0, 1, 4980, 3400, 0, 0 }, - {4151,4152, 0, 1, 7840, 2660, 0, 0.046875 }, - {4153,4154, 0, 1, 8326, 180, 0, 0 }, - {4155,4156, 0, 1, 1093, 140, 0, 0 }, - {4157,4158, 0, 1, 2280, 400, 0, 0 }, - {4159,4160, 0, 1, 4553, 1486, 0, 0.03125 }, - {4161,4161, 0, 1, 40000, 0, 0, 0.03125 }, - {4162,4163, 0, 1, 40000, 60, 0, 0.15625 }, - {4164,4165, 0, 1, 40000, 93, 0, 0.078125 }, - {4166,4167, 0, 1, 40000, 86, 0, 0.15625 }, - {4168,4169, 0, 1, 40000, 520, 0, 0.03125 }, - {4170,4171, 0, 1, 40000, 140, 0, 0.0625 }, - {4172,4173, 0, 1, 40000, 133, 0, 0.140625 }, - {4174,4175, 0, 1, 40000, 73, 0, 0 }, - {4176,4177, 0, 1, 40000, 346, 0, 0.109375 }, - {4178,4179, 0, 1, 3693, 86, 0, 0 }, - {4180,4181, 0, 1, 6586, 460, 0, 2.5e-05 }, - {4182,4183, 0, 1, 4320, 93, 0, 0 }, - {4184,4185, 0, 1, 7346, 126, 0, 0.046875 }, - {4186,4187, 0, 1, 3633, 260, 0, 0 }, - {4188,4189, 0, 1, 40000, 126, 0, -1.95312 }, - {4190,4191, 0, 1, 40000, 126, 0, -1.9375 }, - {4192,4193, 0, 1, 40000, 46, 0, 0.234375 }, - {4194,4195, 0, 1, 40000, 0, 0, 0.03125 }, - {4196,4197, 0, 1, 10320, 86, 0, 0 }, - {4198,4199, 0, 1, 12933, 133, 0, 0 }, - {4200,4201, 0, 1, 11820, 240, 0, 0.046875 }, - {4202,4203, 0, 1, 3966, 166, 0, 0 }, - {4204,4205, 0, 1, 40000, 0, 0, 0 }, - {4206,4206, 0, 0, 2666, 160, 0, 0 }, - {4207,4208, 0, 1, 15046, 93, 0, 0.078125 }, - {4209,4210, 0, 1, 40000, 100, 0, 0 }, - {4211,4211, 0, 0, 40000, 260, 0, 0 }, - {4212,4213, 0, 1, 40000, 126, 0, 2.5e-05 }, - {4214,4214, 0, 0, 40000, 233, 0, 0 }, - {4215,4216, 0, 1, 40000, 440, 0, 0.078125 }, - {4217,4218, 0, 1, 2160, 606, 0, 0.109375 }, - {4219,4220, 0, 1, 14753, 2400, 0, 0.03125 }, - {4221,4222, 0, 1, 7680, 646, 0, 0.03125 }, - {4223,4224, 0, 1, 40000, 446, 0, 0.0625 }, - {4225,4226, 0, 1, 40000, 866, 0, -0.0625 }, - {4227,4227, 0, 1, 40000, 1220, 0, 0.078125 }, - {4228,4228, 0, 1, 40000, 1960, 0, 0.0625 }, - {4229,4230, 0, 1, 40000, 433, 0, 0.125 }, - {4231,4232, 0, 1, 40000, 140, 0, 0.140625 }, - {4233,4234, 0, 1, 40000, 806, 0, 0.109375 }, - {4235,4236, 0, 1, 2040, 486, 0, 0.125 }, - {4237,4238, 0, 1, 40000, 86, 0, 0 }, - {4239,4240, 0, 1, 40000, 80, 0, 0.03125 }, - {4241,4241, 0, 0, 40000, 73, 0, 0 }, - {4242,4243, 0, 1, 40000, 400, 0, 0.0625 }, - {4244,4245, 0, 1, 40000, 120, 0, 0.0625 }, - {4246,4247, 0, 1, 40000, 0, 0, 0.09375 }, - {4248,4248, 0, 1, 40000, 0, 0, 0.125 }, - {4249,4250, 0, 1, 40000, 186, 0, 0 }, - {4251,4251, 0, 0, 40000, 166, 0, 0 }, - {4252,4252, 0, 0, 40000, 73, 0, 0 }, - {4253,4253, 0, 0, 40000, 60, 0, 0 }, - {4254,4255, 0, 1, 40000, 140, 0, 0 }, - {4256,4256, 0, 0, 40000, 140, 0, 0 }, - {4257,4257, 0, 0, 40000, 66, 0, 0 }, - {4258,4259, 0, 1, 40000, 133, 0, 0 }, - {4260,4260, 0, 0, 40000, 86, 0, 0 }, - {4261,4261, 0, 0, 40000, 73, 0, 0 }, - {4262,4262, 0, 0, 40000, 106, 0, 0 }, - {4263,4264, 0, 1, 40000, 186, 0, 0.03125 }, - {4265,4266, 0, 1, 40000, 0, 0, 0.03125 }, - {4267,4267, 0, 0, 40000, 300, 0, 0 }, - {4268,4268, 0, 0, 40000, 66, 0, 0 }, - {4269,4270, 0, 1, 40000, 73, 0, 0.125 }, - {4271,4272, 0, 1, 40000, 86, 0, 0.109375 }, - {4273,4274, 0, 1, 40000, 146, 0, 0.109375 }, - {4275,4276, 0, 1, 40000, 66, 0, -0.03125 }, - {4277,4277, 0, 0, 40000, 60, 0, 0 }, - {4278,4279, 0, 1, 40000, 213, 0, 0.15625 }, - {4280,4281, 0, 1, 40000, 66, 0, 0.125 }, - {4282,4283, 0, 1, 40000, 100, 0, 0.03125 }, - {4284,4285, 0, 1, 40000, 1513, 0, 0.078125 }, - {4286,4287, 0, 1, 40000, 353, 0, 0.109375 }, - {4288,4289, 0, 1, 40000, 133, 0, 0.078125 }, - {4290,4291, 0, 1, 40000, 746, 0, 0.140625 }, - {4292,4293, 0, 1, 40000, 0, 0, 0.109375 }, - {4294,4295, 0, 1, 5033, 1606, 0, 0.0625 }, - {4296,4297, 0, 1, 40000, 1146, 0, 0.09375 }, - {4298,4299, 0, 1, 40000, 1586, 0, 0.109375 }, - {4300,4301, 0, 1, 40000, 0, 0, 0.09375 }, - {4302,4303, 0, 1, 40000, 1006, 0, 0.125 }, - {4304,4304, 0, 1, 2680, 793, 0, 0.109375 }, - {4305,4306, 0, 1, 40000, 0, 0, -0.046875 }, - {4307,4308, 0, 1, 9000, 3186, 0, 0.125 }, - {4309,4310, 0, 1, 40000, 1073, 0, -0.078125 }, - {4311,4312, 0, 1, 40000, 2093, 0, 0.140625 }, - {4313,4314, 0, 1, 40000, 0, 0, 0.078125 }, - {4315,4316, 0, 1, 9580, 713, 0, 0.03125 }, - {4317,4317, 0, 0, 1166, 760, 0, 0 }, - {4318,4319, 0, 1, 1186, 240, 0, 0 }, - {4320,4320, 0, 0, 40000, 160, 0, 0 }, - {4321,4321, 0, 0, 40000, 120, 0, 0 }, - {4322,4322, 0, 0, 8673, 2413, 0, 0 }, - {4323,4323, 0, 0, 393, 126, 0, 0 }, - {4324,4324, 0, 0, 246, 93, 0, 0 }, - {4325,4326, 0, 1, 1953, 393, 0, 0 }, - {4327,4328, 0, 1, 4220, 133, 0, 0 }, - {4329,4330, 0, 1, 2873, 73, 0, 0.109375 }, - {4331,4332, 0, 1, 40000, 186, 0, 0 }, - {4333,4333, 0, 0, 1573, 86, 0, 0 }, - {4334,4335, 0, 1, 40000, 793, 0, 0 }, - {4336,4337, 0, 1, 40000, 173, 0, 0 }, - {4338,4339, 0, 1, 40000, 793, 0, 0 }, - {4340,4340, 0, 0, 606, 133, 0, 0 }, - {4044,4341, 63, 1, 160, 80, 0, 0 }, - {4342,4343, 25, 1, 313, 153, 0, 0 }, - {4344,4343, 25, 1, 206, 100, 0, 0 }, - {4345,4346, 61, 1, 153, 93, 0, 0 }, - {4347,4348, 38, 1, 340, 133, 0, 0 }, - {4349,4350, 37, 1, 206, 93, 0, 0 }, - {4351,4352, 15, 1, 346, 153, 10, 0 }, - {4353,4354,100, 1, 146, 80, 0, 0.140625 }, - {4355,4356, 19, 1, 553, 200, 10, 0 }, - {4357,4358, 15, 1, 333, 153, 20, 0 }, - {4359,4360, 12, 1, 340, 146, 20, 0 }, - {4361,4362, 11, 1, 346, 146, 20, 0 }, - {4363,4364, 61, 1, 2706, 1033, 0, 0.09375 }, - {4365,4362, 8, 1, 340, 146, 20, 0 }, - {4366,4367, 91, 1, 1166, 366, 0, -0.046875 }, - {4368,4368, 70, 0, 966, 346, 0, 0 }, - {4369,4370, 80, 1, 300, 93, 0, 0.125 }, - {4371,4371, 58, 0, 206, 53, 0, 0 }, - {4372,4364, 62, 1, 2333, 820, 0, 0.09375 }, - {4373,4374, 31, 1, 773, 200, 0, 0 }, - {4375,4367, 91, 1, 1160, 360, 0, -0.03125 }, - {4376,4377, 41, 1, 373, 113, 0, 0 }, - {4378,4379, 35, 1, 406, 126, 0, 0 }, - {4380,4381, 29, 1, 146, 106, 0, 0 }, - {4382,4383, 41, 1, 400, 126, 0, 0 }, - {4382,4383, 37, 1, 400, 126, 0, 0 }, - {4384,4385, 77, 1, 193, 93, 0, 0 }, - {4386,4387, 72, 1, 200, 93, 0, 0 }, - {4388,4388, 40, 0, 513, 0, 0, 0 }, - {4389,4389, 38, 0, 200, 20, 0, 0 }, - {4390,4390, 36, 0, 620, 20, 0, 0 }, - {4391,4391, 90, 0, 193, 20, 0, 0 }, - {4392,4392, 90, 0, 793, 40, 0, 0 }, - {4393,4394, 80, 1, 406, 153, 0, 0.03125 }, - {4395,4396, 64, 1, 1866, 606, 0, 0 }, - {4397,4398, 50, 1, 173, 126, 0, 0 }, - {4399,4399, 36, 0, 4646, 1606, 0, 0 }, - {4400,4400, 0, 0, 40000, 86, 0, 0 }, - {4401,4401, 0, 0, 40000, 73, 0, 0 }, - {4402,4402, 0, 0, 2433, 700, 0, 0 }, - {4403,4403, 0, 0, 1233, 26, 0, 0 }, - {4404,4404, 0, 0, 40000, 66, 0, 0 }, - {4405,4405, 0, 0, 40000, 60, 0, 0 }, - {4406,4406, 0, 0, 40000, 60, 0, 0 }, - {4407,4407, 0, 0, 40000, 66, 0, 0 }, - {4408,4408, 0, 0, 40000, 66, 0, 0 }, - {4409,4409, 0, 0, 40000, 0, 0, 0 }, - {4409,4409, 73, 0, 40000, 0, 0, 0 }, - {4410,4410, 0, 0, 40000, 60, 0, 0 }, - {4411,4411, 0, 0, 40000, 60, 0, 0 }, - {4412,4412, 0, 0, 7326, 2486, 0, 0 }, - {4413,4413, 0, 0, 4886, 1586, 0, 0 }, - {4414,4414, 0, 0, 646, 20, 0, 0 }, - {4415,4415, 0, 0, 253, 20, 0, 0 }, - {4415,4415, 12, 0, 253, 20, 0, 0 }, - {4416,4416, 0, 0, 640, 100, 0, 0 }, - {4416,4416, 1, 0, 640, 106, 0, 0 }, - {4417,4417, 0, 0, 133, 106, 0, 0 }, - {4417,4417, 23, 0, 133, 106, 0, 0 }, - {4418,4418, 0, 0, 653, 100, 0, 0 }, - {4419,4419, 0, 0, 4166, 1546, 0, 0 }, - {4420,4420, 0, 0, 40000, 73, 0, 0 }, - {4421,4421, 0, 0, 40000, 60, 0, 0 }, - {4422,4422, 0, 0, 40000, 53, 0, 0 }, - {4423,4423, 0, 0, 40000, 0, 0, 0 }, - {4424,4424, 0, 0, 246, 20, 0, 0 }, - {4425,4425, 0, 2, 6, 0, 0, 0 }, - {4426,4426, 0, 0, 4946, 233, 0, 0 }, - {4427,4427, 0, 0, 4946, 233, 0, 0 }, - {4428,4428, 0, 0, 4953, 240, 0, 0 }, - {4429,4429, 0, 0, 4946, 233, 0, 0 }, - {4430,4430, 0, 0, 18233, 46, 0, 0 }, - {4431,4431, 0, 0, 2386, 26, 0, 0 }, - {4432,4432, 0, 0, 4640, 633, 0, 0 }, - {4433,4433, 0, 0, 18466, 100, 0, 0 }, - {4434,4434, 0, 0, 18440, 66, 0, -2 }, - {4435,4435, 0, 0, 18440, 6140, 0, -2 }, - {4436,4436, 0, 0, 1206, 433, 0, -2 }, - {4437,4437, 0, 0, 4626, 240, 0, 0 }, - {4438,4438, 0, 0, 726, 400, 0, 0 }, - {4439,4439, 0, 0, 5866, 73, 0, 0 }, - {4440,4440, 0, 0, 40000, 73, 0, 0 }, - {4441,4441, 0, 0, 40000, 73, 0, 0 }, - {4442,4442, 0, 0, 40000, 73, 0, 0 }, - {4443,4443, 0, 0, 40000, 73, 0, 0 }, - {4444,4444, 0, 0, 6500, 346, 0, 0 }, - {4445,4445, 0, 0, 6506, 346, 0, 0 }, - {4446,4446, 0, 0, 40000, 66, 0, -2 }, - {4447,4447, 0, 0, 40000, 66, 0, -2 }, - {4448,4448, 0, 0, 40000, 0, 0, 0 }, - {4449,4449, 0, 0, 40000, 46, 0, 0 }, - {4450,4450, 0, 0, 40000, 0, 0, 0 }, - {4450,4450, 0, 0, 40000, 0, 0, -2 }, - {4451,4451, 0, 0, 2386, 26, 0, 0 }, - {4452,4452, 0, 0, 40000, 73, 0, -2 }, - {4453,4453, 0, 0, 5866, 26, 0, -2 }, - {4454,4454, 0, 0, 40000, 133, 0, 0 }, - {4455,4455, 0, 0, 40000, 133, 0, 0 }, - {4456,4456, 0, 0, 40000, 126, 0, 0 }, - {4457,4457, 0, 0, 253, 20, 0, 0 }, - {4458,4458, 0, 0, 8866, 1366, 0, 0 }, - {4459,4459, 0, 0, 1040, 766, 0, 0 }, - {4460,4460, 0, 0, 40000, 146, 0, -2 }, - {4461,4461, 0, 0, 40000, 153, 0, -2 }, - {4462,4462, 0, 0, 40000, 466, 0, -2 }, - {4463,4463, 0, 0, 40000, 66, 0, 0 }, - {4464,4464, 0, 0, 2333, 566, 0, 0 }, - {4465,4465, 0, 0, 40000, 140, 0, -2 }, - {4466,4466, 0, 0, 40000, 100, 0, -2 }, - {4467,4467, 0, 0, 40000, 226, 0, -2 }, - {4468,4468, 0, 0, 40000, 0, 0, 0 }, - {3712,3712, 0, 0, 40000, 226, 0, -2 }, - {4469,4469, 0, 0, 40000, 140, 0, -2 }, - {4470,4470, 0, 0, 40000, 66, 0, 0 }, - {4471,4471, 0, 0, 40000, 73, 0, 0 }, - {4472,4472, 0, 0, 40000, 73, 0, 0 }, - {4473,4473, 0, 0, 40000, 86, 0, -2 }, - {4474,4474, 0, 0, 40000, 80, 0, 0 }, - {4475,4475, 0, 0, 40000, 73, 0, -2 }, - {4476,4476, 0, 0, 40000, 80, 0, -2 }, - {4477,4477, 0, 0, 40000, 73, 0, -2 }, - {4478,4478, 0, 0, 40000, 73, 0, 0 }, - {4479,4479, 0, 0, 40000, 73, 0, 0 }, - {4480,4480, 0, 0, 40000, 93, 0, 0 }, - {4481,4481, 0, 0, 40000, 73, 0, 0 }, - {4482,4482, 0, 0, 11946, 13, 0, 0 }, - {4483,4483, 0, 0, 40000, 73, 0, 0 }, - {4453,4453, 0, 0, 5866, 26, 0, 0 }, - {4484,4484, 0, 0, 40000, 820, 0, 0 }, - {4485,4485, 0, 0, 2153, 873, 0, 0 }, - {1221,1221, 0, 0, 40000, 293, 0, 0.171875 }, - {4486,4486, 0, 0, 1620, 120, 0, 0 }, - {4487,4487, 0, 0, 15120, 93, 0, 0 }, - {4488,4488, 0, 0, 14613, 93, 0, 0 }, - {4489,4489, 0, 0, 2346, 793, 0, 0 }, - {4490,4490, 0, 0, 40000, 2380, 0, 0 }, - {4491,4491, 0, 0, 40000, 1280, 0, 0 }, - {4492,4492, 0, 0, 40000, 1460, 0, 0 }, - {4493,4493, 0, 0, 40000, 2513, 0, 0 }, - {4494,4494, 0, 0, 14840, 1266, 0, 0 }, - {4495,4495, 0, 0, 4513, 640, 0, 0 }, - {4496,4496, 0, 0, 4680, 806, 0, 0 }, - {4497,4497, 0, 0, 40000, 100, 0, 0 }, - {4498,4498, 0, 0, 40000, 66, 0, 0 }, - {4499,4499, 0, 0, 2420, 413, 0, 0 }, - {4500,4500, 0, 0, 406, 73, 0, -2 }, - {4501,4501, 0, 0, 1166, 400, 0, 0 }, - {4502,4502, 0, 0, 1213, 106, 0, 0 }, - {4503,4503, 0, 0, 273, 60, 0, -2 }, - {4504,4504, 0, 0, 40000, 2380, 0, 0 }, - {4505,4505, 0, 0, 40000, 440, 0, 0 }, - {1261,1261, 0, 0, 40000, 2960, 0, 0 }, - {4506,4506, 37, 0, 973, 73, 0, -2 }, - {4507,4507, 48, 0, 106, 26, 0, -2 }, - {4508,4508, 48, 0, 286, 133, 0, -2 }, - {4509,4509, 62, 0, 166, 60, 0, 0 }, - {4510,4510, 44, 0, 980, 360, 0, 0 }, - {4511,4511, 80, 0, 100, 33, 0, 0 }, - {4510,4510, 50, 0, 980, 346, 0, 0 }, - {4512,4512, 48, 0, 106, 46, 0, -2 }, - {4510,4510, 55, 0, 973, 360, 0, 0 }, - {4513,4513, 61, 0, 513, 20, 0, 0 }, - {4510,4510, 58, 0, 966, 353, 0, 0 }, - {4510,4510, 63, 0, 973, 353, 0, 0 }, - {4514,4514, 71, 0, 1366, 580, 0, 0 }, - {4510,4510, 72, 0, 820, 306, 0, 0 }, - {4515,4515, 70, 0, 1886, 666, 0, 0 }, - {4514,4514, 88, 0, 1353, 560, 0, 0 }, - {4516,4516, 76, 0, 1873, 653, 0, 0 }, - {4517,4517, 84, 0, 260, 113, 0, 0 }, - {4514,4514, 68, 0, 1366, 553, 0, 0 }, - {4518,4518, 72, 0, 153, 53, 0, 0 }, - {4519,4519, 28, 0, 1193, 413, 0, 0 }, - {4515,4515, 81, 0, 1353, 480, 0, 0 }, - {4520,4520, 58, 0, 246, 120, 0, -2 }, - {4520,4520, 55, 0, 246, 120, 0, -2 }, - {4520,4520, 44, 0, 246, 120, 0, -2 }, - {4520,4520, 49, 0, 246, 120, 0, -2 }, - {4520,4520, 40, 0, 286, 133, 0, -2 }, - {4521,4521, 55, 0, 740, 560, 0, -2 }, - {4521,4521, 48, 0, 893, 693, 0, -2 }, - {4522,4522, 52, 0, 513, 206, 0, 0 }, - {4522,4522, 45, 0, 513, 206, 0, 0 }, - {4523,4523, 48, 0, 173, 100, 0, -2 }, - {4524,4524, 48, 0, 120, 266, 0, -2 }, - {4525,4525, 48, 0, 253, 60, 0, -2 }, - {4500,4500, 73, 0, 160, 20, 0, -2 }, - {4500,4500, 68, 0, 160, 20, 0, -2 }, - {4500,4500, 63, 0, 193, 20, 0, -2 }, - {4526,4526,108, 0, 406, 26, 0, 0 }, - {4527,4527,108, 0, 740, 26, 0, 0 }, -}; - - - -//Returns total number of generated banks -int maxAdlBanks() -{ - return 75; -} - -const char* const banknames[76] = -{ - "AIL (Star Control 3, Albion, Empire 2, etc.)", - "Bisqwit (selection of 4op and 2op)", - "HMI (Descent, Asterix)", - "HMI (Descent:: Int)", - "HMI (Descent:: Ham)", - "HMI (Descent:: Rick)", - "HMI (Descent 2)", - "HMI (Normality)", - "HMI (Shattered Steel)", - "HMI (Theme Park)", - "HMI (3d Table Sports, Battle Arena Toshinden)", - "HMI (Aces of the Deep)", - "HMI (Earthsiege)", - "HMI (Anvil of Dawn)", - "DMX (Doom 2)", - "DMX (Hexen, Heretic)", - "DMX (DOOM, MUS Play)", - "AIL (Discworld, Grandest Fleet, etc.)", - "AIL (Warcraft 2)", - "AIL (Syndicate)", - "AIL (Guilty, Orion Conspiracy, TNSFC ::4op)", - "AIL (Magic Carpet 2)", - "AIL (Nemesis)", - "AIL (Jagged Alliance)", - "AIL (When Two Worlds War :MISS-INS:)", - "AIL (Bards Tale Construction :MISS-INS:)", - "AIL (Return to Zork)", - "AIL (Theme Hospital)", - "AIL (National Hockey League PA)", - "AIL (Inherit The Earth)", - "AIL (Inherit The Earth, file two)", - "AIL (Little Big Adventure :: 4op)", - "AIL (Wreckin Crew)", - "AIL (Death Gate)", - "AIL (FIFA International Soccer)", - "AIL (Starship Invasion)", - "AIL (Super Street Fighter 2 :4op:)", - "AIL (Lords of the Realm :MISS-INS:)", - "AIL (SimFarm, SimHealth :: 4op)", - "AIL (SimFarm, Settlers, Serf City)", - "AIL (Caesar 2, :p4op::MISS-INS:)", - "AIL (Syndicate Wars)", - "AIL (Bubble Bobble Feat. Rainbow Islands, Z)", - "AIL (Warcraft)", - "AIL (Terra Nova Strike Force Centuri :p4op:)", - "AIL (System Shock :p4op:)", - "AIL (Advanced Civilization)", - "AIL (Battle Chess 4000 :p4op:)", - "AIL (Ultimate Soccer Manager :p4op:)", - "AIL (Air Bucks, Blue And The Gray, etc)", - "AIL (Ultima Underworld 2)", - "AIL (Kasparov's Gambit)", - "AIL (High Seas Trader :MISS-INS:)", - "AIL (Master of Magic, :4op: std percussion)", - "AIL (Master of Magic, :4op: orchestral percussion)", - "SB (Action Soccer)", - "SB (3d Cyberpuck :: melodic only)", - "SB (Simon the Sorcerer :: melodic only)", - "OP3 (The Fat Man 2op set)", - "OP3 (The Fat Man 4op set)", - "OP3 (JungleVision 2op set :: melodic only)", - "OP3 (Wallace 2op set, Nitemare 3D :: melodic only)", - "TMB (Duke Nukem 3D)", - "TMB (Shadow Warrior)", - "DMX (Raptor)", - "OP3 (Modded GMOPL by Wohlstand)", - "SB (Jamie O'Connell's bank)", - "TMB (Default bank of Apogee Sound System)", - "WOPL (4op bank by James Alan Nguyen and Wohlstand)", - "TMB (Blood)", - "TMB (Lee)", - "TMB (Nam)", - "WOPL (DMXOPL3 bank by Sneakernets)", - "EA (Cartooners)", - "WOPL (Apogee IMF 90-ish)", - NULL -}; -const unsigned short banks[75][256] = -{ - { - 0, 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, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 0, 179, 2, 180, 181, 182, 183, 184, 185, 9, 186, 11, 187, 188, 189, 190, - 191, 192, 193, 194, 20, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 35, 209, 34, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 50, 223, 224, 53, 225, 55, 56, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 71, 72, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 82, 249, 250, 251, 86, 252, 253, 254, 255, 91, 92, 256, 257, - 258, 259, 260, 98, 99, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 111, 272, 273, 274, 115, 275, 276, 277, 278, 120, 279, 280, 281, 282, 295, 284, - 127, 132, 285, 286, 127, 287, 288, 289, 290, 291, 292, 127, 127, 293, 294, 295, - 289, 296, 297, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 318, 320, 318, 321, 318, - 318, 322, 318, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 337, 338, 339, 320, 340, 341, 342, 343, 344, 345, 346, 346, 169, 170, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 164, 363, 156, 364, 292, 365, 366, 367, 368, 178, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, - }, - { - 370, 179, 371, 180, 372, 373, 374, 375, 376, 377, 186, 378, 187, 379, 380, 190, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 381, 28, 370, 30, 31, - 32, 33, 34, 35, 36, 382, 38, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 383, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 385, 386, 387, 388, 389, - 390, 391, 392, 369, 393, 308, 394, 395, 396, 397, 398, 399, 398, 400, 401, 402, - 403, 404, 405, 406, 404, 406, 407, 404, 408, 404, 330, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 341, 342, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 419, 430, 351, 431, 308, 432, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 295, 434, 435, 28, 436, 31, 30, 437, 438, 439, 440, 441, 442, 38, 46, 443, - 79, 84, 444, 445, 49, 89, 92, 93, 105, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 119, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 304, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 345, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 355, 356, 357, 358, 359, 529, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 295, 434, 435, 28, 436, 31, 30, 437, 438, 439, 440, 441, 442, 38, 46, 443, - 79, 84, 444, 445, 49, 89, 92, 93, 105, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 119, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 295, 112, 99, 530, 531, 93, 532, 248, 107, 116, 533, 28, 78, 534, 535, - 536, 79, 94, 38, 33, 115, 537, 538, 539, 540, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 541, 542, 543, 544, 545, 546, 295, 295, - 547, 132, 134, 136, 138, 139, 141, 173, 156, 291, 292, 127, 548, 549, 550, 551, - 552, 362, 553, 143, 295, 295, 295, 295, 295, 295, 295, 304, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 554, 555, 556, 557, 487, 488, 489, - 490, 491, 492, 493, 558, 495, 496, 497, 498, 499, 500, 501, 559, 503, 504, 505, - 506, 507, 508, 560, 561, 511, 512, 513, 514, 562, 563, 345, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 564, 356, 565, 358, 359, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 295, 434, 435, 28, 436, 31, 30, 437, 438, 439, 440, 441, 442, 38, 46, 443, - 79, 84, 444, 445, 49, 89, 92, 93, 105, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 119, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 566, 567, 568, 569, - 570, 34, 571, 572, 437, 51, 52, 84, 573, 574, 575, 576, 577, 85, 530, 90, - 93, 94, 101, 578, 114, 119, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 293, 127, 548, - 550, 296, 297, 296, 297, 298, 299, 300, 301, 302, 303, 304, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 345, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 355, 356, 357, 358, 359, 360, 361, 362, - 164, 363, 156, 364, 292, 365, 366, 367, 368, 178, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 295, 434, 435, 28, 436, 31, 30, 437, 438, 439, 440, 441, 442, 38, 46, 443, - 79, 84, 444, 445, 49, 89, 92, 93, 105, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 119, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 295, 579, 580, 581, 295, 295, 582, 295, 295, 295, 295, 583, 584, 585, 586, - 587, 444, 588, 589, 590, 295, 591, 592, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 577, 566, - 437, 90, 460, 28, 593, 594, 595, 596, 31, 597, 598, 28, 441, 442, 567, 530, - 93, 572, 599, 279, 30, 435, 100, 94, 575, 38, 281, 437, 447, 51, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 356, 357, 358, 359, 304, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 345, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 355, 600, 601, 602, 127, 548, 296, 603, - 604, 550, 605, 606, 362, 607, 135, 608, 361, 609, 610, 611, 612, 507, 146, 613, - 547, 500, 614, 364, 173, 615, 366, 600, 616, 617, 618, 619, 620, 621, 295, 295, - }, - { - 622, 179, 371, 180, 372, 373, 374, 375, 376, 377, 186, 378, 187, 379, 380, 190, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 381, 28, 370, 30, 31, - 32, 33, 34, 35, 36, 382, 38, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 383, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 623, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 624, 625, 166, 167, 168, 169, 170, - 171, 172, 626, 174, 627, 176, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - }, - { - 628, 629, 371, 442, 372, 630, 571, 631, 376, 632, 186, 633, 634, 379, 380, 635, - 636, 598, 597, 637, 28, 638, 437, 437, 639, 640, 26, 641, 28, 572, 437, 642, - 643, 566, 570, 644, 567, 34, 568, 569, 212, 645, 646, 42, 43, 647, 648, 649, - 650, 651, 652, 653, 51, 52, 53, 573, 654, 655, 656, 657, 658, 574, 575, 576, - 659, 599, 660, 661, 662, 68, 663, 664, 71, 665, 666, 74, 75, 667, 668, 669, - 577, 85, 441, 442, 38, 84, 46, 86, 530, 88, 670, 90, 91, 92, 93, 94, - 258, 671, 97, 532, 99, 100, 101, 672, 536, 673, 674, 675, 676, 677, 464, 110, - 678, 578, 113, 114, 679, 116, 680, 599, 31, 462, 279, 125, 465, 281, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 681, 682, 683, 500, 503, 614, 684, 685, 296, 552, 550, 605, 600, - 548, 602, 127, 601, 293, 549, 604, 551, 603, 298, 362, 299, 135, 300, 361, 301, - 302, 547, 303, 142, 143, 144, 619, 146, 291, 686, 149, 687, 367, 368, 292, 365, - 366, 364, 688, 158, 689, 690, 615, 162, 163, 164, 363, 691, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 712, 713, 714, 715, 716, 713, 717, 718, 719, 720, 721, 722, 723, 724, 715, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 739, 739, - 740, 741, 742, 743, 744, 533, 745, 568, 678, 746, 747, 748, 739, 739, 749, 750, - 751, 752, 751, 753, 754, 212, 754, 755, 756, 757, 758, 759, 759, 760, 204, 761, - 762, 739, 739, 763, 762, 762, 764, 765, 766, 766, 766, 766, 767, 768, 767, 769, - 769, 770, 771, 664, 772, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, - 783, 784, 785, 786, 787, 788, 788, 789, 786, 753, 790, 780, 780, 780, 791, 791, - 792, 793, 794, 795, 796, 680, 680, 797, 798, 799, 800, 801, 802, 803, 742, 804, - 805, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, - 820, 821, 822, 823, 821, 824, 825, 821, 826, 821, 827, 828, 829, 830, 831, 832, - 833, 834, 834, 835, 835, 825, 825, 836, 837, 838, 295, 839, 840, 841, 295, 295, - 842, 843, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, - 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, - 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, - 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 971, 972, 973, 974, - 975, 310, 976, 977, 978, 974, 979, 980, 981, 982, 983, 984, 983, 985, 986, 987, - 988, 989, 990, 325, 989, 325, 991, 989, 992, 989, 330, 993, 994, 995, 996, 997, - 998, 999,1000,1001,1002,1003, 340,1004,1005,1006,1007,1008,1009, 310,1010,1011, -1012, 429,1003, 430,1013,1014, 974,1015, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031, -1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047, -1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063, -1064,1065,1066,1067, 223,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078, -1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094, -1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110, -1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126, -1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 305, 306, 307, 308, -1143, 425, 311,1144, 393, 308, 394, 395, 396, 397,1145, 399,1145, 400,1146, 402, - 403, 404, 405, 406, 404, 406, 407, 404, 408, 404, 330, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 341, 342, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 419, 430, 351, 431, 308, 432, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1147,1017,1018,1148,1149,1150,1022, 184,1024,1025,1026,1027,1028,1151,1152,1153, -1154,1033,1155,1035,1036,1156,1038,1039,1040,1157,1042,1158,1159,1160,1161,1047, -1162,1163,1164,1165,1166,1167,1168,1169,1056,1170,1058,1059,1060,1171,1062,1172, -1173,1065,1066,1174, 223,1068,1069,1070,1175,1176,1177,1074,1178,1179,1180,1078, -1079,1080,1081,1082,1181,1084,1182,1183,1087,1184,1089,1090,1185,1186, 922,1187, -1188,1189,1097,1098,1190,1100,1191,1192,1103,1193,1194,1195,1196,1197,1198,1199, -1111,1200,1201,1202,1203,1116,1204,1205,1119,1206,1207,1122,1123,1124,1125,1208, -1127,1209,1210,1130,1131,1211,1212,1213,1135,1214,1215,1138,1139,1216,1217,1218, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 385, 386, 387, 388, 389, - 390, 391, 392,1219,1219, 308, 394, 395, 396, 397, 398, 399, 398, 400, 401, 402, - 403, 404, 405, 406, 404, 406, 407, 404, 408, 404, 330, 409, 410, 411, 412, 413, - 414, 415, 416,1220,1221, 419, 420, 341, 342, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 419, 430, 351, 431, 308, 432, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 0, 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, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 623, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 624, 625, 166, 167, 168, 169, 170, - 171, 172, 626, 174, 627, 176, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - }, - { -1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237, -1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253, -1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269, -1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285, -1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301, -1302,1303,1304,1305,1306,1307,1308,1309,1309,1310,1311,1312,1313,1314,1315,1316, -1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332, -1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 312,1349,1350,1351,1352,1353,1354, 319,1355, 320,1356, 321,1357, -1358,1359,1360,1361,1362,1363,1364,1365,1366,1359,1367,1361, 332, 333, 334, 335, - 336,1368,1369, 338, 339, 320,1370, 295, 295, 295, 295,1372,1373,1374,1375, 295, - 347, 348, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237, -1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1376,1377,1253, -1378,1255,1256,1379,1380,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269, -1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1381,1281,1282,1283,1284,1285, -1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301, -1302,1303,1304,1305,1306,1307,1308,1309,1309,1310,1311,1312,1313,1314,1315,1316, -1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332, -1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 312,1349,1350,1351,1352,1382,1354, 319,1355, 320,1356, 321,1357, -1358,1359,1360,1361,1362,1363,1364,1383,1366,1359,1384,1361, 332, 333, 334, 335, - 336,1368,1369, 338, 339, 320,1370, 295, 295, 295, 295,1372,1373,1374,1375, 295, - 347, 348, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237, -1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1385,1252,1253, -1386,1255,1256,1379,1380,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269, -1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1381,1281,1282,1283,1284,1285, -1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301, -1302,1303,1304,1305,1306,1307,1308,1309,1309,1310,1311,1312,1313,1314,1315,1316, -1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332, -1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 312,1349,1350,1351,1352,1353,1354, 319,1355, 320,1356, 321,1357, -1358,1359,1360,1361,1362,1363,1364,1383,1366,1359,1387,1361, 332, 333, 334, 335, - 336,1368,1369, 338, 339, 320,1370, 295, 295, 295, 295,1372,1373,1374,1375, 295, - 347, 348, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 622, 179, 371,1388, 372, 373, 374, 375,1389, 377, 186,1390, 187, 379,1391,1392, -1393,1394,1395,1396,1397,1398,1399,1400,1401, 25, 26, 381, 28, 370, 30,1402, -1403, 33, 34, 35, 36, 382, 38, 33, 39, 40,1404, 42, 43, 44, 45, 46, - 222,1405,1406,1407,1408,1409,1410,1411, 55, 56,1412, 58, 59,1413,1414, 62, -1415,1416,1417,1418, 67, 68, 69, 70, 71, 72,1419, 74,1420,1421,1422,1423, - 79, 80, 81,1424, 83,1425,1426, 86,1427,1428,1429,1430,1431,1432, 256, 257, -1433, 96, 97,1434,1435,1436, 262, 263, 103, 104, 105,1437, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 660, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145,1438, 147, 148,1439, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163,1440,1441, 166, 167, 168, 169,1442, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 0, 1, 2, 3, 4, 5,1443, 7, 8,1444, 10, 11, 12, 13,1445, 15, - 16, 17, 18,1446, 20, 21, 22, 23,1447, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 33, 39, 40, 41, 42,1448,1449,1450,1451, -1452,1453,1454, 50,1455, 52, 53,1456,1457,1458,1459, 58,1460,1461, 61, 62, - 63, 64, 65, 66,1462, 68,1463,1464,1465,1466, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,1467, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114,1468, 116,1469, 277, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1470,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481, -1482,1483,1484, 142,1485, 144,1486,1487, 147,1488,1489, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159,1490, 161, 162, 163, 164, 165, 166,1491, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1492, 713, 714, 715, 716, 713, 717,1492, 719,1493, 721,1494, 723,1495, 715, 725, - 728, 728, 728, 729, 730,1496,1497,1497, 734,1498, 736,1499, 739, 739, 739, 739, - 740,1500,1501,1502,1500, 533, 745,1503, 678, 746,1504,1505, 739, 739,1506,1507, -1508, 781,1508, 753,1509,1510,1509,1511, 756, 757, 758, 759, 759,1512,1513, 761, - 762, 739, 739, 739, 762, 762, 764, 765, 766, 766, 766, 766, 767,1514, 769, 769, - 769, 770, 771,1515,1516,1516,1517, 774,1518,1518,1519,1520, 779,1521, 781,1522, - 783, 784,1523, 786,1524,1525,1525,1526, 786, 753,1527,1521,1521,1521,1528,1528, - 792, 793, 680, 795, 796, 680, 680,1529,1530,1531,1532,1533, 802, 803,1534,1535, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1536,1536,1537,1538, 811,1537,1539,1540,1539,1541,1542,1541,1541, -1543,1544,1537, 295,1545,1546, 295, 295,1542, 295, 295, 295,1547,1539,1537,1548, -1542,1537,1539,1549,1550,1541,1541,1541,1541,1541, 295,1541, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,1554, 181, 182, 183,1555, 185,1556,1557,1558,1559, 188, 189,1560, -1561,1562,1563,1564,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571, 211,1572,1573, 214, 215, 216, 217, 218, 219, - 220, 221,1574,1575,1576,1577,1578, 225,1579,1580, 226,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590, 252, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,1611,1612, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623, -1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639, -1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655, -1656,1657,1658,1659,1660,1661,1662,1663, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1492, 713, 714,1664,1665,1666, 717,1492, 719,1667,1668, 722, 723, 724, 715, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,1669,1670,1671, 739, 739, - 740,1672,1673,1674,1675,1676,1677,1678,1679, 746,1680, 748,1681,1682,1683,1684, -1685, 752,1686,1687,1688,1689, 732, 755, 756, 757, 758, 759, 759,1690, 204,1691, -1692,1693,1694,1695,1696,1697,1698,1699, 766,1700,1701, 766,1702, 768,1703,1704, -1705,1706,1707, 664, 772, 772, 773,1706,1690,1708,1708,1708,1708,1708,1709, 782, -1710, 784,1711,1712, 787, 788, 788, 789,1712, 753, 790, 780, 780, 780, 791, 791, - 792, 793,1713,1714, 796, 680, 680, 797, 798, 799, 800,1533,1715, 803,1534,1535, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1716,1717,1718,1719,1720,1720,1539, 814,1539,1721,1542, 818,1721, -1543,1544,1537, 295,1545,1546, 295, 295,1542, 295, 295, 295,1547,1539,1537,1722, -1542,1537,1539,1549,1550,1721,1723,1721,1724,1725, 295,1726, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742, -1743,1744,1745, 194,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757, -1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773, -1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785, 228,1786,1787,1788, -1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1766, 245, -1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818, -1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834, -1835,1836,1837, 274,1838,1839,1840,1841, 278,1842,1843,1844,1845,1846,1847,1848, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1849,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860, -1861,1862,1863,1864,1865,1864,1866,1867,1868,1869,1870,1864,1871,1872,1873,1874, -1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890, -1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1903, 295,1904, 713,1905, 713, 717,1492, 598,1493,1493,1906,1907,1907,1907, 761, - 728, 728, 728, 730, 730, 730,1497,1497,1908,1909,1910,1910, 739, 739,1911, 739, -1912,1913,1501,1502,1913, 533,1914,1503, 678, 678,1504, 764, 739, 739,1506,1507, -1915,1916,1917,1918,1509,1510,1509,1511, 756, 757, 758, 759, 759,1512,1513,1919, -1909,1920,1921, 295,1910, 295, 764,1922,1923, 295, 295, 295,1924,1925, 295, 769, -1926,1927, 295, 295, 295, 295,1928,1929,1930,1518,1519,1931,1932,1932,1933,1934, -1935,1936,1937,1938,1939, 295,1525,1940,1937,1934, 295,1941, 295, 295, 295,1941, -1942, 295, 295, 295,1943,1944, 295,1945, 295, 295,1921, 295, 280,1903, 678, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295,1946,1947,1948,1949,1948,1539,1950,1539,1541,1542,1541,1542, -1537,1951,1537,1952, 295,1948,1953,1948, 295, 295, 295, 295,1537,1539,1537,1537, -1542,1537,1539,1948,1954,1541,1954,1541,1541,1541, 295,1541, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, -1955, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295,1956, 295, 295, 295, 295, 295, 295, 295, 295,1957, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295,1958, 295, 295,1959, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 456,1960, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,1961,1961,1961, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295,1962,1963, 295, 295, 295,1964, 295, 295, 295, 295, 295, 295, 295, 295, 295, -1965,1966, 295, 295, 295, 295, 295, 295, 295, 757,1967,1968,1968, 295, 295, 295, - 295, 295, 295, 295, 295, 295,1969,1969,1970,1971,1970, 295, 295, 295, 295, 295, - 295, 295,1972,1972, 295, 295, 295, 295, 295,1973,1520, 295, 779, 295, 295, 295, - 295, 295, 295, 295, 295, 295,1974,1964,1975,1976,1977,1978, 295, 295, 673,1979, - 459,1980,1981, 295, 295,1982, 295, 295,1983, 295, 295,1984,1985,1986,1987, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295,1988,1988,1988, 295, 295, 295, 295, 295, 295, 295, - 295,1989, 295, 295, 295, 295,1990, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,1398, -2006,2006,2006,2007,2007,2007,2008,2009,2010,2011,2012,2013, 34,2014, 33,2015, -2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031, -2032,2033,2034,2035,2036,2037,2038,2039,2040, 45, 45,2041,2042,2043,2044,2045, -2046, 739,2047,2048,2049,2050,2051,2051,2052,2053,2053,2054,2055,2056,2057,2058, -2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2071,2072,2073, -2074,2075,2076,2077,2078,2079,2080, 275,2081,2082,1527,2083,2084,2085,2086,2087, -2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099, 122,2100,2101,2102, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2104,2105,2106,2107,2108,2109,2110,2111,2110,2112,2113,2114,2113, -2115, 547,2115,2116, 295, 295,2117, 295,2118, 295, 295, 295,2119,2120,2121,2122, -2123,2124,2125,2126,2127, 160, 161, 162, 163,2128, 295,2129, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2130,2130,2130,2130,2130,2130, 727,2131,2132,2133,2134,2135,2136,2137,2138,2139, -2140,2140,2140,2140,2141,2142,2143,2142,2144,2145,2144,2144,2144,2146, 204,2147, -2148,2148,2148,2148,2148,2148,2148,2148,2149,2149,2149,2148,2149,2150,2151,2152, -2149,2149,2153,2153, 754,2154,2154,2155, 227,2156,2157, 227,2158, 227, 227, 227, - 227, 227, 227, 227, 733,2158,2159,2160,2161,2161,2161,2162,2161,2161,2163,2163, -2164, 770,2165,2165,2130,2154,2166,2167,2168,2169,2170,2171,2172,2173,2174,2166, -2174,2175,2138,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2187, -2132,2188,2189,2190,2191,2191,2191,2192,2193,2165,2194,2195,2196, 282,2197,1534, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,1716,1716,1716,1716,1716, -1544,1544,1544,1716,1536,2198,1538,1538,1547,2199,2200,2199,2201,2199,2201,2202, -2203,2204,2205, 814,2204, 814, 814, 816,2206,2204,2207, 814,2208,2209,1726,1725, -1724,2210,2211,1549,1550,2212,2212,1721,1724,1725,1725,2198,2213,2214,2214,2214, -1722,2215,2212,2215,2215,2198,1724,1726, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871,2216, 873, 874, 875, - 876, 877, 878,2217, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894,2218, 896, 897, 898, 899, 900,2219,2220, 903,2221, 905,2222,2223, -2224, 909,2225, 911, 912,2226,2227, 915, 916,2228,2229, 919, 920, 921, 922, 923, -2230, 925, 926, 927, 928, 929,2231, 931, 932, 933, 934, 935,2232,2233, 938,2234, - 940,2235, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966,2236, 968,2237, 970,2238, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 971, 972, 973, 974, - 975, 310, 976, 977, 978, 974,2239, 980,2240, 982,2241, 984,2242, 985,2243, 987, - 988,2244, 990, 325,2244, 325, 991,2244,2245,2246, 330, 993,2247,2248,2249, 997, - 998,2250,2251,1001,1002,1003, 340,1004,1005,1006,1007,1008,1009, 310,1010,1011, -2252, 429,1003, 430,1013,1014, 974,1015, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 0, 1, 2, 295, 295, 295, 5,2253, 295, 295,1395, 295,1396,1396,2254,1398, - 295, 295, 295, 295, 295, 295,2255,2255,2256,2256, 62,2256, 33, 33, 38, 38, -1427,2257,1408,1408, 96,1434, 34,1410, 260,1433, 35,1433, 62, 295,1393, 79, -1406,1407,2258, 44, 295, 295,1404,1404, 42, 45, 45,2259, 25,2260, 295, 103, - 295,1403, 295, 34, 36, 37, 35, 35, 72, 72, 295, 295,2261, 74, 295, 295, -1420,1418, 70, 70, 67, 68, 69,1399, 295, 295, 56, 295, 59, 59,1412, 295, - 295, 12, 260, 295, 10, 9,2262, 13, 12,1437, 295,1421,1422,1420,1420,1423, -2263, 116, 295, 295, 295,2264, 115,2265,2266,2267,1411, 123, 122,2265,2268,2265, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144,2269,1438, 147, 148,1439, 150, 151, 152, 153, 154, - 155, 156,2270, 158, 159, 160, 161, 162, 163,1440,1441, 166, 167, 168, 169,1442, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 0, 1, 2, 295, 295, 295, 5,2253, 295, 295,1395, 295,1396,1396,1396,1398, - 295, 295, 295, 295, 295, 295,2255,2255,2256,2256, 62,2256, 33, 33, 38, 38, -1427,1408,1408,1408, 96,1434, 34,1410, 260,1433, 35,1433, 62, 295,1393, 79, -1406,1407, 222, 44, 295, 295,1404,1404, 42, 45, 45,1401, 25, 27, 295, 103, - 295,1403, 295, 34, 36, 37, 35, 35, 72, 72, 295, 295,1419, 74, 295, 295, -1420,1418, 70, 70, 67, 68, 69,1399, 295, 295, 56, 295, 59, 59,1412, 295, - 295, 12, 260, 295, 10, 9,2262, 13, 12,1437, 295,1421,1422,1420,1420,1423, - 46, 116, 295, 295, 295, 115, 115,2265,2266,2267,1411, 123, 122,2265,2268,2265, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145,1438, 147, 148,1439, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163,1440,1441, 166, 167, 168, 169,1442, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,1554,2271, 182, 183,1555,2272,1556,1557,2273,1559, 188,2274,1560, -1561,1562,1563,1564,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571, 211,1572,1573, 214, 215, 216, 268,2275,2276, -2277,2277,2278,1575,1576,1577,1578, 225,1579,1580, 226,1581,2279,2280, 230, 254, - 232, 233, 234, 235,2281, 237, 238, 239,1584,1585,2282,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590,2283, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,1611,1612, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2284, - 295, 295, 295,2284,2285,2286,1614,1615,2287,2288,1618,1619,1620,1621,1622,1623, -1624,1625,1626,2289,2290,1629,1630,1631,2291,1633,2292,2293,2294,2295,1638,1639, -1640,1641,1642,1643,1644,1645,1646,1647,1648,2296,2297,1651,1652,1653,1654,1655, -1656,1657,2298,2299,2300,1661,1662,1663, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1492, 713,1904, 713,1905, 713, 717,1492, 598,2301,2301, 636,2302,2302,2302, 761, - 728, 728, 728, 730, 730, 730,1497,1497,1499,1499,1499,1499, 739, 739, 739, 739, -2303,1913,2304,2305,1913, 533,1914, 568, 678, 678, 747, 764, 739, 739, 749,1507, -2306,1916,2306,2307, 754, 212, 754, 755, 756, 757, 758, 759, 759,1512,1513,1919, - 762, 739, 739, 739, 762, 762, 764, 764,2308,2308,2308,2308, 666, 666, 769, 769, - 769,2309,2310, 664, 772, 772, 773,1929, 654, 654, 777, 778, 779,2311,2312,1522, -2313,2314,1711, 786, 788, 788, 788,2315, 786,2307, 790,2316,2316,2316, 666, 666, - 792, 834, 680, 796, 796, 680, 680, 797,2317,1531, 800,1533, 280,1913, 678,2318, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2319,2319,1537, 811, 811, 811,1539,2320,1539,1721,1542,1721,1542, -1537,2321,1537,1721,1721, 295,1721, 295,1542,2321, 295, 295,1537,1539,1537,1537, -1542,1537,1539, 811,2322,1721,1721,1721,1721,1721, 295,1721, 295, 295, 295, 295, -1721,1721,1721, 295, 295,1721, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1727,1728,1729,2323,1731,2324,1733,1734,1735,1736,1737,2325,1739,1740,2326,1742, -2327,1744,1745, 194,1746,1747,1748,2328,1750,1751,1752,1753,1754,1755,1756,2329, -1758,1759,1760,2330,1762,1763,1764,1765,2331,2332,2333,2334,2335,1771,1772,1773, -1774,1775,1776,1777,2336,2337,2338,1781,2339,2340,2341,2342, 228,1786,1787,1788, -1789,1790,1791,1792,1793,1794,1795,1796,2343,2344,1799,1800,1801,2345,2346, 245, -1803,1804,2347,2348,1807,2349,1809,1810,1811,1812,1813,2350,1815,1816,2351,1818, -2352,2353,2354,1822,2355,1824,2356,1826,1827,1828,1829,1830,1831,1832,1833,1834, -1835,1836,1837, 274,1838,1839,1840,2357, 278,1842,2358,2359,2360,2361,1847,2362, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1849,1849,1850,1851,1852,1853,1854,2363,1856,1857,1858,2364,1860, -1861,2365,1863,2366,2367,2366,2368,2369,1868,2370,1870,2366,1871,1872,1873,1874, -1875,1876,1877,1878,1879,2371,2372,2373,2374,2375,2376,1886,1887,1888,1889,1890, -1891,1892,2377,2378,2379,1896,1897,1898,1899,1900,1901,2380, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 2, 2, 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, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,2381, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -2382, 497,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2397,2398, 371,1388, 372, 373,2399, 631,1389,2400, 186,2401,2402, 379,1391,2403, -1906, 598,2404, 637,1397,1398,1929,1400, 531,2405, 26, 641, 28, 370, 30,2406, - 643,2407, 570, 644, 567, 34, 38, 33,1510, 645, 646, 42, 43,2408, 648, 649, -2409,2410, 652,2411,1408,1409,1410,2412,1518,1520, 656, 58,2413, 574,2414,2415, -1415,1416,1417,1418,2416, 68,1517,1515, 71,2417,1528, 74,1420,2418, 668,1423, - 79, 537, 248,1424, 533,1425,1426, 86, 530,1428, 670,1430,1431,1432, 256, 257, - 258, 671, 97,2419,1435,1436, 262, 263, 536,2420, 674,1437, 107, 108, 109, 110, - 678, 112, 113, 114, 115, 116, 680, 660, 119, 120, 279, 280, 281,2421, 125, 659, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2422, -2423,2424,2425, 127, 548, 549, 550, 551, 552, 132, 362, 134, 135, 136, 361, 138, - 139, 547, 141, 142, 143, 144,2426,1438, 291,2427,1439, 150, 367, 368, 292, 365, - 366, 156, 364, 158, 689,2428, 615, 162, 163,1440, 363,2429, 167, 168, 169,1442, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,1554, 181, 182, 183,1555, 185,1556,1557,1558,1559, 188, 189,1560, -1561,1562,1563,1564,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571, 211,1572,1573, 214, 215, 216, 217, 218, 219, - 220, 221,1574,1575,1576,1577,1578, 225,1579,1580, 226,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590, 252, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,1611,1612, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2430,2430,2431,2432,2433,2434,2435,2436,2437,2436,2438,2436,2439, -2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455, -2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471, -2472,2473,2474,2475,2476,2468,2477,2478, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1492, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295,2479,2479,2480, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295,2481, 213, 295, 295, 295, 295,2482,2483, -2484,2485, 295, 295, 295, 295, 295, 295,2486, 777, 295,2487,2488, 576, 295, 295, - 295, 295, 295, 295,2489,2490,2491, 664,2308,2308,2492, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2493, - 295, 295, 295,2494,2495, 295, 295, 295,2496,2497, 295,2498, 295,2499, 295,2500, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,1554, 181, 182, 183,1555, 185,1556,1557,1558,1559, 188, 189,1560, -1561,1562,1563,1564,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571, 211,1572,1573, 214, 215, 216, 217, 218, 219, - 220, 221,1574,1575,1576,1577,1578, 225,1579,1580, 226,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590, 252, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,1611,1612, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127,2286,1614,1615,1616,2288,1618,1619,1620,1621,1622,1623, -1624,1625,1626,2289,2290,1629,1630,1631,2291,1633,2292,2293,2294,2295,1638,1639, -1640,1641,1642,1643,1644,1645,1646,1647,1648,2296,2297,1651,1652,1653,1654,1655, -1656,1657,2298,2299,2300,1661,1662,1663, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 622, 179, 371,1388, 372, 373, 374, 375,1389, 377, 186,1390, 187, 379,1391,1392, -1393,1394,1395,1396,1397,1398,1399,1400,1401, 25, 26, 381, 28, 370, 30,1402, -1403, 33, 34, 35, 36, 382, 38, 33, 39, 40,1404, 42, 43, 44, 45, 46, - 222,1405,1406,1407,1408,1409,1410,1411, 55, 56,1412, 58, 59,1413,1414, 62, -1415,1416,1417,1418, 67, 68, 69, 70, 71, 72,1419, 74,1420,1421,1422,1423, - 79, 80, 81,1424, 83,1425,1426, 86,1427,1428,1429,1430,1431,1432, 256, 257, -1433, 96, 97,1434,1435,1436, 262, 263, 103, 104, 105,1437, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145,1438, 147, 148,1439, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163,1440,1441, 166, 167, 168, 169,1442, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2501,2502,2503,2504,2505,2506,2507, 730,2508,2509,2510,2511,2512,2513,2514,2515, -2516,2517,2518,2519,2520,2521,2522,2523, 639,2524,2525,1512,2526,2527,2527,2527, -2528,2529,2530,2531,2532,2532,2533,2534, 212,2535,2536, 295,2527,2537,2538,2483, -2539,2485,2527,2527,2527,2527,2527,2527,2540,2541,2542,2487,2543, 576, 575,1522, -2544,2527,2527,2527, 224,2545,2546,2547,2548,2308,2549,2527, 295,2550, 295, 295, - 295, 295, 295, 295,2551, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2552,2553, 295, 295, 295,2554, - 295, 295, 295, 677,2483, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2493, - 295,2555, 295,2556,2495,2557,2558,2559,2496,2497,2560,2498,2561,2499,2562,2500, -2563,2564,2565,2527, 295, 295,2566, 295, 295, 295, 295, 295,2570,2571, 295,2572, -2573, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1492, 713, 714,2574,2575,1666,2576,1492, 719,2577, 721,2578, 723, 724, 715, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734,1498, 736, 737,1670, 739, 739, 739, - 740,1672,2304,2305,1672, 533, 745, 568, 678, 746,1680, 748, 739, 739, 749, 750, -1686, 752,1686, 753, 754, 212, 754, 755, 756, 757, 758, 759,2579, 760, 204, 761, - 762, 739, 739, 739, 762, 762, 764, 765, 766, 766, 766, 766, 767, 768,2580,2580, -2580, 770, 771, 664, 772, 772, 773,1706,1690, 654, 777, 778, 779, 780, 781, 782, -2581, 784,2582,1712, 787, 788, 788, 789,1712, 753, 790, 780, 780, 780, 791, 791, - 792, 793, 680,2583, 796, 680, 680, 797, 798, 799, 800,1533, 802, 803,1534,1535, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1716,1536,1718,1538, 811,1537,1539, 814,1539,1721,1542, 818,1721, -1543,1544,1537, 295,1545,1546, 295, 295,1542, 295, 295, 295,2584,1539,1537,1722, -1542,1537,1539,1549,1550,1721,1721,1721,1724,1725, 295,1726, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 844, 845, 846, 847, 848, 849, 850, 851, 852,2585, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, - 876, 877, 878, 879, 880,2586, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, - 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, - 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956,2587, 958, 959, 960, 961, 962,2588,2589,2590,2591,2592,2593,2594,2595,2596, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2597,2598,2598,2599, -2600,2601,2602,2603, 127,2604,2605,2606, 979, 132,2607, 134,2608, 136,2609, 138, - 139,2610, 141,2611,2612,2613,2614,2612,2615,2612,2616,2617,2618,2619,2620,2621, -2622,2623,2624,2625,2626, 160,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636, -2637,2638, 173,2639,2640,2641,2642,1015, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2397,1492,2643,1904, 630, 713,2644,2645,2646, 295, 295, 295, 295, 295,2647, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2648,2649,2650, 295, 295, 295, -2651,2651, 739,2652,2653,2654,2655,2656,2657,2535,2658,2659,2660,2661, 757,2662, -2663, 651,2664,2665,2666,2667,2668,2669,2670,2671, 656,2672, 779, 575,1522, 576, - 295,2673,2674,2675, 747, 224,2546, 664,2316,2308, 241,2676,2677, 295, 666, 295, - 79, 295, 295,2678,2679, 295, 295, 295,2680, 295, 295, 295, 91,2681,2682, 94, - 295, 295, 295, 295, 295,2683, 295, 295, 295, 295, 295, 295, 295, 295,2684, 295, - 295, 295, 295, 295,1982, 295, 295, 295, 295, 295,2685, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295,2686,2687,2688,2689,2690,2691, 606,2692, 607, -2693, 608,2694, 609,2695, 610,2696, 612,2697,2698,2699, 289,2700, 295,2701, 295, - 295,2702, 295, 295,2703,2702,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713, -2714,2715,2716,2717,2718,2719,2720, 295,2721,2722, 295,2723,2724,2725,2726,2727, -2698,2728,2729,2730,2721,2731,2732,2733,2734,2735, 295,2736, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295,2737,2738,2739, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,2740,2741, 181, 182, 183,2742,2743,2744, 186,1558,2745,2746,2747, 190, - 191, 192,2748,1564,2749,2750, 196, 197, 198, 199, 200,2751, 202,2752,2753,2754, -2755,2756,2757,2758,2759,2760, 210,2761,1572,2762,2763, 215,2764,2765, 218,2766, -2767,2768,1574, 50,2769,2770,1578,2771,2772,2773,2774,2775,2776,2777, 59,2778, -2779,2780,2781, 235, 236,2782,2783,2784,2785,2786, 240,2787, 242,2788, 244,1587, -2789,2790,2791,1589, 249,2792,2793,2794, 252,2795,2796, 255,2797,2798,2799,1594, -2800,2801,1596,2802,1598,2803,2804,1601, 264, 265,2805,2806, 268, 269, 270, 271, -1602, 272, 273,2807,2808,2809, 276,2810,2811,2812,2813,2814,2815,2816,2817,2818, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831, -2832,2833,2834,2835,2836,2837,2838,2839, 147,2840,2841,2842, 151, 152, 153, 154, - 155, 156, 157,2843,2844,2845,2846, 162, 163,2847,2848,2849, 167, 168,2850,1442, -2851,2852,2853, 174,2854, 176,2855,2856, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 203,1566,2857,2858, 181, 182, 183,2859,2860,2861,1557,1558,1559, 188, 189,1560, -1561,1562,2862,1564,1565, 195, 196, 197,2861, 199, 200,2863,2864, 203,2865,2866, -2860,2867,2868,1568,1569,2869,2870, 207,1572,1573, 214, 215, 216, 217, 218,2871, - 220, 221,2872,1575,1576,1577,1578, 225,1579,1580, 226,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,2873, 242, 243, 244,2874, - 246, 247,1588,1589, 249,2875,2876,2877,2878, 253, 254, 255,1591,1592,1593,2879, -1595, 259,1596,2880,1598,1599,1600,1601, 264, 265, 266,2881, 268, 108, 270,2859, -2882,2883, 273,1603,1604,1605, 276,2884,2885,2886, 295,1610,2887,1612,2888, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2889,2889, 128, 129, 130,2890, 132,2891, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145,1438, 147, 148,1439, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163,1440,1441, 166, 167, 168, 169,1442, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1727,1728,1729,2323,1731,2324,1733,1734,1735,1736,1737,2325,1739,1740,2326,1742, -2327,1744,1745, 194,1746,1747,1748,2328,1750,1751,1752,1753,1754,1755,1756,2329, -1758,1759,1760,2330,1762,1763,1764,1765,2892,2332,2333,2334,2335,1771,1772,1773, -1774,1775,1776,1777,2336,2337,2338,1781,2339,2340,2341,2342, 228,1786,1787,1788, -1789,1790,1791,1792,1793,1794,1795,1796,2343,2344,1799,1800,1801,2345,2892, 245, -1803,1804,2347,2348,1807,2349,1809,1810,1811,1812,1813,2350,1815,1816,2351,1818, -2352,2353,2354,1822,2355,1824,2356,1826,1827,1828,1829,1830,1831,1832,1833,1834, -1835,1836,1837, 274,1838,1839,1840,2357, 278,1842,2358,2359,2360,2361,1847,2362, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1849,1849,1850,1851,1852,1853,1854,2363,1856,1857,1858,2364,1860, -1861,2365,1863,2366,2367,2366,2368,2369,1868,2370,1870,2366,1871,1872,1873,1874, -1875,1876,1877,1878,1879,2371,2372,2373,2374,2375,2376,1886,1887,1888,1889,1890, -1891,1892,2377,2378,2379,1896,1897,1898,1899,1900,1901,2380, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908, -2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924, -2925,2926,2927,2928, 209,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939, -2940,2941,2942,2940,2943,2944,2945,2946,2947,2948,2949,2950,2951,2952,2953, 437, -2954,2955,2956,2957,2958,2959,2960,2961,2962,2306,2963,2964,2965,2550,2966,2967, -2968,2969,2554,2970,2489,2971,2972,2973, 657, 575,2974,2975,2976, 779,2977,2978, -2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2553,2989,2990,2991,2992,2993, -2994,2995, 680, 796,2996, 797,2662,2997,2998,2999,2514,3000,3001,1913,3002,3003, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,1219,1219, 308, 394, 395, 396, 397, 398, 399, 398, 400, 401, 402, - 403, 404, 405, 406, 404, 406, 407, 404, 408, 404, 330, 409, 410, 411, 412, 413, - 414, 415, 416,1220,1221, 419, 420, 341, 342, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 419, 430, 351, 431, 308, 432, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2501,2502,2503,2504,2505,2506,2507, 730,2508,2509,2510,2511,2512,2513,2514,2515, -2516,2517,2518,2519,2520,2521,2522,2523, 639,2524,2525,1512,2526,2527,2527,2527, -2528,2529,2530,2531,2532,2954,2533,2534, 212, 213,2536, 295,2527,2537,2482,2483, -3005,2485,2527,2527,2527,2527,2527,2527,3006,2541,3007,2487,3008, 576, 575,1522, -2544,2527,2527,2527, 224,2545,2546,2547,2548,2308,2549, 241, 295,2550, 295, 295, -2304,3009, 295, 295,2551, 295, 295,3010, 295, 295,3010, 295, 295, 295, 295, 295, - 295, 295, 295,2898, 295, 295, 295, 295, 295, 295,2552,2553, 295, 295, 295,2554, - 295, 295, 295, 677,2483, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2493, - 295,2555, 295,2556,2495,2557,2558,2559,2496,2497,2560,2498,2561,2499,2562,2500, -2563,3011,2565,2527, 295, 295,2566, 295, 295, 295, 295, 295,3012,3013,3014,3015, -3016,3015,3016, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1492, 713,1904, 713,1905, 713, 717,1492, 598,1493,1493,1906,1907,1907,1907, 761, - 728, 728, 728, 730, 730, 730,1497,1497,1499,1499,1499,1499, 739, 739, 739, 739, -1912,1913,1501,1502,1913, 533,1914,1503, 678, 678,1504, 764, 739, 739,1506,1507, -3017,1916,3017,2307,1509,1510,1509,1511, 756, 757, 758, 759, 759,1512,1513,1919, - 762, 739, 739, 739, 762, 762, 764, 764,2417,2417,2417,2417,1528,1528, 769, 769, - 769,3018,2310,1515,1516,1516,1517,1929,1518,1518,1519,1520, 779,2311,2312,1522, -1935,3019,1523, 786,1525,1525,1525,2315, 786,2307,1527,3020,3020,3020,1528,1528, - 792, 834, 680, 796, 796, 680, 680,1529,1530,1531,1532,1533, 280,1913, 678,3021, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2319,2319,1537, 811, 811, 811,1539,3022,1539,1541,1542,1541,1542, -1537,3023,1537,1541, 295, 295,1541, 295,1542, 295, 295, 295,1537,1539,1537,1537, -1542,1537,1539, 811,2322,1541,1541,1541,1541,1541, 295,1541, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3024,3024,3024,3025,3026,3027,3028,3029,3030,3031,3032,1906,3033,3034,3035,3036, -2006,2006,2006,2007,2007,2007,2008,2009,3037,3038,1499,3039, 739, 739, 739, 739, -3040,2017,2018,3041,2020, 533,2022,1503,2024,3042,1504,2027, 739, 739,1506,2031, -3043,2033,3044,2035,1509,3045,1509,3046,3047, 45, 45,3048,3049,3050,3051,3052, -2046, 739, 739, 739, 762, 762,2051,2051,2052,2053,2053,2054,2055,1528,3053,3054, -3055,3056,2061,2062,2063,2064,2065,1929,2067,2067,3057,3057,2071,2071,3058,1522, -1935,2075,2075, 786,1525,1525,1525,2315, 786,2307,1527,2083,3020,3020,1528,1528, -3059,3060,3061,3062,3063, 318, 680,3063, 318,3064,3065,1533,3066,3067,3068,3021, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 293,3069,3070,3071,3072,3073,3074,3075,3076,2112,3077,2114,3078, -3079, 547,3080,3081, 295, 295,2117, 295, 295, 295, 295, 295,2119,3082,3083,3084, -3085, 295, 295, 295, 295,3086,3087, 295, 295, 295, 295,2129, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,1398, -2006,2006,2006,2007,2007,2007,2008,2009,3088,2011,2012,2013, 34,2014, 33,2015, -2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031, -2032,2033,2034,2035,2036,2037,2038,2039,2040, 45, 45,2041,2042,2043,2044,2045, -2046, 739,2047,2048,2049,2050,2051,2051,2052,2053,2053,2054,2055,2056,2057,2058, -2059,2060,2061,2062,2063,2064,2065,2066,3089,2068,2069,2070,3090,3091,2072,2073, -2074,2075,2076,2077,2078,2079,2080, 275,2081,2082,1527,2083,2084,2085,2086,2087, -2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099, 122,2100,2101,2102, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2104,2105,2106,2107,2108,2109,2110,2111,2110,2112,2113,2114,2113, -2115, 547,2115,2116, 295, 295,2117, 295,2118, 295, 295, 295,2119,2120,2121,2122, -2123,2124,2125,2126,2127, 160, 161, 162, 163,2128, 295,2129, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -2501,2502,2503,2504,2505,2506,2507, 730,2508,2509,2510,2511,2512,2513,2514,2515, -2516,2517,2518,2519,2520,2521,2522,2523, 639,2524,2525,1512,2526,2527,2527,2527, -2528,2529,2530,2531,2532,2532,2533,2534, 212, 213,2536, 295,2527,2537,2482,2483, -3005,2485,2527,2527,2527,2527,2527,2527,3006,2541,3007,2487,3008, 576, 575,1522, -2544,2527,2527,2527, 224,2545,2546,2547,2548,2308,2549,2527, 295,2550, 295, 295, - 295, 295, 295, 295,2551, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2552,2553, 295, 295, 295,2554, - 295, 295, 295, 677,2483, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,2493, - 295,2555, 295,3092,2495,2557,2558,2559,2496,2497,2562,2498,2561,2499,2562,2500, -2563,3011,2565,2527, 295, 295,2566, 295, 295, 295, 295, 295,2570,2571, 295,2572, -3093, 295, 295, 295, 295, 295,3094, 295, 295,3095,3096, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295,3097, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,3101, 181, 182, 183,3102, 185,1556,1557,3103,1559, 188, 189,1560, -1561,1562, 193,1564,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571, 211,1572,1573, 214, 215, 216, 217, 218, 219, - 220, 221,1574,1575,1576,1577,1578, 225,1579,1580,3100,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590, 252, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,3104,3105, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127,3107,3122,3126, 316,3123,3121,3124,3107,3125,3107,3127,3107, -3107, 329,3107,3108,3143,3109,3128,3129,3099,3144,1634,3110,3130,3131,3117,3119, -3136,3132,3133,3134,3137,3115,3138,3135,3098, 343, 344,3112,3113,3113,3142,3139, -3140,3141,3116,3106,3111,3114,3118,3120, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,3101, 181, 182, 183,3102, 185,1556,1557,3103,1559, 188, 189,1560, -1561,1562, 193,1564,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571, 211,1572,1573, 214, 215, 216, 217, 218, 219, - 220, 221,1574,1575,1576,1577,1578, 225,1579,1580,3100,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590, 252, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,3104,3105, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,2430,2430,3149,3147,3148,3147,3145,3145,3145,3145,3145,3145,3145, -3145,3145,3145,3145,3145,3145,3150,3151,3173, 329,3152, 329,3153,3154,3155,3156, -3157,3158,3159,3160,3161, 349,3162,3163,3164,3165,3166,3148,3148,3148,3167,3168, -3169,3170, 349,3171,3172,3148,3155,3156, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189, -3190,3191,3192,3193,3194,3195,3196,3196,3197,3198,3199,3200,3201,3202,3203,3204, -3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220, -3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3196,3232,3233,3234,3235, -3196,3236,3237,3238,3196,3239,3196,3240,3196,3241,3196,3242,3196,3243,3244,3245, -3246,3247,3248,3196,3249,3250,3196,3251,3252,3253,3254,3255,3196,3196,3256,3196, -3257,3196,3258,3196,3259,3260,3196,3261,3196,3196,3262,3196,3196,3196,3196,3196, -3196,3196,3196,3263,3196,3196,3196,3196,3196,3196,3264,3265,3196,3196,3196,3196, -3266,3267, 285,3268,3269, 287, 288,3270,3271,3271,3271,3271,3271,3271,3271,3271, -3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271, -3271,3271,3271,3272,3273,3271,3274,3271,3275,3276,3277,3278,3279,3280,3281,3282, -3282,3283,3280,3284,3271,3271,3285,3286,3271,3271,3271,3271,3271,3271,3271,3271, -3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271, -3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271, -3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271, -3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271,3271, - }, - { -3287,3288, 466,3289, 713,3196,3290, 467,3291, 632,3292,3293,3294,3295,3296,3297, -3298, 598,3299,3300,3301,3302,3303,3304,1512,3305,3294,3306, 759, 437, 437,3307, -3308,3309, 439,3310, 440,3311, 442, 441,3312,3313,3314,3315,2306,3316,3317, 582, -3318,3319, 452,3320,3321,3290,3322,3323,3324, 778,3325,2312, 779,3326,3327,3328, -3329, 769,3330,3331,3332,3333, 663, 664,3334,2316,3335,3336,3337,1299,3338,3339, -3340,3341,3342,3343,3344,3345,3346, 442,3347,3348,3349,3304,3350,1669,3351,3352, -3353,3354,3355,3356,3353, 261,3357,3358,1919,2420,3359,3360, 676,3361,3362,3363, -3364,3365,3366,3367, 677,3368, 677,3369,3370, 677,3371, 455,3372,2421,3373, 465, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3374,3374,3375,3376,3377,3378,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387, -3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403, -3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419, -3420,3421,3422,3423,3424,3425,3426,3427,3425,3428,3429,3430,3431,3432,3433,3434, -3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3335,3447,3448,3449, -3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3462,3463,3464, -3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480, -3481,3482,3481,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 0, 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, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,3496, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -1551,1552,1553,1554, 181, 182, 183,1555, 185,1556,3497,3498,3499, 188, 189,1560, -1561,1562,1563,3500,1565, 195, 196, 197, 198, 199, 200, 201, 202,1566,1567, 205, - 206, 207, 208,1568,1569,1570,1571,3501,1572,1573, 214, 215, 216, 217, 218, 219, - 220, 221,1574,1575,1576,1577,1578, 225,1579,1580, 226,1581,1582, 229, 230, 231, - 232, 233, 234, 235,1583, 237, 238, 239,1584,1585, 240,1586, 242, 243, 244,1587, - 246, 247,1588,1589, 249, 250, 251,1590, 252, 253, 254, 255,1591,1592,1593,1594, -1595, 259,1596,1597,1598,1599,1600,1601, 264, 265, 266, 267, 268, 269, 270, 271, -1602, 272, 273,1603,1604,1605, 276,1606,1607, 295, 295,1610,3502,3503, 295, 284, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127,3504,1613,1614,3505,1616,3506,1618,3507,1620,3508,1622,3509, -3510,1625,3511,3512,1628,1629,1630,1631,3513,1633,1634,3514,1636,1637,1638,1639, -1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655, -1656,1657,1658,1659,1660,1661,1662,1663, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530, -3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546, -3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562, -3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578, -3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594, -3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610, -3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626, -3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656, -3657,3658,3659,3660,3658,3661,3662,3658,3663,3658,3664,3665,3666,3667,3668,3669, -3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685, -3686,3687, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3287,1492,3688,3289, 713,3689,3690, 730,1914,3691,1533,3293,3692,3693,3694,3695, -3298,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706, 759, 437,3707,3708, -3308,3709,3710,3711,3712,3713, 442,3714,3715,3716,3717,3718,3719,3720,3721,3722, -3723,2306,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737, -3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753, -3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769, -3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785, -3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3371,3796,3797,2421,3798,3799, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656, -3657,3658,3659,3660,3658,3661,3662,3658,3663,3658,3664,3665,3666,3667,3668,3669, -3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685, -3686,3687, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815, -3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831, -3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847, -3840,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862, -3863,3864,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877, -3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893, -3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909, -3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939, -3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955, -3956,3957,3958,3959,3960,3936,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970, -3971,3972,3973, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815, -3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3974,3975,3831, -3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3976,3845,3846,3847, -3840,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3977,3860,3978,3862, -3863,3864,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877, -3979,3879,3980,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893, -3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3981,3982,3983,3907,3908,3909, -3910,3911,3912,3913,3984,3915,3916,3985,3918,3919,3920,3921,3922,3923,3924,3925, -3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986, -3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3987,3987,3987,3987,3988, -3987,3987,3987,3927,3928,3989,3930,3931,3932,3990,3934,3935,3936,3937,3938,3939, -3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955, -3956,3957,3958,3959,3960,3936,3961,3962,3963,3991,3992,3966,3993,3994,3969,3970, -3971,3972,3973,3987,3987,3987,3987,3987,3995,3986,3996,3996,3996,3996,3996,3996, -3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996, -3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996, - }, - { -1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237, -1238,1239,1240,1241,1242,1243,1244,1245,3997,3998,3999,1249,1250,1376,1377,1253, -1378,1255,1256,4000,1380,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,4001, -1270,4002,4003,4004,4005,1275,1276,1277,1278,1279,1381,1281,1282,1283,1284,1285, -1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301, -1302,1303,1304,1305,4006,1307,1308,1309,1309,1310,1311,1312,1313,1314,1315,1316, -1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332, -1333,1334,1335,1336,1337,4007,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 312,1349,1350,4008,1352,4009,1354,4010,1355, 320,1356, 321,1357, -1358,1359,1360,1361,1362,1363,1364,1383,1366,1359,1384,1361, 332, 333, 334, 335, - 336,1368,1369, 338, 339, 320,1370, 295, 295, 295, 295,1372,1373,1374,1375, 295, - 347, 348, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -4011,4012,4013,4014,4015,4016, 6, 7,4017, 9, 10,4018, 12, 13, 14, 15, -4019,4020,4021,4022, 20,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033, - 32,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047, 46, -4048,4049,4050,4051,4052,4053,4054, 54,4055,4056,4057,4058,4059,4060,4061,4062, -4063,4064,4065, 66,4066,4067, 69,4068,4069,4070,4071, 74, 75, 76, 77, 78, -4072,4073,4074, 82,4075,4076, 85,4077,4078, 88,4079,4080,4081,4082,4083,4084, - 95, 96, 97,4085,4086,4087,4088, 102, 103,4089, 105, 106, 107,4090,4091,4092, -4093, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,4094,4095,4096, 125,4097, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656, -3657,3658,3659,3660,3658,3661,3662,3658,3663,3658,3664,3665,3666,3667,3668,3669, -3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685, -3686,3687, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3287,3288, 466,3289, 713,3196,3290, 467,3291, 632,3292,3293,3294,3295,4098,3297, -3298, 598,4099,3300,3301,3302,3303,3304,4100,4101,4102,4103, 759, 437, 438,3307, -3308,3309, 439,3310, 440,4104, 442,4105,3312,3313,3314,3315,2306,4106,3317, 582, -3318,3319, 452,3320,3321,4107,3322,3323,3324, 778,3325,2312, 779,3326,3327,3328, -3329, 769,3330,3331,3332,3333, 663, 664,3334,2316,3335,3336,3337,1299,3338,3339, -3340,3341,4108,3343,3344,3345,4109, 442,3347,3348,3349,3304,3350,1669,3351,3352, -3353,3354,3355,3356,4110, 261,3357,3358,1919,2420,3359,3360, 676,3361,3362,3363, -3364,4111,3366,3367,4112,4113, 680,3369,3370, 462,3371, 455,3372,2421,3373, 465, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,3644,3645,4114,3649,3648,4115,4116,4117,4118,4119,4120,4121,4122, -4123,3658,4124,3660,3658,3661,3662,3658,3663,3658,3664,2617,3666,3667,3668,3669, -3670,3671,3672,3673,3674, 160,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685, -3686,3687, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 622, 179, 371, 180, 372, 373, 374, 375, 376, 377, 186, 378, 187, 379, 380, 190, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 381, 28, 370, 30, 31, - 32, 33, 34, 35, 36, 382, 38, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 383, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127,4125,4126,4127, 141,4128,4129,4130,4129,4131,4129,4132,4133, -4134,1954,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148, -4149,4150,4151,4152,4153,4154, 163,4155, 625,4156,4157,4158,4159,4160,4161,4162, -4163,4164,4165,4166,4167,4168,4169, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - }, - { -4170,4171,1553,1554, 181,4172,4173,1555, 185,4174,3497,4175,1559, 188,4176,4177, -4178,1562,4179,4180,1565, 195,4181, 197,4182,4183, 200, 201, 28,1566,1567,4184, -4185,4186,4187,4188,4189,4190,4191,4192,1572,1573, 214, 215, 216, 217, 218, 219, - 220,4193,4194,1575,1576,3852,1578,4195,1579,1580,4196,4197,4198,4199,4200,4201, - 232, 233, 234, 235,4202, 237, 238,4203,1584,1585, 240,1586,4204, 243, 244,1587, - 246,4205,4206,1589, 249, 250, 251,1590, 252,4207, 254,3889,4208,4209,4210,4211, -1595,4212,1596,1597,4213,1599,1600,1601,4214,4215,4216, 267,4217,4218, 270,4219, -4220,4221,4222,1603,4223,4224, 276,4225,4226,4227,4228,1610,4229,4230,4231, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,1662,1663, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,4232,4233,4234,4235,4236, -4237,4238,4239,4240,1470,1613,4241,1615,4242,1475,4243,1477,4244,1479,4245,1481, -1482,4246,1484,4247,4248,4249,1630,4250,2291,4251,1634,3514,1636,1637,1638,1639, -1640,4252,4253,1643,1644, 320,4254,4255, 342,4256,4257,4258,4259,1374,4260,4261, -1656,4262,4263,1659,1660,4264,1662,1663, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { - 295, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871,2216, 873, 874, 875, - 876, 877, 878,2217, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894,2218, 896, 897, 898, 899, 900,2219,2220, 903,2221, 905,2222,2223, -2224, 909,2225, 911, 912,2226,2227, 915, 916,2228,2229, 919, 920, 921, 922, 923, -2230, 925, 926, 927, 928, 929, 295, 931, 932, 933, 934, 935,2232,2233, 938,2234, - 940, 295, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966,4267, 968,4268, 295, 295, -4269,4270,4271,4272,4273,4274,4275, 978,4276,4277,4278,4279,4280,4281,4282,4283, -4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294, 975, 971, 972, 973, 974, - 975, 310, 976, 977, 978, 974,2239, 980,2240, 982,2241, 984,2242, 985,2243, 987, - 988,2244, 990, 325,2244, 325, 991,2244,2245,2246, 330, 993,2247,2248,2249, 997, - 998,2250,2251,1001,1002,1003, 340,1004,1005,1006,1007,1008,1009, 310,1010,1011, -2252, 429,1003, 430,1013,1014, 974,1015, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -3287,4296,3196,3196,4297,3196,3196,3196,3196,3196,3196, 378,3196,3196,3694,3196, -3196,4298,3196,4299,4300,4301,3196,3196,3196, 370,3196,4302,4303,4304,4305,4306, -3196,4307,4308,4309,3310,3310,4310, 442,4311,3196,3196,4312,4313,4312, 676,4314, -4315,3196,3196,4316, 51,3196,3196,3196,4317,3324,4318,3196, 59,4319,4317, 62, -3196,4320,4320,4321, 67,3196, 664,4322,3196,2316,3196,4323, 70,3196,4324, 78, -4325,4326, 81,3196,3196,3196,3196,3196,3196,3196,3196, 90,3196,4327, 93,4328, -3196,3196,3196,3196,3196,3196,3196,4329,3196,3196,3196,3196,3196,3196,3196,3196, -3196,3196,3196,3196,3196,4112,3196,4330,3196,3196,3196,3196,3196,3196,3196,3196, -3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196, -3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196, -3196,3196,3196,4331,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342, -4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,3196,3196,4355, 154, -4356,4357,4358,3196,3196, 160,3196,3196,3196,4359,4360,4361,4362,4363,4364,3196, -3196,4365, 160,4366,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196, -3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196, -3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196,3196, - }, - { -3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815, -3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831, -3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847, -3840,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862, -3863,3864,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877, -3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893, -3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909, -3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,4367,3921,3922,3923,3924,3925, -3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986, -3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3986,3987,3987,3987,3987,3987, -3987,3987,3987,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939, -3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955, -3956,3957,3958,3959,3960,3936,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970, -3971,3972,3973,3987,3987,3987,3987,3987,3995,3986,3996,3996,3996,3996,3996,3996, -3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996, -3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996,3996, - }, - { -4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383, -4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399, -4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415, -4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4197,4427,4428,4429,4430, -4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4204,4443,4444,4445, -4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461, -4462,4463,4464,4465,4466,4467,4468,4469,4470,4215,4216,4471,4472,4218,4473,4474, -4475,4476,4222,4477,4478,4224,4479,4480,4226,4481,4228,4482,4483,4484,4485,4486, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,4232,4233,4234,4235,4487, -4237,4238,4239,4488,4489,4490,4491,4492,4242,4493,4494,4495,4244,4496,4245,4497, -4498,4499,4500,4501,4248,4502,4503,4250,4504,4505,4506,4507,4508,4509,4510,4511, -4512,4252,4253,4513,4514, 320,4515,4516,4517,4256,4257,4258,4259,1374,4260,4261, -4518,4519,4263,4520,4521,4264,4522,4523, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -4524,4525,4526,4527,4525,4528,4529,4530,4531,4532,4533,4535,4536,4537,4538,4539, -4540,4542,4544,4537,4546,4547,4548,4549,4550,4551,4552, 295, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 33, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 127,4541, 128,4543, 130, 131, 132,4545, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144,4534, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, - { -4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,3295,4563,4567, -3298,4568,4569,3298,4570,4571,4571,4571, 868, 869, 870,4572,4573,4574,4575,4576, -4577,4578,4579,4579,4580,4577,4581,4582,3842,4583,4584,4584,4585,4586,4587,4588, -4589,4590,4591,4591,4592,4107,3322,4593,4594,4595,4596,4597,4598,4594,4594,4599, -3329, 769,3330,3331,4600,4601,4602,4603,4604,4605,4606,4607,4608,4605,1300,4609, -4610,4611,4605,4570,4612,4594,4613,4614,3347,4615,4616,4617,4618,1314,4619,4620, -4621,4622,4623,4616,4616,1322,4624,4625,4626,4627,4628,4627,3295,4629,3842,4630, -4631,1334,4631,4632,4633,4634, 792,4635,1341,1342,1343,1344,4636,4637,4638,1348, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295,4639,4639,4640,4641,4640,4642,4643,4644,4645,4646,4647,4648,4649, -4650,4651,4652,4653,4654,4655,4656,4657,4658,4651,4659,4660,4661,4662,4663,4664, -4665,4666,4667,4668,4669,4670,4671,4668,4669,4670,4672,4673,4674,4675,1375, 295, -4676,4677, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - }, -}; - -const AdlBankSetup adlbanksetup[75] = -{ - {0, 1, 1, 0, 0}, //Bank 0, AIL (Star Control 3, Albion, Empire 2, etc.) - {0, 1, 1, 0, 0}, //Bank 1, Bisqwit (selection of 4op and 2op) - {0, 0, 0, 0, 0}, //Bank 2, HMI (Descent, Asterix) - {0, 0, 0, 0, 0}, //Bank 3, HMI (Descent:: Int) - {0, 0, 0, 0, 0}, //Bank 4, HMI (Descent:: Ham) - {0, 0, 0, 0, 0}, //Bank 5, HMI (Descent:: Rick) - {0, 0, 0, 0, 0}, //Bank 6, HMI (Descent 2) - {0, 0, 0, 0, 0}, //Bank 7, HMI (Normality) - {0, 0, 0, 0, 0}, //Bank 8, HMI (Shattered Steel) - {3, 0, 0, 0, 0}, //Bank 9, HMI (Theme Park) - {0, 0, 0, 0, 0}, //Bank 10, HMI (3d Table Sports, Battle Arena Toshinden) - {0, 0, 0, 0, 0}, //Bank 11, HMI (Aces of the Deep) - {0, 0, 0, 0, 0}, //Bank 12, HMI (Earthsiege) - {0, 0, 0, 0, 0}, //Bank 13, HMI (Anvil of Dawn) - {2, 0, 0, 0, 0}, //Bank 14, DMX (Doom 2) - {2, 0, 0, 0, 0}, //Bank 15, DMX (Hexen, Heretic) - {2, 0, 0, 0, 0}, //Bank 16, DMX (DOOM, MUS Play) - {0, 1, 1, 0, 0}, //Bank 17, AIL (Discworld, Grandest Fleet, etc.) - {0, 1, 1, 0, 0}, //Bank 18, AIL (Warcraft 2) - {0, 1, 1, 0, 0}, //Bank 19, AIL (Syndicate) - {0, 1, 1, 0, 0}, //Bank 20, AIL (Guilty, Orion Conspiracy, TNSFC ::4op) - {0, 1, 1, 0, 0}, //Bank 21, AIL (Magic Carpet 2) - {0, 1, 1, 0, 0}, //Bank 22, AIL (Nemesis) - {0, 1, 1, 0, 0}, //Bank 23, AIL (Jagged Alliance) - {0, 1, 1, 0, 0}, //Bank 24, AIL (When Two Worlds War :MISS-INS:) - {0, 1, 1, 0, 0}, //Bank 25, AIL (Bards Tale Construction :MISS-INS:) - {0, 1, 1, 0, 0}, //Bank 26, AIL (Return to Zork) - {0, 1, 1, 0, 0}, //Bank 27, AIL (Theme Hospital) - {0, 1, 1, 0, 0}, //Bank 28, AIL (National Hockey League PA) - {0, 1, 1, 0, 0}, //Bank 29, AIL (Inherit The Earth) - {0, 1, 1, 0, 0}, //Bank 30, AIL (Inherit The Earth, file two) - {0, 1, 1, 0, 0}, //Bank 31, AIL (Little Big Adventure :: 4op) - {0, 1, 1, 0, 0}, //Bank 32, AIL (Wreckin Crew) - {0, 1, 1, 0, 0}, //Bank 33, AIL (Death Gate) - {0, 1, 1, 0, 0}, //Bank 34, AIL (FIFA International Soccer) - {0, 1, 1, 0, 0}, //Bank 35, AIL (Starship Invasion) - {0, 1, 1, 0, 0}, //Bank 36, AIL (Super Street Fighter 2 :4op:) - {0, 1, 1, 0, 0}, //Bank 37, AIL (Lords of the Realm :MISS-INS:) - {0, 1, 1, 0, 0}, //Bank 38, AIL (SimFarm, SimHealth :: 4op) - {0, 1, 1, 0, 0}, //Bank 39, AIL (SimFarm, Settlers, Serf City) - {0, 1, 1, 0, 0}, //Bank 40, AIL (Caesar 2, :p4op::MISS-INS:) - {0, 1, 1, 0, 0}, //Bank 41, AIL (Syndicate Wars) - {0, 1, 1, 0, 0}, //Bank 42, AIL (Bubble Bobble Feat. Rainbow Islands, Z) - {0, 1, 1, 0, 0}, //Bank 43, AIL (Warcraft) - {0, 1, 1, 0, 0}, //Bank 44, AIL (Terra Nova Strike Force Centuri :p4op:) - {0, 1, 1, 0, 0}, //Bank 45, AIL (System Shock :p4op:) - {0, 1, 1, 0, 0}, //Bank 46, AIL (Advanced Civilization) - {0, 1, 1, 0, 0}, //Bank 47, AIL (Battle Chess 4000 :p4op:) - {0, 1, 1, 0, 0}, //Bank 48, AIL (Ultimate Soccer Manager :p4op:) - {0, 1, 1, 0, 0}, //Bank 49, AIL (Air Bucks, Blue And The Gray, etc) - {0, 1, 1, 0, 0}, //Bank 50, AIL (Ultima Underworld 2) - {0, 1, 1, 0, 0}, //Bank 51, AIL (Kasparov's Gambit) - {0, 1, 1, 0, 0}, //Bank 52, AIL (High Seas Trader :MISS-INS:) - {0, 0, 0, 0, 0}, //Bank 53, AIL (Master of Magic, :4op: std percussion) - {0, 0, 0, 0, 0}, //Bank 54, AIL (Master of Magic, :4op: orchestral percussion) - {0, 0, 0, 0, 0}, //Bank 55, SB (Action Soccer) - {0, 0, 0, 0, 0}, //Bank 56, SB (3d Cyberpuck :: melodic only) - {0, 0, 0, 0, 0}, //Bank 57, SB (Simon the Sorcerer :: melodic only) - {4, 1, 1, 0, 0}, //Bank 58, OP3 (The Fat Man 2op set) - {0, 1, 1, 0, 0}, //Bank 59, OP3 (The Fat Man 4op set) - {4, 1, 1, 0, 0}, //Bank 60, OP3 (JungleVision 2op set :: melodic only) - {4, 1, 1, 0, 0}, //Bank 61, OP3 (Wallace 2op set, Nitemare 3D :: melodic only) - {3, 0, 0, 0, 0}, //Bank 62, TMB (Duke Nukem 3D) - {3, 0, 0, 0, 0}, //Bank 63, TMB (Shadow Warrior) - {2, 0, 0, 0, 0}, //Bank 64, DMX (Raptor) - {3, 0, 0, 0, 0}, //Bank 65, OP3 (Modded GMOPL by Wohlstand) - {3, 0, 0, 0, 0}, //Bank 66, SB (Jamie O'Connell's bank) - {3, 0, 0, 0, 0}, //Bank 67, TMB (Default bank of Apogee Sound System) - {0, 1, 1, 0, 0}, //Bank 68, WOPL (4op bank by James Alan Nguyen and Wohlstand) - {3, 0, 0, 0, 0}, //Bank 69, TMB (Blood) - {3, 0, 0, 0, 0}, //Bank 70, TMB (Lee) - {3, 0, 0, 0, 0}, //Bank 71, TMB (Nam) - {0, 0, 0, 0, 0}, //Bank 72, WOPL (DMXOPL3 bank by Sneakernets) - {1, 0, 0, 0, 0}, //Bank 73, EA (Cartooners) - {0, 0, 1, 0, 0} //Bank 74, WOPL (Apogee IMF 90-ish) -}; diff --git a/thirdparty/adlmidi/adldata.hh b/thirdparty/adlmidi/adldata.hh deleted file mode 100644 index 93d4144..0000000 --- a/thirdparty/adlmidi/adldata.hh +++ /dev/null @@ -1,138 +0,0 @@ -/* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation - * - * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2016 Vitaly Novichkov - * - * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: - * http://iki.fi/bisqwit/source/adlmidi.html - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef ADLDATA_H -#define ADLDATA_H - -#include -#include -#include - -#pragma pack(push, 1) -#define ADLDATA_BYTE_COMPARABLE(T) \ - inline bool operator==(const T &a, const T &b) \ - { return !memcmp(&a, &b, sizeof(T)); } \ - inline bool operator!=(const T &a, const T &b) \ - { return !operator==(a, b); } - -struct adldata -{ - uint32_t modulator_E862, carrier_E862; // See below - uint8_t modulator_40, carrier_40; // KSL/attenuation settings - uint8_t feedconn; // Feedback/connection bits for the channel - - int8_t finetune; -}; -ADLDATA_BYTE_COMPARABLE(struct adldata) - -struct adlinsdata -{ - enum { Flag_Pseudo4op = 0x01, Flag_NoSound = 0x02, Flag_Real4op = 0x04 }; - - enum { Flag_RM_BassDrum = 0x08, Flag_RM_Snare = 0x10, Flag_RM_TomTom = 0x18, - Flag_RM_Cymbal = 0x20, Flag_RM_HiHat = 0x28, Mask_RhythmMode = 0x38 }; - - uint16_t adlno1, adlno2; - uint8_t tone; - uint8_t flags; - uint16_t ms_sound_kon; // Number of milliseconds it produces sound; - uint16_t ms_sound_koff; - int8_t midi_velocity_offset; - double voice2_fine_tune; -}; -ADLDATA_BYTE_COMPARABLE(struct adlinsdata) - -enum { adlNoteOnMaxTime = 40000 }; - -/** - * @brief Instrument data with operators included - */ -struct adlinsdata2 -{ - adldata adl[2]; - uint8_t tone; - uint8_t flags; - uint16_t ms_sound_kon; // Number of milliseconds it produces sound; - uint16_t ms_sound_koff; - int8_t midi_velocity_offset; - double voice2_fine_tune; - static adlinsdata2 from_adldata(const adlinsdata &d); -}; -ADLDATA_BYTE_COMPARABLE(struct adlinsdata2) - -#undef ADLDATA_BYTE_COMPARABLE -#pragma pack(pop) - -/** - * @brief Bank global setup - */ -struct AdlBankSetup -{ - int volumeModel; - bool deepTremolo; - bool deepVibrato; - bool adLibPercussions; - bool scaleModulators; -}; - -#ifndef DISABLE_EMBEDDED_BANKS -int maxAdlBanks(); -extern const adldata adl[]; -extern const adlinsdata adlins[]; -extern const unsigned short banks[][256]; -extern const char* const banknames[]; -extern const AdlBankSetup adlbanksetup[]; -#endif - -/** - * @brief Conversion of storage formats - */ -inline adlinsdata2 adlinsdata2::from_adldata(const adlinsdata &d) -{ - adlinsdata2 ins; - ins.tone = d.tone; - ins.flags = d.flags; - ins.ms_sound_kon = d.ms_sound_kon; - ins.ms_sound_koff = d.ms_sound_koff; - ins.midi_velocity_offset = d.midi_velocity_offset; - ins.voice2_fine_tune = d.voice2_fine_tune; -#ifdef DISABLE_EMBEDDED_BANKS - std::memset(ins.adl, 0, sizeof(adldata) * 2); -#else - ins.adl[0] = ::adl[d.adlno1]; - ins.adl[1] = ::adl[d.adlno2]; -#endif - return ins; -} - -/** - * @brief Convert external instrument to internal instrument - */ -void cvt_ADLI_to_FMIns(adlinsdata2 &dst, const struct ADL_Instrument &src); - -/** - * @brief Convert internal instrument to external instrument - */ -void cvt_FMIns_to_ADLI(struct ADL_Instrument &dst, const adlinsdata2 &src); - -#endif //ADLDATA_H diff --git a/thirdparty/adlmidi/adlmidi.cpp b/thirdparty/adlmidi/adlmidi.cpp index 69a120d..9d33e62 100644 --- a/thirdparty/adlmidi/adlmidi.cpp +++ b/thirdparty/adlmidi/adlmidi.cpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -21,7 +21,45 @@ * along with this program. If not, see . */ +#include "adlmidi_midiplay.hpp" +#include "adlmidi_opl3.hpp" #include "adlmidi_private.hpp" +#ifndef ADLMIDI_HW_OPL +#include "chips/opl_chip_base.h" +#endif +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#include "midi_sequencer.hpp" +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1900 + +#define snprintf c99_snprintf +#define vsnprintf c99_vsnprintf + +__inline int c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) +{ + int count = -1; + + if (size != 0) + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); + if (count == -1) + count = _vscprintf(format, ap); + + return count; +} + +__inline int c99_snprintf(char *outBuf, size_t size, const char *format, ...) +{ + int count; + va_list ap; + + va_start(ap, format); + count = c99_vsnprintf(outBuf, size, format, ap); + va_end(ap); + + return count; +} +#endif /* Unify MIDI player casting and interface between ADLMIDI and OPNMIDI */ #define GET_MIDI_PLAYER(device) reinterpret_cast((device)->adl_midiPlayer) @@ -112,13 +150,14 @@ ADLMIDI_EXPORT int adl_setNumChips(ADL_MIDIPlayer *device, int numChips) else if(play->m_setup.numFourOps < -1) play->m_setup.numFourOps = -1; - if(!play->m_synth.setupLocked()) + Synth &synth = *play->m_synth; + if(!synth.setupLocked()) { - play->m_synth.m_numChips = play->m_setup.numChips; + synth.m_numChips = play->m_setup.numChips; if(play->m_setup.numFourOps < 0) adlCalculateFourOpChannels(play, true); else - play->m_synth.m_numFourOps = static_cast(play->m_setup.numFourOps); + synth.m_numFourOps = static_cast(play->m_setup.numFourOps); play->partialReset(); return 0; } @@ -141,7 +180,7 @@ ADLMIDI_EXPORT int adl_getNumChipsObtained(struct ADL_MIDIPlayer *device) return -2; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return (int)play->m_synth.m_numChips; + return (int)play->m_synth->m_numChips; } ADLMIDI_EXPORT int adl_setBank(ADL_MIDIPlayer *device, int bank) @@ -155,7 +194,7 @@ ADLMIDI_EXPORT int adl_setBank(ADL_MIDIPlayer *device, int bank) "adl_openBankData() functions instead of adl_setBank()."); return -1; #else - const uint32_t NumBanks = static_cast(maxAdlBanks()); + const uint32_t NumBanks = static_cast(g_embeddedBanksCount); int32_t bankno = bank; if(bankno < 0) @@ -171,8 +210,9 @@ ADLMIDI_EXPORT int adl_setBank(ADL_MIDIPlayer *device, int bank) return -1; } + Synth &synth = *play->m_synth; play->m_setup.bankId = static_cast(bankno); - play->m_synth.setEmbeddedBank(play->m_setup.bankId); + synth.setEmbeddedBank(play->m_setup.bankId); play->applySetup(); return 0; @@ -182,7 +222,7 @@ ADLMIDI_EXPORT int adl_setBank(ADL_MIDIPlayer *device, int bank) ADLMIDI_EXPORT int adl_getBanksCount() { #ifndef DISABLE_EMBEDDED_BANKS - return maxAdlBanks(); + return static_cast(g_embeddedBanksCount); #else return 0; #endif @@ -191,7 +231,7 @@ ADLMIDI_EXPORT int adl_getBanksCount() ADLMIDI_EXPORT const char *const *adl_getBankNames() { #ifndef DISABLE_EMBEDDED_BANKS - return banknames; + return g_embeddedBankNames; #else return NULL; #endif @@ -203,7 +243,7 @@ ADLMIDI_EXPORT int adl_reserveBanks(ADL_MIDIPlayer *device, unsigned banks) return -1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - OPL3::BankMap &map = play->m_synth.m_insBanks; + Synth::BankMap &map = play->m_synth->m_insBanks; map.reserve(banks); return (int)map.capacity(); } @@ -216,13 +256,13 @@ ADLMIDI_EXPORT int adl_getBank(ADL_MIDIPlayer *device, const ADL_BankId *idp, in ADL_BankId id = *idp; if(id.lsb > 127 || id.msb > 127 || id.percussive > 1) return -1; - size_t idnumber = ((id.msb << 8) | id.lsb | (id.percussive ? size_t(OPL3::PercussionTag) : 0)); + size_t idnumber = ((id.msb << 8) | id.lsb | (id.percussive ? size_t(Synth::PercussionTag) : 0)); MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - OPL3::BankMap &map = play->m_synth.m_insBanks; + Synth::BankMap &map = play->m_synth->m_insBanks; - OPL3::BankMap::iterator it; + Synth::BankMap::iterator it; if(!(flags & ADLMIDI_Bank_Create)) { it = map.find(idnumber); @@ -231,16 +271,16 @@ ADLMIDI_EXPORT int adl_getBank(ADL_MIDIPlayer *device, const ADL_BankId *idp, in } else { - std::pair value; + std::pair value; value.first = idnumber; memset(&value.second, 0, sizeof(value.second)); for (unsigned i = 0; i < 128; ++i) - value.second.ins[i].flags = adlinsdata::Flag_NoSound; + value.second.ins[i].flags = OplInstMeta::Flag_NoSound; - std::pair ir; - if(flags & ADLMIDI_Bank_CreateRt) + std::pair ir; + if((flags & ADLMIDI_Bank_CreateRt) == ADLMIDI_Bank_CreateRt) { - ir = map.insert(value, OPL3::BankMap::do_not_expand_t()); + ir = map.insert(value, Synth::BankMap::do_not_expand_t()); if(ir.first == map.end()) return -1; } @@ -258,11 +298,11 @@ ADLMIDI_EXPORT int adl_getBankId(ADL_MIDIPlayer *device, const ADL_Bank *bank, A if(!device || !bank) return -1; - OPL3::BankMap::iterator it = OPL3::BankMap::iterator::from_ptrs(bank->pointer); - OPL3::BankMap::key_type idnumber = it->first; + Synth::BankMap::iterator it = Synth::BankMap::iterator::from_ptrs(bank->pointer); + Synth::BankMap::key_type idnumber = it->first; id->msb = (idnumber >> 8) & 127; id->lsb = idnumber & 127; - id->percussive = (idnumber & OPL3::PercussionTag) ? 1 : 0; + id->percussive = (idnumber & Synth::PercussionTag) ? 1 : 0; return 0; } @@ -273,8 +313,8 @@ ADLMIDI_EXPORT int adl_removeBank(ADL_MIDIPlayer *device, ADL_Bank *bank) MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - OPL3::BankMap &map = play->m_synth.m_insBanks; - OPL3::BankMap::iterator it = OPL3::BankMap::iterator::from_ptrs(bank->pointer); + Synth::BankMap &map = play->m_synth->m_insBanks; + Synth::BankMap::iterator it = Synth::BankMap::iterator::from_ptrs(bank->pointer); size_t size = map.size(); map.erase(it); return (map.size() != size) ? 0 : -1; @@ -287,9 +327,9 @@ ADLMIDI_EXPORT int adl_getFirstBank(ADL_MIDIPlayer *device, ADL_Bank *bank) MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - OPL3::BankMap &map = play->m_synth.m_insBanks; + Synth::BankMap &map = play->m_synth->m_insBanks; - OPL3::BankMap::iterator it = map.begin(); + Synth::BankMap::iterator it = map.begin(); if(it == map.end()) return -1; @@ -304,9 +344,9 @@ ADLMIDI_EXPORT int adl_getNextBank(ADL_MIDIPlayer *device, ADL_Bank *bank) MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - OPL3::BankMap &map = play->m_synth.m_insBanks; + Synth::BankMap &map = play->m_synth->m_insBanks; - OPL3::BankMap::iterator it = OPL3::BankMap::iterator::from_ptrs(bank->pointer); + Synth::BankMap::iterator it = Synth::BankMap::iterator::from_ptrs(bank->pointer); if(++it == map.end()) return -1; @@ -319,7 +359,7 @@ ADLMIDI_EXPORT int adl_getInstrument(ADL_MIDIPlayer *device, const ADL_Bank *ban if(!device || !bank || index > 127 || !ins) return -1; - OPL3::BankMap::iterator it = OPL3::BankMap::iterator::from_ptrs(bank->pointer); + Synth::BankMap::iterator it = Synth::BankMap::iterator::from_ptrs(bank->pointer); cvt_FMIns_to_ADLI(*ins, it->second.ins[index]); ins->version = 0; return 0; @@ -333,7 +373,7 @@ ADLMIDI_EXPORT int adl_setInstrument(ADL_MIDIPlayer *device, ADL_Bank *bank, uns if(ins->version != 0) return -1; - OPL3::BankMap::iterator it = OPL3::BankMap::iterator::from_ptrs(bank->pointer); + Synth::BankMap::iterator it = Synth::BankMap::iterator::from_ptrs(bank->pointer); cvt_ADLI_to_FMIns(it->second.ins[index], *ins); return 0; } @@ -353,16 +393,32 @@ ADLMIDI_EXPORT int adl_loadEmbeddedBank(struct ADL_MIDIPlayer *device, ADL_Bank "adl_openBankData() functions instead of adl_loadEmbeddedBank()."); return -1; #else - if(num < 0 || num >= maxAdlBanks()) + if(num < 0 || num >= static_cast(g_embeddedBanksCount)) return -1; - OPL3::BankMap::iterator it = OPL3::BankMap::iterator::from_ptrs(bank->pointer); + Synth::BankMap::iterator it = Synth::BankMap::iterator::from_ptrs(bank->pointer); size_t id = it->first; - for (unsigned i = 0; i < 128; ++i) { - size_t insno = i + ((id & OPL3::PercussionTag) ? 128 : 0); - size_t adlmeta = ::banks[num][insno]; - it->second.ins[i] = adlinsdata2::from_adldata(::adlins[adlmeta]); + const BanksDump::BankEntry &bankEntry = g_embeddedBanks[num]; + + bool ss = (id & Synth::PercussionTag); + const size_t bankID = 0; + +// bank_count_t maxBanks = ss ? bankEntry.banksPercussionCount : bankEntry.banksMelodicCount; + bank_count_t banksOffset = ss ? bankEntry.banksOffsetPercussive : bankEntry.banksOffsetMelodic; + size_t bankIndex = g_embeddedBanksMidiIndex[banksOffset + bankID]; + const BanksDump::MidiBank &bankData = g_embeddedBanksMidi[bankIndex]; + + for (unsigned i = 0; i < 128; ++i) + { + midi_bank_idx_t instIdx = bankData.insts[i]; + if(instIdx < 0) + { + it->second.ins[i].flags = OplInstMeta::Flag_NoSound; + continue; + } + BanksDump::InstrumentEntry instIn = g_embeddedBanksInstruments[instIdx]; + adlFromInstrument(instIn, it->second.ins[i]); } return 0; #endif @@ -383,14 +439,15 @@ ADLMIDI_EXPORT int adl_setNumFourOpsChn(ADL_MIDIPlayer *device, int ops4) return -1; } + Synth &synth = *play->m_synth; play->m_setup.numFourOps = ops4; - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) { if(play->m_setup.numFourOps < 0) adlCalculateFourOpChannels(play, true); else - play->m_synth.m_numFourOps = static_cast(play->m_setup.numFourOps); - play->m_synth.updateChannelCategories(); + synth.m_numFourOps = static_cast(play->m_setup.numFourOps); + synth.updateChannelCategories(); } return 0; @@ -411,23 +468,14 @@ ADLMIDI_EXPORT int adl_getNumFourOpsChnObtained(struct ADL_MIDIPlayer *device) return -2; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return (int)play->m_synth.m_numFourOps; + return (int)play->m_synth->m_numFourOps; } - +/* !!!DEPRECATED!!! AND !!DUMMIED!! */ ADLMIDI_EXPORT void adl_setPercMode(ADL_MIDIPlayer *device, int percmod) { - if(!device) return; - MidiPlayer *play = GET_MIDI_PLAYER(device); - assert(play); - play->m_setup.rhythmMode = percmod; - if(!play->m_synth.setupLocked()) - { - play->m_synth.m_rhythmMode = play->m_setup.rhythmMode < 0 ? - (play->m_synth.m_insBankSetup.adLibPercussions) : - (play->m_setup.rhythmMode != 0); - play->m_synth.updateChannelCategories(); - } + ADL_UNUSED(device); + ADL_UNUSED(percmod); } ADLMIDI_EXPORT void adl_setHVibrato(ADL_MIDIPlayer *device, int hvibro) @@ -435,13 +483,14 @@ ADLMIDI_EXPORT void adl_setHVibrato(ADL_MIDIPlayer *device, int hvibro) if(!device) return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); + Synth &synth = *play->m_synth; play->m_setup.deepVibratoMode = hvibro; - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) { - play->m_synth.m_deepVibratoMode = play->m_setup.deepVibratoMode < 0 ? - play->m_synth.m_insBankSetup.deepVibrato : + synth.m_deepVibratoMode = play->m_setup.deepVibratoMode < 0 ? + synth.m_insBankSetup.deepVibrato : (play->m_setup.deepVibratoMode != 0); - play->m_synth.commitDeepFlags(); + synth.commitDeepFlags(); } } @@ -450,7 +499,7 @@ ADLMIDI_EXPORT int adl_getHVibrato(struct ADL_MIDIPlayer *device) if(!device) return -1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_synth.m_deepVibratoMode; + return play->m_synth->m_deepVibratoMode; } ADLMIDI_EXPORT void adl_setHTremolo(ADL_MIDIPlayer *device, int htremo) @@ -458,13 +507,14 @@ ADLMIDI_EXPORT void adl_setHTremolo(ADL_MIDIPlayer *device, int htremo) if(!device) return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); + Synth &synth = *play->m_synth; play->m_setup.deepTremoloMode = htremo; - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) { - play->m_synth.m_deepTremoloMode = play->m_setup.deepTremoloMode < 0 ? - play->m_synth.m_insBankSetup.deepTremolo : + synth.m_deepTremoloMode = play->m_setup.deepTremoloMode < 0 ? + synth.m_insBankSetup.deepTremolo : (play->m_setup.deepTremoloMode != 0); - play->m_synth.commitDeepFlags(); + synth.commitDeepFlags(); } } @@ -473,7 +523,7 @@ ADLMIDI_EXPORT int adl_getHTremolo(struct ADL_MIDIPlayer *device) if(!device) return -1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_synth.m_deepTremoloMode; + return play->m_synth->m_deepTremoloMode; } ADLMIDI_EXPORT void adl_setScaleModulators(ADL_MIDIPlayer *device, int smod) @@ -482,11 +532,12 @@ ADLMIDI_EXPORT void adl_setScaleModulators(ADL_MIDIPlayer *device, int smod) return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); + Synth &synth = *play->m_synth; play->m_setup.scaleModulators = smod; - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) { - play->m_synth.m_scaleModulators = play->m_setup.scaleModulators < 0 ? - play->m_synth.m_insBankSetup.scaleModulators : + synth.m_scaleModulators = play->m_setup.scaleModulators < 0 ? + synth.m_insBankSetup.scaleModulators : (play->m_setup.scaleModulators != 0); } } @@ -502,13 +553,14 @@ ADLMIDI_EXPORT void adl_setFullRangeBrightness(struct ADL_MIDIPlayer *device, in ADLMIDI_EXPORT void adl_setLoopEnabled(ADL_MIDIPlayer *device, int loopEn) { +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER if(!device) return; -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER - MidiPlayer *play = GET_MIDI_PLAYER(device); - assert(play); - play->m_sequencer.setLoopEnabled(loopEn != 0); + MidiPlayer *play = GET_MIDI_PLAYER(device); + assert(play); + play->m_sequencer->setLoopEnabled(loopEn != 0); #else + ADL_UNUSED(device); ADL_UNUSED(loopEn); #endif } @@ -519,7 +571,7 @@ ADLMIDI_EXPORT void adl_setSoftPanEnabled(ADL_MIDIPlayer *device, int softPanEn) return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - play->m_synth.m_softPanning = (softPanEn != 0); + play->m_synth->m_softPanning = (softPanEn != 0); } /* !!!DEPRECATED!!! */ @@ -529,13 +581,14 @@ ADLMIDI_EXPORT void adl_setLogarithmicVolumes(struct ADL_MIDIPlayer *device, int return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); + Synth &synth = *play->m_synth; play->m_setup.logarithmicVolumes = (logvol != 0); - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) { if(play->m_setup.logarithmicVolumes) - play->m_synth.setVolumeScaleModel(ADLMIDI_VolumeModel_NativeOPL3); + synth.setVolumeScaleModel(ADLMIDI_VolumeModel_NativeOPL3); else - play->m_synth.setVolumeScaleModel(static_cast(play->m_synth.m_volumeScale)); + synth.setVolumeScaleModel(static_cast(synth.m_volumeScale)); } } @@ -545,13 +598,14 @@ ADLMIDI_EXPORT void adl_setVolumeRangeModel(struct ADL_MIDIPlayer *device, int v return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); + Synth &synth = *play->m_synth; play->m_setup.volumeScaleModel = volumeModel; - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) { if(play->m_setup.volumeScaleModel == ADLMIDI_VolumeModel_AUTO)//Use bank default volume model - play->m_synth.m_volumeScale = (OPL3::VolumesScale)play->m_synth.m_insBankSetup.volumeModel; + synth.m_volumeScale = (Synth::VolumesScale)synth.m_insBankSetup.volumeModel; else - play->m_synth.setVolumeScaleModel(static_cast(volumeModel)); + synth.setVolumeScaleModel(static_cast(volumeModel)); } } @@ -561,7 +615,7 @@ ADLMIDI_EXPORT int adl_getVolumeRangeModel(struct ADL_MIDIPlayer *device) return -1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_synth.getVolumeScaleModel(); + return play->m_synth->getVolumeScaleModel(); } ADLMIDI_EXPORT int adl_openBankFile(struct ADL_MIDIPlayer *device, const char *filePath) @@ -675,8 +729,9 @@ ADLMIDI_EXPORT const char *adl_chipEmulatorName(struct ADL_MIDIPlayer *device) #ifndef ADLMIDI_HW_OPL MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - if(!play->m_synth.m_chips.empty()) - return play->m_synth.m_chips[0]->emulatorName(); + Synth &synth = *play->m_synth; + if(!synth.m_chips.empty()) + return synth.m_chips[0]->emulatorName(); #else return "Hardware OPL3 chip on 0x330"; #endif @@ -708,8 +763,9 @@ ADLMIDI_EXPORT int adl_setRunAtPcmRate(ADL_MIDIPlayer *device, int enabled) { MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); + Synth &synth = *play->m_synth; play->m_setup.runAtPcmRate = (enabled != 0); - if(!play->m_synth.setupLocked()) + if(!synth.setupLocked()) play->partialReset(); return 0; } @@ -763,7 +819,7 @@ ADLMIDI_EXPORT double adl_totalTimeLength(struct ADL_MIDIPlayer *device) return -1.0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.timeLength(); + return play->m_sequencer->timeLength(); #else ADL_UNUSED(device); return -1.0; @@ -777,7 +833,7 @@ ADLMIDI_EXPORT double adl_loopStartTime(struct ADL_MIDIPlayer *device) return -1.0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getLoopStart(); + return play->m_sequencer->getLoopStart(); #else ADL_UNUSED(device); return -1.0; @@ -791,7 +847,7 @@ ADLMIDI_EXPORT double adl_loopEndTime(struct ADL_MIDIPlayer *device) return -1.0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getLoopEnd(); + return play->m_sequencer->getLoopEnd(); #else ADL_UNUSED(device); return -1.0; @@ -805,7 +861,7 @@ ADLMIDI_EXPORT double adl_positionTell(struct ADL_MIDIPlayer *device) return -1.0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.tell(); + return play->m_sequencer->tell(); #else ADL_UNUSED(device); return -1.0; @@ -822,7 +878,7 @@ ADLMIDI_EXPORT void adl_positionSeek(struct ADL_MIDIPlayer *device, double secon MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); play->realTime_panic(); - play->m_setup.delay = play->m_sequencer.seek(seconds, play->m_setup.mindelay); + play->m_setup.delay = play->m_sequencer->seek(seconds, play->m_setup.mindelay); play->m_setup.carry = 0.0; #else ADL_UNUSED(device); @@ -838,7 +894,7 @@ ADLMIDI_EXPORT void adl_positionRewind(struct ADL_MIDIPlayer *device) MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); play->realTime_panic(); - play->m_sequencer.rewind(); + play->m_sequencer->rewind(); #else ADL_UNUSED(device); #endif @@ -851,7 +907,7 @@ ADLMIDI_EXPORT void adl_setTempo(struct ADL_MIDIPlayer *device, double tempo) return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - play->m_sequencer.setTempo(tempo); + play->m_sequencer->setTempo(tempo); #else ADL_UNUSED(device); ADL_UNUSED(tempo); @@ -877,7 +933,7 @@ ADLMIDI_EXPORT const char *adl_metaMusicTitle(struct ADL_MIDIPlayer *device) return ""; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getMusicTitle().c_str(); + return play->m_sequencer->getMusicTitle().c_str(); #else ADL_UNUSED(device); return ""; @@ -892,7 +948,7 @@ ADLMIDI_EXPORT const char *adl_metaMusicCopyright(struct ADL_MIDIPlayer *device) return ""; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getMusicCopyright().c_str(); + return play->m_sequencer->getMusicCopyright().c_str(); #else ADL_UNUSED(device); return ""; @@ -906,7 +962,7 @@ ADLMIDI_EXPORT size_t adl_metaTrackTitleCount(struct ADL_MIDIPlayer *device) return 0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getTrackTitles().size(); + return play->m_sequencer->getTrackTitles().size(); #else ADL_UNUSED(device); return 0; @@ -920,7 +976,7 @@ ADLMIDI_EXPORT const char *adl_metaTrackTitle(struct ADL_MIDIPlayer *device, siz return ""; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - const std::vector &titles = play->m_sequencer.getTrackTitles(); + const std::vector &titles = play->m_sequencer->getTrackTitles(); if(index >= titles.size()) return "INVALID"; return titles[index].c_str(); @@ -939,7 +995,7 @@ ADLMIDI_EXPORT size_t adl_metaMarkerCount(struct ADL_MIDIPlayer *device) return 0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getMarkers().size(); + return play->m_sequencer->getMarkers().size(); #else ADL_UNUSED(device); return 0; @@ -962,7 +1018,7 @@ ADLMIDI_EXPORT Adl_MarkerEntry adl_metaMarker(struct ADL_MIDIPlayer *device, siz MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - const std::vector &markers = play->m_sequencer.getMarkers(); + const std::vector &markers = play->m_sequencer->getMarkers(); if(index >= markers.size()) { marker.label = "INVALID"; @@ -992,8 +1048,8 @@ ADLMIDI_EXPORT void adl_setRawEventHook(struct ADL_MIDIPlayer *device, ADL_RawEv return; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - play->m_sequencerInterface.onEvent = rawEventHook; - play->m_sequencerInterface.onEvent_userData = userData; + play->m_sequencerInterface->onEvent = rawEventHook; + play->m_sequencerInterface->onEvent_userData = userData; #else ADL_UNUSED(device); ADL_UNUSED(rawEventHook); @@ -1022,8 +1078,8 @@ ADLMIDI_EXPORT void adl_setDebugMessageHook(struct ADL_MIDIPlayer *device, ADL_D play->hooks.onDebugMessage = debugMessageHook; play->hooks.onDebugMessage_userData = userData; #ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER - play->m_sequencerInterface.onDebugMessage = debugMessageHook; - play->m_sequencerInterface.onDebugMessage_userData = userData; + play->m_sequencerInterface->onDebugMessage = debugMessageHook; + play->m_sequencerInterface->onDebugMessage_userData = userData; #endif } @@ -1273,7 +1329,7 @@ ADLMIDI_EXPORT int adl_playFormat(ADL_MIDIPlayer *device, int sampleCount, // setup.SkipForward -= 1; //else { - if((player->m_sequencer.positionAtEnd()) && (setup.delay <= 0.0)) + if((player->m_sequencer->positionAtEnd()) && (setup.delay <= 0.0)) break;//Stop to fetch samples at reaching the song end with disabled loop ssize_t leftSamples = left / 2; @@ -1290,16 +1346,17 @@ ADLMIDI_EXPORT int adl_playFormat(ADL_MIDIPlayer *device, int sampleCount, //fill buffer with zeros int32_t *out_buf = player->m_outBuf; std::memset(out_buf, 0, static_cast(in_generatedPhys) * sizeof(out_buf[0])); - unsigned int chips = player->m_synth.m_numChips; + Synth &synth = *player->m_synth; + unsigned int chips = synth.m_numChips; if(chips == 1) { - player->m_synth.m_chips[0]->generate32(out_buf, (size_t)in_generatedStereo); + synth.m_chips[0]->generate32(out_buf, (size_t)in_generatedStereo); } else if(n_periodCountStereo > 0) { /* Generate data from every chip and mix result */ for(size_t card = 0; card < chips; ++card) - player->m_synth.m_chips[card]->generateAndMix32(out_buf, (size_t)in_generatedStereo); + synth.m_chips[card]->generateAndMix32(out_buf, (size_t)in_generatedStereo); } /* Process it */ @@ -1380,14 +1437,15 @@ ADLMIDI_EXPORT int adl_generateFormat(struct ADL_MIDIPlayer *device, int sampleC //fill buffer with zeros int32_t *out_buf = player->m_outBuf; std::memset(out_buf, 0, static_cast(in_generatedPhys) * sizeof(out_buf[0])); - unsigned int chips = player->m_synth.m_numChips; + Synth &synth = *player->m_synth; + unsigned int chips = synth.m_numChips; if(chips == 1) - player->m_synth.m_chips[0]->generate32(out_buf, (size_t)in_generatedStereo); + synth.m_chips[0]->generate32(out_buf, (size_t)in_generatedStereo); else if(n_periodCountStereo > 0) { /* Generate data from every chip and mix result */ for(unsigned card = 0; card < chips; ++card) - player->m_synth.m_chips[card]->generateAndMix32(out_buf, (size_t)in_generatedStereo); + synth.m_chips[card]->generateAndMix32(out_buf, (size_t)in_generatedStereo); } /* Process it */ if(SendStereoAudio(sampleCount, in_generatedStereo, out_buf, gotten_len, out_left, out_right, format) == -1) @@ -1428,7 +1486,7 @@ ADLMIDI_EXPORT int adl_atEnd(struct ADL_MIDIPlayer *device) return 1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return (int)play->m_sequencer.positionAtEnd(); + return (int)play->m_sequencer->positionAtEnd(); #else ADL_UNUSED(device); return 1; @@ -1442,7 +1500,7 @@ ADLMIDI_EXPORT size_t adl_trackCount(struct ADL_MIDIPlayer *device) return 0; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - return play->m_sequencer.getTrackCount(); + return play->m_sequencer->getTrackCount(); #else ADL_UNUSED(device); return 0; @@ -1456,7 +1514,7 @@ ADLMIDI_EXPORT int adl_setTrackOptions(struct ADL_MIDIPlayer *device, size_t tra return -1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - MidiSequencer &seq = play->m_sequencer; + MidiSequencer &seq = *play->m_sequencer; unsigned enableFlag = trackOptions & 3; trackOptions &= ~3u; @@ -1497,7 +1555,7 @@ ADLMIDI_EXPORT int adl_setTriggerHandler(struct ADL_MIDIPlayer *device, ADL_Trig return -1; MidiPlayer *play = GET_MIDI_PLAYER(device); assert(play); - MidiSequencer &seq = play->m_sequencer; + MidiSequencer &seq = *play->m_sequencer; seq.setTriggerHandler(handler, userData); return 0; #else diff --git a/thirdparty/adlmidi/adlmidi.h b/thirdparty/adlmidi/adlmidi.h index 3524587..0aaba8a 100644 --- a/thirdparty/adlmidi/adlmidi.h +++ b/thirdparty/adlmidi/adlmidi.h @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -29,7 +29,7 @@ extern "C" { #endif #define ADLMIDI_VERSION_MAJOR 1 -#define ADLMIDI_VERSION_MINOR 4 +#define ADLMIDI_VERSION_MINOR 5 #define ADLMIDI_VERSION_PATCHLEVEL 0 #define ADLMIDI_TOSTR_I(s) #s @@ -39,6 +39,7 @@ extern "C" { ADLMIDI_TOSTR(ADLMIDI_VERSION_MINOR) "." \ ADLMIDI_TOSTR(ADLMIDI_VERSION_PATCHLEVEL) +#define ADL_CHIP_SAMPLE_RATE 49716 #include @@ -111,8 +112,20 @@ enum ADLMIDI_VolumeModels ADLMIDI_VolumeModel_DMX = 3, /*! Logarithmic volume scale, used in Apogee Sound System. */ ADLMIDI_VolumeModel_APOGEE = 4, - /*! Aproximated and shorted volume map table. Similar to general, but has less granularity. */ - ADLMIDI_VolumeModel_9X = 5 + /*! Aproximated and shorted volume map table (SB16 driver). Similar to general, but has less granularity. */ + ADLMIDI_VolumeModel_9X = 5, + /*! DMX model with a fixed bug of AM voices */ + ADLMIDI_VolumeModel_DMX_Fixed = 6, + /*! Apogee model with a fixed bug of AM voices*/ + ADLMIDI_VolumeModel_APOGEE_Fixed = 7, + /*! Audio Interface Library volume scaling model */ + ADLMIDI_VolumeModel_AIL = 8, + /*! Aproximated and shorted volume map table (Generic FM driver). Similar to general, but has less granularity. */ + ADLMIDI_VolumeModel_9X_GENERIC_FM = 9, + /*! HMI Sound Operating System volume scaling model */ + ADLMIDI_VolumeModel_HMI = 10, + /*! HMI Sound Operating System volume scaling model, older variant with bugs */ + ADLMIDI_VolumeModel_HMI_OLD = 11 }; /** @@ -246,7 +259,125 @@ enum ADL_BankAccessFlags ADLMIDI_Bank_CreateRt = 1|2 }; -typedef struct ADL_Instrument ADL_Instrument; + +/* ======== Instrument structures ======== */ + +/** + * @brief Version of the instrument data format + */ +enum +{ + ADLMIDI_InstrumentVersion = 0 +}; + +/** + * @brief Instrument flags + */ +typedef enum ADL_InstrumentFlags +{ + /*! Is two-operator single-voice instrument (no flags) */ + ADLMIDI_Ins_2op = 0x00, + /*! Is true four-operator instrument */ + ADLMIDI_Ins_4op = 0x01, + /*! Is pseudo four-operator (two 2-operator voices) instrument */ + ADLMIDI_Ins_Pseudo4op = 0x02, + /*! Is a blank instrument entry */ + ADLMIDI_Ins_IsBlank = 0x04, + + /*! RythmMode flags mask */ + ADLMIDI_Ins_RhythmModeMask = 0x38, + + /*! Mask of the flags range */ + ADLMIDI_Ins_ALL_MASK = 0x07 +} ADL_InstrumentFlags; + +/** + * @brief Rhythm-mode drum type + */ +typedef enum ADL_RhythmMode +{ + /*! RythmMode: BassDrum */ + ADLMIDI_RM_BassDrum = 0x08, + /*! RythmMode: Snare */ + ADLMIDI_RM_Snare = 0x10, + /*! RythmMode: TomTom */ + ADLMIDI_RM_TomTom = 0x18, + /*! RythmMode: Cymbal */ + ADLMIDI_RM_Cymbal = 0x20, + /*! RythmMode: HiHat */ + ADLMIDI_RM_HiHat = 0x28 +} ADL_RhythmMode; + + +/** + * @brief Operator structure, part of Instrument structure + */ +typedef struct ADL_Operator +{ + /*! AM/Vib/Env/Ksr/FMult characteristics */ + ADL_UInt8 avekf_20; + /*! Key Scale Level / Total level register data */ + ADL_UInt8 ksl_l_40; + /*! Attack / Decay */ + ADL_UInt8 atdec_60; + /*! Systain and Release register data */ + ADL_UInt8 susrel_80; + /*! Wave form */ + ADL_UInt8 waveform_E0; +} ADL_Operator; + +/** + * @brief Instrument structure + */ +typedef struct ADL_Instrument +{ + /*! Version of the instrument object */ + int version; + /*! MIDI note key (half-tone) offset for an instrument (or a first voice in pseudo-4-op mode) */ + ADL_SInt16 note_offset1; + /*! MIDI note key (half-tone) offset for a second voice in pseudo-4-op mode */ + ADL_SInt16 note_offset2; + /*! MIDI note velocity offset (taken from Apogee TMB format) */ + ADL_SInt8 midi_velocity_offset; + /*! Second voice detune level (taken from DMX OP2) */ + ADL_SInt8 second_voice_detune; + /*! Percussion MIDI base tone number at which this drum will be played */ + ADL_UInt8 percussion_key_number; + /** + * @var inst_flags + * @brief Instrument flags + * + * Enums: #ADL_InstrumentFlags and #ADL_RhythmMode + * + * Bitwise flags bit map: + * ``` + * [0EEEDCBA] + * A) 0x00 - 2-operator mode + * B) 0x01 - 4-operator mode + * C) 0x02 - pseudo-4-operator (two 2-operator voices) mode + * D) 0x04 - is 'blank' instrument (instrument which has no sound) + * E) 0x38 - Reserved for rhythm-mode percussion type number (three bits number) + * -> 0x00 - Melodic or Generic drum (rhythm-mode is disabled) + * -> 0x08 - is Bass drum + * -> 0x10 - is Snare + * -> 0x18 - is Tom-tom + * -> 0x20 - is Cymbal + * -> 0x28 - is Hi-hat + * 0) Reserved / Unused + * ``` + */ + ADL_UInt8 inst_flags; + /*! Feedback&Connection register for first and second operators */ + ADL_UInt8 fb_conn1_C0; + /*! Feedback&Connection register for third and fourth operators */ + ADL_UInt8 fb_conn2_C0; + /*! Operators register data */ + ADL_Operator operators[4]; + /*! Millisecond delay of sounding while key is on */ + ADL_UInt16 delay_on_ms; + /*! Millisecond delay of sounding after key off */ + ADL_UInt16 delay_off_ms; +} ADL_Instrument; @@ -361,11 +492,14 @@ extern ADLMIDI_DECLSPEC int adl_getNumFourOpsChnObtained(struct ADL_MIDIPlayer * /** * @brief Override Enable(1) or Disable(0) AdLib percussion mode. -1 - use bank default AdLib percussion mode * + * [DEPRECATED] This function is no more useful and now it makes nothing. Kept for ABI compatibility. Rhythm mode can be set by the bank data only. + * * This function forces rhythm-mode on any bank. The result will work glitchy. * * @param device Instance of the library * @param percmod 0 - disabled, 1 - enabled */ +ADLMIDI_DEPRECATED("This function is no more useful and now it makes nothing. Kept for ABI compatibility. Rhythm mode can be set by the bank data only.") extern ADLMIDI_DECLSPEC void adl_setPercMode(struct ADL_MIDIPlayer *device, int percmod); /** @@ -502,6 +636,10 @@ enum ADL_Emulator ADLMIDI_EMU_NUKED_174, /*! DosBox */ ADLMIDI_EMU_DOSBOX, + /*! Opal */ + ADLMIDI_EMU_OPAL, + /*! Java */ + ADLMIDI_EMU_JAVA, /*! Count instrument on the level */ ADLMIDI_EMU_end }; @@ -588,6 +726,7 @@ extern ADLMIDI_DECLSPEC const char *adl_errorInfo(struct ADL_MIDIPlayer *device) * Tip 1: You can initialize multiple instances and run them in parallel * Tip 2: Library is NOT thread-safe, therefore don't use same instance in different threads or use mutexes * Tip 3: Changing of sample rate on the fly is not supported. Re-create the instance again. + * Top 4: To generate output in OPL chip native sample rate, please initialize it with sample rate value as `ADL_CHIP_SAMPLE_RATE` * * @param sample_rate Output sample rate * @return Instance of the library. If NULL was returned, check the `adl_errorString` message for more info. @@ -1117,128 +1256,6 @@ extern ADLMIDI_DECLSPEC void adl_setDebugMessageHook(struct ADL_MIDIPlayer *devi */ extern ADLMIDI_DECLSPEC int adl_describeChannels(struct ADL_MIDIPlayer *device, char *text, char *attr, size_t size); - - - -/* ======== Instrument structures ======== */ - -/** - * @brief Version of the instrument data format - */ -enum -{ - ADLMIDI_InstrumentVersion = 0 -}; - -/** - * @brief Instrument flags - */ -typedef enum ADL_InstrumentFlags -{ - /*! Is two-operator single-voice instrument (no flags) */ - ADLMIDI_Ins_2op = 0x00, - /*! Is true four-operator instrument */ - ADLMIDI_Ins_4op = 0x01, - /*! Is pseudo four-operator (two 2-operator voices) instrument */ - ADLMIDI_Ins_Pseudo4op = 0x02, - /*! Is a blank instrument entry */ - ADLMIDI_Ins_IsBlank = 0x04, - - /*! RythmMode flags mask */ - ADLMIDI_Ins_RhythmModeMask = 0x38, - - /*! Mask of the flags range */ - ADLMIDI_Ins_ALL_MASK = 0x07 -} ADL_InstrumentFlags; - -/** - * @brief Rhythm-mode drum type - */ -typedef enum ADL_RhythmMode -{ - /*! RythmMode: BassDrum */ - ADLMIDI_RM_BassDrum = 0x08, - /*! RythmMode: Snare */ - ADLMIDI_RM_Snare = 0x10, - /*! RythmMode: TomTom */ - ADLMIDI_RM_TomTom = 0x18, - /*! RythmMode: Cymbal */ - ADLMIDI_RM_Cymbal = 0x20, - /*! RythmMode: HiHat */ - ADLMIDI_RM_HiHat = 0x28 -} ADL_RhythmMode; - - -/** - * @brief Operator structure, part of Instrument structure - */ -typedef struct ADL_Operator -{ - /*! AM/Vib/Env/Ksr/FMult characteristics */ - ADL_UInt8 avekf_20; - /*! Key Scale Level / Total level register data */ - ADL_UInt8 ksl_l_40; - /*! Attack / Decay */ - ADL_UInt8 atdec_60; - /*! Systain and Release register data */ - ADL_UInt8 susrel_80; - /*! Wave form */ - ADL_UInt8 waveform_E0; -} ADL_Operator; - -/** - * @brief Instrument structure - */ -typedef struct ADL_Instrument -{ - /*! Version of the instrument object */ - int version; - /*! MIDI note key (half-tone) offset for an instrument (or a first voice in pseudo-4-op mode) */ - ADL_SInt16 note_offset1; - /*! MIDI note key (half-tone) offset for a second voice in pseudo-4-op mode */ - ADL_SInt16 note_offset2; - /*! MIDI note velocity offset (taken from Apogee TMB format) */ - ADL_SInt8 midi_velocity_offset; - /*! Second voice detune level (taken from DMX OP2) */ - ADL_SInt8 second_voice_detune; - /*! Percussion MIDI base tone number at which this drum will be played */ - ADL_UInt8 percussion_key_number; - /** - * @var inst_flags - * @brief Instrument flags - * - * Enums: #ADL_InstrumentFlags and #ADL_RhythmMode - * - * Bitwise flags bit map: - * ``` - * [0EEEDCBA] - * A) 0x00 - 2-operator mode - * B) 0x01 - 4-operator mode - * C) 0x02 - pseudo-4-operator (two 2-operator voices) mode - * D) 0x04 - is 'blank' instrument (instrument which has no sound) - * E) 0x38 - Reserved for rhythm-mode percussion type number (three bits number) - * -> 0x00 - Melodic or Generic drum (rhythm-mode is disabled) - * -> 0x08 - is Bass drum - * -> 0x10 - is Snare - * -> 0x18 - is Tom-tom - * -> 0x20 - is Cymbal - * -> 0x28 - is Hi-hat - * 0) Reserved / Unused - * ``` - */ - ADL_UInt8 inst_flags; - /*! Feedback&Connection register for first and second operators */ - ADL_UInt8 fb_conn1_C0; - /*! Feedback&Connection register for third and fourth operators */ - ADL_UInt8 fb_conn2_C0; - /*! Operators register data */ - ADL_Operator operators[4]; - /*! Millisecond delay of sounding while key is on */ - ADL_UInt16 delay_on_ms; - /*! Millisecond delay of sounding after key off */ - ADL_UInt16 delay_off_ms; -} ADL_Instrument; - #ifdef __cplusplus } #endif diff --git a/thirdparty/adlmidi/adlmidi.hpp b/thirdparty/adlmidi/adlmidi.hpp deleted file mode 100644 index f2cd59d..0000000 --- a/thirdparty/adlmidi/adlmidi.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation - * - * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov - * - * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: - * http://iki.fi/bisqwit/source/adlmidi.html - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef ADLMIDI_HPP -#define ADLMIDI_HPP - -#include "adlmidi.h" - -struct ADL_MIDIPlayer; - -class ADLMIDI_DECLSPEC AdlInstrumentTester -{ - struct Impl; - Impl *P; - -public: - explicit AdlInstrumentTester(ADL_MIDIPlayer *device); - virtual ~AdlInstrumentTester(); - - // Find list of adlib instruments that supposedly implement this GM - void FindAdlList(); - void Touch(unsigned c, unsigned volume); - void DoNote(int note); - void NextGM(int offset); - void NextAdl(int offset); - bool HandleInputChar(char ch); - -private: - AdlInstrumentTester(const AdlInstrumentTester &); - AdlInstrumentTester &operator=(const AdlInstrumentTester &); -}; - -#endif //ADLMIDI_HPP - diff --git a/thirdparty/adlmidi/adlmidi_bankmap.h b/thirdparty/adlmidi/adlmidi_bankmap.h index 5d747d1..eb67f6f 100644 --- a/thirdparty/adlmidi/adlmidi_bankmap.h +++ b/thirdparty/adlmidi/adlmidi_bankmap.h @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html diff --git a/thirdparty/adlmidi/adlmidi_bankmap.tcc b/thirdparty/adlmidi/adlmidi_bankmap.tcc index 90d8894..30856a1 100644 --- a/thirdparty/adlmidi/adlmidi_bankmap.tcc +++ b/thirdparty/adlmidi/adlmidi_bankmap.tcc @@ -2,7 +2,7 @@ * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html diff --git a/thirdparty/adlmidi/adlmidi_cvt.hpp b/thirdparty/adlmidi/adlmidi_cvt.hpp index 449fe2f..072345c 100644 --- a/thirdparty/adlmidi/adlmidi_cvt.hpp +++ b/thirdparty/adlmidi/adlmidi_cvt.hpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -21,89 +21,80 @@ * along with this program. If not, see . */ -#include "adldata.hh" +#include "oplinst.h" #include "wopl/wopl_file.h" #include template -static void cvt_generic_to_FMIns(adlinsdata2 &ins, const WOPLI &in) +static void cvt_generic_to_FMIns(OplInstMeta &ins, const WOPLI &in) { ins.voice2_fine_tune = 0.0; - int8_t voice2_fine_tune = in.second_voice_detune; + int voice2_fine_tune = in.second_voice_detune; + if(voice2_fine_tune != 0) { - if(voice2_fine_tune == 1) - ins.voice2_fine_tune = 0.000025; - else if(voice2_fine_tune == -1) - ins.voice2_fine_tune = -0.000025; - else - ins.voice2_fine_tune = voice2_fine_tune * (15.625 / 1000.0); + // Simulate behavior of DMX second voice detune + ins.voice2_fine_tune = (double)(((voice2_fine_tune + 128) >> 1) - 64) / 32.0; } - ins.midi_velocity_offset = in.midi_velocity_offset; - ins.tone = in.percussion_key_number; - ins.flags = (in.inst_flags & WOPL_Ins_4op) && (in.inst_flags & WOPL_Ins_Pseudo4op) ? adlinsdata::Flag_Pseudo4op : 0; - ins.flags|= (in.inst_flags & WOPL_Ins_4op) && ((in.inst_flags & WOPL_Ins_Pseudo4op) == 0) ? adlinsdata::Flag_Real4op : 0; - ins.flags|= (in.inst_flags & WOPL_Ins_IsBlank) ? adlinsdata::Flag_NoSound : 0; + ins.midiVelocityOffset = in.midi_velocity_offset; + ins.drumTone = in.percussion_key_number; + ins.flags = (in.inst_flags & WOPL_Ins_4op) && (in.inst_flags & WOPL_Ins_Pseudo4op) ? OplInstMeta::Flag_Pseudo4op : 0; + ins.flags|= (in.inst_flags & WOPL_Ins_4op) && ((in.inst_flags & WOPL_Ins_Pseudo4op) == 0) ? OplInstMeta::Flag_Real4op : 0; + ins.flags|= (in.inst_flags & WOPL_Ins_IsBlank) ? OplInstMeta::Flag_NoSound : 0; ins.flags|= in.inst_flags & WOPL_RhythmModeMask; for(size_t op = 0, slt = 0; op < 4; op++, slt++) { - ins.adl[slt].carrier_E862 = + ins.op[slt].carrier_E862 = ((static_cast(in.operators[op].waveform_E0) << 24) & 0xFF000000) //WaveForm | ((static_cast(in.operators[op].susrel_80) << 16) & 0x00FF0000) //SusRel | ((static_cast(in.operators[op].atdec_60) << 8) & 0x0000FF00) //AtDec | ((static_cast(in.operators[op].avekf_20) << 0) & 0x000000FF); //AVEKM - ins.adl[slt].carrier_40 = in.operators[op].ksl_l_40;//KSLL + ins.op[slt].carrier_40 = in.operators[op].ksl_l_40;//KSLL op++; - ins.adl[slt].modulator_E862 = + ins.op[slt].modulator_E862 = ((static_cast(in.operators[op].waveform_E0) << 24) & 0xFF000000) //WaveForm | ((static_cast(in.operators[op].susrel_80) << 16) & 0x00FF0000) //SusRel | ((static_cast(in.operators[op].atdec_60) << 8) & 0x0000FF00) //AtDec | ((static_cast(in.operators[op].avekf_20) << 0) & 0x000000FF); //AVEKM - ins.adl[slt].modulator_40 = in.operators[op].ksl_l_40;//KSLL + ins.op[slt].modulator_40 = in.operators[op].ksl_l_40;//KSLL } - ins.adl[0].finetune = static_cast(in.note_offset1); - ins.adl[0].feedconn = in.fb_conn1_C0; - ins.adl[1].finetune = static_cast(in.note_offset2); - ins.adl[1].feedconn = in.fb_conn2_C0; + ins.op[0].noteOffset = static_cast(in.note_offset1); + ins.op[0].feedconn = in.fb_conn1_C0; + ins.op[1].noteOffset = static_cast(in.note_offset2); + ins.op[1].feedconn = in.fb_conn2_C0; - ins.ms_sound_kon = in.delay_on_ms; - ins.ms_sound_koff = in.delay_off_ms; + ins.soundKeyOnMs = in.delay_on_ms; + ins.soundKeyOffMs = in.delay_off_ms; } template -static void cvt_FMIns_to_generic(WOPLI &ins, const adlinsdata2 &in) +static void cvt_FMIns_to_generic(WOPLI &ins, const OplInstMeta &in) { ins.second_voice_detune = 0; double voice2_fine_tune = in.voice2_fine_tune; if(voice2_fine_tune != 0) { - if(voice2_fine_tune > 0 && voice2_fine_tune <= 0.000025) - ins.second_voice_detune = 1; - else if(voice2_fine_tune < 0 && voice2_fine_tune >= -0.000025) - ins.second_voice_detune = -1; - else - { - long value = static_cast(round(voice2_fine_tune * (1000.0 / 15.625))); - value = (value < -128) ? -128 : value; - value = (value > +127) ? +127 : value; - ins.second_voice_detune = static_cast(value); - } + int m = (int)(voice2_fine_tune * 32.0); + m += 64; + m <<= 1; + m -= 128; + ins.second_voice_detune = (uint8_t)m; } - ins.midi_velocity_offset = in.midi_velocity_offset; - ins.percussion_key_number = in.tone; - ins.inst_flags = (in.flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)) ? WOPL_Ins_4op : 0; - ins.inst_flags|= (in.flags & adlinsdata::Flag_Pseudo4op) ? WOPL_Ins_Pseudo4op : 0; - ins.inst_flags|= (in.flags & adlinsdata::Flag_NoSound) ? WOPL_Ins_IsBlank : 0; - ins.inst_flags |= in.flags & adlinsdata::Mask_RhythmMode; + ins.midi_velocity_offset = in.midiVelocityOffset; + ins.percussion_key_number = in.drumTone; + ins.inst_flags = (in.flags & (OplInstMeta::Flag_Pseudo4op|OplInstMeta::Flag_Real4op)) ? WOPL_Ins_4op : 0; + ins.inst_flags|= (in.flags & OplInstMeta::Flag_Pseudo4op) ? WOPL_Ins_Pseudo4op : 0; + ins.inst_flags|= (in.flags & OplInstMeta::Flag_NoSound) ? WOPL_Ins_IsBlank : 0; + ins.inst_flags |= in.flags & OplInstMeta::Mask_RhythmMode; for(size_t op = 0; op < 4; op++) { - const adldata &in2op = in.adl[(op < 2) ? 0 : 1]; + const OplTimbre &in2op = in.op[(op < 2) ? 0 : 1]; uint32_t regE862 = ((op & 1) == 0) ? in2op.carrier_E862 : in2op.modulator_E862; uint8_t reg40 = ((op & 1) == 0) ? in2op.carrier_40 : in2op.modulator_40; @@ -114,11 +105,11 @@ static void cvt_FMIns_to_generic(WOPLI &ins, const adlinsdata2 &in) ins.operators[op].ksl_l_40 = reg40; } - ins.note_offset1 = in.adl[0].finetune; - ins.fb_conn1_C0 = in.adl[0].feedconn; - ins.note_offset2 = in.adl[1].finetune; - ins.fb_conn2_C0 = in.adl[1].feedconn; + ins.note_offset1 = in.op[0].noteOffset; + ins.fb_conn1_C0 = in.op[0].feedconn; + ins.note_offset2 = in.op[1].noteOffset; + ins.fb_conn2_C0 = in.op[1].feedconn; - ins.delay_on_ms = in.ms_sound_kon; - ins.delay_off_ms = in.ms_sound_koff; + ins.delay_on_ms = in.soundKeyOnMs; + ins.delay_off_ms = in.soundKeyOffMs; } diff --git a/thirdparty/adlmidi/adlmidi_db.h b/thirdparty/adlmidi/adlmidi_db.h new file mode 100644 index 0000000..1a55e4b --- /dev/null +++ b/thirdparty/adlmidi/adlmidi_db.h @@ -0,0 +1,98 @@ +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation + * + * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov + * + * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: + * http://iki.fi/bisqwit/source/adlmidi.html + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#ifndef ADLDATA_DB_H +#define ADLDATA_DB_H + +#pragma once + +#include +#include +#include + +#ifndef _MSC_VER +#define ATTRIB_PACKED __attribute__((__packed__)) +#else +#define ATTRIB_PACKED +#endif + +typedef uint16_t bank_count_t; +typedef int16_t midi_bank_idx_t; + +#ifndef DISABLE_EMBEDDED_BANKS +extern const size_t g_embeddedBanksCount; +#endif + +namespace BanksDump +{ + +struct BankEntry +{ + uint16_t bankSetup; + bank_count_t banksMelodicCount; + bank_count_t banksPercussionCount; + const char *title; + bank_count_t banksOffsetMelodic; + bank_count_t banksOffsetPercussive; +} ATTRIB_PACKED; + +struct MidiBank +{ + uint8_t msb; + uint8_t lsb; + midi_bank_idx_t insts[128]; +} ATTRIB_PACKED; + +struct InstrumentEntry +{ + int16_t noteOffset1; + int16_t noteOffset2; + int8_t midiVelocityOffset; + uint8_t percussionKeyNumber; + uint8_t instFlags; + int8_t secondVoiceDetune; + uint16_t fbConn; + uint16_t delay_on_ms; + uint16_t delay_off_ms; + int16_t ops[4]; +} ATTRIB_PACKED; + +struct Operator +{ + uint32_t d_E862; + uint8_t d_40; +} ATTRIB_PACKED; + +} /* namespace BanksDump */ + +#ifndef DISABLE_EMBEDDED_BANKS +extern const char* const g_embeddedBankNames[]; +extern const BanksDump::BankEntry g_embeddedBanks[]; +extern const size_t g_embeddedBanksMidiIndex[]; +extern const BanksDump::MidiBank g_embeddedBanksMidi[]; +extern const BanksDump::InstrumentEntry g_embeddedBanksInstruments[]; +extern const BanksDump::Operator g_embeddedBanksOperators[]; +#endif + +#endif // ADLDATA_DB_H diff --git a/thirdparty/adlmidi/adlmidi_load.cpp b/thirdparty/adlmidi/adlmidi_load.cpp index 07ad875..9528c18 100644 --- a/thirdparty/adlmidi/adlmidi_load.cpp +++ b/thirdparty/adlmidi/adlmidi_load.cpp @@ -1,8 +1,8 @@ -/* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -21,8 +21,14 @@ * along with this program. If not, see . */ +#include "adlmidi_midiplay.hpp" +#include "adlmidi_opl3.hpp" #include "adlmidi_private.hpp" #include "adlmidi_cvt.hpp" +#include "file_reader.hpp" +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#include "midi_sequencer.hpp" +#endif #include "wopl/wopl_file.h" bool MIDIplay::LoadBank(const std::string &filename) @@ -39,12 +45,12 @@ bool MIDIplay::LoadBank(const void *data, size_t size) return LoadBank(file); } -void cvt_ADLI_to_FMIns(adlinsdata2 &ins, const ADL_Instrument &in) +void cvt_ADLI_to_FMIns(OplInstMeta &ins, const ADL_Instrument &in) { return cvt_generic_to_FMIns(ins, in); } -void cvt_FMIns_to_ADLI(ADL_Instrument &ins, const adlinsdata2 &in) +void cvt_FMIns_to_ADLI(ADL_Instrument &ins, const OplInstMeta &in) { cvt_FMIns_to_generic(ins, in); } @@ -104,17 +110,18 @@ bool MIDIplay::LoadBank(FileAndMemReader &fr) } } - m_synth.m_insBankSetup.adLibPercussions = false; - m_synth.m_insBankSetup.scaleModulators = false; - m_synth.m_insBankSetup.deepTremolo = (wopl->opl_flags & WOPL_FLAG_DEEP_TREMOLO) != 0; - m_synth.m_insBankSetup.deepVibrato = (wopl->opl_flags & WOPL_FLAG_DEEP_VIBRATO) != 0; - m_synth.m_insBankSetup.volumeModel = wopl->volume_model; + Synth &synth = *m_synth; + + synth.setEmbeddedBank(m_setup.bankId); + + synth.m_insBankSetup.scaleModulators = false; + synth.m_insBankSetup.deepTremolo = (wopl->opl_flags & WOPL_FLAG_DEEP_TREMOLO) != 0; + synth.m_insBankSetup.deepVibrato = (wopl->opl_flags & WOPL_FLAG_DEEP_VIBRATO) != 0; + synth.m_insBankSetup.volumeModel = wopl->volume_model; m_setup.deepTremoloMode = -1; m_setup.deepVibratoMode = -1; m_setup.volumeScaleModel = ADLMIDI_VolumeModel_AUTO; - m_synth.setEmbeddedBank(m_setup.bankId); - uint16_t slots_counts[2] = {wopl->banks_count_melodic, wopl->banks_count_percussion}; WOPLBank *slots_src_ins[2] = { wopl->banks_melodic, wopl->banks_percussive }; @@ -124,19 +131,19 @@ bool MIDIplay::LoadBank(FileAndMemReader &fr) { size_t bankno = (slots_src_ins[ss][i].bank_midi_msb * 256) + (slots_src_ins[ss][i].bank_midi_lsb) + - (ss ? size_t(OPL3::PercussionTag) : 0); - OPL3::Bank &bank = m_synth.m_insBanks[bankno]; + (ss ? size_t(Synth::PercussionTag) : 0); + Synth::Bank &bank = synth.m_insBanks[bankno]; for(int j = 0; j < 128; j++) { - adlinsdata2 &ins = bank.ins[j]; - std::memset(&ins, 0, sizeof(adlinsdata2)); + OplInstMeta &ins = bank.ins[j]; + std::memset(&ins, 0, sizeof(OplInstMeta)); WOPLInstrument &inIns = slots_src_ins[ss][i].ins[j]; cvt_generic_to_FMIns(ins, inIns); } } } - m_synth.m_embeddedBank = OPL3::CustomBankTag; // Use dynamic banks! + synth.m_embeddedBank = Synth::CustomBankTag; // Use dynamic banks! //Percussion offset is count of instruments multipled to count of melodic banks applySetup(); @@ -150,7 +157,8 @@ bool MIDIplay::LoadBank(FileAndMemReader &fr) bool MIDIplay::LoadMIDI_pre() { #ifdef DISABLE_EMBEDDED_BANKS - if((m_synth.m_embeddedBank != OPL3::CustomBankTag) || m_synth.m_insBanks.empty()) + Synth &synth = *m_synth; + if((synth.m_embeddedBank != Synth::CustomBankTag) || synth.m_insBanks.empty()) { errorStringOut = "Bank is not set! Please load any instruments bank by using of adl_openBankFile() or adl_openBankData() functions!"; return false; @@ -165,89 +173,97 @@ bool MIDIplay::LoadMIDI_pre() bool MIDIplay::LoadMIDI_post() { - MidiSequencer::FileFormat format = m_sequencer.getFormat(); + Synth &synth = *m_synth; + MidiSequencer &seq = *m_sequencer; + MidiSequencer::FileFormat format = seq.getFormat(); if(format == MidiSequencer::Format_CMF) { - const std::vector &instruments = m_sequencer.getRawCmfInstruments(); - m_synth.m_insBanks.clear();//Clean up old banks + const std::vector &instruments = seq.getRawCmfInstruments(); + synth.m_insBanks.clear();//Clean up old banks uint16_t ins_count = static_cast(instruments.size()); for(uint16_t i = 0; i < ins_count; ++i) { - const uint8_t *InsData = instruments[i].data; + const uint8_t *insData = instruments[i].data; size_t bank = i / 256; bank = ((bank & 127) + ((bank >> 7) << 8)); if(bank > 127 + (127 << 8)) break; - bank += (i % 256 < 128) ? 0 : size_t(OPL3::PercussionTag); + bank += (i % 256 < 128) ? 0 : size_t(Synth::PercussionTag); /*std::printf("Ins %3u: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", i, InsData[0],InsData[1],InsData[2],InsData[3], InsData[4],InsData[5],InsData[6],InsData[7], InsData[8],InsData[9],InsData[10],InsData[11], InsData[12],InsData[13],InsData[14],InsData[15]);*/ - adlinsdata2 &adlins = m_synth.m_insBanks[bank].ins[i % 128]; - adldata adl; + OplInstMeta &adlins = synth.m_insBanks[bank].ins[i % 128]; + OplTimbre adl; adl.modulator_E862 = - ((static_cast(InsData[8] & 0x07) << 24) & 0xFF000000) //WaveForm - | ((static_cast(InsData[6]) << 16) & 0x00FF0000) //Sustain/Release - | ((static_cast(InsData[4]) << 8) & 0x0000FF00) //Attack/Decay - | ((static_cast(InsData[0]) << 0) & 0x000000FF); //MultKEVA + ((static_cast(insData[8] & 0x07) << 24) & 0xFF000000) //WaveForm + | ((static_cast(insData[6]) << 16) & 0x00FF0000) //Sustain/Release + | ((static_cast(insData[4]) << 8) & 0x0000FF00) //Attack/Decay + | ((static_cast(insData[0]) << 0) & 0x000000FF); //MultKEVA adl.carrier_E862 = - ((static_cast(InsData[9] & 0x07) << 24) & 0xFF000000) //WaveForm - | ((static_cast(InsData[7]) << 16) & 0x00FF0000) //Sustain/Release - | ((static_cast(InsData[5]) << 8) & 0x0000FF00) //Attack/Decay - | ((static_cast(InsData[1]) << 0) & 0x000000FF); //MultKEVA - adl.modulator_40 = InsData[2]; - adl.carrier_40 = InsData[3]; - adl.feedconn = InsData[10] & 0x0F; - adl.finetune = 0; - adlins.adl[0] = adl; - adlins.adl[1] = adl; - adlins.ms_sound_kon = 1000; - adlins.ms_sound_koff = 500; - adlins.tone = 0; + ((static_cast(insData[9] & 0x07) << 24) & 0xFF000000) //WaveForm + | ((static_cast(insData[7]) << 16) & 0x00FF0000) //Sustain/Release + | ((static_cast(insData[5]) << 8) & 0x0000FF00) //Attack/Decay + | ((static_cast(insData[1]) << 0) & 0x000000FF); //MultKEVA + adl.modulator_40 = insData[2]; + adl.carrier_40 = insData[3]; + adl.feedconn = insData[10] & 0x0F; + adl.noteOffset = 0; + adlins.op[0] = adl; + adlins.op[1] = adl; + adlins.soundKeyOnMs = 1000; + adlins.soundKeyOffMs = 500; + adlins.drumTone = 0; adlins.flags = 0; adlins.voice2_fine_tune = 0.0; } - m_synth.m_embeddedBank = OPL3::CustomBankTag; // Ignore AdlBank number, use dynamic banks instead + synth.m_embeddedBank = Synth::CustomBankTag; // Ignore AdlBank number, use dynamic banks instead //std::printf("CMF deltas %u ticks %u, basictempo = %u\n", deltas, ticks, basictempo); - m_synth.m_rhythmMode = true; - m_synth.m_musicMode = OPL3::MODE_CMF; - m_synth.m_volumeScale = OPL3::VOLUME_NATIVE; + synth.m_rhythmMode = true; + synth.m_musicMode = Synth::MODE_CMF; + synth.m_volumeScale = Synth::VOLUME_NATIVE; - m_synth.m_numChips = 1; - m_synth.m_numFourOps = 0; + synth.m_numChips = 1; + synth.m_numFourOps = 0; } else if(format == MidiSequencer::Format_RSXX) { //opl.CartoonersVolumes = true; - m_synth.m_musicMode = OPL3::MODE_RSXX; - m_synth.m_volumeScale = OPL3::VOLUME_NATIVE; + synth.m_musicMode = Synth::MODE_RSXX; + synth.m_volumeScale = Synth::VOLUME_NATIVE; - m_synth.m_numChips = 1; - m_synth.m_numFourOps = 0; + synth.m_numChips = 1; + synth.m_numFourOps = 0; } else if(format == MidiSequencer::Format_IMF) { //std::fprintf(stderr, "Done reading IMF file\n"); - m_synth.m_numFourOps = 0; //Don't use 4-operator channels for IMF playing! - m_synth.m_musicMode = OPL3::MODE_IMF; + synth.m_numFourOps = 0; //Don't use 4-operator channels for IMF playing! + synth.m_rhythmMode = false;//Don't enforce rhythm-mode when it's unneeded + synth.m_musicMode = Synth::MODE_IMF; - m_synth.m_numChips = 1; - m_synth.m_numFourOps = 0; + synth.m_numChips = 1; + synth.m_numFourOps = 0; } else { - m_synth.m_numChips = m_setup.numChips; + if(format == MidiSequencer::Format_XMIDI) + synth.m_musicMode = Synth::MODE_XMIDI; + + synth.m_numChips = m_setup.numChips; if(m_setup.numFourOps < 0) adlCalculateFourOpChannels(this, true); } + resetMIDIDefaults(); + m_setup.tick_skip_samples_delay = 0; - m_synth.reset(m_setup.emulator, m_setup.PCM_RATE, this); // Reset OPL3 chip + synth.reset(m_setup.emulator, m_setup.PCM_RATE, this); // Reset OPL3 chip //opl.Reset(); // ...twice (just in case someone misprogrammed OPL3 previously) m_chipChannels.clear(); - m_chipChannels.resize(m_synth.m_numChannels); + m_chipChannels.resize(synth.m_numChannels); return true; } @@ -258,9 +274,10 @@ bool MIDIplay::LoadMIDI(const std::string &filename) file.openFile(filename.c_str()); if(!LoadMIDI_pre()) return false; - if(!m_sequencer.loadMIDI(file)) + MidiSequencer &seq = *m_sequencer; + if(!seq.loadMIDI(file)) { - errorStringOut = m_sequencer.getErrorString(); + errorStringOut = seq.getErrorString(); return false; } if(!LoadMIDI_post()) @@ -274,9 +291,10 @@ bool MIDIplay::LoadMIDI(const void *data, size_t size) file.openData(data, size); if(!LoadMIDI_pre()) return false; - if(!m_sequencer.loadMIDI(file)) + MidiSequencer &seq = *m_sequencer; + if(!seq.loadMIDI(file)) { - errorStringOut = m_sequencer.getErrorString(); + errorStringOut = seq.getErrorString(); return false; } if(!LoadMIDI_post()) diff --git a/thirdparty/adlmidi/adlmidi_midiplay.cpp b/thirdparty/adlmidi/adlmidi_midiplay.cpp index 1e1da07..657f825 100644 --- a/thirdparty/adlmidi/adlmidi_midiplay.cpp +++ b/thirdparty/adlmidi/adlmidi_midiplay.cpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -21,80 +21,19 @@ * along with this program. If not, see . */ +#include "adlmidi_midiplay.hpp" +#include "adlmidi_opl3.hpp" #include "adlmidi_private.hpp" +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#include "midi_sequencer.hpp" +#endif -// Mapping from MIDI volume level to OPL level value. - -static const uint_fast32_t DMX_volume_mapping_table[128] = -{ - 0, 1, 3, 5, 6, 8, 10, 11, - 13, 14, 16, 17, 19, 20, 22, 23, - 25, 26, 27, 29, 30, 32, 33, 34, - 36, 37, 39, 41, 43, 45, 47, 49, - 50, 52, 54, 55, 57, 59, 60, 61, - 63, 64, 66, 67, 68, 69, 71, 72, - 73, 74, 75, 76, 77, 79, 80, 81, - 82, 83, 84, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 92, 93, 94, 95, - 96, 96, 97, 98, 99, 99, 100, 101, - 101, 102, 103, 103, 104, 105, 105, 106, - 107, 107, 108, 109, 109, 110, 110, 111, - 112, 112, 113, 113, 114, 114, 115, 115, - 116, 117, 117, 118, 118, 119, 119, 120, - 120, 121, 121, 122, 122, 123, 123, 123, - 124, 124, 125, 125, 126, 126, 127, 127, -}; - -static const uint_fast32_t W9X_volume_mapping_table[32] = -{ - 63, 63, 40, 36, 32, 28, 23, 21, - 19, 17, 15, 14, 13, 12, 11, 10, - 9, 8, 7, 6, 5, 5, 4, 4, - 3, 3, 2, 2, 1, 1, 0, 0 -}; - - -//static const char MIDIsymbols[256+1] = -//"PPPPPPhcckmvmxbd" // Ins 0-15 -//"oooooahoGGGGGGGG" // Ins 16-31 -//"BBBBBBBBVVVVVHHM" // Ins 32-47 -//"SSSSOOOcTTTTTTTT" // Ins 48-63 -//"XXXXTTTFFFFFFFFF" // Ins 64-79 -//"LLLLLLLLpppppppp" // Ins 80-95 -//"XXXXXXXXGGGGGTSS" // Ins 96-111 -//"bbbbMMMcGXXXXXXX" // Ins 112-127 -//"????????????????" // Prc 0-15 -//"????????????????" // Prc 16-31 -//"???DDshMhhhCCCbM" // Prc 32-47 -//"CBDMMDDDMMDDDDDD" // Prc 48-63 -//"DDDDDDDDDDDDDDDD" // Prc 64-79 -//"DD??????????????" // Prc 80-95 -//"????????????????" // Prc 96-111 -//"????????????????"; // Prc 112-127 - -static const uint8_t PercussionMap[256] = - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"//GM - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" // 3 = bass drum - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" // 4 = snare - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" // 5 = tom - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" // 6 = cymbal - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" // 7 = hihat - "\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"//GP0 - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"//GP16 - //2 3 4 5 6 7 8 940 1 2 3 4 5 6 7 - "\0\0\0\3\3\0\0\7\0\5\7\5\0\5\7\5"//GP32 - //8 950 1 2 3 4 5 6 7 8 960 1 2 3 - "\5\6\5\0\6\0\5\6\0\6\0\6\5\5\5\5"//GP48 - //4 5 6 7 8 970 1 2 3 4 5 6 7 8 9 - "\5\0\0\0\0\0\7\0\0\0\0\0\0\0\0\0"//GP64 - "\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"; +// Minimum life time of percussion notes +static const double s_drum_note_min_time = 0.03; enum { MasterVolumeDefault = 127 }; + inline bool isXgPercChannel(uint8_t msb, uint8_t lsb) { return (msb == 0x7E || msb == 0x7F) && (lsb == 0); @@ -102,8 +41,8 @@ inline bool isXgPercChannel(uint8_t msb, uint8_t lsb) void MIDIplay::AdlChannel::addAge(int64_t us) { - const int64_t neg = 1000 * static_cast(-0x1FFFFFFFll); - if(users_empty()) + const int64_t neg = 1000 * static_cast(-0x1FFFFFFFl); + if(users.empty()) { koff_time_until_neglible_us = std::max(koff_time_until_neglible_us - us, neg); if(koff_time_until_neglible_us < 0) @@ -112,18 +51,18 @@ void MIDIplay::AdlChannel::addAge(int64_t us) else { koff_time_until_neglible_us = 0; - for(LocationData *i = users_first; i; i = i->next) + for(users_iterator i = users.begin(); !i.is_end(); ++i) { - if(!i->fixed_sustain) - i->kon_time_until_neglible_us = std::max(i->kon_time_until_neglible_us - us, neg); - i->vibdelay_us += us; + LocationData &d = i->value; + if(!d.fixed_sustain) + d.kon_time_until_neglible_us = std::max(d.kon_time_until_neglible_us - us, neg); + d.vibdelay_us += us; } } } MIDIplay::MIDIplay(unsigned long sampleRate): m_cmfPercussionMode(false), - m_masterVolume(MasterVolumeDefault), m_sysExDeviceId(0), m_synthMode(Mode_XG), m_arpeggioCounter(0) @@ -155,7 +94,10 @@ MIDIplay::MIDIplay(unsigned long sampleRate): m_setup.carry = 0.0; m_setup.tick_skip_samples_delay = 0; + m_synth.reset(new Synth); + #ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER + m_sequencer.reset(new MidiSequencer); initSequencerInterface(); #endif resetMIDI(); @@ -163,51 +105,59 @@ MIDIplay::MIDIplay(unsigned long sampleRate): realTime_ResetState(); } +MIDIplay::~MIDIplay() +{ +} + void MIDIplay::applySetup() { - m_synth.m_musicMode = OPL3::MODE_MIDI; + Synth &synth = *m_synth; + + synth.m_musicMode = Synth::MODE_MIDI; m_setup.tick_skip_samples_delay = 0; - m_synth.m_runAtPcmRate = m_setup.runAtPcmRate; + synth.m_runAtPcmRate = m_setup.runAtPcmRate; #ifndef DISABLE_EMBEDDED_BANKS - if(m_synth.m_embeddedBank != OPL3::CustomBankTag) - m_synth.m_insBankSetup = adlbanksetup[m_setup.bankId]; + if(synth.m_embeddedBank != Synth::CustomBankTag) + { + const BanksDump::BankEntry &b = g_embeddedBanks[m_setup.bankId]; + synth.m_insBankSetup.volumeModel = (b.bankSetup & 0x00FF); + synth.m_insBankSetup.deepTremolo = (b.bankSetup >> 8 & 0x0001) != 0; + synth.m_insBankSetup.deepVibrato = (b.bankSetup >> 8 & 0x0002) != 0; + } #endif - m_synth.m_deepTremoloMode = m_setup.deepTremoloMode < 0 ? - m_synth.m_insBankSetup.deepTremolo : - (m_setup.deepTremoloMode != 0); - m_synth.m_deepVibratoMode = m_setup.deepVibratoMode < 0 ? - m_synth.m_insBankSetup.deepVibrato : - (m_setup.deepVibratoMode != 0); - m_synth.m_rhythmMode = m_setup.rhythmMode < 0 ? - m_synth.m_insBankSetup.adLibPercussions : - (m_setup.rhythmMode != 0); - m_synth.m_scaleModulators = m_setup.scaleModulators < 0 ? - m_synth.m_insBankSetup.scaleModulators : - (m_setup.scaleModulators != 0); + synth.m_deepTremoloMode = m_setup.deepTremoloMode < 0 ? + synth.m_insBankSetup.deepTremolo : + (m_setup.deepTremoloMode != 0); + synth.m_deepVibratoMode = m_setup.deepVibratoMode < 0 ? + synth.m_insBankSetup.deepVibrato : + (m_setup.deepVibratoMode != 0); + synth.m_scaleModulators = m_setup.scaleModulators < 0 ? + synth.m_insBankSetup.scaleModulators : + (m_setup.scaleModulators != 0); if(m_setup.logarithmicVolumes) - m_synth.setVolumeScaleModel(ADLMIDI_VolumeModel_NativeOPL3); + synth.setVolumeScaleModel(ADLMIDI_VolumeModel_NativeOPL3); else - m_synth.setVolumeScaleModel(static_cast(m_setup.volumeScaleModel)); + synth.setVolumeScaleModel(static_cast(m_setup.volumeScaleModel)); if(m_setup.volumeScaleModel == ADLMIDI_VolumeModel_AUTO)//Use bank default volume model - m_synth.m_volumeScale = (OPL3::VolumesScale)m_synth.m_insBankSetup.volumeModel; + synth.m_volumeScale = (Synth::VolumesScale)synth.m_insBankSetup.volumeModel; - m_synth.m_numChips = m_setup.numChips; + synth.m_numChips = m_setup.numChips; m_cmfPercussionMode = false; if(m_setup.numFourOps >= 0) - m_synth.m_numFourOps = m_setup.numFourOps; + synth.m_numFourOps = m_setup.numFourOps; else adlCalculateFourOpChannels(this, true); - m_synth.reset(m_setup.emulator, m_setup.PCM_RATE, this); + synth.reset(m_setup.emulator, m_setup.PCM_RATE, this); m_chipChannels.clear(); - m_chipChannels.resize(m_synth.m_numChannels); + m_chipChannels.resize(synth.m_numChannels); // Reset the arpeggio counter m_arpeggioCounter = 0; @@ -215,17 +165,20 @@ void MIDIplay::applySetup() void MIDIplay::partialReset() { + Synth &synth = *m_synth; realTime_panic(); m_setup.tick_skip_samples_delay = 0; - m_synth.m_runAtPcmRate = m_setup.runAtPcmRate; - m_synth.reset(m_setup.emulator, m_setup.PCM_RATE, this); + synth.m_runAtPcmRate = m_setup.runAtPcmRate; + synth.reset(m_setup.emulator, m_setup.PCM_RATE, this); m_chipChannels.clear(); - m_chipChannels.resize((size_t)m_synth.m_numChannels); + m_chipChannels.resize((size_t)synth.m_numChannels); + resetMIDIDefaults(); } void MIDIplay::resetMIDI() { - m_masterVolume = MasterVolumeDefault; + Synth &synth = *m_synth; + synth.m_masterVolume = MasterVolumeDefault; m_sysExDeviceId = 0; m_synthMode = Mode_XG; m_arpeggioCounter = 0; @@ -233,15 +186,70 @@ void MIDIplay::resetMIDI() m_midiChannels.clear(); m_midiChannels.resize(16, MIDIchannel()); + resetMIDIDefaults(); + caugh_missing_instruments.clear(); caugh_missing_banks_melodic.clear(); caugh_missing_banks_percussion.clear(); } +void MIDIplay::resetMIDIDefaults(int offset) +{ + Synth &synth = *m_synth; + + for(size_t c = offset, n = m_midiChannels.size(); c < n; ++c) + { + MIDIchannel &ch = m_midiChannels[c]; + if(synth.m_musicMode == Synth::MODE_XMIDI) + { + ch.def_volume = 127; + ch.def_bendsense_lsb = 0; + ch.def_bendsense_msb = 12; + } + else + if(synth.m_musicMode == Synth::MODE_RSXX) + ch.def_volume = 127; + } +} + void MIDIplay::TickIterators(double s) { - for(uint16_t c = 0; c < m_synth.m_numChannels; ++c) - m_chipChannels[c].addAge(static_cast(s * 1e6)); + Synth &synth = *m_synth; + for(uint32_t c = 0, n = synth.m_numChannels; c < n; ++c) + { + AdlChannel &ch = m_chipChannels[c]; + ch.addAge(static_cast(s * 1e6)); + } + + // Resolve "hell of all times" of too short drum notes + for(size_t c = 0, n = m_midiChannels.size(); c < n; ++c) + { + MIDIchannel &ch = m_midiChannels[c]; + if(ch.extended_note_count == 0) + continue; + + for(MIDIchannel::notes_iterator inext = ch.activenotes.begin(); !inext.is_end();) + { + MIDIchannel::notes_iterator i(inext++); + MIDIchannel::NoteInfo &ni = i->value; + + double ttl = ni.ttl; + if(ttl <= 0) + continue; + + ni.ttl = ttl = ttl - s; + if(ttl <= 0) + { + --ch.extended_note_count; + if(ni.isOnExtendedLifeTime) + { + noteUpdate(c, i, Upd_Off); + ni.isOnExtendedLifeTime = false; + } + } + } + } + updateVibrato(s); updateArpeggio(s); #if !defined(ADLMIDI_AUDIO_TICK_HANDLER) @@ -251,11 +259,11 @@ void MIDIplay::TickIterators(double s) void MIDIplay::realTime_ResetState() { + Synth &synth = *m_synth; for(size_t ch = 0; ch < m_midiChannels.size(); ch++) { MIDIchannel &chan = m_midiChannels[ch]; chan.resetAllControllers(); - chan.volume = (m_synth.m_musicMode == OPL3::MODE_RSXX) ? 127 : 100; chan.vibpos = 0.0; chan.lastlrpn = 0; chan.lastmrpn = 0; @@ -265,23 +273,26 @@ void MIDIplay::realTime_ResetState() noteUpdateAll(uint16_t(ch), Upd_All); noteUpdateAll(uint16_t(ch), Upd_Off); } - m_masterVolume = MasterVolumeDefault; + synth.m_masterVolume = MasterVolumeDefault; } bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) { + Synth &synth = *m_synth; + if(note >= 128) note = 127; - if((m_synth.m_musicMode == OPL3::MODE_RSXX) && (velocity != 0)) + if((synth.m_musicMode == Synth::MODE_RSXX) && (velocity != 0)) { // Check if this is just a note after-touch - MIDIchannel::activenoteiterator i = m_midiChannels[channel].activenotes_find(note); - if(i) + MIDIchannel::notes_iterator i = m_midiChannels[channel].find_activenote(note); + if(!i.is_end()) { - const int veloffset = i->ains->midi_velocity_offset; + MIDIchannel::NoteInfo &ni = i->value; + const int veloffset = ni.ains->midiVelocityOffset; velocity = (uint8_t)std::min(127, std::max(1, (int)velocity + veloffset)); - i->vol = velocity; + ni.vol = velocity; noteUpdate(channel, i, Upd_Volume); return false; } @@ -289,7 +300,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) if(static_cast(channel) > m_midiChannels.size()) channel = channel % 16; - noteOff(channel, note); + noteOff(channel, note, velocity != 0); // On Note on, Keyoff the note first, just in case keyoff // was omitted; this fixes Dance of sugar-plum fairy // by Microsoft. Now that we've done a Keyoff, @@ -328,17 +339,17 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) } if(isPercussion) - bank += OPL3::PercussionTag; + bank += Synth::PercussionTag; - const adlinsdata2 *ains = &OPL3::m_emptyInstrument; + const OplInstMeta *ains = &Synth::m_emptyInstrument; //Set bank bank - const OPL3::Bank *bnk = NULL; + const Synth::Bank *bnk = NULL; bool caughtMissingBank = false; - if((bank & ~static_cast(OPL3::PercussionTag)) > 0) + if((bank & ~static_cast(Synth::PercussionTag)) > 0) { - OPL3::BankMap::iterator b = m_synth.m_insBanks.find(bank); - if(b != m_synth.m_insBanks.end()) + Synth::BankMap::iterator b = synth.m_insBanks.find(bank); + if(b != synth.m_insBanks.end()) bnk = &b->second; if(bnk) ains = &bnk->ins[midiins]; @@ -347,14 +358,14 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) } //Or fall back to bank ignoring LSB (GS) - if((ains->flags & adlinsdata::Flag_NoSound) && ((m_synthMode & Mode_GS) != 0)) + if((ains->flags & OplInstMeta::Flag_NoSound) && ((m_synthMode & Mode_GS) != 0)) { size_t fallback = bank & ~(size_t)0x7F; if(fallback != bank) { - OPL3::BankMap::iterator b = m_synth.m_insBanks.find(fallback); + Synth::BankMap::iterator b = synth.m_insBanks.find(fallback); caughtMissingBank = false; - if(b != m_synth.m_insBanks.end()) + if(b != synth.m_insBanks.end()) bnk = &b->second; if(bnk) ains = &bnk->ins[midiins]; @@ -373,27 +384,27 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) { hooks.onDebugMessage(hooks.onDebugMessage_userData, "[%i] Playing missing %s MIDI bank %i (patch %i)", - channel, text, (bank & ~static_cast(OPL3::PercussionTag)), midiins); + channel, text, (bank & ~static_cast(Synth::PercussionTag)), midiins); } } //Or fall back to first bank - if((ains->flags & adlinsdata::Flag_NoSound) != 0) + if((ains->flags & OplInstMeta::Flag_NoSound) != 0) { - OPL3::BankMap::iterator b = m_synth.m_insBanks.find(bank & OPL3::PercussionTag); - if(b != m_synth.m_insBanks.end()) + Synth::BankMap::iterator b = synth.m_insBanks.find(bank & Synth::PercussionTag); + if(b != synth.m_insBanks.end()) bnk = &b->second; if(bnk) ains = &bnk->ins[midiins]; } - const int veloffset = ains->midi_velocity_offset; + const int veloffset = ains->midiVelocityOffset; velocity = (uint8_t)std::min(127, std::max(1, (int)velocity + veloffset)); int32_t tone = note; if(!isPercussion && (bank > 0)) // For non-zero banks { - if(ains->flags & adlinsdata::Flag_NoSound) + if(ains->flags & OplInstMeta::Flag_NoSound) { if(hooks.onDebugMessage && caugh_missing_instruments.insert(static_cast(midiins)).second) { @@ -406,40 +417,45 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) } } - if(ains->tone) + if(ains->drumTone) { - /*if(ains->tone < 20) - tone += ains->tone; - else*/ - if(ains->tone < 128) - tone = ains->tone; + if(ains->drumTone >= 128) + tone = ains->drumTone - 128; else - tone -= ains->tone - 128; + tone = ains->drumTone; } //uint16_t i[2] = { ains->adlno1, ains->adlno2 }; - bool is_2op = !(ains->flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)); - bool pseudo_4op = ains->flags & adlinsdata::Flag_Pseudo4op; + bool is_2op = !(ains->flags & (OplInstMeta::Flag_Pseudo4op|OplInstMeta::Flag_Real4op)); + bool pseudo_4op = ains->flags & OplInstMeta::Flag_Pseudo4op; #ifndef __WATCOMC__ MIDIchannel::NoteInfo::Phys voices[MIDIchannel::NoteInfo::MaxNumPhysChans] = { - {0, ains->adl[0], false}, - {0, (!is_2op) ? ains->adl[1] : ains->adl[0], pseudo_4op} + {0, ains->op[0], false}, + {0, (!is_2op) ? ains->op[1] : ains->op[0], pseudo_4op} }; -#else /* Unfortunately, WatCom can't brace-initialize structure that incluses structure fields */ +#else /* Unfortunately, Watcom can't brace-initialize structure that incluses structure fields */ MIDIchannel::NoteInfo::Phys voices[MIDIchannel::NoteInfo::MaxNumPhysChans]; voices[0].chip_chan = 0; - voices[0].ains = ains->adl[0]; + voices[0].op = ains->op[0]; voices[0].pseudo4op = false; voices[1].chip_chan = 0; - voices[1].ains = (!is_2op) ? ains->adl[1] : ains->adl[0]; + voices[1].op = (!is_2op) ? ains->op[1] : ains->op[0]; voices[1].pseudo4op = pseudo_4op; #endif /* __WATCOMC__ */ - if((m_synth.m_rhythmMode == 1) && PercussionMap[midiins & 0xFF]) + if( + (synth.m_rhythmMode == 1) && + ( + ((ains->flags & OplInstMeta::Mask_RhythmMode) != 0) || + (m_cmfPercussionMode && (channel >= 11)) + ) + ) + { voices[1] = voices[0];//i[1] = i[0]; + } - bool isBlankNote = (ains->flags & adlinsdata::Flag_NoSound) != 0; + bool isBlankNote = (ains->flags & OplInstMeta::Flag_NoSound) != 0; if(hooks.onDebugMessage) { @@ -450,11 +466,13 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) if(isBlankNote) { // Don't even try to play the blank instrument! But, insert the dummy note. - std::pair - dummy = midiChan.activenotes_insert(note); - dummy.first->isBlank = true; - dummy.first->ains = NULL; - dummy.first->chip_channels_count = 0; + MIDIchannel::notes_iterator i = midiChan.ensure_find_or_create_activenote(note); + MIDIchannel::NoteInfo &dummy = i->value; + dummy.isBlank = true; + dummy.isOnExtendedLifeTime = false; + dummy.ttl = 0; + dummy.ains = NULL; + dummy.chip_channels_count = 0; // Record the last note on MIDI channel as source of portamento midiChan.portamentoSource = static_cast(note); return false; @@ -476,7 +494,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) int32_t c = -1; int32_t bs = -0x7FFFFFFFl; - for(size_t a = 0; a < (size_t)m_synth.m_numChannels; ++a) + for(size_t a = 0; a < (size_t)synth.m_numChannels; ++a) { if(ccount == 1 && static_cast(a) == adlchannel[0]) continue; // ^ Don't use the same channel for primary&secondary @@ -486,15 +504,30 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) // Only use regular channels uint32_t expected_mode = 0; - if(m_synth.m_rhythmMode) + if(synth.m_rhythmMode) { if(m_cmfPercussionMode) - expected_mode = channel < 11 ? 0 : (3 + channel - 11); // CMF + { + expected_mode = channel < 11 ? OPL3::ChanCat_Regular : (OPL3::ChanCat_Rhythm_Bass + (channel - 11)); // CMF + } else - expected_mode = PercussionMap[midiins & 0xFF]; + { + expected_mode = OPL3::ChanCat_Regular; + uint32_t rm = (ains->flags & OplInstMeta::Mask_RhythmMode); + if(rm == OplInstMeta::Flag_RM_BassDrum) + expected_mode = OPL3::ChanCat_Rhythm_Bass; + else if(rm == OplInstMeta::Flag_RM_Snare) + expected_mode = OPL3::ChanCat_Rhythm_Snare; + else if(rm == OplInstMeta::Flag_RM_TomTom) + expected_mode = OPL3::ChanCat_Rhythm_Tom; + else if(rm == OplInstMeta::Flag_RM_Cymbal) + expected_mode = OPL3::ChanCat_Rhythm_Cymbal; + else if(rm == OplInstMeta::Flag_RM_HiHat) + expected_mode = OPL3::ChanCat_Rhythm_HiHat; + } } - if(m_synth.m_channelCategory[a] != expected_mode) + if(synth.m_channelCategory[a] != expected_mode) continue; } else @@ -502,7 +535,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) if(ccount == 0) { // Only use four-op master channels - if(m_synth.m_channelCategory[a] != OPL3::ChanCat_4op_Master) + if(synth.m_channelCategory[a] != Synth::ChanCat_4op_First) continue; } else @@ -547,18 +580,20 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) velocity = static_cast(std::floor(static_cast(velocity) * 0.8f)); // Allocate active note for MIDI channel - std::pair - ir = midiChan.activenotes_insert(note); - ir.first->vol = velocity; - ir.first->vibrato = midiChan.noteAftertouch[note]; - ir.first->noteTone = static_cast(tone); - ir.first->currentTone = tone; - ir.first->glideRate = HUGE_VAL; - ir.first->midiins = midiins; - ir.first->isPercussion = isPercussion; - ir.first->isBlank = isBlankNote; - ir.first->ains = ains; - ir.first->chip_channels_count = 0; + MIDIchannel::notes_iterator ir = midiChan.ensure_find_or_create_activenote(note); + MIDIchannel::NoteInfo &ni = ir->value; + ni.vol = velocity; + ni.vibrato = midiChan.noteAftertouch[note]; + ni.noteTone = static_cast(tone); + ni.currentTone = tone; + ni.glideRate = HUGE_VAL; + ni.midiins = midiins; + ni.isPercussion = isPercussion; + ni.isBlank = isBlankNote; + ni.isOnExtendedLifeTime = false; + ni.ttl = 0; + ni.ains = ains; + ni.chip_channels_count = 0; int8_t currentPortamentoSource = midiChan.portamentoSource; double currentPortamentoRate = midiChan.portamentoRate; @@ -571,21 +606,28 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) // Enable gliding on portamento note if (portamentoEnable && currentPortamentoSource >= 0) { - ir.first->currentTone = currentPortamentoSource; - ir.first->glideRate = currentPortamentoRate; + ni.currentTone = currentPortamentoSource; + ni.glideRate = currentPortamentoRate; ++midiChan.gliding_note_count; } + // Enable life time extension on percussion note + if (isPercussion) + { + ni.ttl = s_drum_note_min_time; + ++midiChan.extended_note_count; + } + for(unsigned ccount = 0; ccount < MIDIchannel::NoteInfo::MaxNumPhysChans; ++ccount) { int32_t c = adlchannel[ccount]; if(c < 0) continue; uint16_t chipChan = static_cast(adlchannel[ccount]); - ir.first->phys_ensure_find_or_create(chipChan)->assign(voices[ccount]); + ni.phys_ensure_find_or_create(chipChan)->assign(voices[ccount]); } - noteUpdate(channel, ir.first, Upd_All | Upd_Patch); + noteUpdate(channel, ir, Upd_All | Upd_Patch); for(unsigned ccount = 0; ccount < MIDIchannel::NoteInfo::MaxNumPhysChans; ++ccount) { @@ -611,10 +653,10 @@ void MIDIplay::realTime_NoteAfterTouch(uint8_t channel, uint8_t note, uint8_t at if(static_cast(channel) > m_midiChannels.size()) channel = channel % 16; MIDIchannel &chan = m_midiChannels[channel]; - MIDIchannel::activenoteiterator i = m_midiChannels[channel].activenotes_find(note); - if(i) + MIDIchannel::notes_iterator i = m_midiChannels[channel].find_activenote(note); + if(!i.is_end()) { - i->vibrato = atVal; + i->value.vibrato = atVal; } uint8_t oldAtVal = chan.noteAftertouch[note % 128]; @@ -637,8 +679,14 @@ void MIDIplay::realTime_ChannelAfterTouch(uint8_t channel, uint8_t atVal) void MIDIplay::realTime_Controller(uint8_t channel, uint8_t type, uint8_t value) { + Synth &synth = *m_synth; + + if(value > 127) // Allowed values 0~127 only + value = 127; + if(static_cast(channel) > m_midiChannels.size()) channel = channel % 16; + switch(type) { case 1: // Adjust vibrato @@ -712,7 +760,7 @@ void MIDIplay::realTime_Controller(uint8_t channel, uint8_t type, uint8_t value) break; case 121: // Reset all controllers - m_midiChannels[channel].resetAllControllers(); + m_midiChannels[channel].resetAllControllers121(); noteUpdateAll(channel, Upd_Pan + Upd_Volume + Upd_Pitch); // Kill all sustained notes killSustainingNotes(channel, -1, AdlChannel::LocationData::Sustain_ANY); @@ -773,7 +821,7 @@ void MIDIplay::realTime_Controller(uint8_t channel, uint8_t type, uint8_t value) break; case 103: - if(m_synth.m_musicMode == OPL3::MODE_CMF) + if(synth.m_musicMode == Synth::MODE_CMF) m_cmfPercussionMode = (value != 0); break; // CMF (ctrl 0x67) rhythm mode @@ -892,7 +940,8 @@ bool MIDIplay::doUniversalSysEx(unsigned dev, bool realtime, const uint8_t *data unsigned volume = (((unsigned)data[0] & 0x7F)) | (((unsigned)data[1] & 0x7F) << 7); - m_masterVolume = static_cast(volume >> 7); + if(m_synth.get()) + m_synth->m_masterVolume = static_cast(volume >> 7); for(size_t ch = 0; ch < m_midiChannels.size(); ch++) noteUpdateAll(uint16_t(ch), Upd_Volume); return true; @@ -1069,11 +1118,12 @@ size_t MIDIplay::realTime_currentDevice(size_t track) void MIDIplay::realTime_rawOPL(uint8_t reg, uint8_t value) { + Synth &synth = *m_synth; if((reg & 0xF0) == 0xC0) value |= 0x30; //std::printf("OPL poke %02X, %02X\n", reg, value); //std::fflush(stdout); - m_synth.writeReg(0, reg, value); + synth.writeReg(0, reg, value); } #if defined(ADLMIDI_AUDIO_TICK_HANDLER) @@ -1096,16 +1146,17 @@ void MIDIplay::AudioTick(uint32_t chipId, uint32_t rate) #endif void MIDIplay::noteUpdate(size_t midCh, - MIDIplay::MIDIchannel::activenoteiterator i, + MIDIplay::MIDIchannel::notes_iterator i, unsigned props_mask, int32_t select_adlchn) { - MIDIchannel::NoteInfo &info = *i; + Synth &synth = *m_synth; + MIDIchannel::NoteInfo &info = i->value; const int16_t noteTone = info.noteTone; const double currentTone = info.currentTone; const uint8_t vol = info.vol; const int midiins = static_cast(info.midiins); - const adlinsdata2 &ains = *info.ains; + const OplInstMeta &ains = *info.ains; AdlChannel::Location my_loc; my_loc.MidCh = static_cast(midCh); my_loc.note = info.note; @@ -1113,7 +1164,7 @@ void MIDIplay::noteUpdate(size_t midCh, if(info.isBlank) { if(props_mask & Upd_Off) - m_midiChannels[midCh].activenotes_erase(i); + m_midiChannels[midCh].activenotes.erase(i); return; } @@ -1126,15 +1177,16 @@ void MIDIplay::noteUpdate(size_t midCh, if(props_mask & Upd_Patch) { - m_synth.setPatch(c, ins.ains); - AdlChannel::LocationData *d = m_chipChannels[c].users_find_or_create(my_loc); - if(d) // inserts if necessary + synth.setPatch(c, ins.op); + AdlChannel::users_iterator i = m_chipChannels[c].find_or_create_user(my_loc); + if(!i.is_end()) // inserts if necessary { - d->sustained = AdlChannel::LocationData::Sustain_None; - d->vibdelay_us = 0; - d->fixed_sustain = (ains.ms_sound_kon == static_cast(adlNoteOnMaxTime)); - d->kon_time_until_neglible_us = 1000 * ains.ms_sound_kon; - d->ins = ins; + AdlChannel::LocationData &d = i->value; + d.sustained = AdlChannel::LocationData::Sustain_None; + d.vibdelay_us = 0; + d.fixed_sustain = (ains.soundKeyOnMs == static_cast(OPLNoteOnMaxTime)); + d.kon_time_until_neglible_us = 1000 * ains.soundKeyOnMs; + d.ins = ins; } } } @@ -1143,7 +1195,7 @@ void MIDIplay::noteUpdate(size_t midCh, { const MIDIchannel::NoteInfo::Phys &ins = info.chip_channels[ccount]; uint16_t c = ins.chip_chan; - uint16_t c_slave = info.chip_channels[1].chip_chan; + uint16_t c_secondary = info.chip_channels[1].chip_chan; if(select_adlchn >= 0 && c != select_adlchn) continue; @@ -1152,25 +1204,25 @@ void MIDIplay::noteUpdate(size_t midCh, { if(!m_midiChannels[midCh].sustain) { - AdlChannel::LocationData *k = m_chipChannels[c].users_find(my_loc); - bool do_erase_user = (k && ((k->sustained & AdlChannel::LocationData::Sustain_Sostenuto) == 0)); + AdlChannel::users_iterator k = m_chipChannels[c].find_user(my_loc); + bool do_erase_user = (!k.is_end() && ((k->value.sustained & AdlChannel::LocationData::Sustain_Sostenuto) == 0)); if(do_erase_user) - m_chipChannels[c].users_erase(k); + m_chipChannels[c].users.erase(k); if(hooks.onNote) hooks.onNote(hooks.onNote_userData, c, noteTone, midiins, 0, 0.0); - if(do_erase_user && m_chipChannels[c].users_empty()) + if(do_erase_user && m_chipChannels[c].users.empty()) { - m_synth.noteOff(c); + synth.noteOff(c); if(props_mask & Upd_Mute) // Mute the note { - m_synth.touchNote(c, 0); + synth.touchNote(c, 0, 0, 0); m_chipChannels[c].koff_time_until_neglible_us = 0; } else { - m_chipChannels[c].koff_time_until_neglible_us = 1000 * int64_t(ains.ms_sound_koff); + m_chipChannels[c].koff_time_until_neglible_us = 1000 * int64_t(ains.soundKeyOffMs); } } } @@ -1178,9 +1230,9 @@ void MIDIplay::noteUpdate(size_t midCh, { // Sustain: Forget about the note, but don't key it off. // Also will avoid overwriting it very soon. - AdlChannel::LocationData *d = m_chipChannels[c].users_find_or_create(my_loc); - if(d) - d->sustained |= AdlChannel::LocationData::Sustain_Pedal; // note: not erased! + AdlChannel::users_iterator d = m_chipChannels[c].find_or_create_user(my_loc); + if(!d.is_end()) + d->value.sustained |= AdlChannel::LocationData::Sustain_Pedal; // note: not erased! if(hooks.onNote) hooks.onNote(hooks.onNote_userData, c, noteTone, midiins, -1, 0.0); } @@ -1191,13 +1243,13 @@ void MIDIplay::noteUpdate(size_t midCh, } if(props_mask & Upd_Pan) - m_synth.setPan(c, m_midiChannels[midCh].panning); + synth.setPan(c, m_midiChannels[midCh].panning); if(props_mask & Upd_Volume) { - uint_fast32_t volume; - bool is_percussion = (midCh == 9) || m_midiChannels[midCh].is_xg_percussion; - uint_fast32_t brightness = is_percussion ? 127 : m_midiChannels[midCh].brightness; + const MIDIchannel &ch = m_midiChannels[midCh]; + bool is_percussion = (midCh == 9) || ch.is_xg_percussion; + uint_fast32_t brightness = ch.brightness; if(!m_setup.fullRangeBrightnessCC74) { @@ -1208,63 +1260,12 @@ void MIDIplay::noteUpdate(size_t midCh, brightness *= 2; } - switch(m_synth.m_volumeScale) - { - default: - case OPL3::VOLUME_Generic: - { - volume = vol * m_masterVolume * m_midiChannels[midCh].volume * m_midiChannels[midCh].expression; - - /* If the channel has arpeggio, the effective volume of - * *this* instrument is actually lower due to timesharing. - * To compensate, add extra volume that corresponds to the - * time this note is *not* heard. - * Empirical tests however show that a full equal-proportion - * increment sounds wrong. Therefore, using the square root. - */ - //volume = (int)(volume * std::sqrt( (double) ch[c].users.size() )); - - // The formula below: SOLVE(V=127^4 * 2^( (A-63.49999) / 8), A) - volume = volume > (8725 * 127) ? static_cast(std::log(static_cast(volume)) * 11.541560327111707 - 1.601379199767093e+02) : 0; - // The incorrect formula below: SOLVE(V=127^4 * (2^(A/63)-1), A) - //opl.Touch_Real(c, volume>(11210*127) ? 91.61112 * std::log((4.8819E-7/127)*volume + 1.0)+0.5 : 0); - } - break; - - case OPL3::VOLUME_NATIVE: - { - volume = vol * m_midiChannels[midCh].volume * m_midiChannels[midCh].expression; - // volume = volume * m_masterVolume / (127 * 127 * 127) / 2; - volume = (volume * m_masterVolume) / 4096766; - } - break; - - case OPL3::VOLUME_DMX: - { - volume = 2 * (m_midiChannels[midCh].volume * m_midiChannels[midCh].expression * m_masterVolume / 16129) + 1; - //volume = 2 * (Ch[MidCh].volume) + 1; - volume = (DMX_volume_mapping_table[(vol < 128) ? vol : 127] * volume) >> 9; - } - break; - - case OPL3::VOLUME_APOGEE: - { - volume = (m_midiChannels[midCh].volume * m_midiChannels[midCh].expression * m_masterVolume / 16129); - volume = ((64 * (vol + 0x80)) * volume) >> 15; - //volume = ((63 * (vol + 0x80)) * Ch[MidCh].volume) >> 15; - } - break; - - case OPL3::VOLUME_9X: - { - //volume = 63 - W9X_volume_mapping_table[(((vol * Ch[MidCh].volume /** Ch[MidCh].expression*/) * m_masterVolume / 16129 /*2048383*/) >> 2)]; - volume = 63 - W9X_volume_mapping_table[((vol * m_midiChannels[midCh].volume * m_midiChannels[midCh].expression * m_masterVolume / 2048383) >> 2)]; - //volume = W9X_volume_mapping_table[vol >> 2] + volume; - } - break; - } - - m_synth.touchNote(c, static_cast(volume), static_cast(brightness)); + synth.touchNote(c, + vol, + ch.volume, + ch.expression, + brightness, + is_percussion); /* DEBUG ONLY!!! static uint32_t max = 0; @@ -1282,28 +1283,29 @@ void MIDIplay::noteUpdate(size_t midCh, if(props_mask & Upd_Pitch) { - AdlChannel::LocationData *d = m_chipChannels[c].users_find(my_loc); + AdlChannel::users_iterator d = m_chipChannels[c].find_user(my_loc); // Don't bend a sustained note - if(!d || (d->sustained == AdlChannel::LocationData::Sustain_None)) + if(d.is_end() || (d->value.sustained == AdlChannel::LocationData::Sustain_None)) { - double midibend = m_midiChannels[midCh].bend * m_midiChannels[midCh].bendsense; - double bend = midibend + ins.ains.finetune; + MIDIchannel &chan = m_midiChannels[midCh]; + double midibend = chan.bend * chan.bendsense; + double bend = midibend + ins.op.noteOffset; double phase = 0.0; - uint8_t vibrato = std::max(m_midiChannels[midCh].vibrato, m_midiChannels[midCh].aftertouch); - vibrato = std::max(vibrato, i->vibrato); + uint8_t vibrato = std::max(chan.vibrato, chan.aftertouch); - if((ains.flags & adlinsdata::Flag_Pseudo4op) && ins.pseudo4op) + vibrato = std::max(vibrato, info.vibrato); + + if((ains.flags & OplInstMeta::Flag_Pseudo4op) && ins.pseudo4op) { - phase = ains.voice2_fine_tune;//0.125; // Detune the note slightly (this is what Doom does) + phase = ains.voice2_fine_tune; } - if(vibrato && (!d || d->vibdelay_us >= m_midiChannels[midCh].vibdelay_us)) - bend += static_cast(vibrato) * m_midiChannels[midCh].vibdepth * std::sin(m_midiChannels[midCh].vibpos); + if(vibrato && (d.is_end() || d->value.vibdelay_us >= chan.vibdelay_us)) + bend += static_cast(vibrato) * chan.vibdepth * std::sin(chan.vibpos); + + synth.noteOn(c, c_secondary, currentTone + bend + phase); -#define BEND_COEFFICIENT 172.4387 - m_synth.noteOn(c, c_slave, BEND_COEFFICIENT * std::exp(0.057762265 * (currentTone + bend + phase))); -#undef BEND_COEFFICIENT if(hooks.onNote) hooks.onNote(hooks.onNote_userData, c, noteTone, midiins, vol, midibend); } @@ -1312,18 +1314,17 @@ void MIDIplay::noteUpdate(size_t midCh, if(info.chip_channels_count == 0) { - if(i->glideRate != HUGE_VAL) - --m_midiChannels[midCh].gliding_note_count; - m_midiChannels[midCh].activenotes_erase(i); + m_midiChannels[midCh].cleanupNote(i); + m_midiChannels[midCh].activenotes.erase(i); } } void MIDIplay::noteUpdateAll(size_t midCh, unsigned props_mask) { - for(MIDIchannel::activenoteiterator - i = m_midiChannels[midCh].activenotes_begin(); i;) + for(MIDIchannel::notes_iterator + i = m_midiChannels[midCh].activenotes.begin(); !i.is_end();) { - MIDIchannel::activenoteiterator j(i++); + MIDIchannel::notes_iterator j(i++); noteUpdate(midCh, j, props_mask); } } @@ -1340,46 +1341,64 @@ void MIDIplay::setErrorString(const std::string &err) int64_t MIDIplay::calculateChipChannelGoodness(size_t c, const MIDIchannel::NoteInfo::Phys &ins) const { + Synth &synth = *m_synth; const AdlChannel &chan = m_chipChannels[c]; int64_t koff_ms = chan.koff_time_until_neglible_us / 1000; int64_t s = -koff_ms; // Rate channel with a releasing note - if(s < 0 && chan.users_empty()) + if(s < 0 && chan.users.empty()) { + bool isSame = (chan.recent_ins == ins); s -= 40000; + // If it's same instrument, better chance to get it when no free channels - if(chan.recent_ins == ins) - s = (m_synth.m_musicMode == OPL3::MODE_CMF) ? 0 : -koff_ms; + if(synth.m_musicMode == Synth::MODE_CMF) + { + if(isSame) + s = 0; // Re-use releasing channel with the same instrument + } + else if(synth.m_volumeScale == Synth::VOLUME_HMI) + { + s = 0; // HMI doesn't care about the same instrument + } + else + { + if(isSame) + s = -koff_ms; // Wait until releasing sound will complete + } + return s; } // Same midi-instrument = some stability - for(AdlChannel::LocationData *j = chan.users_first; j; j = j->next) + for(AdlChannel::const_users_iterator j = chan.users.begin(); !j.is_end(); ++j) { - s -= 4000000; + const AdlChannel::LocationData &jd = j->value; - int64_t kon_ms = j->kon_time_until_neglible_us / 1000; - s -= (j->sustained == AdlChannel::LocationData::Sustain_None) ? - kon_ms : (kon_ms / 2); + int64_t kon_ms = jd.kon_time_until_neglible_us / 1000; + s -= (jd.sustained == AdlChannel::LocationData::Sustain_None) ? + (4000000 + kon_ms) : (500000 + (kon_ms / 2)); - MIDIchannel::activenoteiterator - k = const_cast(m_midiChannels[j->loc.MidCh]).activenotes_find(j->loc.note); + MIDIchannel::notes_iterator + k = const_cast(m_midiChannels[jd.loc.MidCh]).find_activenote(jd.loc.note); - if(k) + if(!k.is_end()) { + const MIDIchannel::NoteInfo &info = k->value; + // Same instrument = good - if(j->ins == ins) + if(jd.ins == ins) { s += 300; // Arpeggio candidate = even better - if(j->vibdelay_us < 70000 - || j->kon_time_until_neglible_us > 20000000) + if(jd.vibdelay_us < 70000 + || jd.kon_time_until_neglible_us > 20000000) s += 10; } // Percussion is inferior to melody - s += k->isPercussion ? 50 : 0; + s += info.isPercussion ? 50 : 0; /* if(k->second.midiins >= 25 && k->second.midiins < 40 @@ -1395,18 +1414,19 @@ int64_t MIDIplay::calculateChipChannelGoodness(size_t c, const MIDIchannel::Note // increase the score slightly. unsigned n_evacuation_stations = 0; - for(size_t c2 = 0; c2 < static_cast(m_synth.m_numChannels); ++c2) + for(size_t c2 = 0; c2 < static_cast(synth.m_numChannels); ++c2) { if(c2 == c) continue; - if(m_synth.m_channelCategory[c2] - != m_synth.m_channelCategory[c]) continue; + if(synth.m_channelCategory[c2] + != synth.m_channelCategory[c]) continue; - for(AdlChannel::LocationData *m = m_chipChannels[c2].users_first; m; m = m->next) + for(AdlChannel::const_users_iterator m = m_chipChannels[c2].users.begin(); !m.is_end(); ++m) { - if(m->sustained != AdlChannel::LocationData::Sustain_None) continue; - if(m->vibdelay_us >= 200000) continue; - if(m->ins != j->ins) continue; + const AdlChannel::LocationData &md = m->value; + if(md.sustained != AdlChannel::LocationData::Sustain_None) continue; + if(md.vibdelay_us >= 200000) continue; + if(md.ins != jd.ins) continue; n_evacuation_stations += 1; } } @@ -1420,25 +1440,28 @@ int64_t MIDIplay::calculateChipChannelGoodness(size_t c, const MIDIchannel::Note void MIDIplay::prepareChipChannelForNewNote(size_t c, const MIDIchannel::NoteInfo::Phys &ins) { - if(m_chipChannels[c].users_empty()) return; // Nothing to do + if(m_chipChannels[c].users.empty()) return; // Nothing to do + + Synth &synth = *m_synth; //bool doing_arpeggio = false; - for(AdlChannel::LocationData *jnext = m_chipChannels[c].users_first; jnext;) + for(AdlChannel::users_iterator jnext = m_chipChannels[c].users.begin(); !jnext.is_end();) { - AdlChannel::LocationData *j = jnext; - jnext = jnext->next; + AdlChannel::users_iterator j = jnext; + AdlChannel::LocationData &jd = jnext->value; + ++jnext; - if(j->sustained == AdlChannel::LocationData::Sustain_None) + if(jd.sustained == AdlChannel::LocationData::Sustain_None) { // Collision: Kill old note, // UNLESS we're going to do arpeggio - MIDIchannel::activenoteiterator i - (m_midiChannels[j->loc.MidCh].activenotes_ensure_find(j->loc.note)); + MIDIchannel::notes_iterator i + (m_midiChannels[jd.loc.MidCh].ensure_find_activenote(jd.loc.note)); // Check if we can do arpeggio. - if((j->vibdelay_us < 70000 - || j->kon_time_until_neglible_us > 20000000) - && j->ins == ins) + if((jd.vibdelay_us < 70000 + || jd.kon_time_until_neglible_us > 20000000) + && jd.ins == ins) { // Do arpeggio together with this note. //doing_arpeggio = true; @@ -1457,22 +1480,25 @@ void MIDIplay::prepareChipChannelForNewNote(size_t c, const MIDIchannel::NoteInf // Keyoff the channel so that it can be retriggered, // unless the new note will be introduced as just an arpeggio. - if(m_chipChannels[c].users_empty()) - m_synth.noteOff(c); + if(m_chipChannels[c].users.empty()) + synth.noteOff(c); } void MIDIplay::killOrEvacuate(size_t from_channel, - AdlChannel::LocationData *j, - MIDIplay::MIDIchannel::activenoteiterator i) + AdlChannel::users_iterator j, + MIDIplay::MIDIchannel::notes_iterator i) { + Synth &synth = *m_synth; uint32_t maxChannels = ADL_MAX_CHIPS * 18; + AdlChannel::LocationData &jd = j->value; + MIDIchannel::NoteInfo &info = i->value; // Before killing the note, check if it can be // evacuated to another channel as an arpeggio // instrument. This helps if e.g. all channels // are full of strings and we want to do percussion. // FIXME: This does not care about four-op entanglements. - for(uint32_t c = 0; c < m_synth.m_numChannels; ++c) + for(uint32_t c = 0; c < synth.m_numChannels; ++c) { uint16_t cs = static_cast(c); @@ -1480,50 +1506,48 @@ void MIDIplay::killOrEvacuate(size_t from_channel, break; if(c == from_channel) continue; - if(m_synth.m_channelCategory[c] != m_synth.m_channelCategory[from_channel]) + if(synth.m_channelCategory[c] != synth.m_channelCategory[from_channel]) continue; AdlChannel &adlch = m_chipChannels[c]; - if(adlch.users_size == AdlChannel::users_max) + if(adlch.users.size() == adlch.users.capacity()) continue; // no room for more arpeggio on channel - for(AdlChannel::LocationData *m = adlch.users_first; m; m = m->next) + if(!m_chipChannels[cs].find_user(jd.loc).is_end()) + continue; // channel already has this note playing (sustained) + // avoid introducing a duplicate location. + + for(AdlChannel::users_iterator m = adlch.users.begin(); !m.is_end(); ++m) { - if(m->vibdelay_us >= 200000 - && m->kon_time_until_neglible_us < 10000000) continue; - if(m->ins != j->ins) + AdlChannel::LocationData &mv = m->value; + + if(mv.vibdelay_us >= 200000 + && mv.kon_time_until_neglible_us < 10000000) continue; + if(mv.ins != jd.ins) continue; if(hooks.onNote) { hooks.onNote(hooks.onNote_userData, (int)from_channel, - i->noteTone, - static_cast(i->midiins), 0, 0.0); + info.noteTone, + static_cast(info.midiins), 0, 0.0); hooks.onNote(hooks.onNote_userData, (int)c, - i->noteTone, - static_cast(i->midiins), - i->vol, 0.0); + info.noteTone, + static_cast(info.midiins), + info.vol, 0.0); } - i->phys_erase(static_cast(from_channel)); - i->phys_ensure_find_or_create(cs)->assign(j->ins); - if(!m_chipChannels[cs].users_insert(*j)) - assert(false); - m_chipChannels[from_channel].users_erase(j); + info.phys_erase(static_cast(from_channel)); + info.phys_ensure_find_or_create(cs)->assign(jd.ins); + m_chipChannels[cs].users.push_back(jd); + m_chipChannels[from_channel].users.erase(j); return; } } - /*UI.PrintLn( - "collision @%u: [%ld] <- ins[%3u]", - c, - //ch[c].midiins<128?'M':'P', ch[c].midiins&127, - ch[c].age, //adlins[ch[c].insmeta].ms_sound_kon, - ins - );*/ // Kill it - noteUpdate(j->loc.MidCh, + noteUpdate(jd.loc.MidCh, i, Upd_Off, static_cast(from_channel)); @@ -1540,7 +1564,8 @@ void MIDIplay::panic() void MIDIplay::killSustainingNotes(int32_t midCh, int32_t this_adlchn, uint32_t sustain_type) { - uint32_t first = 0, last = m_synth.m_numChannels; + Synth &synth = *m_synth; + uint32_t first = 0, last = synth.m_numChannels; if(this_adlchn >= 0) { @@ -1550,46 +1575,49 @@ void MIDIplay::killSustainingNotes(int32_t midCh, int32_t this_adlchn, uint32_t for(uint32_t c = first; c < last; ++c) { - if(m_chipChannels[c].users_empty()) + if(m_chipChannels[c].users.empty()) continue; // Nothing to do - for(AdlChannel::LocationData *jnext = m_chipChannels[c].users_first; jnext;) + for(AdlChannel::users_iterator jnext = m_chipChannels[c].users.begin(); !jnext.is_end();) { - AdlChannel::LocationData *j = jnext; - jnext = jnext->next; + AdlChannel::users_iterator j = jnext; + AdlChannel::LocationData &jd = j->value; + ++jnext; - if((midCh < 0 || j->loc.MidCh == midCh) - && ((j->sustained & sustain_type) != 0)) + if((midCh < 0 || jd.loc.MidCh == midCh) + && ((jd.sustained & sustain_type) != 0)) { int midiins = '?'; if(hooks.onNote) - hooks.onNote(hooks.onNote_userData, (int)c, j->loc.note, midiins, 0, 0.0); - j->sustained &= ~sustain_type; - if(j->sustained == AdlChannel::LocationData::Sustain_None) - m_chipChannels[c].users_erase(j);//Remove only when note is clean from any holders + hooks.onNote(hooks.onNote_userData, (int)c, jd.loc.note, midiins, 0, 0.0); + jd.sustained &= ~sustain_type; + if(jd.sustained == AdlChannel::LocationData::Sustain_None) + m_chipChannels[c].users.erase(j);//Remove only when note is clean from any holders } } // Keyoff the channel, if there are no users left. - if(m_chipChannels[c].users_empty()) - m_synth.noteOff(c); + if(m_chipChannels[c].users.empty()) + synth.noteOff(c); } } void MIDIplay::markSostenutoNotes(int32_t midCh) { - uint32_t first = 0, last = m_synth.m_numChannels; + Synth &synth = *m_synth; + uint32_t first = 0, last = synth.m_numChannels; for(uint32_t c = first; c < last; ++c) { - if(m_chipChannels[c].users_empty()) + if(m_chipChannels[c].users.empty()) continue; // Nothing to do - for(AdlChannel::LocationData *jnext = m_chipChannels[c].users_first; jnext;) + for(AdlChannel::users_iterator jnext = m_chipChannels[c].users.begin(); !jnext.is_end();) { - AdlChannel::LocationData *j = jnext; - jnext = jnext->next; - if((j->loc.MidCh == midCh) && (j->sustained == AdlChannel::LocationData::Sustain_None)) - j->sustained |= AdlChannel::LocationData::Sustain_Sostenuto; + AdlChannel::users_iterator j = jnext; + AdlChannel::LocationData &jd = j->value; + ++jnext; + if((jd.loc.MidCh == midCh) && (jd.sustained == AdlChannel::LocationData::Sustain_None)) + jd.sustained |= AdlChannel::LocationData::Sustain_Sostenuto; } } } @@ -1646,12 +1674,19 @@ void MIDIplay::updatePortamento(size_t midCh) } -void MIDIplay::noteOff(size_t midCh, uint8_t note) +void MIDIplay::noteOff(size_t midCh, uint8_t note, bool forceNow) { - MIDIchannel::activenoteiterator - i = m_midiChannels[midCh].activenotes_find(note); - if(i) - noteUpdate(midCh, i, Upd_Off); + MIDIchannel &ch = m_midiChannels[midCh]; + MIDIchannel::notes_iterator i = ch.find_activenote(note); + + if(!i.is_end()) + { + MIDIchannel::NoteInfo &ni = i->value; + if(forceNow || ni.ttl <= 0) + noteUpdate(midCh, i, Upd_Off); + else + ni.isOnExtendedLifeTime = true; + } } @@ -1659,7 +1694,7 @@ void MIDIplay::updateVibrato(double amount) { for(size_t a = 0, b = m_midiChannels.size(); a < b; ++a) { - if(m_midiChannels[a].hasVibrato() && !m_midiChannels[a].activenotes_empty()) + if(m_midiChannels[a].hasVibrato() && !m_midiChannels[a].activenotes.empty()) { noteUpdateAll(static_cast(a), Upd_Pitch); m_midiChannels[a].vibpos += amount * m_midiChannels[a].vibspeed; @@ -1679,6 +1714,7 @@ size_t MIDIplay::chooseDevice(const std::string &name) size_t n = m_midiDevices.size() * 16; m_midiDevices.insert(std::make_pair(name, n)); m_midiChannels.resize(n + 16); + resetMIDIDefaults(n); return n; } @@ -1686,6 +1722,9 @@ void MIDIplay::updateArpeggio(double) // amount = amount of time passed { // If there is an adlib channel that has multiple notes // simulated on the same channel, arpeggio them. + + Synth &synth = *m_synth; + #if 0 const unsigned desired_arpeggio_rate = 40; // Hz (upper limit) # if 1 @@ -1708,17 +1747,17 @@ void MIDIplay::updateArpeggio(double) // amount = amount of time passed ++m_arpeggioCounter; - for(uint32_t c = 0; c < m_synth.m_numChannels; ++c) + for(uint32_t c = 0; c < synth.m_numChannels; ++c) { retry_arpeggio: if(c > uint32_t(std::numeric_limits::max())) break; - size_t n_users = m_chipChannels[c].users_size; + size_t n_users = m_chipChannels[c].users.size(); if(n_users > 1) { - AdlChannel::LocationData *i = m_chipChannels[c].users_first; + AdlChannel::users_iterator i = m_chipChannels[c].users.begin(); size_t rate_reduction = 3; if(n_users >= 3) @@ -1729,23 +1768,24 @@ void MIDIplay::updateArpeggio(double) // amount = amount of time passed for(size_t count = (m_arpeggioCounter / rate_reduction) % n_users, n = 0; n < count; ++n) - i = i->next; + ++i; - if(i->sustained == AdlChannel::LocationData::Sustain_None) + AdlChannel::LocationData &d = i->value; + if(d.sustained == AdlChannel::LocationData::Sustain_None) { - if(i->kon_time_until_neglible_us <= 0) + if(d.kon_time_until_neglible_us <= 0) { noteUpdate( - i->loc.MidCh, - m_midiChannels[ i->loc.MidCh ].activenotes_ensure_find(i->loc.note), + d.loc.MidCh, + m_midiChannels[ d.loc.MidCh ].ensure_find_activenote(d.loc.note), Upd_Off, static_cast(c)); goto retry_arpeggio; } noteUpdate( - i->loc.MidCh, - m_midiChannels[ i->loc.MidCh ].activenotes_ensure_find(i->loc.note), + d.loc.MidCh, + m_midiChannels[ d.loc.MidCh ].ensure_find_activenote(d.loc.note), Upd_Pitch | Upd_Volume | Upd_Pan, static_cast(c)); } @@ -1763,14 +1803,15 @@ void MIDIplay::updateGlide(double amount) if(midiChan.gliding_note_count == 0) continue; - for(MIDIchannel::activenoteiterator it = midiChan.activenotes_begin(); - it; ++it) + for(MIDIchannel::notes_iterator it = midiChan.activenotes.begin(); + !it.is_end(); ++it) { - double finalTone = it->noteTone; - double previousTone = it->currentTone; + MIDIchannel::NoteInfo &info = it->value; + double finalTone = info.noteTone; + double previousTone = info.currentTone; bool directionUp = previousTone < finalTone; - double toneIncr = amount * (directionUp ? +it->glideRate : -it->glideRate); + double toneIncr = amount * (directionUp ? +info.glideRate : -info.glideRate); double currentTone = previousTone + toneIncr; bool glideFinished = !(directionUp ? (currentTone < finalTone) : (currentTone > finalTone)); @@ -1778,7 +1819,7 @@ void MIDIplay::updateGlide(double amount) if(currentTone != previousTone) { - it->currentTone = currentTone; + info.currentTone = currentTone; noteUpdate(static_cast(channel), it, Upd_Pitch); } } @@ -1790,7 +1831,7 @@ void MIDIplay::describeChannels(char *str, char *attr, size_t size) if (!str || size <= 0) return; - OPL3 &synth = m_synth; + Synth &synth = *m_synth; uint32_t numChannels = synth.m_numChannels; uint32_t index = 0; @@ -1798,12 +1839,15 @@ void MIDIplay::describeChannels(char *str, char *attr, size_t size) { const AdlChannel &adlChannel = m_chipChannels[index]; - AdlChannel::LocationData *loc = adlChannel.users_first; - if(!loc) // off + AdlChannel::const_users_iterator loc = adlChannel.users.begin(); + AdlChannel::const_users_iterator locnext(loc); + if(!loc.is_end()) ++locnext; + + if(loc.is_end()) // off { str[index] = '-'; } - else if(loc->next) // arpeggio + else if(!locnext.is_end()) // arpeggio { str[index] = '@'; } @@ -1811,11 +1855,11 @@ void MIDIplay::describeChannels(char *str, char *attr, size_t size) { switch(synth.m_channelCategory[index]) { - case OPL3::ChanCat_Regular: + case Synth::ChanCat_Regular: str[index] = '+'; break; - case OPL3::ChanCat_4op_Master: - case OPL3::ChanCat_4op_Slave: + case Synth::ChanCat_4op_First: + case Synth::ChanCat_4op_Second: str[index] = '#'; break; default: // rhythm-mode percussion @@ -1825,8 +1869,8 @@ void MIDIplay::describeChannels(char *str, char *attr, size_t size) } uint8_t attribute = 0; - if (loc) // 4-bit color index of MIDI channel - attribute |= (uint8_t)(loc->loc.MidCh & 0xF); + if (!loc.is_end()) // 4-bit color index of MIDI channel + attribute |= (uint8_t)(loc->value.loc.MidCh & 0xF); attr[index] = (char)attribute; ++index; @@ -1835,359 +1879,3 @@ void MIDIplay::describeChannels(char *str, char *attr, size_t size) str[index] = 0; attr[index] = 0; } - -#ifndef ADLMIDI_DISABLE_CPP_EXTRAS - -struct AdlInstrumentTester::Impl -{ - uint32_t cur_gm; - uint32_t ins_idx; - std::vector adl_ins_list; - OPL3 *opl; - MIDIplay *play; -}; - -ADLMIDI_EXPORT AdlInstrumentTester::AdlInstrumentTester(ADL_MIDIPlayer *device) - : P(new Impl) -{ -#ifndef DISABLE_EMBEDDED_BANKS - MIDIplay *play = reinterpret_cast(device->adl_midiPlayer); - P->cur_gm = 0; - P->ins_idx = 0; - P->play = play; - P->opl = play ? &play->m_synth : NULL; -#else - ADL_UNUSED(device); -#endif -} - -ADLMIDI_EXPORT AdlInstrumentTester::~AdlInstrumentTester() -{ - delete P; -} - -ADLMIDI_EXPORT void AdlInstrumentTester::FindAdlList() -{ -#ifndef DISABLE_EMBEDDED_BANKS - const unsigned NumBanks = (unsigned)adl_getBanksCount(); - std::set adl_ins_set; - for(unsigned bankno = 0; bankno < NumBanks; ++bankno) - adl_ins_set.insert(banks[bankno][P->cur_gm]); - P->adl_ins_list.assign(adl_ins_set.begin(), adl_ins_set.end()); - P->ins_idx = 0; - NextAdl(0); - P->opl->silenceAll(); -#endif -} - - - -ADLMIDI_EXPORT void AdlInstrumentTester::Touch(unsigned c, unsigned volume) // Volume maxes at 127*127*127 -{ -#ifndef DISABLE_EMBEDDED_BANKS - OPL3 *opl = P->opl; - if(opl->m_volumeScale == OPL3::VOLUME_NATIVE) - opl->touchNote(c, static_cast(volume * 127 / (127 * 127 * 127) / 2)); - else - { - // The formula below: SOLVE(V=127^3 * 2^( (A-63.49999) / 8), A) - opl->touchNote(c, static_cast(volume > 8725 ? static_cast(std::log((double)volume) * 11.541561 + (0.5 - 104.22845)) : 0)); - // The incorrect formula below: SOLVE(V=127^3 * (2^(A/63)-1), A) - //Touch_Real(c, volume>11210 ? 91.61112 * std::log(4.8819E-7*volume + 1.0)+0.5 : 0); - } -#else - ADL_UNUSED(c); - ADL_UNUSED(volume); -#endif -} - -ADLMIDI_EXPORT void AdlInstrumentTester::DoNote(int note) -{ -#ifndef DISABLE_EMBEDDED_BANKS - MIDIplay *play = P->play; - OPL3 *opl = P->opl; - if(P->adl_ins_list.empty()) FindAdlList(); - const unsigned meta = P->adl_ins_list[P->ins_idx]; - const adlinsdata2 ains = adlinsdata2::from_adldata(::adlins[meta]); - - int tone = (P->cur_gm & 128) ? (P->cur_gm & 127) : (note + 50); - if(ains.tone) - { - /*if(ains.tone < 20) - tone += ains.tone; - else */ - if(ains.tone < 128) - tone = ains.tone; - else - tone -= ains.tone - 128; - } - double hertz = 172.00093 * std::exp(0.057762265 * (tone + 0.0)); - int32_t adlchannel[2] = { 0, 3 }; - if((ains.flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)) == 0) - { - adlchannel[1] = -1; - adlchannel[0] = 6; // single-op - if(play->hooks.onDebugMessage) - { - play->hooks.onDebugMessage(play->hooks.onDebugMessage_userData, - "noteon at %d for %g Hz\n", adlchannel[0], hertz); - } - } - else - { - if(play->hooks.onDebugMessage) - { - play->hooks.onDebugMessage(play->hooks.onDebugMessage_userData, - "noteon at %d and %d for %g Hz\n", adlchannel[0], adlchannel[1], hertz); - } - } - - opl->noteOff(0); - opl->noteOff(3); - opl->noteOff(6); - for(unsigned c = 0; c < 2; ++c) - { - if(adlchannel[c] < 0) continue; - opl->setPatch(static_cast(adlchannel[c]), ains.adl[c]); - opl->touchNote(static_cast(adlchannel[c]), 63); - opl->setPan(static_cast(adlchannel[c]), 0x30); - opl->noteOn(static_cast(adlchannel[c]), static_cast(adlchannel[1]), hertz); - } -#else - ADL_UNUSED(note); -#endif -} - -ADLMIDI_EXPORT void AdlInstrumentTester::NextGM(int offset) -{ -#ifndef DISABLE_EMBEDDED_BANKS - P->cur_gm = (P->cur_gm + 256 + (uint32_t)offset) & 0xFF; - FindAdlList(); -#else - ADL_UNUSED(offset); -#endif -} - -ADLMIDI_EXPORT void AdlInstrumentTester::NextAdl(int offset) -{ -#ifndef DISABLE_EMBEDDED_BANKS - //OPL3 *opl = P->opl; - if(P->adl_ins_list.empty()) FindAdlList(); - const unsigned NumBanks = (unsigned)adl_getBanksCount(); - P->ins_idx = (uint32_t)((int32_t)P->ins_idx + (int32_t)P->adl_ins_list.size() + offset) % (int32_t)P->adl_ins_list.size(); - -#if 0 - UI.Color(15); - std::fflush(stderr); - std::printf("SELECTED G%c%d\t%s\n", - cur_gm < 128 ? 'M' : 'P', cur_gm < 128 ? cur_gm + 1 : cur_gm - 128, - "<-> select GM, ^v select ins, qwe play note"); - std::fflush(stdout); - UI.Color(7); - std::fflush(stderr); -#endif - - for(size_t a = 0, n = P->adl_ins_list.size(); a < n; ++a) - { - const unsigned i = P->adl_ins_list[a]; - const adlinsdata2 ains = adlinsdata2::from_adldata(::adlins[i]); - - char ToneIndication[8] = " "; - if(ains.tone) - { - /*if(ains.tone < 20) - snprintf(ToneIndication, 8, "+%-2d", ains.tone); - else*/ - if(ains.tone < 128) - snprintf(ToneIndication, 8, "=%-2d", ains.tone); - else - snprintf(ToneIndication, 8, "-%-2d", ains.tone - 128); - } - std::printf("%s%s%s%u\t", - ToneIndication, - (ains.flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)) ? "[2]" : " ", - (P->ins_idx == a) ? "->" : "\t", - i - ); - - for(unsigned bankno = 0; bankno < NumBanks; ++bankno) - if(banks[bankno][P->cur_gm] == i) - std::printf(" %u", bankno); - - std::printf("\n"); - } -#else - ADL_UNUSED(offset); -#endif -} - -ADLMIDI_EXPORT bool AdlInstrumentTester::HandleInputChar(char ch) -{ -#ifndef DISABLE_EMBEDDED_BANKS - static const char notes[] = "zsxdcvgbhnjmq2w3er5t6y7ui9o0p"; - // c'd'ef'g'a'bC'D'EF'G'A'Bc'd'e - switch(ch) - { - case '/': - case 'H': - case 'A': - NextAdl(-1); - break; - case '*': - case 'P': - case 'B': - NextAdl(+1); - break; - case '-': - case 'K': - case 'D': - NextGM(-1); - break; - case '+': - case 'M': - case 'C': - NextGM(+1); - break; - case 3: -#if !((!defined(__WIN32__) || defined(__CYGWIN__)) && !defined(__DJGPP__)) - case 27: -#endif - return false; - default: - const char *p = std::strchr(notes, ch); - if(p && *p) - DoNote((int)(p - notes) - 12); - } -#else - ADL_UNUSED(ch); -#endif - return true; -} - -#endif /* ADLMIDI_DISABLE_CPP_EXTRAS */ - -// Implement the user map data structure. - -bool MIDIplay::AdlChannel::users_empty() const -{ - return !users_first; -} - -MIDIplay::AdlChannel::LocationData *MIDIplay::AdlChannel::users_find(Location loc) -{ - LocationData *user = NULL; - for(LocationData *curr = users_first; !user && curr; curr = curr->next) - if(curr->loc == loc) - user = curr; - return user; -} - -MIDIplay::AdlChannel::LocationData *MIDIplay::AdlChannel::users_allocate() -{ - // remove free cells front - LocationData *user = users_free_cells; - if(!user) - return NULL; - users_free_cells = user->next; - if(users_free_cells) - users_free_cells->prev = NULL; - // add to users front - if(users_first) - users_first->prev = user; - user->prev = NULL; - user->next = users_first; - users_first = user; - ++users_size; - return user; -} - -MIDIplay::AdlChannel::LocationData *MIDIplay::AdlChannel::users_find_or_create(Location loc) -{ - LocationData *user = users_find(loc); - if(!user) - { - user = users_allocate(); - if(!user) - return NULL; - LocationData *prev = user->prev, *next = user->next; - *user = LocationData(); - user->prev = prev; - user->next = next; - user->loc = loc; - } - return user; -} - -MIDIplay::AdlChannel::LocationData *MIDIplay::AdlChannel::users_insert(const LocationData &x) -{ - LocationData *user = users_find(x.loc); - if(!user) - { - user = users_allocate(); - if(!user) - return NULL; - LocationData *prev = user->prev, *next = user->next; - *user = x; - user->prev = prev; - user->next = next; - } - return user; -} - -void MIDIplay::AdlChannel::users_erase(LocationData *user) -{ - if(user->prev) - user->prev->next = user->next; - if(user->next) - user->next->prev = user->prev; - if(user == users_first) - users_first = user->next; - user->prev = NULL; - user->next = users_free_cells; - users_free_cells = user; - --users_size; -} - -void MIDIplay::AdlChannel::users_clear() -{ - users_first = NULL; - users_free_cells = users_cells; - users_size = 0; - for(size_t i = 0; i < users_max; ++i) - { - users_cells[i].prev = (i > 0) ? &users_cells[i - 1] : NULL; - users_cells[i].next = (i + 1 < users_max) ? &users_cells[i + 1] : NULL; - } -} - -void MIDIplay::AdlChannel::users_assign(const LocationData *users, size_t count) -{ - ADL_UNUSED(count);//Avoid warning for release builds - assert(count <= users_max); - if(users == users_first && users) - { - // self assignment - assert(users_size == count); - return; - } - users_clear(); - const LocationData *src_cell = users; - // move to the last - if(src_cell) - { - while(src_cell->next) - src_cell = src_cell->next; - } - // push cell copies in reverse order - while(src_cell) - { - LocationData *dst_cell = users_allocate(); - assert(dst_cell); - LocationData *prev = dst_cell->prev, *next = dst_cell->next; - *dst_cell = *src_cell; - dst_cell->prev = prev; - dst_cell->next = next; - src_cell = src_cell->prev; - } - assert(users_size == count); -} diff --git a/thirdparty/adlmidi/adlmidi_midiplay.hpp b/thirdparty/adlmidi/adlmidi_midiplay.hpp new file mode 100644 index 0000000..ef54db2 --- /dev/null +++ b/thirdparty/adlmidi/adlmidi_midiplay.hpp @@ -0,0 +1,1025 @@ +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation + * + * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov + * + * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: + * http://iki.fi/bisqwit/source/adlmidi.html + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef ADLMIDI_MIDIPLAY_HPP +#define ADLMIDI_MIDIPLAY_HPP + +#include "oplinst.h" +#include "adlmidi_private.hpp" +#include "adlmidi_ptr.hpp" +#include "structures/pl_list.hpp" + +/** + * @brief Hooks of the internal events + */ +struct MIDIEventHooks +{ + MIDIEventHooks() : + onNote(NULL), + onNote_userData(NULL), + onDebugMessage(NULL), + onDebugMessage_userData(NULL) + {} + + //! Note on/off hooks + typedef void (*NoteHook)(void *userdata, int adlchn, int note, int ins, int pressure, double bend); + NoteHook onNote; + void *onNote_userData; + + //! Library internal debug messages + typedef void (*DebugMessageHook)(void *userdata, const char *fmt, ...); + DebugMessageHook onDebugMessage; + void *onDebugMessage_userData; +}; + +class MIDIplay +{ + friend void adl_reset(struct ADL_MIDIPlayer*); +public: + explicit MIDIplay(unsigned long sampleRate = 22050); + ~MIDIplay(); + + void applySetup(); + + void partialReset(); + void resetMIDI(); + +private: + void resetMIDIDefaults(int offset = 0); + +public: + /**********************Internal structures and classes**********************/ + + /** + * @brief Persistent settings for each MIDI channel + */ + struct MIDIchannel + { + //! Default MIDI volume + uint8_t def_volume; + //! Default LSB of a bend sensitivity + int def_bendsense_lsb; + //! Default MSB of a bend sensitivity + int def_bendsense_msb; + + //! LSB Bank number + uint8_t bank_lsb, + //! MSB Bank number + bank_msb; + //! Current patch number + uint8_t patch; + //! Volume level + uint8_t volume, + //! Expression level + expression; + //! Panning level + uint8_t panning, + //! Vibrato level + vibrato, + //! Channel aftertouch level + aftertouch; + //! Portamento time + uint16_t portamento; + //! Is Pedal sustain active + bool sustain; + //! Is Soft pedal active + bool softPedal; + //! Is portamento enabled + bool portamentoEnable; + //! Source note number used by portamento + int8_t portamentoSource; // note number or -1 + //! Portamento rate + double portamentoRate; + //! Per note Aftertouch values + uint8_t noteAftertouch[128]; + //! Is note aftertouch has any non-zero value + bool noteAfterTouchInUse; + //! Reserved + char _padding[6]; + //! Pitch bend value + int bend; + //! Pitch bend sensitivity + double bendsense; + //! Pitch bend sensitivity LSB value + int bendsense_lsb, + //! Pitch bend sensitivity MSB value + bendsense_msb; + //! Vibrato position value + double vibpos, + //! Vibrato speed value + vibspeed, + //! Vibrato depth value + vibdepth; + //! Vibrato delay time + int64_t vibdelay_us; + //! Last LSB part of RPN value received + uint8_t lastlrpn, + //! Last MSB poart of RPN value received + lastmrpn; + //! Interpret RPN value as NRPN + bool nrpn; + //! Brightness level + uint8_t brightness; + + //! Is melodic channel turned into percussion + bool is_xg_percussion; + + /** + * @brief Per-Note information + */ + struct NoteInfo + { + //! Note number + uint8_t note; + //! Current pressure + uint8_t vol; + //! Note vibrato (a part of Note Aftertouch feature) + uint8_t vibrato; + //! Tone selected on noteon: + int16_t noteTone; + //! Current tone (!= noteTone if gliding note) + double currentTone; + //! Gliding rate + double glideRate; + //! Patch selected on noteon; index to bank.ins[] + size_t midiins; + //! Is note the percussion instrument + bool isPercussion; + //! Note that plays missing instrument. Doesn't using any chip channels + bool isBlank; + //! Whether releasing and on extended life time defined by TTL + bool isOnExtendedLifeTime; + //! Time-to-live until release (short percussion note fix) + double ttl; + //! Patch selected + const OplInstMeta *ains; + enum + { + MaxNumPhysChans = 2, + MaxNumPhysItemCount = MaxNumPhysChans + }; + + struct FindPredicate + { + explicit FindPredicate(unsigned note) + : note(note) {} + bool operator()(const NoteInfo &ni) const + { return ni.note == note; } + unsigned note; + }; + + /** + * @brief Reference to currently using chip channel + */ + struct Phys + { + //! Destination chip channel + uint16_t chip_chan; + //! ins, inde to adl[] + OplTimbre op; + //! Is this voice must be detunable? + bool pseudo4op; + + void assign(const Phys &oth) + { + op = oth.op; + pseudo4op = oth.pseudo4op; + } + bool operator==(const Phys &oth) const + { + return (op == oth.op) && (pseudo4op == oth.pseudo4op); + } + bool operator!=(const Phys &oth) const + { + return !operator==(oth); + } + }; + + //! List of OPL3 channels it is currently occupying. + Phys chip_channels[MaxNumPhysItemCount]; + //! Count of used channels. + unsigned chip_channels_count; + + Phys *phys_find(unsigned chip_chan) + { + Phys *ph = NULL; + for(unsigned i = 0; i < chip_channels_count && !ph; ++i) + if(chip_channels[i].chip_chan == chip_chan) + ph = &chip_channels[i]; + return ph; + } + Phys *phys_find_or_create(uint16_t chip_chan) + { + Phys *ph = phys_find(chip_chan); + if(!ph) { + if(chip_channels_count < MaxNumPhysItemCount) { + ph = &chip_channels[chip_channels_count++]; + ph->chip_chan = chip_chan; + } + } + return ph; + } + Phys *phys_ensure_find_or_create(uint16_t chip_chan) + { + Phys *ph = phys_find_or_create(chip_chan); + assert(ph); + return ph; + } + void phys_erase_at(const Phys *ph) + { + intptr_t pos = ph - chip_channels; + assert(pos < static_cast(chip_channels_count)); + for(intptr_t i = pos + 1; i < static_cast(chip_channels_count); ++i) + chip_channels[i - 1] = chip_channels[i]; + --chip_channels_count; + } + void phys_erase(unsigned chip_chan) + { + Phys *ph = phys_find(chip_chan); + if(ph) + phys_erase_at(ph); + } + }; + + //! Reserved + char _padding2[5]; + //! Count of gliding notes in this channel + unsigned gliding_note_count; + //! Count of notes having a TTL countdown in this channel + unsigned extended_note_count; + + //! Active notes in the channel + pl_list activenotes; + typedef pl_list::iterator notes_iterator; + typedef pl_list::const_iterator const_notes_iterator; + + notes_iterator find_activenote(unsigned note) + { + return activenotes.find_if(NoteInfo::FindPredicate(note)); + } + + notes_iterator ensure_find_activenote(unsigned note) + { + notes_iterator it = find_activenote(note); + assert(!it.is_end()); + return it; + } + + notes_iterator find_or_create_activenote(unsigned note) + { + notes_iterator it = find_activenote(note); + if(!it.is_end()) + cleanupNote(it); + else + { + NoteInfo ni; + ni.note = note; + it = activenotes.insert(activenotes.end(), ni); + } + return it; + } + + notes_iterator ensure_find_or_create_activenote(unsigned note) + { + notes_iterator it = find_or_create_activenote(note); + assert(!it.is_end()); + return it; + } + + /** + * @brief Reset channel into initial state + */ + void reset() + { + resetAllControllers(); + patch = 0; + vibpos = 0; + bank_lsb = 0; + bank_msb = 0; + lastlrpn = 0; + lastmrpn = 0; + nrpn = false; + is_xg_percussion = false; + } + + /** + * @brief Reset all MIDI controllers into initial state + */ + void resetAllControllers() + { + volume = def_volume; + brightness = 127; + panning = 64; + + resetAllControllers121(); + } + + /** + * @brief Reset all MIDI controllers into initial state (CC121) + */ + void resetAllControllers121() + { + bend = 0; + bendsense_msb = def_bendsense_msb; + bendsense_lsb = def_bendsense_lsb; + updateBendSensitivity(); + expression = 127; + sustain = false; + softPedal = false; + vibrato = 0; + aftertouch = 0; + std::memset(noteAftertouch, 0, 128); + noteAfterTouchInUse = false; + vibspeed = 2 * 3.141592653 * 5.0; + vibdepth = 0.5 / 127; + vibdelay_us = 0; + portamento = 0; + portamentoEnable = false; + portamentoSource = -1; + portamentoRate = HUGE_VAL; + } + + /** + * @brief Has channel vibrato to process + * @return + */ + bool hasVibrato() + { + return (vibrato > 0) || (aftertouch > 0) || noteAfterTouchInUse; + } + + /** + * @brief Commit pitch bend sensitivity value from MSB and LSB + */ + void updateBendSensitivity() + { + int cent = bendsense_msb * 128 + bendsense_lsb; + bendsense = cent * (1.0 / (128 * 8192)); + } + + /** + * @brief Clean up the state of the active note before removal + */ + void cleanupNote(notes_iterator i) + { + NoteInfo &info = i->value; + if(info.glideRate != HUGE_VAL) + --gliding_note_count; + if(info.ttl > 0) + --extended_note_count; + } + + MIDIchannel() : + def_volume(100), + def_bendsense_lsb(0), + def_bendsense_msb(2), + activenotes(128) + { + gliding_note_count = 0; + extended_note_count = 0; + reset(); + } + }; + + /** + * @brief Additional information about OPL3 channels + */ + struct AdlChannel + { + struct Location + { + uint16_t MidCh; + uint8_t note; + bool operator==(const Location &l) const + { return MidCh == l.MidCh && note == l.note; } + bool operator!=(const Location &l) const + { return !operator==(l); } + }; + struct LocationData + { + Location loc; + enum { + Sustain_None = 0x00, + Sustain_Pedal = 0x01, + Sustain_Sostenuto = 0x02, + Sustain_ANY = Sustain_Pedal | Sustain_Sostenuto + }; + uint32_t sustained; + char _padding[6]; + MIDIchannel::NoteInfo::Phys ins; // a copy of that in phys[] + //! Has fixed sustain, don't iterate "on" timeout + bool fixed_sustain; + //! Timeout until note will be allowed to be killed by channel manager while it is on + int64_t kon_time_until_neglible_us; + int64_t vibdelay_us; + + struct FindPredicate + { + explicit FindPredicate(Location loc) + : loc(loc) {} + bool operator()(const LocationData &ld) const + { return ld.loc == loc; } + Location loc; + }; + }; + + //! Time left until sounding will be muted after key off + int64_t koff_time_until_neglible_us; + + //! Recently passed instrument, improves a goodness of released but busy channel when matching + MIDIchannel::NoteInfo::Phys recent_ins; + + pl_list users; + typedef pl_list::iterator users_iterator; + typedef pl_list::const_iterator const_users_iterator; + + users_iterator find_user(const Location &loc) + { + return users.find_if(LocationData::FindPredicate(loc)); + } + + users_iterator find_or_create_user(const Location &loc) + { + users_iterator it = find_user(loc); + if(it.is_end() && users.size() != users.capacity()) + { + LocationData ld; + ld.loc = loc; + it = users.insert(users.end(), ld); + } + return it; + } + + // For channel allocation: + AdlChannel(): koff_time_until_neglible_us(0), users(128) + { + std::memset(&recent_ins, 0, sizeof(MIDIchannel::NoteInfo::Phys)); + } + + AdlChannel(const AdlChannel &oth): koff_time_until_neglible_us(oth.koff_time_until_neglible_us), users(oth.users) + { + } + + AdlChannel &operator=(const AdlChannel &oth) + { + koff_time_until_neglible_us = oth.koff_time_until_neglible_us; + users = oth.users; + return *this; + } + + /** + * @brief Increases age of active note in microseconds time + * @param us Amount time in microseconds + */ + void addAge(int64_t us); + }; + +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER + /** + * @brief MIDI files player sequencer + */ + AdlMIDI_UPtr m_sequencer; + + /** + * @brief Interface between MIDI sequencer and this library + */ + AdlMIDI_UPtr m_sequencerInterface; + + /** + * @brief Initialize MIDI sequencer interface + */ + void initSequencerInterface(); +#endif //ADLMIDI_DISABLE_MIDI_SEQUENCER + + struct Setup + { + int emulator; + bool runAtPcmRate; + unsigned int bankId; + int numFourOps; + unsigned int numChips; + int deepTremoloMode; + int deepVibratoMode; + int rhythmMode; + bool logarithmicVolumes; + int volumeScaleModel; + //unsigned int SkipForward; + int scaleModulators; + bool fullRangeBrightnessCC74; + + double delay; + double carry; + + /* The lag between visual content and audio content equals */ + /* the sum of these two buffers. */ + double mindelay; + double maxdelay; + + /* For internal usage */ + ssize_t tick_skip_samples_delay; /* Skip tick processing after samples count. */ + /* For internal usage */ + + unsigned long PCM_RATE; + }; + + /** + * @brief MIDI Marker entry + */ + struct MIDI_MarkerEntry + { + //! Label of marker + std::string label; + //! Absolute position in seconds + double pos_time; + //! Absolute position in ticks in the track + uint64_t pos_ticks; + }; + + //! Available MIDI Channels + std::vector m_midiChannels; + + //! CMF Rhythm mode + bool m_cmfPercussionMode; + + //! SysEx device ID + uint8_t m_sysExDeviceId; + + /** + * @brief MIDI Synthesizer mode + */ + enum SynthMode + { + Mode_GM = 0x00, + Mode_GS = 0x01, + Mode_XG = 0x02, + Mode_GM2 = 0x04 + }; + //! MIDI Synthesizer mode + uint32_t m_synthMode; + + //! Installed function hooks + MIDIEventHooks hooks; + +private: + //! Per-track MIDI devices map + std::map m_midiDevices; + //! Current MIDI device per track + std::map m_currentMidiDevice; + + //! Padding to fix CLanc code model's warning + char _padding[7]; + + //! Chip channels map + std::vector m_chipChannels; + //! Counter of arpeggio processing + size_t m_arpeggioCounter; + +#if defined(ADLMIDI_AUDIO_TICK_HANDLER) + //! Audio tick counter + uint32_t m_audioTickCounter; +#endif + + //! Local error string + std::string errorStringOut; + + //! Missing instruments catches + std::set caugh_missing_instruments; + //! Missing melodic banks catches + std::set caugh_missing_banks_melodic; + //! Missing percussion banks catches + std::set caugh_missing_banks_percussion; + +public: + + const std::string &getErrorString(); + void setErrorString(const std::string &err); + + //! OPL3 Chip manager + AdlMIDI_UPtr m_synth; + + //! Generator output buffer + int32_t m_outBuf[1024]; + + //! Synthesizer setup + Setup m_setup; + + /** + * @brief Load custom bank from file + * @param filename Path to bank file + * @return true on succes + */ + bool LoadBank(const std::string &filename); + + /** + * @brief Load custom bank from memory block + * @param data Pointer to memory block where raw bank file is stored + * @param size Size of given memory block + * @return true on succes + */ + bool LoadBank(const void *data, size_t size); + + /** + * @brief Load custom bank from opened FileAndMemReader class + * @param fr Instance with opened file + * @return true on succes + */ + bool LoadBank(FileAndMemReader &fr); + +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER + /** + * @brief MIDI file loading pre-process + * @return true on success, false on failure + */ + bool LoadMIDI_pre(); + + /** + * @brief MIDI file loading post-process + * @return true on success, false on failure + */ + bool LoadMIDI_post(); + + /** + * @brief Load music file from a file + * @param filename Path to music file + * @return true on success, false on failure + */ + + bool LoadMIDI(const std::string &filename); + + /** + * @brief Load music file from the memory block + * @param data pointer to the memory block + * @param size size of memory block + * @return true on success, false on failure + */ + bool LoadMIDI(const void *data, size_t size); + + /** + * @brief Periodic tick handler. + * @param s seconds since last call + * @param granularity don't expect intervals smaller than this, in seconds + * @return desired number of seconds until next call + */ + double Tick(double s, double granularity); +#endif //ADLMIDI_DISABLE_MIDI_SEQUENCER + + /** + * @brief Process extra iterators like vibrato or arpeggio + * @param s seconds since last call + */ + void TickIterators(double s); + + + /* RealTime event triggers */ + /** + * @brief Reset state of all channels + */ + void realTime_ResetState(); + + /** + * @brief Note On event + * @param channel MIDI channel + * @param note Note key (from 0 to 127) + * @param velocity Velocity level (from 0 to 127) + * @return true if Note On event was accepted + */ + bool realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity); + + /** + * @brief Note Off event + * @param channel MIDI channel + * @param note Note key (from 0 to 127) + */ + void realTime_NoteOff(uint8_t channel, uint8_t note); + + /** + * @brief Note aftertouch event + * @param channel MIDI channel + * @param note Note key (from 0 to 127) + * @param atVal After-Touch level (from 0 to 127) + */ + void realTime_NoteAfterTouch(uint8_t channel, uint8_t note, uint8_t atVal); + + /** + * @brief Channel aftertouch event + * @param channel MIDI channel + * @param atVal After-Touch level (from 0 to 127) + */ + void realTime_ChannelAfterTouch(uint8_t channel, uint8_t atVal); + + /** + * @brief Controller Change event + * @param channel MIDI channel + * @param type Type of controller + * @param value Value of the controller (from 0 to 127) + */ + void realTime_Controller(uint8_t channel, uint8_t type, uint8_t value); + + /** + * @brief Patch change + * @param channel MIDI channel + * @param patch Patch Number (from 0 to 127) + */ + void realTime_PatchChange(uint8_t channel, uint8_t patch); + + /** + * @brief Pitch bend change + * @param channel MIDI channel + * @param pitch Concoctated raw pitch value + */ + void realTime_PitchBend(uint8_t channel, uint16_t pitch); + + /** + * @brief Pitch bend change + * @param channel MIDI channel + * @param msb MSB of pitch value + * @param lsb LSB of pitch value + */ + void realTime_PitchBend(uint8_t channel, uint8_t msb, uint8_t lsb); + + /** + * @brief LSB Bank Change CC + * @param channel MIDI channel + * @param lsb LSB value of bank number + */ + void realTime_BankChangeLSB(uint8_t channel, uint8_t lsb); + + /** + * @brief MSB Bank Change CC + * @param channel MIDI channel + * @param msb MSB value of bank number + */ + void realTime_BankChangeMSB(uint8_t channel, uint8_t msb); + + /** + * @brief Bank Change (united value) + * @param channel MIDI channel + * @param bank Bank number value + */ + void realTime_BankChange(uint8_t channel, uint16_t bank); + + /** + * @brief Sets the Device identifier + * @param id 7-bit Device identifier + */ + void setDeviceId(uint8_t id); + + /** + * @brief System Exclusive message + * @param msg Raw SysEx Message + * @param size Length of SysEx message + * @return true if message was passed successfully. False on any errors + */ + bool realTime_SysEx(const uint8_t *msg, size_t size); + + /** + * @brief Turn off all notes and mute the sound of releasing notes + */ + void realTime_panic(); + + /** + * @brief Device switch (to extend 16-channels limit of MIDI standard) + * @param track MIDI track index + * @param data Device name + * @param length Length of device name string + */ + void realTime_deviceSwitch(size_t track, const char *data, size_t length); + + /** + * @brief Currently selected device index + * @param track MIDI track index + * @return Multiple 16 value + */ + size_t realTime_currentDevice(size_t track); + + /** + * @brief Send raw OPL chip command + * @param reg OPL Register + * @param value Value to write + */ + void realTime_rawOPL(uint8_t reg, uint8_t value); + +#if defined(ADLMIDI_AUDIO_TICK_HANDLER) + // Audio rate tick handler + void AudioTick(uint32_t chipId, uint32_t rate); +#endif + +private: + /** + * @brief Hardware manufacturer (Used for SysEx) + */ + enum + { + Manufacturer_Roland = 0x41, + Manufacturer_Yamaha = 0x43, + Manufacturer_UniversalNonRealtime = 0x7E, + Manufacturer_UniversalRealtime = 0x7F + }; + + /** + * @brief Roland Mode (Used for SysEx) + */ + enum + { + RolandMode_Request = 0x11, + RolandMode_Send = 0x12 + }; + + /** + * @brief Device model (Used for SysEx) + */ + enum + { + RolandModel_GS = 0x42, + RolandModel_SC55 = 0x45, + YamahaModel_XG = 0x4C + }; + + /** + * @brief Process generic SysEx events + * @param dev Device ID + * @param realtime Is real-time event + * @param data Raw SysEx data + * @param size Size of given SysEx data + * @return true when event was successfully handled + */ + bool doUniversalSysEx(unsigned dev, bool realtime, const uint8_t *data, size_t size); + + /** + * @brief Process events specific to Roland devices + * @param dev Device ID + * @param data Raw SysEx data + * @param size Size of given SysEx data + * @return true when event was successfully handled + */ + bool doRolandSysEx(unsigned dev, const uint8_t *data, size_t size); + + /** + * @brief Process events specific to Yamaha devices + * @param dev Device ID + * @param data Raw SysEx data + * @param size Size of given SysEx data + * @return true when event was successfully handled + */ + bool doYamahaSysEx(unsigned dev, const uint8_t *data, size_t size); + +private: + /** + * @brief Note Update properties + */ + enum + { + Upd_Patch = 0x1, + Upd_Pan = 0x2, + Upd_Volume = 0x4, + Upd_Pitch = 0x8, + Upd_All = Upd_Pan + Upd_Volume + Upd_Pitch, + Upd_Off = 0x20, + Upd_Mute = 0x40, + Upd_OffMute = Upd_Off + Upd_Mute + }; + + /** + * @brief Update active note + * @param MidCh MIDI Channel where note is processing + * @param i Iterator that points to active note in the MIDI channel + * @param props_mask Properties to update + * @param select_adlchn Specify chip channel, or -1 - all chip channels used by the note + */ + void noteUpdate(size_t midCh, + MIDIchannel::notes_iterator i, + unsigned props_mask, + int32_t select_adlchn = -1); + + /** + * @brief Update all notes in specified MIDI channel + * @param midCh MIDI channel to update all notes in it + * @param props_mask Properties to update + */ + void noteUpdateAll(size_t midCh, unsigned props_mask); + + /** + * @brief Determine how good a candidate this adlchannel would be for playing a note from this instrument. + * @param c Wanted chip channel + * @param ins Instrument wanted to be used in this channel + * @return Calculated coodness points + */ + int64_t calculateChipChannelGoodness(size_t c, const MIDIchannel::NoteInfo::Phys &ins) const; + + /** + * @brief A new note will be played on this channel using this instrument. + * @param c Wanted chip channel + * @param ins Instrument wanted to be used in this channel + * Kill existing notes on this channel (or don't, if we do arpeggio) + */ + void prepareChipChannelForNewNote(size_t c, const MIDIchannel::NoteInfo::Phys &ins); + + /** + * @brief Kills note that uses wanted channel. When arpeggio is possible, note is evaluating to another channel + * @param from_channel Wanted chip channel + * @param j Chip channel instance + * @param i MIDI Channel active note instance + */ + void killOrEvacuate( + size_t from_channel, + AdlChannel::users_iterator j, + MIDIchannel::notes_iterator i); + + /** + * @brief Off all notes and silence sound + */ + void panic(); + + /** + * @brief Kill note, sustaining by pedal or sostenuto + * @param MidCh MIDI channel, -1 - all MIDI channels + * @param this_adlchn Chip channel, -1 - all chip channels + * @param sustain_type Type of systain to process + */ + void killSustainingNotes(int32_t midCh = -1, + int32_t this_adlchn = -1, + uint32_t sustain_type = AdlChannel::LocationData::Sustain_ANY); + /** + * @brief Find active notes and mark them as sostenuto-sustained + * @param MidCh MIDI channel, -1 - all MIDI channels + */ + void markSostenutoNotes(int32_t midCh = -1); + + /** + * @brief Set RPN event value + * @param MidCh MIDI channel + * @param value 1 byte part of RPN value + * @param MSB is MSB or LSB part of value + */ + void setRPN(size_t midCh, unsigned value, bool MSB); + + /** + * @brief Update portamento setup in MIDI channel + * @param midCh MIDI channel where portamento needed to be updated + */ + void updatePortamento(size_t midCh); + + /** + * @brief Off the note + * @param midCh MIDI channel + * @param note Note to off + * @param forceNow Do not delay the key-off to a later time + */ + void noteOff(size_t midCh, uint8_t note, bool forceNow = false); + + /** + * @brief Update processing of vibrato to amount of seconds + * @param amount Amount value in seconds + */ + void updateVibrato(double amount); + + /** + * @brief Update auto-arpeggio + * @param amount Amount value in seconds [UNUSED] + */ + void updateArpeggio(double /*amount*/); + + /** + * @brief Update Portamento gliding to amount of seconds + * @param amount Amount value in seconds + */ + void updateGlide(double amount); + +public: + /** + * @brief Checks was device name used or not + * @param name Name of MIDI device + * @return Offset of the MIDI Channels, multiple to 16 + */ + size_t chooseDevice(const std::string &name); + + /** + * @brief Gets a textual description of the state of chip channels + * @param text character pointer for text + * @param attr character pointer for text attributes + * @param size number of characters available to write + */ + void describeChannels(char *text, char *attr, size_t size); +}; + +#endif // ADLMIDI_MIDIPLAY_HPP diff --git a/thirdparty/adlmidi/adlmidi_opl3.cpp b/thirdparty/adlmidi/adlmidi_opl3.cpp index f3672d3..9fbb8bb 100644 --- a/thirdparty/adlmidi/adlmidi_opl3.cpp +++ b/thirdparty/adlmidi/adlmidi_opl3.cpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -21,14 +21,22 @@ * along with this program. If not, see . */ +#include "adlmidi_opl3.hpp" #include "adlmidi_private.hpp" #include #include +#ifndef DISABLE_EMBEDDED_BANKS +#include "wopl/wopl_file.h" +#endif + #ifdef ADLMIDI_HW_OPL static const unsigned OPLBase = 0x388; #else -# if defined(ADLMIDI_DISABLE_NUKED_EMULATOR) && defined(ADLMIDI_DISABLE_DOSBOX_EMULATOR) +# if defined(ADLMIDI_DISABLE_NUKED_EMULATOR) && \ + defined(ADLMIDI_DISABLE_DOSBOX_EMULATOR) && \ + defined(ADLMIDI_DISABLE_OPAL_EMULATOR) && \ + defined(ADLMIDI_DISABLE_JAVA_EMULATOR) # error "No emulators enabled. You must enable at least one emulator to use this library!" # endif @@ -42,6 +50,16 @@ static const unsigned OPLBase = 0x388; # ifndef ADLMIDI_DISABLE_DOSBOX_EMULATOR # include "chips/dosbox_opl3.h" # endif + +// Opal emulator +# ifndef ADLMIDI_DISABLE_OPAL_EMULATOR +# include "chips/opal_opl3.h" +# endif + +// Java emulator +# ifndef ADLMIDI_DISABLE_JAVA_EMULATOR +# include "chips/java_opl3.h" +# endif #endif static const unsigned adl_emulatorSupport = 0 @@ -53,6 +71,14 @@ static const unsigned adl_emulatorSupport = 0 # ifndef ADLMIDI_DISABLE_DOSBOX_EMULATOR | (1u << ADLMIDI_EMU_DOSBOX) # endif + +# ifndef ADLMIDI_DISABLE_OPAL_EMULATOR + | (1u << ADLMIDI_EMU_OPAL) +# endif + +# ifndef ADLMIDI_DISABLE_JAVA_EMULATOR + | (1u << ADLMIDI_EMU_JAVA) +# endif #endif ; @@ -85,7 +111,7 @@ int adl_getLowestEmulator() } //! Per-channel and per-operator registers map -static const uint16_t g_operatorsMap[23 * 2] = +static const uint16_t g_operatorsMap[(NUM_OF_CHANNELS + NUM_OF_RM_CHANNELS) * 2] = { // Channels 0-2 0x000, 0x003, 0x001, 0x004, 0x002, 0x005, // operators 0, 3, 1, 4, 2, 5 @@ -97,25 +123,46 @@ static const uint16_t g_operatorsMap[23 * 2] = 0x100, 0x103, 0x101, 0x104, 0x102, 0x105, // operators 18,21, 19,22, 20,23 0x108, 0x10B, 0x109, 0x10C, 0x10A, 0x10D, // operators 24,27, 25,28, 26,29 0x110, 0x113, 0x111, 0x114, 0x112, 0x115, // operators 30,33, 31,34, 32,35 + + //==For Rhythm-mode percussions // Channel 18 0x010, 0x013, // operators 12,15 // Channel 19 + 0xFFF, 0x014, // operator 16 + // Channel 19 + 0x012, 0xFFF, // operator 14 + // Channel 19 + 0xFFF, 0x015, // operator 17 + // Channel 19 + 0x011, 0xFFF, // operator 13 + + //==For Rhythm-mode percussions in CMF, snare and cymbal operators has inverted! + 0x010, 0x013, // operators 12,15 + // Channel 19 0x014, 0xFFF, // operator 16 // Channel 19 0x012, 0xFFF, // operator 14 // Channel 19 0x015, 0xFFF, // operator 17 // Channel 19 - 0x011, 0xFFF -}; // operator 13 + 0x011, 0xFFF // operator 13 +}; //! Channel map to regoster offsets -static const uint16_t g_channelsMap[23] = +static const uint16_t g_channelsMap[NUM_OF_CHANNELS] = +{ + 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, 0x008, // 0..8 + 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, // 9..17 (secondary set) + 0x006, 0x007, 0x008, 0x008, 0x008 // <- hw percussions, hihats and cymbals using tom-tom's channel as pitch source +}; + +//! Channel map to regoster offsets (separated copy for panning) +static const uint16_t g_channelsMapPan[NUM_OF_CHANNELS] = { 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, 0x008, // 0..8 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, // 9..17 (secondary set) - 0x006, 0x007, 0x008, 0xFFF, 0xFFF -}; // <- hw percussions, 0xFFF = no support for pitch/pan + 0x006, 0x007, 0x008, 0xFFF, 0xFFF // <- hw percussions, 0xFFF = no support for pitch/pan +}; /* In OPL3 mode: @@ -148,15 +195,667 @@ static const uint16_t g_channelsMap[23] = Ports: ??? */ -static adlinsdata2 makeEmptyInstrument() + + + + +/*************************************************************** + * Volume model tables * + ***************************************************************/ + +// Mapping from MIDI volume level to OPL level value. + +static const uint_fast32_t s_dmx_volume_model[128] = +{ + 0, 1, 3, 5, 6, 8, 10, 11, + 13, 14, 16, 17, 19, 20, 22, 23, + 25, 26, 27, 29, 30, 32, 33, 34, + 36, 37, 39, 41, 43, 45, 47, 49, + 50, 52, 54, 55, 57, 59, 60, 61, + 63, 64, 66, 67, 68, 69, 71, 72, + 73, 74, 75, 76, 77, 79, 80, 81, + 82, 83, 84, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 92, 93, 94, 95, + 96, 96, 97, 98, 99, 99, 100, 101, + 101, 102, 103, 103, 104, 105, 105, 106, + 107, 107, 108, 109, 109, 110, 110, 111, + 112, 112, 113, 113, 114, 114, 115, 115, + 116, 117, 117, 118, 118, 119, 119, 120, + 120, 121, 121, 122, 122, 123, 123, 123, + 124, 124, 125, 125, 126, 126, 127, 127, +}; + +static const uint_fast32_t s_w9x_sb16_volume_model[32] = +{ + 80, 63, 40, 36, 32, 28, 23, 21, + 19, 17, 15, 14, 13, 12, 11, 10, + 9, 8, 7, 6, 5, 5, 4, 4, + 3, 3, 2, 2, 1, 1, 0, 0 +}; + +static const uint_fast32_t s_w9x_generic_fm_volume_model[32] = +{ + 40, 36, 32, 28, 23, 21, 19, 17, + 15, 14, 13, 12, 11, 10, 9, 8, + 7, 6, 5, 5, 4, 4, 3, 3, + 2, 2, 1, 1, 1, 0, 0, 0 +}; + +static const uint_fast32_t s_ail_vel_graph[16] = +{ + 82, 85, 88, 91, 94, 97, 100, 103, + 106, 109, 112, 115, 118, 121, 124, 127 +}; + +static const uint_fast32_t s_hmi_volume_table[64] = +{ + 0x3F, 0x3A, 0x35, 0x30, 0x2C, 0x29, 0x25, 0x24, + 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, + 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, + 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0E, 0x0D, + 0x0D, 0x0C, 0x0C, 0x0B, 0x0B, 0x0A, 0x0A, 0x09, + 0x09, 0x08, 0x08, 0x07, 0x07, 0x06, 0x06, 0x06, + 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x03, + 0x03, 0x03, 0x02, 0x02, 0x02, 0x01, 0x01, 0x00, +}; + + + + + +/*************************************************************** + * Standard frequency formula * + * *************************************************************/ + +static inline double s_commonFreq(double tone) +{ + return BEND_COEFFICIENT * std::exp(0.057762265 * tone); +} + + + + +/*************************************************************** + * DMX frequency model * + * *************************************************************/ + +// DMX volumes table +static const int_fast32_t s_dmx_freq_table[] = +{ + 0x0133, 0x0133, 0x0134, 0x0134, 0x0135, 0x0136, 0x0136, 0x0137, + 0x0137, 0x0138, 0x0138, 0x0139, 0x0139, 0x013A, 0x013B, 0x013B, + 0x013C, 0x013C, 0x013D, 0x013D, 0x013E, 0x013F, 0x013F, 0x0140, + 0x0140, 0x0141, 0x0142, 0x0142, 0x0143, 0x0143, 0x0144, 0x0144, + + 0x0145, 0x0146, 0x0146, 0x0147, 0x0147, 0x0148, 0x0149, 0x0149, + 0x014A, 0x014A, 0x014B, 0x014C, 0x014C, 0x014D, 0x014D, 0x014E, + 0x014F, 0x014F, 0x0150, 0x0150, 0x0151, 0x0152, 0x0152, 0x0153, + 0x0153, 0x0154, 0x0155, 0x0155, 0x0156, 0x0157, 0x0157, 0x0158, + + 0x0158, 0x0159, 0x015A, 0x015A, 0x015B, 0x015B, 0x015C, 0x015D, + 0x015D, 0x015E, 0x015F, 0x015F, 0x0160, 0x0161, 0x0161, 0x0162, + 0x0162, 0x0163, 0x0164, 0x0164, 0x0165, 0x0166, 0x0166, 0x0167, + 0x0168, 0x0168, 0x0169, 0x016A, 0x016A, 0x016B, 0x016C, 0x016C, + + 0x016D, 0x016E, 0x016E, 0x016F, 0x0170, 0x0170, 0x0171, 0x0172, + 0x0172, 0x0173, 0x0174, 0x0174, 0x0175, 0x0176, 0x0176, 0x0177, + 0x0178, 0x0178, 0x0179, 0x017A, 0x017A, 0x017B, 0x017C, 0x017C, + 0x017D, 0x017E, 0x017E, 0x017F, 0x0180, 0x0181, 0x0181, 0x0182, + + 0x0183, 0x0183, 0x0184, 0x0185, 0x0185, 0x0186, 0x0187, 0x0188, + 0x0188, 0x0189, 0x018A, 0x018A, 0x018B, 0x018C, 0x018D, 0x018D, + 0x018E, 0x018F, 0x018F, 0x0190, 0x0191, 0x0192, 0x0192, 0x0193, + 0x0194, 0x0194, 0x0195, 0x0196, 0x0197, 0x0197, 0x0198, 0x0199, + + 0x019A, 0x019A, 0x019B, 0x019C, 0x019D, 0x019D, 0x019E, 0x019F, + 0x01A0, 0x01A0, 0x01A1, 0x01A2, 0x01A3, 0x01A3, 0x01A4, 0x01A5, + 0x01A6, 0x01A6, 0x01A7, 0x01A8, 0x01A9, 0x01A9, 0x01AA, 0x01AB, + 0x01AC, 0x01AD, 0x01AD, 0x01AE, 0x01AF, 0x01B0, 0x01B0, 0x01B1, + + 0x01B2, 0x01B3, 0x01B4, 0x01B4, 0x01B5, 0x01B6, 0x01B7, 0x01B8, + 0x01B8, 0x01B9, 0x01BA, 0x01BB, 0x01BC, 0x01BC, 0x01BD, 0x01BE, + 0x01BF, 0x01C0, 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C4, + 0x01C5, 0x01C6, 0x01C7, 0x01C8, 0x01C9, 0x01C9, 0x01CA, 0x01CB, + + 0x01CC, 0x01CD, 0x01CE, 0x01CE, 0x01CF, 0x01D0, 0x01D1, 0x01D2, + 0x01D3, 0x01D3, 0x01D4, 0x01D5, 0x01D6, 0x01D7, 0x01D8, 0x01D8, + 0x01D9, 0x01DA, 0x01DB, 0x01DC, 0x01DD, 0x01DE, 0x01DE, 0x01DF, + 0x01E0, 0x01E1, 0x01E2, 0x01E3, 0x01E4, 0x01E5, 0x01E5, 0x01E6, + + 0x01E7, 0x01E8, 0x01E9, 0x01EA, 0x01EB, 0x01EC, 0x01ED, 0x01ED, + 0x01EE, 0x01EF, 0x01F0, 0x01F1, 0x01F2, 0x01F3, 0x01F4, 0x01F5, + 0x01F6, 0x01F6, 0x01F7, 0x01F8, 0x01F9, 0x01FA, 0x01FB, 0x01FC, + 0x01FD, 0x01FE, 0x01FF, + + 0x0200, 0x0201, 0x0201, 0x0202, 0x0203, 0x0204, 0x0205, 0x0206, + 0x0207, 0x0208, 0x0209, 0x020A, 0x020B, 0x020C, 0x020D, 0x020E, + 0x020F, 0x0210, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, 0x0215, + 0x0216, 0x0217, 0x0218, 0x0219, 0x021A, 0x021B, 0x021C, 0x021D, + + 0x021E, 0x021F, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, + 0x0226, 0x0227, 0x0228, 0x0229, 0x022A, 0x022B, 0x022C, 0x022D, + 0x022E, 0x022F, 0x0230, 0x0231, 0x0232, 0x0233, 0x0234, 0x0235, + 0x0236, 0x0237, 0x0238, 0x0239, 0x023A, 0x023B, 0x023C, 0x023D, + + 0x023E, 0x023F, 0x0240, 0x0241, 0x0242, 0x0244, 0x0245, 0x0246, + 0x0247, 0x0248, 0x0249, 0x024A, 0x024B, 0x024C, 0x024D, 0x024E, + 0x024F, 0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0256, 0x0257, + 0x0258, 0x0259, 0x025A, 0x025B, 0x025C, 0x025D, 0x025E, 0x025F, + + 0x0260, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267, 0x0268, + 0x0269, 0x026A, 0x026C, 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, + 0x0272, 0x0273, 0x0275, 0x0276, 0x0277, 0x0278, 0x0279, 0x027A, + 0x027B, 0x027D, 0x027E, 0x027F, 0x0280, 0x0281, 0x0282, 0x0284, + + 0x0285, 0x0286, 0x0287, 0x0288, 0x0289, 0x028B, 0x028C, 0x028D, + 0x028E, 0x028F, 0x0290, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, + 0x0298, 0x0299, 0x029A, 0x029B, 0x029C, 0x029E, 0x029F, 0x02A0, + 0x02A1, 0x02A2, 0x02A4, 0x02A5, 0x02A6, 0x02A7, 0x02A9, 0x02AA, + + 0x02AB, 0x02AC, 0x02AE, 0x02AF, 0x02B0, 0x02B1, 0x02B2, 0x02B4, + 0x02B5, 0x02B6, 0x02B7, 0x02B9, 0x02BA, 0x02BB, 0x02BD, 0x02BE, + 0x02BF, 0x02C0, 0x02C2, 0x02C3, 0x02C4, 0x02C5, 0x02C7, 0x02C8, + 0x02C9, 0x02CB, 0x02CC, 0x02CD, 0x02CE, 0x02D0, 0x02D1, 0x02D2, + + 0x02D4, 0x02D5, 0x02D6, 0x02D8, 0x02D9, 0x02DA, 0x02DC, 0x02DD, + 0x02DE, 0x02E0, 0x02E1, 0x02E2, 0x02E4, 0x02E5, 0x02E6, 0x02E8, + 0x02E9, 0x02EA, 0x02EC, 0x02ED, 0x02EE, 0x02F0, 0x02F1, 0x02F2, + 0x02F4, 0x02F5, 0x02F6, 0x02F8, 0x02F9, 0x02FB, 0x02FC, 0x02FD, + + 0x02FF, 0x0300, 0x0302, 0x0303, 0x0304, 0x0306, 0x0307, 0x0309, + 0x030A, 0x030B, 0x030D, 0x030E, 0x0310, 0x0311, 0x0312, 0x0314, + 0x0315, 0x0317, 0x0318, 0x031A, 0x031B, 0x031C, 0x031E, 0x031F, + 0x0321, 0x0322, 0x0324, 0x0325, 0x0327, 0x0328, 0x0329, 0x032B, + + 0x032C, 0x032E, 0x032F, 0x0331, 0x0332, 0x0334, 0x0335, 0x0337, + 0x0338, 0x033A, 0x033B, 0x033D, 0x033E, 0x0340, 0x0341, 0x0343, + 0x0344, 0x0346, 0x0347, 0x0349, 0x034A, 0x034C, 0x034D, 0x034F, + 0x0350, 0x0352, 0x0353, 0x0355, 0x0357, 0x0358, 0x035A, 0x035B, + + 0x035D, 0x035E, 0x0360, 0x0361, 0x0363, 0x0365, 0x0366, 0x0368, + 0x0369, 0x036B, 0x036C, 0x036E, 0x0370, 0x0371, 0x0373, 0x0374, + 0x0376, 0x0378, 0x0379, 0x037B, 0x037C, 0x037E, 0x0380, 0x0381, + 0x0383, 0x0384, 0x0386, 0x0388, 0x0389, 0x038B, 0x038D, 0x038E, + + 0x0390, 0x0392, 0x0393, 0x0395, 0x0397, 0x0398, 0x039A, 0x039C, + 0x039D, 0x039F, 0x03A1, 0x03A2, 0x03A4, 0x03A6, 0x03A7, 0x03A9, + 0x03AB, 0x03AC, 0x03AE, 0x03B0, 0x03B1, 0x03B3, 0x03B5, 0x03B7, + 0x03B8, 0x03BA, 0x03BC, 0x03BD, 0x03BF, 0x03C1, 0x03C3, 0x03C4, + + 0x03C6, 0x03C8, 0x03CA, 0x03CB, 0x03CD, 0x03CF, 0x03D1, 0x03D2, + 0x03D4, 0x03D6, 0x03D8, 0x03DA, 0x03DB, 0x03DD, 0x03DF, 0x03E1, + 0x03E3, 0x03E4, 0x03E6, 0x03E8, 0x03EA, 0x03EC, 0x03ED, 0x03EF, + 0x03F1, 0x03F3, 0x03F5, 0x03F6, 0x03F8, 0x03FA, 0x03FC, 0x03FE, + + 0x036C +}; + +static inline double s_dmxFreq(double tone) +{ + uint_fast32_t noteI = (uint_fast32_t)(tone); + int_fast32_t bendI = 0; + int_fast32_t outHz = 0.0; + double bendDec = tone - (int)tone; + + bendI = (int_fast32_t)((bendDec * 128.0) / 2.0) + 128; + bendI = bendI >> 1; + + int_fast32_t oct = 0; + int_fast32_t freqIndex = (noteI << 5) + bendI; + + if(freqIndex < 0) + freqIndex = 0; + else if(freqIndex >= 284) + { + freqIndex -= 284; + oct = freqIndex / 384; + freqIndex = (freqIndex % 384) + 284; + } + + outHz = s_dmx_freq_table[freqIndex]; + + while(oct > 1) + { + outHz *= 2; + oct -= 1; + } + + return (double)outHz; +} + + + + +/*************************************************************** + * Apogee Sound System frequency model * + ***************************************************************/ + +static const int_fast32_t s_apogee_freq_table[31 + 1][12] = +{ + { 0x157, 0x16b, 0x181, 0x198, 0x1b0, 0x1ca, 0x1e5, 0x202, 0x220, 0x241, 0x263, 0x287 }, + { 0x157, 0x16b, 0x181, 0x198, 0x1b0, 0x1ca, 0x1e5, 0x202, 0x220, 0x242, 0x264, 0x288 }, + { 0x158, 0x16c, 0x182, 0x199, 0x1b1, 0x1cb, 0x1e6, 0x203, 0x221, 0x243, 0x265, 0x289 }, + { 0x158, 0x16c, 0x183, 0x19a, 0x1b2, 0x1cc, 0x1e7, 0x204, 0x222, 0x244, 0x266, 0x28a }, + { 0x159, 0x16d, 0x183, 0x19a, 0x1b3, 0x1cd, 0x1e8, 0x205, 0x223, 0x245, 0x267, 0x28b }, + { 0x15a, 0x16e, 0x184, 0x19b, 0x1b3, 0x1ce, 0x1e9, 0x206, 0x224, 0x246, 0x268, 0x28c }, + { 0x15a, 0x16e, 0x185, 0x19c, 0x1b4, 0x1ce, 0x1ea, 0x207, 0x225, 0x247, 0x269, 0x28e }, + { 0x15b, 0x16f, 0x185, 0x19d, 0x1b5, 0x1cf, 0x1eb, 0x208, 0x226, 0x248, 0x26a, 0x28f }, + { 0x15b, 0x170, 0x186, 0x19d, 0x1b6, 0x1d0, 0x1ec, 0x209, 0x227, 0x249, 0x26b, 0x290 }, + { 0x15c, 0x170, 0x187, 0x19e, 0x1b7, 0x1d1, 0x1ec, 0x20a, 0x228, 0x24a, 0x26d, 0x291 }, + { 0x15d, 0x171, 0x188, 0x19f, 0x1b7, 0x1d2, 0x1ed, 0x20b, 0x229, 0x24b, 0x26e, 0x292 }, + { 0x15d, 0x172, 0x188, 0x1a0, 0x1b8, 0x1d3, 0x1ee, 0x20c, 0x22a, 0x24c, 0x26f, 0x293 }, + { 0x15e, 0x172, 0x189, 0x1a0, 0x1b9, 0x1d4, 0x1ef, 0x20d, 0x22b, 0x24d, 0x270, 0x295 }, + { 0x15f, 0x173, 0x18a, 0x1a1, 0x1ba, 0x1d4, 0x1f0, 0x20e, 0x22c, 0x24e, 0x271, 0x296 }, + { 0x15f, 0x174, 0x18a, 0x1a2, 0x1bb, 0x1d5, 0x1f1, 0x20f, 0x22d, 0x24f, 0x272, 0x297 }, + { 0x160, 0x174, 0x18b, 0x1a3, 0x1bb, 0x1d6, 0x1f2, 0x210, 0x22e, 0x250, 0x273, 0x298 }, + { 0x161, 0x175, 0x18c, 0x1a3, 0x1bc, 0x1d7, 0x1f3, 0x211, 0x22f, 0x251, 0x274, 0x299 }, + { 0x161, 0x176, 0x18c, 0x1a4, 0x1bd, 0x1d8, 0x1f4, 0x212, 0x230, 0x252, 0x276, 0x29b }, + { 0x162, 0x176, 0x18d, 0x1a5, 0x1be, 0x1d9, 0x1f5, 0x212, 0x231, 0x254, 0x277, 0x29c }, + { 0x162, 0x177, 0x18e, 0x1a6, 0x1bf, 0x1d9, 0x1f5, 0x213, 0x232, 0x255, 0x278, 0x29d }, + { 0x163, 0x178, 0x18f, 0x1a6, 0x1bf, 0x1da, 0x1f6, 0x214, 0x233, 0x256, 0x279, 0x29e }, + { 0x164, 0x179, 0x18f, 0x1a7, 0x1c0, 0x1db, 0x1f7, 0x215, 0x235, 0x257, 0x27a, 0x29f }, + { 0x164, 0x179, 0x190, 0x1a8, 0x1c1, 0x1dc, 0x1f8, 0x216, 0x236, 0x258, 0x27b, 0x2a1 }, + { 0x165, 0x17a, 0x191, 0x1a9, 0x1c2, 0x1dd, 0x1f9, 0x217, 0x237, 0x259, 0x27c, 0x2a2 }, + { 0x166, 0x17b, 0x192, 0x1aa, 0x1c3, 0x1de, 0x1fa, 0x218, 0x238, 0x25a, 0x27e, 0x2a3 }, + { 0x166, 0x17b, 0x192, 0x1aa, 0x1c3, 0x1df, 0x1fb, 0x219, 0x239, 0x25b, 0x27f, 0x2a4 }, + { 0x167, 0x17c, 0x193, 0x1ab, 0x1c4, 0x1e0, 0x1fc, 0x21a, 0x23a, 0x25c, 0x280, 0x2a6 }, + { 0x168, 0x17d, 0x194, 0x1ac, 0x1c5, 0x1e0, 0x1fd, 0x21b, 0x23b, 0x25d, 0x281, 0x2a7 }, + { 0x168, 0x17d, 0x194, 0x1ad, 0x1c6, 0x1e1, 0x1fe, 0x21c, 0x23c, 0x25e, 0x282, 0x2a8 }, + { 0x169, 0x17e, 0x195, 0x1ad, 0x1c7, 0x1e2, 0x1ff, 0x21d, 0x23d, 0x260, 0x283, 0x2a9 }, + { 0x16a, 0x17f, 0x196, 0x1ae, 0x1c8, 0x1e3, 0x1ff, 0x21e, 0x23e, 0x261, 0x284, 0x2ab }, + { 0x16a, 0x17f, 0x197, 0x1af, 0x1c8, 0x1e4, 0x200, 0x21f, 0x23f, 0x262, 0x286, 0x2ac } +}; + +static inline double s_apogeeFreq(double tone) +{ + uint_fast32_t noteI = (uint_fast32_t)(tone); + int_fast32_t bendI = 0; + int_fast32_t outHz = 0.0; + double bendDec = tone - (int)tone; + int_fast32_t octave; + int_fast32_t scaleNote; + + bendI = (int_fast32_t)(bendDec * 32) + 32; + + noteI += bendI / 32; + noteI -= 1; + + scaleNote = noteI % 12; + octave = noteI / 12; + + outHz = s_apogee_freq_table[bendI % 32][scaleNote]; + + while(octave > 1) + { + outHz *= 2; + octave -= 1; + } + + return (double)outHz; +} + + + + +/*************************************************************** + * Windows 9x FM drivers frequency model * + ***************************************************************/ + +//static const double s_9x_opl_samplerate = 50000.0; +//static const double s_9x_opl_tune = 440.0; +static const uint_fast8_t s_9x_opl_pitchfrac = 8; + +static const uint_fast32_t s_9x_opl_freq[12] = +{ + 0xAB7, 0xB5A, 0xC07, 0xCBE, 0xD80, 0xE4D, 0xF27, 0x100E, 0x1102, 0x1205, 0x1318, 0x143A +}; + +static const int32_t s_9x_opl_uppitch = 31; +static const int32_t s_9x_opl_downpitch = 27; + +static uint_fast32_t s_9x_opl_applypitch(uint_fast32_t freq, int_fast32_t pitch) +{ + int32_t diff; + + if(pitch > 0) + { + diff = (pitch * s_9x_opl_uppitch) >> s_9x_opl_pitchfrac; + freq += (diff * freq) >> 15; + } + else if (pitch < 0) + { + diff = (-pitch * s_9x_opl_downpitch) >> s_9x_opl_pitchfrac; + freq -= (diff * freq) >> 15; + } + + return freq; +} + +static inline double s_9xFreq(double tone) +{ + uint_fast32_t note = (uint_fast32_t)(tone); + int_fast32_t bend; + double bendDec = tone - (int)tone; // 0.0 ± 1.0 - one halftone + + uint_fast32_t freq; + uint_fast32_t freqpitched; + uint_fast32_t octave; + + uint_fast32_t bendMsb; + uint_fast32_t bendLsb; + + bend = (int_fast32_t)(bendDec * 4096) + 8192; // convert to MIDI standard value + + bendMsb = (bend >> 7) & 0x7F; + bendLsb = (bend & 0x7F); + + bend = (bendMsb << 9) | (bendLsb << 2); + bend = (int16_t)(uint16_t)(bend + 0x8000); + + octave = note / 12; + freq = s_9x_opl_freq[note % 12]; + if(octave < 5) + freq >>= (5 - octave); + else if (octave > 5) + freq <<= (octave - 5); + + freqpitched = s_9x_opl_applypitch(freq, bend); + freqpitched *= 2; + + return (double)freqpitched; +} + + + + +/*************************************************************** + * HMI Sound Operating System frequency model * + ***************************************************************/ + +const size_t s_hmi_freqtable_size = 103; +static uint_fast32_t s_hmi_freqtable[s_hmi_freqtable_size] = +{ + 0x0157, 0x016B, 0x0181, 0x0198, 0x01B0, 0x01CA, 0x01E5, 0x0202, 0x0220, 0x0241, 0x0263, 0x0287, + 0x0557, 0x056B, 0x0581, 0x0598, 0x05B0, 0x05CA, 0x05E5, 0x0602, 0x0620, 0x0641, 0x0663, 0x0687, + 0x0957, 0x096B, 0x0981, 0x0998, 0x09B0, 0x09CA, 0x09E5, 0x0A02, 0x0A20, 0x0A41, 0x0A63, 0x0A87, + 0x0D57, 0x0D6B, 0x0D81, 0x0D98, 0x0DB0, 0x0DCA, 0x0DE5, 0x0E02, 0x0E20, 0x0E41, 0x0E63, 0x0E87, + 0x1157, 0x116B, 0x1181, 0x1198, 0x11B0, 0x11CA, 0x11E5, 0x1202, 0x1220, 0x1241, 0x1263, 0x1287, + 0x1557, 0x156B, 0x1581, 0x1598, 0x15B0, 0x15CA, 0x15E5, 0x1602, 0x1620, 0x1641, 0x1663, 0x1687, + 0x1957, 0x196B, 0x1981, 0x1998, 0x19B0, 0x19CA, 0x19E5, 0x1A02, 0x1A20, 0x1A41, 0x1A63, 0x1A87, + 0x1D57, 0x1D6B, 0x1D81, 0x1D98, 0x1DB0, 0x1DCA, 0x1DE5, 0x1E02, 0x1E20, 0x1E41, 0x1E63, 0x1E87, + 0x1EAE, 0x1EB7, 0x1F02, 0x1F30, 0x1F60, 0x1F94, 0x1FCA +}; + +const size_t s_hmi_bendtable_size = 12; +static uint_fast32_t s_hmi_bendtable[s_hmi_bendtable_size] = +{ + 0x144, 0x132, 0x121, 0x110, 0x101, 0xf8, 0xe5, 0xd8, 0xcc, 0xc1, 0xb6, 0xac +}; + +#define hmi_range_fix(formula, maxVal) \ + ( \ + (formula) < 0 ? \ + 0 : \ + ( \ + (formula) >= (int32_t)maxVal ? \ + (int32_t)maxVal : \ + (formula) \ + )\ + ) + +static uint_fast32_t s_hmi_bend_calc(uint_fast32_t bend, int_fast32_t note) +{ + const int_fast32_t midi_bend_range = 1; + uint_fast32_t bendFactor, outFreq, fmOctave, fmFreq, newFreq, idx; + int_fast32_t noteMod12; + + note -= 12; +// while(doNote >= 12) // ugly way to MOD 12 +// doNote -= 12; + noteMod12 = (note % 12); + + outFreq = s_hmi_freqtable[note]; + + fmOctave = outFreq & 0x1c00; + fmFreq = outFreq & 0x3ff; + + if(bend < 64) + { + bendFactor = ((63 - bend) * 1000) >> 6; + + idx = hmi_range_fix(note - midi_bend_range, s_hmi_freqtable_size); + newFreq = outFreq - s_hmi_freqtable[idx]; + + if(newFreq > 719) + { + newFreq = fmFreq - s_hmi_bendtable[midi_bend_range - 1]; + newFreq &= 0x3ff; + } + + newFreq = (newFreq * bendFactor) / 1000; + outFreq -= newFreq; + } + else + { + bendFactor = ((bend - 64) * 1000) >> 6; + + idx = hmi_range_fix(note + midi_bend_range, s_hmi_freqtable_size); + newFreq = s_hmi_freqtable[idx] - outFreq; + + if(newFreq > 719) + { + idx = hmi_range_fix(11 - noteMod12, s_hmi_bendtable_size); + fmFreq = s_hmi_bendtable[idx]; + outFreq = (fmOctave + 1024) | fmFreq; + + idx = hmi_range_fix(note + midi_bend_range, s_hmi_freqtable_size); + newFreq = s_hmi_freqtable[idx] - outFreq; + } + + newFreq = (newFreq * bendFactor) / 1000; + outFreq += newFreq; + } + + return outFreq; +} +#undef hmi_range_fix + +static inline double s_hmiFreq(double tone) +{ + int_fast32_t note = (int_fast32_t)(tone); + double bendDec = tone - (int)tone; // 0.0 ± 1.0 - one halftone + int_fast32_t bend; + uint_fast32_t inFreq; + uint_fast32_t freq; + int_fast32_t octave; + int_fast32_t octaveOffset = 0; + + bend = (int_fast32_t)(bendDec * 64.0) + 64; + + while(note < 12) + { + octaveOffset--; + note += 12; + } + while(note > 114) + { + octaveOffset++; + note -= 12; + } + + if(bend == 64) + inFreq = s_hmi_freqtable[note - 12]; + else + inFreq = s_hmi_bend_calc(bend, note); + + freq = inFreq & 0x3FF; + octave = (inFreq >> 10) & 0x07; + + octave += octaveOffset; + + while(octave > 0) + { + freq *= 2; + octave -= 1; + } + + return freq; +} + + + + +/*************************************************************** + * Audio Interface Library frequency model * + ***************************************************************/ + +static const uint_fast16_t s_ail_freqtable[] = { + 0x02b2, 0x02b4, 0x02b7, 0x02b9, 0x02bc, 0x02be, 0x02c1, 0x02c3, + 0x02c6, 0x02c9, 0x02cb, 0x02ce, 0x02d0, 0x02d3, 0x02d6, 0x02d8, + 0x02db, 0x02dd, 0x02e0, 0x02e3, 0x02e5, 0x02e8, 0x02eb, 0x02ed, + 0x02f0, 0x02f3, 0x02f6, 0x02f8, 0x02fb, 0x02fe, 0x0301, 0x0303, + 0x0306, 0x0309, 0x030c, 0x030f, 0x0311, 0x0314, 0x0317, 0x031a, + 0x031d, 0x0320, 0x0323, 0x0326, 0x0329, 0x032b, 0x032e, 0x0331, + 0x0334, 0x0337, 0x033a, 0x033d, 0x0340, 0x0343, 0x0346, 0x0349, + 0x034c, 0x034f, 0x0352, 0x0356, 0x0359, 0x035c, 0x035f, 0x0362, + 0x0365, 0x0368, 0x036b, 0x036f, 0x0372, 0x0375, 0x0378, 0x037b, + 0x037f, 0x0382, 0x0385, 0x0388, 0x038c, 0x038f, 0x0392, 0x0395, + 0x0399, 0x039c, 0x039f, 0x03a3, 0x03a6, 0x03a9, 0x03ad, 0x03b0, + 0x03b4, 0x03b7, 0x03bb, 0x03be, 0x03c1, 0x03c5, 0x03c8, 0x03cc, + 0x03cf, 0x03d3, 0x03d7, 0x03da, 0x03de, 0x03e1, 0x03e5, 0x03e8, + 0x03ec, 0x03f0, 0x03f3, 0x03f7, 0x03fb, 0x03fe, 0xfe01, 0xfe03, + 0xfe05, 0xfe07, 0xfe08, 0xfe0a, 0xfe0c, 0xfe0e, 0xfe10, 0xfe12, + 0xfe14, 0xfe16, 0xfe18, 0xfe1a, 0xfe1c, 0xfe1e, 0xfe20, 0xfe21, + 0xfe23, 0xfe25, 0xfe27, 0xfe29, 0xfe2b, 0xfe2d, 0xfe2f, 0xfe31, + 0xfe34, 0xfe36, 0xfe38, 0xfe3a, 0xfe3c, 0xfe3e, 0xfe40, 0xfe42, + 0xfe44, 0xfe46, 0xfe48, 0xfe4a, 0xfe4c, 0xfe4f, 0xfe51, 0xfe53, + 0xfe55, 0xfe57, 0xfe59, 0xfe5c, 0xfe5e, 0xfe60, 0xfe62, 0xfe64, + 0xfe67, 0xfe69, 0xfe6b, 0xfe6d, 0xfe6f, 0xfe72, 0xfe74, 0xfe76, + 0xfe79, 0xfe7b, 0xfe7d, 0xfe7f, 0xfe82, 0xfe84, 0xfe86, 0xfe89, + 0xfe8b, 0xfe8d, 0xfe90, 0xfe92, 0xfe95, 0xfe97, 0xfe99, 0xfe9c, + 0xfe9e, 0xfea1, 0xfea3, 0xfea5, 0xfea8, 0xfeaa, 0xfead, 0xfeaf +}; + +static const uint_fast8_t s_ail_note_octave[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 +}; + +static const uint_fast8_t s_ail_note_halftone[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b +}; + +static inline double s_ailFreq(double tone) +{ + int_fast32_t note = (int_fast32_t)(tone); + double bendDec = tone - (int)tone; // 0.0 ± 1.0 - one halftone + int_fast32_t pitch; + uint_fast16_t freq; + int_fast32_t octave; + int_fast32_t octaveOffset = 0; + uint_fast8_t halftones; + + pitch = (int_fast32_t)(bendDec * 4096) + 8192; // convert to MIDI standard value + pitch = ((pitch - 0x2000) / 0x20) * 2; + + note -= 12; + + while(note < 0) + { + octaveOffset--; + note += 12; + } + while(note > 95) + { + octaveOffset++; + note -= 12; + } + + pitch += (((uint_fast8_t)note) << 8) + 8; + pitch /= 16; + while (pitch < 12 * 16) { + pitch += 12 * 16; + } + while (pitch > 96 * 16 - 1) { + pitch -= 12 * 16; + } + + halftones = (s_ail_note_halftone[pitch >> 4] << 4) + (pitch & 0x0f); + freq = s_ail_freqtable[halftones]; + octave = s_ail_note_octave[pitch >> 4]; + + if((freq & 0x8000) == 0) + { + if (octave > 0) { + octave--; + } else { + freq /= 2; + } + } + + freq &= 0x3FF; + + octave += octaveOffset; + + while(octave > 0) + { + freq *= 2; + octave -= 1; + } + + return freq; +} + + + + + + + +enum +{ + MasterVolumeDefault = 127 +}; + +enum +{ + OPL_PANNING_LEFT = 0x10, + OPL_PANNING_RIGHT = 0x20, + OPL_PANNING_BOTH = 0x30 +}; + + + +static OplInstMeta makeEmptyInstrument() { - adlinsdata2 ins; - memset(&ins, 0, sizeof(adlinsdata2)); - ins.flags = adlinsdata::Flag_NoSound; + OplInstMeta ins; + memset(&ins, 0, sizeof(OplInstMeta)); + ins.flags = OplInstMeta::Flag_NoSound; return ins; } -const adlinsdata2 OPL3::m_emptyInstrument = makeEmptyInstrument(); +const OplInstMeta OPL3::m_emptyInstrument = makeEmptyInstrument(); OPL3::OPL3() : m_numChips(1), @@ -165,13 +864,13 @@ OPL3::OPL3() : m_deepVibratoMode(false), m_rhythmMode(false), m_softPanning(false), + m_masterVolume(MasterVolumeDefault), m_musicMode(MODE_MIDI), m_volumeScale(VOLUME_Generic) { m_insBankSetup.volumeModel = OPL3::VOLUME_Generic; m_insBankSetup.deepTremolo = false; m_insBankSetup.deepVibrato = false; - m_insBankSetup.adLibPercussions = false; m_insBankSetup.scaleModulators = false; #ifdef DISABLE_EMBEDDED_BANKS @@ -181,6 +880,17 @@ OPL3::OPL3() : #endif } +OPL3::~OPL3() +{ +#ifdef ADLMIDI_HW_OPL + silenceAll(); + writeRegI(0, 0x0BD, 0); + writeRegI(0, 0x104, 0); + writeRegI(0, 0x105, 0); + silenceAll(); +#endif +} + bool OPL3::setupLocked() { return (m_musicMode == MODE_CMF || @@ -195,21 +905,43 @@ void OPL3::setEmbeddedBank(uint32_t bank) //Embedded banks are supports 128:128 GM set only m_insBanks.clear(); - if(bank >= static_cast(maxAdlBanks())) + if(bank >= static_cast(g_embeddedBanksCount)) return; - Bank *bank_pair[2] = - { - &m_insBanks[0], - &m_insBanks[PercussionTag] - }; + const BanksDump::BankEntry &bankEntry = g_embeddedBanks[m_embeddedBank]; + m_insBankSetup.deepTremolo = ((bankEntry.bankSetup >> 8) & 0x01) != 0; + m_insBankSetup.deepVibrato = ((bankEntry.bankSetup >> 8) & 0x02) != 0; + m_insBankSetup.volumeModel = (bankEntry.bankSetup & 0xFF); + m_insBankSetup.scaleModulators = false; - for(unsigned i = 0; i < 256; ++i) + for(int ss = 0; ss < 2; ss++) { - size_t meta = banks[bank][i]; - adlinsdata2 &ins = bank_pair[i / 128]->ins[i % 128]; - ins = adlinsdata2::from_adldata(::adlins[meta]); + bank_count_t maxBanks = ss ? bankEntry.banksPercussionCount : bankEntry.banksMelodicCount; + bank_count_t banksOffset = ss ? bankEntry.banksOffsetPercussive : bankEntry.banksOffsetMelodic; + + for(bank_count_t bankID = 0; bankID < maxBanks; bankID++) + { + size_t bankIndex = g_embeddedBanksMidiIndex[banksOffset + bankID]; + const BanksDump::MidiBank &bankData = g_embeddedBanksMidi[bankIndex]; + size_t bankMidiIndex = static_cast((bankData.msb * 256) + bankData.lsb) + (ss ? static_cast(PercussionTag) : 0); + Bank &bankTarget = m_insBanks[bankMidiIndex]; + + for(size_t instId = 0; instId < 128; instId++) + { + midi_bank_idx_t instIndex = bankData.insts[instId]; + if(instIndex < 0) + { + bankTarget.ins[instId].flags = OplInstMeta::Flag_NoSound; + continue; + } + BanksDump::InstrumentEntry instIn = g_embeddedBanksInstruments[instIndex]; + OplInstMeta &instOut = bankTarget.ins[instId]; + + adlFromInstrument(instIn, instOut); + } + } } + #else ADL_UNUSED(bank); #endif @@ -222,19 +954,19 @@ void OPL3::writeReg(size_t chip, uint16_t address, uint8_t value) unsigned o = address >> 8; unsigned port = OPLBase + o * 2; - #ifdef __DJGPP__ +# ifdef __DJGPP__ outportb(port, address); for(unsigned c = 0; c < 6; ++c) inportb(port); outportb(port + 1, value); for(unsigned c = 0; c < 35; ++c) inportb(port); - #endif +# endif - #ifdef __WATCOMC__ +# ifdef __WATCOMC__ outp(port, address); for(uint16_t c = 0; c < 6; ++c) inp(port); outp(port + 1, value); for(uint16_t c = 0; c < 35; ++c) inp(port); - #endif//__WATCOMC__ +# endif//__WATCOMC__ #else//ADLMIDI_HW_OPL m_chips[chip]->writeReg(address, value); @@ -264,11 +996,11 @@ void OPL3::writePan(size_t chip, uint32_t address, uint32_t value) void OPL3::noteOff(size_t c) { - size_t chip = c / 23, cc = c % 23; + size_t chip = c / NUM_OF_CHANNELS, cc = c % NUM_OF_CHANNELS; - if(cc >= 18) + if(cc >= OPL3_CHANNELS_RHYTHM_BASE) { - m_regBD[chip] &= ~(0x10 >> (cc - 18)); + m_regBD[chip] &= ~(0x10 >> (cc - OPL3_CHANNELS_RHYTHM_BASE)); writeRegI(chip, 0xBD, m_regBD[chip]); return; } @@ -276,10 +1008,43 @@ void OPL3::noteOff(size_t c) writeRegI(chip, 0xB0 + g_channelsMap[cc], m_keyBlockFNumCache[c] & 0xDF); } -void OPL3::noteOn(size_t c1, size_t c2, double hertz) // Hertz range: 0..131071 +void OPL3::noteOn(size_t c1, size_t c2, double tone) { - size_t chip = c1 / 23, cc1 = c1 % 23, cc2 = c2 % 23; + size_t chip = c1 / NUM_OF_CHANNELS, cc1 = c1 % NUM_OF_CHANNELS, cc2 = c2 % NUM_OF_CHANNELS; uint32_t octave = 0, ftone = 0, mul_offset = 0; + // Hertz range: 0..131071 + double hertz; + + // Use different frequency formulas in depend on a volume model + switch(m_volumeScale) + { + case VOLUME_DMX: + case VOLUME_DMX_FIXED: + hertz = s_dmxFreq(tone); + break; + + case VOLUME_APOGEE: + case VOLUME_APOGEE_FIXED: + hertz = s_apogeeFreq(tone); + break; + + case VOLUME_9X: + case VOLUME_9X_GENERIC_FM: + hertz = s_9xFreq(tone); + break; + + case VOLUME_HMI: + case VOLUME_HMI_OLD: + hertz = s_hmiFreq(tone); + break; + + case VOLUME_AIL: + hertz = s_ailFreq(tone); + break; + + default: + hertz = s_commonFreq(tone); + } if(hertz < 0) return; @@ -297,16 +1062,16 @@ void OPL3::noteOn(size_t c1, size_t c2, double hertz) // Hertz range: 0..131071 mul_offset++; } - ftone = octave + static_cast(hertz + 0.5); + ftone = octave + static_cast(hertz /*+ 0.5*/); uint32_t chn = g_channelsMap[cc1]; - const adldata &patch1 = m_insCache[c1]; - const adldata &patch2 = m_insCache[c2 < m_insCache.size() ? c2 : 0]; + const OplTimbre &patch1 = m_insCache[c1]; + const OplTimbre &patch2 = m_insCache[c2 < m_insCache.size() ? c2 : 0]; - if(cc1 < 18) + if(cc1 < OPL3_CHANNELS_RHYTHM_BASE) { ftone += 0x2000u; /* Key-ON [KON] */ - const bool natural_4op = (m_channelCategory[c1] == ChanCat_4op_Master); + const bool natural_4op = (m_channelCategory[c1] == ChanCat_4op_First); const size_t opsCount = natural_4op ? 4 : 2; const uint16_t op_addr[4] = { @@ -323,8 +1088,8 @@ void OPL3::noteOn(size_t c1, size_t c2, double hertz) // Hertz range: 0..131071 for(size_t op = 0; op < opsCount; op++) { - if((op > 0) && (op_addr[op] == 0xFFF)) - break; + if(op_addr[op] == 0xFFF) + continue; if(mul_offset > 0) { uint32_t dt = ops[op] & 0xF0; @@ -350,37 +1115,185 @@ void OPL3::noteOn(size_t c1, size_t c2, double hertz) // Hertz range: 0..131071 m_keyBlockFNumCache[c1] = (ftone >> 8); } - if(cc1 >= 18) + if(cc1 >= OPL3_CHANNELS_RHYTHM_BASE) { - m_regBD[chip ] |= (0x10 >> (cc1 - 18)); + m_regBD[chip ] |= (0x10 >> (cc1 - OPL3_CHANNELS_RHYTHM_BASE)); writeRegI(chip , 0x0BD, m_regBD[chip ]); //x |= 0x800; // for test } } -void OPL3::touchNote(size_t c, uint8_t volume, uint8_t brightness) +static inline uint_fast32_t brightnessToOPL(uint_fast32_t brightness) { + double b = static_cast(brightness); + double ret = ::round(127.0 * ::sqrt(b * (1.0 / 127.0))) / 2.0; + return static_cast(ret); +} + +void OPL3::touchNote(size_t c, + uint_fast32_t velocity, + uint_fast32_t channelVolume, + uint_fast32_t channelExpression, + uint_fast32_t brightness, + bool isDrum) +{ + size_t chip = c / NUM_OF_CHANNELS, cc = c % NUM_OF_CHANNELS; + const OplTimbre &adli = m_insCache[c]; + size_t cmf_offset = ((m_musicMode == MODE_CMF) && cc >= OPL3_CHANNELS_RHYTHM_BASE) ? 10 : 0; + uint16_t o1 = g_operatorsMap[cc * 2 + 0 + cmf_offset]; + uint16_t o2 = g_operatorsMap[cc * 2 + 1 + cmf_offset]; + uint8_t srcMod = adli.modulator_40, + srcCar = adli.carrier_40; + uint32_t mode = 1; // 2-op AM + + uint_fast32_t kslMod = srcMod & 0xC0; + uint_fast32_t kslCar = srcCar & 0xC0; + uint_fast32_t tlMod = srcMod & 0x3F; + uint_fast32_t tlCar = srcCar & 0x3F; + + uint_fast32_t modulator; + uint_fast32_t carrier; + + uint_fast32_t volume = 0; + uint_fast32_t midiVolume = 0; + + bool do_modulator = false; + bool do_carrier = true; + + static const bool do_ops[10][2] = + { + { false, true }, /* 2 op FM */ + { true, true }, /* 2 op AM */ + { false, false }, /* 4 op FM-FM ops 1&2 */ + { true, false }, /* 4 op AM-FM ops 1&2 */ + { false, true }, /* 4 op FM-AM ops 1&2 */ + { true, false }, /* 4 op AM-AM ops 1&2 */ + { false, true }, /* 4 op FM-FM ops 3&4 */ + { false, true }, /* 4 op AM-FM ops 3&4 */ + { false, true }, /* 4 op FM-AM ops 3&4 */ + { true, true } /* 4 op AM-AM ops 3&4 */ + }; + + + // ------ Mix volumes and compute average ------ + + switch(m_volumeScale) + { + default: + case VOLUME_Generic: + { + volume = velocity * m_masterVolume * + channelVolume * channelExpression; + + /* If the channel has arpeggio, the effective volume of + * *this* instrument is actually lower due to timesharing. + * To compensate, add extra volume that corresponds to the + * time this note is *not* heard. + * Empirical tests however show that a full equal-proportion + * increment sounds wrong. Therefore, using the square root. + */ + //volume = (int)(volume * std::sqrt( (double) ch[c].users.size() )); + const double c1 = 11.541560327111707; + const double c2 = 1.601379199767093e+02; + const uint_fast32_t minVolume = 1108075; // 8725 * 127 + + // The formula below: SOLVE(V=127^4 * 2^( (A-63.49999) / 8), A) + if(volume > minVolume) + { + double lv = std::log(static_cast(volume)); + volume = static_cast(lv * c1 - c2); + } + else + volume = 0; + } + break; + + case VOLUME_NATIVE: + { + volume = velocity * channelVolume * channelExpression; + // 4096766 = (127 * 127 * 127) / 2 + volume = (volume * m_masterVolume) / 4096766; + } + break; + + case VOLUME_DMX: + case VOLUME_DMX_FIXED: + { + volume = (channelVolume * channelExpression * m_masterVolume) / 16129; + volume = (s_dmx_volume_model[volume] + 1) << 1; + volume = (s_dmx_volume_model[(velocity < 128) ? velocity : 127] * volume) >> 9; + } + break; + + case VOLUME_APOGEE: + case VOLUME_APOGEE_FIXED: + { + midiVolume = (channelVolume * channelExpression * m_masterVolume / 16129); + } + break; + + case VOLUME_9X: + { + volume = (channelVolume * channelExpression * m_masterVolume) / 16129; + volume = s_w9x_sb16_volume_model[volume >> 2]; + } + break; + + case VOLUME_9X_GENERIC_FM: + { + volume = (channelVolume * channelExpression * m_masterVolume) / 16129; + volume = s_w9x_generic_fm_volume_model[volume >> 2]; + } + break; + + case VOLUME_AIL: + { + midiVolume = (channelVolume * channelExpression) * 2; + midiVolume >>= 8; + if(midiVolume != 0) + midiVolume++; + + velocity = (velocity & 0x7F) >> 3; + velocity = s_ail_vel_graph[velocity]; + + midiVolume = (midiVolume * velocity) * 2; + midiVolume >>= 8; + if(midiVolume != 0) + midiVolume++; + + if(m_masterVolume < 127) + midiVolume = (midiVolume * m_masterVolume) / 127; + } + break; + + case VOLUME_HMI: + case VOLUME_HMI_OLD: + { + volume = (channelVolume * channelExpression * m_masterVolume) / 16129; + volume = (((volume * 128) / 127) * velocity) >> 7; + volume = s_hmi_volume_table[volume >> 1]; + } + break; + } + if(volume > 63) volume = 63; - size_t chip = c / 23, cc = c % 23; - const adldata &adli = m_insCache[c]; - uint16_t o1 = g_operatorsMap[cc * 2 + 0]; - uint16_t o2 = g_operatorsMap[cc * 2 + 1]; - uint8_t x = adli.modulator_40, y = adli.carrier_40; - uint32_t mode = 1; // 2-op AM + if(midiVolume > 127) + midiVolume = 127; + if(m_channelCategory[c] == ChanCat_Regular || m_channelCategory[c] == ChanCat_Rhythm_Bass) { mode = adli.feedconn & 1; // 2-op FM or 2-op AM } - else if(m_channelCategory[c] == ChanCat_4op_Master || - m_channelCategory[c] == ChanCat_4op_Slave) + else if(m_channelCategory[c] == ChanCat_4op_First || + m_channelCategory[c] == ChanCat_4op_Second) { - const adldata *i0, *i1; + const OplTimbre *i0, *i1; - if(m_channelCategory[c] == ChanCat_4op_Master) + if(m_channelCategory[c] == ChanCat_4op_First) { i0 = &adli; i1 = &m_insCache[c + 3]; @@ -396,47 +1309,158 @@ void OPL3::touchNote(size_t c, uint8_t volume, uint8_t brightness) mode += (i0->feedconn & 1) + (i1->feedconn & 1) * 2; } - static const bool do_ops[10][2] = - { - { false, true }, /* 2 op FM */ - { true, true }, /* 2 op AM */ - { false, false }, /* 4 op FM-FM ops 1&2 */ - { true, false }, /* 4 op AM-FM ops 1&2 */ - { false, true }, /* 4 op FM-AM ops 1&2 */ - { true, false }, /* 4 op AM-AM ops 1&2 */ - { false, true }, /* 4 op FM-FM ops 3&4 */ - { false, true }, /* 4 op AM-FM ops 3&4 */ - { false, true }, /* 4 op FM-AM ops 3&4 */ - { true, true } /* 4 op AM-AM ops 3&4 */ - }; + do_modulator = do_ops[mode][0] || m_scaleModulators; + do_carrier = do_ops[mode][1] || m_scaleModulators; + + // ------ Compute the total level register output data ------ if(m_musicMode == MODE_RSXX) { - writeRegI(chip, 0x40 + o1, x); - if(o2 != 0xFFF) - writeRegI(chip, 0x40 + o2, y - volume / 2); + tlCar -= volume / 2; } - else + else if(m_volumeScale == Synth::VOLUME_APOGEE || + m_volumeScale == Synth::VOLUME_APOGEE_FIXED) { - bool do_modulator = do_ops[ mode ][ 0 ] || m_scaleModulators; - bool do_carrier = do_ops[ mode ][ 1 ] || m_scaleModulators; + // volume = ((64 * (velocity + 0x80)) * volume) >> 15; - uint32_t modulator = do_modulator ? (x | 63) - volume + volume * (x & 63) / 63 : x; - uint32_t carrier = do_carrier ? (y | 63) - volume + volume * (y & 63) / 63 : y; + if(do_carrier) + { + tlCar = 63 - tlCar; + tlCar *= velocity + 0x80; + tlCar = (midiVolume * tlCar) >> 15; + tlCar = tlCar ^ 63; + } - if(brightness != 127) + if(do_modulator) { - brightness = static_cast(::round(127.0 * ::sqrt((static_cast(brightness)) * (1.0 / 127.0))) / 2.0); - if(!do_modulator) - modulator = (modulator | 63) - brightness + brightness * (modulator & 63) / 63; - if(!do_carrier) - carrier = (carrier | 63) - brightness + brightness * (carrier & 63) / 63; + uint_fast32_t mod = tlCar; + + tlMod = 63 - tlMod; + tlMod *= velocity + 0x80; + + if(m_volumeScale == Synth::VOLUME_APOGEE_FIXED || mode > 1) + mod = tlMod; // Fix the AM voices bug + + // NOTE: Here is a bug of Apogee Sound System that makes modulator + // to not work properly on AM instruments. The fix of this bug, you + // need to replace the tlCar with tmMod in this formula. + // Don't do the bug on 4-op voices. + tlMod = (midiVolume * mod) >> 15; + + tlMod ^= 63; } + } + else if(m_volumeScale == Synth::VOLUME_DMX && mode <= 1) + { + tlCar = (63 - volume); - writeRegI(chip, 0x40 + o1, modulator); - if(o2 != 0xFFF) - writeRegI(chip, 0x40 + o2, carrier); + if(do_modulator) + { + if(tlMod < tlCar) + tlMod = tlCar; + } + } + else if(m_volumeScale == Synth::VOLUME_9X) + { + if(do_carrier) + tlCar += volume + s_w9x_sb16_volume_model[velocity >> 2]; + if(do_modulator) + tlMod += volume + s_w9x_sb16_volume_model[velocity >> 2]; + + if(tlCar > 0x3F) + tlCar = 0x3F; + if(tlMod > 0x3F) + tlMod = 0x3F; + } + else if(m_volumeScale == Synth::VOLUME_9X_GENERIC_FM) + { + if(do_carrier) + tlCar += volume + s_w9x_generic_fm_volume_model[velocity >> 2]; + if(do_modulator) + tlMod += volume + s_w9x_generic_fm_volume_model[velocity >> 2]; + + if(tlCar > 0x3F) + tlCar = 0x3F; + if(tlMod > 0x3F) + tlMod = 0x3F; } + else if(m_volumeScale == Synth::VOLUME_AIL) + { + uint_fast32_t v0_val = (~srcMod) & 0x3f; + uint_fast32_t v1_val = (~srcCar) & 0x3f; + + if(do_modulator) + v0_val = (v0_val * midiVolume) / 127; + if(do_carrier) + v1_val = (v1_val * midiVolume) / 127; + + tlMod = (~v0_val) & 0x3F; + tlCar = (~v1_val) & 0x3F; + } + else if(m_volumeScale == Synth::VOLUME_HMI) + { + uint_fast32_t vol; + + if(do_modulator) + { + vol = (64 - volume) << 1; + vol *= (64 - tlMod); + tlMod = (8192 - vol) >> 7; + } + + if(do_carrier) + { + vol = (64 - volume) << 1; + vol *= (64 - tlCar); + tlCar = (8192 - vol) >> 7; + } + } + else if(m_volumeScale == Synth::VOLUME_HMI_OLD) + { + uint_fast32_t vol; + + if(adli.feedconn == 0 && !isDrum) + { + vol = (channelVolume * channelExpression * 64) / 16129; + vol = (((vol * 128) / 127) * velocity) >> 7; + vol = s_hmi_volume_table[vol >> 1]; + + vol = (64 - vol) << 1; + vol *= (64 - tlCar); + tlMod = (8192 - vol) >> 7; + } + + if(isDrum) // TODO: VERIFY A CORRECTNESS OF THIS!!! + vol = s_hmi_volume_table[velocity >> 1]; + + vol = (64 - volume) << 1; + vol *= (64 - tlCar); + tlCar = (8192 - vol) >> 7; + } + else + { + if(do_modulator) + tlMod = 63 - volume + (volume * tlMod) / 63; + if(do_carrier) + tlCar = 63 - volume + (volume * tlCar) / 63; + } + + if(brightness != 127 && !isDrum) + { + brightness = brightnessToOPL(brightness); + if(!do_modulator) + tlMod = 63 - brightness + (brightness * tlMod) / 63; + if(!do_carrier) + tlCar = 63 - brightness + (brightness * tlCar) / 63; + } + + modulator = (kslMod & 0xC0) | (tlMod & 63); + carrier = (kslCar & 0xC0) | (tlCar & 63); + + if(o1 != 0xFFF) + writeRegI(chip, 0x40 + o1, modulator); + if(o2 != 0xFFF) + writeRegI(chip, 0x40 + o2, carrier); // Correct formula (ST3, AdPlug): // 63-((63-(instrvol))/63)*chanvol @@ -446,32 +1470,20 @@ void OPL3::touchNote(size_t c, uint8_t volume, uint8_t brightness) // 63 + chanvol * (instrvol / 63.0 - 1) } -/* -void OPL3::Touch(unsigned c, unsigned volume) // Volume maxes at 127*127*127 -{ - if(LogarithmicVolumes) - Touch_Real(c, volume * 127 / (127 * 127 * 127) / 2); - else - { - // The formula below: SOLVE(V=127^3 * 2^( (A-63.49999) / 8), A) - Touch_Real(c, volume > 8725 ? static_cast(std::log(volume) * 11.541561 + (0.5 - 104.22845)) : 0); - // The incorrect formula below: SOLVE(V=127^3 * (2^(A/63)-1), A) - //Touch_Real(c, volume>11210 ? 91.61112 * std::log(4.8819E-7*volume + 1.0)+0.5 : 0); - } -}*/ - -void OPL3::setPatch(size_t c, const adldata &instrument) +void OPL3::setPatch(size_t c, const OplTimbre &instrument) { - size_t chip = c / 23, cc = c % 23; + size_t chip = c / NUM_OF_CHANNELS, cc = c % NUM_OF_CHANNELS; static const uint8_t data[4] = {0x20, 0x60, 0x80, 0xE0}; m_insCache[c] = instrument; - uint16_t o1 = g_operatorsMap[cc * 2 + 0]; - uint16_t o2 = g_operatorsMap[cc * 2 + 1]; + size_t cmf_offset = ((m_musicMode == MODE_CMF) && (cc >= OPL3_CHANNELS_RHYTHM_BASE)) ? 10 : 0; + uint16_t o1 = g_operatorsMap[cc * 2 + 0 + cmf_offset]; + uint16_t o2 = g_operatorsMap[cc * 2 + 1 + cmf_offset]; unsigned x = instrument.modulator_E862, y = instrument.carrier_E862; for(size_t a = 0; a < 4; ++a, x >>= 8, y >>= 8) { - writeRegI(chip, data[a] + o1, x & 0xFF); + if(o1 != 0xFFF) + writeRegI(chip, data[a] + o1, x & 0xFF); if(o2 != 0xFFF) writeRegI(chip, data[a] + o2, y & 0xFF); } @@ -479,14 +1491,14 @@ void OPL3::setPatch(size_t c, const adldata &instrument) void OPL3::setPan(size_t c, uint8_t value) { - size_t chip = c / 23, cc = c % 23; - if(g_channelsMap[cc] != 0xFFF) + size_t chip = c / NUM_OF_CHANNELS, cc = c % NUM_OF_CHANNELS; + if(g_channelsMapPan[cc] != 0xFFF) { #ifndef ADLMIDI_HW_OPL if (m_softPanning) { - writePan(chip, g_channelsMap[cc], value); - writeRegI(chip, 0xC0 + g_channelsMap[cc], m_insCache[c].feedconn | OPL_PANNING_BOTH); + writePan(chip, g_channelsMapPan[cc], value); + writeRegI(chip, 0xC0 + g_channelsMapPan[cc], m_insCache[c].feedconn | OPL_PANNING_BOTH); } else { @@ -494,8 +1506,8 @@ void OPL3::setPan(size_t c, uint8_t value) int panning = 0; if(value < 64 + 32) panning |= OPL_PANNING_LEFT; if(value >= 64 - 32) panning |= OPL_PANNING_RIGHT; - writePan(chip, g_channelsMap[cc], 64); - writeRegI(chip, 0xC0 + g_channelsMap[cc], m_insCache[c].feedconn | panning); + writePan(chip, g_channelsMapPan[cc], 64); + writeRegI(chip, 0xC0 + g_channelsMapPan[cc], m_insCache[c].feedconn | panning); #ifndef ADLMIDI_HW_OPL } #endif @@ -507,7 +1519,7 @@ void OPL3::silenceAll() // Silence all OPL channels. for(size_t c = 0; c < m_numChannels; ++c) { noteOff(c); - touchNote(c, 0); + touchNote(c, 0, 0, 0); } } @@ -528,10 +1540,10 @@ void OPL3::updateChannelCategories() { for(size_t a = 0, n = m_numChips; a < n; ++a) { - for(size_t b = 0; b < 23; ++b) + for(size_t b = 0; b < NUM_OF_CHANNELS; ++b) { - m_channelCategory[a * 23 + b] = - (b >= 18) ? ChanCat_Rhythm_Slave : ChanCat_Regular; + m_channelCategory[a * NUM_OF_CHANNELS + b] = + (b >= OPL3_CHANNELS_RHYTHM_BASE) ? ChanCat_Rhythm_Secondary : ChanCat_Regular; } } } @@ -539,11 +1551,11 @@ void OPL3::updateChannelCategories() { for(size_t a = 0, n = m_numChips; a < n; ++a) { - for(size_t b = 0; b < 23; ++b) + for(size_t b = 0; b < NUM_OF_CHANNELS; ++b) { - m_channelCategory[a * 23 + b] = - (b >= 18) ? static_cast(ChanCat_Rhythm_Bass + (b - 18)) : - (b >= 6 && b < 9) ? ChanCat_Rhythm_Slave : ChanCat_Regular; + m_channelCategory[a * NUM_OF_CHANNELS + b] = + (b >= OPL3_CHANNELS_RHYTHM_BASE) ? static_cast(ChanCat_Rhythm_Bass + (b - OPL3_CHANNELS_RHYTHM_BASE)) : + (b >= 6 && b < 9) ? ChanCat_Rhythm_Secondary : ChanCat_Regular; } } } @@ -551,8 +1563,8 @@ void OPL3::updateChannelCategories() uint32_t nextfour = 0; for(uint32_t a = 0; a < fours; ++a) { - m_channelCategory[nextfour] = ChanCat_4op_Master; - m_channelCategory[nextfour + 3] = ChanCat_4op_Slave; + m_channelCategory[nextfour] = ChanCat_4op_First; + m_channelCategory[nextfour + 3] = ChanCat_4op_Second; switch(a % 6) { @@ -568,7 +1580,7 @@ void OPL3::updateChannelCategories() nextfour += 1; break; case 5: - nextfour += 23 - 9 - 2; + nextfour += NUM_OF_CHANNELS - 9 - 2; break; } } @@ -591,9 +1603,9 @@ void OPL3::updateChannelCategories() Channel 0: 00 00 03 03 06 08 09 0B Channel 1: 01 01 04 04 07 09 10 0C Channel 2: 02 02 05 05 08 0A 11 0D - Channel 3: CHANNEL 0 SLAVE - Channel 4: CHANNEL 1 SLAVE - Channel 5: CHANNEL 2 SLAVE + Channel 3: CHANNEL 0 SECONDARY + Channel 4: CHANNEL 1 SECONDARY + Channel 5: CHANNEL 2 SECONDARY Channel 6: 12 10 15 13 Channel 7: 13 11 16 14 Channel 8: 14 12 17 15 @@ -636,6 +1648,30 @@ void OPL3::setVolumeScaleModel(ADLMIDI_VolumeModels volumeModel) case ADLMIDI_VolumeModel_9X: m_volumeScale = OPL3::VOLUME_9X; break; + + case ADLMIDI_VolumeModel_DMX_Fixed: + m_volumeScale = OPL3::VOLUME_DMX_FIXED; + break; + + case ADLMIDI_VolumeModel_APOGEE_Fixed: + m_volumeScale = OPL3::VOLUME_APOGEE_FIXED; + break; + + case ADLMIDI_VolumeModel_AIL: + m_volumeScale = OPL3::VOLUME_AIL; + break; + + case ADLMIDI_VolumeModel_9X_GENERIC_FM: + m_volumeScale = OPL3::VOLUME_9X_GENERIC_FM; + break; + + case ADLMIDI_VolumeModel_HMI: + m_volumeScale = OPL3::VOLUME_HMI; + break; + + case ADLMIDI_VolumeModel_HMI_OLD: + m_volumeScale = OPL3::VOLUME_HMI_OLD; + break; } } @@ -654,6 +1690,18 @@ ADLMIDI_VolumeModels OPL3::getVolumeScaleModel() return ADLMIDI_VolumeModel_APOGEE; case OPL3::VOLUME_9X: return ADLMIDI_VolumeModel_9X; + case OPL3::VOLUME_DMX_FIXED: + return ADLMIDI_VolumeModel_DMX_Fixed; + case OPL3::VOLUME_APOGEE_FIXED: + return ADLMIDI_VolumeModel_APOGEE_Fixed; + case OPL3::VOLUME_AIL: + return ADLMIDI_VolumeModel_AIL; + case OPL3::VOLUME_9X_GENERIC_FM: + return ADLMIDI_VolumeModel_9X_GENERIC_FM; + case OPL3::VOLUME_HMI: + return ADLMIDI_VolumeModel_HMI; + case OPL3::VOLUME_HMI_OLD: + return ADLMIDI_VolumeModel_HMI_OLD; } } @@ -685,8 +1733,8 @@ void OPL3::reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) m_chips.resize(m_numChips, AdlMIDI_SPtr()); #endif - const struct adldata defaultInsCache = { 0x1557403,0x005B381, 0x49,0x80, 0x4, +0 }; - m_numChannels = m_numChips * 23; + const struct OplTimbre defaultInsCache = { 0x1557403,0x005B381, 0x49,0x80, 0x4, +0 }; + m_numChannels = m_numChips * NUM_OF_CHANNELS; m_insCache.resize(m_numChannels, defaultInsCache); m_keyBlockFNumCache.resize(m_numChannels, 0); m_regBD.resize(m_numChips, 0); @@ -694,10 +1742,10 @@ void OPL3::reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) for(size_t p = 0, a = 0; a < m_numChips; ++a) { - for(size_t b = 0; b < 18; ++b) - m_channelCategory[p++] = 0; - for(size_t b = 0; b < 5; ++b) - m_channelCategory[p++] = ChanCat_Rhythm_Slave; + for(size_t b = 0; b < OPL3_CHANNELS_RHYTHM_BASE; ++b) + m_channelCategory[p++] = ChanCat_Regular; + for(size_t b = 0; b < NUM_OF_RM_CHANNELS; ++b) + m_channelCategory[p++] = ChanCat_Rhythm_Secondary; } static const uint16_t data[] = @@ -729,6 +1777,16 @@ void OPL3::reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) case ADLMIDI_EMU_DOSBOX: chip = new DosBoxOPL3; break; +#endif +#ifndef ADLMIDI_DISABLE_OPAL_EMULATOR + case ADLMIDI_EMU_OPAL: + chip = new OpalOPL3; + break; +#endif +#ifndef ADLMIDI_DISABLE_JAVA_EMULATOR + case ADLMIDI_EMU_JAVA: + chip = new JavaOPL3; + break; #endif } m_chips[i].reset(chip); @@ -742,7 +1800,7 @@ void OPL3::reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) #endif // ADLMIDI_HW_OPL /* Clean-up channels from any playing junk sounds */ - for(size_t a = 0; a < 18; ++a) + for(size_t a = 0; a < OPL3_CHANNELS_RHYTHM_BASE; ++a) writeRegI(i, 0xB0 + g_channelsMap[a], 0x00); for(size_t a = 0; a < sizeof(data) / sizeof(*data); a += 2) writeRegI(i, data[a], (data[a + 1])); diff --git a/thirdparty/adlmidi/adlmidi_opl3.hpp b/thirdparty/adlmidi/adlmidi_opl3.hpp new file mode 100644 index 0000000..0165d02 --- /dev/null +++ b/thirdparty/adlmidi/adlmidi_opl3.hpp @@ -0,0 +1,356 @@ +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation + * + * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov + * + * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: + * http://iki.fi/bisqwit/source/adlmidi.html + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef ADLMIDI_OPL3_HPP +#define ADLMIDI_OPL3_HPP + +#include "oplinst.h" +#include "adlmidi_ptr.hpp" +#include "adlmidi_private.hpp" +#include "adlmidi_bankmap.h" + +#define BEND_COEFFICIENT 172.4387 + +#define OPL3_CHANNELS_MELODIC_BASE 0 +#define OPL3_CHANNELS_RHYTHM_BASE 18 + +#define NUM_OF_CHANNELS 23 +#define NUM_OF_4OP_CHANNELS 6 +#define NUM_OF_2OP_CHANNELS 18 +#define NUM_OF_2x2_CHANNELS 9 +#define NUM_OF_RM_CHANNELS 5 + +/** + * @brief OPL3 Chip management class + */ +class OPL3 +{ + friend class MIDIplay; + friend class AdlInstrumentTester; + friend int adlCalculateFourOpChannels(MIDIplay *play, bool silent); +public: + enum + { + PercussionTag = 1 << 15, + CustomBankTag = 0xFFFFFFFF + }; + + //! Total number of chip channels between all running emulators + uint32_t m_numChannels; + //! Just a padding. Reserved. + char _padding[4]; +#ifndef ADLMIDI_HW_OPL + //! Running chip emulators + std::vector > m_chips; +#endif + +private: + //! Cached patch data, needed by Touch() + std::vector m_insCache; + //! Value written to B0, cached, needed by NoteOff. + /*! Contains Key on/off state, octave block and frequency number values + */ + std::vector m_keyBlockFNumCache; + //! Cached BD registry value (flags register: DeepTremolo, DeepVibrato, and RhythmMode) + std::vector m_regBD; + +public: + /** + * @brief MIDI bank entry + */ + struct Bank + { + //! MIDI Bank instruments + OplInstMeta ins[128]; + }; + typedef BasicBankMap BankMap; + //! MIDI bank instruments data + BankMap m_insBanks; + //! MIDI bank-wide setup + OplBankSetup m_insBankSetup; + +public: + //! Blank instrument template + static const OplInstMeta m_emptyInstrument; + //! Total number of running concurrent emulated chips + uint32_t m_numChips; + //! Currently running embedded bank number. "CustomBankTag" means usign of the custom bank. + uint32_t m_embeddedBank; + //! Total number of needed four-operator channels in all running chips + uint32_t m_numFourOps; + //! Turn global Deep Tremolo mode on + bool m_deepTremoloMode; + //! Turn global Deep Vibrato mode on + bool m_deepVibratoMode; + //! Use Rhythm Mode percussions + bool m_rhythmMode; + //! Carriers-only are scaled by default by volume level. This flag will tell to scale modulators too. + bool m_scaleModulators; + //! Run emulator at PCM rate if that possible. Reduces sounding accuracy, but decreases CPU usage on lower rates. + bool m_runAtPcmRate; + //! Enable soft panning + bool m_softPanning; + //! Master volume, controlled via SysEx (0...127) + uint8_t m_masterVolume; + + //! Just a padding. Reserved. + char _padding2[3]; + + /** + * @brief Music playing mode + */ + enum MusicMode + { + //! MIDI mode + MODE_MIDI, + //! AIL XMIDI mode + MODE_XMIDI, + //! Id-Software Music mode + MODE_IMF, + //! Creative Music Files mode + MODE_CMF, + //! EA-MUS (a.k.a. RSXX) mode + MODE_RSXX + } m_musicMode; + + /** + * @brief Volume models enum + */ + enum VolumesScale + { + //! Generic volume model (linearization of logarithmic scale) + VOLUME_Generic, + //! OPL3 native logarithmic scale + VOLUME_NATIVE, + //! DMX volume scale logarithmic table + VOLUME_DMX, + //! Apoge Sound System volume scaling model + VOLUME_APOGEE, + //! Windows 9x SB16 driver volume scale table + VOLUME_9X, + //! DMX model with a fixed bug of AM voices + VOLUME_DMX_FIXED, + //! Apogee model with a fixed bug of AM voices + VOLUME_APOGEE_FIXED, + //! Audio Interfaces Library volume scaling model + VOLUME_AIL, + //! Windows 9x Generic FM driver volume scale table + VOLUME_9X_GENERIC_FM, + //! HMI Sound Operating System volume scale table + VOLUME_HMI, + //! HMI Sound Operating System volume scale model, older variant + VOLUME_HMI_OLD + } m_volumeScale; + + //! Reserved + char _padding3[8]; + + /** + * @brief Channel categiry enumeration + */ + enum ChanCat + { + //! Regular melodic/percussion channel + ChanCat_Regular = 0, + //! Four-op first part + ChanCat_4op_First = 1, + //! Four-op second part + ChanCat_4op_Second = 2, + //! Rhythm-mode Bass drum + ChanCat_Rhythm_Bass = 3, + //! Rhythm-mode Snare drum + ChanCat_Rhythm_Snare = 4, + //! Rhythm-mode Tom-Tom + ChanCat_Rhythm_Tom = 5, + //! Rhythm-mode Cymbal + ChanCat_Rhythm_Cymbal = 6, + //! Rhythm-mode Hi-Hat + ChanCat_Rhythm_HiHat = 7, + //! Rhythm-mode Secondary channel + ChanCat_Rhythm_Secondary = 8 + }; + + //! Category of the channel + /*! 1 = quad-first, 2 = quad-second, 0 = regular + 3 = percussion BassDrum + 4 = percussion Snare + 5 = percussion Tom + 6 = percussion Crash cymbal + 7 = percussion Hihat + 8 = percussion Secondary + */ + std::vector m_channelCategory; + + + /** + * @brief C.O. Constructor + */ + OPL3(); + + /** + * @brief C.O. Destructor + */ + ~OPL3(); + + /** + * @brief Checks are setup locked to be changed on the fly or not + * @return true when setup on the fly is locked + */ + bool setupLocked(); + + /** + * @brief Choose one of embedded banks + * @param bank ID of the bank + */ + void setEmbeddedBank(uint32_t bank); + + /** + * @brief Write data to OPL3 chip register + * @param chip Index of emulated chip. In hardware OPL3 builds, this parameter is ignored + * @param address Register address to write + * @param value Value to write + */ + void writeReg(size_t chip, uint16_t address, uint8_t value); + + /** + * @brief Write data to OPL3 chip register + * @param chip Index of emulated chip. In hardware OPL3 builds, this parameter is ignored + * @param address Register address to write + * @param value Value to write + */ + void writeRegI(size_t chip, uint32_t address, uint32_t value); + + /** + * @brief Write to soft panning control of OPL3 chip emulator + * @param chip Index of emulated chip. + * @param address Register of channel to write + * @param value Value to write + */ + void writePan(size_t chip, uint32_t address, uint32_t value); + + /** + * @brief Off the note in specified chip channel + * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) + */ + void noteOff(size_t c); + + /** + * @brief On the note in specified chip channel with specified frequency of the tone + * @param c1 Channel of chip [or master 4-op channel] (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) + * @param c2 Second 4-op channel of chip, unused for 2op (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) + * @param tone The tone to play (integer part - MIDI halftone, decimal part - relative bend offset) + */ + void noteOn(size_t c1, size_t c2, double tone); + + /** + * @brief Change setup of instrument in specified chip channel + * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) + * @param velocity Note velocity (from 0 to 127) + * @param channelVolume Channel volume level (from 0 to 127) + * @param channelExpression Channel expression level (from 0 to 127) + * @param brightness CC74 Brightness level (from 0 to 127) + * @param isDrum Is this a drum note? This flag is needed for some volume model algorithms + */ + void touchNote(size_t c, + uint_fast32_t velocity, + uint_fast32_t channelVolume = 127, + uint_fast32_t channelExpression = 127, + uint_fast32_t brightness = 127, + bool isDrum = false); + + /** + * @brief Set the instrument into specified chip channel + * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) + * @param instrument Instrument data to set into the chip channel + */ + void setPatch(size_t c, const OplTimbre &instrument); + + /** + * @brief Set panpot position + * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) + * @param value 3-bit panpot value + */ + void setPan(size_t c, uint8_t value); + + /** + * @brief Shut up all chip channels + */ + void silenceAll(); + + /** + * @brief Commit updated flag states to chip registers + */ + void updateChannelCategories(); + + /** + * @brief commit deepTremolo and deepVibrato flags + */ + void commitDeepFlags(); + + /** + * @brief Set the volume scaling model + * @param volumeModel Type of volume scale model scale + */ + void setVolumeScaleModel(ADLMIDI_VolumeModels volumeModel); + + /** + * @brief Get the volume scaling model + */ + ADLMIDI_VolumeModels getVolumeScaleModel(); + + #ifndef ADLMIDI_HW_OPL + /** + * @brief Clean up all running emulated chip instances + */ + void clearChips(); + #endif + + /** + * @brief Reset chip properties and initialize them + * @param emulator Type of chip emulator + * @param PCM_RATE Output sample rate to generate on output + * @param audioTickHandler PCM-accurate clock hook + */ + void reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler); +}; + +/** + * @brief Check emulator availability + * @param emulator Emulator ID (ADL_Emulator) + * @return true when emulator is available + */ +extern bool adl_isEmulatorAvailable(int emulator); + +/** + * @brief Find highest emulator + * @return The ADL_Emulator enum value which contains ID of highest emulator + */ +extern int adl_getHighestEmulator(); + +/** + * @brief Find lowest emulator + * @return The ADL_Emulator enum value which contains ID of lowest emulator + */ +extern int adl_getLowestEmulator(); + +#endif // ADLMIDI_OPL3_HPP diff --git a/thirdparty/adlmidi/adlmidi_private.cpp b/thirdparty/adlmidi/adlmidi_private.cpp index 4e8e488..5a08f6e 100644 --- a/thirdparty/adlmidi/adlmidi_private.cpp +++ b/thirdparty/adlmidi/adlmidi_private.cpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -21,7 +21,11 @@ * along with this program. If not, see . */ +#include "adlmidi_midiplay.hpp" +#include "adlmidi_opl3.hpp" #include "adlmidi_private.hpp" +#include "wopl/wopl_file.h" + std::string ADLMIDI_ErrorString; @@ -36,49 +40,33 @@ void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate) int adlCalculateFourOpChannels(MIDIplay *play, bool silent) { + Synth &synth = *play->m_synth; size_t n_fourop[2] = {0, 0}, n_total[2] = {0, 0}; + bool rhythmModeNeeded = false; + size_t numFourOps = 0; //Automatically calculate how much 4-operator channels is necessary -#ifndef DISABLE_EMBEDDED_BANKS - if(play->m_synth.m_embeddedBank == OPL3::CustomBankTag) -#endif { //For custom bank - OPL3::BankMap::iterator it = play->m_synth.m_insBanks.begin(); - OPL3::BankMap::iterator end = play->m_synth.m_insBanks.end(); + Synth::BankMap::iterator it = synth.m_insBanks.begin(); + Synth::BankMap::iterator end = synth.m_insBanks.end(); for(; it != end; ++it) { size_t bank = it->first; - size_t div = (bank & OPL3::PercussionTag) ? 1 : 0; + size_t div = (bank & Synth::PercussionTag) ? 1 : 0; for(size_t i = 0; i < 128; ++i) { - adlinsdata2 &ins = it->second.ins[i]; - if(ins.flags & adlinsdata::Flag_NoSound) + OplInstMeta &ins = it->second.ins[i]; + if(ins.flags & OplInstMeta::Flag_NoSound) continue; - if((ins.flags & adlinsdata::Flag_Real4op) != 0) + if((ins.flags & OplInstMeta::Flag_Real4op) != 0) ++n_fourop[div]; ++n_total[div]; + if(div && ((ins.flags & OplInstMeta::Mask_RhythmMode) != 0)) + rhythmModeNeeded = true; } } } -#ifndef DISABLE_EMBEDDED_BANKS - else - { - //For embedded bank - for(size_t a = 0; a < 256; ++a) - { - size_t insno = banks[play->m_setup.bankId][a]; - if(insno == 198) - continue; - ++n_total[a / 128]; - adlinsdata2 ins = adlinsdata2::from_adldata(::adlins[insno]); - if((ins.flags & adlinsdata::Flag_Real4op) != 0) - ++n_fourop[a / 128]; - } - } -#endif - - size_t numFourOps = 0; // All 2ops (no 4ops) if((n_fourop[0] == 0) && (n_fourop[1] == 0)) @@ -93,16 +81,47 @@ int adlCalculateFourOpChannels(MIDIplay *play, bool silent) else if(n_fourop[0] > 0) numFourOps = 4; -/* //Old formula - unsigned NumFourOps = ((n_fourop[0] == 0) && (n_fourop[1] == 0)) ? 0 - : (n_fourop[0] >= (n_total[0] * 7) / 8) ? play->m_setup.NumCards * 6 - : (play->m_setup.NumCards == 1 ? 1 : play->m_setup.NumCards * 4); -*/ + synth.m_numFourOps = static_cast(numFourOps * synth.m_numChips); - play->m_synth.m_numFourOps = static_cast(numFourOps * play->m_synth.m_numChips); // Update channel categories and set up four-operator channels if(!silent) - play->m_synth.updateChannelCategories(); + synth.updateChannelCategories(); + + // Set rhythm mode when it needed + synth.m_rhythmMode = rhythmModeNeeded; return 0; } + +#ifndef DISABLE_EMBEDDED_BANKS +void adlFromInstrument(const BanksDump::InstrumentEntry &instIn, OplInstMeta &instOut) +{ + instOut.voice2_fine_tune = 0.0; + if(instIn.secondVoiceDetune != 0) + instOut.voice2_fine_tune = (double)((((int)instIn.secondVoiceDetune + 128) >> 1) - 64) / 32.0; + + instOut.midiVelocityOffset = instIn.midiVelocityOffset; + instOut.drumTone = instIn.percussionKeyNumber; + instOut.flags = (instIn.instFlags & WOPL_Ins_4op) && (instIn.instFlags & WOPL_Ins_Pseudo4op) ? OplInstMeta::Flag_Pseudo4op : 0; + instOut.flags|= (instIn.instFlags & WOPL_Ins_4op) && ((instIn.instFlags & WOPL_Ins_Pseudo4op) == 0) ? OplInstMeta::Flag_Real4op : 0; + instOut.flags|= (instIn.instFlags & WOPL_Ins_IsBlank) ? OplInstMeta::Flag_NoSound : 0; + instOut.flags|= instIn.instFlags & WOPL_RhythmModeMask; + + for(size_t op = 0; op < 2; op++) + { + if((instIn.ops[(op * 2) + 0] < 0) || (instIn.ops[(op * 2) + 1] < 0)) + break; + const BanksDump::Operator &op1 = g_embeddedBanksOperators[instIn.ops[(op * 2) + 0]]; + const BanksDump::Operator &op2 = g_embeddedBanksOperators[instIn.ops[(op * 2) + 1]]; + instOut.op[op].modulator_E862 = op1.d_E862; + instOut.op[op].modulator_40 = op1.d_40; + instOut.op[op].carrier_E862 = op2.d_E862; + instOut.op[op].carrier_40 = op2.d_40; + instOut.op[op].feedconn = (instIn.fbConn >> (op * 8)) & 0xFF; + instOut.op[op].noteOffset = static_cast(op == 0 ? instIn.noteOffset1 : instIn.noteOffset2); + } + + instOut.soundKeyOnMs = instIn.delay_on_ms; + instOut.soundKeyOffMs = instIn.delay_off_ms; +} +#endif diff --git a/thirdparty/adlmidi/adlmidi_private.hpp b/thirdparty/adlmidi/adlmidi_private.hpp index 59ba555..9d39222 100644 --- a/thirdparty/adlmidi/adlmidi_private.hpp +++ b/thirdparty/adlmidi/adlmidi_private.hpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -49,7 +49,6 @@ typedef __int64 ssize_t; # else typedef __int32 ssize_t; # endif -# define NOMINMAX 1 //Don't override std::min and std::max # else # ifdef _WIN64 typedef int64_t ssize_t; @@ -61,16 +60,17 @@ typedef int32_t ssize_t; #endif #if defined(__DJGPP__) || (defined(__WATCOMC__) && (defined(__DOS__) || defined(__DOS4G__) || defined(__DOS4GNZ__))) -#define ADLMIDI_HW_OPL -#include -#ifdef __DJGPP__ -#include -#include -#include -#include -#include -#endif - +# ifndef ADLMIDI_HW_OPL +# define ADLMIDI_HW_OPL +# endif +# include +# ifdef __DJGPP__ +# include +# include +# include +# include +# include +# endif #endif #include @@ -130,36 +130,32 @@ typedef int32_t ssize_t; #define INT32_MAX 0x7fffffff #endif -#include "file_reader.hpp" +class FileAndMemReader; #ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER // Rename class to avoid ABI collisions #define BW_MidiSequencer AdlMidiSequencer -#include "midi_sequencer.hpp" +class BW_MidiSequencer; typedef BW_MidiSequencer MidiSequencer; +typedef struct BW_MidiRtInterface BW_MidiRtInterface; #endif//ADLMIDI_DISABLE_MIDI_SEQUENCER -#ifndef ADLMIDI_HW_OPL -#include "chips/opl_chip_base.h" -#endif +class OPL3; +class OPLChipBase; + +typedef class OPL3 Synth; -#include "adldata.hh" +#include "oplinst.h" +#include "adlmidi_db.h" #define ADLMIDI_BUILD #include "adlmidi.h" //Main API -#ifndef ADLMIDI_DISABLE_CPP_EXTRAS -#include "adlmidi.hpp" //Extra C++ API -#endif - #include "adlmidi_ptr.hpp" -#include "adlmidi_bankmap.h" -#define ADL_UNUSED(x) (void)x +class MIDIplay; -#define OPL_PANNING_LEFT 0x10 -#define OPL_PANNING_RIGHT 0x20 -#define OPL_PANNING_BOTH 0x30 +#define ADL_UNUSED(x) (void)x #ifdef ADLMIDI_HW_OPL #define ADL_MAX_CHIPS 1 @@ -218,1280 +214,6 @@ inline int32_t adl_cvtU32(int32_t x) return (uint32_t)adl_cvtS32(x) - (uint32_t)INT32_MIN; } -struct ADL_MIDIPlayer; -class MIDIplay; -/** - * @brief OPL3 Chip management class - */ -class OPL3 -{ - friend class MIDIplay; - friend class AdlInstrumentTester; - friend int adlCalculateFourOpChannels(MIDIplay *play, bool silent); -public: - enum - { - PercussionTag = 1 << 15, - CustomBankTag = 0xFFFFFFFF - }; - - //! Total number of chip channels between all running emulators - uint32_t m_numChannels; - //! Just a padding. Reserved. - char _padding[4]; -#ifndef ADLMIDI_HW_OPL - //! Running chip emulators - std::vector > m_chips; -#endif - -private: - //! Cached patch data, needed by Touch() - std::vector m_insCache; - //! Value written to B0, cached, needed by NoteOff. - /*! Contains Key on/off state, octave block and frequency number values - */ - std::vector m_keyBlockFNumCache; - //! Cached BD registry value (flags register: DeepTremolo, DeepVibrato, and RhythmMode) - std::vector m_regBD; - -public: - /** - * @brief MIDI bank entry - */ - struct Bank - { - //! MIDI Bank instruments - adlinsdata2 ins[128]; - }; - typedef BasicBankMap BankMap; - //! MIDI bank instruments data - BankMap m_insBanks; - //! MIDI bank-wide setup - AdlBankSetup m_insBankSetup; - -public: - //! Blank instrument template - static const adlinsdata2 m_emptyInstrument; - //! Total number of running concurrent emulated chips - uint32_t m_numChips; - //! Currently running embedded bank number. "CustomBankTag" means usign of the custom bank. - uint32_t m_embeddedBank; - //! Total number of needed four-operator channels in all running chips - uint32_t m_numFourOps; - //! Turn global Deep Tremolo mode on - bool m_deepTremoloMode; - //! Turn global Deep Vibrato mode on - bool m_deepVibratoMode; - //! Use Rhythm Mode percussions - bool m_rhythmMode; - //! Carriers-only are scaled by default by volume level. This flag will tell to scale modulators too. - bool m_scaleModulators; - //! Run emulator at PCM rate if that possible. Reduces sounding accuracy, but decreases CPU usage on lower rates. - bool m_runAtPcmRate; - //! Enable soft panning - bool m_softPanning; - - //! Just a padding. Reserved. - char _padding2[3]; - - /** - * @brief Music playing mode - */ - enum MusicMode - { - //! MIDI mode - MODE_MIDI, - //! Id-Software Music mode - MODE_IMF, - //! Creative Music Files mode - MODE_CMF, - //! EA-MUS (a.k.a. RSXX) mode - MODE_RSXX - } m_musicMode; - - /** - * @brief Volume models enum - */ - enum VolumesScale - { - //! Generic volume model (linearization of logarithmic scale) - VOLUME_Generic, - //! OPL3 native logarithmic scale - VOLUME_NATIVE, - //! DMX volume scale logarithmic table - VOLUME_DMX, - //! Apoge Sound System volume scaling model - VOLUME_APOGEE, - //! Windows 9x driver volume scale table - VOLUME_9X - } m_volumeScale; - - //! Reserved - char _padding3[8]; - - /** - * @brief Channel categiry enumeration - */ - enum ChanCat - { - //! Regular melodic/percussion channel - ChanCat_Regular = 0, - //! Four-op master - ChanCat_4op_Master = 1, - //! Four-op slave - ChanCat_4op_Slave = 2, - //! Rhythm-mode Bass drum - ChanCat_Rhythm_Bass = 3, - //! Rhythm-mode Snare drum - ChanCat_Rhythm_Snare = 4, - //! Rhythm-mode Tom-Tom - ChanCat_Rhythm_Tom = 5, - //! Rhythm-mode Cymbal - ChanCat_Rhythm_Cymbal = 6, - //! Rhythm-mode Hi-Hat - ChanCat_Rhythm_HiHat = 7, - //! Rhythm-mode Slave channel - ChanCat_Rhythm_Slave = 8 - }; - - //! Category of the channel - /*! 1 = quad-master, 2 = quad-slave, 0 = regular - 3 = percussion BassDrum - 4 = percussion Snare - 5 = percussion Tom - 6 = percussion Crash cymbal - 7 = percussion Hihat - 8 = percussion slave - */ - std::vector m_channelCategory; - - - /** - * @brief C.O. Constructor - */ - OPL3(); - - /** - * @brief Checks are setup locked to be changed on the fly or not - * @return true when setup on the fly is locked - */ - bool setupLocked(); - - /** - * @brief Choose one of embedded banks - * @param bank ID of the bank - */ - void setEmbeddedBank(uint32_t bank); - - /** - * @brief Write data to OPL3 chip register - * @param chip Index of emulated chip. In hardware OPL3 builds, this parameter is ignored - * @param address Register address to write - * @param value Value to write - */ - void writeReg(size_t chip, uint16_t address, uint8_t value); - - /** - * @brief Write data to OPL3 chip register - * @param chip Index of emulated chip. In hardware OPL3 builds, this parameter is ignored - * @param address Register address to write - * @param value Value to write - */ - void writeRegI(size_t chip, uint32_t address, uint32_t value); - - /** - * @brief Write to soft panning control of OPL3 chip emulator - * @param chip Index of emulated chip. - * @param address Register of channel to write - * @param value Value to write - */ - void writePan(size_t chip, uint32_t address, uint32_t value); - - /** - * @brief Off the note in specified chip channel - * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) - */ - void noteOff(size_t c); - - /** - * @brief On the note in specified chip channel with specified frequency of the tone - * @param c1 Channel of chip [or master 4-op channel] (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) - * @param c2 Slave 4-op channel of chip, unused for 2op (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) - * @param hertz Frequency of the tone in hertzes - */ - void noteOn(size_t c1, size_t c2, double hertz); - - /** - * @brief Change setup of instrument in specified chip channel - * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) - * @param volume Volume level (from 0 to 63) - * @param brightness CC74 Brightness level (from 0 to 127) - */ - void touchNote(size_t c, uint8_t volume, uint8_t brightness = 127); - - /** - * @brief Set the instrument into specified chip channel - * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) - * @param instrument Instrument data to set into the chip channel - */ - void setPatch(size_t c, const adldata &instrument); - - /** - * @brief Set panpot position - * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) - * @param value 3-bit panpot value - */ - void setPan(size_t c, uint8_t value); - - /** - * @brief Shut up all chip channels - */ - void silenceAll(); - - /** - * @brief Commit updated flag states to chip registers - */ - void updateChannelCategories(); - - /** - * @brief commit deepTremolo and deepVibrato flags - */ - void commitDeepFlags(); - - /** - * @brief Set the volume scaling model - * @param volumeModel Type of volume scale model scale - */ - void setVolumeScaleModel(ADLMIDI_VolumeModels volumeModel); - - /** - * @brief Get the volume scaling model - */ - ADLMIDI_VolumeModels getVolumeScaleModel(); - - #ifndef ADLMIDI_HW_OPL - /** - * @brief Clean up all running emulated chip instances - */ - void clearChips(); - #endif - - /** - * @brief Reset chip properties and initialize them - * @param emulator Type of chip emulator - * @param PCM_RATE Output sample rate to generate on output - * @param audioTickHandler PCM-accurate clock hook - */ - void reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler); -}; - - -/** - * @brief Hooks of the internal events - */ -struct MIDIEventHooks -{ - MIDIEventHooks() : - onNote(NULL), - onNote_userData(NULL), - onDebugMessage(NULL), - onDebugMessage_userData(NULL) - {} - - //! Note on/off hooks - typedef void (*NoteHook)(void *userdata, int adlchn, int note, int ins, int pressure, double bend); - NoteHook onNote; - void *onNote_userData; - - //! Library internal debug messages - typedef void (*DebugMessageHook)(void *userdata, const char *fmt, ...); - DebugMessageHook onDebugMessage; - void *onDebugMessage_userData; -}; - - -class MIDIplay -{ - friend void adl_reset(struct ADL_MIDIPlayer*); -public: - explicit MIDIplay(unsigned long sampleRate = 22050); - - ~MIDIplay() - {} - - void applySetup(); - - void partialReset(); - void resetMIDI(); - - /**********************Internal structures and classes**********************/ - - /** - * @brief Persistent settings for each MIDI channel - */ - struct MIDIchannel - { - //! LSB Bank number - uint8_t bank_lsb, - //! MSB Bank number - bank_msb; - //! Current patch number - uint8_t patch; - //! Volume level - uint8_t volume, - //! Expression level - expression; - //! Panning level - uint8_t panning, - //! Vibrato level - vibrato, - //! Channel aftertouch level - aftertouch; - //! Portamento time - uint16_t portamento; - //! Is Pedal sustain active - bool sustain; - //! Is Soft pedal active - bool softPedal; - //! Is portamento enabled - bool portamentoEnable; - //! Source note number used by portamento - int8_t portamentoSource; // note number or -1 - //! Portamento rate - double portamentoRate; - //! Per note Aftertouch values - uint8_t noteAftertouch[128]; - //! Is note aftertouch has any non-zero value - bool noteAfterTouchInUse; - //! Reserved - char _padding[6]; - //! Pitch bend value - int bend; - //! Pitch bend sensitivity - double bendsense; - //! Pitch bend sensitivity LSB value - int bendsense_lsb, - //! Pitch bend sensitivity MSB value - bendsense_msb; - //! Vibrato position value - double vibpos, - //! Vibrato speed value - vibspeed, - //! Vibrato depth value - vibdepth; - //! Vibrato delay time - int64_t vibdelay_us; - //! Last LSB part of RPN value received - uint8_t lastlrpn, - //! Last MSB poart of RPN value received - lastmrpn; - //! Interpret RPN value as NRPN - bool nrpn; - //! Brightness level - uint8_t brightness; - - //! Is melodic channel turned into percussion - bool is_xg_percussion; - - /** - * @brief Per-Note information - */ - struct NoteInfo - { - //! Note number - uint8_t note; - //! Is note active - bool active; - //! Current pressure - uint8_t vol; - //! Note vibrato (a part of Note Aftertouch feature) - uint8_t vibrato; - //! Tone selected on noteon: - int16_t noteTone; - //! Current tone (!= noteTone if gliding note) - double currentTone; - //! Gliding rate - double glideRate; - //! Patch selected on noteon; index to bank.ins[] - size_t midiins; - //! Is note the percussion instrument - bool isPercussion; - //! Note that plays missing instrument. Doesn't using any chip channels - bool isBlank; - //! Patch selected - const adlinsdata2 *ains; - enum - { - MaxNumPhysChans = 2, - MaxNumPhysItemCount = MaxNumPhysChans - }; - - /** - * @brief Reference to currently using chip channel - */ - struct Phys - { - //! Destination chip channel - uint16_t chip_chan; - //! ins, inde to adl[] - adldata ains; - //! Is this voice must be detunable? - bool pseudo4op; - - void assign(const Phys &oth) - { - ains = oth.ains; - pseudo4op = oth.pseudo4op; - } - bool operator==(const Phys &oth) const - { - return (ains == oth.ains) && (pseudo4op == oth.pseudo4op); - } - bool operator!=(const Phys &oth) const - { - return !operator==(oth); - } - }; - - //! List of OPL3 channels it is currently occupying. - Phys chip_channels[MaxNumPhysItemCount]; - //! Count of used channels. - unsigned chip_channels_count; - - Phys *phys_find(unsigned chip_chan) - { - Phys *ph = NULL; - for(unsigned i = 0; i < chip_channels_count && !ph; ++i) - if(chip_channels[i].chip_chan == chip_chan) - ph = &chip_channels[i]; - return ph; - } - Phys *phys_find_or_create(uint16_t chip_chan) - { - Phys *ph = phys_find(chip_chan); - if(!ph) { - if(chip_channels_count < MaxNumPhysItemCount) { - ph = &chip_channels[chip_channels_count++]; - ph->chip_chan = chip_chan; - } - } - return ph; - } - Phys *phys_ensure_find_or_create(uint16_t chip_chan) - { - Phys *ph = phys_find_or_create(chip_chan); - assert(ph); - return ph; - } - void phys_erase_at(const Phys *ph) - { - intptr_t pos = ph - chip_channels; - assert(pos < static_cast(chip_channels_count)); - for(intptr_t i = pos + 1; i < static_cast(chip_channels_count); ++i) - chip_channels[i - 1] = chip_channels[i]; - --chip_channels_count; - } - void phys_erase(unsigned chip_chan) - { - Phys *ph = phys_find(chip_chan); - if(ph) - phys_erase_at(ph); - } - }; - - //! Reserved - char _padding2[5]; - //! Count of gliding notes in this channel - unsigned gliding_note_count; - - //! Active notes in the channel - NoteInfo activenotes[128]; - - struct activenoteiterator - { - explicit activenoteiterator(NoteInfo *info = NULL) - : ptr(info) {} - activenoteiterator &operator++() - { - if(ptr->note == 127) - ptr = NULL; - else - for(++ptr; ptr && !ptr->active;) - ptr = (ptr->note == 127) ? NULL : (ptr + 1); - return *this; - } - activenoteiterator operator++(int) - { - activenoteiterator pos = *this; - ++*this; - return pos; - } - NoteInfo &operator*() const - { return *ptr; } - NoteInfo *operator->() const - { return ptr; } - bool operator==(activenoteiterator other) const - { return ptr == other.ptr; } - bool operator!=(activenoteiterator other) const - { return ptr != other.ptr; } - operator NoteInfo *() const - { return ptr; } - private: - NoteInfo *ptr; - }; - - activenoteiterator activenotes_begin() - { - activenoteiterator it(activenotes); - return (it->active) ? it : ++it; - } - - activenoteiterator activenotes_find(uint8_t note) - { - assert(note < 128); - return activenoteiterator( - activenotes[note].active ? &activenotes[note] : NULL); - } - - activenoteiterator activenotes_ensure_find(uint8_t note) - { - activenoteiterator it = activenotes_find(note); - assert(it); - return it; - } - - std::pair activenotes_insert(uint8_t note) - { - assert(note < 128); - NoteInfo &info = activenotes[note]; - bool inserted = !info.active; - if(inserted) info.active = true; - return std::pair(activenoteiterator(&info), inserted); - } - - void activenotes_erase(activenoteiterator pos) - { - if(pos) - pos->active = false; - } - - bool activenotes_empty() - { - return !activenotes_begin(); - } - - void activenotes_clear() - { - for(uint8_t i = 0; i < 128; ++i) { - activenotes[i].note = i; - activenotes[i].active = false; - } - } - - /** - * @brief Reset channel into initial state - */ - void reset() - { - resetAllControllers(); - patch = 0; - vibpos = 0; - bank_lsb = 0; - bank_msb = 0; - lastlrpn = 0; - lastmrpn = 0; - nrpn = false; - is_xg_percussion = false; - } - - /** - * @brief Reset all MIDI controllers into initial state - */ - void resetAllControllers() - { - bend = 0; - bendsense_msb = 2; - bendsense_lsb = 0; - updateBendSensitivity(); - volume = 100; - expression = 127; - sustain = false; - softPedal = false; - vibrato = 0; - aftertouch = 0; - std::memset(noteAftertouch, 0, 128); - noteAfterTouchInUse = false; - vibspeed = 2 * 3.141592653 * 5.0; - vibdepth = 0.5 / 127; - vibdelay_us = 0; - panning = 64; - portamento = 0; - portamentoEnable = false; - portamentoSource = -1; - portamentoRate = HUGE_VAL; - brightness = 127; - } - - /** - * @brief Has channel vibrato to process - * @return - */ - bool hasVibrato() - { - return (vibrato > 0) || (aftertouch > 0) || noteAfterTouchInUse; - } - - /** - * @brief Commit pitch bend sensitivity value from MSB and LSB - */ - void updateBendSensitivity() - { - int cent = bendsense_msb * 128 + bendsense_lsb; - bendsense = cent * (1.0 / (128 * 8192)); - } - - MIDIchannel() - { - activenotes_clear(); - gliding_note_count = 0; - reset(); - } - }; - - /** - * @brief Additional information about OPL3 channels - */ - struct AdlChannel - { - struct Location - { - uint16_t MidCh; - uint8_t note; - bool operator==(const Location &l) const - { return MidCh == l.MidCh && note == l.note; } - bool operator!=(const Location &l) const - { return !operator==(l); } - }; - struct LocationData - { - LocationData *prev, *next; - Location loc; - enum { - Sustain_None = 0x00, - Sustain_Pedal = 0x01, - Sustain_Sostenuto = 0x02, - Sustain_ANY = Sustain_Pedal | Sustain_Sostenuto - }; - uint32_t sustained; - char _padding[6]; - MIDIchannel::NoteInfo::Phys ins; // a copy of that in phys[] - //! Has fixed sustain, don't iterate "on" timeout - bool fixed_sustain; - //! Timeout until note will be allowed to be killed by channel manager while it is on - int64_t kon_time_until_neglible_us; - int64_t vibdelay_us; - }; - - //! Time left until sounding will be muted after key off - int64_t koff_time_until_neglible_us; - - //! Recently passed instrument, improves a goodness of released but busy channel when matching - MIDIchannel::NoteInfo::Phys recent_ins; - - enum { users_max = 128 }; - LocationData *users_first, *users_free_cells; - LocationData users_cells[users_max]; - unsigned users_size; - - bool users_empty() const; - LocationData *users_find(Location loc); - LocationData *users_allocate(); - LocationData *users_find_or_create(Location loc); - LocationData *users_insert(const LocationData &x); - void users_erase(LocationData *user); - void users_clear(); - void users_assign(const LocationData *users, size_t count); - - // For channel allocation: - AdlChannel(): koff_time_until_neglible_us(0) - { - users_clear(); - std::memset(&recent_ins, 0, sizeof(MIDIchannel::NoteInfo::Phys)); - } - - AdlChannel(const AdlChannel &oth): koff_time_until_neglible_us(oth.koff_time_until_neglible_us) - { - if(oth.users_first) - { - users_first = NULL; - users_assign(oth.users_first, oth.users_size); - } - else - users_clear(); - } - - AdlChannel &operator=(const AdlChannel &oth) - { - koff_time_until_neglible_us = oth.koff_time_until_neglible_us; - users_assign(oth.users_first, oth.users_size); - return *this; - } - - /** - * @brief Increases age of active note in microseconds time - * @param us Amount time in microseconds - */ - void addAge(int64_t us); - }; - -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER - /** - * @brief MIDI files player sequencer - */ - MidiSequencer m_sequencer; - - /** - * @brief Interface between MIDI sequencer and this library - */ - BW_MidiRtInterface m_sequencerInterface; - - /** - * @brief Initialize MIDI sequencer interface - */ - void initSequencerInterface(); -#endif //ADLMIDI_DISABLE_MIDI_SEQUENCER - - struct Setup - { - int emulator; - bool runAtPcmRate; - unsigned int bankId; - int numFourOps; - unsigned int numChips; - int deepTremoloMode; - int deepVibratoMode; - int rhythmMode; - bool logarithmicVolumes; - int volumeScaleModel; - //unsigned int SkipForward; - int scaleModulators; - bool fullRangeBrightnessCC74; - - double delay; - double carry; - - /* The lag between visual content and audio content equals */ - /* the sum of these two buffers. */ - double mindelay; - double maxdelay; - - /* For internal usage */ - ssize_t tick_skip_samples_delay; /* Skip tick processing after samples count. */ - /* For internal usage */ - - unsigned long PCM_RATE; - }; - - /** - * @brief MIDI Marker entry - */ - struct MIDI_MarkerEntry - { - //! Label of marker - std::string label; - //! Absolute position in seconds - double pos_time; - //! Absolute position in ticks in the track - uint64_t pos_ticks; - }; - - //! Available MIDI Channels - std::vector m_midiChannels; - - //! CMF Rhythm mode - bool m_cmfPercussionMode; - - //! Master volume, controlled via SysEx - uint8_t m_masterVolume; - - //! SysEx device ID - uint8_t m_sysExDeviceId; - - /** - * @brief MIDI Synthesizer mode - */ - enum SynthMode - { - Mode_GM = 0x00, - Mode_GS = 0x01, - Mode_XG = 0x02, - Mode_GM2 = 0x04 - }; - //! MIDI Synthesizer mode - uint32_t m_synthMode; - - //! Installed function hooks - MIDIEventHooks hooks; - -private: - //! Per-track MIDI devices map - std::map m_midiDevices; - //! Current MIDI device per track - std::map m_currentMidiDevice; - - //! Padding to fix CLanc code model's warning - char _padding[7]; - - //! Chip channels map - std::vector m_chipChannels; - //! Counter of arpeggio processing - size_t m_arpeggioCounter; - -#if defined(ADLMIDI_AUDIO_TICK_HANDLER) - //! Audio tick counter - uint32_t m_audioTickCounter; -#endif - - //! Local error string - std::string errorStringOut; - - //! Missing instruments catches - std::set caugh_missing_instruments; - //! Missing melodic banks catches - std::set caugh_missing_banks_melodic; - //! Missing percussion banks catches - std::set caugh_missing_banks_percussion; - -public: - - const std::string &getErrorString(); - void setErrorString(const std::string &err); - - //! OPL3 Chip manager - OPL3 m_synth; - - //! Generator output buffer - int32_t m_outBuf[1024]; - - //! Synthesizer setup - Setup m_setup; - - /** - * @brief Load custom bank from file - * @param filename Path to bank file - * @return true on succes - */ - bool LoadBank(const std::string &filename); - - /** - * @brief Load custom bank from memory block - * @param data Pointer to memory block where raw bank file is stored - * @param size Size of given memory block - * @return true on succes - */ - bool LoadBank(const void *data, size_t size); - - /** - * @brief Load custom bank from opened FileAndMemReader class - * @param fr Instance with opened file - * @return true on succes - */ - bool LoadBank(FileAndMemReader &fr); - -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER - /** - * @brief MIDI file loading pre-process - * @return true on success, false on failure - */ - bool LoadMIDI_pre(); - - /** - * @brief MIDI file loading post-process - * @return true on success, false on failure - */ - bool LoadMIDI_post(); - - /** - * @brief Load music file from a file - * @param filename Path to music file - * @return true on success, false on failure - */ - - bool LoadMIDI(const std::string &filename); - - /** - * @brief Load music file from the memory block - * @param data pointer to the memory block - * @param size size of memory block - * @return true on success, false on failure - */ - bool LoadMIDI(const void *data, size_t size); - - /** - * @brief Periodic tick handler. - * @param s seconds since last call - * @param granularity don't expect intervals smaller than this, in seconds - * @return desired number of seconds until next call - */ - double Tick(double s, double granularity); -#endif //ADLMIDI_DISABLE_MIDI_SEQUENCER - - /** - * @brief Process extra iterators like vibrato or arpeggio - * @param s seconds since last call - */ - void TickIterators(double s); - - - /* RealTime event triggers */ - /** - * @brief Reset state of all channels - */ - void realTime_ResetState(); - - /** - * @brief Note On event - * @param channel MIDI channel - * @param note Note key (from 0 to 127) - * @param velocity Velocity level (from 0 to 127) - * @return true if Note On event was accepted - */ - bool realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity); - - /** - * @brief Note Off event - * @param channel MIDI channel - * @param note Note key (from 0 to 127) - */ - void realTime_NoteOff(uint8_t channel, uint8_t note); - - /** - * @brief Note aftertouch event - * @param channel MIDI channel - * @param note Note key (from 0 to 127) - * @param atVal After-Touch level (from 0 to 127) - */ - void realTime_NoteAfterTouch(uint8_t channel, uint8_t note, uint8_t atVal); - - /** - * @brief Channel aftertouch event - * @param channel MIDI channel - * @param atVal After-Touch level (from 0 to 127) - */ - void realTime_ChannelAfterTouch(uint8_t channel, uint8_t atVal); - - /** - * @brief Controller Change event - * @param channel MIDI channel - * @param type Type of controller - * @param value Value of the controller (from 0 to 127) - */ - void realTime_Controller(uint8_t channel, uint8_t type, uint8_t value); - - /** - * @brief Patch change - * @param channel MIDI channel - * @param patch Patch Number (from 0 to 127) - */ - void realTime_PatchChange(uint8_t channel, uint8_t patch); - - /** - * @brief Pitch bend change - * @param channel MIDI channel - * @param pitch Concoctated raw pitch value - */ - void realTime_PitchBend(uint8_t channel, uint16_t pitch); - - /** - * @brief Pitch bend change - * @param channel MIDI channel - * @param msb MSB of pitch value - * @param lsb LSB of pitch value - */ - void realTime_PitchBend(uint8_t channel, uint8_t msb, uint8_t lsb); - - /** - * @brief LSB Bank Change CC - * @param channel MIDI channel - * @param lsb LSB value of bank number - */ - void realTime_BankChangeLSB(uint8_t channel, uint8_t lsb); - - /** - * @brief MSB Bank Change CC - * @param channel MIDI channel - * @param msb MSB value of bank number - */ - void realTime_BankChangeMSB(uint8_t channel, uint8_t msb); - - /** - * @brief Bank Change (united value) - * @param channel MIDI channel - * @param bank Bank number value - */ - void realTime_BankChange(uint8_t channel, uint16_t bank); - - /** - * @brief Sets the Device identifier - * @param id 7-bit Device identifier - */ - void setDeviceId(uint8_t id); - - /** - * @brief System Exclusive message - * @param msg Raw SysEx Message - * @param size Length of SysEx message - * @return true if message was passed successfully. False on any errors - */ - bool realTime_SysEx(const uint8_t *msg, size_t size); - - /** - * @brief Turn off all notes and mute the sound of releasing notes - */ - void realTime_panic(); - - /** - * @brief Device switch (to extend 16-channels limit of MIDI standard) - * @param track MIDI track index - * @param data Device name - * @param length Length of device name string - */ - void realTime_deviceSwitch(size_t track, const char *data, size_t length); - - /** - * @brief Currently selected device index - * @param track MIDI track index - * @return Multiple 16 value - */ - size_t realTime_currentDevice(size_t track); - - /** - * @brief Send raw OPL chip command - * @param reg OPL Register - * @param value Value to write - */ - void realTime_rawOPL(uint8_t reg, uint8_t value); - -#if defined(ADLMIDI_AUDIO_TICK_HANDLER) - // Audio rate tick handler - void AudioTick(uint32_t chipId, uint32_t rate); -#endif - -private: - /** - * @brief Hardware manufacturer (Used for SysEx) - */ - enum - { - Manufacturer_Roland = 0x41, - Manufacturer_Yamaha = 0x43, - Manufacturer_UniversalNonRealtime = 0x7E, - Manufacturer_UniversalRealtime = 0x7F - }; - - /** - * @brief Roland Mode (Used for SysEx) - */ - enum - { - RolandMode_Request = 0x11, - RolandMode_Send = 0x12 - }; - - /** - * @brief Device model (Used for SysEx) - */ - enum - { - RolandModel_GS = 0x42, - RolandModel_SC55 = 0x45, - YamahaModel_XG = 0x4C - }; - - /** - * @brief Process generic SysEx events - * @param dev Device ID - * @param realtime Is real-time event - * @param data Raw SysEx data - * @param size Size of given SysEx data - * @return true when event was successfully handled - */ - bool doUniversalSysEx(unsigned dev, bool realtime, const uint8_t *data, size_t size); - - /** - * @brief Process events specific to Roland devices - * @param dev Device ID - * @param data Raw SysEx data - * @param size Size of given SysEx data - * @return true when event was successfully handled - */ - bool doRolandSysEx(unsigned dev, const uint8_t *data, size_t size); - - /** - * @brief Process events specific to Yamaha devices - * @param dev Device ID - * @param data Raw SysEx data - * @param size Size of given SysEx data - * @return true when event was successfully handled - */ - bool doYamahaSysEx(unsigned dev, const uint8_t *data, size_t size); - -private: - /** - * @brief Note Update properties - */ - enum - { - Upd_Patch = 0x1, - Upd_Pan = 0x2, - Upd_Volume = 0x4, - Upd_Pitch = 0x8, - Upd_All = Upd_Pan + Upd_Volume + Upd_Pitch, - Upd_Off = 0x20, - Upd_Mute = 0x40, - Upd_OffMute = Upd_Off + Upd_Mute - }; - - /** - * @brief Update active note - * @param MidCh MIDI Channel where note is processing - * @param i Iterator that points to active note in the MIDI channel - * @param props_mask Properties to update - * @param select_adlchn Specify chip channel, or -1 - all chip channels used by the note - */ - void noteUpdate(size_t midCh, - MIDIchannel::activenoteiterator i, - unsigned props_mask, - int32_t select_adlchn = -1); - - /** - * @brief Update all notes in specified MIDI channel - * @param midCh MIDI channel to update all notes in it - * @param props_mask Properties to update - */ - void noteUpdateAll(size_t midCh, unsigned props_mask); - - /** - * @brief Determine how good a candidate this adlchannel would be for playing a note from this instrument. - * @param c Wanted chip channel - * @param ins Instrument wanted to be used in this channel - * @return Calculated coodness points - */ - int64_t calculateChipChannelGoodness(size_t c, const MIDIchannel::NoteInfo::Phys &ins) const; - - /** - * @brief A new note will be played on this channel using this instrument. - * @param c Wanted chip channel - * @param ins Instrument wanted to be used in this channel - * Kill existing notes on this channel (or don't, if we do arpeggio) - */ - void prepareChipChannelForNewNote(size_t c, const MIDIchannel::NoteInfo::Phys &ins); - - /** - * @brief Kills note that uses wanted channel. When arpeggio is possible, note is evaluating to another channel - * @param from_channel Wanted chip channel - * @param j Chip channel instance - * @param i MIDI Channel active note instance - */ - void killOrEvacuate( - size_t from_channel, - AdlChannel::LocationData *j, - MIDIchannel::activenoteiterator i); - - /** - * @brief Off all notes and silence sound - */ - void panic(); - - /** - * @brief Kill note, sustaining by pedal or sostenuto - * @param MidCh MIDI channel, -1 - all MIDI channels - * @param this_adlchn Chip channel, -1 - all chip channels - * @param sustain_type Type of systain to process - */ - void killSustainingNotes(int32_t midCh = -1, - int32_t this_adlchn = -1, - uint32_t sustain_type = AdlChannel::LocationData::Sustain_ANY); - /** - * @brief Find active notes and mark them as sostenuto-sustained - * @param MidCh MIDI channel, -1 - all MIDI channels - */ - void markSostenutoNotes(int32_t midCh = -1); - - /** - * @brief Set RPN event value - * @param MidCh MIDI channel - * @param value 1 byte part of RPN value - * @param MSB is MSB or LSB part of value - */ - void setRPN(size_t midCh, unsigned value, bool MSB); - - /** - * @brief Update portamento setup in MIDI channel - * @param midCh MIDI channel where portamento needed to be updated - */ - void updatePortamento(size_t midCh); - - /** - * @brief Off the note - * @param midCh MIDI channel - * @param note Note to off - */ - void noteOff(size_t midCh, uint8_t note); - - /** - * @brief Update processing of vibrato to amount of seconds - * @param amount Amount value in seconds - */ - void updateVibrato(double amount); - - /** - * @brief Update auto-arpeggio - * @param amount Amount value in seconds [UNUSED] - */ - void updateArpeggio(double /*amount*/); - - /** - * @brief Update Portamento gliding to amount of seconds - * @param amount Amount value in seconds - */ - void updateGlide(double amount); - -public: - /** - * @brief Checks was device name used or not - * @param name Name of MIDI device - * @return Offset of the MIDI Channels, multiple to 16 - */ - size_t chooseDevice(const std::string &name); - - /** - * @brief Gets a textual description of the state of chip channels - * @param text character pointer for text - * @param attr character pointer for text attributes - * @param size number of characters available to write - */ - void describeChannels(char *text, char *attr, size_t size); -}; - -// I think, this is useless inside of Library -/* -struct FourChars -{ - char ret[4]; - - FourChars(const char *s) - { - for(unsigned c = 0; c < 4; ++c) - ret[c] = s[c]; - } - FourChars(unsigned w) // Little-endian - { - for(unsigned c = 0; c < 4; ++c) - ret[c] = static_cast((w >>(c * 8)) & 0xFF); - } -}; -*/ #if defined(ADLMIDI_AUDIO_TICK_HANDLER) extern void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate); @@ -1505,23 +227,8 @@ extern void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate) */ extern int adlCalculateFourOpChannels(MIDIplay *play, bool silent = false); -/** - * @brief Check emulator availability - * @param emulator Emulator ID (ADL_Emulator) - * @return true when emulator is available - */ -extern bool adl_isEmulatorAvailable(int emulator); - -/** - * @brief Find highest emulator - * @return The ADL_Emulator enum value which contains ID of highest emulator - */ -extern int adl_getHighestEmulator(); - -/** - * @brief Find lowest emulator - * @return The ADL_Emulator enum value which contains ID of lowest emulator - */ -extern int adl_getLowestEmulator(); +#ifndef DISABLE_EMBEDDED_BANKS +extern void adlFromInstrument(const BanksDump::InstrumentEntry &instIn, OplInstMeta &instOut); +#endif #endif // ADLMIDI_PRIVATE_HPP diff --git a/thirdparty/adlmidi/adlmidi_ptr.hpp b/thirdparty/adlmidi/adlmidi_ptr.hpp index 7d1086b..e9648b4 100644 --- a/thirdparty/adlmidi/adlmidi_ptr.hpp +++ b/thirdparty/adlmidi/adlmidi_ptr.hpp @@ -1,8 +1,8 @@ /* - * libADLMIDI is a free MIDI to WAV conversion library with OPL3 emulation + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation * * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma - * ADLMIDI Library API: Copyright (c) 2015-2018 Vitaly Novichkov + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov * * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: * http://iki.fi/bisqwit/source/adlmidi.html @@ -54,7 +54,7 @@ class AdlMIDI_UPtr { T *m_p; public: - explicit AdlMIDI_UPtr(T *p) + explicit AdlMIDI_UPtr(T *p = NULL) : m_p(p) {} ~AdlMIDI_UPtr() { diff --git a/thirdparty/adlmidi/adlmidi_sequencer.cpp b/thirdparty/adlmidi/adlmidi_sequencer.cpp new file mode 100644 index 0000000..bf3d86c --- /dev/null +++ b/thirdparty/adlmidi/adlmidi_sequencer.cpp @@ -0,0 +1,160 @@ +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation + * + * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov + * + * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: + * http://iki.fi/bisqwit/source/adlmidi.html + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER + +// Rename class to avoid ABI collisions +#define BW_MidiSequencer AdlMidiSequencer +// Inlucde MIDI sequencer class implementation +#include "midi_sequencer_impl.hpp" + +#include "adlmidi_midiplay.hpp" +#include "adlmidi_opl3.hpp" +#include "adlmidi_private.hpp" + +/**************************************************** + * Real-Time MIDI calls proxies * + ****************************************************/ + +static void rtNoteOn(void *userdata, uint8_t channel, uint8_t note, uint8_t velocity) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_NoteOn(channel, note, velocity); +} + +static void rtNoteOff(void *userdata, uint8_t channel, uint8_t note) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_NoteOff(channel, note); +} + +static void rtNoteAfterTouch(void *userdata, uint8_t channel, uint8_t note, uint8_t atVal) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_NoteAfterTouch(channel, note, atVal); +} + +static void rtChannelAfterTouch(void *userdata, uint8_t channel, uint8_t atVal) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_ChannelAfterTouch(channel, atVal); +} + +static void rtControllerChange(void *userdata, uint8_t channel, uint8_t type, uint8_t value) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_Controller(channel, type, value); +} + +static void rtPatchChange(void *userdata, uint8_t channel, uint8_t patch) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_PatchChange(channel, patch); +} + +static void rtPitchBend(void *userdata, uint8_t channel, uint8_t msb, uint8_t lsb) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_PitchBend(channel, msb, lsb); +} + +static void rtSysEx(void *userdata, const uint8_t *msg, size_t size) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_SysEx(msg, size); +} + + +/* NonStandard calls */ +static void rtRawOPL(void *userdata, uint8_t reg, uint8_t value) +{ + MIDIplay *context = reinterpret_cast(userdata); + return context->realTime_rawOPL(reg, value); +} + +static void rtDeviceSwitch(void *userdata, size_t track, const char *data, size_t length) +{ + MIDIplay *context = reinterpret_cast(userdata); + context->realTime_deviceSwitch(track, data, length); +} + +static size_t rtCurrentDevice(void *userdata, size_t track) +{ + MIDIplay *context = reinterpret_cast(userdata); + return context->realTime_currentDevice(track); +} + +static void rtSongBegin(void *userdata) +{ + MIDIplay *context = reinterpret_cast(userdata); + return context->realTime_ResetState(); +} + +/* NonStandard calls End */ + + +void MIDIplay::initSequencerInterface() +{ + BW_MidiRtInterface *seq = new BW_MidiRtInterface; + m_sequencerInterface.reset(seq); + + std::memset(seq, 0, sizeof(BW_MidiRtInterface)); + + seq->onDebugMessage = hooks.onDebugMessage; + seq->onDebugMessage_userData = hooks.onDebugMessage_userData; + + /* MIDI Real-Time calls */ + seq->rtUserData = this; + seq->rt_noteOn = rtNoteOn; + seq->rt_noteOff = rtNoteOff; + seq->rt_noteAfterTouch = rtNoteAfterTouch; + seq->rt_channelAfterTouch = rtChannelAfterTouch; + seq->rt_controllerChange = rtControllerChange; + seq->rt_patchChange = rtPatchChange; + seq->rt_pitchBend = rtPitchBend; + seq->rt_systemExclusive = rtSysEx; + + /* NonStandard calls */ + seq->rt_rawOPL = rtRawOPL; + seq->rt_deviceSwitch = rtDeviceSwitch; + seq->rt_currentDevice = rtCurrentDevice; + + seq->onSongStart = rtSongBegin; + seq->onSongStart_userData = this; + /* NonStandard calls End */ + + m_sequencer->setInterface(seq); +} + +double MIDIplay::Tick(double s, double granularity) +{ + MidiSequencer &seqr = *m_sequencer; + double ret = seqr.Tick(s, granularity); + + s *= seqr.getTempoMultiplier(); + TickIterators(s); + + return ret; +} + +#endif /* ADLMIDI_DISABLE_MIDI_SEQUENCER */ diff --git a/thirdparty/adlmidi/chips/common/mutex.hpp b/thirdparty/adlmidi/chips/common/mutex.hpp new file mode 100644 index 0000000..60be9ba --- /dev/null +++ b/thirdparty/adlmidi/chips/common/mutex.hpp @@ -0,0 +1,96 @@ +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation + * + * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov + * + * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: + * http://iki.fi/bisqwit/source/adlmidi.html + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#if !defined(_WIN32) +#include +typedef pthread_mutex_t MutexNativeObject; +#else +#include +typedef CRITICAL_SECTION MutexNativeObject; +#endif + +class Mutex +{ +public: + Mutex(); + ~Mutex(); + void lock(); + void unlock(); +private: + MutexNativeObject m; + Mutex(const Mutex &); + Mutex &operator=(const Mutex &); +}; + +class MutexHolder +{ +public: + explicit MutexHolder(Mutex &m) : m(m) { m.lock(); } + ~MutexHolder() { m.unlock(); } +private: + Mutex &m; + MutexHolder(const MutexHolder &); + MutexHolder &operator=(const MutexHolder &); +}; + +#if !defined(_WIN32) +inline Mutex::Mutex() +{ + pthread_mutex_init(&m, NULL); +} + +inline Mutex::~Mutex() +{ + pthread_mutex_destroy(&m); +} + +inline void Mutex::lock() +{ + pthread_mutex_lock(&m); +} + +inline void Mutex::unlock() +{ + pthread_mutex_unlock(&m); +} +#else +inline Mutex::Mutex() +{ + InitializeCriticalSection(&m); +} + +inline Mutex::~Mutex() +{ + DeleteCriticalSection(&m); +} + +inline void Mutex::lock() +{ + EnterCriticalSection(&m); +} + +inline void Mutex::unlock() +{ + LeaveCriticalSection(&m); +} +#endif diff --git a/thirdparty/adlmidi/chips/dosbox/dbopl.cpp b/thirdparty/adlmidi/chips/dosbox/dbopl.cpp index 1931203..5b4bf53 100644 --- a/thirdparty/adlmidi/chips/dosbox/dbopl.cpp +++ b/thirdparty/adlmidi/chips/dosbox/dbopl.cpp @@ -40,6 +40,7 @@ #include #include #include "dbopl.h" +#include "../common/mutex.hpp" #if defined(__GNUC__) && __GNUC__ > 3 #define INLINE inline __attribute__((__always_inline__)) @@ -72,36 +73,16 @@ #define PI 3.14159265358979323846 #endif -struct NoCopy { - NoCopy() {} -private: - NoCopy(const NoCopy &); - NoCopy &operator=(const NoCopy &); -}; -#if !defined(_WIN32) -#include -struct Mutex : NoCopy { - Mutex() { pthread_mutex_init(&m, NULL);} - ~Mutex() { pthread_mutex_destroy(&m); } - void lock() { pthread_mutex_lock(&m); } - void unlock() { pthread_mutex_unlock(&m); } - pthread_mutex_t m; -}; -#else -#include -struct Mutex : NoCopy { - Mutex() { InitializeCriticalSection(&m); } - ~Mutex() { DeleteCriticalSection(&m); } - void lock() { EnterCriticalSection(&m); } - void unlock() { LeaveCriticalSection(&m); } - CRITICAL_SECTION m; -}; +/* + * Workaround for some compilers are has no those macros in their headers! + */ +#ifndef INT16_MIN +#define INT16_MIN (-0x7fff - 1) #endif -struct MutexHolder : NoCopy { - explicit MutexHolder(Mutex &m) : m(m) { m.lock(); } - ~MutexHolder() { m.unlock(); } - Mutex &m; -}; +#ifndef INT16_MAX +#define INT16_MAX 0x7fff +#endif + namespace DBOPL { @@ -1333,10 +1314,14 @@ struct CacheEntry { Bit32u linearRates[76]; Bit32u attackRates[76]; }; -struct Cache : NoCopy { - ~Cache(); - Mutex mutex; - std::vector entries; +struct Cache { + Cache() {} + ~Cache(); + Mutex mutex; + std::vector entries; +private: + Cache(const Cache &); + Cache &operator=(const Cache &); }; static Cache cache; @@ -1522,11 +1507,15 @@ void Chip::Setup( Bit32u rate ) { } } -static bool doneTables = false; +static volatile bool doneTables = false; +static Mutex mutexTables; + void InitTables( void ) { if ( doneTables ) return; - doneTables = true; + MutexHolder lock( mutexTables ); + if ( doneTables ) + return; #if ( DBOPL_WAVE == WAVE_HANDLER ) || ( DBOPL_WAVE == WAVE_TABLELOG ) //Exponential volume table, same as the real adlib for ( int i = 0; i < 256; i++ ) { @@ -1676,6 +1665,7 @@ void InitTables( void ) { } } #endif + doneTables = true; } Bit32u Handler::WriteAddr( Bit32u port, Bit8u val ) { diff --git a/thirdparty/adlmidi/chips/dosbox/dbopl.h b/thirdparty/adlmidi/chips/dosbox/dbopl.h index 89d2019..b113734 100644 --- a/thirdparty/adlmidi/chips/dosbox/dbopl.h +++ b/thirdparty/adlmidi/chips/dosbox/dbopl.h @@ -286,5 +286,7 @@ struct Handler { void Init( Bitu rate ); }; +// Pre-Initialize internal tables +void InitTables(void); } //Namespace diff --git a/thirdparty/adlmidi/chips/dosbox_opl3.cpp b/thirdparty/adlmidi/chips/dosbox_opl3.cpp index 0b9501f..a3d5351 100644 --- a/thirdparty/adlmidi/chips/dosbox_opl3.cpp +++ b/thirdparty/adlmidi/chips/dosbox_opl3.cpp @@ -1,7 +1,7 @@ /* * Interfaces over Yamaha OPL3 (YMF262) chip emulators * - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -37,6 +37,11 @@ DosBoxOPL3::~DosBoxOPL3() delete chip_r; } +void DosBoxOPL3::globalPreInit() +{ + DBOPL::InitTables(); +} + void DosBoxOPL3::setRate(uint32_t rate) { OPLChipBaseBufferedT::setRate(rate); diff --git a/thirdparty/adlmidi/chips/dosbox_opl3.h b/thirdparty/adlmidi/chips/dosbox_opl3.h index eb79300..ca3269c 100644 --- a/thirdparty/adlmidi/chips/dosbox_opl3.h +++ b/thirdparty/adlmidi/chips/dosbox_opl3.h @@ -1,7 +1,7 @@ /* * Interfaces over Yamaha OPL3 (YMF262) chip emulators * - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -30,6 +30,8 @@ class DosBoxOPL3 final : public OPLChipBaseBufferedT DosBoxOPL3(); ~DosBoxOPL3() override; + static void globalPreInit(); + bool canRunAtPcmRate() const override { return true; } void setRate(uint32_t rate) override; void reset() override; diff --git a/thirdparty/adlmidi/chips/java/JavaOPL3.hpp b/thirdparty/adlmidi/chips/java/JavaOPL3.hpp new file mode 100644 index 0000000..e9f0399 --- /dev/null +++ b/thirdparty/adlmidi/chips/java/JavaOPL3.hpp @@ -0,0 +1,1900 @@ +/* + * File: OPL3.java + * Software implementation of the Yamaha YMF262 sound generator. + * Copyright (C) 2008 Robson Cozendey + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * One of the objectives of this emulator is to stimulate further research in the + * OPL3 chip emulation. There was an explicit effort in making no optimizations, + * and making the code as legible as possible, so that a new programmer + * interested in modify and improve upon it could do so more easily. + * This emulator's main body of information was taken from reverse engineering of + * the OPL3 chip, from the YMF262 Datasheet and from the OPL3 section in the + * YMF278b Application's Manual, + * together with the vibrato table information, eighth waveform parameter + * information and feedback averaging information provided in MAME's YMF262 and + * YM3812 emulators, by Jarek Burczynski and Tatsuyuki Satoh. + * This emulator has a high degree of accuracy, and most of music files sound + * almost identical, exception made in some games which uses specific parts of + * the rhythm section. In this respect, some parts of the rhythm mode are still + * only an approximation of the real chip. + * The other thing to note is that this emulator was done through recordings of + * the SB16 DAC, so it has not bitwise precision. Additional equipment should be + * used to verify the samples directly from the chip, and allow this exact + * per-sample correspondence. As a good side-effect, since this emulator uses + * floating point and has a more fine-grained envelope generator, it can produce + * sometimes a crystal-clear, denser kind of OPL3 sound that, because of that, + * may be useful for creating new music. + * + * Version 1.0.6 + * + */ + +#include +#include +#include +#include +#include "../common/mutex.hpp" + +#ifndef UINT32_MAX +#define UINT32_MAX 0xffffffffU +#endif +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +#define OPL_SAMPLE_RATE 49716.0 +#define CENTER_PANNING_POWER 0.70710678118 /* [RH] volume at center for EQP */ +#define VOLUME_MUL 0.3333 + +/* libADLMIDI: Renamed from JavaOPL3 into to prevent symbol conflicting with original version linked */ +namespace ADL_JavaOPL3 +{ + +/* libADLMIDI: random generator */ +struct FRandom +{ + uint32_t GenRand32() { return (seed = seed * 1664525u + 1013904223u); } + double GenRand_Real1() { return GenRand32() * (1.0 / UINT32_MAX); } +private: + uint32_t seed; +}; + +static FRandom pr_opl3; + +class Operator; + +static inline double StripIntPart(double num) +{ + return num - trunc(num); /* libOPNMIDI */ +} + +// +// Channels +// + + +class Channel +{ +protected: + double feedback[2]; + + int fnuml, fnumh, kon, block, fb, cha, chb, cnt; + + // Factor to convert between normalized amplitude to normalized + // radians. The amplitude maximum is equivalent to 8*Pi radians. +#define toPhase (4.f) + +public: + int channelBaseAddress; + + double leftPan, rightPan; + + Channel (int baseAddress, double startvol); + virtual ~Channel() {} + void update_2_KON1_BLOCK3_FNUMH2(class OPL3 *OPL3); + void update_FNUML8(class OPL3 *OPL3); + void update_CHD1_CHC1_CHB1_CHA1_FB3_CNT1(class OPL3 *OPL3); + void updateChannel(class OPL3 *OPL3); + void updatePan(class OPL3 *OPL3); + virtual double getChannelOutput(class OPL3 *OPL3) = 0; + + virtual void keyOn() = 0; + virtual void keyOff() = 0; + virtual void updateOperators(class OPL3 *OPL3) = 0; +}; + + +class Channel2op : public Channel +{ +public: + Operator *op1, *op2; + + Channel2op (int baseAddress, double startvol, Operator *o1, Operator *o2); + double getChannelOutput(class OPL3 *OPL3); + + void keyOn(); + void keyOff(); + void updateOperators(class OPL3 *OPL3); +}; + + +class Channel4op : public Channel +{ +public: + Operator *op1, *op2, *op3, *op4; + + Channel4op (int baseAddress, double startvol, Operator *o1, Operator *o2, Operator *o3, Operator *o4); + double getChannelOutput(class OPL3 *OPL3); + + void keyOn(); + void keyOff(); + void updateOperators(class OPL3 *OPL3); +}; + +// There's just one instance of this class, that fills the eventual gaps in the Channel array; +class DisabledChannel : public Channel +{ +public: + DisabledChannel() : Channel(0, 0) { } + double getChannelOutput(class OPL3 *) { return 0; } + void keyOn() { } + void keyOff() { } + void updateOperators(class OPL3 *) { } +}; + + + +// +// Envelope Generator +// + + +class EnvelopeGenerator +{ +public: + enum Stage {ATTACK,DECAY,SUSTAIN,RELEASE,OFF}; + Stage stage; + int actualAttackRate, actualDecayRate, actualReleaseRate; + double xAttackIncrement, xMinimumInAttack; + double dBdecayIncrement; + double dBreleaseIncrement; + double attenuation, totalLevel, sustainLevel; + double x, envelope; + +public: + EnvelopeGenerator(); + void setActualSustainLevel(int sl); + void setTotalLevel(int tl); + void setAtennuation(int f_number, int block, int ksl); + void setActualAttackRate(int attackRate, int ksr, int keyScaleNumber); + void setActualDecayRate(int decayRate, int ksr, int keyScaleNumber); + void setActualReleaseRate(int releaseRate, int ksr, int keyScaleNumber); +private: + int calculateActualRate(int rate, int ksr, int keyScaleNumber); +public: + double getEnvelope(OPL3 *OPL3, int egt, int am); + void keyOn(); + void keyOff(); + +private: + static double dBtoX(double dB); + static double percentageToDB(double percentage); + static double percentageToX(double percentage); +}; + + +// +// Phase Generator +// + + +class PhaseGenerator { + double phase, phaseIncrement; + +public: + PhaseGenerator(); + void setFrequency(int f_number, int block, int mult); + double getPhase(class OPL3 *OPL3, int vib); + void keyOn(); +}; + + +// +// Operators +// + + +class Operator +{ +public: + PhaseGenerator phaseGenerator; + EnvelopeGenerator envelopeGenerator; + + double envelope, phase; + + int operatorBaseAddress; + int am, vib, ksr, egt, mult, ksl, tl, ar, dr, sl, rr, ws; + int keyScaleNumber, f_number, block; + + static const double noModulator; + +public: + Operator(int baseAddress); + void update_AM1_VIB1_EGT1_KSR1_MULT4(class OPL3 *OPL3); + void update_KSL2_TL6(class OPL3 *OPL3); + void update_AR4_DR4(class OPL3 *OPL3); + void update_SL4_RR4(class OPL3 *OPL3); + void update_5_WS3(class OPL3 *OPL3); + double getOperatorOutput(class OPL3 *OPL3, double modulator); + + void keyOn(); + void keyOff(); + void updateOperator(class OPL3 *OPL3, int ksn, int f_num, int blk); +protected: + double getOutput(double modulator, double outputPhase, double *waveform); +}; + + +// +// Rhythm +// + +// The getOperatorOutput() method in TopCymbalOperator, HighHatOperator and SnareDrumOperator +// were made through purely empyrical reverse engineering of the OPL3 output. + +class RhythmChannel : public Channel2op +{ +public: + RhythmChannel(int baseAddress, double startvol, Operator *o1, Operator *o2) + : Channel2op(baseAddress, startvol, o1, o2) + { } + double getChannelOutput(class OPL3 *OPL3); + + // Rhythm channels are always running, + // only the envelope is activated by the user. + void keyOn() { } + void keyOff() { } +}; + +class HighHatSnareDrumChannel : public RhythmChannel { + static const int highHatSnareDrumChannelBaseAddress = 7; +public: + HighHatSnareDrumChannel(double startvol, Operator *o1, Operator *o2) + : RhythmChannel(highHatSnareDrumChannelBaseAddress, startvol, o1, o2) + { } +}; + +class TomTomTopCymbalChannel : public RhythmChannel { + static const int tomTomTopCymbalChannelBaseAddress = 8; +public: + TomTomTopCymbalChannel(double startvol, Operator *o1, Operator *o2) + : RhythmChannel(tomTomTopCymbalChannelBaseAddress, startvol, o1, o2) + { } +}; + +class TopCymbalOperator : public Operator { + static const int topCymbalOperatorBaseAddress = 0x15; +public: + TopCymbalOperator(int baseAddress); + TopCymbalOperator(); + double getOperatorOutput(class OPL3 *OPL3, double modulator); + double getOperatorOutput(class OPL3 *OPL3, double modulator, double externalPhase); +}; + +class HighHatOperator : public TopCymbalOperator { + static const int highHatOperatorBaseAddress = 0x11; +public: + HighHatOperator(); + double getOperatorOutput(class OPL3 *OPL3, double modulator); +}; + +class SnareDrumOperator : public Operator { + static const int snareDrumOperatorBaseAddress = 0x14; +public: + SnareDrumOperator(); + double getOperatorOutput(class OPL3 *OPL3, double modulator); +}; + +class TomTomOperator : public Operator { + static const int tomTomOperatorBaseAddress = 0x12; +public: + TomTomOperator() : Operator(tomTomOperatorBaseAddress) { } +}; + +class BassDrumChannel : public Channel2op { + static const int bassDrumChannelBaseAddress = 6; + static const int op1BaseAddress = 0x10; + static const int op2BaseAddress = 0x13; + + Operator my_op1, my_op2; + +public: + BassDrumChannel(double startvol); + double getChannelOutput(class OPL3 *OPL3); + + // Key ON and OFF are unused in rhythm channels. + void keyOn() { } + void keyOff() { } +}; + + +// +// OPl3 Data +// + + +struct OPL3DataStruct +{ +public: + // OPL3-wide registers offsets: + static const int + _1_NTS1_6_Offset = 0x08, + DAM1_DVB1_RYT1_BD1_SD1_TOM1_TC1_HH1_Offset = 0xBD, + _7_NEW1_Offset = 0x105, + _2_CONNECTIONSEL6_Offset = 0x104; + + // The OPL3 tremolo repetition rate is 3.7 Hz. + #define tremoloFrequency (3.7) + + //static const int tremoloTableLength = (int)(OPL_SAMPLE_RATE/tremoloFrequency); + static const int tremoloTableLength = 13436; /* libADLMIDI */ + static const int vibratoTableLength = 8192; + + OPL3DataStruct() + { + loadVibratoTable(); + loadTremoloTable(); + } + + // The first array is used when DVB=0 and the second array is used when DVB=1. + double vibratoTable[2][vibratoTableLength]; + + // First array used when AM = 0 and second array used when AM = 1. + double tremoloTable[2][tremoloTableLength]; + + static double calculateIncrement(double begin, double end, double period) { + return (end-begin)/OPL_SAMPLE_RATE * (1/period); + } + +private: + void loadVibratoTable(); + void loadTremoloTable(); +}; + + +// +// Channel Data +// + + +struct ChannelData +{ + static const int + _2_KON1_BLOCK3_FNUMH2_Offset = 0xB0, + FNUML8_Offset = 0xA0, + CHD1_CHC1_CHB1_CHA1_FB3_CNT1_Offset = 0xC0; + + // Feedback rate in fractions of 2*Pi, normalized to (0,1): + // 0, Pi/16, Pi/8, Pi/4, Pi/2, Pi, 2*Pi, 4*Pi turns to be: + static const float feedback[8]; +}; +const float ChannelData::feedback[8] = {0,1/32.f,1/16.f,1/8.f,1/4.f,1/2.f,1,2}; + + +// +// Operator Data +// + + +struct OperatorDataStruct +{ + static const int + AM1_VIB1_EGT1_KSR1_MULT4_Offset = 0x20, + KSL2_TL6_Offset = 0x40, + AR4_DR4_Offset = 0x60, + SL4_RR4_Offset = 0x80, + _5_WS3_Offset = 0xE0; + + enum type {NO_MODULATION, CARRIER, FEEDBACK}; + + static const int waveLength = 1024; + + static const float multTable[16]; + static const float ksl3dBtable[16][8]; + + //OPL3 has eight waveforms: + double waveforms[8][waveLength]; + +#define MIN_DB (-120.0) +#define DB_TABLE_RES (4.0) +//#define DB_TABLE_SIZE (int)(-MIN_DB * DB_TABLE_RES) +#define DB_TABLE_SIZE 480 /* libADLMIDI */ + + double dbpow[DB_TABLE_SIZE]; + +#define ATTACK_MIN (-5.0) +#define ATTACK_MAX (8.0) +#define ATTACK_RES (0.03125) +//#define ATTACK_TABLE_SIZE (int)((ATTACK_MAX - ATTACK_MIN) / ATTACK_RES) +#define ATTACK_TABLE_SIZE 416 /* libADLMIDI */ + + double attackTable[ATTACK_TABLE_SIZE]; + + OperatorDataStruct() + { + loadWaveforms(); + loaddBPowTable(); + loadAttackTable(); + } + + static double log2(double x) { + return log(x)/log(2.0); + } +private: + void loadWaveforms(); + void loaddBPowTable(); + void loadAttackTable(); +}; +const float OperatorDataStruct::multTable[16] = {0.5,1,2,3,4,5,6,7,8,9,10,10,12,12,15,15}; + +const float OperatorDataStruct::ksl3dBtable[16][8] = { + {0,0,0,0,0,0,0,0}, + {0,0,0,0,0,-3,-6,-9}, + {0,0,0,0,-3,-6,-9,-12}, + {0,0,0, -1.875, -4.875, -7.875, -10.875, -13.875}, + + {0,0,0,-3,-6,-9,-12,-15}, + {0,0, -1.125, -4.125, -7.125, -10.125, -13.125, -16.125}, + {0,0, -1.875, -4.875, -7.875, -10.875, -13.875, -16.875}, + {0,0, -2.625, -5.625, -8.625, -11.625, -14.625, -17.625}, + + {0,0,-3,-6,-9,-12,-15,-18}, + {0, -0.750, -3.750, -6.750, -9.750, -12.750, -15.750, -18.750}, + {0, -1.125, -4.125, -7.125, -10.125, -13.125, -16.125, -19.125}, + {0, -1.500, -4.500, -7.500, -10.500, -13.500, -16.500, -19.500}, + + {0, -1.875, -4.875, -7.875, -10.875, -13.875, -16.875, -19.875}, + {0, -2.250, -5.250, -8.250, -11.250, -14.250, -17.250, -20.250}, + {0, -2.625, -5.625, -8.625, -11.625, -14.625, -17.625, -20.625}, + {0,-3,-6,-9,-12,-15,-18,-21} +}; + +// +// Envelope Generator Data +// + + +namespace EnvelopeGeneratorData +{ + static const double MUGEN = std::numeric_limits::infinity(); + // This table is indexed by the value of Operator.ksr + // and the value of ChannelRegister.keyScaleNumber. + static const int rateOffset[2][16] = { + {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3}, + {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15} + }; + // These attack periods in miliseconds were taken from the YMF278B manual. + // The attack actual rates range from 0 to 63, with different data for + // 0%-100% and for 10%-90%: + static const double attackTimeValuesTable[64][2] = { + {MUGEN,MUGEN}, {MUGEN,MUGEN}, {MUGEN,MUGEN}, {MUGEN,MUGEN}, + {2826.24,1482.75}, {2252.80,1155.07}, {1884.16,991.23}, {1597.44,868.35}, + {1413.12,741.38}, {1126.40,577.54}, {942.08,495.62}, {798.72,434.18}, + {706.56,370.69}, {563.20,288.77}, {471.04,247.81}, {399.36,217.09}, + + {353.28,185.34}, {281.60,144.38}, {235.52,123.90}, {199.68,108.54}, + {176.76,92.67}, {140.80,72.19}, {117.76,61.95}, {99.84,54.27}, + {88.32,46.34}, {70.40,36.10}, {58.88,30.98}, {49.92,27.14}, + {44.16,23.17}, {35.20,18.05}, {29.44,15.49}, {24.96,13.57}, + + {22.08,11.58}, {17.60,9.02}, {14.72,7.74}, {12.48,6.78}, + {11.04,5.79}, {8.80,4.51}, {7.36,3.87}, {6.24,3.39}, + {5.52,2.90}, {4.40,2.26}, {3.68,1.94}, {3.12,1.70}, + {2.76,1.45}, {2.20,1.13}, {1.84,0.97}, {1.56,0.85}, + + {1.40,0.73}, {1.12,0.61}, {0.92,0.49}, {0.80,0.43}, + {0.70,0.37}, {0.56,0.31}, {0.46,0.26}, {0.42,0.22}, + {0.38,0.19}, {0.30,0.14}, {0.24,0.11}, {0.20,0.11}, + {0.00,0.00}, {0.00,0.00}, {0.00,0.00}, {0.00,0.00} + }; + + // These decay and release periods in milliseconds were taken from the YMF278B manual. + // The rate index range from 0 to 63, with different data for + // 0%-100% and for 10%-90%: + static const double decayAndReleaseTimeValuesTable[64][2] = { + {MUGEN,MUGEN}, {MUGEN,MUGEN}, {MUGEN,MUGEN}, {MUGEN,MUGEN}, + {39280.64,8212.48}, {31416.32,6574.08}, {26173.44,5509.12}, {22446.08,4730.88}, + {19640.32,4106.24}, {15708.16,3287.04}, {13086.72,2754.56}, {11223.04,2365.44}, + {9820.16,2053.12}, {7854.08,1643.52}, {6543.36,1377.28}, {5611.52,1182.72}, + + {4910.08,1026.56}, {3927.04,821.76}, {3271.68,688.64}, {2805.76,591.36}, + {2455.04,513.28}, {1936.52,410.88}, {1635.84,344.34}, {1402.88,295.68}, + {1227.52,256.64}, {981.76,205.44}, {817.92,172.16}, {701.44,147.84}, + {613.76,128.32}, {490.88,102.72}, {488.96,86.08}, {350.72,73.92}, + + {306.88,64.16}, {245.44,51.36}, {204.48,43.04}, {175.36,36.96}, + {153.44,32.08}, {122.72,25.68}, {102.24,21.52}, {87.68,18.48}, + {76.72,16.04}, {61.36,12.84}, {51.12,10.76}, {43.84,9.24}, + {38.36,8.02}, {30.68,6.42}, {25.56,5.38}, {21.92,4.62}, + + {19.20,4.02}, {15.36,3.22}, {12.80,2.68}, {10.96,2.32}, + {9.60,2.02}, {7.68,1.62}, {6.40,1.35}, {5.48,1.15}, + {4.80,1.01}, {3.84,0.81}, {3.20,0.69}, {2.74,0.58}, + {2.40,0.51}, {2.40,0.51}, {2.40,0.51}, {2.40,0.51} + }; +} + +class OPL3 +{ +public: + uint8_t registers[0x200]; + + Operator *operators[2][0x20]; + Channel2op *channels2op[2][9]; + Channel4op *channels4op[2][3]; + Channel *channels[2][9]; + + // Unique instance to fill future gaps in the Channel array, + // when there will be switches between 2op and 4op mode. + DisabledChannel disabledChannel; + + // Specific operators to switch when in rhythm mode: + HighHatOperator highHatOperator; + SnareDrumOperator snareDrumOperator; + TomTomOperator tomTomOperator; + TomTomTopCymbalChannel tomTomTopCymbalChannel; + + // Rhythm channels + BassDrumChannel bassDrumChannel; + HighHatSnareDrumChannel highHatSnareDrumChannel; + TopCymbalOperator topCymbalOperator; + + Operator *highHatOperatorInNonRhythmMode; + Operator *snareDrumOperatorInNonRhythmMode; + Operator *tomTomOperatorInNonRhythmMode; + Operator *topCymbalOperatorInNonRhythmMode; + + int nts, dam, dvb, ryt, bd, sd, tom, tc, hh, _new, connectionsel; + int vibratoIndex, tremoloIndex; + + bool FullPan; + + static OperatorDataStruct *OperatorData; + static OPL3DataStruct *OPL3Data; + + // The methods read() and write() are the only + // ones needed by the user to interface with the emulator. + // read() returns one frame at a time, to be played at 49700 Hz, + // with each frame being four 16-bit samples, + // corresponding to the OPL3 four output channels CHA...CHD. +public: + //void read(float output[2]); + void write(int array, int address, int data); + + OPL3(bool fullpan); + ~OPL3(); + +private: + void initOperators(); + void initChannels2op(); + void initChannels4op(); + void initRhythmChannels(); + void initChannels(); + void update_1_NTS1_6(); + void update_DAM1_DVB1_RYT1_BD1_SD1_TOM1_TC1_HH1(); + void update_7_NEW1(); + void setEnabledChannels(); + void updateChannelPans(); + void update_2_CONNECTIONSEL6(); + void set4opConnections(); + void setRhythmMode(); + + static int InstanceCount; + static Mutex InstanceMutex; + + // OPLEmul interface +public: + void Reset(); + void WriteReg(int reg, int v); + void Update(float *buffer, int length); + void SetPanning(int c, float left, float right); +}; + +OperatorDataStruct *OPL3::OperatorData; +OPL3DataStruct *OPL3::OPL3Data; +int OPL3::InstanceCount; +Mutex OPL3::InstanceMutex; + +void OPL3::Update(float *output, int numsamples) { + while (numsamples--) { + // If _new = 0, use OPL2 mode with 9 channels. If _new = 1, use OPL3 18 channels; + for(int array=0; array < (_new + 1); array++) + for(int channelNumber=0; channelNumber < 9; channelNumber++) { + // Reads output from each OPL3 channel, and accumulates it in the output buffer: + Channel *channel = channels[array][channelNumber]; + if (channel != &disabledChannel) + { + double channelOutput = channel->getChannelOutput(this); + output[0] += float(channelOutput * channel->leftPan); + output[1] += float(channelOutput * channel->rightPan); + } + } + + // Advances the OPL3-wide vibrato index, which is used by + // PhaseGenerator.getPhase() in each Operator. + vibratoIndex = (vibratoIndex + 1) & (OPL3DataStruct::vibratoTableLength - 1); + // Advances the OPL3-wide tremolo index, which is used by + // EnvelopeGenerator.getEnvelope() in each Operator. + tremoloIndex++; + if(tremoloIndex >= OPL3DataStruct::tremoloTableLength) tremoloIndex = 0; + output += 2; + } +} + +void OPL3::write(int array, int address, int data) { + // The OPL3 has two registers arrays, each with adresses ranging + // from 0x00 to 0xF5. + // This emulator uses one array, with the two original register arrays + // starting at 0x00 and at 0x100. + int registerAddress = (array<<8) | address; + // If the address is out of the OPL3 memory map, returns. + if(registerAddress<0 || registerAddress>=0x200) return; + + registers[registerAddress] = data; + switch(address&0xE0) { + // The first 3 bits masking gives the type of the register by using its base address: + // 0x00, 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, 0xE0 + // When it is needed, we further separate the register type inside each base address, + // which is the case of 0x00 and 0xA0. + + // Through out this emulator we will use the same name convention to + // reference a byte with several bit registers. + // The name of each bit register will be followed by the number of bits + // it occupies inside the byte. + // Numbers without accompanying names are unused bits. + case 0x00: + // Unique registers for the entire OPL3: + if(array==1) { + if(address==0x04) + update_2_CONNECTIONSEL6(); + else if(address==0x05) + update_7_NEW1(); + } + else if(address==0x08) update_1_NTS1_6(); + break; + + case 0xA0: + // 0xBD is a control register for the entire OPL3: + if(address==0xBD) { + if(array==0) + update_DAM1_DVB1_RYT1_BD1_SD1_TOM1_TC1_HH1(); + break; + } + // Registers for each channel are in A0-A8, B0-B8, C0-C8, in both register arrays. + // 0xB0...0xB8 keeps kon,block,fnum(h) for each channel. + if( (address&0xF0) == 0xB0 && address <= 0xB8) { + // If the address is in the second register array, adds 9 to the channel number. + // The channel number is given by the last four bits, like in A0,...,A8. + channels[array][address&0x0F]->update_2_KON1_BLOCK3_FNUMH2(this); + break; + } + // 0xA0...0xA8 keeps fnum(l) for each channel. + if( (address&0xF0) == 0xA0 && address <= 0xA8) + channels[array][address&0x0F]->update_FNUML8(this); + break; + // 0xC0...0xC8 keeps cha,chb,chc,chd,fb,cnt for each channel: + case 0xC0: + if(address <= 0xC8) + channels[array][address&0x0F]->update_CHD1_CHC1_CHB1_CHA1_FB3_CNT1(this); + break; + + // Registers for each of the 36 Operators: + default: + int operatorOffset = address&0x1F; + if(operators[array][operatorOffset] == NULL) break; + switch(address&0xE0) { + // 0x20...0x35 keeps am,vib,egt,ksr,mult for each operator: + case 0x20: + operators[array][operatorOffset]->update_AM1_VIB1_EGT1_KSR1_MULT4(this); + break; + // 0x40...0x55 keeps ksl,tl for each operator: + case 0x40: + operators[array][operatorOffset]->update_KSL2_TL6(this); + break; + // 0x60...0x75 keeps ar,dr for each operator: + case 0x60: + operators[array][operatorOffset]->update_AR4_DR4(this); + break; + // 0x80...0x95 keeps sl,rr for each operator: + case 0x80: + operators[array][operatorOffset]->update_SL4_RR4(this); + break; + // 0xE0...0xF5 keeps ws for each operator: + case 0xE0: + operators[array][operatorOffset]->update_5_WS3(this); + } + } +} + +OPL3::OPL3(bool fullpan) +: tomTomTopCymbalChannel(fullpan ? CENTER_PANNING_POWER : 1, &tomTomOperator, &topCymbalOperator), + bassDrumChannel(fullpan ? CENTER_PANNING_POWER : 1), + highHatSnareDrumChannel(fullpan ? CENTER_PANNING_POWER : 1, &highHatOperator, &snareDrumOperator) +{ + FullPan = fullpan; + nts = dam = dvb = ryt = bd = sd = tom = tc = hh = _new = connectionsel = 0; + vibratoIndex = tremoloIndex = 0; + + { + MutexHolder lock(InstanceMutex); + if (InstanceCount++ == 0) + { + OPL3Data = new struct OPL3DataStruct; + OperatorData = new struct OperatorDataStruct; + } + } + + initOperators(); + initChannels2op(); + initChannels4op(); + initRhythmChannels(); + initChannels(); +} + +OPL3::~OPL3() +{ + ryt = 0; + setRhythmMode(); // Make sure all operators point to the dynamically allocated ones. + for (int array = 0; array < 2; array++) + { + for (int operatorNumber = 0; operatorNumber < 0x20; operatorNumber++) + { + if (operators[array][operatorNumber] != NULL) + { + delete operators[array][operatorNumber]; + } + } + for (int channelNumber = 0; channelNumber < 9; channelNumber++) + { + delete channels2op[array][channelNumber]; + } + for (int channelNumber = 0; channelNumber < 3; channelNumber++) + { + delete channels4op[array][channelNumber]; + } + } + + { + MutexHolder lock(InstanceMutex); + if (--InstanceCount == 0) + { + delete OPL3Data; + OPL3Data = NULL; + delete OperatorData; + OperatorData = NULL; + } + } +} + + +void OPL3::initOperators() { + memset(registers, 0, sizeof(registers)); + + int baseAddress; + // The YMF262 has 36 operators: + memset(operators, 0, sizeof(operators)); + for(int array=0; array<2; array++) + for(int group = 0; group<=0x10; group+=8) + for(int offset=0; offset<6; offset++) { + baseAddress = (array<<8) | (group+offset); + operators[array][group+offset] = new Operator(baseAddress); + } + + // Save operators when they are in non-rhythm mode: + // Channel 7: + highHatOperatorInNonRhythmMode = operators[0][0x11]; + snareDrumOperatorInNonRhythmMode = operators[0][0x14]; + // Channel 8: + tomTomOperatorInNonRhythmMode = operators[0][0x12]; + topCymbalOperatorInNonRhythmMode = operators[0][0x15]; + +} + +void OPL3::initChannels2op() { + // The YMF262 has 18 2-op channels. + // Each 2-op channel can be at a serial or parallel operator configuration: + memset(channels2op, 0, sizeof(channels2op)); + double startvol = FullPan ? CENTER_PANNING_POWER : 1; + for(int array=0; array<2; array++) + for(int channelNumber=0; channelNumber<3; channelNumber++) { + int baseAddress = (array<<8) | channelNumber; + // Channels 1, 2, 3 -> Operator offsets 0x0,0x3; 0x1,0x4; 0x2,0x5 + channels2op[array][channelNumber] = new Channel2op(baseAddress, startvol, operators[array][channelNumber], operators[array][channelNumber+0x3]); + // Channels 4, 5, 6 -> Operator offsets 0x8,0xB; 0x9,0xC; 0xA,0xD + channels2op[array][channelNumber+3] = new Channel2op(baseAddress+3, startvol, operators[array][channelNumber+0x8], operators[array][channelNumber+0xB]); + // Channels 7, 8, 9 -> Operators 0x10,0x13; 0x11,0x14; 0x12,0x15 + channels2op[array][channelNumber+6] = new Channel2op(baseAddress+6, startvol, operators[array][channelNumber+0x10], operators[array][channelNumber+0x13]); + } +} + +void OPL3::initChannels4op() { + // The YMF262 has 3 4-op channels in each array: + memset(channels4op, 0, sizeof(channels4op)); + double startvol = FullPan ? CENTER_PANNING_POWER : 1; + for(int array=0; array<2; array++) + for(int channelNumber=0; channelNumber<3; channelNumber++) { + int baseAddress = (array<<8) | channelNumber; + // Channels 1, 2, 3 -> Operators 0x0,0x3,0x8,0xB; 0x1,0x4,0x9,0xC; 0x2,0x5,0xA,0xD; + channels4op[array][channelNumber] = new Channel4op(baseAddress, startvol, operators[array][channelNumber], operators[array][channelNumber+0x3], operators[array][channelNumber+0x8], operators[array][channelNumber+0xB]); + } +} + +void OPL3::initRhythmChannels() { +} + +void OPL3::initChannels() { + // Channel is an abstract class that can be a 2-op, 4-op, rhythm or disabled channel, + // depending on the OPL3 configuration at the time. + // channels[] inits as a 2-op serial channel array: + for(int array=0; array<2; array++) + for(int i=0; i<9; i++) channels[array][i] = channels2op[array][i]; +} + +void OPL3::update_1_NTS1_6() { + int _1_nts1_6 = registers[OPL3DataStruct::_1_NTS1_6_Offset]; + // Note Selection. This register is used in Channel.updateOperators() implementations, + // to calculate the channel´s Key Scale Number. + // The value of the actual envelope rate follows the value of + // OPL3.nts,Operator.keyScaleNumber and Operator.ksr + nts = (_1_nts1_6 & 0x40) >> 6; +} + +void OPL3::update_DAM1_DVB1_RYT1_BD1_SD1_TOM1_TC1_HH1() { + int dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 = registers[OPL3DataStruct::DAM1_DVB1_RYT1_BD1_SD1_TOM1_TC1_HH1_Offset]; + // Depth of amplitude. This register is used in EnvelopeGenerator.getEnvelope(); + dam = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x80) >> 7; + + // Depth of vibrato. This register is used in PhaseGenerator.getPhase(); + dvb = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x40) >> 6; + + int new_ryt = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x20) >> 5; + if(new_ryt != ryt) { + ryt = new_ryt; + setRhythmMode(); + } + + int new_bd = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x10) >> 4; + if(new_bd != bd) { + bd = new_bd; + if(bd==1) { + bassDrumChannel.op1->keyOn(); + bassDrumChannel.op2->keyOn(); + } + } + + int new_sd = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x08) >> 3; + if(new_sd != sd) { + sd = new_sd; + if(sd==1) snareDrumOperator.keyOn(); + } + + int new_tom = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x04) >> 2; + if(new_tom != tom) { + tom = new_tom; + if(tom==1) tomTomOperator.keyOn(); + } + + int new_tc = (dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x02) >> 1; + if(new_tc != tc) { + tc = new_tc; + if(tc==1) topCymbalOperator.keyOn(); + } + + int new_hh = dam1_dvb1_ryt1_bd1_sd1_tom1_tc1_hh1 & 0x01; + if(new_hh != hh) { + hh = new_hh; + if(hh==1) highHatOperator.keyOn(); + } + +} + +void OPL3::update_7_NEW1() { + int _7_new1 = registers[OPL3DataStruct::_7_NEW1_Offset]; + // OPL2/OPL3 mode selection. This register is used in + // OPL3.read(), OPL3.write() and Operator.getOperatorOutput(); + _new = (_7_new1 & 0x01); + if(_new==1) setEnabledChannels(); + set4opConnections(); + updateChannelPans(); +} + +void OPL3::setEnabledChannels() { + for(int array=0; array<2; array++) + for(int i=0; i<9; i++) { + int baseAddress = channels[array][i]->channelBaseAddress; + registers[baseAddress+ChannelData::CHD1_CHC1_CHB1_CHA1_FB3_CNT1_Offset] |= 0xF0; + channels[array][i]->update_CHD1_CHC1_CHB1_CHA1_FB3_CNT1(this); + } +} + +void OPL3::updateChannelPans() { + for(int array=0; array<2; array++) + for(int i=0; i<9; i++) { + int baseAddress = channels[array][i]->channelBaseAddress; + registers[baseAddress+ChannelData::CHD1_CHC1_CHB1_CHA1_FB3_CNT1_Offset] |= 0xF0; + channels[array][i]->updatePan(this); + } + +} + +void OPL3::update_2_CONNECTIONSEL6() { + // This method is called only if _new is set. + int _2_connectionsel6 = registers[OPL3DataStruct::_2_CONNECTIONSEL6_Offset]; + // 2-op/4-op channel selection. This register is used here to configure the OPL3.channels[] array. + connectionsel = (_2_connectionsel6 & 0x3F); + set4opConnections(); +} + +void OPL3::set4opConnections() { + // bits 0, 1, 2 sets respectively 2-op channels (1,4), (2,5), (3,6) to 4-op operation. + // bits 3, 4, 5 sets respectively 2-op channels (10,13), (11,14), (12,15) to 4-op operation. + for(int array=0; array<2; array++) + for(int i=0; i<3; i++) { + if(_new == 1) { + int shift = array*3 + i; + int connectionBit = (connectionsel >> shift) & 0x01; + if(connectionBit == 1) { + channels[array][i] = channels4op[array][i]; + channels[array][i+3] = &disabledChannel; + channels[array][i]->updateChannel(this); + continue; + } + } + channels[array][i] = channels2op[array][i]; + channels[array][i+3] = channels2op[array][i+3]; + channels[array][i]->updateChannel(this); + channels[array][i+3]->updateChannel(this); + } +} + +void OPL3::setRhythmMode() { + if(ryt==1) { + channels[0][6] = &bassDrumChannel; + channels[0][7] = &highHatSnareDrumChannel; + channels[0][8] = &tomTomTopCymbalChannel; + operators[0][0x11] = &highHatOperator; + operators[0][0x14] = &snareDrumOperator; + operators[0][0x12] = &tomTomOperator; + operators[0][0x15] = &topCymbalOperator; + } + else { + for(int i=6; i<=8; i++) channels[0][i] = channels2op[0][i]; + operators[0][0x11] = highHatOperatorInNonRhythmMode; + operators[0][0x14] = snareDrumOperatorInNonRhythmMode; + operators[0][0x12] = tomTomOperatorInNonRhythmMode; + operators[0][0x15] = topCymbalOperatorInNonRhythmMode; + } + for(int i=6; i<=8; i++) channels[0][i]->updateChannel(this); +} + +static double EnvelopeFromDB(double db) +{ +#if 0 + return pow(10.0, db/10); +#else + if (db < MIN_DB) + return 0; + return OPL3::OperatorData->dbpow[(int)floor(-db * DB_TABLE_RES)]; +#endif +} + +Channel::Channel (int baseAddress, double startvol) { + channelBaseAddress = baseAddress; + fnuml = fnumh = kon = block = fb = cha = chb = cnt = 0; + feedback[0] = feedback[1] = 0; + leftPan = rightPan = startvol; +} + +void Channel::update_2_KON1_BLOCK3_FNUMH2(OPL3 *OPL3) { + + int _2_kon1_block3_fnumh2 = OPL3->registers[channelBaseAddress+ChannelData::_2_KON1_BLOCK3_FNUMH2_Offset]; + + // Frequency Number (hi-register) and Block. These two registers, together with fnuml, + // sets the Channel´s base frequency; + block = (_2_kon1_block3_fnumh2 & 0x1C) >> 2; + fnumh = _2_kon1_block3_fnumh2 & 0x03; + updateOperators(OPL3); + + // Key On. If changed, calls Channel.keyOn() / keyOff(). + int newKon = (_2_kon1_block3_fnumh2 & 0x20) >> 5; + if(newKon != kon) { + if(newKon == 1) keyOn(); + else keyOff(); + kon = newKon; + } +} + +void Channel::update_FNUML8(OPL3 *OPL3) { + int fnuml8 = OPL3->registers[channelBaseAddress+ChannelData::FNUML8_Offset]; + // Frequency Number, low register. + fnuml = fnuml8&0xFF; + updateOperators(OPL3); +} + +void Channel::update_CHD1_CHC1_CHB1_CHA1_FB3_CNT1(OPL3 *OPL3) { + int chd1_chc1_chb1_cha1_fb3_cnt1 = OPL3->registers[channelBaseAddress+ChannelData::CHD1_CHC1_CHB1_CHA1_FB3_CNT1_Offset]; +// chd = (chd1_chc1_chb1_cha1_fb3_cnt1 & 0x80) >> 7; +// chc = (chd1_chc1_chb1_cha1_fb3_cnt1 & 0x40) >> 6; + chb = (chd1_chc1_chb1_cha1_fb3_cnt1 & 0x20) >> 5; + cha = (chd1_chc1_chb1_cha1_fb3_cnt1 & 0x10) >> 4; + fb = (chd1_chc1_chb1_cha1_fb3_cnt1 & 0x0E) >> 1; + cnt = chd1_chc1_chb1_cha1_fb3_cnt1 & 0x01; + updatePan(OPL3); + updateOperators(OPL3); +} + +void Channel::updatePan(OPL3 *OPL3) { + if (!OPL3->FullPan) + { + if (OPL3->_new == 0) + { + leftPan = VOLUME_MUL; + rightPan = VOLUME_MUL; + } + else + { + leftPan = cha * VOLUME_MUL; + rightPan = chb * VOLUME_MUL; + } + } +} + +void Channel::updateChannel(OPL3 *OPL3) { + update_2_KON1_BLOCK3_FNUMH2(OPL3); + update_FNUML8(OPL3); + update_CHD1_CHC1_CHB1_CHA1_FB3_CNT1(OPL3); +} + +Channel2op::Channel2op (int baseAddress, double startvol, Operator *o1, Operator *o2) +: Channel(baseAddress, startvol) +{ + op1 = o1; + op2 = o2; +} + +double Channel2op::getChannelOutput(OPL3 *OPL3) { + double channelOutput = 0, op1Output = 0, op2Output = 0; + // The feedback uses the last two outputs from + // the first operator, instead of just the last one. + double feedbackOutput = (feedback[0] + feedback[1]) / 2; + + switch(cnt) { + // CNT = 0, the operators are in series, with the first in feedback. + case 0: + if(op2->envelopeGenerator.stage==EnvelopeGenerator::OFF) + return 0; + op1Output = op1->getOperatorOutput(OPL3, feedbackOutput); + channelOutput = op2->getOperatorOutput(OPL3, op1Output*toPhase); + break; + // CNT = 1, the operators are in parallel, with the first in feedback. + case 1: + if(op1->envelopeGenerator.stage==EnvelopeGenerator::OFF && + op2->envelopeGenerator.stage==EnvelopeGenerator::OFF) + return 0; + op1Output = op1->getOperatorOutput(OPL3, feedbackOutput); + op2Output = op2->getOperatorOutput(OPL3, Operator::noModulator); + channelOutput = (op1Output + op2Output) / 2; + } + + feedback[0] = feedback[1]; + feedback[1] = StripIntPart(op1Output * ChannelData::feedback[fb]); + return channelOutput; +} + +void Channel2op::keyOn() { + op1->keyOn(); + op2->keyOn(); + feedback[0] = feedback[1] = 0; +} + +void Channel2op::keyOff() { + op1->keyOff(); + op2->keyOff(); +} + +void Channel2op::updateOperators(OPL3 *OPL3) { + // Key Scale Number, used in EnvelopeGenerator.setActualRates(). + int keyScaleNumber = block*2 + ((fnumh>>OPL3->nts)&0x01); + int f_number = (fnumh<<8) | fnuml; + op1->updateOperator(OPL3, keyScaleNumber, f_number, block); + op2->updateOperator(OPL3, keyScaleNumber, f_number, block); +} + +Channel4op::Channel4op (int baseAddress, double startvol, Operator *o1, Operator *o2, Operator *o3, Operator *o4) +: Channel(baseAddress, startvol) +{ + op1 = o1; + op2 = o2; + op3 = o3; + op4 = o4; +} + +double Channel4op::getChannelOutput(OPL3 *OPL3) { + double channelOutput = 0, + op1Output = 0, op2Output = 0, op3Output = 0, op4Output = 0; + + int secondChannelBaseAddress = channelBaseAddress+3; + int secondCnt = OPL3->registers[secondChannelBaseAddress+ChannelData::CHD1_CHC1_CHB1_CHA1_FB3_CNT1_Offset] & 0x1; + int cnt4op = (cnt << 1) | secondCnt; + + double feedbackOutput = (feedback[0] + feedback[1]) / 2; + + switch(cnt4op) { + case 0: + if(op4->envelopeGenerator.stage==EnvelopeGenerator::OFF) + return 0; + + op1Output = op1->getOperatorOutput(OPL3, feedbackOutput); + op2Output = op2->getOperatorOutput(OPL3, op1Output*toPhase); + op3Output = op3->getOperatorOutput(OPL3, op2Output*toPhase); + channelOutput = op4->getOperatorOutput(OPL3, op3Output*toPhase); + + break; + case 1: + if(op2->envelopeGenerator.stage==EnvelopeGenerator::OFF && + op4->envelopeGenerator.stage==EnvelopeGenerator::OFF) + return 0; + + op1Output = op1->getOperatorOutput(OPL3, feedbackOutput); + op2Output = op2->getOperatorOutput(OPL3, op1Output*toPhase); + + op3Output = op3->getOperatorOutput(OPL3, Operator::noModulator); + op4Output = op4->getOperatorOutput(OPL3, op3Output*toPhase); + + channelOutput = (op2Output + op4Output) / 2; + break; + case 2: + if(op1->envelopeGenerator.stage==EnvelopeGenerator::OFF && + op4->envelopeGenerator.stage==EnvelopeGenerator::OFF) + return 0; + + op1Output = op1->getOperatorOutput(OPL3, feedbackOutput); + + op2Output = op2->getOperatorOutput(OPL3, Operator::noModulator); + op3Output = op3->getOperatorOutput(OPL3, op2Output*toPhase); + op4Output = op4->getOperatorOutput(OPL3, op3Output*toPhase); + + channelOutput = (op1Output + op4Output) / 2; + break; + case 3: + if(op1->envelopeGenerator.stage==EnvelopeGenerator::OFF && + op3->envelopeGenerator.stage==EnvelopeGenerator::OFF && + op4->envelopeGenerator.stage==EnvelopeGenerator::OFF) + return 0; + + op1Output = op1->getOperatorOutput(OPL3, feedbackOutput); + + op2Output = op2->getOperatorOutput(OPL3, Operator::noModulator); + op3Output = op3->getOperatorOutput(OPL3, op2Output*toPhase); + + op4Output = op4->getOperatorOutput(OPL3, Operator::noModulator); + + channelOutput = (op1Output + op3Output + op4Output) / 3; + } + + feedback[0] = feedback[1]; + feedback[1] = StripIntPart(op1Output * ChannelData::feedback[fb]); + + return channelOutput; +} + +void Channel4op::keyOn() { + op1->keyOn(); + op2->keyOn(); + op3->keyOn(); + op4->keyOn(); + feedback[0] = feedback[1] = 0; +} + +void Channel4op::keyOff() { + op1->keyOff(); + op2->keyOff(); + op3->keyOff(); + op4->keyOff(); +} + +void Channel4op::updateOperators(OPL3 *OPL3) { + // Key Scale Number, used in EnvelopeGenerator.setActualRates(). + int keyScaleNumber = block*2 + ((fnumh>>OPL3->nts)&0x01); + int f_number = (fnumh<<8) | fnuml; + op1->updateOperator(OPL3, keyScaleNumber, f_number, block); + op2->updateOperator(OPL3, keyScaleNumber, f_number, block); + op3->updateOperator(OPL3, keyScaleNumber, f_number, block); + op4->updateOperator(OPL3, keyScaleNumber, f_number, block); +} + +const double Operator::noModulator = 0; + +Operator::Operator(int baseAddress) { + operatorBaseAddress = baseAddress; + + envelope = phase = 0; + am = vib = ksr = egt = mult = ksl = tl = ar = dr = sl = rr = ws = 0; + keyScaleNumber = f_number = block = 0; +} + +void Operator::update_AM1_VIB1_EGT1_KSR1_MULT4(OPL3 *OPL3) { + + int am1_vib1_egt1_ksr1_mult4 = OPL3->registers[operatorBaseAddress+OperatorDataStruct::AM1_VIB1_EGT1_KSR1_MULT4_Offset]; + + // Amplitude Modulation. This register is used int EnvelopeGenerator.getEnvelope(); + am = (am1_vib1_egt1_ksr1_mult4 & 0x80) >> 7; + // Vibrato. This register is used in PhaseGenerator.getPhase(); + vib = (am1_vib1_egt1_ksr1_mult4 & 0x40) >> 6; + // Envelope Generator Type. This register is used in EnvelopeGenerator.getEnvelope(); + egt = (am1_vib1_egt1_ksr1_mult4 & 0x20) >> 5; + // Key Scale Rate. Sets the actual envelope rate together with rate and keyScaleNumber. + // This register os used in EnvelopeGenerator.setActualAttackRate(). + ksr = (am1_vib1_egt1_ksr1_mult4 & 0x10) >> 4; + // Multiple. Multiplies the Channel.baseFrequency to get the Operator.operatorFrequency. + // This register is used in PhaseGenerator.setFrequency(). + mult = am1_vib1_egt1_ksr1_mult4 & 0x0F; + + phaseGenerator.setFrequency(f_number, block, mult); + envelopeGenerator.setActualAttackRate(ar, ksr, keyScaleNumber); + envelopeGenerator.setActualDecayRate(dr, ksr, keyScaleNumber); + envelopeGenerator.setActualReleaseRate(rr, ksr, keyScaleNumber); +} + +void Operator::update_KSL2_TL6(OPL3 *OPL3) { + + int ksl2_tl6 = OPL3->registers[operatorBaseAddress+OperatorDataStruct::KSL2_TL6_Offset]; + + // Key Scale Level. Sets the attenuation in accordance with the octave. + ksl = (ksl2_tl6 & 0xC0) >> 6; + // Total Level. Sets the overall damping for the envelope. + tl = ksl2_tl6 & 0x3F; + + envelopeGenerator.setAtennuation(f_number, block, ksl); + envelopeGenerator.setTotalLevel(tl); +} + +void Operator::update_AR4_DR4(OPL3 *OPL3) { + + int ar4_dr4 = OPL3->registers[operatorBaseAddress+OperatorDataStruct::AR4_DR4_Offset]; + + // Attack Rate. + ar = (ar4_dr4 & 0xF0) >> 4; + // Decay Rate. + dr = ar4_dr4 & 0x0F; + + envelopeGenerator.setActualAttackRate(ar, ksr, keyScaleNumber); + envelopeGenerator.setActualDecayRate(dr, ksr, keyScaleNumber); +} + +void Operator::update_SL4_RR4(OPL3 *OPL3) { + + int sl4_rr4 = OPL3->registers[operatorBaseAddress+OperatorDataStruct::SL4_RR4_Offset]; + + // Sustain Level. + sl = (sl4_rr4 & 0xF0) >> 4; + // Release Rate. + rr = sl4_rr4 & 0x0F; + + envelopeGenerator.setActualSustainLevel(sl); + envelopeGenerator.setActualReleaseRate(rr, ksr, keyScaleNumber); +} + +void Operator::update_5_WS3(OPL3 *OPL3) { + int _5_ws3 = OPL3->registers[operatorBaseAddress+OperatorDataStruct::_5_WS3_Offset]; + ws = _5_ws3 & 0x07; +} + +double Operator::getOperatorOutput(OPL3 *OPL3, double modulator) { + if(envelopeGenerator.stage == EnvelopeGenerator::OFF) return 0; + + double envelopeInDB = envelopeGenerator.getEnvelope(OPL3, egt, am); + envelope = EnvelopeFromDB(envelopeInDB); + + // If it is in OPL2 mode, use first four waveforms only: + ws &= ((OPL3->_new<<2) + 3); + double *waveform = OPL3::OperatorData->waveforms[ws]; + + phase = phaseGenerator.getPhase(OPL3, vib); + + double operatorOutput = getOutput(modulator, phase, waveform); + return operatorOutput; +} + +double Operator::getOutput(double modulator, double outputPhase, double *waveform) { + int sampleIndex = (int)floor((outputPhase + modulator) * OperatorDataStruct::waveLength) & (OperatorDataStruct::waveLength - 1); + return waveform[sampleIndex] * envelope; +} + +void Operator::keyOn() { + if(ar > 0) { + envelopeGenerator.keyOn(); + phaseGenerator.keyOn(); + } + else envelopeGenerator.stage = EnvelopeGenerator::OFF; +} + +void Operator::keyOff() { + envelopeGenerator.keyOff(); +} + +void Operator::updateOperator(OPL3 *OPL3, int ksn, int f_num, int blk) { + keyScaleNumber = ksn; + f_number = f_num; + block = blk; + update_AM1_VIB1_EGT1_KSR1_MULT4(OPL3); + update_KSL2_TL6(OPL3); + update_AR4_DR4(OPL3); + update_SL4_RR4(OPL3); + update_5_WS3(OPL3); +} + +EnvelopeGenerator::EnvelopeGenerator() { + stage = OFF; + actualAttackRate = actualDecayRate = actualReleaseRate = 0; + xAttackIncrement = xMinimumInAttack = 0; + dBdecayIncrement = 0; + dBreleaseIncrement = 0; + attenuation = totalLevel = sustainLevel = 0; + x = dBtoX(-96); + envelope = -96; +} + +void EnvelopeGenerator::setActualSustainLevel(int sl) { + // If all SL bits are 1, sustain level is set to -93 dB: + if(sl == 0x0F) { + sustainLevel = -93; + return; + } + // The datasheet states that the SL formula is + // sustainLevel = -24*d7 -12*d6 -6*d5 -3*d4, + // translated as: + sustainLevel = -3*sl; +} + +void EnvelopeGenerator::setTotalLevel(int tl) { + // The datasheet states that the TL formula is + // TL = -(24*d5 + 12*d4 + 6*d3 + 3*d2 + 1.5*d1 + 0.75*d0), + // translated as: + totalLevel = tl*-0.75; +} + +void EnvelopeGenerator::setAtennuation(int f_number, int block, int ksl) { + int hi4bits = (f_number>>6)&0x0F; + switch(ksl) { + case 0: + attenuation = 0; + break; + case 1: + // ~3 dB/Octave + attenuation = OperatorDataStruct::ksl3dBtable[hi4bits][block]; + break; + case 2: + // ~1.5 dB/Octave + attenuation = OperatorDataStruct::ksl3dBtable[hi4bits][block]/2; + break; + case 3: + // ~6 dB/Octave + attenuation = OperatorDataStruct::ksl3dBtable[hi4bits][block]*2; + } +} + +void EnvelopeGenerator::setActualAttackRate(int attackRate, int ksr, int keyScaleNumber) { + // According to the YMF278B manual's OPL3 section, the attack curve is exponential, + // with a dynamic range from -96 dB to 0 dB and a resolution of 0.1875 dB + // per level. + // + // This method sets an attack increment and attack minimum value + // that creates a exponential dB curve with 'period0to100' seconds in length + // and 'period10to90' seconds between 10% and 90% of the curve total level. + actualAttackRate = calculateActualRate(attackRate, ksr, keyScaleNumber); + double period0to100inSeconds = EnvelopeGeneratorData::attackTimeValuesTable[actualAttackRate][0]/1000.0; + int period0to100inSamples = (int)(period0to100inSeconds*OPL_SAMPLE_RATE); + double period10to90inSeconds = EnvelopeGeneratorData::attackTimeValuesTable[actualAttackRate][1]/1000.0; + int period10to90inSamples = (int)(period10to90inSeconds*OPL_SAMPLE_RATE); + // The x increment is dictated by the period between 10% and 90%: + xAttackIncrement = OPL3DataStruct::calculateIncrement(percentageToX(0.1), percentageToX(0.9), period10to90inSeconds); + // Discover how many samples are still from the top. + // It cannot reach 0 dB, since x is a logarithmic parameter and would be + // negative infinity. So we will use -0.1875 dB as the resolution + // maximum. + // + // percentageToX(0.9) + samplesToTheTop*xAttackIncrement = dBToX(-0.1875); -> + // samplesToTheTop = (dBtoX(-0.1875) - percentageToX(0.9)) / xAttackIncrement); -> + // period10to100InSamples = period10to90InSamples + samplesToTheTop; -> + int period10to100inSamples = (int) (period10to90inSamples + (dBtoX(-0.1875) - percentageToX(0.9)) / xAttackIncrement); + // Discover the minimum x that, through the attackIncrement value, keeps + // the 10%-90% period, and reaches 0 dB at the total period: + xMinimumInAttack = percentageToX(0.1) - (period0to100inSamples-period10to100inSamples)*xAttackIncrement; +} + + +void EnvelopeGenerator::setActualDecayRate(int decayRate, int ksr, int keyScaleNumber) { + actualDecayRate = calculateActualRate(decayRate, ksr, keyScaleNumber); + double period10to90inSeconds = EnvelopeGeneratorData::decayAndReleaseTimeValuesTable[actualDecayRate][1]/1000.0; + // Differently from the attack curve, the decay/release curve is linear. + // The dB increment is dictated by the period between 10% and 90%: + dBdecayIncrement = OPL3DataStruct::calculateIncrement(percentageToDB(0.1), percentageToDB(0.9), period10to90inSeconds); +} + +void EnvelopeGenerator::setActualReleaseRate(int releaseRate, int ksr, int keyScaleNumber) { + actualReleaseRate = calculateActualRate(releaseRate, ksr, keyScaleNumber); + double period10to90inSeconds = EnvelopeGeneratorData::decayAndReleaseTimeValuesTable[actualReleaseRate][1]/1000.0; + dBreleaseIncrement = OPL3DataStruct::calculateIncrement(percentageToDB(0.1), percentageToDB(0.9), period10to90inSeconds); +} + +int EnvelopeGenerator::calculateActualRate(int rate, int ksr, int keyScaleNumber) { + int rof = EnvelopeGeneratorData::rateOffset[ksr][keyScaleNumber]; + int actualRate = rate*4 + rof; + // If, as an example at the maximum, rate is 15 and the rate offset is 15, + // the value would + // be 75, but the maximum allowed is 63: + if(actualRate > 63) actualRate = 63; + return actualRate; +} + +double EnvelopeGenerator::getEnvelope(OPL3 *OPL3, int egt, int am) { + // The datasheets attenuation values + // must be halved to match the real OPL3 output. + double envelopeSustainLevel = sustainLevel / 2; + double envelopeTremolo = + OPL3::OPL3Data->tremoloTable[OPL3->dam][OPL3->tremoloIndex] / 2; + double envelopeAttenuation = attenuation / 2; + double envelopeTotalLevel = totalLevel / 2; + + double envelopeMinimum = -96; + double envelopeResolution = 0.1875; + + double outputEnvelope; + // + // Envelope Generation + // + switch(stage) { + case ATTACK: + // Since the attack is exponential, it will never reach 0 dB, so + // we´ll work with the next to maximum in the envelope resolution. + if(envelope<-envelopeResolution && xAttackIncrement != -EnvelopeGeneratorData::MUGEN) { + // The attack is exponential. +#if 0 + envelope = -pow(2.0,x); +#else + int index = (int)floor((x - ATTACK_MIN) / ATTACK_RES); + if (index < 0) + envelope = OPL3::OperatorData->attackTable[0]; + else if (index >= ATTACK_TABLE_SIZE) + envelope = OPL3::OperatorData->attackTable[ATTACK_TABLE_SIZE-1]; + else + envelope = OPL3::OperatorData->attackTable[index]; +#endif + x += xAttackIncrement; + break; + } + else { + // It is needed here to explicitly set envelope = 0, since + // only the attack can have a period of + // 0 seconds and produce an infinity envelope increment. + envelope = 0; + stage = DECAY; + } + // libADLMIDI: + // fall through + case DECAY: + // The decay and release are linear. + if(envelope>envelopeSustainLevel) { + envelope -= dBdecayIncrement; + break; + } + else + stage = SUSTAIN; + // libADLMIDI: + // fall through + case SUSTAIN: + // The Sustain stage is mantained all the time of the Key ON, + // even if we are in non-sustaining mode. + // This is necessary because, if the key is still pressed, we can + // change back and forth the state of EGT, and it will release and + // hold again accordingly. + if(egt==1) break; + else { + if(envelope > envelopeMinimum) + envelope -= dBreleaseIncrement; + else stage = OFF; + } + break; + case RELEASE: + // If we have Key OFF, only here we are in the Release stage. + // Now, we can turn EGT back and forth and it will have no effect,i.e., + // it will release inexorably to the Off stage. + if(envelope > envelopeMinimum) + envelope -= dBreleaseIncrement; + else stage = OFF; + case OFF: + break; + } + + // Ongoing original envelope + outputEnvelope = envelope; + + //Tremolo + if(am == 1) outputEnvelope += envelopeTremolo; + + //Attenuation + outputEnvelope += envelopeAttenuation; + + //Total Level + outputEnvelope += envelopeTotalLevel; + + return outputEnvelope; +} + +void EnvelopeGenerator::keyOn() { + // If we are taking it in the middle of a previous envelope, + // start to rise from the current level: + // envelope = - (2 ^ x); -> + // 2 ^ x = -envelope -> + // x = log2(-envelope); -> + double xCurrent = OperatorDataStruct::log2(-envelope); + x = xCurrent < xMinimumInAttack ? xCurrent : xMinimumInAttack; + stage = ATTACK; +} + +void EnvelopeGenerator::keyOff() { + if(stage != OFF) stage = RELEASE; +} + +double EnvelopeGenerator::dBtoX(double dB) { + return OperatorDataStruct::log2(-dB); +} + +double EnvelopeGenerator::percentageToDB(double percentage) { + return log10(percentage) * 10.0; +} + +double EnvelopeGenerator::percentageToX(double percentage) { + return dBtoX(percentageToDB(percentage)); +} + +PhaseGenerator::PhaseGenerator() { + phase = phaseIncrement = 0; +} + +void PhaseGenerator::setFrequency(int f_number, int block, int mult) { + // This frequency formula is derived from the following equation: + // f_number = baseFrequency * pow(2,19) / OPL_SAMPLE_RATE / pow(2,block-1); + double baseFrequency = + f_number * pow(2.0, block-1) * OPL_SAMPLE_RATE / pow(2.0,19); + double operatorFrequency = baseFrequency*OperatorDataStruct::multTable[mult]; + + // phase goes from 0 to 1 at + // period = (1/frequency) seconds -> + // Samples in each period is (1/frequency)*OPL_SAMPLE_RATE = + // = OPL_SAMPLE_RATE/frequency -> + // So the increment in each sample, to go from 0 to 1, is: + // increment = (1-0) / samples in the period -> + // increment = 1 / (OPL_SAMPLE_RATE/operatorFrequency) -> + phaseIncrement = operatorFrequency/OPL_SAMPLE_RATE; +} + +double PhaseGenerator::getPhase(OPL3 *OPL3, int vib) { + if(vib==1) + // phaseIncrement = (operatorFrequency * vibrato) / OPL_SAMPLE_RATE + phase += phaseIncrement*OPL3::OPL3Data->vibratoTable[OPL3->dvb][OPL3->vibratoIndex]; + else + // phaseIncrement = operatorFrequency / OPL_SAMPLE_RATE + phase += phaseIncrement; + // Originally clamped phase to [0,1), but that's not needed + return phase; +} + +void PhaseGenerator::keyOn() { + phase = 0; +} + +double RhythmChannel::getChannelOutput(OPL3 *OPL3) { + double channelOutput = 0, op1Output = 0, op2Output = 0; + + // Note that, different from the common channel, + // we do not check to see if the Operator's envelopes are Off. + // Instead, we always do the calculations, + // to update the publicly available phase. + op1Output = op1->getOperatorOutput(OPL3, Operator::noModulator); + op2Output = op2->getOperatorOutput(OPL3, Operator::noModulator); + channelOutput = (op1Output + op2Output) / 2; + + return channelOutput; +} + +TopCymbalOperator::TopCymbalOperator(int baseAddress) +: Operator(baseAddress) +{ } + +TopCymbalOperator::TopCymbalOperator() +: Operator(topCymbalOperatorBaseAddress) +{ } + +double TopCymbalOperator::getOperatorOutput(OPL3 *OPL3, double modulator) { + double highHatOperatorPhase = + OPL3->highHatOperator.phase * OperatorDataStruct::multTable[OPL3->highHatOperator.mult]; + // The Top Cymbal operator uses its own phase together with the High Hat phase. + return getOperatorOutput(OPL3, modulator, highHatOperatorPhase); +} + +// This method is used here with the HighHatOperator phase +// as the externalPhase. +// Conversely, this method is also used through inheritance by the HighHatOperator, +// now with the TopCymbalOperator phase as the externalPhase. +double TopCymbalOperator::getOperatorOutput(OPL3 *OPL3, double modulator, double externalPhase) { + (void)modulator; + + double envelopeInDB = envelopeGenerator.getEnvelope(OPL3, egt, am); + envelope = EnvelopeFromDB(envelopeInDB); + + phase = phaseGenerator.getPhase(OPL3, vib); + + int waveIndex = ws & ((OPL3->_new<<2) + 3); + double *waveform = OPL3::OperatorData->waveforms[waveIndex]; + + // Empirically tested multiplied phase for the Top Cymbal: + double carrierPhase = 8 * phase; + double modulatorPhase = externalPhase; + double modulatorOutput = getOutput(Operator::noModulator, modulatorPhase, waveform); + double carrierOutput = getOutput(modulatorOutput, carrierPhase, waveform); + + int cycles = 4; + double chopped = (carrierPhase * cycles) /* %cycles */; + chopped = chopped - floor(chopped / cycles) * cycles; + if( chopped > 0.1) carrierOutput = 0; + + return carrierOutput*2; +} + +HighHatOperator::HighHatOperator() +: TopCymbalOperator(highHatOperatorBaseAddress) +{ } + +double HighHatOperator::getOperatorOutput(OPL3 *OPL3, double modulator) { + double topCymbalOperatorPhase = + OPL3->topCymbalOperator.phase * OperatorDataStruct::multTable[OPL3->topCymbalOperator.mult]; + // The sound output from the High Hat resembles the one from + // Top Cymbal, so we use the parent method and modify its output + // accordingly afterwards. + double operatorOutput = TopCymbalOperator::getOperatorOutput(OPL3, modulator, topCymbalOperatorPhase); + if(operatorOutput == 0) operatorOutput = pr_opl3.GenRand_Real1()*envelope; + return operatorOutput; +} + +SnareDrumOperator::SnareDrumOperator() +: Operator(snareDrumOperatorBaseAddress) +{ } + +double SnareDrumOperator::getOperatorOutput(OPL3 *OPL3, double modulator) { + if(envelopeGenerator.stage == EnvelopeGenerator::OFF) return 0; + + double envelopeInDB = envelopeGenerator.getEnvelope(OPL3, egt, am); + envelope = EnvelopeFromDB(envelopeInDB); + + // If it is in OPL2 mode, use first four waveforms only: + int waveIndex = ws & ((OPL3->_new<<2) + 3); + double *waveform = OPL3::OperatorData->waveforms[waveIndex]; + + phase = OPL3->highHatOperator.phase * 2; + + double operatorOutput = getOutput(modulator, phase, waveform); + + double noise = pr_opl3.GenRand_Real1() * envelope; + + if(operatorOutput/envelope != 1 && operatorOutput/envelope != -1) { + if(operatorOutput > 0) operatorOutput = noise; + else if(operatorOutput < 0) operatorOutput = -noise; + else operatorOutput = 0; + } + + return operatorOutput*2; +} + +BassDrumChannel::BassDrumChannel(double startvol) +: Channel2op(bassDrumChannelBaseAddress, startvol, &my_op1, &my_op2), + my_op1(op1BaseAddress), my_op2(op2BaseAddress) +{ } + +double BassDrumChannel::getChannelOutput(OPL3 *OPL3) { + // Bass Drum ignores first operator, when it is in series. + if(cnt == 1) op1->ar=0; + return Channel2op::getChannelOutput(OPL3); +} + +void OPL3DataStruct::loadVibratoTable() { + + // According to the YMF262 datasheet, the OPL3 vibrato repetition rate is 6.1 Hz. + // According to the YMF278B manual, it is 6.0 Hz. + // The information that the vibrato table has 8 levels standing 1024 samples each + // was taken from the emulator by Jarek Burczynski and Tatsuyuki Satoh, + // with a frequency of 6,06689453125 Hz, what makes sense with the difference + // in the information on the datasheets. + + const double semitone = pow(2.0,1/12.0); + // A cent is 1/100 of a semitone: + const double cent = pow(semitone, 1/100.0); + + // When dvb=0, the depth is 7 cents, when it is 1, the depth is 14 cents. + const double DVB0 = pow(cent,7.0); + const double DVB1 = pow(cent,14.0); + int i; + for(i = 0; i<1024; i++) + vibratoTable[0][i] = vibratoTable[1][i] = 1; + for(;i<2048; i++) { + vibratoTable[0][i] = sqrt(DVB0); + vibratoTable[1][i] = sqrt(DVB1); + } + for(;i<3072; i++) { + vibratoTable[0][i] = DVB0; + vibratoTable[1][i] = DVB1; + } + for(;i<4096; i++) { + vibratoTable[0][i] = sqrt(DVB0); + vibratoTable[1][i] = sqrt(DVB1); + } + for(; i<5120; i++) + vibratoTable[0][i] = vibratoTable[1][i] = 1; + for(;i<6144; i++) { + vibratoTable[0][i] = 1/sqrt(DVB0); + vibratoTable[1][i] = 1/sqrt(DVB1); + } + for(;i<7168; i++) { + vibratoTable[0][i] = 1/DVB0; + vibratoTable[1][i] = 1/DVB1; + } + for(;i<8192; i++) { + vibratoTable[0][i] = 1/sqrt(DVB0); + vibratoTable[1][i] = 1/sqrt(DVB1); + } + +} + +void OPL3DataStruct::loadTremoloTable() +{ + // The tremolo depth is -1 dB when DAM = 0, and -4.8 dB when DAM = 1. + static const double tremoloDepth[] = {-1, -4.8}; + + // According to the YMF278B manual's OPL3 section graph, + // the tremolo waveform is not + // \ / a sine wave, but a single triangle waveform. + // \ / Thus, the period to achieve the tremolo depth is T/2, and + // \ / the increment in each T/2 section uses a frequency of 2*f. + // \/ Tremolo varies from 0 dB to depth, to 0 dB again, at frequency*2: + const double tremoloIncrement[] = { + calculateIncrement(tremoloDepth[0],0,1/(2*tremoloFrequency)), + calculateIncrement(tremoloDepth[1],0,1/(2*tremoloFrequency)) + }; + + int tremoloTableLength = (int)(OPL_SAMPLE_RATE/tremoloFrequency); + + // This is undocumented. The tremolo starts at the maximum attenuation, + // instead of at 0 dB: + tremoloTable[0][0] = tremoloDepth[0]; + tremoloTable[1][0] = tremoloDepth[1]; + int counter = 0; + // The first half of the triangle waveform: + while(tremoloTable[0][counter]<0) { + counter++; + tremoloTable[0][counter] = tremoloTable[0][counter-1] + tremoloIncrement[0]; + tremoloTable[1][counter] = tremoloTable[1][counter-1] + tremoloIncrement[1]; + } + // The second half of the triangle waveform: + while(tremoloTable[0][counter]>tremoloDepth[0] && counter> 8, reg & 0xFF, v); +} + +void OPL3::SetPanning(int c, float left, float right) +{ + if (FullPan) + { + Channel *channel; + + if (c < 9) + { + channel = channels[0][c]; + } + else + { + channel = channels[1][c - 9]; + } + channel->leftPan = left; + channel->rightPan = right; + } +} + +} // JavaOPL diff --git a/thirdparty/adlmidi/chips/java_opl3.cpp b/thirdparty/adlmidi/chips/java_opl3.cpp new file mode 100644 index 0000000..ec8c6c7 --- /dev/null +++ b/thirdparty/adlmidi/chips/java_opl3.cpp @@ -0,0 +1,112 @@ +/* + * Interfaces over Yamaha OPL3 (YMF262) chip emulators + * + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "java_opl3.h" +#include "java/JavaOPL3.hpp" + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif +#ifndef M_SQRT1_2 +#define M_SQRT1_2 0.70710678118654752440 +#endif + +JavaOPL3::JavaOPL3() : + OPLChipBaseBufferedT(), + m_chip(new ADL_JavaOPL3::OPL3(true)) +{ + reset(); +} + +JavaOPL3::~JavaOPL3() +{ + ADL_JavaOPL3::OPL3 *chip_r = reinterpret_cast(m_chip); + delete chip_r; +} + +void JavaOPL3::setRate(uint32_t rate) +{ + OPLChipBaseBufferedT::setRate(rate); + ADL_JavaOPL3::OPL3 *chip_r = reinterpret_cast(m_chip); + chip_r->Reset(); + + float pan = sinf((float)M_SQRT1_2); + for (unsigned channel = 0; channel < 18; ++channel) + chip_r->SetPanning(channel, pan, pan); +} + +void JavaOPL3::reset() +{ + OPLChipBaseBufferedT::reset(); + ADL_JavaOPL3::OPL3 *chip_r = reinterpret_cast(m_chip); + chip_r->Reset(); +} + +void JavaOPL3::writeReg(uint16_t addr, uint8_t data) +{ + ADL_JavaOPL3::OPL3 *chip_r = reinterpret_cast(m_chip); + chip_r->WriteReg(addr, data); +} + +void JavaOPL3::writePan(uint16_t addr, uint8_t data) +{ + ADL_JavaOPL3::OPL3 *chip_r = reinterpret_cast(m_chip); + + unsigned high = (addr >> 8) & 0x01; + unsigned regm = addr & 0xff; + unsigned channel = 9 * high + (regm & 0x0f); + + float phase = (data == 63 || data == 64) ? 63.5f : (float)data; + phase *= (float)(M_PI / 2 / 127); + chip_r->SetPanning(channel, cosf(phase), sinf(phase)); +} + +void JavaOPL3::nativeGenerateN(int16_t *output, size_t frames) +{ + ADL_JavaOPL3::OPL3 *chip_r = reinterpret_cast(m_chip); + + enum { maxframes = 256 }; + + float buf[2 * maxframes]; + while(frames > 0) + { + memset(buf, 0, sizeof(buf)); + + size_t curframes = (frames < (size_t)maxframes) ? frames : (size_t)maxframes; + chip_r->Update(buf, (int)curframes); + + size_t cursamples = 2 * curframes; + for(size_t i = 0; i < cursamples; ++i) + { + int32_t sample = (int32_t)lround(4096 * buf[i]); + sample = (sample > -32768) ? sample : -32768; + sample = (sample < +32767) ? sample : +32767; + output[i] = (int16_t)sample; + } + + output += cursamples; + frames -= curframes; + } +} + +const char *JavaOPL3::emulatorName() +{ + return "Java 1.0.6 OPL3"; +} diff --git a/thirdparty/adlmidi/chips/java_opl3.h b/thirdparty/adlmidi/chips/java_opl3.h new file mode 100644 index 0000000..edadd88 --- /dev/null +++ b/thirdparty/adlmidi/chips/java_opl3.h @@ -0,0 +1,44 @@ +/* + * Interfaces over Yamaha OPL3 (YMF262) chip emulators + * + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef JAVA_OPL3_H +#define JAVA_OPL3_H + +#include "opl_chip_base.h" + +class JavaOPL3 final : public OPLChipBaseBufferedT +{ + void *m_chip; +public: + JavaOPL3(); + ~JavaOPL3() override; + + bool canRunAtPcmRate() const override { return false; } + void setRate(uint32_t rate) override; + void reset() override; + void writeReg(uint16_t addr, uint8_t data) override; + void writePan(uint16_t addr, uint8_t data) override; + void nativePreGenerate() override {} + void nativePostGenerate() override {} + void nativeGenerateN(int16_t *output, size_t frames) override; + const char *emulatorName() override; +}; + +#endif // JAVA_OPL3_H diff --git a/thirdparty/adlmidi/chips/nuked/nukedopl3.c b/thirdparty/adlmidi/chips/nuked/nukedopl3.c index 267e67a..ef8291a 100644 --- a/thirdparty/adlmidi/chips/nuked/nukedopl3.c +++ b/thirdparty/adlmidi/chips/nuked/nukedopl3.c @@ -53,6 +53,117 @@ enum { }; +#if OPL_FAST_WAVEGEN +/* + * logsin table + */ + +static const Bit16u logsinrom[512] = { + 0x859, 0x6c3, 0x607, 0x58b, 0x52e, 0x4e4, 0x4a6, 0x471, + 0x443, 0x41a, 0x3f5, 0x3d3, 0x3b5, 0x398, 0x37e, 0x365, + 0x34e, 0x339, 0x324, 0x311, 0x2ff, 0x2ed, 0x2dc, 0x2cd, + 0x2bd, 0x2af, 0x2a0, 0x293, 0x286, 0x279, 0x26d, 0x261, + 0x256, 0x24b, 0x240, 0x236, 0x22c, 0x222, 0x218, 0x20f, + 0x206, 0x1fd, 0x1f5, 0x1ec, 0x1e4, 0x1dc, 0x1d4, 0x1cd, + 0x1c5, 0x1be, 0x1b7, 0x1b0, 0x1a9, 0x1a2, 0x19b, 0x195, + 0x18f, 0x188, 0x182, 0x17c, 0x177, 0x171, 0x16b, 0x166, + 0x160, 0x15b, 0x155, 0x150, 0x14b, 0x146, 0x141, 0x13c, + 0x137, 0x133, 0x12e, 0x129, 0x125, 0x121, 0x11c, 0x118, + 0x114, 0x10f, 0x10b, 0x107, 0x103, 0x0ff, 0x0fb, 0x0f8, + 0x0f4, 0x0f0, 0x0ec, 0x0e9, 0x0e5, 0x0e2, 0x0de, 0x0db, + 0x0d7, 0x0d4, 0x0d1, 0x0cd, 0x0ca, 0x0c7, 0x0c4, 0x0c1, + 0x0be, 0x0bb, 0x0b8, 0x0b5, 0x0b2, 0x0af, 0x0ac, 0x0a9, + 0x0a7, 0x0a4, 0x0a1, 0x09f, 0x09c, 0x099, 0x097, 0x094, + 0x092, 0x08f, 0x08d, 0x08a, 0x088, 0x086, 0x083, 0x081, + 0x07f, 0x07d, 0x07a, 0x078, 0x076, 0x074, 0x072, 0x070, + 0x06e, 0x06c, 0x06a, 0x068, 0x066, 0x064, 0x062, 0x060, + 0x05e, 0x05c, 0x05b, 0x059, 0x057, 0x055, 0x053, 0x052, + 0x050, 0x04e, 0x04d, 0x04b, 0x04a, 0x048, 0x046, 0x045, + 0x043, 0x042, 0x040, 0x03f, 0x03e, 0x03c, 0x03b, 0x039, + 0x038, 0x037, 0x035, 0x034, 0x033, 0x031, 0x030, 0x02f, + 0x02e, 0x02d, 0x02b, 0x02a, 0x029, 0x028, 0x027, 0x026, + 0x025, 0x024, 0x023, 0x022, 0x021, 0x020, 0x01f, 0x01e, + 0x01d, 0x01c, 0x01b, 0x01a, 0x019, 0x018, 0x017, 0x017, + 0x016, 0x015, 0x014, 0x014, 0x013, 0x012, 0x011, 0x011, + 0x010, 0x00f, 0x00f, 0x00e, 0x00d, 0x00d, 0x00c, 0x00c, + 0x00b, 0x00a, 0x00a, 0x009, 0x009, 0x008, 0x008, 0x007, + 0x007, 0x007, 0x006, 0x006, 0x005, 0x005, 0x005, 0x004, + 0x004, 0x004, 0x003, 0x003, 0x003, 0x002, 0x002, 0x002, + 0x002, 0x001, 0x001, 0x001, 0x001, 0x001, 0x001, 0x001, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x001, 0x001, 0x001, 0x001, 0x001, 0x001, 0x001, 0x002, + 0x002, 0x002, 0x002, 0x003, 0x003, 0x003, 0x004, 0x004, + 0x004, 0x005, 0x005, 0x005, 0x006, 0x006, 0x007, 0x007, + 0x007, 0x008, 0x008, 0x009, 0x009, 0x00a, 0x00a, 0x00b, + 0x00c, 0x00c, 0x00d, 0x00d, 0x00e, 0x00f, 0x00f, 0x010, + 0x011, 0x011, 0x012, 0x013, 0x014, 0x014, 0x015, 0x016, + 0x017, 0x017, 0x018, 0x019, 0x01a, 0x01b, 0x01c, 0x01d, + 0x01e, 0x01f, 0x020, 0x021, 0x022, 0x023, 0x024, 0x025, + 0x026, 0x027, 0x028, 0x029, 0x02a, 0x02b, 0x02d, 0x02e, + 0x02f, 0x030, 0x031, 0x033, 0x034, 0x035, 0x037, 0x038, + 0x039, 0x03b, 0x03c, 0x03e, 0x03f, 0x040, 0x042, 0x043, + 0x045, 0x046, 0x048, 0x04a, 0x04b, 0x04d, 0x04e, 0x050, + 0x052, 0x053, 0x055, 0x057, 0x059, 0x05b, 0x05c, 0x05e, + 0x060, 0x062, 0x064, 0x066, 0x068, 0x06a, 0x06c, 0x06e, + 0x070, 0x072, 0x074, 0x076, 0x078, 0x07a, 0x07d, 0x07f, + 0x081, 0x083, 0x086, 0x088, 0x08a, 0x08d, 0x08f, 0x092, + 0x094, 0x097, 0x099, 0x09c, 0x09f, 0x0a1, 0x0a4, 0x0a7, + 0x0a9, 0x0ac, 0x0af, 0x0b2, 0x0b5, 0x0b8, 0x0bb, 0x0be, + 0x0c1, 0x0c4, 0x0c7, 0x0ca, 0x0cd, 0x0d1, 0x0d4, 0x0d7, + 0x0db, 0x0de, 0x0e2, 0x0e5, 0x0e9, 0x0ec, 0x0f0, 0x0f4, + 0x0f8, 0x0fb, 0x0ff, 0x103, 0x107, 0x10b, 0x10f, 0x114, + 0x118, 0x11c, 0x121, 0x125, 0x129, 0x12e, 0x133, 0x137, + 0x13c, 0x141, 0x146, 0x14b, 0x150, 0x155, 0x15b, 0x160, + 0x166, 0x16b, 0x171, 0x177, 0x17c, 0x182, 0x188, 0x18f, + 0x195, 0x19b, 0x1a2, 0x1a9, 0x1b0, 0x1b7, 0x1be, 0x1c5, + 0x1cd, 0x1d4, 0x1dc, 0x1e4, 0x1ec, 0x1f5, 0x1fd, 0x206, + 0x20f, 0x218, 0x222, 0x22c, 0x236, 0x240, 0x24b, 0x256, + 0x261, 0x26d, 0x279, 0x286, 0x293, 0x2a0, 0x2af, 0x2bd, + 0x2cd, 0x2dc, 0x2ed, 0x2ff, 0x311, 0x324, 0x339, 0x34e, + 0x365, 0x37e, 0x398, 0x3b5, 0x3d3, 0x3f5, 0x41a, 0x443, + 0x471, 0x4a6, 0x4e4, 0x52e, 0x58b, 0x607, 0x6c3, 0x859 +}; + +/* + * exp table + */ + +static const Bit16u exprom[256] = { + 0xff4, 0xfea, 0xfde, 0xfd4, 0xfc8, 0xfbe, 0xfb4, 0xfa8, + 0xf9e, 0xf92, 0xf88, 0xf7e, 0xf72, 0xf68, 0xf5c, 0xf52, + 0xf48, 0xf3e, 0xf32, 0xf28, 0xf1e, 0xf14, 0xf08, 0xefe, + 0xef4, 0xeea, 0xee0, 0xed4, 0xeca, 0xec0, 0xeb6, 0xeac, + 0xea2, 0xe98, 0xe8e, 0xe84, 0xe7a, 0xe70, 0xe66, 0xe5c, + 0xe52, 0xe48, 0xe3e, 0xe34, 0xe2a, 0xe20, 0xe16, 0xe0c, + 0xe04, 0xdfa, 0xdf0, 0xde6, 0xddc, 0xdd2, 0xdca, 0xdc0, + 0xdb6, 0xdac, 0xda4, 0xd9a, 0xd90, 0xd88, 0xd7e, 0xd74, + 0xd6a, 0xd62, 0xd58, 0xd50, 0xd46, 0xd3c, 0xd34, 0xd2a, + 0xd22, 0xd18, 0xd10, 0xd06, 0xcfe, 0xcf4, 0xcec, 0xce2, + 0xcda, 0xcd0, 0xcc8, 0xcbe, 0xcb6, 0xcae, 0xca4, 0xc9c, + 0xc92, 0xc8a, 0xc82, 0xc78, 0xc70, 0xc68, 0xc60, 0xc56, + 0xc4e, 0xc46, 0xc3c, 0xc34, 0xc2c, 0xc24, 0xc1c, 0xc12, + 0xc0a, 0xc02, 0xbfa, 0xbf2, 0xbea, 0xbe0, 0xbd8, 0xbd0, + 0xbc8, 0xbc0, 0xbb8, 0xbb0, 0xba8, 0xba0, 0xb98, 0xb90, + 0xb88, 0xb80, 0xb78, 0xb70, 0xb68, 0xb60, 0xb58, 0xb50, + 0xb48, 0xb40, 0xb38, 0xb32, 0xb2a, 0xb22, 0xb1a, 0xb12, + 0xb0a, 0xb02, 0xafc, 0xaf4, 0xaec, 0xae4, 0xade, 0xad6, + 0xace, 0xac6, 0xac0, 0xab8, 0xab0, 0xaa8, 0xaa2, 0xa9a, + 0xa92, 0xa8c, 0xa84, 0xa7c, 0xa76, 0xa6e, 0xa68, 0xa60, + 0xa58, 0xa52, 0xa4a, 0xa44, 0xa3c, 0xa36, 0xa2e, 0xa28, + 0xa20, 0xa18, 0xa12, 0xa0c, 0xa04, 0x9fe, 0x9f6, 0x9f0, + 0x9e8, 0x9e2, 0x9da, 0x9d4, 0x9ce, 0x9c6, 0x9c0, 0x9b8, + 0x9b2, 0x9ac, 0x9a4, 0x99e, 0x998, 0x990, 0x98a, 0x984, + 0x97c, 0x976, 0x970, 0x96a, 0x962, 0x95c, 0x956, 0x950, + 0x948, 0x942, 0x93c, 0x936, 0x930, 0x928, 0x922, 0x91c, + 0x916, 0x910, 0x90a, 0x904, 0x8fc, 0x8f6, 0x8f0, 0x8ea, + 0x8e4, 0x8de, 0x8d8, 0x8d2, 0x8cc, 0x8c6, 0x8c0, 0x8ba, + 0x8b4, 0x8ae, 0x8a8, 0x8a2, 0x89c, 0x896, 0x890, 0x88a, + 0x884, 0x87e, 0x878, 0x872, 0x86c, 0x866, 0x860, 0x85a, + 0x854, 0x850, 0x84a, 0x844, 0x83e, 0x838, 0x832, 0x82c, + 0x828, 0x822, 0x81c, 0x816, 0x810, 0x80c, 0x806, 0x800 +}; +#else /* * logsin table */ @@ -130,6 +241,7 @@ static const Bit16u exprom[256] = { 0x42a, 0x428, 0x425, 0x422, 0x41f, 0x41c, 0x419, 0x416, 0x414, 0x411, 0x40e, 0x40b, 0x408, 0x406, 0x403, 0x400 }; +#endif /* * freq mult table multiplied by 2 @@ -207,8 +319,8 @@ static const Bit16u panlawtable[] = * Envelope generator */ +#if !OPL_FAST_WAVEGEN typedef Bit16s(*envelope_sinfunc)(Bit16u phase, Bit16u envelope); -typedef void(*envelope_genfunc)(opl3_slot *slott); static Bit16s OPL3_EnvelopeCalcExp(Bit32u level) { @@ -366,6 +478,7 @@ static const envelope_sinfunc envelope_sin[8] = { OPL3_EnvelopeCalcSin6, OPL3_EnvelopeCalcSin7 }; +#endif enum envelope_gen_num { @@ -401,6 +514,15 @@ static void OPL3_EnvelopeCalc(opl3_slot *slot) Bit8u reset = 0; slot->eg_out = slot->eg_rout + (slot->reg_tl << 2) + (slot->eg_ksl >> kslshift[slot->reg_ksl]) + *slot->trem; + +#if OPL_FAST_WAVEGEN + if (slot->eg_out > 0x1ff) + { + slot->eg_out = 0x1ff; + } + slot->eg_out <<= 3; +#endif + if (slot->key && slot->eg_gen == envelope_gen_num_release) { reset = 1; @@ -687,12 +809,92 @@ static void OPL3_SlotWriteE0(opl3_slot *slot, Bit8u data) { slot->reg_wf &= 0x03; } + +#if OPL_FAST_WAVEGEN + switch (slot->reg_wf) + { + case 1: + case 4: + case 5: + slot->maskzero = 0x200; + break; + case 3: + slot->maskzero = 0x100; + break; + default: + slot->maskzero = 0; + break; + } + + switch (slot->reg_wf) + { + case 4: + slot->signpos = (31-8); /* sigext of (phase & 0x100) */ + break; + case 0: + case 6: + case 7: + slot->signpos = (31-9); /* sigext of (phase & 0x200) */ + break; + default: + slot->signpos = (31-16); /* set "neg" to zero */ + break; + } + + switch (slot->reg_wf) + { + case 4: + case 5: + slot->phaseshift = 1; + break; + case 6: + slot->phaseshift = 16; /* set phase to zero and flag for non-sin wave */ + break; + case 7: + slot->phaseshift = 32; /* no shift (work by mod 32), but flag for non-sin wave */ + break; + default: + slot->phaseshift = 0; + break; + } +#endif } +#if OPL_FAST_WAVEGEN +static void OPL3_SlotGenerate(opl3_slot *slot) +{ + Bit16u phase = slot->pg_phase_out + *slot->mod; + Bit32u neg, level; + Bit8u phaseshift; + + /* Fast paths for mute segments */ + if (phase & slot->maskzero) + { + slot->out = 0; + return; + } + + neg = (Bit32s)((Bit32u)phase << slot->signpos) >> 31; + phaseshift = slot->phaseshift; + level = slot->eg_out; + + phase <<= phaseshift; + if (phaseshift <= 1) + { + level += logsinrom[phase & 0x1ff]; + } + else + { + level += ((phase ^ neg) & 0x3ff) << 3; + } + slot->out = exprom[level & 0xff] >> (level >> 8) ^ neg; +} +#else static void OPL3_SlotGenerate(opl3_slot *slot) { slot->out = envelope_sin[slot->reg_wf](slot->pg_phase_out + *slot->mod, slot->eg_out); } +#endif static void OPL3_SlotCalcFB(opl3_slot *slot) { @@ -1176,7 +1378,7 @@ void OPL3_Generate(opl3_chip *chip, Bit16s *buf) if (chip->eg_timerrem || chip->eg_state) { - if (chip->eg_timer == (uint64_t)0xfffffffffU) + if (chip->eg_timer == 0xfffffffffULL) { chip->eg_timer = 0; chip->eg_timerrem = 1; @@ -1231,10 +1433,17 @@ void OPL3_Reset(opl3_chip *chip, Bit32u samplerate) chip->slot[slotnum].chip = chip; chip->slot[slotnum].mod = &chip->zeromod; chip->slot[slotnum].eg_rout = 0x1ff; +#if OPL_FAST_WAVEGEN + chip->slot[slotnum].eg_out = 0x1ff << 3; +#else chip->slot[slotnum].eg_out = 0x1ff; +#endif chip->slot[slotnum].eg_gen = envelope_gen_num_release; chip->slot[slotnum].trem = (Bit8u*)&chip->zeromod; chip->slot[slotnum].slot_num = slotnum; +#if OPL_FAST_WAVEGEN + chip->slot[slotnum].signpos = (31-9); /* for wf=0 need use sigext of (phase & 0x200) */ +#endif } for (channum = 0; channum < 18; channum++) { @@ -1420,16 +1629,23 @@ void OPL3_GenerateStream(opl3_chip *chip, Bit16s *sndptr, Bit32u numsamples) } } +#define OPL3_MIN(A, B) (((A) > (B)) ? (B) : (A)) +#define OPL3_MAX(A, B) (((A) < (B)) ? (B) : (A)) +#define OPL3_CLAMP(V, MIN, MAX) OPL3_MAX(OPL3_MIN(V, MAX), MIN) + void OPL3_GenerateStreamMix(opl3_chip *chip, Bit16s *sndptr, Bit32u numsamples) { Bit32u i; Bit16s sample[2]; + Bit32s mix[2]; for(i = 0; i < numsamples; i++) { OPL3_GenerateResampled(chip, sample); - sndptr[0] += sample[0]; - sndptr[1] += sample[1]; + mix[0] = sndptr[0] + sample[0]; + mix[1] = sndptr[1] + sample[1]; + sndptr[0] = OPL3_CLAMP(mix[0], INT16_MIN, INT16_MAX); + sndptr[1] = OPL3_CLAMP(mix[1], INT16_MIN, INT16_MAX); sndptr += 2; } } diff --git a/thirdparty/adlmidi/chips/nuked/nukedopl3.h b/thirdparty/adlmidi/chips/nuked/nukedopl3.h index 268e8de..9849569 100644 --- a/thirdparty/adlmidi/chips/nuked/nukedopl3.h +++ b/thirdparty/adlmidi/chips/nuked/nukedopl3.h @@ -33,13 +33,16 @@ #define OPL_OPL3_H #include +#include #ifdef __cplusplus extern "C" { #endif + #define OPL_WRITEBUF_SIZE 1024 #define OPL_WRITEBUF_DELAY 2 +#define OPL_FAST_WAVEGEN 1 /* optimized waveform generation */ typedef uintptr_t Bitu; typedef intptr_t Bits; @@ -86,6 +89,12 @@ struct _opl3_slot { Bit32u pg_phase; Bit16u pg_phase_out; Bit8u slot_num; + +#if OPL_FAST_WAVEGEN + Bit16u maskzero; + Bit8u signpos; + Bit8u phaseshift; +#endif }; struct _opl3_channel { diff --git a/thirdparty/adlmidi/chips/nuked_opl3.cpp b/thirdparty/adlmidi/chips/nuked_opl3.cpp index bbf4a25..ad379eb 100644 --- a/thirdparty/adlmidi/chips/nuked_opl3.cpp +++ b/thirdparty/adlmidi/chips/nuked_opl3.cpp @@ -1,7 +1,7 @@ /* * Interfaces over Yamaha OPL3 (YMF262) chip emulators * - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/thirdparty/adlmidi/chips/nuked_opl3.h b/thirdparty/adlmidi/chips/nuked_opl3.h index 33baf54..d9c0e76 100644 --- a/thirdparty/adlmidi/chips/nuked_opl3.h +++ b/thirdparty/adlmidi/chips/nuked_opl3.h @@ -1,7 +1,7 @@ /* * Interfaces over Yamaha OPL3 (YMF262) chip emulators * - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/thirdparty/adlmidi/chips/nuked_opl3_v174.cpp b/thirdparty/adlmidi/chips/nuked_opl3_v174.cpp index 6bb06c2..a15e1ef 100644 --- a/thirdparty/adlmidi/chips/nuked_opl3_v174.cpp +++ b/thirdparty/adlmidi/chips/nuked_opl3_v174.cpp @@ -1,7 +1,7 @@ /* * Interfaces over Yamaha OPL3 (YMF262) chip emulators * - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/thirdparty/adlmidi/chips/nuked_opl3_v174.h b/thirdparty/adlmidi/chips/nuked_opl3_v174.h index 9eaeb19..bba7afd 100644 --- a/thirdparty/adlmidi/chips/nuked_opl3_v174.h +++ b/thirdparty/adlmidi/chips/nuked_opl3_v174.h @@ -1,7 +1,7 @@ /* * Interfaces over Yamaha OPL3 (YMF262) chip emulators * - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/thirdparty/adlmidi/chips/opal/LICENSE.txt b/thirdparty/adlmidi/chips/opal/LICENSE.txt new file mode 100644 index 0000000..2ee2f03 --- /dev/null +++ b/thirdparty/adlmidi/chips/opal/LICENSE.txt @@ -0,0 +1,19 @@ +A quote from a letter sent by Willy Reeve to Vitaly Novichkov +as a reply from a letter sent by Reality's (https://www.3eality.com/) +contact form +---------------------------------------------------------------- +All source code supplied with RAD is in the public domain. +---------------------------------------------------------------- + +================================================================ +The complete letter: +================================================================ +Hi, + +All source code supplied with RAD is in the public domain. +We'll clarify that in the documentation for the next release. + +Later... +SHAYDE +================================================================ + diff --git a/thirdparty/adlmidi/chips/opal/README.old b/thirdparty/adlmidi/chips/opal/README.old new file mode 100644 index 0000000..902dee5 --- /dev/null +++ b/thirdparty/adlmidi/chips/opal/README.old @@ -0,0 +1,9 @@ +Copy opal.cpp here to make this emulator available. +This is not distributed with the software while the license is undetermined. + +The opal.cpp file is part of REALITY ADLIB TRACKER V2. +SHA1: c034dd637887d81770cee92da309fc547ef5fe18 + +Configure the software with the option USE_OPAL_EMULATOR=ON. +To enable soft panning, it is needed to patch with the file `opal-pan.diff` provided. +for example: `patch -p0 -i opal-pan.diff` diff --git a/thirdparty/adlmidi/chips/opal/opal-pan.diff b/thirdparty/adlmidi/chips/opal/opal-pan.diff new file mode 100644 index 0000000..a00a9fc --- /dev/null +++ b/thirdparty/adlmidi/chips/opal/opal-pan.diff @@ -0,0 +1,131 @@ +--- opal.cpp.orig 2019-02-23 20:32:00.477658789 +0100 ++++ opal.cpp 2019-02-23 20:46:36.745113958 +0100 +@@ -13,6 +13,7 @@ + - Percussion mode + + */ ++#define OPAL_HAVE_SOFT_PANNING 1 /* libADLMIDI */ + + + +@@ -133,6 +134,7 @@ + void SetOctave(uint16_t oct); + void SetLeftEnable(bool on); + void SetRightEnable(bool on); ++ void SetPan(uint8_t pan); + void SetFeedback(uint16_t val); + void SetModulationType(uint16_t type); + +@@ -158,6 +160,7 @@ + Channel * ChannelPair; + bool Enable; + bool LeftEnable, RightEnable; ++ uint16_t LeftPan, RightPan; + }; + + public: +@@ -166,6 +169,7 @@ + + void SetSampleRate(int sample_rate); + void Port(uint16_t reg_num, uint8_t val); ++ void Pan(uint16_t reg_num, uint8_t pan); + void Sample(int16_t *left, int16_t *right); + + protected: +@@ -191,6 +195,7 @@ + static const uint16_t RateTables[4][8]; + static const uint16_t ExpTable[256]; + static const uint16_t LogSinTable[256]; ++ static const uint16_t PanLawTable[128]; + }; + //-------------------------------------------------------------------------------------------------- + const uint16_t Opal::RateTables[4][8] = { +@@ -237,6 +242,28 @@ + 7, 7, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, + }; ++//-------------------------------------------------------------------------------------------------- ++const uint16_t Opal::PanLawTable[128] = ++{ ++ 65535, 65529, 65514, 65489, 65454, 65409, 65354, 65289, ++ 65214, 65129, 65034, 64929, 64814, 64689, 64554, 64410, ++ 64255, 64091, 63917, 63733, 63540, 63336, 63123, 62901, ++ 62668, 62426, 62175, 61914, 61644, 61364, 61075, 60776, ++ 60468, 60151, 59825, 59489, 59145, 58791, 58428, 58057, ++ 57676, 57287, 56889, 56482, 56067, 55643, 55211, 54770, ++ 54320, 53863, 53397, 52923, 52441, 51951, 51453, 50947, ++ 50433, 49912, 49383, 48846, 48302, 47750, 47191, ++ 46340, // Center left ++ 46340, // Center right ++ 45472, 44885, 44291, 43690, 43083, 42469, 41848, 41221, ++ 40588, 39948, 39303, 38651, 37994, 37330, 36661, 35986, ++ 35306, 34621, 33930, 33234, 32533, 31827, 31116, 30400, ++ 29680, 28955, 28225, 27492, 26754, 26012, 25266, 24516, ++ 23762, 23005, 22244, 21480, 20713, 19942, 19169, 18392, ++ 17613, 16831, 16046, 15259, 14469, 13678, 12884, 12088, ++ 11291, 10492, 9691, 8888, 8085, 7280, 6473, 5666, ++ 4858, 4050, 3240, 2431, 1620, 810, 0 ++}; + + + +@@ -342,6 +369,10 @@ + for (int i = 0; i < NumOperators; i++) + Op[i].ComputeRates(); + ++ // Initialise channel panning at center. ++ for (int i = 0; i < NumChannels; i++) ++ Chan[i].SetPan(64); ++ + SetSampleRate(sample_rate); + } + +@@ -533,6 +564,19 @@ + + + //================================================================================================== ++// Set panning on the channel designated by the register number. ++// This is extended functionality. ++//================================================================================================== ++void Opal::Pan(uint16_t reg_num, uint8_t pan) ++{ ++ uint8_t high = (reg_num >> 8) & 1; ++ uint8_t regm = reg_num & 0xff; ++ Chan[9 * high + (regm & 0x0f)].SetPan(pan); ++} ++ ++ ++ ++//================================================================================================== + // Generate sample. Every time you call this you will get two signed 16-bit samples (one for each + // stereo channel) which will sound correct when played back at the sample rate given when the + // class was constructed. +@@ -727,6 +771,9 @@ + + left = LeftEnable ? out : 0; + right = RightEnable ? out : 0; ++ ++ left = left * LeftPan / 65536; ++ right = right * RightPan / 65536; + } + + +@@ -793,6 +840,18 @@ + } + + ++ ++//================================================================================================== ++// Pan the channel to the position given. ++//================================================================================================== ++void Opal::Channel::SetPan(uint8_t pan) ++{ ++ pan &= 127; ++ LeftPan = PanLawTable[pan]; ++ RightPan = PanLawTable[127 - pan]; ++} ++ ++ + + //================================================================================================== + // Set the channel feedback amount. diff --git a/thirdparty/adlmidi/chips/opal/opal.hpp b/thirdparty/adlmidi/chips/opal/opal.hpp new file mode 100644 index 0000000..e8110a5 --- /dev/null +++ b/thirdparty/adlmidi/chips/opal/opal.hpp @@ -0,0 +1,1398 @@ +/* + + The Opal OPL3 emulator. + + Note: this is not a complete emulator, just enough for Reality Adlib Tracker tunes. + + Missing features compared to a real OPL3: + + - Timers/interrupts + - OPL3 enable bit (it defaults to always on) + - CSW mode + - Test register + - Percussion mode + +*/ +#define OPAL_HAVE_SOFT_PANNING 1 /* libADLMIDI */ + + + +#include + + + +//================================================================================================== +// Opal class. +//================================================================================================== +class Opal { + + class Channel; + + // Various constants + enum { + OPL3SampleRate = 49716, + NumChannels = 18, + NumOperators = 36, + + EnvOff = -1, + EnvAtt, + EnvDec, + EnvSus, + EnvRel + }; + + // A single FM operator + class Operator { + + public: + Operator(); + void SetMaster(Opal *opal) { Master = opal; } + void SetChannel(Channel *chan) { Chan = chan; } + + int16_t Output(uint16_t keyscalenum, uint32_t phase_step, int16_t vibrato, int16_t mod = 0, int16_t fbshift = 0); + + void SetKeyOn(bool on); + void SetTremoloEnable(bool on); + void SetVibratoEnable(bool on); + void SetSustainMode(bool on); + void SetEnvelopeScaling(bool on); + void SetFrequencyMultiplier(uint16_t scale); + void SetKeyScale(uint16_t scale); + void SetOutputLevel(uint16_t level); + void SetAttackRate(uint16_t rate); + void SetDecayRate(uint16_t rate); + void SetSustainLevel(uint16_t level); + void SetReleaseRate(uint16_t rate); + void SetWaveform(uint16_t wave); + + void ComputeRates(); + void ComputeKeyScaleLevel(); + + protected: + Opal * Master; // Master object + Channel * Chan; // Owning channel + uint32_t Phase; // The current offset in the selected waveform + uint16_t Waveform; // The waveform id this operator is using + uint16_t FreqMultTimes2; // Frequency multiplier * 2 + int EnvelopeStage; // Which stage the envelope is at (see Env* enums above) + int16_t EnvelopeLevel; // 0 - $1FF, 0 being the loudest + uint16_t OutputLevel; // 0 - $FF + uint16_t AttackRate; + uint16_t DecayRate; + uint16_t SustainLevel; + uint16_t ReleaseRate; + uint16_t AttackShift; + uint16_t AttackMask; + uint16_t AttackAdd; + const uint16_t *AttackTab; + uint16_t DecayShift; + uint16_t DecayMask; + uint16_t DecayAdd; + const uint16_t *DecayTab; + uint16_t ReleaseShift; + uint16_t ReleaseMask; + uint16_t ReleaseAdd; + const uint16_t *ReleaseTab; + uint16_t KeyScaleShift; + uint16_t KeyScaleLevel; + int16_t Out[2]; + bool KeyOn; + bool KeyScaleRate; // Affects envelope rate scaling + bool SustainMode; // Whether to sustain during the sustain phase, or release instead + bool TremoloEnable; + bool VibratoEnable; + }; + + // A single channel, which can contain two or more operators + class Channel { + + public: + Channel(); + void SetMaster(Opal *opal) { Master = opal; } + void SetOperators(Operator *a, Operator *b, Operator *c, Operator *d) { + Op[0] = a; + Op[1] = b; + Op[2] = c; + Op[3] = d; + if (a) + a->SetChannel(this); + if (b) + b->SetChannel(this); + if (c) + c->SetChannel(this); + if (d) + d->SetChannel(this); + } + + void Output(int16_t &left, int16_t &right); + void SetEnable(bool on) { Enable = on; } + void SetChannelPair(Channel *pair) { ChannelPair = pair; } + + void SetFrequencyLow(uint16_t freq); + void SetFrequencyHigh(uint16_t freq); + void SetKeyOn(bool on); + void SetOctave(uint16_t oct); + void SetLeftEnable(bool on); + void SetRightEnable(bool on); + void SetPan(uint8_t pan); + void SetFeedback(uint16_t val); + void SetModulationType(uint16_t type); + + uint16_t GetFreq() const { return Freq; } + uint16_t GetOctave() const { return Octave; } + uint16_t GetKeyScaleNumber() const { return KeyScaleNumber; } + uint16_t GetModulationType() const { return ModulationType; } + Channel * GetChannelPair() const { return ChannelPair; } /* libADLMIDI */ + + void ComputeKeyScaleNumber(); + + protected: + void ComputePhaseStep(); + + Operator * Op[4]; + + Opal * Master; // Master object + uint16_t Freq; // Frequency; actually it's a phase stepping value + uint16_t Octave; // Also known as "block" in Yamaha parlance + uint32_t PhaseStep; + uint16_t KeyScaleNumber; + uint16_t FeedbackShift; + uint16_t ModulationType; + Channel * ChannelPair; + bool Enable; + bool LeftEnable, RightEnable; + uint16_t LeftPan, RightPan; + }; + + public: + Opal(int sample_rate); + ~Opal(); + + void SetSampleRate(int sample_rate); + void Port(uint16_t reg_num, uint8_t val); + void Pan(uint16_t reg_num, uint8_t pan); + void Sample(int16_t *left, int16_t *right); + + protected: + void Init(int sample_rate); + void Output(int16_t &left, int16_t &right); + + int32_t SampleRate; + int32_t SampleAccum; + int16_t LastOutput[2], CurrOutput[2]; + Channel Chan[NumChannels]; + Operator Op[NumOperators]; +// uint16_t ExpTable[256]; +// uint16_t LogSinTable[256]; + uint16_t Clock; + uint16_t TremoloClock; + uint16_t TremoloLevel; + uint16_t VibratoTick; + uint16_t VibratoClock; + bool NoteSel; + bool TremoloDepth; + bool VibratoDepth; + + static const uint16_t RateTables[4][8]; + static const uint16_t ExpTable[256]; + static const uint16_t LogSinTable[256]; + static const uint16_t PanLawTable[128]; +}; +//-------------------------------------------------------------------------------------------------- +const uint16_t Opal::RateTables[4][8] = { + { 1, 0, 1, 0, 1, 0, 1, 0 }, + { 1, 0, 1, 0, 0, 0, 1, 0 }, + { 1, 0, 0, 0, 1, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 0, 0 }, +}; +//-------------------------------------------------------------------------------------------------- +const uint16_t Opal::ExpTable[0x100] = { + 1018, 1013, 1007, 1002, 996, 991, 986, 980, 975, 969, 964, 959, 953, 948, 942, 937, + 932, 927, 921, 916, 911, 906, 900, 895, 890, 885, 880, 874, 869, 864, 859, 854, + 849, 844, 839, 834, 829, 824, 819, 814, 809, 804, 799, 794, 789, 784, 779, 774, + 770, 765, 760, 755, 750, 745, 741, 736, 731, 726, 722, 717, 712, 708, 703, 698, + 693, 689, 684, 680, 675, 670, 666, 661, 657, 652, 648, 643, 639, 634, 630, 625, + 621, 616, 612, 607, 603, 599, 594, 590, 585, 581, 577, 572, 568, 564, 560, 555, + 551, 547, 542, 538, 534, 530, 526, 521, 517, 513, 509, 505, 501, 496, 492, 488, + 484, 480, 476, 472, 468, 464, 460, 456, 452, 448, 444, 440, 436, 432, 428, 424, + 420, 416, 412, 409, 405, 401, 397, 393, 389, 385, 382, 378, 374, 370, 367, 363, + 359, 355, 352, 348, 344, 340, 337, 333, 329, 326, 322, 318, 315, 311, 308, 304, + 300, 297, 293, 290, 286, 283, 279, 276, 272, 268, 265, 262, 258, 255, 251, 248, + 244, 241, 237, 234, 231, 227, 224, 220, 217, 214, 210, 207, 204, 200, 197, 194, + 190, 187, 184, 181, 177, 174, 171, 168, 164, 161, 158, 155, 152, 148, 145, 142, + 139, 136, 133, 130, 126, 123, 120, 117, 114, 111, 108, 105, 102, 99, 96, 93, + 90, 87, 84, 81, 78, 75, 72, 69, 66, 63, 60, 57, 54, 51, 48, 45, + 42, 40, 37, 34, 31, 28, 25, 22, 20, 17, 14, 11, 8, 6, 3, 0, +}; +//-------------------------------------------------------------------------------------------------- +const uint16_t Opal::LogSinTable[0x100] = { + 2137, 1731, 1543, 1419, 1326, 1252, 1190, 1137, 1091, 1050, 1013, 979, 949, 920, 894, 869, + 846, 825, 804, 785, 767, 749, 732, 717, 701, 687, 672, 659, 646, 633, 621, 609, + 598, 587, 576, 566, 556, 546, 536, 527, 518, 509, 501, 492, 484, 476, 468, 461, + 453, 446, 439, 432, 425, 418, 411, 405, 399, 392, 386, 380, 375, 369, 363, 358, + 352, 347, 341, 336, 331, 326, 321, 316, 311, 307, 302, 297, 293, 289, 284, 280, + 276, 271, 267, 263, 259, 255, 251, 248, 244, 240, 236, 233, 229, 226, 222, 219, + 215, 212, 209, 205, 202, 199, 196, 193, 190, 187, 184, 181, 178, 175, 172, 169, + 167, 164, 161, 159, 156, 153, 151, 148, 146, 143, 141, 138, 136, 134, 131, 129, + 127, 125, 122, 120, 118, 116, 114, 112, 110, 108, 106, 104, 102, 100, 98, 96, + 94, 92, 91, 89, 87, 85, 83, 82, 80, 78, 77, 75, 74, 72, 70, 69, + 67, 66, 64, 63, 62, 60, 59, 57, 56, 55, 53, 52, 51, 49, 48, 47, + 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, + 29, 28, 27, 26, 25, 24, 23, 23, 22, 21, 20, 20, 19, 18, 17, 17, + 16, 15, 15, 14, 13, 13, 12, 12, 11, 10, 10, 9, 9, 8, 8, 7, + 7, 7, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, +}; +//-------------------------------------------------------------------------------------------------- +const uint16_t Opal::PanLawTable[128] = +{ + 65535, 65529, 65514, 65489, 65454, 65409, 65354, 65289, + 65214, 65129, 65034, 64929, 64814, 64689, 64554, 64410, + 64255, 64091, 63917, 63733, 63540, 63336, 63123, 62901, + 62668, 62426, 62175, 61914, 61644, 61364, 61075, 60776, + 60468, 60151, 59825, 59489, 59145, 58791, 58428, 58057, + 57676, 57287, 56889, 56482, 56067, 55643, 55211, 54770, + 54320, 53863, 53397, 52923, 52441, 51951, 51453, 50947, + 50433, 49912, 49383, 48846, 48302, 47750, 47191, + 46340, // Center left + 46340, // Center right + 45472, 44885, 44291, 43690, 43083, 42469, 41848, 41221, + 40588, 39948, 39303, 38651, 37994, 37330, 36661, 35986, + 35306, 34621, 33930, 33234, 32533, 31827, 31116, 30400, + 29680, 28955, 28225, 27492, 26754, 26012, 25266, 24516, + 23762, 23005, 22244, 21480, 20713, 19942, 19169, 18392, + 17613, 16831, 16046, 15259, 14469, 13678, 12884, 12088, + 11291, 10492, 9691, 8888, 8085, 7280, 6473, 5666, + 4858, 4050, 3240, 2431, 1620, 810, 0 +}; + + + +//================================================================================================== +// This is the temporary code for generating the above tables. Maths and data from this nice +// reverse-engineering effort: +// +// https://docs.google.com/document/d/18IGx18NQY_Q1PJVZ-bHywao9bhsDoAqoIn1rIm42nwo/edit +//================================================================================================== +#if 0 +#include + +void GenerateTables() { + + // Build the exponentiation table (reversed from the official OPL3 ROM) + FILE *fd = fopen("exptab.txt", "wb"); + if (fd) { + for (int i = 0; i < 0x100; i++) { + int v = (pow(2, (0xFF - i) / 256.0) - 1) * 1024 + 0.5; + if (i & 15) + fprintf(fd, " %4d,", v); + else + fprintf(fd, "\n\t%4d,", v); + } + fclose(fd); + } + + // Build the log-sin table + fd = fopen("sintab.txt", "wb"); + if (fd) { + for (int i = 0; i < 0x100; i++) { + int v = -log(sin((i + 0.5) * 3.1415926535897933 / 256 / 2)) / log(2) * 256 + 0.5; + if (i & 15) + fprintf(fd, " %4d,", v); + else + fprintf(fd, "\n\t%4d,", v); + } + fclose(fd); + } +} +#endif + + + +//================================================================================================== +// Constructor/destructor. +//================================================================================================== +Opal::Opal(int sample_rate) { + + Init(sample_rate); +} +//-------------------------------------------------------------------------------------------------- +Opal::~Opal() { +} + + + +//================================================================================================== +// Initialise the emulation. +//================================================================================================== +void Opal::Init(int sample_rate) { + + Clock = 0; + TremoloClock = 0; + TremoloLevel = 0; + VibratoTick = 0; + VibratoClock = 0; + NoteSel = false; + TremoloDepth = false; + VibratoDepth = false; + +// // Build the exponentiation table (reversed from the official OPL3 ROM) +// for (int i = 0; i < 0x100; i++) +// ExpTable[i] = (pow(2, (0xFF - i) / 256.0) - 1) * 1024 + 0.5; +// +// // Build the log-sin table +// for (int i = 0; i < 0x100; i++) +// LogSinTable[i] = -log(sin((i + 0.5) * 3.1415926535897933 / 256 / 2)) / log(2) * 256 + 0.5; + + // Let sub-objects know where to find us + for (int i = 0; i < NumOperators; i++) + Op[i].SetMaster(this); + + for (int i = 0; i < NumChannels; i++) + Chan[i].SetMaster(this); + + // Add the operators to the channels. Note, some channels can't use all the operators + // FIXME: put this into a separate routine + const int chan_ops[] = { + 0, 1, 2, 6, 7, 8, 12, 13, 14, 18, 19, 20, 24, 25, 26, 30, 31, 32, + }; + + for (int i = 0; i < NumChannels; i++) { + Channel *chan = &Chan[i]; + int op = chan_ops[i]; + if (i < 3 || (i >= 9 && i < 12)) + chan->SetOperators(&Op[op], &Op[op + 3], &Op[op + 6], &Op[op + 9]); + else + chan->SetOperators(&Op[op], &Op[op + 3], 0, 0); + } + + // Initialise the operator rate data. We can't do this in the Operator constructor as it + // relies on referencing the master and channel objects + for (int i = 0; i < NumOperators; i++) + Op[i].ComputeRates(); + + // Initialise channel panning at center. + for (int i = 0; i < NumChannels; i++) { + Chan[i].SetPan(64); + Chan[i].SetLeftEnable(true); + Chan[i].SetRightEnable(true); + } + + SetSampleRate(sample_rate); +} + + + +//================================================================================================== +// Change the sample rate. +//================================================================================================== +void Opal::SetSampleRate(int sample_rate) { + + // Sanity + if (sample_rate == 0) + sample_rate = OPL3SampleRate; + + SampleRate = sample_rate; + SampleAccum = 0; + LastOutput[0] = LastOutput[1] = 0; + CurrOutput[0] = CurrOutput[1] = 0; +} + + + +//================================================================================================== +// Write a value to an OPL3 register. +//================================================================================================== +void Opal::Port(uint16_t reg_num, uint8_t val) { + + const int op_lookup[] = { + // 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 0, 1, 2, 3, 4, 5, -1, -1, 6, 7, 8, 9, 10, 11, -1, -1, + // 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + }; + + uint16_t type = reg_num & 0xE0; + + // Is it BD, the one-off register stuck in the middle of the register array? + if (reg_num == 0xBD) { + TremoloDepth = (val & 0x80) != 0; + VibratoDepth = (val & 0x40) != 0; + return; + } + + // Global registers + if (type == 0x00) { + + // 4-OP enables + if (reg_num == 0x104) { + + // Enable/disable channels based on which 4-op enables + uint8_t mask = 1; + for (int i = 0; i < 6; i++, mask <<= 1) { + + // The 4-op channels are 0, 1, 2, 9, 10, 11 + uint16_t chan = i < 3 ? i : i + 6; + Channel *primary = &Chan[chan]; + Channel *secondary = &Chan[chan + 3]; + + if (val & mask) { + + // Let primary channel know it's controlling the secondary channel + primary->SetChannelPair(secondary); + + // Turn off the second channel in the pair + secondary->SetEnable(false); + + } else { + + // Let primary channel know it's no longer controlling the secondary channel + primary->SetChannelPair(0); + + // Turn on the second channel in the pair + secondary->SetEnable(true); + } + } + + // CSW / Note-sel + } else if (reg_num == 0x08) { + + NoteSel = (val & 0x40) != 0; + + // Get the channels to recompute the Key Scale No. as this varies based on NoteSel + for (int i = 0; i < NumChannels; i++) + Chan[i].ComputeKeyScaleNumber(); + } + + // Channel registers + } else if (type >= 0xA0 && type <= 0xC0) { + + // Convert to channel number + int chan_num = reg_num & 15; + + // Valid channel? + if (chan_num >= 9) + return; + + // Is it the other bank of channels? + if (reg_num & 0x100) + chan_num += 9; + + Channel &chan = Chan[chan_num]; + + /* libADLMIDI: registers Ax and Cx affect both channels */ + Channel *chans[2] = {&chan, chan.GetChannelPair()}; + unsigned numchans = chans[1] ? 2 : 1; + + // Do specific registers + switch (reg_num & 0xF0) { + + // Frequency low + case 0xA0: { + for (unsigned i = 0; i < numchans; ++i) { /* libADLMIDI */ + chans[i]->SetFrequencyLow(val); + } + break; + } + + // Key-on / Octave / Frequency High + case 0xB0: { + for (unsigned i = 0; i < numchans; ++i) { /* libADLMIDI */ + chans[i]->SetKeyOn((val & 0x20) != 0); + chans[i]->SetOctave(val >> 2 & 7); + chans[i]->SetFrequencyHigh(val & 3); + } + break; + } + + // Right Stereo Channel Enable / Left Stereo Channel Enable / Feedback Factor / Modulation Type + case 0xC0: { + chan.SetRightEnable((val & 0x20) != 0); + chan.SetLeftEnable((val & 0x10) != 0); + chan.SetFeedback(val >> 1 & 7); + chan.SetModulationType(val & 1); + break; + } + } + + // Operator registers + } else if ((type >= 0x20 && type <= 0x80) || type == 0xE0) { + + // Convert to operator number + int op_num = op_lookup[reg_num & 0x1F]; + + // Valid register? + if (op_num < 0) + return; + + // Is it the other bank of operators? + if (reg_num & 0x100) + op_num += 18; + + Operator &op = Op[op_num]; + + // Do specific registers + switch (type) { + + // Tremolo Enable / Vibrato Enable / Sustain Mode / Envelope Scaling / Frequency Multiplier + case 0x20: { + op.SetTremoloEnable((val & 0x80) != 0); + op.SetVibratoEnable((val & 0x40) != 0); + op.SetSustainMode((val & 0x20) != 0); + op.SetEnvelopeScaling((val & 0x10) != 0); + op.SetFrequencyMultiplier(val & 15); + break; + } + + // Key Scale / Output Level + case 0x40: { + op.SetKeyScale(val >> 6); + op.SetOutputLevel(val & 0x3F); + break; + } + + // Attack Rate / Decay Rate + case 0x60: { + op.SetAttackRate(val >> 4); + op.SetDecayRate(val & 15); + break; + } + + // Sustain Level / Release Rate + case 0x80: { + op.SetSustainLevel(val >> 4); + op.SetReleaseRate(val & 15); + break; + } + + // Waveform + case 0xE0: { + op.SetWaveform(val & 7); + break; + } + } + } +} + + + +//================================================================================================== +// Set panning on the channel designated by the register number. +// This is extended functionality. +//================================================================================================== +void Opal::Pan(uint16_t reg_num, uint8_t pan) +{ + uint8_t high = (reg_num >> 8) & 1; + uint8_t regm = reg_num & 0xff; + Chan[9 * high + (regm & 0x0f)].SetPan(pan); +} + + + +//================================================================================================== +// Generate sample. Every time you call this you will get two signed 16-bit samples (one for each +// stereo channel) which will sound correct when played back at the sample rate given when the +// class was constructed. +//================================================================================================== +void Opal::Sample(int16_t *left, int16_t *right) { + + // If the destination sample rate is higher than the OPL3 sample rate, we need to skip ahead + while (SampleAccum >= SampleRate) { + + LastOutput[0] = CurrOutput[0]; + LastOutput[1] = CurrOutput[1]; + + Output(CurrOutput[0], CurrOutput[1]); + + SampleAccum -= SampleRate; + } + + // Mix with the partial accumulation + int32_t omblend = SampleRate - SampleAccum; + *left = (LastOutput[0] * omblend + CurrOutput[0] * SampleAccum) / SampleRate; + *right = (LastOutput[1] * omblend + CurrOutput[1] * SampleAccum) / SampleRate; + + SampleAccum += OPL3SampleRate; +} + + + +//================================================================================================== +// Produce final output from the chip. This is at the OPL3 sample-rate. +//================================================================================================== +void Opal::Output(int16_t &left, int16_t &right) { + + int32_t leftmix = 0, rightmix = 0; + + // Sum the output of each channel + for (int i = 0; i < NumChannels; i++) { + + int16_t chanleft, chanright; + Chan[i].Output(chanleft, chanright); + + leftmix += chanleft; + rightmix += chanright; + } + + // Clamp + if (leftmix < -0x8000) + left = -0x8000; + else if (leftmix > 0x7FFF) + left = 0x7FFF; + else + left = leftmix; + + if (rightmix < -0x8000) + right = -0x8000; + else if (rightmix > 0x7FFF) + right = 0x7FFF; + else + right = rightmix; + + Clock++; + + // Tremolo. According to this post, the OPL3 tremolo is a 13,440 sample length triangle wave + // with a peak at 26 and a trough at 0 and is simply added to the logarithmic level accumulator + // http://forums.submarine.org.uk/phpBB/viewtopic.php?f=9&t=1171 + TremoloClock = (TremoloClock + 1) % 13440; + TremoloLevel = ((TremoloClock < 13440 / 2) ? TremoloClock : 13440 - TremoloClock) / 256; + if (!TremoloDepth) + TremoloLevel >>= 2; + + // Vibrato. This appears to be a 8 sample long triangle wave with a magnitude of the three + // high bits of the channel frequency, positive and negative, divided by two if the vibrato + // depth is zero. It is only cycled every 1,024 samples. + VibratoTick++; + if (VibratoTick >= 1024) { + VibratoTick = 0; + VibratoClock = (VibratoClock + 1) & 7; + } +} + + + +//================================================================================================== +// Channel constructor. +//================================================================================================== +Opal::Channel::Channel() { + + Master = 0; + Freq = 0; + Octave = 0; + PhaseStep = 0; + KeyScaleNumber = 0; + FeedbackShift = 0; + ModulationType = 0; + ChannelPair = 0; + Enable = true; +} + + + +//================================================================================================== +// Produce output from channel. +//================================================================================================== +void Opal::Channel::Output(int16_t &left, int16_t &right) { + + // Has the channel been disabled? This is usually a result of the 4-op enables being used to + // disable the secondary channel in each 4-op pair + if (!Enable) { + left = right = 0; + return; + } + + int16_t vibrato = (Freq >> 7) & 7; + if (!Master->VibratoDepth) + vibrato >>= 1; + + // 0 3 7 3 0 -3 -7 -3 + uint16_t clk = Master->VibratoClock; + if (!(clk & 3)) + vibrato = 0; // Position 0 and 4 is zero + else { + if (clk & 1) + vibrato >>= 1; // Odd positions are half the magnitude + if (clk & 4) + vibrato = -vibrato; // The second half positions are negative + } + + vibrato <<= Octave; + + // Combine individual operator outputs + int16_t out, acc; + + // Running in 4-op mode? + if (ChannelPair) { + + // Get the secondary channel's modulation type. This is the only thing from the secondary + // channel that is used + if (ChannelPair->GetModulationType() == 0) { + + if (ModulationType == 0) { + + // feedback -> modulator -> modulator -> modulator -> carrier + out = Op[0]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, FeedbackShift); + out = Op[1]->Output(KeyScaleNumber, PhaseStep, vibrato, out, 0); + out = Op[2]->Output(KeyScaleNumber, PhaseStep, vibrato, out, 0); + out = Op[3]->Output(KeyScaleNumber, PhaseStep, vibrato, out, 0); + + } else { + + // (feedback -> carrier) + (modulator -> modulator -> carrier) + out = Op[0]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, FeedbackShift); + acc = Op[1]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, 0); + acc = Op[2]->Output(KeyScaleNumber, PhaseStep, vibrato, acc, 0); + out += Op[3]->Output(KeyScaleNumber, PhaseStep, vibrato, acc, 0); + } + + } else { + + if (ModulationType == 0) { + + // (feedback -> modulator -> carrier) + (modulator -> carrier) + out = Op[0]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, FeedbackShift); + out = Op[1]->Output(KeyScaleNumber, PhaseStep, vibrato, out, 0); + acc = Op[2]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, 0); + out += Op[3]->Output(KeyScaleNumber, PhaseStep, vibrato, acc, 0); + + } else { + + // (feedback -> carrier) + (modulator -> carrier) + carrier + out = Op[0]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, FeedbackShift); + acc = Op[1]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, 0); + out += Op[2]->Output(KeyScaleNumber, PhaseStep, vibrato, acc, 0); + out += Op[3]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, 0); + } + } + + } else { + + // Standard 2-op mode + if (ModulationType == 0) { + + // Frequency modulation (well, phase modulation technically) + out = Op[0]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, FeedbackShift); + out = Op[1]->Output(KeyScaleNumber, PhaseStep, vibrato, out, 0); + + } else { + + // Additive + out = Op[0]->Output(KeyScaleNumber, PhaseStep, vibrato, 0, FeedbackShift); + out += Op[1]->Output(KeyScaleNumber, PhaseStep, vibrato); + } + } + + left = LeftEnable ? out : 0; + right = RightEnable ? out : 0; + + left = left * LeftPan / 65536; + right = right * RightPan / 65536; +} + + + +//================================================================================================== +// Set phase step for operators using this channel. +//================================================================================================== +void Opal::Channel::SetFrequencyLow(uint16_t freq) { + + Freq = (Freq & 0x300) | (freq & 0xFF); + ComputePhaseStep(); +} +//-------------------------------------------------------------------------------------------------- +void Opal::Channel::SetFrequencyHigh(uint16_t freq) { + + Freq = (Freq & 0xFF) | ((freq & 3) << 8); + ComputePhaseStep(); + + // Only the high bits of Freq affect the Key Scale No. + ComputeKeyScaleNumber(); +} + + + +//================================================================================================== +// Set the octave of the channel (0 to 7). +//================================================================================================== +void Opal::Channel::SetOctave(uint16_t oct) { + + Octave = oct & 7; + ComputePhaseStep(); + ComputeKeyScaleNumber(); +} + + + +//================================================================================================== +// Keys the channel on/off. +//================================================================================================== +void Opal::Channel::SetKeyOn(bool on) { + + Op[0]->SetKeyOn(on); + Op[1]->SetKeyOn(on); +} + + + +//================================================================================================== +// Enable left stereo channel. +//================================================================================================== +void Opal::Channel::SetLeftEnable(bool on) { + + LeftEnable = on; +} + + + +//================================================================================================== +// Enable right stereo channel. +//================================================================================================== +void Opal::Channel::SetRightEnable(bool on) { + + RightEnable = on; +} + + + +//================================================================================================== +// Pan the channel to the position given. +//================================================================================================== +void Opal::Channel::SetPan(uint8_t pan) +{ + pan &= 127; + LeftPan = PanLawTable[pan]; + RightPan = PanLawTable[127 - pan]; +} + + + +//================================================================================================== +// Set the channel feedback amount. +//================================================================================================== +void Opal::Channel::SetFeedback(uint16_t val) { + + FeedbackShift = val ? 9 - val : 0; +} + + + +//================================================================================================== +// Set frequency modulation/additive modulation +//================================================================================================== +void Opal::Channel::SetModulationType(uint16_t type) { + + ModulationType = type; +} + + + +//================================================================================================== +// Compute the stepping factor for the operator waveform phase based on the frequency and octave +// values of the channel. +//================================================================================================== +void Opal::Channel::ComputePhaseStep() { + + PhaseStep = uint32_t(Freq) << Octave; +} + + + +//================================================================================================== +// Compute the key scale number and key scale levels. +// +// From the Yamaha data sheet this is the block/octave number as bits 3-1, with bit 0 coming from +// the MSB of the frequency if NoteSel is 1, and the 2nd MSB if NoteSel is 0. +//================================================================================================== +void Opal::Channel::ComputeKeyScaleNumber() { + + uint16_t lsb = Master->NoteSel ? Freq >> 9 : (Freq >> 8) & 1; + KeyScaleNumber = Octave << 1 | lsb; + + // Get the channel operators to recompute their rates as they're dependent on this number. They + // also need to recompute their key scale level + for (int i = 0; i < 4; i++) { + + if (!Op[i]) + continue; + + Op[i]->ComputeRates(); + Op[i]->ComputeKeyScaleLevel(); + } +} + + + +//================================================================================================== +// Operator constructor. +//================================================================================================== +Opal::Operator::Operator() { + + Master = 0; + Chan = 0; + Phase = 0; + Waveform = 0; + FreqMultTimes2 = 1; + EnvelopeStage = EnvOff; + EnvelopeLevel = 0x1FF; + AttackRate = 0; + DecayRate = 0; + SustainLevel = 0; + ReleaseRate = 0; + KeyScaleShift = 0; + KeyScaleLevel = 0; + Out[0] = Out[1] = 0; + KeyOn = false; + KeyScaleRate = false; + SustainMode = false; + TremoloEnable = false; + VibratoEnable = false; +} + + + +//================================================================================================== +// Produce output from operator. +//================================================================================================== +int16_t Opal::Operator::Output(uint16_t /*keyscalenum*/, uint32_t phase_step, int16_t vibrato, int16_t mod, int16_t fbshift) { + + // Advance wave phase + if (VibratoEnable) + phase_step += vibrato; + Phase += (phase_step * FreqMultTimes2) / 2; + + uint16_t level = (EnvelopeLevel + OutputLevel + KeyScaleLevel + (TremoloEnable ? Master->TremoloLevel : 0)) << 3; + + switch (EnvelopeStage) { + + // Attack stage + case EnvAtt: { + uint16_t add = ((AttackAdd >> AttackTab[Master->Clock >> AttackShift & 7]) * ~EnvelopeLevel) >> 3; + if (AttackRate == 0) + add = 0; + if (AttackMask && (Master->Clock & AttackMask)) + add = 0; + EnvelopeLevel += add; + if (EnvelopeLevel <= 0) { + EnvelopeLevel = 0; + EnvelopeStage = EnvDec; + } + break; + } + + // Decay stage + case EnvDec: { + uint16_t add = DecayAdd >> DecayTab[Master->Clock >> DecayShift & 7]; + if (DecayRate == 0) + add = 0; + if (DecayMask && (Master->Clock & DecayMask)) + add = 0; + EnvelopeLevel += add; + if (EnvelopeLevel >= SustainLevel) { + EnvelopeLevel = SustainLevel; + EnvelopeStage = EnvSus; + } + break; + } + + // Sustain stage + case EnvSus: { + if (SustainMode) + break; + // Note: fall-through! + + }//fallthrough + + // Release stage + case EnvRel: { + uint16_t add = ReleaseAdd >> ReleaseTab[Master->Clock >> ReleaseShift & 7]; + if (ReleaseRate == 0) + add = 0; + if (ReleaseMask && (Master->Clock & ReleaseMask)) + add = 0; + EnvelopeLevel += add; + if (EnvelopeLevel >= 0x1FF) { + EnvelopeLevel = 0x1FF; + EnvelopeStage = EnvOff; + Out[0] = Out[1] = 0; + return 0; + } + break; + } + + // Envelope, and therefore the operator, is not running + default: + Out[0] = Out[1] = 0; + return 0; + } + + // Feedback? In that case we modulate by a blend of the last two samples + if (fbshift) + mod += (Out[0] + Out[1]) >> fbshift; + + uint16_t phase = (Phase >> 10) + mod; + uint16_t offset = phase & 0xFF; + uint16_t logsin; + bool negate = false; + + switch (Waveform) { + + //------------------------------------ + // Standard sine wave + //------------------------------------ + case 0: + if (phase & 0x100) + offset ^= 0xFF; + logsin = Master->LogSinTable[offset]; + negate = (phase & 0x200) != 0; + break; + + //------------------------------------ + // Half sine wave + //------------------------------------ + case 1: + if (phase & 0x200) + offset = 0; + else if (phase & 0x100) + offset ^= 0xFF; + logsin = Master->LogSinTable[offset]; + break; + + //------------------------------------ + // Positive sine wave + //------------------------------------ + case 2: + if (phase & 0x100) + offset ^= 0xFF; + logsin = Master->LogSinTable[offset]; + break; + + //------------------------------------ + // Quarter positive sine wave + //------------------------------------ + case 3: + if (phase & 0x100) + offset = 0; + logsin = Master->LogSinTable[offset]; + break; + + //------------------------------------ + // Double-speed sine wave + //------------------------------------ + case 4: + if (phase & 0x200) + offset = 0; + + else { + + if (phase & 0x80) + offset ^= 0xFF; + + offset = (offset + offset) & 0xFF; + negate = (phase & 0x100) != 0; + } + + logsin = Master->LogSinTable[offset]; + break; + + //------------------------------------ + // Double-speed positive sine wave + //------------------------------------ + case 5: + if (phase & 0x200) + offset = 0; + + else { + + offset = (offset + offset) & 0xFF; + if (phase & 0x80) + offset ^= 0xFF; + } + + logsin = Master->LogSinTable[offset]; + break; + + //------------------------------------ + // Square wave + //------------------------------------ + case 6: + logsin = 0; + negate = (phase & 0x200) != 0; + break; + + //------------------------------------ + // Exponentiation wave + //------------------------------------ + default: + logsin = phase & 0x1FF; + if (phase & 0x200) { + logsin ^= 0x1FF; + negate = true; + } + logsin <<= 3; + break; + } + + uint16_t mix = logsin + level; + if (mix > 0x1FFF) + mix = 0x1FFF; + + // From the OPLx decapsulated docs: + // "When such a table is used for calculation of the exponential, the table is read at the + // position given by the 8 LSB's of the input. The value + 1024 (the hidden bit) is then the + // significand of the floating point output and the yet unused MSB's of the input are the + // exponent of the floating point output." + int16_t v = Master->ExpTable[mix & 0xFF] + 1024; + v >>= mix >> 8; + v += v; + if (negate) + v = ~v; + + // Keep last two results for feedback calculation + Out[1] = Out[0]; + Out[0] = v; + + return v; +} + + + +//================================================================================================== +// Trigger operator. +//================================================================================================== +void Opal::Operator::SetKeyOn(bool on) { + + // Already on/off? + if (KeyOn == on) + return; + KeyOn = on; + + if (on) { + + // The highest attack rate is instant; it bypasses the attack phase + if (AttackRate == 15) { + EnvelopeStage = EnvDec; + EnvelopeLevel = 0; + } else + EnvelopeStage = EnvAtt; + + Phase = 0; + + } else { + + // Stopping current sound? + if (EnvelopeStage != EnvOff && EnvelopeStage != EnvRel) + EnvelopeStage = EnvRel; + } +} + + + +//================================================================================================== +// Enable amplitude vibrato. +//================================================================================================== +void Opal::Operator::SetTremoloEnable(bool on) { + + TremoloEnable = on; +} + + + +//================================================================================================== +// Enable frequency vibrato. +//================================================================================================== +void Opal::Operator::SetVibratoEnable(bool on) { + + VibratoEnable = on; +} + + + +//================================================================================================== +// Sets whether we release or sustain during the sustain phase of the envelope. 'true' is to +// sustain, otherwise release. +//================================================================================================== +void Opal::Operator::SetSustainMode(bool on) { + + SustainMode = on; +} + + + +//================================================================================================== +// Key scale rate. Sets how much the Key Scaling Number affects the envelope rates. +//================================================================================================== +void Opal::Operator::SetEnvelopeScaling(bool on) { + + KeyScaleRate = on; + ComputeRates(); +} + + + +//================================================================================================== +// Multiplies the phase frequency. +//================================================================================================== +void Opal::Operator::SetFrequencyMultiplier(uint16_t scale) { + + // Needs to be multiplied by two (and divided by two later when we use it) because the first + // entry is actually .5 + const uint16_t mul_times_2[] = { + 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 20, 24, 24, 30, 30, + }; + + FreqMultTimes2 = mul_times_2[scale & 15]; +} + + + +//================================================================================================== +// Attenuates output level towards higher pitch. +//================================================================================================== +void Opal::Operator::SetKeyScale(uint16_t scale) { + + /* libADLMIDI: KSL computation fix */ + const unsigned KeyScaleShiftTable[4] = {8, 1, 2, 0}; + KeyScaleShift = KeyScaleShiftTable[scale]; + + ComputeKeyScaleLevel(); +} + + + +//================================================================================================== +// Sets the output level (volume) of the operator. +//================================================================================================== +void Opal::Operator::SetOutputLevel(uint16_t level) { + + OutputLevel = level * 4; +} + + + +//================================================================================================== +// Operator attack rate. +//================================================================================================== +void Opal::Operator::SetAttackRate(uint16_t rate) { + + AttackRate = rate; + + ComputeRates(); +} + + + +//================================================================================================== +// Operator decay rate. +//================================================================================================== +void Opal::Operator::SetDecayRate(uint16_t rate) { + + DecayRate = rate; + + ComputeRates(); +} + + + +//================================================================================================== +// Operator sustain level. +//================================================================================================== +void Opal::Operator::SetSustainLevel(uint16_t level) { + + SustainLevel = level < 15 ? level : 31; + SustainLevel *= 16; +} + + + +//================================================================================================== +// Operator release rate. +//================================================================================================== +void Opal::Operator::SetReleaseRate(uint16_t rate) { + + ReleaseRate = rate; + + ComputeRates(); +} + + + +//================================================================================================== +// Assign the waveform this operator will use. +//================================================================================================== +void Opal::Operator::SetWaveform(uint16_t wave) { + + Waveform = wave & 7; +} + + + +//================================================================================================== +// Compute actual rate from register rate. From the Yamaha data sheet: +// +// Actual rate = Rate value * 4 + Rof, if Rate value = 0, actual rate = 0 +// +// Rof is set as follows depending on the KSR setting: +// +// Key scale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +// KSR = 0 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 +// KSR = 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +// +// Note: zero rates are infinite, and are treated separately elsewhere +//================================================================================================== +void Opal::Operator::ComputeRates() { + + int combined_rate = AttackRate * 4 + (Chan->GetKeyScaleNumber() >> (KeyScaleRate ? 0 : 2)); + int rate_high = combined_rate >> 2; + int rate_low = combined_rate & 3; + + AttackShift = rate_high < 12 ? 12 - rate_high : 0; + AttackMask = (1 << AttackShift) - 1; + AttackAdd = (rate_high < 12) ? 1 : 1 << (rate_high - 12); + AttackTab = Master->RateTables[rate_low]; + + // Attack rate of 15 is always instant + if (AttackRate == 15) + AttackAdd = 0xFFF; + + combined_rate = DecayRate * 4 + (Chan->GetKeyScaleNumber() >> (KeyScaleRate ? 0 : 2)); + rate_high = combined_rate >> 2; + rate_low = combined_rate & 3; + + DecayShift = rate_high < 12 ? 12 - rate_high : 0; + DecayMask = (1 << DecayShift) - 1; + DecayAdd = (rate_high < 12) ? 1 : 1 << (rate_high - 12); + DecayTab = Master->RateTables[rate_low]; + + combined_rate = ReleaseRate * 4 + (Chan->GetKeyScaleNumber() >> (KeyScaleRate ? 0 : 2)); + rate_high = combined_rate >> 2; + rate_low = combined_rate & 3; + + ReleaseShift = rate_high < 12 ? 12 - rate_high : 0; + ReleaseMask = (1 << ReleaseShift) - 1; + ReleaseAdd = (rate_high < 12) ? 1 : 1 << (rate_high - 12); + ReleaseTab = Master->RateTables[rate_low]; +} + + + +//================================================================================================== +// Compute the operator's key scale level. This changes based on the channel frequency/octave and +// operator key scale value. +//================================================================================================== +void Opal::Operator::ComputeKeyScaleLevel() { + + static const uint16_t levtab[] = { + 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, 8, 12, 16, 20, 24, 28, 32, + 0, 0, 0, 0, 0, 12, 20, 28, 32, 40, 44, 48, 52, 56, 60, 64, + 0, 0, 0, 20, 32, 44, 52, 60, 64, 72, 76, 80, 84, 88, 92, 96, + 0, 0, 32, 52, 64, 76, 84, 92, 96, 104, 108, 112, 116, 120, 124, 128, + 0, 32, 64, 84, 96, 108, 116, 124, 128, 136, 140, 144, 148, 152, 156, 160, + 0, 64, 96, 116, 128, 140, 148, 156, 160, 168, 172, 176, 180, 184, 188, 192, + 0, 96, 128, 148, 160, 172, 180, 188, 192, 200, 204, 208, 212, 216, 220, 224, + }; + + // This uses a combined value of the top four bits of frequency with the octave/block + uint16_t i = (Chan->GetOctave() << 4) | (Chan->GetFreq() >> 6); + KeyScaleLevel = levtab[i] >> KeyScaleShift; +} diff --git a/thirdparty/adlmidi/chips/opal_opl3.cpp b/thirdparty/adlmidi/chips/opal_opl3.cpp new file mode 100644 index 0000000..3c1cbb7 --- /dev/null +++ b/thirdparty/adlmidi/chips/opal_opl3.cpp @@ -0,0 +1,81 @@ +/* + * Interfaces over Yamaha OPL3 (YMF262) chip emulators + * + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "opal_opl3.h" +#include "opal/opal.hpp" +#include +#include + +OpalOPL3::OpalOPL3() : + OPLChipBaseT() +{ + m_chip = new Opal(m_rate); + setRate(m_rate); +} + +OpalOPL3::~OpalOPL3() +{ + Opal *chip_r = reinterpret_cast(m_chip); + delete chip_r; +} + +void OpalOPL3::setRate(uint32_t rate) +{ + OPLChipBaseT::setRate(rate); + Opal *chip_r = reinterpret_cast(m_chip); + chip_r->~Opal(); + new (chip_r) Opal(effectiveRate()); +} + +void OpalOPL3::reset() +{ + OPLChipBaseT::reset(); + Opal *chip_r = reinterpret_cast(m_chip); + chip_r->~Opal(); + new (chip_r) Opal(effectiveRate()); +} + +void OpalOPL3::writeReg(uint16_t addr, uint8_t data) +{ + Opal *chip_r = reinterpret_cast(m_chip); + chip_r->Port(addr, data); +} + +void OpalOPL3::writePan(uint16_t addr, uint8_t data) +{ +#ifdef OPAL_HAVE_SOFT_PANNING + Opal *chip_r = reinterpret_cast(m_chip); + chip_r->Pan(addr, data); +#else + (void)addr; + (void)data; +#endif +} + +void OpalOPL3::nativeGenerate(int16_t *frame) +{ + Opal *chip_r = reinterpret_cast(m_chip); + chip_r->Sample(&frame[0], &frame[1]); +} + +const char *OpalOPL3::emulatorName() +{ + return "Opal OPL3"; +} diff --git a/thirdparty/adlmidi/chips/opal_opl3.h b/thirdparty/adlmidi/chips/opal_opl3.h new file mode 100644 index 0000000..ca14f3a --- /dev/null +++ b/thirdparty/adlmidi/chips/opal_opl3.h @@ -0,0 +1,44 @@ +/* + * Interfaces over Yamaha OPL3 (YMF262) chip emulators + * + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef OPAL_OPL3_H +#define OPAL_OPL3_H + +#include "opl_chip_base.h" + +class OpalOPL3 final : public OPLChipBaseT +{ + void *m_chip; +public: + OpalOPL3(); + ~OpalOPL3() override; + + bool canRunAtPcmRate() const override { return true; } + void setRate(uint32_t rate) override; + void reset() override; + void writeReg(uint16_t addr, uint8_t data) override; + void writePan(uint16_t addr, uint8_t data) override; + void nativePreGenerate() override {} + void nativePostGenerate() override {} + void nativeGenerate(int16_t *frame) override; + const char *emulatorName() override; +}; + +#endif // NUKED_OPL3_H diff --git a/thirdparty/adlmidi/chips/opl_chip_base.h b/thirdparty/adlmidi/chips/opl_chip_base.h index 723bbc9..006e222 100644 --- a/thirdparty/adlmidi/chips/opl_chip_base.h +++ b/thirdparty/adlmidi/chips/opl_chip_base.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2018 Vitaly Novichkov (Wohlstand) + * Copyright (c) 2017-2020 Vitaly Novichkov (Wohlstand) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/thirdparty/adlmidi/chips/opl_chip_base.tcc b/thirdparty/adlmidi/chips/opl_chip_base.tcc index a64aa7c..e6d3f6b 100644 --- a/thirdparty/adlmidi/chips/opl_chip_base.tcc +++ b/thirdparty/adlmidi/chips/opl_chip_base.tcc @@ -236,8 +236,8 @@ void OPLChipBaseT::resampledGenerate(int32_t *output) rsm->out_count = 1; rsm->out_data = f_out; } - output[0] = static_cast(std::lround(f_out[0])); - output[1] = static_cast(std::lround(f_out[1])); + output[0] = static_cast(lround(f_out[0])); + output[1] = static_cast(lround(f_out[1])); } #else template diff --git a/thirdparty/adlmidi/file_reader.hpp b/thirdparty/adlmidi/file_reader.hpp index 7d13262..291850c 100644 --- a/thirdparty/adlmidi/file_reader.hpp +++ b/thirdparty/adlmidi/file_reader.hpp @@ -1,7 +1,7 @@ /* * FileAndMemoryReader - a tiny helper to utify file reading from a disk and memory block * - * Copyright (c) 2015-2018 Vitaly Novichkov + * Copyright (c) 2015-2020 Vitaly Novichkov * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the "Software"), @@ -110,15 +110,15 @@ class FileAndMemReader /** * @brief Open file from memory block * @param mem Pointer to the memory block - * @param lenght Size of given block + * @param length Size of given block */ - void openData(const void *mem, size_t lenght) + void openData(const void *mem, size_t length) { if(m_fp) this->close();//Close previously opened file first! m_fp = NULL; m_mp = mem; - m_mp_size = lenght; + m_mp_size = length; m_mp_tell = 0; } @@ -140,6 +140,7 @@ class FileAndMemReader { switch(rel_to) { + default: case SET: m_mp_tell = static_cast(pos); break; diff --git a/thirdparty/adlmidi/fraction.hpp b/thirdparty/adlmidi/fraction.hpp new file mode 100644 index 0000000..892ba25 --- /dev/null +++ b/thirdparty/adlmidi/fraction.hpp @@ -0,0 +1,220 @@ +/* + * Fraction number handling. + * Copyright (C) 1992,2001 Bisqwit (http://iki.fi/bisqwit/) + * + * The license of this file is in Public Domain: + * https://bisqwit.iki.fi/src/index.html + * + * "... and orphan source code files are copyrighted public domain." + */ + +#ifndef bqw_fraction_h +#define bqw_fraction_h + +#include +#include + +template +class fraction +{ + inttype num1, num2; + typedef fraction self; + void Optim(); + + #if 1 + inline void Debug(char, const self &) { } + #else + inline void Debug(char op, const self &b) + { + cerr << nom() << '/' << denom() << ' ' << op + << ' ' << b.nom() << '/' << denom() + << ":\n"; + } + #endif +public: + void set(inttype n, inttype d) { num1=n; num2=d; Optim(); } + + fraction() : num1(0), num2(1) { } + fraction(inttype value) : num1(value), num2(1) { } + fraction(inttype n, inttype d) : num1(n), num2(d) { } + fraction(int value) : num1(value), num2(1) { } + template + explicit fraction(const floattype value) { operator= (value); } + inline double value() const {return nom() / (double)denom(); } + inline long double valuel() const {return nom() / (long double)denom(); } + self &operator+= (const inttype &value) { num1+=value*denom(); Optim(); return *this; } + self &operator-= (const inttype &value) { num1-=value*denom(); Optim(); return *this; } + self &operator*= (const inttype &value) { num1*=value; Optim(); return *this; } + self &operator/= (const inttype &value) { num2*=value; Optim(); return *this; } + self &operator+= (const self &b); + self &operator-= (const self &b); + self &operator*= (const self &b) { Debug('*',b);num1*=b.nom(); num2*=b.denom(); Optim(); return *this; } + self &operator/= (const self &b) { Debug('/',b);num1*=b.denom(); num2*=b.nom(); Optim(); return *this; } + self operator- () const { return self(-num1, num2); } + +#define fraction_blah_func(op1, op2) \ + self operator op1 (const self &b) const { self tmp(*this); tmp op2 b; return tmp; } + + fraction_blah_func( +, += ) + fraction_blah_func( -, -= ) + fraction_blah_func( /, /= ) + fraction_blah_func( *, *= ) + +#undef fraction_blah_func +#define fraction_blah_func(op) \ + bool operator op(const self &b) const { return value() op b.value(); } \ + bool operator op(inttype b) const { return value() op b; } + + fraction_blah_func( < ) + fraction_blah_func( > ) + fraction_blah_func( <= ) + fraction_blah_func( >= ) + +#undef fraction_blah_func + + const inttype &nom() const { return num1; } + const inttype &denom() const { return num2; } + inline bool operator == (inttype b) const { return denom() == 1 && nom() == b; } + inline bool operator != (inttype b) const { return denom() != 1 || nom() != b; } + inline bool operator == (const self &b) const { return denom()==b.denom() && nom()==b.nom(); } + inline bool operator != (const self &b) const { return denom()!=b.denom() || nom()!=b.nom(); } + //operator bool () const { return nom() != 0; } + inline bool negative() const { return (nom() < 0) ^ (denom() < 0); } + + self &operator= (const inttype value) { num2=1; num1=value; return *this; } + //self &operator= (int value) { num2=1; num1=value; return *this; } + + self &operator= (double orig) { return *this = (long double)orig; } + self &operator= (long double orig); +}; + +#ifdef _MSC_VER +#pragma warning(disable:4146) +#endif + +template +void fraction::Optim() +{ + /* Euclidean algorithm */ + inttype n1, n2, nn1, nn2; + + nn1 = std::numeric_limits::is_signed ? (num1 >= 0 ? num1 : -num1) : num1; + nn2 = std::numeric_limits::is_signed ? (num2 >= 0 ? num2 : -num2) : num2; + + if(nn1 < nn2) + n1 = num1, n2 = num2; + else + n1 = num2, n2 = num1; + + if(!num1) { num2 = 1; return; } + for(;;) + { + //fprintf(stderr, "%d/%d: n1=%d,n2=%d\n", nom(),denom(),n1,n2); + inttype tmp = n2 % n1; + if(!tmp)break; + n2 = n1; + n1 = tmp; + } + num1 /= n1; + num2 /= n1; + //fprintf(stderr, "result: %d/%d\n\n", nom(), denom()); +} + +#ifdef _MSC_VER +#pragma warning(default:4146) +#endif + +template +inline const fraction abs(const fraction &f) +{ + return fraction(abs(f.nom()), abs(f.denom())); +} + +#define fraction_blah_func(op) \ + template \ + fraction operator op \ + (const inttype bla, const fraction &b) \ + { return fraction (bla) op b; } +fraction_blah_func( + ) +fraction_blah_func( - ) +fraction_blah_func( * ) +fraction_blah_func( / ) +#undef fraction_blah_func + +#define fraction_blah_func(op1, op2) \ + template \ + fraction &fraction::operator op2 (const fraction &b) \ + { \ + inttype newnom = nom()*b.denom() op1 denom()*b.nom(); \ + num2 *= b.denom(); \ + num1 = newnom; \ + Optim(); \ + return *this; \ + } +fraction_blah_func( +, += ) +fraction_blah_func( -, -= ) +#undef fraction_blah_func + +template +fraction &fraction::operator= (long double orig) +{ + if(orig == 0.0) + { + set(0, 0); + return *this; + } + + inttype cf[25]; + for(int maxdepth=1; maxdepth<25; ++maxdepth) + { + inttype u,v; + long double virhe, a=orig; + int i, viim; + + for(i = 0; i < maxdepth; ++i) + { + cf[i] = (inttype)a; + if(cf[i]-1 > cf[i])break; + a = 1.0 / (a - cf[i]); + } + + for(viim=i-1; i < maxdepth; ++i) + cf[i] = 0; + + u = cf[viim]; + v = 1; + for(i = viim-1; i >= 0; --i) + { + inttype w = cf[i] * u + v; + v = u; + u = w; + } + + virhe = (orig - (u / (long double)v)) / orig; + + set(u, v); + //if(verbose > 4) + // cerr << "Guess: " << *this << " - error = " << virhe*100 << "%\n"; + + if(virhe < 1e-8 && virhe > -1e-8)break; + } + + //if(verbose > 4) + //{ + // cerr << "Fraction=" << orig << ": " << *this << endl; + //} + + return *this; +} + + +/* +template +ostream &operator << (ostream &dest, const fraction &m) +{ + if(m.denom() == (inttype)1) return dest << m.nom(); + return dest << m.nom() << '/' << m.denom(); +} +*/ + +#endif diff --git a/thirdparty/adlmidi/inst_db.cpp b/thirdparty/adlmidi/inst_db.cpp new file mode 100644 index 0000000..dc9e30e --- /dev/null +++ b/thirdparty/adlmidi/inst_db.cpp @@ -0,0 +1,6474 @@ +/********************************************************** + This file is generated by `gen_adldata` automatically + Don't edit it directly! + To modify content of this file, modify banks + and re-run the `gen_adldata` build step. +***********************************************************/ + +#include "adlmidi_db.h" + + +const size_t g_embeddedBanksCount = 76; + +const BanksDump::BankEntry g_embeddedBanks[] = +{ + {0x0307, 1, 1, "AIL (Star Control 3, Albion, Empire 2, etc.)", 0, 1}, + {0x0300, 1, 1, "Bisqwit (selection of 4op and 2op)", 2, 3}, + {0x0309, 1, 1, "HMI (Descent, Asterix)", 4, 5}, + {0x0309, 1, 1, "HMI (Descent:: Int)", 6, 7}, + {0x0309, 1, 1, "HMI (Descent:: Ham)", 8, 9}, + {0x0309, 1, 1, "HMI (Descent:: Rick)", 10, 11}, + {0x0309, 1, 1, "HMI (Descent 2)", 12, 13}, + {0x0309, 1, 1, "HMI (Normality)", 14, 15}, + {0x0309, 1, 1, "HMI (Shattered Steel)", 16, 17}, + {0x0309, 1, 1, "HMI (Theme Park)", 18, 19}, + {0x0309, 1, 1, "HMI (3d Table Sports, Battle Arena Toshinden)", 20, 21}, + {0x0309, 1, 1, "HMI (Aces of the Deep)", 22, 23}, + {0x0309, 1, 1, "HMI (Earthsiege)", 24, 25}, + {0x0309, 1, 1, "HMI (Anvil of Dawn)", 26, 27}, + {0x0002, 1, 1, "DMX (Doom 2)", 28, 29}, + {0x0002, 1, 1, "DMX (Hexen, Heretic)", 30, 31}, + {0x0002, 1, 1, "DMX (DOOM, MUS Play)", 32, 33}, + {0x0307, 1, 1, "AIL (Discworld, Grandest Fleet, etc.)", 34, 35}, + {0x0307, 1, 1, "AIL (Warcraft 2)", 36, 37}, + {0x0307, 1, 1, "AIL (Syndicate)", 38, 39}, + {0x0307, 1, 1, "AIL (Guilty, Orion Conspiracy, TNSFC ::4op)", 40, 41}, + {0x0307, 1, 1, "AIL (Magic Carpet 2)", 42, 43}, + {0x0307, 1, 1, "AIL (Nemesis)", 44, 45}, + {0x0307, 3, 1, "AIL (Jagged Alliance)", 46, 49}, + {0x0307, 1, 1, "AIL (When Two Worlds War :MISS-INS:)", 50, 51}, + {0x0307, 1, 1, "AIL (Bards Tale Construction :MISS-INS:)", 52, 53}, + {0x0307, 1, 1, "AIL (Return to Zork)", 54, 55}, + {0x0307, 1, 1, "AIL (Theme Hospital)", 56, 57}, + {0x0307, 1, 1, "AIL (National Hockey League PA)", 58, 59}, + {0x0307, 1, 1, "AIL (Inherit The Earth)", 60, 61}, + {0x0307, 1, 1, "AIL (Inherit The Earth, file two)", 62, 63}, + {0x0307, 1, 1, "AIL (Little Big Adventure :: 4op)", 64, 65}, + {0x0307, 1, 1, "AIL (Wreckin Crew)", 66, 67}, + {0x0307, 1, 1, "AIL (Death Gate)", 68, 69}, + {0x0307, 1, 1, "AIL (FIFA International Soccer)", 70, 71}, + {0x0307, 2, 1, "AIL (Starship Invasion)", 72, 74}, + {0x0307, 1, 1, "AIL (Super Street Fighter 2 :4op:)", 75, 76}, + {0x0307, 1, 1, "AIL (Lords of the Realm :MISS-INS:)", 77, 78}, + {0x0307, 1, 1, "AIL (SimFarm, SimHealth :: 4op)", 79, 80}, + {0x0307, 1, 1, "AIL (SimFarm, Settlers, Serf City)", 81, 82}, + {0x0307, 1, 1, "AIL (Caesar 2, :p4op::MISS-INS:)", 83, 84}, + {0x0307, 1, 1, "AIL (Syndicate Wars)", 85, 86}, + {0x0307, 1, 1, "AIL (Bubble Bobble Feat. Rainbow Islands, Z)", 87, 88}, + {0x0307, 1, 1, "AIL (Warcraft)", 89, 90}, + {0x0307, 1, 1, "AIL (Terra Nova Strike Force Centuri :p4op:)", 91, 92}, + {0x0307, 1, 1, "AIL (System Shock :p4op:)", 93, 94}, + {0x0307, 1, 1, "AIL (Advanced Civilization)", 95, 96}, + {0x0307, 1, 1, "AIL (Battle Chess 4000 :p4op:)", 97, 98}, + {0x0307, 1, 1, "AIL (Ultimate Soccer Manager :p4op:)", 99, 100}, + {0x0307, 1, 1, "AIL (Air Bucks, Blue And The Gray, etc)", 101, 102}, + {0x0307, 2, 1, "AIL (Ultima Underworld 2)", 103, 105}, + {0x0307, 1, 1, "AIL (Kasparov's Gambit)", 106, 107}, + {0x0307, 1, 1, "AIL (High Seas Trader :MISS-INS:)", 108, 109}, + {0x0300, 1, 1, "AIL (Master of Magic, :4op: std percussion)", 110, 111}, + {0x0300, 1, 1, "AIL (Master of Magic, :4op: orchestral percussion)", 112, 113}, + {0x0300, 1, 1, "SB (Action Soccer)", 114, 115}, + {0x0300, 1, 0, "SB (3d Cyberpuck :: melodic only)", 116, 117}, + {0x0300, 1, 0, "SB (Simon the Sorcerer :: melodic only)", 117, 118}, + {0x0304, 1, 1, "OP3 (The Fat Man 2op set; Win9x)", 118, 119}, + {0x0304, 1, 1, "OP3 (The Fat Man 4op set)", 120, 121}, + {0x0304, 1, 1, "OP3 (JungleVision 2op set :: melodic only)", 122, 123}, + {0x0304, 1, 1, "OP3 (Wallace 2op set, Nitemare 3D :: melodic only)", 124, 125}, + {0x0003, 1, 1, "TMB (Duke Nukem 3D)", 126, 127}, + {0x0003, 1, 1, "TMB (Shadow Warrior)", 128, 129}, + {0x0002, 1, 1, "DMX (Raptor)", 130, 131}, + {0x0300, 1, 1, "SB (Modded GMOPL by Wohlstand)", 132, 133}, + {0x0300, 1, 1, "SB (Jamie O'Connell's bank)", 134, 135}, + {0x0003, 1, 1, "TMB (Default bank of Apogee Sound System)", 136, 137}, + {0x0300, 1, 1, "WOPL (4op bank by James Alan Nguyen and Wohlstand)", 138, 139}, + {0x0003, 1, 1, "TMB (Blood)", 140, 141}, + {0x0003, 1, 1, "TMB (Rise of the Triad)", 142, 143}, + {0x0003, 1, 1, "TMB (Nam)", 144, 145}, + {0x0000, 11, 3, "WOPL (DMXOPL3 bank by Sneakernets)", 146, 157}, + {0x0201, 1, 1, "EA (Cartooners)", 160, 161}, + {0x0209, 1, 1, "WOPL (Apogee IMF 90-ish)", 162, 163}, + {0x0307, 3, 1, "The Lost Vikings", 164, 167}, +}; + +const char* const g_embeddedBankNames[] = +{ + g_embeddedBanks[0].title, g_embeddedBanks[1].title, g_embeddedBanks[2].title, g_embeddedBanks[3].title, g_embeddedBanks[4].title, g_embeddedBanks[5].title, g_embeddedBanks[6].title, g_embeddedBanks[7].title, g_embeddedBanks[8].title, g_embeddedBanks[9].title, g_embeddedBanks[10].title, g_embeddedBanks[11].title, g_embeddedBanks[12].title, g_embeddedBanks[13].title, g_embeddedBanks[14].title, g_embeddedBanks[15].title, g_embeddedBanks[16].title, g_embeddedBanks[17].title, g_embeddedBanks[18].title, g_embeddedBanks[19].title, g_embeddedBanks[20].title, g_embeddedBanks[21].title, g_embeddedBanks[22].title, g_embeddedBanks[23].title, + g_embeddedBanks[24].title, g_embeddedBanks[25].title, g_embeddedBanks[26].title, g_embeddedBanks[27].title, g_embeddedBanks[28].title, g_embeddedBanks[29].title, g_embeddedBanks[30].title, g_embeddedBanks[31].title, g_embeddedBanks[32].title, g_embeddedBanks[33].title, g_embeddedBanks[34].title, g_embeddedBanks[35].title, g_embeddedBanks[36].title, g_embeddedBanks[37].title, g_embeddedBanks[38].title, g_embeddedBanks[39].title, g_embeddedBanks[40].title, g_embeddedBanks[41].title, g_embeddedBanks[42].title, g_embeddedBanks[43].title, g_embeddedBanks[44].title, g_embeddedBanks[45].title, g_embeddedBanks[46].title, g_embeddedBanks[47].title, g_embeddedBanks[48].title, + g_embeddedBanks[49].title, g_embeddedBanks[50].title, g_embeddedBanks[51].title, g_embeddedBanks[52].title, g_embeddedBanks[53].title, g_embeddedBanks[54].title, g_embeddedBanks[55].title, g_embeddedBanks[56].title, g_embeddedBanks[57].title, g_embeddedBanks[58].title, g_embeddedBanks[59].title, g_embeddedBanks[60].title, g_embeddedBanks[61].title, g_embeddedBanks[62].title, g_embeddedBanks[63].title, g_embeddedBanks[64].title, g_embeddedBanks[65].title, g_embeddedBanks[66].title, g_embeddedBanks[67].title, g_embeddedBanks[68].title, g_embeddedBanks[69].title, g_embeddedBanks[70].title, g_embeddedBanks[71].title, g_embeddedBanks[72].title, g_embeddedBanks[73].title, + g_embeddedBanks[74].title, g_embeddedBanks[75].title, + NULL +}; + +const size_t g_embeddedBanksMidiIndex[] = +{0,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,15,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,34,62,63,64,65,66,67,68,69,70,71,72,39,73,74,75,39,76,77,34,78,79,80,81,82,83,84,85,86,87,88,89,90,67,91,92,93,94,95,96,97,98,99,100,54,101,102,39,103,39,104,105,106,107,108,26,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,14,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156}; + +const BanksDump::MidiBank g_embeddedBanksMidi[] = +{ + {0,0,{0,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,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{0,179,2,180,181,182,183,184,185,9,186,11,187,188,189,190,191,192,193,194,20,195,196,197,198,199,200,201,202,203,204,205,206,207,208,35,209,34,210,211,212,213,214,215,216,217,218,219,220,221,222,50,223,224,53,225,55,56,226,227,228,229,230,231,232,233,234,235,236,237,238,239,71,72,240,241,242,243,244,245,246,247,248,82,249,250,251,86,252,253,254,255,91,92,256,257,258,259,260,98,99,261,262,263,264,265,266,267,268,269,270,271,111,272,273,274,115,275,276,277,278,120,279,280,281,282,283,284}}, + {0,0,{127,132,285,286,127,287,288,289,290,291,292,127,127,293,294,295,289,296,297,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,318,320,318,321,318,318,322,318,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,337,338,339,320,340,341,342,343,344,345,346,346,169,170,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,164,363,156,364,292,365,366,367,368,178,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369}}, + {0,0,{370,371,372,373,374,375,376,377,378,379,380,381,187,382,383,384,385,386,387,388,20,389,390,391,392,393,26,394,28,370,395,396,397,398,399,400,401,402,403,398,404,405,406,407,408,44,45,409,410,48,411,412,51,52,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,69,429,71,72,430,74,75,76,431,432,79,80,81,82,83,433,85,434,435,436,437,90,438,92,439,94,440,96,97,441,99,442,443,444,103,104,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,122,462,463,464,465}}, + {0,0,{466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,467,468,469,470,471,472,473,474,475,476,308,477,478,479,480,481,482,481,483,484,485,486,487,488,489,487,489,490,487,491,487,492,493,494,495,496,497,498,499,500,501,502,503,504,341,342,505,506,507,508,509,510,511,512,513,503,514,515,516,308,517,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466}}, + {0,0,{518,519,520,28,521,396,395,522,523,524,525,526,527,403,409,528,79,433,529,530,411,437,92,439,445,531,532,533,534,535,536,537,538,539,540,541,459,542,543,544,545,546,547,548,549,550,551,552,553,554,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518}}, + {0,0,{518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518}}, + {0,0,{518,519,520,28,521,396,395,522,523,524,525,526,527,403,409,528,79,433,529,530,411,437,92,439,445,531,532,533,534,535,536,537,538,539,540,541,459,542,543,544,545,546,547,548,549,550,551,552,553,518,452,99,622,623,439,624,248,447,456,625,28,432,626,627,628,79,94,403,398,455,629,630,631,632,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,633,634,635,636,637,638,518,-1}}, + {0,0,{639,640,641,642,643,644,645,646,647,648,292,649,650,651,652,653,654,655,656,657,518,518,518,518,518,518,518,555,556,557,558,559,560,561,562,563,564,565,566,567,568,658,659,660,661,573,574,575,576,577,578,579,662,581,582,583,584,585,586,587,663,589,590,591,592,593,594,664,665,597,598,599,600,666,667,603,604,605,606,607,608,609,610,611,612,613,614,615,668,617,669,619,620,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,-1}}, + {0,0,{518,519,520,28,521,396,395,522,523,524,525,526,527,403,409,528,79,433,529,530,411,437,92,439,445,531,532,533,534,535,536,537,538,539,540,541,459,542,543,544,545,546,547,548,549,550,551,552,553,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,670,671,672,673,674,399,675,676,522,51,52,433,677,678,679,680,681,85,622,90,439,94,443,682,454,459,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518}}, + {0,0,{518,518,518,518,518,518,518,518,518,518,518,518,518,683,649,650,652,684,685,684,685,686,687,688,689,690,691,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,692,693,655,694,363,647,695,292,365,366,367,368,696,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518}}, + {0,0,{518,519,520,28,521,396,395,522,523,524,525,526,527,403,409,528,79,433,529,530,411,437,92,439,445,531,532,533,534,535,536,537,538,539,540,541,459,542,543,544,545,546,547,548,549,550,551,552,553,518,697,698,699,518,518,700,518,518,518,518,701,702,703,704,705,529,706,707,708,518,709,710,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,681,670,522,90,545,28,711,712,713,714,396,715,716,28,526,527,671,622,439,676,717,718,395,520,442,94,679,403,719,522,532,51,518,518}}, + {0,0,{518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,617,618,619,620,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,720,721,722,649,650,684,723,724,652,725,726,655,727,728,729,693,730,731,732,733,593,734,735,639,586,736,695,646,737,366,720,738,739,740,741,742,743,518,518}}, + {0,0,{744,371,372,373,374,375,376,377,378,379,380,381,187,382,383,384,385,386,387,388,20,389,390,391,392,393,26,394,28,370,395,396,397,398,399,400,401,402,403,398,404,405,406,407,408,44,45,409,410,48,411,412,51,52,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,69,429,71,72,430,74,75,76,431,432,79,80,81,82,83,433,85,434,435,436,437,90,438,92,439,94,440,96,97,441,99,442,443,444,103,104,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,122,462,463,464,465}}, + {0,0,{649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,745,746,130,747,640,748,641,728,642,749,643,644,750,645,751,657,752,753,734,754,755,756,757,758,759,760,761,762,647,763,764,765,766,767,768,769,770,771,166,167,168,169,170,772,773,774,775,776,777,778,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696}}, + {0,0,{779,780,372,527,374,781,675,782,378,783,380,784,785,382,383,786,787,716,715,788,28,789,522,522,790,791,26,792,28,676,522,793,794,670,674,795,671,399,672,673,796,797,798,407,408,799,800,801,802,803,804,805,51,52,413,677,806,807,808,809,810,678,679,680,811,717,812,813,814,428,815,816,71,817,818,74,75,819,820,821,681,85,526,527,403,433,409,434,622,436,822,90,438,92,439,94,823,824,97,624,99,442,443,825,628,826,827,828,829,830,549,450,831,682,453,454,832,456,833,717,396,547,718,464,550,719,518,518}}, + {0,0,{518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,834,835,836,586,589,736,837,838,684,654,652,725,720,650,722,649,721,683,651,724,653,723,686,655,687,728,688,693,689,690,639,691,751,657,752,741,734,648,839,756,840,367,368,292,365,366,695,841,764,842,843,737,768,769,694,363,844,167,168,169,170,772,773,646,775,845,777,778,696,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518}}, + {0,0,{866,867,868,869,870,867,871,872,873,874,875,876,877,878,869,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,893,893,894,895,896,897,898,625,899,672,831,900,901,902,893,893,903,904,905,906,905,907,908,796,908,909,910,911,912,913,913,914,915,916,917,893,893,918,917,917,919,920,921,921,921,921,922,923,922,924,924,925,926,816,927,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,943,944,941,907,945,935,935,935,946,946,947,948,949,950,951,833,833,952,953,954,955,956,957,958,896,896}}, + {0,0,{959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,960,961,962,963,964,965,966,967,966,968,969,970,968,971,972,965,959,973,974,959,959,969,975,959,959,976,966,965,977,969,965,966,978,979,968,968,980,981,982,959,983,984,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959,959}}, + {0,0,{985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,-1}}, + {0,0,{466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,1112,1113,1114,1115,1116,310,1117,1118,1119,1115,1120,1121,1122,1123,1124,1125,1124,1126,1127,1128,1129,1130,1131,1132,1130,1132,1133,1130,1134,1130,492,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,310,1153,1154,1155,513,1145,514,1156,1157,1115,1158,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,-1}}, + {0,0,{1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286}}, + {0,0,{466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,1287,306,307,308,1288,509,1289,1290,476,308,477,478,479,480,1291,482,1291,483,1292,485,486,487,488,489,487,489,490,487,491,487,492,493,494,495,496,497,498,499,500,501,502,503,504,341,342,505,506,507,508,509,510,511,512,513,503,514,515,516,308,517,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466}}, + {0,0,{1293,1160,1161,1294,1295,1296,1165,1297,1167,1168,1169,1170,1171,1298,1299,1300,1301,1176,1302,1178,1179,1303,1181,1182,1183,1304,1185,1305,1306,1307,1308,1190,1309,1310,1311,1312,1313,1314,1315,1316,1199,1317,1201,1202,1203,1318,1205,1319,1320,1208,1209,1321,1211,1212,1213,1214,1322,1323,1324,1218,1325,1326,1327,1222,1223,1224,1225,1226,1328,1228,1329,1330,1231,1331,1233,1234,1332,1333,1063,1334,1335,1336,1241,1242,1337,1244,1338,1339,1247,1340,1341,1342,1343,1344,1345,1346,1255,1347,1348,1349,1350,1260,1351,1352,1263,1353,1354,1266,1267,1268,1269,1355,1271,1356,1357,1274,1275,1358,1359,1360,1279,1361,1362,1282,1283,1363,1364,1365}}, + {0,0,{466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,467,468,469,470,471,472,473,474,1366,1366,308,477,478,479,480,481,482,481,483,484,485,486,487,488,489,487,489,490,487,491,487,492,493,494,495,496,497,498,499,500,1367,1368,503,504,341,342,505,506,507,508,509,510,511,512,513,503,514,515,516,308,517,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466}}, + {0,0,{1369,1370,1371,1372,4,5,1373,1374,8,1375,1376,11,12,1377,1378,1379,385,386,387,388,20,389,390,391,392,393,26,1380,28,1381,395,396,397,398,399,400,401,1382,403,398,404,405,406,407,408,44,45,409,410,48,411,412,51,52,413,414,415,416,417,418,419,420,61,422,423,424,425,426,427,428,69,429,71,72,430,74,75,76,431,432,79,80,81,82,83,433,85,434,435,436,437,90,438,92,439,94,440,96,97,441,99,442,443,444,103,104,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,122,462,463,464,465}}, + {0,0,{1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1524,1532,1526,1533,1534,1535,1536,1537,1538,1539,1540,1541,1519,1542,1543,1543,1543,1543,1544,1545,1546,1547,1543,1548,1549,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1550,1551,1414,1552,1416,1417,1553,1554,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1555,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1510,1511,1512,1513,1514,1556,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1557,1531,1524,1558,1526,1533,1534,1535,1536,1537,1538,1539,1540,1541,1519,1542,1543,1543,1543,1543,1544,1545,1546,1547,1543,1548,1549,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1559,1413,1414,1560,1416,1417,1553,1554,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1555,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1557,1531,1524,1561,1526,1533,1534,1535,1536,1537,1538,1539,1540,1541,1519,1542,1543,1543,1543,1543,1544,1545,1546,1547,1543,1548,1549,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1562,179,1563,1564,374,375,1565,1566,1567,1568,186,1569,187,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,25,26,1582,28,1583,30,1584,1585,33,34,35,36,1586,38,33,39,40,1587,42,43,44,45,46,222,1588,1589,1590,1591,1592,1593,1594,55,56,1595,58,59,1596,1597,62,1598,1599,1600,1601,67,68,69,70,71,72,1602,74,1603,1604,1605,1606,79,80,81,1607,83,1608,1609,86,1610,1611,1612,1613,1614,1615,256,257,1616,96,97,1617,1618,1619,262,263,103,104,105,1620,107,108,109,110,111,112,113,114,115,116,117,1621,119,120,121,122,123,124,125,126}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,1622,147,148,1623,150,151,152,153,154,155,156,157,158,159,160,161,162,163,1624,1625,166,167,168,169,1626,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{0,1,2,3,4,5,1627,7,8,1628,10,11,12,13,1629,15,16,17,18,1630,20,21,22,23,1631,25,26,27,28,29,30,31,32,33,34,35,36,37,38,33,39,40,41,42,1632,1633,1634,1635,1636,1637,1638,50,1639,52,53,1640,1641,1642,1643,58,1644,1645,61,62,63,64,65,66,1646,68,1647,1648,1649,1650,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,1651,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,1652,116,1653,277,119,120,121,122,123,124,125,126}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1654,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,142,1669,144,1670,1671,147,1672,1673,150,151,152,153,154,155,156,157,158,159,1674,161,162,163,164,165,166,1675,168,169,170,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1676,1677,1678,1679,1680,1677,1681,1676,1682,1683,875,1684,1685,1686,1679,1687,1688,1688,1688,1689,1690,1691,1692,1692,1693,1694,1695,1696,1697,1697,1697,1697,1698,1699,1700,1701,1699,1702,1703,1704,1705,1706,1707,1708,1697,1697,1709,1710,1711,1712,1711,1713,1714,1715,1714,1716,910,911,1717,1718,1718,1719,1720,1721,1722,1697,1697,1697,1722,1722,1723,1724,1725,1725,1725,1725,922,1726,1727,1727,1727,925,1728,1729,1730,1730,1731,1732,1733,1733,1734,1735,1736,1737,1712,1738,1739,1740,1741,1742,1743,1744,1744,1745,1742,1713,1746,1737,1737,1737,1747,1747,1748,1749,1750,1751,1752,1750,1750,1753,1754,1755,1756,1757,1758,1759,1760,1761}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,961,961,1762,1763,1764,1762,1765,1766,1765,1767,1768,1767,1767,971,1769,1762,-1,973,974,-1,-1,1768,-1,-1,-1,1770,1765,1762,1771,1768,1762,1765,1772,1773,1767,1767,1767,1767,1767,-1,1767,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1774,1775,1776,1777,181,182,183,1778,185,1779,1780,1781,1782,188,189,1783,1784,1785,1786,1787,1788,195,196,197,198,199,200,201,202,1789,1790,205,206,207,208,1791,1792,1793,1794,211,1795,1796,214,215,216,217,218,219,220,221,1797,1798,1799,1800,1801,225,1802,1803,1804,1805,1806,229,230,231,232,233,234,235,1807,237,238,239,1808,1809,240,1810,242,243,244,1811,246,247,1812,1813,249,250,251,1814,252,253,254,255,1815,1816,1817,1818,1819,259,1820,1821,1822,1823,1824,1825,264,265,266,267,268,269,270,271,1826,272,273,1827,1828,1829,276,1830,1831,1832,1833,1834,1835,1836,283,284}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,127,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1676,1677,1678,1888,1889,1890,1681,1676,1682,1891,1892,876,1685,1893,1679,1687,1894,1895,1688,1689,1690,1896,1897,887,1693,889,1695,1898,1899,1900,1697,1697,1698,1901,1902,1903,1904,1905,1906,1907,1908,1706,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1897,909,910,911,1717,1718,1718,1921,204,1922,1923,1924,1925,1926,1927,1928,1929,1930,1725,1931,1932,1725,1933,1934,1935,1936,1937,1938,1939,1940,1941,1941,1942,1938,1921,1943,1943,1943,1943,1943,1944,1945,1946,1740,1947,1948,1949,1950,1950,1951,1948,1713,1952,1953,1953,1953,1954,1954,1748,1749,1955,1956,1752,1750,1750,1957,1958,1959,1960,1757,1961,1759,1760,1761}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,960,1962,1963,1964,1965,1965,1765,1966,1765,1967,1768,1968,1967,971,1769,1762,-1,973,974,-1,-1,1768,-1,-1,-1,1770,1765,1762,1969,1768,1762,1765,1772,1773,1967,1970,1967,981,982,-1,983,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,228,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2011,245,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,274,2083,2084,2085,2086,278,2087,2088,2089,2090,2091,2092,2093}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2094,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2109,2111,2112,2113,2114,2115,2109,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2148,-1,2150,1677,2151,1677,1681,1676,716,1683,1683,2152,2153,2153,2153,1721,1688,1688,1688,1690,1690,1690,1692,1692,2154,2155,2156,2156,1697,1697,2157,1697,2158,2159,1700,1701,2159,1702,2160,1704,1705,1705,1707,1723,1697,1697,1709,1710,2161,2162,2163,2164,1714,1715,1714,1716,910,911,1717,1718,1718,1719,1720,2165,2155,2167,2169,-1,2156,-1,1723,2172,2173,-1,-1,-1,2174,2175,-1,1727,2179,2180,-1,-1,-1,-1,2184,2185,2183,1733,1734,2182,2170,2170,2186,2187,2188,2189,2190,2191,2192,-1,1744,2194,2190,2187,-1,2193,-1,-1,-1,2193,2198,-1,-1,-1,2181,2200,-1,2202,-1,-1,2169,-1,280,2148,1705,-1}}, + {0,1,{2148,2149,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2156,2156,-1,-1,2157,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2155,2167,2169,2156,2156,2170,-1,2172,2173,2161,2156,2169,2174,2175,2176,-1,2179,2180,2181,2182,354,2183,2184,-1,-1,-1,-1,-1,-1,-1,2186,2187,-1,-1,-1,2191,2192,2193,-1,-1,-1,2187,2169,-1,2195,2196,2197,2193,-1,2186,2199,2176,2181,-1,2201,2202,2203,1610,-1,1610,-1,2148,-1,2172}}, + {0,2,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2166,2168,2168,-1,-1,-1,2171,1603,-1,-1,-1,-1,-1,-1,2177,2178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2170,-1,-1,-1,-1,2189,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2204,2205,2206,2207,2206,1765,2208,1765,1767,1768,1767,1768,1762,2209,1762,2210,-1,2206,2211,2206,-1,-1,-1,-1,1762,1765,1762,1762,1768,1762,1765,2206,2212,1767,2212,1767,1767,1767,-1,1767,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2213,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2214,-1,-1,-1,-1,-1,-1,-1,-1,2215,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2216,-1,-1,2217,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2218,2219,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2220,2220,2220,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2221,2222,-1,-1,-1,2223,-1,-1,-1,-1,-1,-1,-1,-1,-1,2224,2225,-1,-1,-1,-1,-1,-1,-1,911,2226,2227,2227,-1,-1,-1,-1,-1,-1,-1,-1,-1,2228,2228,2229,2230,2229,-1,-1,-1,-1,-1,-1,-1,2231,2231,-1,-1,-1,-1,-1,2232,1735,-1,1736,-1,-1,-1,-1,-1,-1,-1,-1,-1,2233,2223,2234,2235,2236,2237,-1,-1,2238,2239,2240,2241,2242,-1,-1,2243,-1,-1,2244,-1,-1,2245,2246,2247,2248,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2249,2249,2249,-1,-1,-1,-1,-1,-1,-1,-1,2250,-1,-1,-1,-1,2251,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,1578,2267,2267,2267,2268,2268,2268,2269,2270,2271,2272,2273,2274,34,2275,33,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,45,45,2302,2303,2304,2305,2306,2307,1697,2308,2309,2310,2311,2312,2312,2313,2314,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,275,2342,2343,1746,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,122,2361,2362,2363}}, + {0,0,{2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2365,2366,2367,2368,2369,2370,2371,2372,2371,2373,2374,2375,2374,2376,2377,2376,2378,2364,2364,2379,2364,2380,2364,2364,2364,2381,2382,2383,2384,2385,2386,2387,2388,2389,160,161,162,163,2390,2364,2391,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,-1,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364,2364}}, + {0,0,{2392,2392,2392,2392,2392,2392,1895,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2402,2402,2402,2403,2404,2405,2404,2406,2407,2406,2406,2406,2408,204,2409,2410,2410,2410,2410,2410,2410,2410,2410,2411,2411,2411,2410,2411,2412,2413,2414,2411,2411,2415,2415,2420,2416,2416,2417,227,2418,2419,227,2421,227,227,227,227,227,227,227,887,2421,2422,2423,2424,2424,2424,2425,2424,2424,2426,2426,2427,925,2428,2428,2392,2416,2429,2430,2431,2432,2433,2434,2435,2436,2437,2429,2437,2438,2400,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2450,2394,2451,2452,2453,2454,2454,2454,2455,2456,2428,2457,2458,2459,282,2460,1760}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,960,960,960,960,960,1769,1769,1769,960,961,2461,1763,1763,1770,2462,2463,2462,2464,2462,2464,2465,2466,2467,2468,1966,2467,1966,1966,2469,2470,2467,2471,1966,2472,2473,983,982,981,2474,2475,1772,1773,2476,2476,1967,981,982,982,2461,2477,2478,2478,2478,1969,2479,2476,2479,2479,2461,981,983,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{985,2480,2481,988,989,990,2482,992,2483,994,2484,996,2485,998,2486,1000,2487,2488,2489,2490,1005,2491,1007,2492,2493,1010,2494,1012,2495,2496,1015,2497,1017,1018,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,1032,2511,2512,2513,2514,2515,1038,1039,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,1053,2529,2530,1056,1057,2531,2532,1060,2533,2534,1063,1064,2535,2536,2537,2538,1069,1070,2539,2540,1073,2541,2542,1076,2543,2544,2545,2546,1081,2547,1083,1084,2548,2549,2550,2551,2552,2553,2554,2555,1093,2556,1095,2557,1097,2558,2559,1100,1101,2560,2561,2562,1105,2563,2564,2565,1109,2566,2567,2568}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2569,2570,2571,1115,1116,310,1117,2572,2573,1115,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,325,2585,325,1133,2585,2587,2588,330,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,340,2600,1148,2601,2602,2603,1152,310,1153,1154,2604,2605,2599,2606,2607,1157,1115,1158,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{0,1,2,-1,-1,-1,5,2608,-1,-1,1575,-1,1576,1576,2609,1578,-1,-1,-1,-1,-1,-1,2610,2610,2611,2611,62,2611,33,33,38,38,1610,2612,1591,1591,96,1617,34,1593,260,1616,35,1616,62,-1,1573,79,1589,1590,2613,44,-1,-1,1587,1587,42,45,45,2614,25,2615,-1,103,-1,1585,-1,34,36,37,35,35,72,72,-1,-1,2616,74,-1,-1,1603,1601,70,70,67,68,69,1579,-1,-1,56,-1,59,59,1595,-1,-1,12,260,-1,10,9,2617,13,12,1620,-1,1604,1605,1603,1603,1606,2618,116,-1,-1,-1,2619,115,2620,2621,2622,1594,123,122,2620,2623,2620}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,2624,1622,147,148,1623,150,151,152,153,154,155,156,2625,158,159,160,161,162,163,1624,1625,166,167,168,169,1626,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{0,1,2,-1,-1,-1,5,2608,-1,-1,1575,-1,1576,1576,1576,1578,-1,-1,-1,-1,-1,-1,2610,2610,2611,2611,62,2611,33,33,38,38,1610,1591,1591,1591,96,1617,34,1593,260,1616,35,1616,62,-1,1573,79,1589,1590,222,44,-1,-1,1587,1587,42,45,45,1581,25,27,-1,103,-1,1585,-1,34,36,37,35,35,72,72,-1,-1,1602,74,-1,-1,1603,1601,70,70,67,68,69,1579,-1,-1,56,-1,59,59,1595,-1,-1,12,260,-1,10,9,2617,13,12,1620,-1,1604,1605,1603,1603,1606,46,116,-1,-1,-1,115,115,2620,2621,2622,1594,123,122,2620,2623,2620}}, + {0,0,{1774,1775,1776,1777,2626,182,183,1778,2627,1779,1780,2628,1782,188,2629,1783,1784,1785,1786,1787,1788,195,196,197,198,199,200,201,202,1789,1790,205,206,207,208,1791,1792,1793,1794,211,1795,1796,214,215,216,268,2630,2631,2632,2632,2633,1798,1799,1800,1801,225,1802,1803,1804,1805,2634,2635,230,254,232,233,234,235,2636,237,238,239,1808,1809,2637,1810,242,243,244,1811,246,247,1812,1813,249,250,251,1814,2638,253,254,255,1815,1816,1817,1818,1819,259,1820,1821,1822,1823,1824,1825,264,265,266,267,268,269,270,271,1826,272,273,1827,1828,1829,276,1830,1831,1832,1833,1834,1835,1836,283,284}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2639,-1,-1,-1,2639,2640,2641,1838,1839,2642,2643,1842,1843,1844,1845,1846,1847,1848,1849,1850,2644,2645,1853,1854,1855,2646,1857,2647,2648,2649,2650,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,2651,2652,1875,1876,1877,1878,1879,1880,1881,2653,2654,2655,1885,1886,1887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1676,1677,2150,1677,2151,1677,1681,1676,716,2656,2656,787,2657,2657,2657,1721,1688,1688,1688,1690,1690,1690,1692,1692,1696,1696,1696,1696,1697,1697,1697,1697,2658,2159,2659,2660,2159,1702,2160,2661,1705,1705,2662,1723,1697,1697,2663,1710,2664,2162,2664,2665,2420,212,2420,909,910,911,1717,1718,1718,1719,1720,2165,1722,1697,1697,1697,1722,1722,1723,1723,2666,2666,2666,2666,2667,2667,1727,1727,1727,2668,2669,1940,1941,1941,1942,2185,2670,2670,2671,2672,1736,2673,2674,1738,2675,2676,1947,1742,1950,1950,1950,2677,1742,2665,1952,2678,2678,2678,2667,2667,1748,2679,1750,1752,1752,1750,1750,1957,2680,1755,1960,1757,280,2159,1705,2681}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2682,2682,1762,1764,1764,1764,1765,2683,1765,1967,1768,1967,1768,1762,2684,1762,1967,1967,-1,1967,-1,1768,2684,-1,-1,1762,1765,1762,1762,1768,1762,1765,1764,2685,1967,1967,1967,1967,1967,-1,1967,-1,-1,-1,-1,1967,1967,1967,-1,-1,1967,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1971,1972,1973,2686,1975,2687,1977,1978,1979,1980,1981,2688,1983,1984,2689,1986,2690,1988,1989,1990,1991,1992,1993,2691,1995,1996,1997,1998,1999,2000,2001,2692,2003,2004,2005,2693,2007,2008,2009,2010,2694,2695,2696,2697,2698,2016,2017,2018,2019,2020,2021,2022,2699,2700,2701,2026,2702,2703,2704,2705,228,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2706,2707,2044,2045,2046,2708,2709,245,2048,2049,2710,2711,2052,2712,2054,2055,2056,2057,2058,2713,2060,2061,2714,2063,2715,2716,2717,2067,2718,2069,2719,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,274,2083,2084,2085,2720,278,2087,2721,2722,2723,2724,2092,2725}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2094,2094,2095,2096,2097,2098,2099,2726,2101,2102,2103,2727,2105,2106,2728,2108,2729,2730,2729,2731,2732,2113,2733,2115,2729,2116,2117,2118,2119,2120,2121,2122,2123,2124,2734,2735,2736,2737,2738,2739,2131,2132,2133,2134,2135,2136,2137,2740,2741,2742,2141,2142,2143,2144,2145,2146,2743,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2,2,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,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,2744,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126}}, + {0,0,{2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2761,2762,1563,1564,374,375,2763,2764,1567,2765,186,2766,2767,1570,1571,2768,2152,716,2769,2770,1577,1578,2185,1580,2771,2772,26,2773,28,1583,30,2774,2775,2776,2777,795,2778,34,38,33,1715,2779,2780,42,43,2781,800,2782,2783,2784,2785,2786,1591,1592,1593,2787,1733,1735,2788,58,2789,2790,2791,2792,1598,1599,1600,1601,2793,68,1731,1729,71,2794,1747,74,1603,2795,820,1606,79,629,248,1607,1702,1608,1609,86,2796,1611,822,1613,1614,1615,256,257,258,2797,97,2798,1618,1619,262,263,628,2799,2800,1620,107,108,109,110,1705,112,113,114,115,116,1750,1621,119,120,279,280,281,2801,125,2802}}, + {0,1,{2817,2818,2819,2283,2288,2820,2291,2821,2159,1702,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,1755,-1,2836,2837,2838,2839,2881,2840,2841,2842,2843,2844,2845,2846,2847,2882,-1,2848,-1,2849,2850,2851,2852,2281,2853,2854,2855,2856,2857,1715,1714,1716,910,911,1717,2858,1718,1719,1720,2859,-1,2778,-1,2860,1704,2860,1723,2861,-1,2862,-1,2863,-1,2864,1727,-1,2865,2866,2669,1729,1730,2867,-1,-1,1721,-1,1734,-1,1736,2673,2674,1738,2188,2868,1741,2767,1744,2869,2870,2677,1742,2665,1746,2871,1701,2872,2873,2338,1748,2874,2875,2876,-1,2877,122,2878,1754,2245,2879,2880,280,-1,-1,2165}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2803,2804,2805,2806,127,2807,651,2808,2809,2810,132,362,134,135,136,361,138,139,2377,141,142,143,144,2811,1622,291,2812,1623,150,367,368,292,365,366,156,364,158,2813,2814,2815,162,163,1624,363,2816,167,168,169,1626,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2883,2883,2884,2885,2886,2887,2888,2889,2890,2889,2891,2889,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2921,2930,2931,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1676,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2932,2932,2933,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2934,213,-1,-1,-1,-1,2935,2936,2937,2938,-1,-1,-1,-1,-1,-1,2939,2671,-1,2940,2941,2942,-1,-1,-1,-1,-1,-1,2943,2944,2945,1940,2666,2666,2946,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2947,-1,-1,-1,2948,2949,-1,-1,-1,2950,2951,-1,2952,-1,2953,-1,2954,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,127,2641,1838,1839,1840,2643,1842,1843,1844,1845,1846,1847,1848,1849,1850,2644,2645,1853,1854,1855,2646,1857,2647,2648,2649,2650,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,2651,2652,1875,1876,1877,1878,1879,1880,1881,2653,2654,2655,1885,1886,1887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1562,179,1563,1564,374,375,1565,1566,1567,1568,186,1569,187,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,25,26,1582,28,1583,30,1584,1585,33,34,35,36,1586,38,33,39,40,1587,42,43,44,45,46,222,1588,1589,1590,1591,1592,1593,1594,55,56,1595,58,59,1596,1597,62,1598,1599,1600,1601,67,68,69,70,71,72,1602,74,1603,1604,1605,1606,79,80,81,1607,83,1608,1609,86,1610,1611,1612,1613,1614,1615,256,257,1616,96,97,1617,1618,1619,262,263,103,104,105,1620,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126}}, + {0,0,{2955,2956,2957,2958,2959,2960,2961,1690,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,1719,2981,2982,2982,2982,2983,2984,2985,2986,2987,2987,2988,2989,212,2990,2991,-1,2982,2992,2993,2936,2994,2938,2982,2982,2982,2982,2982,2982,2995,2996,2997,2940,2998,2942,2999,1738,3000,2982,2982,2982,224,3001,3002,3003,3004,2666,3005,2982,-1,3006,-1,-1,-1,-1,-1,-1,3007,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3008,3009,-1,-1,-1,3010,-1,-1,-1,2874,2936,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2947,-1,3011,-1,3012,2949,3013,3014,3015,2950,2951,3016,2952,3017,2953,3018,2954,3019,3020,3021,2982,-1,-1,3022,-1,3023,-1,-1,-1,3026,3027,-1,3028,3029,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1676,1677,1678,3030,3031,1890,3032,1676,1682,3033,875,3034,1685,1893,1679,1687,1894,1895,1688,1689,1690,1896,1897,887,1693,1694,1695,3035,1899,1697,1697,1697,1698,1901,2659,2660,1901,1702,1703,2661,1705,1706,1909,1910,1697,1697,2663,3036,1917,1916,1917,1713,2420,212,2420,909,910,911,1717,1718,3037,3038,204,1721,1722,1697,1697,1697,1722,1722,1723,1724,1725,1725,1725,1725,922,1934,3039,3039,3039,925,1728,1940,1941,1941,1942,1938,1921,2670,2671,2672,1736,1953,1712,1945,3040,1740,3041,1948,1949,1950,1950,1951,1948,1713,1952,1953,1953,1953,1954,1954,1748,1749,1750,3042,1752,1750,1750,1957,1958,1959,1960,1757,1758,1759,1760,1761}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,960,961,1963,1763,1764,1762,1765,1966,1765,1967,1768,1968,1967,971,1769,1762,-1,973,974,-1,-1,1768,-1,-1,-1,3043,1765,1762,1969,1768,1762,1765,1772,1773,1967,1967,1967,981,982,-1,983,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{985,2480,2481,988,989,990,2482,992,2483,3044,2484,996,2485,998,2486,1000,2487,2488,2489,2490,1005,2491,1007,2492,2493,1010,2494,1012,3045,2496,1015,2497,1017,1018,2498,3046,2500,3047,2502,2503,2504,2505,2506,2507,2508,2509,2510,1032,2511,2512,2513,3048,2515,1038,1039,2516,2517,3049,3050,2520,3051,2522,3052,3053,1049,2526,3054,2528,1053,1054,3055,1056,1057,1058,1059,1060,2533,2534,1063,1064,3056,2536,2537,2538,1069,1070,3057,2540,1073,2541,2542,1076,1077,3058,2545,3059,1081,3060,1083,1084,2548,2549,2550,2551,2552,2553,2554,2555,1093,2556,1095,2557,1097,3061,2559,1100,1101,2560,2561,3062,3063,3064,3065,3066,3067,3068,3069,3070}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3071,3072,3072,3073,3074,3075,3076,3077,127,3078,3079,3080,3081,132,3082,134,3083,136,3084,138,139,3085,141,3086,3087,3088,3089,3087,3090,3087,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,160,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,173,3114,3115,3116,3117,1158,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2761,1676,3118,2150,781,1677,3119,3120,3121,-1,-1,-1,-1,-1,3122,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3123,3124,3125,-1,-1,-1,3126,3126,1697,3127,3128,3129,3130,3131,3132,2990,3133,3134,3135,3136,911,3137,3138,803,3139,3140,3141,3142,3143,3144,3145,3146,2788,3147,1736,2999,1738,2942,-1,3148,3149,3150,2662,224,3002,1940,2678,2666,241,3151,3152,-1,2667,-1,79,-1,-1,3153,3154,-1,-1,-1,3155,-1,-1,-1,91,3156,3157,94,-1,-1,-1,-1,-1,3158,-1,-1,-1,-1,-1,-1,-1,-1,3159,-1,-1,-1,-1,-1,2243,-1,-1,-1,-1,-1,3160,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,289,3181,-1,3182,-1,-1,3183,-1,-1,3184,3183,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,-1,3202,3203,-1,3204,3205,3206,3207,3208,3179,3209,3210,3211,3202,3212,3213,3214,3215,3216,-1,3217,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3218,3219,3220,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1774,1775,3221,3222,181,182,183,3223,3224,3225,186,1781,3226,3227,3228,190,191,192,3229,1787,3230,3231,196,197,198,199,200,3232,202,3233,3234,3235,3236,3237,3238,3239,3240,3241,210,3242,1795,3243,3244,215,3245,3246,218,3247,3248,3249,1797,50,3250,3251,1801,3252,3253,3254,3255,3256,3257,3258,59,3259,3260,3261,3262,235,236,3263,3264,3265,3266,3267,240,3268,242,3269,244,1811,3270,3271,3272,1813,249,3273,3274,3275,252,3276,3277,255,3278,3279,3280,1818,3281,3282,1820,3283,1822,3284,3285,1825,264,265,3286,3287,268,269,270,271,1826,272,273,3288,3289,3290,276,3291,3292,3293,3294,3295,3296,3297,3298,3299}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,147,3321,3322,3323,151,152,153,154,155,156,157,3324,3325,3326,3327,162,163,3328,3329,3330,167,168,3331,1626,3332,3333,3334,174,3335,176,3336,3337,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{203,1789,3338,3339,181,182,183,3340,3341,3342,1780,1781,1782,188,189,1783,1784,1785,3343,1787,1788,195,196,197,3342,199,200,3344,3345,203,3346,3347,3341,3348,3349,1791,1792,3350,3351,207,1795,1796,214,215,216,217,218,3352,220,221,3353,1798,1799,1800,1801,225,1802,1803,1804,1805,1806,229,230,231,232,233,234,235,1807,237,238,239,1808,1809,240,3354,242,243,244,3355,246,247,1812,1813,249,3356,3357,3358,3359,253,254,255,1815,1816,1817,3360,1819,259,1820,3361,1822,1823,1824,1825,264,265,266,3362,268,108,270,3340,3363,3364,273,1827,1828,1829,276,3365,3366,3367,1833,1834,3368,1836,3369,284}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3370,3370,128,129,130,3371,132,3372,134,135,136,137,138,139,140,141,142,143,144,145,1622,147,148,1623,150,151,152,153,154,155,156,157,158,159,160,161,162,163,1624,1625,166,167,168,169,1626,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1971,1972,1973,2686,1975,2687,1977,1978,1979,1980,1981,2688,1983,1984,2689,1986,2690,1988,1989,1990,1991,1992,1993,2691,1995,1996,1997,1998,1999,2000,2001,2692,2003,2004,2005,2693,2007,2008,2009,2010,3373,2695,2696,2697,2698,2016,2017,2018,2019,2020,2021,2022,2699,2700,2701,2026,2702,2703,2704,2705,228,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2706,2707,2044,2045,2046,2708,3373,245,2048,2049,2710,2711,2052,2712,2054,2055,2056,2057,2058,2713,2060,2061,2714,2063,2715,2716,2717,2067,2718,2069,2719,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,274,2083,2084,2085,2720,278,2087,2721,2722,2723,2724,2092,2725}}, + {0,0,{3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3422,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,2664,3446,3447,3448,3006,3449,3450,3451,3452,3010,3453,2943,3454,3455,3456,3457,2999,3458,3459,3460,1736,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3009,3473,3474,3475,3476,3477,3478,3479,1750,1752,3480,1957,3137,3481,3482,3483,2968,3484,3485,2159,3486,3487}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,466,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3488,-1,-1,-1,-1,1366,1366,308,3489,3490,3491,3492,481,3493,481,3494,3495,3496,3497,3498,3499,3500,3498,3500,490,3498,491,3498,330,3501,494,495,496,3502,3503,3504,3505,1367,1368,3506,3507,341,342,3508,506,507,508,509,510,511,3509,2605,3506,2606,351,516,308,3510,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466}}, + {0,0,{2955,2956,2957,2958,2959,2960,2961,1690,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,1719,2981,2982,2982,2982,2983,2984,2985,2986,2987,3437,2988,2989,212,213,2991,-1,2982,2992,2935,2936,3511,2938,2982,2982,2982,2982,2982,2982,3512,2996,3513,2940,3514,2942,2999,1738,3000,2982,2982,2982,224,3001,3002,3003,3004,2666,3005,241,-1,3006,-1,-1,2659,3515,-1,-1,3007,-1,-1,3516,-1,-1,3516,-1,-1,-1,-1,-1,-1,-1,-1,3379,-1,-1,-1,-1,-1,-1,3008,3009,-1,-1,-1,3010,-1,-1,-1,2874,2936,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2947,-1,3011,-1,3012,2949,3013,3014,3015,2950,2951,3016,2952,3017,2953,3018,2954,3019,3517,3021,2982,-1,-1,3022,-1,3023,-1,-1,-1,3518,3519,3520,3521,3522,3521,3522,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{1676,1677,2150,1677,2151,1677,1681,1676,716,1683,1683,2152,2153,2153,2153,1721,1688,1688,1688,1690,1690,1690,1692,1692,1696,1696,1696,1696,1697,1697,1697,1697,2158,2159,1700,1701,2159,1702,2160,1704,1705,1705,1707,1723,1697,1697,1709,1710,3523,2162,3523,2665,1714,1715,1714,1716,910,911,1717,1718,1718,1719,1720,2165,1722,1697,1697,1697,1722,1722,1723,1723,2794,2794,2794,2794,1747,1747,1727,1727,1727,2866,2669,1729,1730,1730,1731,2185,1733,1733,1734,1735,1736,2673,2674,1738,2188,2868,1741,1742,1744,1744,1744,2677,1742,2665,1746,2871,2871,2871,1747,1747,1748,2679,1750,1752,1752,1750,1750,1753,1754,1755,1756,1757,280,2159,1705,3524}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2682,2682,1762,1764,1764,1764,1765,3525,1765,1767,1768,1767,1768,1762,3526,1762,1767,-1,-1,1767,-1,1768,-1,-1,-1,1762,1765,1762,1762,1768,1762,1765,1764,2685,1767,1767,1767,1767,1767,-1,1767,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{3527,3527,3527,3528,3529,3530,3531,3532,3533,3534,3535,2152,3536,3537,3538,2820,2267,2267,2267,2268,2268,2268,2269,2270,3539,3540,1696,3541,1697,1697,1697,1697,3542,2278,2279,2817,2281,1702,2283,1704,2285,3543,1707,2288,1697,1697,1709,2292,3544,2294,3545,2296,1714,3546,1714,3547,3548,45,45,3549,3550,3551,3552,3553,2307,1697,1697,1697,1722,1722,2312,2312,2313,2314,2314,2315,2316,1747,3554,3555,3556,3557,2322,2323,2324,2325,2326,2185,2328,2328,3558,3558,2332,2332,3559,1738,2188,2336,2336,1742,1744,1744,1744,2677,1742,2665,1746,2344,2871,2871,1747,1747,3560,2882,3561,3562,3563,318,1750,3563,318,3564,3565,1757,3566,3567,3568,3524}}, + {0,1,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,293,3569,3570,3571,3572,3573,3574,3575,3576,2373,3577,2375,3578,3579,2377,3580,3581,-1,-1,2379,-1,-1,-1,-1,-1,2381,3582,3583,3584,3585,-1,-1,-1,-1,3586,3587,-1,-1,-1,-1,2391,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,1578,2267,2267,2267,2268,2268,2268,2269,2270,3588,2272,2273,2274,34,2275,33,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,45,45,2302,2303,2304,2305,2306,2307,1697,2308,2309,2310,2311,2312,2312,2313,2314,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,3589,2329,2330,2331,3590,3591,2333,2334,2335,2336,2337,2338,2339,2340,2341,275,2342,2343,1746,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,122,2361,2362,2363}}, + {0,0,{2955,2956,2957,2958,2959,2960,2961,1690,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,1719,2981,2982,2982,2982,2983,2984,2985,2986,2987,2987,2988,2989,212,213,2991,-1,2982,2992,2935,2936,3511,2938,2982,2982,2982,2982,2982,2982,3512,2996,3513,2940,3514,2942,2999,1738,3000,2982,2982,2982,224,3001,3002,3003,3004,2666,3005,2982,-1,3006,-1,-1,-1,-1,-1,-1,3007,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3008,3009,-1,-1,-1,3010,-1,-1,-1,2874,2936,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2947,-1,3011,-1,3592,2949,3013,3014,3015,2950,2951,3018,2952,3017,2953,3018,2954,3019,3517,3021,2982,-1,-1,3022,-1,3023,-1,-1,-1,3026,3027,-1,3028,3593,-1,-1,-1,-1,-1,3594,-1,-1,3595,3596,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3597,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,3601,3616,3620,316,3617,3615,3618,3601,3619,3601,3621,3601,3601,329,3601,3602,3637,3603,3622,3623,3599,3638,1858,3604,3624,3625,3611,3613,3630,3626,3627,3628,3631,3609,3632,3629,3598,343,344,3606,3607,3607,3636,3633,3634,3635,3610,3600,3605,3608,3612,3614,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2883,2883,3643,3641,3642,3641,3639,3639,3639,3639,3639,3639,3639,3639,3639,3639,3639,3639,3639,3644,3645,3667,329,3646,329,3647,3648,3649,3650,3651,3652,3653,3654,3655,349,3656,3657,3658,3659,3660,3642,3642,3642,3661,3662,3663,3664,349,3665,3666,3642,3649,3650,3640,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3690,3726,3727,3728,3729,3690,3730,3731,3732,3690,3733,3690,3734,3690,3735,3690,3736,3690,3737,3738,3739,3740,3741,3742,3690,3743,3744,3690,3745,3746,3747,3748,3749,3690,3690,3750,3690,3751,3690,3752,3690,3753,3754,3690,3755,3690,3690,3756,3690,3690,3690,3690,3690,3690,3690,3690,3757,3690,3690,3690,3690,3690,3690,3758,3759,3690,3690,3690,3690}}, + {0,0,{3760,3761,3762,3763,3764,3765,3766,3767,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3768,3769,3690,3770,3690,3771,3772,3773,3774,3775,3776,3777,3778,3778,3779,3776,3780,3690,3690,3781,3782,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690}}, + {0,0,{3783,3784,551,3785,867,3690,3786,552,3787,783,3788,3789,3790,3791,3792,3793,3794,716,3795,3796,3797,3798,3799,3800,3801,3802,3790,3803,913,522,522,3804,3805,3806,524,3807,525,3808,527,526,3809,3810,3811,3812,3813,3814,3815,700,3816,3817,537,3818,3819,3786,3820,3821,3822,933,3823,3824,934,3825,3826,3827,3828,924,3829,3830,3831,3832,815,816,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,527,3848,3849,3850,3800,3851,3852,3853,3854,3855,3856,3857,3858,3855,261,3859,3860,2165,3861,3862,3863,829,3864,3865,3866,3867,3868,3869,3870,830,3871,830,3872,3873,830,3874,540,3875,3876,3877,550}}, + {0,0,{3878,3878,3879,3880,3881,3882,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3929,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3835,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3985,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,649,649,745,746,130,747,640,748,641,728,642,749,643,644,750,645,751,657,752,4000,734,754,755,4001,757,758,759,760,761,762,647,763,764,765,766,767,768,769,694,4002,166,167,168,169,170,772,773,646,775,845,777,778,696,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,-1,-1,4124,4125,4126,-1,4127}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308}}, + {0,0,{4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4324,4327,4328,4324,4329,4324,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4354,4354,4354,4354,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309,4309}}, + {0,0,{3783,4355,4356,3785,867,4357,4358,884,4359,4360,4361,3789,4362,4363,4364,4365,3794,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,913,522,4377,4378,3805,4379,4380,4381,4382,4383,527,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,3813,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,3874,4466,4467,3876,4468,4469}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4324,4327,4328,4324,4329,4324,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4510,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595}}, + {0,0,{4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4606,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596,4596}}, + {0,0,{4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4644,4645,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4646,4515,4516,4517,4510,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4647,4530,4648,4532,4533,4534,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4649,4549,4650,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4651,4652,4653,4577,4578,4579,4580,4581,4582,4583,4654,4585,4586,4655,4588,4589,4590,4591,4592,4593,4594,4595}}, + {0,0,{4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4657,4657,4657,4657,4658,4657,4657,4657,4597,4598,4659,4600,4601,4602,4660,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4606,4631,4632,4633,4661,4662,4636,4663,4664,4639,4640,4641,4642,4643,4657,4657,4657,4657,4657,4665,4656,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666}}, + {0,0,{1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,4667,4668,4669,1410,1411,1550,1551,1414,1552,1416,1417,4670,1554,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,4671,1431,4672,4673,4674,4675,1436,1437,1438,1439,1440,1555,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,4676,1468,1469,1470,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,4677,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1510,1511,1512,4678,1514,4679,1516,4680,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1557,1531,1524,1558,1526,1533,1534,1535,1536,1537,1538,1539,1540,1541,1519,1542,1543,1543,1543,1543,1544,1545,1546,1547,1543,1548,1549,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{4681,4682,4683,4684,4685,4686,4687,1374,4688,1375,1376,4689,12,1377,1378,1379,4690,4691,4692,4693,20,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,409,4720,4721,4722,4723,4724,4725,4726,414,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,426,4738,4739,69,4740,4741,4742,4743,74,75,76,431,432,4744,4745,4746,82,4747,4748,85,4749,4750,436,4751,4752,4753,4754,439,4755,440,96,97,4756,4757,442,443,4758,103,4759,445,446,447,4760,4761,4762,4763,452,453,454,455,456,457,458,459,460,461,4764,4765,4766,464,4767}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4768,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4787,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,-1,-1,4809,4810,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{3783,3784,551,3785,867,3690,3786,552,3787,783,3788,3789,3790,3791,4811,3793,3794,716,4812,3796,3797,3798,3799,3800,3801,3802,4375,3803,913,522,523,3804,3805,3806,524,3807,525,4813,527,526,3809,3810,3811,3812,3813,4814,3815,700,3816,3817,537,3818,3819,4815,3820,3821,3822,933,3823,3824,934,3825,3826,3827,3828,924,3829,3830,3831,3832,815,816,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,4816,3844,3845,3846,4817,527,3848,3849,3850,3800,3851,3852,3853,3854,3855,3856,3857,3858,4818,261,3859,3860,2165,3861,3862,3863,829,3864,3865,3866,3867,4819,3869,3870,4820,4821,833,3872,3873,547,3874,540,3875,3876,3877,550}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4839,4844,4845,4846,4847,4848,4849,4850,4834,4832,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,4866,4867,4868,645,4869,4870,4871,4870,4872,4870,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,769,4897,771,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649}}, + {0,0,{4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5040,5041,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5042,5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5040,5041,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{4309,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,5101,1014,1015,1016,1017,1018,1019,5102,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,5103,1037,1038,1039,1040,1041,5104,5105,1044,5106,1046,5107,5108,2525,1050,5109,1052,1053,2529,5110,1056,1057,2531,2532,1060,1061,1062,1063,1064,5111,1066,1067,1068,1069,1070,5112,1072,1073,1074,1075,1076,2543,5113,1079,5114,1081,5115,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,5116,1109,5117,4309,4309}}, + {0,0,{5118,5119,5120,5121,5122,5123,5124,1119,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,1116,1112,1113,1114,1115,1116,310,1117,1118,1119,1115,5144,1121,5145,1123,5146,1125,5147,1126,5148,1128,1129,5149,1131,1132,5149,1132,1133,5149,2587,5150,492,1135,2590,2591,2592,1139,1140,5151,5152,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,310,1153,1154,5153,513,1145,514,1156,1157,1115,1158,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154,5154}}, + {0,0,{3783,5155,3690,3690,5156,3690,3690,3690,3690,3690,3690,381,3690,3690,4364,3690,3690,5157,3690,5158,5159,5160,3690,3690,3690,370,3690,5161,5162,5163,5164,5165,3690,5166,5167,5168,3807,3807,5169,527,5170,3690,3690,5171,5172,5171,829,5173,5174,3690,3690,5175,51,3690,3690,3690,5176,3822,5177,3690,419,5178,5176,422,3690,5179,5179,5180,427,3690,816,5181,3690,3834,3690,5182,429,3690,5183,432,5184,5185,81,3690,3690,3690,3690,3690,3690,3690,3690,90,3690,5186,439,5187,3690,3690,3690,3690,3690,3690,3690,5188,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,4820,3690,5189,3690,3690,3690,3690,3690,3690,3690,3690}}, + {0,0,{3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,5190,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,3690,3690,5214,761,5215,5216,5217,3690,3690,766,3690,3690,3690,5218,5219,5220,5221,5222,5223,3690,3690,5224,766,5225,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690,3690}}, + {0,0,{4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4510,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,5226,4591,4592,4593,4594,4595}}, + {0,0,{4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4656,4657,4657,4657,4657,4657,4657,4657,4657,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4606,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4657,4657,4657,4657,4657,4665,4656,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666,4666}}, + {0,0,{5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,5354}}, + {8,0,{5355,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5356,-1,-1,-1,-1,-1,-1,-1,-1,-1,5357,-1,5358,-1,-1,-1,5359,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5360,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5361,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {16,0,{5362,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5363,-1,-1,-1,-1,-1,-1,-1,5364,-1,-1,-1,-1,-1,5365,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5366,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {10,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5367,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {2,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5368,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5369,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5370,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5371,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {3,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {24,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5373,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {1,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5374,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {32,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5375,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5262,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {34,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5376,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {6,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5377,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,16,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5378,5379,5380,5381,5382,5383,5384,5385,5439,5440,5388,5441,5390,5391,5442,5443,5444,5395,5445,5397,5446,5447,5448,5449,5450,5403,5404,5405,5406,5407,5451,5409,5452,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,25,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5453,5390,5391,5442,5454,5444,5395,5445,5455,5446,5447,5448,5449,5450,5403,5404,5405,5406,5456,5451,5409,5452,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{5457,5458,5459,5460,5458,5461,5462,5463,5464,5465,5466,5468,5469,5470,5471,5472,5473,5475,5477,5470,5479,5480,5481,5482,5483,5484,5485,5486,28,29,30,31,32,33,34,35,36,37,38,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,5474,128,5476,130,131,132,5478,134,135,136,137,138,139,140,141,142,143,144,5467,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5496,5501,5502,5503,5504,5502,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5519,5520,5517,5521,5522,5523,5524,5525,5525,5526,5527,5528,5529,5530,5531,5532,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5537,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5505,5563,5537,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5500,5586,5523,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600,5598,5601,5602}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5603,5603,5604,5605,5604,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5615,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5632,5633,5634,5636,5637,5638,5639,5640,-1,5641,5642,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{5643,5644,5645,5646,5647,5648,5649,5650,5651,5651,5652,5653,5654,5655,5656,2823,5657,5658,5659,5660,2292,5661,3531,5662,3551,3436,5663,2820,5664,122,2354,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5682,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,2874,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5691,5725,5682,5726,5727,5728,5729,5730,5731,5732,2852,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,1755,5744,5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755}}, + {0,1,{5756,5757,5758,5759,5760,716,5761,5762,5763,5764,5765,1736,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,2,{3444,3462,3402,3460,2939,3382,2945,3404,3405,3374,3376,2943,3454,3470,5851,3400,3432,3449,3443,5852,3430,5853,3010,3453,3462,5854,3437,3412,3458,3459,3403,5855,5856,3377,5857,5858,5859,5860,5850,3480,3419,5861,5862,3445,5863,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, + {0,0,{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5814,5816,5817,5818,5817,5819,5820,5819,5821,5822,5823,5824,5825,5826,5827,5828,-1,5819,5814,5829,5830,5831,5832,5833,5834,5817,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}}, +}; + +const BanksDump::InstrumentEntry g_embeddedBanksInstruments[] = +{ + {0,0,0,0,0,0,0x808,0x2314,0x189,{0,1}}, + {0,0,0,0,0,0,0x808,0x23E2,0x189,{2,3}}, + {0,0,0,0,0,0,0x808,0x23F0,0x2D0,{4,5}}, + {0,0,0,0,0,0,0x606,0x245A,0x190,{6,7}}, + {0,0,0,0,0,0,0,0x22A2,0x182,{8,3}}, + {0,0,0,0,0,0,0,0x23F6,0x190,{9,3}}, + {0,0,0,0,0,0,0x808,0x1C8A,0x459,{10,11}}, + {0,0,0,0,0,0,0xA0A,0x23FD,0xE2,{12,13}}, + {0,0,0,0,0,0,0,0x11F1,0x57E,{14,15}}, + {0,0,0,0,0,0,0x202,0x1CA5,0x445C,{16,17}}, + {0,0,0,0,0,0,0x202,0x938,0xACE,{18,19}}, + {0,0,0,0,0,0,0,0x23F0,0x2DD,{20,21}}, + {0,0,0,0,0,0,0,0x161,0x196,{22,23}}, + {0,0,0,0,0,0,0x404,0x26C,0x2D6,{24,25}}, + {0,0,0,0,0,0,0xC0C,0x1220,0x1589,{26,27}}, + {0,0,0,0,0,0,0x404,0x4BD,0x56A,{28,29}}, + {0,0,0,0,0,0,0x202,0x9C40,0x132,{30,31}}, + {0,0,0,0,0,0,0x202,0x9C40,0xC1,{32,33}}, + {0,0,0,0,0,0,0x404,0x9C40,0xC1,{34,35}}, + {0,0,0,0,0,0,0x404,0x9C40,0x84E,{36,37}}, + {0,0,0,0,0,0,0,0x9C40,0x916,{38,39}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{40,41}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x19D,{42,43}}, + {0,0,0,0,0,0,0x606,0x9C40,0x189,{44,45}}, + {0,0,0,0,0,0,0xC0C,0xFC1,0xE9,{46,47}}, + {0,0,0,0,0,0,0xC0C,0x3929,0x146,{48,49}}, + {0,0,0,0,0,0,0,0x23DC,0xE2,{50,51}}, + {0,0,0,0,0,0,0x606,0x11EA,0xE2,{52,53}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{54,55}}, + {0,0,0,0,0,0,0x808,0x9C40,0x8C,{56,57}}, + {0,0,0,0,0,0,0x808,0x9C40,0x8C,{58,59}}, + {0,0,0,0,0,0,0x808,0x47CC,0xE2,{60,61}}, + {0,0,0,0,0,0,0x202,0x9C40,0x140,{62,63}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xBA,{64,65}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{66,67}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xA0,{68,69}}, + {0,0,0,0,0,0,0x808,0x9C40,0x42,{70,71}}, + {0,0,0,0,0,0,0x808,0x9C40,0x42,{72,73}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{74,67}}, + {0,0,0,0,0,0,0x808,0x9C40,0x294,{75,76}}, + {0,0,0,0,0,0,0x808,0x9C40,0x2E4,{77,78}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{79,80}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2D0,{81,82}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2C2,{83,84}}, + {0,0,0,0,0,0,0,0x4DE,0x585,{85,86}}, + {0,0,0,0,0,0,0,0x120C,0xAAD,{87,88}}, + {0,0,0,0,0,0,0x202,0x1AE0,0x113D,{89,90}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xE2,{91,92}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{93,94}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x506,{95,96}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5A0,{97,96}}, + {0,0,0,0,0,0,0,0x9C40,0x488,{98,99}}, + {0,0,0,0,0,0,0,0x9C40,0x10A,{100,101}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x47A,{102,103}}, + {0,0,0,0,0,0,0x808,0x459,0x55D,{104,105}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x8C,{106,107}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x8C,{108,109}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x139,{110,111}}, + {0,0,0,0,0,0,0x202,0x9C40,0x56,{112,113}}, + {0,0,0,0,0,0,0x202,0x9C40,0x71,{114,115}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{116,117}}, + {0,0,0,0,0,0,0,0x9C40,0xD5,{118,119}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{120,121}}, + {0,0,0,0,0,0,0x808,0x9C40,0x64,{122,123}}, + {0,0,0,0,0,0,0x808,0x9C40,0x92,{124,125}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x92,{126,127}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{128,129}}, + {0,0,0,0,0,0,0x808,0x9C40,0x71,{130,131}}, + {0,0,0,0,0,0,0x606,0x9C40,0x50,{132,133}}, + {0,0,0,0,0,0,0,0x9C40,0x7E,{134,135}}, + {0,0,0,0,0,0,0x404,0x9C40,0x16E,{136,137}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{138,139}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{140,139}}, + {0,0,0,0,0,0,0x202,0x9C40,0x71,{141,142}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{143,144}}, + {0,0,0,0,0,0,0,0x9C40,0x294,{145,146}}, + {0,0,0,0,0,0,0,0x9C40,0x26C,{147,148}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x189,{149,150}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x189,{151,152}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{153,154}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{155,156}}, + {0,0,0,0,0,0,0,0x9C40,0xDC,{157,158}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{159,160}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{161,162}}, + {0,0,0,0,0,0,0x202,0x9C40,0x190,{163,164}}, + {0,0,0,0,0,0,0,0x9C40,0x2BC,{165,166}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x92,{167,168}}, + {0,0,0,0,0,0,0x202,0x9C40,0x585,{169,170}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x1205,{171,172}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2BC,{173,174}}, + {0,0,0,0,0,0,0,0x9C40,0x1172,{175,176}}, + {0,0,0,0,0,0,0x808,0x9C40,0x495,{177,178}}, + {0,0,0,0,0,0,0,0x9C40,0x146,{179,180}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x49C,{181,182}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{183,184}}, + {0,0,0,0,0,0,0x202,0x1CE8,0x224C,{185,186}}, + {0,0,0,0,0,0,0,0x9C40,0x1450,{187,188}}, + {0,0,0,0,0,0,0,0x14A6,0x2A5E,{189,190}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x28D,{191,192}}, + {0,0,0,0,0,0,0,0x2349,0x564,{193,194}}, + {0,0,0,0,0,0,0x606,0x9C40,0x14A6,{195,196}}, + {0,0,0,0,0,0,0x606,0x9C40,0x1492,{197,198}}, + {0,0,0,0,0,0,0x404,0x9C40,0x1309,{199,200}}, + {0,0,0,0,0,0,0,0x23A0,0x2DD,{201,202}}, + {0,0,0,0,0,0,0,0x1C5C,0x466,{203,204}}, + {0,0,0,0,0,0,0x404,0x1C69,0x24A,{205,206}}, + {0,0,0,0,0,0,0x808,0x3750,0x41E9,{207,208}}, + {0,0,0,0,0,0,0xC0C,0x49C,0x56A,{209,210}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{211,212}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2C2,{213,214}}, + {0,0,0,0,0,0,0x606,0x9C40,0x64,{215,216}}, + {0,0,0,0,0,0,0x606,0x11F8,0x578,{217,218}}, + {0,0,0,0,0,0,0xA0A,0x265,0x2DD,{219,220}}, + {0,0,0,0,0,0,0x808,0x4BD,0x578,{221,222}}, + {0,0,0,0,0,0,0xA0A,0xC1,0x474,{223,224}}, + {0,0,0,0,0,0,0x606,0x11DD,0x1539,{225,226}}, + {0,0,0,0,0,0,0x404,0xE7A,0x113D,{227,228}}, + {0,0,0,0,0,0,0xE0E,0x1C41,0x217D,{229,230}}, + {0,0,0,0,0,0,0xE0E,0xBCC,0x64,{231,232}}, + {0,0,0,0,0,0,0xE0E,0x625,0xA49,{233,234}}, + {0,0,0,0,0,0,0xE0E,0x98E,0x876,{235,236}}, + {0,0,0,0,0,0,0xE0E,0x2ECC,0x2A36,{237,238}}, + {0,0,0,0,0,0,0,0x1D2,0x139,{239,240}}, + {0,0,0,0,0,0,0xA0A,0x3EE,0x452,{241,242}}, + {0,0,0,0,0,0,0xE0E,0x17C,0x49,{237,243}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2B5,{244,245}}, + {0,0,0,0,0,0,0xE0E,0x230,0x92,{246,247}}, + {0,0,0,35,0,0,0x808,0x17C,0x1B8,{248,249}}, + {0,0,0,52,0,0,0x808,0x78,0x5D,{250,251}}, + {0,0,0,48,0,0,0xE0E,0x11E,0x146,{252,253}}, + {0,0,0,58,0,0,0,0xAD,0xC1,{254,255}}, + {0,0,0,60,0,0,0xE0E,0x118,0x140,{252,253}}, + {0,0,0,47,0,0,0x404,0x208,0x25E,{256,257}}, + {0,0,0,43,0,0,0xA0A,0xAD,0xC1,{258,259}}, + {0,0,0,49,0,0,0x404,0x201,0x258,{256,257}}, + {0,0,0,43,0,0,0xA0A,0xA0,0xA6,{258,260}}, + {0,0,0,51,0,0,0x404,0x201,0x258,{256,257}}, + {0,0,0,43,0,0,0xA0A,0x70E,0x82D,{261,262}}, + {0,0,0,54,0,0,0x404,0x201,0x25E,{256,257}}, + {0,0,0,57,0,0,0x404,0x208,0x258,{256,257}}, + {0,0,0,72,0,0,0xE0E,0x74A,0x8A5,{237,263}}, + {0,0,0,60,0,0,0x404,0x208,0x251,{256,257}}, + {0,0,0,76,0,0,0xE0E,0x5C8,0x6A4,{264,265}}, + {0,0,0,84,0,0,0xE0E,0x542,0x632,{266,267}}, + {0,0,0,36,0,0,0x606,0x460,0x4CA,{268,269}}, + {0,0,0,65,0,0,0xE0E,0x125,0x140,{270,271}}, + {0,0,0,84,0,0,0xE0E,0x542,0x639,{272,273}}, + {0,0,0,83,0,0,0x808,0xDC,0xF6,{274,275}}, + {0,0,0,84,0,0,0xE0E,0x550,0x646,{237,263}}, + {0,0,0,24,0,0,0xC0C,0x73D,0x876,{276,277}}, + {0,0,0,77,0,0,0xE0E,0x5BA,0x690,{264,265}}, + {0,0,0,60,0,0,0x606,0xAD,0xC1,{278,279}}, + {0,0,0,65,0,0,0x607,0xC1,0x132,{280,281}}, + {0,0,0,59,0,0,0x606,0xA0,0x140,{282,283}}, + {0,0,0,51,0,0,0x606,0xAD,0xC1,{284,285}}, + {0,0,0,45,0,0,0x606,0xFD,0x258,{286,287}}, + {0,0,0,71,0,0,0xE0E,0x1B1,0x1FA,{288,289}}, + {0,0,0,60,0,0,0xE0E,0x118,0x5D,{290,291}}, + {0,0,0,58,0,0,0xE0F,0x1ED,0x244,{292,293}}, + {0,0,0,53,0,0,0xE0F,0x1FA,0x251,{294,295}}, + {0,0,0,64,0,0,0xE0E,0xDC,0xAD,{296,297}}, + {0,0,0,71,0,0,0xE0E,0x6A,0x78,{298,299}}, + {0,0,0,61,0,0,0xE0E,0x3DA,0x46D,{300,301}}, + {0,0,0,61,0,0,0xE0E,0x76C,0x89E,{302,303}}, + {0,0,0,44,0,0,0xE0E,0xD5,0xAD,{304,305}}, + {0,0,0,40,0,0,0xE0E,0x24A,0x190,{306,307}}, + {0,0,0,69,0,0,0x1,0x78,0x140,{308,309}}, + {0,0,0,68,0,0,0,0x78,0x140,{310,311}}, + {0,0,0,63,0,0,0x1,0x8C,0x1B1,{308,311}}, + {0,0,0,74,0,0,0,0x118,0x10A,{312,313}}, + {0,0,0,60,0,0,0,0x3FC,0x445,{314,315}}, + {0,0,0,80,0,0,0x808,0xD5,0xE9,{316,317}}, + {0,0,0,64,0,0,0x808,0xA06,0xB9D,{318,319}}, + {0,0,0,72,0,0,0xE0E,0x7E,0x56,{320,321}}, + {0,0,0,73,0,0,0x606,0x182,0x78,{268,322}}, + {0,0,0,70,0,0,0xE0E,0x20E,0x3A5,{323,324}}, + {0,0,0,68,0,0,0x808,0x78,0x140,{325,309}}, + {0,0,0,48,0,0,0x607,0x16E,0x474,{326,327}}, + {0,0,0,53,0,0,0x404,0x201,0x258,{256,257}}, + {0,0,0,0,0,0,0x808,0x9C40,0x208,{328,329}}, + {0,0,0,0,0,0,0x606,0x9C40,0x64,{330,331}}, + {0,0,0,0,0x1,0,0xD0C,0x1CA5,0xDC,{332,333,334,335} }, + {0,0,0,0,0x1,0,0x100,0x1AFA,0xE2,{336,337,338,339} }, + {0,0,0,0,0x1,0,0x808,0x1309,0x139,{340,341,342,343} }, + {0,0,0,0,0,0,0x606,0x9C40,0x56,{344,345}}, + {0,0,0,0,0x1,0,0x100,0x100A,0x500,{346,347,348,349} }, + {0,0,0,0,0,0,0x202,0x938,0xACE,{350,351}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{352,353}}, + {0,0,0,0,0x1,0,0xB0A,0x251,0x2DD,{354,355,356,357} }, + {0,0,0,0,0x1,0,0x504,0x175C,0x1575,{358,359,360,361} }, + {0,0,0,0,0,0,0x404,0x4BD,0x56A,{362,363}}, + {0,0,0,0,0x1,0,0x707,0x9C40,0x5D,{364,365,366,367} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x6A,{368,369,370,371} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x6A,{372,373,374,375} }, + {0,0,0,0,0,0,0x101,0x9C40,0x5D,{376,377}}, + {0,0,0,0,0x1,0,0x100,0x9C40,0x6A,{378,379,380,381} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x92,{382,383,384,385} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{386,387,388,389} }, + {0,0,0,0,0x1,0,0xB0A,0xE81,0xE9,{390,391,392,393} }, + {0,0,0,0,0x1,0,0xC0C,0x395E,0x146,{394,395,396,49} }, + {0,0,0,0,0x1,0,0xA0A,0x2411,0x189,{397,398,399,400} }, + {0,0,0,0,0x1,0,0x808,0x3930,0x146,{401,402,403,404} }, + {0,0,0,0,0x1,0,0x908,0x1165,0xE2,{405,406,407,408} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{409,410,411,162} }, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{412,413}}, + {0,0,0,0,0x1,0,0x908,0x42AA,0xE2,{60,414,415,416} }, + {0,0,0,0,0x1,0,0x302,0xFCE,0xDC,{417,418,419,420} }, + {0,0,0,0,0x1,0,0x404,0x38B1,0x251,{421,422,423,424} }, + {0,0,0,0,0x1,0,0x606,0xAFD,0xE2,{425,426,426,427} }, + {0,0,0,0,0x1,0,0x606,0x29A,0x24A,{428,429,430,431} }, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{432,433}}, + {0,0,0,0,0x1,0,0xA0A,0x1F39,0xE2,{434,435,436,437} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x125,{438,439}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x182,{440,441}}, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{442,76,443,444} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x196,{445,446,447,448} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x599,{449,450,451,452} }, + {0,0,0,0,0x1,0,0xE0E,0x3E1,0x44C,{453,454,455,456} }, + {0,0,0,0,0x1,0,0xE0E,0xCBC,0x1090,{453,454,455,457} }, + {0,0,0,0,0x1,0,0x302,0x1ACC,0x1130,{89,90,458,459} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x190,{460,461,462,463} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x189,{464,465,93,94} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0xE2,{91,466}}, + {0,0,0,0,0,0,0x606,0x9C40,0x85,{467,468}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x85,{469,470}}, + {0,0,0,0,0x1,0,0xB0B,0x2BC,0x2A1,{471,472,473,474} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x1ED,{475,111,476,477} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{478,479}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x189,{480,481}}, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{482,483,484,485} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xD5,{486,487,488,489} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x64,{490,491,492,493} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0xF6,{494,495,496,497} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x104,{124,498,499,500} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x236,{501,502,503,504} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x21C,{505,506,507,508} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x71,{509,510,511,512} }, + {0,0,0,0,0x1,0,0x202,0x9C40,0x92,{513,514,515,516} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x7E,{517,518,519,520} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x175,{136,137,136,521} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xE2,{522,523,524,525} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x132,{526,527}}, + {0,0,0,0,0x1,0,0xE0F,0x9C40,0x2A1,{528,529,530,146} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x272,{531,532,533,534} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x279,{535,536,537,538} }, + {0,0,0,0,0,0,0,0x9C40,0x8C,{539,540}}, + {0,0,0,0,0x1,0,0x404,0x9C40,0x5D,{541,542,543,544} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x8C,{545,546,547,548} }, + {0,0,0,0,0,0,0,0x9C40,0xDC,{549,158}}, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{550,551,552,162} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x196,{553,554,555,556} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{557,558,559,560} }, + {0,0,0,0,0x1,0,0x302,0x9C40,0x53C,{561,562,563,564} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x11E4,{171,172,565,566} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x495,{567,174,568,569} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x1179,{570,571,572,176} }, + {0,0,0,0,0,0,0xA0A,0x9C40,0x49C,{181,573}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{574,184}}, + {0,0,0,0,0,0,0xE0E,0x3354,0x21B9,{575,576}}, + {0,0,0,0,0x1,0,0x706,0x9C40,0x141A,{577,578,579,580} }, + {0,0,0,0,0,0,0,0x23F0,0x2DD,{581,582}}, + {0,0,0,0,0,0,0,0x4D8,0x56A,{583,584}}, + {0,0,0,0,0,0,0x606,0x9C40,0x1492,{585,586}}, + {0,0,0,0,0,0,0x404,0x9C40,0x1309,{587,588}}, + {0,0,0,0,0x1,0,0x100,0x3C28,0x2C9,{589,590,591,592} }, + {0,0,0,0,0x1,0,0,0x1C70,0x466,{593,594,595,596} }, + {0,0,0,0,0x1,0,0xE0E,0xDE1,0x43E,{597,598,599,600} }, + {0,0,0,0,0x1,0,0x908,0x362A,0x40DE,{207,601,602,603} }, + {0,0,0,0,0x1,0,0xD0C,0x4D8,0x5AD,{209,210,604,605} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x5D,{211,212,606,607} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x29A,{213,214,608,609} }, + {0,0,0,0,0x1,0,0x606,0x9C40,0x64,{610,611,612,613} }, + {0,0,0,0,0x1,0,0xB0A,0x26C,0x2EA,{614,615,219,220} }, + {0,0,0,0,0x1,0,0x100,0x4C4,0x57E,{616,617,221,222} }, + {0,0,0,0,0,0,0xE0E,0xAD,0xE9,{618,619}}, + {0,0,0,0,0,0,0xE0E,0x3C0,0x466,{620,621}}, + {0,0,0,0,0x1,0,0xF0E,0x78D,0x49C,{622,623,624,623} }, + {0,0,0,0,0,0,0xE0E,0xC36,0x64,{625,626}}, + {0,0,0,0,0,0,0,0xE9,0x64,{627,628}}, + {0,0,0,0,0,0,0xE0E,0x19B4,0xAD5,{629,630}}, + {0,0,0,0,0,0,0xE0E,0x111,0x50,{631,632}}, + {0,0,0,0,0,0,0x808,0x2EF4,0x898,{633,634}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2D6,{635,636}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x2A1,{244,637,638,638} }, + {0,0,0,0,0x1,0,0xE0E,0x230,0x92,{639,640,641,642} }, + {0,0,0,35,0,0,0xE0E,0x9C40,0x71,{643,644}}, + {0,0,0,0,0,0,0xE0E,0xAD,0xC1,{645,646}}, + {0,0,0,35,0,0,0x202,0x14D,0x182,{647,648}}, + {0,0,0,35,0,0,0,0xD5,0x5D,{649,650}}, + {0,0,0,50,0,0,0xE0E,0x139,0x64,{651,652}}, + {0,0,0,18,0,0,0x606,0x1A4,0x189,{653,654}}, + {0,0,0,72,0,0,0xE0E,0xAD,0xAD,{655,656}}, + {0,0,0,74,0,0,0,0x99,0xA6,{657,658}}, + {0,0,0,35,0,0,0x808,0x17C,0x1B1,{659,249}}, + {0,0,0,16,0,0,0,0x49C,0x578,{660,661}}, + {0,0,0,0,0x4,0,0,0x6,0,{662,663}}, + {0,0,0,38,0,0,0xC0C,0xC8,0xE2,{664,665}}, + {0,0,0,38,0,0,0xE0E,0x15A,0x189,{666,667}}, + {0,0,0,31,0,0,0xE0E,0x196,0x5D,{668,669}}, + {0,0,0,35,0,0,0xE0E,0x19D,0x5D,{668,669}}, + {0,0,0,38,0,0,0xE0E,0x196,0x5D,{668,669}}, + {0,0,0,41,0,0,0xE0E,0x19D,0x5D,{668,669}}, + {0,0,0,45,0,0,0xE0E,0x139,0x5D,{668,669}}, + {0,0,0,50,0,0,0xE0E,0x139,0x5D,{668,669}}, + {0,0,0,36,0,0,0xE0E,0x55D,0x646,{670,671}}, + {0,0,0,36,0,0,0xE0E,0x8C,0x64,{672,673}}, + {0,0,0,48,0,0,0,0xD5,0xB4,{674,675}}, + {0,0,0,36,0,0,0,0xF6,0xC8,{674,675}}, + {0,0,0,36,0,0,0,0x6A,0x71,{676,677}}, + {0,0,0,0,0,0,0,0x85,0x71,{678,679}}, + {0,0,0,61,0,0,0,0xB4,0x5D,{680,681}}, + {0,0,0,96,0,0,0x101,0x2BC,0x33A,{682,683}}, + {0,0,0,38,0,0,0,0x222,0x294,{684,685}}, + {0,0,0,16,0,0,0x808,0x279,0x2D0,{248,249}}, + {0,0,0,18,0x1,0,0x606,0xC8,0x5D,{686,687,688,251} }, + {0,0,0,30,0,0,0xE0E,0x190,0x2DD,{689,690}}, + {0,0,0,35,0x1,0,0xF0E,0x251,0x2D0,{691,692,254,255} }, + {0,0,0,0,0,0,0xE0E,0x154,0x190,{252,253}}, + {0,0,0,0,0,0,0,0xD5,0x5D,{693,694}}, + {0,0,0,88,0,0,0xF0F,0x189,0x1CC,{695,696}}, + {0,0,0,88,0,0,0xF0F,0x99,0x5D,{697,698}}, + {0,0,0,79,0,0,0xE0E,0xA42,0xDD4,{699,700}}, + {0,0,0,14,0,0,0xE0E,0x2399,0x2A4A,{237,263}}, + {0,0,0,46,0,0,0xE0E,0x3AC,0x5D,{701,702}}, + {0,0,0,129,0x1,0,0xE0E,0x4A9,0x585,{703,704,705,706} }, + {0,0,0,58,0,0,0xE0E,0x5D5,0x876,{707,708}}, + {0,0,0,164,0,0,0xE0E,0x1E6,0xA99,{709,710}}, + {0,0,0,142,0,0,0xE0E,0x2392,0x2A5E,{711,712}}, + {0,0,0,9,0,0,0xE0E,0xC8,0xE2,{713,714}}, + {0,0,0,35,0x1,0,0xE0E,0x924,0xADC,{715,716,717,718} }, + {0,0,0,28,0,0,0xC0C,0x44C,0x168,{719,720}}, + {0,0,0,46,0,0,0xE0E,0x3B9,0x5D,{721,722}}, + {0,0,0,60,0,0,0x404,0x1E6,0x23D,{723,724}}, + {0,0,0,54,0,0,0x404,0x1ED,0x23D,{723,724}}, + {0,0,0,72,0,0,0,0xF6,0x118,{725,726}}, + {0,0,0,67,0,0,0,0xF0,0x111,{725,726}}, + {0,0,0,60,0,0,0,0x118,0x146,{725,726}}, + {0,0,0,1,0,0,0x808,0x3C6,0xA14,{727,728}}, + {0,0,0,77,0,0,0x808,0x154,0xAD,{729,730}}, + {0,0,0,72,0,0,0x808,0x154,0xAD,{729,730}}, + {0,0,0,90,0,0,0xE0E,0xCE,0xE2,{731,732}}, + {0,0,0,39,0,0,0,0x10A,0x64,{733,734}}, + {0,0,0,36,0,0,0,0x258,0x64,{735,736}}, + {0,0,0,35,0x1,0,0xD0C,0x17C,0x1BE,{737,738,739,739} }, + {0,0,0,35,0x1,0,0xD0C,0x1C5,0x1BE,{737,738,740,740} }, + {0,0,0,60,0,0,0xC0C,0xAD,0x5D,{741,742}}, + {0,0,0,7,0,0,0xE0E,0xA6,0xE2,{618,619}}, + {0,0,0,90,0,0,0x808,0xF6,0x5D,{743,744}}, + {0,0,0,90,0,0,0x808,0x452,0x78,{745,746}}, + {0,0,0,35,0,0,0xE0E,0xFD,0xC8,{747,297}}, + {0,0,0,5,0x1,0,0xF0E,0x744,0x2C2,{323,748,749,750} }, + {0,0,0,103,0,0,0x606,0x2A8,0x319,{751,752}}, + {0,0,0,3,0,0,0,0x64,0x5D,{753,754}}, + {0,0,0,1,0,0,0x707,0x20E,0x55D,{326,327}}, + {0,0,0,0,0,0,0x404,0x28D,0x2F8,{256,257}}, + {0,0,0,36,0,0,0xE0E,0x111,0x49,{755,756}}, + {0,0,0,60,0,0,0xE0E,0x9C40,0x5D,{757,758}}, + {0,0,0,37,0,0,0xC0C,0x4B0,0x578,{759,760}}, + {0,0,0,36,0,0,0xE0E,0x196,0x5D,{761,652}}, + {0,0,0,32,0,0,0x404,0x92,0xA0,{762,762}}, + {0,0,0,50,0,0,0x303,0x9C40,0x2C7A,{763,764}}, + {0,0,0,50,0,0,0xE0E,0x30C,0x42A,{765,766}}, + {0,0,0,83,0,0,0xA0A,0x78,0x5D,{767,768}}, + {0,0,0,72,0,0,0,0x190,0x1E6,{769,770}}, + {0,0,0,59,0,0,0xE0E,0x201,0x258,{288,289}}, + {0,0,0,64,0,0,0,0xB4,0xC1,{771,658}}, + {0,0,0,60,0,0,0,0xAD,0xC1,{771,658}}, + {0,0,0,72,0,0,0,0x99,0xA6,{772,773}}, + {0,0,0,62,0,0,0,0xA6,0xBA,{772,773}}, + {0,0,0,83,0,0,0x808,0x305,0x7E,{774,775}}, + {0,0,0,0,0,0,0x8,0x9C40,0x8C,{776,777}}, + {0,0,0,0,0,0,0x8,0x9C40,0x208,{328,329}}, + {0,0,0,0,0,0,0x8,0x9C40,0x1B8,{778,779}}, + {0,0,0,0,0,0,0x6,0x9C40,0x64,{330,331}}, + {0,0,0,0,0,0,0,0x9C40,0xC8,{780,781}}, + {0,0,0,0,0,0,0,0x9C40,0xCE,{782,781}}, + {0,0,0,0,0,0,0x8,0x9C40,0xF0,{783,784}}, + {0,0,0,0,0,0,0xA,0xD70,0xE2,{785,786}}, + {0,0,0,0,0,0,0,0xF42,0x57E,{787,788}}, + {0,0,0,0,0,0,0x2,0x3584,0x4441,{789,790}}, + {0,0,0,0,0,0,0x2,0x938,0xACE,{350,351}}, + {0,0,0,0,0,0,0,0x23F0,0x2DD,{791,21}}, + {0,0,0,0,0,0,0x4,0x26C,0x2D6,{356,357}}, + {0,0,0,0,0,0,0xC,0x1220,0x1582,{360,361}}, + {0,0,0,0,0,0,0x4,0x4BD,0x56A,{362,363}}, + {0,0,0,0,0,0,0x2,0x9C40,0x132,{30,31}}, + {0,0,0,0,0,0,0x2,0x9C40,0xC1,{32,33}}, + {0,0,0,0,0,0,0x4,0x9C40,0xC1,{34,35}}, + {0,0,0,0,0,0,0x4,0x9C40,0x84E,{36,37}}, + {0,0,0,0,0,0,0xC,0x9C40,0x6A,{40,41}}, + {0,0,0,0,0,0,0xA,0x9C40,0x19D,{42,43}}, + {0,0,0,0,0,0,0x6,0x9C40,0x189,{44,45}}, + {0,0,0,0,0,0,0xC,0xFC1,0xE9,{46,47}}, + {0,0,0,0,0,0,0xC,0x3929,0x146,{48,49}}, + {0,0,0,0,0,0,0x6,0x11EA,0x1561,{52,792}}, + {0,0,0,0,0,0,0x8,0x9C40,0x8C,{58,59}}, + {0,0,0,0,0,0,0x8,0x47CC,0xE2,{60,61}}, + {0,0,0,0,0,0,0x2,0x9C40,0x140,{62,63}}, + {0,0,0,0,0,0,0xA,0x9C40,0xBA,{64,65}}, + {0,0,0,0,0,0,0xA,0x9C40,0x85,{66,67}}, + {0,0,0,0,0,0,0xC,0x9C40,0xA0,{68,69}}, + {0,0,0,0,0,0,0x8,0x9C40,0x42,{70,71}}, + {0,0,0,0,0,0,0x8,0x21AC,0x5D,{793,71}}, + {0,0,0,0,0,0,0xA,0x9C40,0x85,{74,67}}, + {0,0,0,0,0,0,0x8,0x9C40,0x294,{75,76}}, + {0,0,0,0,0,0,0x8,0x9C40,0x2E4,{77,78}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{79,80}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2D0,{81,82}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2C2,{83,84}}, + {0,0,0,0,0,0,0x2,0x1AE0,0x113D,{89,90}}, + {0,0,0,0,0,0,0xE,0x9C40,0xE2,{91,92}}, + {0,0,0,0,0,0,0xA,0x9C40,0x506,{95,96}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5A0,{97,96}}, + {0,0,0,0,0,0,0xC,0x9C40,0x47A,{102,103}}, + {0,0,0,0,0,0,0x8,0x459,0x55D,{104,105}}, + {0,0,0,0,0,0,0xC,0x9C40,0x8C,{106,107}}, + {0,0,0,0,0,0,0xC,0x9C40,0x8C,{108,109}}, + {0,0,0,0,0,0,0xC,0x9C40,0x139,{110,111}}, + {0,0,0,0,0,0,0x2,0x9C40,0x56,{112,113}}, + {0,0,0,0,0,0,0x2,0x9C40,0x71,{114,115}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{116,117}}, + {0,0,0,0,0,0,0,0x9C40,0xCE,{118,794}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{120,121}}, + {0,0,0,0,0,0,0x8,0x9C40,0x64,{122,123}}, + {0,0,0,0,0,0,0x8,0x9C40,0x92,{124,125}}, + {0,0,0,0,0,0,0xA,0x9C40,0x92,{126,127}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{128,129}}, + {0,0,0,0,0,0,0x8,0x9C40,0x71,{130,131}}, + {0,0,0,0,0,0,0x6,0x9C40,0x50,{132,133}}, + {0,0,0,0,0,0,0x4,0x9C40,0x16E,{136,137}}, + {0,0,0,0,0,0,0x2,0x9C40,0x71,{141,142}}, + {0,0,0,0,0,0,0xB,0x9C40,0x189,{149,150}}, + {0,0,0,0,0,0,0xB,0x9C40,0x189,{151,152}}, + {0,0,0,0,0,0,0x2,0x9C40,0x190,{163,164}}, + {0,0,0,0,0,0,0xA,0x9C40,0x92,{167,168}}, + {0,0,0,0,0,0,0x2,0x9C40,0x585,{169,170}}, + {0,0,0,0,0,0,0xA,0x9C40,0x1205,{171,172}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2BC,{173,174}}, + {0,0,0,0,0,0,0x8,0x9C40,0x495,{177,178}}, + {0,0,0,0,0,0,0xA,0x9C40,0x49C,{181,182}}, + {0,0,0,0,0,0,0x2,0x1CE8,0x224C,{185,186}}, + {0,0,0,0,0,0,0xC,0x9C40,0x28D,{191,192}}, + {0,0,0,0,0,0,0x6,0x9C40,0x14A6,{195,196}}, + {0,0,0,0,0,0,0x6,0x9C40,0x1492,{197,198}}, + {0,0,0,0,0,0,0x4,0x9C40,0x1309,{199,200}}, + {0,0,0,0,0,0,0x4,0x1C69,0x24A,{205,206}}, + {0,0,0,0,0,0,0x8,0x3750,0x41E9,{207,208}}, + {0,0,0,0,0,0,0xC,0x49C,0x56A,{209,210}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{211,212}}, + {0,0,0,0,0,0,0xA,0x9C40,0x2C2,{213,214}}, + {0,0,0,0,0,0,0x6,0x9C40,0x64,{215,216}}, + {0,0,0,0,0,0,0x6,0x11F8,0x578,{217,218}}, + {0,0,0,0,0,0,0xA,0x265,0x2DD,{219,220}}, + {0,0,0,0,0,0,0x8,0x4BD,0x578,{221,222}}, + {0,0,0,0,0,0,0xA,0xC1,0x474,{223,224}}, + {0,0,0,0,0,0,0x6,0x11DD,0x1539,{225,226}}, + {0,0,0,0,0,0,0x4,0xE7A,0x113D,{227,228}}, + {0,0,0,0,0,0,0xE,0x1C41,0x217D,{229,230}}, + {0,0,0,0,0,0,0xE,0xBCC,0x64,{231,232}}, + {0,0,0,0,0,0,0xE,0x625,0xA49,{233,234}}, + {0,0,0,0,0,0,0xE,0x98E,0x876,{235,236}}, + {0,0,0,0,0,0,0xE,0x2ECC,0x2A36,{237,238}}, + {0,0,0,0,0,0,0xA,0x3EE,0x452,{241,242}}, + {0,0,0,0,0,0,0xE,0x17C,0x49,{237,243}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2B5,{244,245}}, + {0,0,0,0,0,0,0xE,0x230,0x92,{246,247}}, + {0,0,0,60,0x4,0,0,0x6,0,{795,795}}, + {0,0,0,73,0,0,0x8,0x251,0xAD,{796,797}}, + {0,0,0,74,0,0,0x8,0x251,0xAD,{796,797}}, + {0,0,0,80,0,0,0x8,0x251,0xAD,{796,797}}, + {0,0,0,84,0,0,0x8,0x251,0xAD,{796,797}}, + {0,0,0,92,0,0,0x8,0x208,0xA0,{796,797}}, + {0,0,0,81,0,0,0x6,0x312,0x78,{798,799}}, + {0,0,0,83,0,0,0x6,0x312,0x78,{798,799}}, + {0,0,0,95,0,0,0x6,0x2A8,0x78,{798,799}}, + {0,0,0,83,0,0,0x8,0x305,0x7E,{774,775}}, + {0,0,0,35,0,0,0x8,0x251,0x182,{800,801}}, + {0,0,0,60,0,0,0xE,0xC8,0x140,{802,803}}, + {0,0,0,59,0,0,0xE,0x6A,0x5D,{672,673}}, + {0,0,0,44,0,0,0xE,0xC8,0x140,{802,803}}, + {0,0,0,41,0,0,0xF,0x2C9,0x33A,{804,805}}, + {0,0,0,97,0,0,0,0x71,0x78,{806,807}}, + {0,0,0,44,0,0,0xF,0x201,0x258,{804,805}}, + {0,0,0,48,0,0,0xF,0x201,0x258,{804,805}}, + {0,0,0,96,0,0,0x8,0x2BC,0x99,{808,809}}, + {0,0,0,51,0,0,0xF,0x201,0x258,{804,805}}, + {0,0,0,54,0,0,0xF,0x201,0x258,{804,805}}, + {0,0,0,40,0,0,0xE,0x5C8,0xA7E,{810,811}}, + {0,0,0,57,0,0,0xF,0x17C,0x1B8,{804,805}}, + {0,0,0,58,0,0,0xE,0x5B4,0x862,{707,812}}, + {0,0,0,97,0,0,0,0xE9,0xF6,{813,814}}, + {0,0,0,50,0,0,0,0xBA,0xC1,{815,816}}, + {0,0,0,28,0,0,0xC,0x44C,0x168,{719,720}}, + {0,0,0,60,0,0,0xE,0x5A0,0x826,{707,812}}, + {0,0,0,53,0,0,0,0xB4,0x85,{817,818}}, + {0,0,0,46,0,0,0,0xAD,0x146,{819,820}}, + {0,0,0,57,0,0,0,0xB4,0x85,{817,818}}, + {0,0,0,42,0,0,0xE,0x280,0x2D6,{821,822}}, + {0,0,0,37,0,0,0xE,0x279,0x2D6,{821,822}}, + {0,0,0,41,0,0,0xA,0x272,0x2DD,{823,824}}, + {0,0,0,37,0,0,0xA,0x265,0x2D0,{823,824}}, + {0,0,0,77,0,0,0xE,0xAD,0x6A,{825,826}}, + {0,0,0,72,0,0,0xE,0xAD,0x6A,{825,826}}, + {0,0,0,70,0,0,0xE,0xE9,0x104,{827,828}}, + {0,0,0,90,0,0,0xE,0xE9,0x104,{827,828}}, + {0,0,0,46,0,0,0xC,0x85,0x64,{829,830}}, + {0,0,0,48,0,0,0,0x14D,0x64,{831,832}}, + {0,0,0,85,0,0,0,0x6A,0x5D,{833,834}}, + {0,0,0,66,0,0,0,0xB4,0x5D,{835,681}}, + {0,0,0,61,0,0,0,0xB4,0x5D,{835,681}}, + {0,0,0,41,0,0,0,0xC8,0x64,{836,837}}, + {0,0,0,41,0,0,0,0xFD,0x64,{838,839}}, + {0,0,0,81,0,0,0x6,0xF0,0x5D,{751,840}}, + {0,0,0,81,0,0,0x6,0x320,0x3AC,{751,752}}, + {0,0,0,76,0,0,0x6,0x320,0x3A5,{751,752}}, + {0,0,0,103,0,0,0x6,0x2A8,0x319,{751,752}}, + {0,0,0,60,0,0,0,0x64,0x64,{676,677}}, + {0,0,0,53,0,0,0xC,0x9C40,0x50,{841,842}}, + {0,0,0,0,0x4,0,0,0x6,0,{843,843}}, + {0,0,0,0,0,0,0xC,0xC8,0x5D,{844,845}}, + {0,0,0,0,0,0,0x6,0x11EA,0xE2,{52,846}}, + {0,0,0,0,0,0,0x6,0x4A2,0x578,{225,847}}, + {0,0,0,0,0,0,0x6,0x9C40,0x11E,{848,849}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{850,851}}, + {0,0,0,0,0,0,0,0xE74,0x92,{852,853}}, + {0,0,0,0,0,0,0x8,0x9C40,0x85,{854,855}}, + {0,0,0,0,0,0,0xA,0x1A4D,0x2300,{856,857}}, + {0,0,0,0,0,0,0xA,0x9C40,0x701,{858,859}}, + {0,0,0,0,0,0,0xC,0x9C40,0x139,{860,111}}, + {0,0,0,0,0,0,0x8,0x9C40,0xE2,{861,862}}, + {0,0,0,0,0,0,0xC,0x9C40,0xE2,{863,862}}, + {0,0,0,0,0,0,0x6,0x16BC,0xAC1,{864,865}}, + {0,0,0,0,0,0,0xC,0x9C40,0x521,{866,867}}, + {0,0,0,0,0,0,0xA,0x9C40,0x9A9,{868,869}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{870,871}}, + {0,0,0,0,0,0,0xA,0x9C40,0x189,{872,873}}, + {0,0,0,0,0,0,0x4,0xCEA,0xAC8,{874,875}}, + {0,0,0,0,0,0,0xE,0x9C40,0x876,{876,877}}, + {0,0,0,0,0,0,0x6,0x9C40,0x28D,{878,879}}, + {0,0,0,0,0,0,0x4,0x91D,0xADC,{880,881}}, + {0,0,0,0,0,0,0x2,0x9C40,0x4372,{882,883}}, + {0,0,0,0,0,0,0xE,0x495,0x571,{884,885}}, + {0,0,0,0,0,0,0,0xEA9,0x110E,{886,887}}, + {0,0,0,0,0,0,0xC,0x3CD,0xAC8,{888,889}}, + {0,0,0,0,0,0,0x4,0x1C41,0x215C,{890,891}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{757,892}}, + {0,0,0,0,0,0,0x8,0x9D8,0x64,{893,894}}, + {0,0,0,0,0,0,0x6,0x189,0x16E,{895,896}}, + {0,0,0,0,0,0,0x2,0x9C40,0x251,{882,897}}, + {0,0,0,0,0,0,0x8,0x9C40,0xA00,{898,899}}, + {0,0,0,0,0,0,0xE,0x4A9,0x57E,{900,901}}, + {0,0,0,0,0,0,0,0x37D5,0x459,{902,903}}, + {0,0,0,0,0,0,0x6,0x2072,0x88A,{904,905}}, + {0,0,0,0,0,0,0x8,0x201,0x258,{906,907}}, + {0,0,0,0,0,0,0x8,0x9C40,0xDC,{908,909}}, + {0,0,0,36,0,0,0xE,0x55D,0x646,{670,671}}, + {0,0,0,50,0,0,0x7,0x578,0x47A,{910,911}}, + {0,0,0,37,0,0,0x4,0x402,0x578,{912,913}}, + {0,0,0,39,0,0,0x8,0x196,0x5D,{914,652}}, + {0,0,0,39,0,0,0xA,0xEB0,0xC3D,{915,916}}, + {0,0,0,86,0,0,0x8,0x855,0x1FA,{917,918}}, + {0,0,0,43,0,0,0xA,0x8C,0x85,{919,920}}, + {0,0,0,24,0,0,0x8,0x208,0x251,{248,249}}, + {0,0,0,29,0,0,0x8,0x208,0x251,{248,249}}, + {0,0,0,50,0,0,0,0x154,0x5D,{921,922}}, + {0,0,0,30,0,0,0x8,0x14B4,0x1151,{917,923}}, + {0,0,0,33,0,0,0x8,0xED8,0xC6C,{917,923}}, + {0,0,0,38,0,0,0x8,0xEA9,0xC36,{917,923}}, + {0,0,0,42,0,0,0x8,0xED8,0xC6C,{917,923}}, + {0,0,0,24,0,0,0x1,0x104,0x190,{281,281}}, + {0,0,0,27,0,0,0x1,0x104,0x190,{281,281}}, + {0,0,0,29,0,0,0x1,0x104,0x190,{281,281}}, + {0,0,0,32,0,0,0x1,0x104,0x190,{281,281}}, + {0,0,0,32,0,0,0x8,0x6A,0x5D,{280,924}}, + {0,0,0,53,0,0,0xE,0x17C,0x258,{925,926}}, + {0,0,0,57,0,0,0xE,0x17C,0x258,{925,926}}, + {0,0,0,60,0,0,0xE,0x11E,0x146,{927,928}}, + {0,0,0,55,0,0,0xC,0x1D2,0x146,{929,930}}, + {0,0,0,85,0,0,0xE,0x32D,0x3C0,{900,901}}, + {0,0,0,90,0,0,0xE,0x62C,0x744,{929,931}}, + {0,0,0,84,0,0,0xE,0xF6,0x111,{932,933}}, + {0,0,0,48,0,0,0xE,0x326,0x8C0,{929,934}}, + {0,0,0,48,0,0,0xE,0xF6,0x251,{929,935}}, + {0,0,0,72,0,0,0xA,0x7E,0x85,{258,259}}, + {0,0,0,72,0,0,0x4,0x64,0x6A,{890,936}}, + {0,0,0,72,0,0,0x8,0x64,0x5D,{280,937}}, + {0,0,0,63,0,0,0xE,0x730,0x891,{938,939}}, + {0,0,0,65,0,0,0xE,0x736,0x891,{938,939}}, + {0,0,0,79,0,0,0xE,0x61E,0x74A,{940,941}}, + {0,0,0,38,0,0,0xE,0x201,0xAC1,{942,710}}, + {0,0,0,94,0,0,0x8,0x17C,0x1B8,{943,944}}, + {0,0,0,87,0,0,0x8,0x1B1,0x3C0,{943,945}}, + {0,0,0,94,0,0,0x8,0x17C,0x33A,{943,945}}, + {0,0,0,80,0,0,0x6,0x20E,0x326,{946,947}}, + {0,0,0,47,0,0,0x8,0x1FA,0x251,{948,949}}, + {0,0,0,61,0,0,0x8,0x118,0x140,{950,951}}, + {0,0,0,68,0,0,0x8,0xF6,0x118,{950,951}}, + {0,0,0,61,0,0,0x8,0x1FA,0x251,{950,952}}, + {0,0,0,68,0,0,0x8,0x1B1,0x1F4,{950,952}}, + {0,0,0,60,0,0,0x1,0xD5,0x146,{281,281}}, + {0,0,0,60,0,0,0xC,0x99,0x78,{953,954}}, + {0,0,0,36,0,0,0x8,0xC8,0x5D,{955,742}}, + {0,0,0,60,0,0,0x8,0xAD,0x5D,{955,742}}, + {0,0,0,60,0,0,0xC,0xAD,0x5D,{741,742}}, + {0,0,0,60,0,0,0xE,0xAD,0x5D,{956,742}}, + {0,0,0,68,0,0,0x1,0x78,0x5D,{957,958}}, + {0,0,0,71,0,0,0,0x99,0x1F4,{959,959}}, + {0,0,0,72,0,0,0,0x99,0x1F4,{959,959}}, + {0,0,0,101,0,0,0x8,0x3C0,0x466,{960,961}}, + {0,0,0,36,0,0,0x8,0xCF8,0x62C,{633,962}}, + {0,0,0,25,0,0,0x8,0x9C40,0x27DE,{963,964}}, + {0,0,0,37,0,0,0xE,0x83A,0x585,{965,966}}, + {0,0,0,36,0,0,0xC,0x2D0,0x33A,{967,968}}, + {0,0,0,41,0,0,0xC,0x2C9,0x341,{967,968}}, + {0,0,0,84,0,0,0xE,0xAD,0x56,{969,970}}, + {0,0,0,54,0,0,0xE,0x9C40,0xE9,{971,972}}, + {0,0,0,36,0,0,0xE,0x111,0x49,{755,756}}, + {0,0,0,60,0,0,0xE,0x9C40,0x5D,{757,758}}, + {0,0,0,37,0,0,0xC,0x4B0,0x578,{759,760}}, + {0,0,0,36,0,0,0xE,0x196,0x5D,{761,652}}, + {0,0,0,32,0,0,0x4,0x92,0xA0,{762,762}}, + {0,0,0,48,0,0,0xE,0x9C40,0x5D,{757,892}}, + {0,0,0,0,0,0,0x2,0x2738,0x1136,{973,974}}, + {0,0,0,0,0,0,0xE,0x11F1,0x876,{975,976}}, + {0,0,0,0,0,0,0xC,0x9C40,0xD4E,{977,978}}, + {0,0,0,0,0,0,0x8,0x9C40,0x64,{979,980}}, + {0,0,0,0,0,0,0,0x9C40,0x431,{981,982}}, + {0,0,0,0,0,0,0,0x9C40,0x83A,{981,983}}, + {0,0,0,0,0,0,0,0x2522,0x152C,{984,985}}, + {0,0,0,0,0,0,0,0x2314,0x5D,{986,987}}, + {0,0,0,0,0,0,0,0x9C40,0x409,{981,988}}, + {0,0,0,0,0,0,0xA,0x9C40,0xBA,{989,990}}, + {0,0,0,0,0,0,0x1,0x9C40,0x168,{991,992}}, + {0,0,0,0,0,0,0xA,0xFD,0x64,{993,994}}, + {0,0,0,0,0,0,0x8,0x9C40,0x8C,{995,996}}, + {0,0,0,0,0,0,0x8,0x4725,0xACE,{997,998}}, + {0,0,0,0,0,0,0,0x9C40,0x10BE,{999,1000}}, + {0,0,0,0,0,0,0x8,0x9C40,0x1449,{1001,1002}}, + {0,0,0,0,0,0,0,0x9C40,0x294,{1003,146}}, + {0,0,0,49,0,0,0xE,0xE60,0x1129,{237,263}}, + {0,0,0,47,0,0,0x4,0x208,0x25E,{256,257}}, + {0,0,0,49,0,0,0x4,0x201,0x258,{256,257}}, + {0,0,0,51,0,0,0x4,0x201,0x258,{256,257}}, + {0,0,0,54,0,0,0x4,0x201,0x25E,{256,257}}, + {0,0,0,57,0,0,0x4,0x208,0x258,{256,257}}, + {0,0,0,60,0,0,0x4,0x208,0x251,{256,257}}, + {0,0,0,72,0,0,0xE,0x7E,0x56,{320,321}}, + {0,0,0,71,0,0,0xE,0x1B1,0x1FA,{288,289}}, + {0,0,0,72,0,0,0xE,0xAD,0xAD,{655,656}}, + {0,0,0,35,0,0,0x8,0x17C,0x1B8,{248,249}}, + {0,0,0,35,0,0,0x4,0x898,0x71,{1004,1005}}, + {0,0,0,41,0,0,0,0x50,0x5D,{1006,1007}}, + {0,0,0,38,0,0,0xE,0x189,0x2D6,{689,690}}, + {0,0,0,39,0,0,0xE,0x6A,0x5D,{1008,1009}}, + {0,0,0,49,0,0,0xE,0xC1,0x140,{1010,1011}}, + {0,0,0,83,0,0,0xA,0x78,0x5D,{767,768}}, + {0,0,0,59,0,0,0xE,0x305,0x452,{765,766}}, + {0,0,0,84,0,0,0xE,0x542,0x632,{266,267}}, + {0,0,0,24,0,0,0x1,0x9C40,0,{281,1012}}, + {0,0,0,27,0,0,0x1,0x9C40,0,{281,1012}}, + {0,0,0,29,0,0,0x1,0x9C40,0,{281,1012}}, + {0,0,0,32,0,0,0x1,0x9C40,0,{281,1012}}, + {0,0,0,84,0,0,0xE,0xC8,0x64,{1013,1014}}, + {0,0,0,79,0,0,0xE,0x154,0x722,{942,710}}, + {0,0,0,61,0,0,0xE,0x190,0x140,{1015,1016}}, + {0,0,0,68,0,0,0xE,0x15A,0x111,{1015,1016}}, + {0,0,0,36,0,0,0xA,0x92,0xA0,{1017,1018}}, + {0,0,0,60,0,0,0xA,0x6A,0x71,{1017,1018}}, + {0,0,0,36,0,0,0xE,0x111,0x49,{1019,756}}, + {0,0,0,37,0,0,0x6,0x11DD,0x154D,{225,226}}, + {0,0,0,0,0,0,0xA,0xEDE,0xC1,{1020,1021}}, + {0,0,0,0,0,0,0xE,0x9C40,0xA0,{1022,1023}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1024,1025}}, + {0,0,0,0,0,0,0xA,0x16F8,0x146,{1026,1027}}, + {0,0,0,0,0,0,0xA,0xFD,0x5D,{1028,994}}, + {0,0,0,0,0,0,0x8,0xC9A,0xF00,{1029,1030}}, + {0,0,0,0,0,0,0x8,0x9C40,0xDC,{1031,1032}}, + {0,0,0,0,0,0,0xA,0x654,0x431,{1033,1034}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1035,1036}}, + {0,0,0,0,0,0,0xE,0x9C40,0x50,{1037,1038}}, + {0,0,0,0,0,0,0xE,0x9C40,0x50,{1039,1038}}, + {0,0,0,0,0,0,0x1,0x9C40,0x92,{1040,1041}}, + {0,0,0,0,0,0,0x8,0x2F1,0x474,{1042,1043}}, + {0,0,0,35,0,0,0x8,0x17C,0x1B1,{659,249}}, + {0,0,0,38,0,0,0xC,0xC8,0xE2,{664,665}}, + {0,0,0,38,0,0,0xE,0x15A,0x189,{666,667}}, + {0,0,0,31,0,0,0xE,0x196,0x5D,{668,669}}, + {0,0,0,35,0,0,0xE,0x19D,0x5D,{668,669}}, + {0,0,0,38,0,0,0xE,0x196,0x5D,{668,669}}, + {0,0,0,41,0,0,0xE,0x19D,0x5D,{668,669}}, + {0,0,0,45,0,0,0xE,0x139,0x5D,{668,669}}, + {0,0,0,50,0,0,0xE,0x139,0x5D,{668,669}}, + {0,0,0,50,0,0,0x3,0x9C40,0x2C7A,{763,764}}, + {0,0,0,50,0,0,0xE,0x30C,0x42A,{765,766}}, + {0,0,0,44,0,0,0xE,0xD5,0xAD,{304,305}}, + {0,0,0,59,0,0,0xE,0x201,0x258,{288,289}}, + {0,0,0,53,0,0,0x4,0x201,0x258,{256,257}}, + {0,0,0,0,0,0,0x8,0x9C40,0x2A8,{1044,1045}}, + {0,0,0,0,0,0,0x8,0x9C40,0x9B0,{1046,1047}}, + {0,0,0,0,0,0,0x8,0x9C40,0x9CA,{1048,1047}}, + {0,0,0,0,0,0,0xE,0x779,0x8AC,{670,671}}, + {0,0,0,0,0,0,0xC,0x9C40,0xC1,{1049,1050}}, + {0,0,0,0,0,0,0xC,0x9C40,0xC1,{1049,1051}}, + {0,0,0,0,0,0,0xE,0x9C40,0x251,{1052,1053}}, + {0,0,0,0,0,0,0xE,0x9C40,0x251,{1054,1053}}, + {0,0,0,0,0,0,0xE,0x9C40,0x146,{1054,1055}}, + {0,0,0,0,0,0,0xE,0x9C40,0x474,{1056,1057}}, + {0,0,0,0,0,0,0xE,0x9C40,0x46D,{1056,1058}}, + {0,0,0,0,0,0,0xE,0x9C40,0x474,{1059,1057}}, + {0,0,0,0,0,0,0x6,0x9C40,0xD5,{1060,909}}, + {0,0,0,0,0,0,0x8,0x9C40,0x17C,{1061,1062}}, + {0,0,0,0,0,0,0,0x931,0xAC8,{189,1063}}, + {0,0,0,0,0,0,0x6,0x9C40,0x28D,{878,1064}}, + {0,0,0,0,0,0,0xE,0x9C40,0x99,{1022,1065}}, + {0,0,0,0,0,0,0x8,0x26C,0x2D6,{948,949}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1066,1067}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{1068,1069}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1070,1071}}, + {0,0,0,0,0,0,0xE,0x19B4,0xAD5,{629,630}}, + {0,0,0,0,0,0,0x8,0x2EF4,0x898,{633,634}}, + {0,0,0,26,0,0,0x8,0x14B4,0x1151,{917,923}}, + {0,0,0,35,0,0,0xA,0xED1,0xC65,{915,916}}, + {0,0,0,41,0,0,0x8,0x17C,0x1B8,{659,249}}, + {0,0,0,48,0,0,0xC,0xAD,0xC1,{664,665}}, + {0,0,0,67,0,0,0xE,0xF6,0x118,{666,667}}, + {0,0,0,24,0,0,0xE,0x154,0x189,{927,928}}, + {0,0,0,36,0,0,0xE,0x196,0x5D,{651,652}}, + {0,0,0,38,0,0,0xE,0x196,0x5D,{651,652}}, + {0,0,0,43,0,0,0xA,0xA0,0xA6,{258,260}}, + {0,0,0,40,0,0,0xE,0x196,0x5D,{651,652}}, + {0,0,0,42,0,0,0xE,0x196,0x5D,{651,652}}, + {0,0,0,44,0,0,0xE,0x139,0x5D,{651,652}}, + {0,0,0,55,0,0,0xE,0x751,0x8B2,{938,939}}, + {0,0,0,46,0,0,0xE,0x139,0x5D,{651,652}}, + {0,0,0,84,0,0,0xE,0x542,0x639,{272,273}}, + {0,0,0,80,0,0,0xE,0x5BA,0x6A4,{264,265}}, + {0,0,0,24,0,0,0xE,0x4A9,0x585,{900,901}}, + {0,0,0,50,0,0,0xE,0x71,0x7E,{298,299}}, + {0,0,0,24,0,0,0xE,0x21C,0x5D,{651,652}}, + {0,0,0,31,0,0,0x8,0x26C,0x2DD,{948,949}}, + {0,0,0,35,0,0,0x8,0xED8,0xC6C,{917,923}}, + {0,0,0,60,0,0,0x8,0x118,0x140,{950,951}}, + {0,0,0,36,0,0,0xE,0x9C40,0x139,{971,972}}, + {0,0,0,48,0,0,0xE,0x9C40,0xE9,{971,972}}, + {0,0,0,0,0,0,0x8,0x9C40,0x1AA,{1072,1073}}, + {0,0,0,52,0,0,0x8,0x78,0x5D,{250,251}}, + {0,0,0,48,0,0,0xE,0x11E,0x146,{252,253}}, + {0,0,0,60,0,0,0xE,0x118,0x140,{252,253}}, + {0,0,0,43,0,0,0xA,0xAD,0xC1,{258,259}}, + {0,0,0,43,0,0,0xA,0x70E,0x82D,{261,262}}, + {0,0,0,72,0,0,0xE,0x74A,0x8A5,{237,263}}, + {0,0,0,76,0,0,0xE,0x5C8,0x6A4,{264,265}}, + {0,0,0,36,0,0,0x6,0x460,0x4CA,{268,269}}, + {0,0,0,76,0,0,0xE,0xFD,0x118,{270,271}}, + {0,0,0,83,0,0,0x8,0xDC,0xF6,{274,275}}, + {0,0,0,84,0,0,0xE,0x550,0x646,{237,263}}, + {0,0,0,24,0,0,0xC,0x73D,0x876,{276,277}}, + {0,0,0,77,0,0,0xE,0x5BA,0x690,{264,265}}, + {0,0,0,60,0,0,0x6,0xAD,0xC1,{278,279}}, + {0,0,0,65,0,0,0x7,0xC1,0x132,{280,281}}, + {0,0,0,59,0,0,0x6,0xA0,0x140,{282,283}}, + {0,0,0,51,0,0,0x6,0xAD,0xC1,{284,285}}, + {0,0,0,45,0,0,0x6,0xFD,0x258,{286,287}}, + {0,0,0,60,0,0,0xE,0x118,0x5D,{290,291}}, + {0,0,0,58,0,0,0xF,0x1ED,0x244,{292,293}}, + {0,0,0,53,0,0,0xF,0x1FA,0x251,{294,295}}, + {0,0,0,64,0,0,0xE,0xDC,0xAD,{296,297}}, + {0,0,0,71,0,0,0xE,0x6A,0x78,{298,299}}, + {0,0,0,61,0,0,0xE,0x3DA,0x46D,{300,301}}, + {0,0,0,61,0,0,0xE,0x76C,0x89E,{302,303}}, + {0,0,0,48,0,0,0xE,0xD5,0xAD,{304,305}}, + {0,0,0,48,0,0,0xE,0x1AA,0x125,{306,307}}, + {0,0,0,80,0,0,0x8,0xD5,0xE9,{316,317}}, + {0,0,0,64,0,0,0x8,0xA06,0xB9D,{318,319}}, + {0,0,0,69,0,0,0xE,0x7E,0x56,{320,321}}, + {0,0,0,73,0,0,0x6,0x182,0x78,{268,322}}, + {0,0,0,75,0,0,0xE,0x215,0x3AC,{323,324}}, + {0,0,0,68,0,0,0x8,0x78,0x140,{325,309}}, + {0,0,0,48,0,0,0x7,0x16E,0x474,{326,327}}, + {0,0,0,0,0,0,0x6,0x9C40,0x4F2,{1074,1075}}, + {0,0,0,0,0,0,0x6,0x3C6A,0x1450,{1076,1077}}, + {0,0,0,0,0,0,0,0xD7D,0xE9,{1078,1079}}, + {0,0,0,0,0,0,0xA,0x786,0x189,{1080,1081}}, + {0,0,0,0,0,0,0x8,0x1C70,0x21C6,{1082,1083}}, + {0,0,0,0,0,0,0,0x1DA9,0x1589,{1084,1085}}, + {0,0,0,0,0,0,0xC,0x49C,0x5B4,{1086,1087}}, + {0,0,0,0,0,0,0x4,0x4A9,0x57E,{1088,1089}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1090,1091}}, + {0,0,0,0,0,0,0xA,0x9C40,0xA8C,{1066,1092}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{1093,1094}}, + {0,0,0,0,0,0,0xA,0x74A,0x5C1,{1095,1096}}, + {0,0,0,0,0,0,0xA,0x9C40,0x56,{1097,1098}}, + {0,0,0,0,0,0,0x6,0x11EA,0xAC8,{52,1099}}, + {0,0,0,0,0,0,0x8,0x47CC,0xAE9,{1100,1101}}, + {0,0,0,0,0,0,0xA,0x10ED,0x2EA,{1102,1103}}, + {0,0,0,0,0,0,0,0x9C40,0x26C,{1104,1105}}, + {0,0,0,0,0,0,0xE,0x9C40,0x125,{438,439}}, + {0,0,0,0,0,0,0xC,0x9C40,0x535,{1106,1107}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2AE,{1108,1109}}, + {0,0,0,0,0,0,0xC,0x2C9,0x251,{1110,1111}}, + {0,0,0,0,0,0,0,0x2266,0x14BA,{1112,1113}}, + {0,0,0,0,0,0,0x6,0x938,0x5D,{1114,1115}}, + {0,0,0,0,0,0,0x6,0x9C40,0x175,{1116,1117}}, + {0,0,0,0,0,0,0,0x9C40,0x15D9,{1118,1119}}, + {0,0,0,0,0,0,0xC,0x9C40,0x51A,{1106,1120}}, + {0,0,0,0,0,0,0xC,0x9C40,0x514,{1121,1122}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1123,1124}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1125,1124}}, + {0,0,0,0,0,0,0xE,0x1090,0x474,{1126,1127}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1128,1124}}, + {0,0,0,0,0,0,0xE,0x9C40,0x71,{1129,1130}}, + {0,0,0,0,0,0,0xE,0x2335,0x5D,{1131,1132}}, + {0,0,0,0,0,0,0xE,0xBCC,0,{231,1133}}, + {0,0,0,0,0,0,0,0x9C40,0x7E,{1134,1135}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{1136,1137}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{1138,1139}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1140,1141}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1142,1143}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{1144,1145}}, + {0,0,0,0,0,0,0xD,0x9C40,0x7E,{1146,1147}}, + {0,0,0,0,0,0,0,0x170C,0x571,{1148,1149}}, + {0,0,0,0,0,0,0x8,0x9C40,0x2E4,{1150,1151}}, + {0,0,0,0,0,0,0,0x9C40,0x107C,{981,1152}}, + {0,0,0,0,0,0,0xE,0x3354,0x21B9,{575,576}}, + {0,0,0,0,0,0,0xA,0x9C40,0x13F9,{1153,1154}}, + {0,0,0,0,0,0,0xC,0x98E,0xAC1,{1155,1156}}, + {0,0,0,0,0,0,0x6,0x1270,0x2D6,{1157,1158}}, + {0,0,0,0,0,0,0x4,0x71C,0x460,{1159,1160}}, + {0,0,0,0,0,0,0x6,0x9C40,0xCE,{1161,1162}}, + {0,0,0,0,0,0,0,0xD55,0x1651,{1163,1164}}, + {0,0,0,0,0,0,0xE,0x21C,0x5D,{651,652}}, + {0,0,0,0,0,0,0x8,0x1CAC,0x223E,{960,1165}}, + {0,0,0,0,0,0,0xC,0x4A2,0x571,{759,760}}, + {0,0,0,0,0,0,0xE,0x3E1,0xADC,{929,934}}, + {0,0,0,60,0,0,0x8,0xA6A,0xC65,{960,1165}}, + {0,0,0,79,0,0,0x8,0x550,0x64D,{960,1165}}, + {0,0,0,65,0,0,0xE,0x7EA,0x891,{1166,1167}}, + {0,0,0,31,0,0,0xE,0x48E,0x56A,{900,901}}, + {0,0,0,36,0,0,0xE,0x4A9,0x58C,{900,901}}, + {0,0,0,72,0,0,0xE,0x6A4,0x722,{1166,1167}}, + {0,0,0,79,0,0,0xE,0x5BA,0x6AA,{264,265}}, + {0,0,0,57,0,0,0xE,0x201,0x258,{288,289}}, + {0,0,0,53,0,0,0xF,0x1F4,0x244,{292,293}}, + {0,0,0,84,0,0,0xE,0xE2,0x99,{1168,1169}}, + {0,0,0,66,0,0,0x8,0xAD,0x5D,{955,742}}, + {0,0,0,70,0,0,0xE,0x20E,0x3A5,{323,324}}, + {0,0,0,31,0,0,0x7,0x9C40,0x168,{1170,1171}}, + {0,0,0,29,0,0,0x7,0x9C40,0x168,{1170,1171}}, + {0,0,0,31,0,0,0xE,0x564,0x646,{670,671}}, + {0,0,0,19,0,0,0xE,0x780,0x89E,{670,671}}, + {0,0,0,31,0,0,0x7,0x9C40,0x64,{1172,1173}}, + {0,0,0,29,0,0,0x7,0x9C40,0x64,{1172,1173}}, + {0,0,0,31,0,0,0xE,0x8FC,0x56A,{1174,1175}}, + {0,0,0,35,0,0,0xE,0x8E8,0x56A,{1174,1175}}, + {0,0,0,40,0,0,0xE,0x902,0x571,{1174,1175}}, + {0,0,0,47,0,0,0xE,0x74A,0x46D,{1174,1175}}, + {0,0,0,32,0,0,0x8,0x26C,0x2D6,{948,949}}, + {0,0,0,43,0,0,0x8,0x201,0x251,{948,949}}, + {0,0,0,26,0,0,0x8,0xC6C,0x2DD,{917,918}}, + {0,0,0,44,0,0,0x8,0x9F9,0x258,{917,918}}, + {0,0,0,26,0,0,0xA,0x99,0x92,{919,920}}, + {0,0,0,51,0,0,0xA,0x92,0x85,{919,920}}, + {0,0,0,39,0,0,0xA,0xA0,0x92,{919,920}}, + {0,0,0,30,0,0,0x8,0xC6C,0x2DD,{917,918}}, + {0,0,0,44,0,0,0xA,0x751,0x8A5,{1176,1177}}, + {0,0,0,43,0,0,0xA,0x74A,0x8A5,{1176,1177}}, + {0,0,0,0,0,0,0x4,0x952,0xAAD,{1178,1179}}, + {0,0,0,0,0,0,0x6,0x1255,0x64,{1180,1181}}, + {0,0,0,0,0,0,0xE,0x8FC,0xABA,{1182,1183}}, + {0,0,0,0,0,0,0x2,0x9C40,0x140,{1184,1185}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1186,1187}}, + {0,0,0,0,0,0,0x2,0x1686,0x114A,{1188,1189}}, + {0,0,0,0,0,0,0,0x9C40,0x57E,{1190,1191}}, + {0,0,0,0,0,0,0x8,0x744,0x89E,{1192,1193}}, + {0,0,0,0,0,0,0x4,0x9C40,0x64,{1194,1195}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{1196,1197}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1090,1198}}, + {0,0,0,0,0,0,0x4,0x9C40,0x1E6,{1199,1200}}, + {0,0,0,0,0,0,0x8,0x805,0x556,{1201,1202}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1203,1204}}, + {0,0,0,0,0,0,0x8,0xE74,0x1136,{1205,1206}}, + {0,0,0,0,0,0,0xC,0xFBA,0x1309,{1207,1208}}, + {0,0,0,0,0,0,0xA,0x2231,0x425A,{1209,1210}}, + {0,0,0,0,0,0,0xE,0x786,0x5D,{1211,1212}}, + {0,0,0,0,0,0,0x6,0x2079,0x88A,{904,1213}}, + {0,0,0,0,0,0,0xF,0x9C40,0x2DD,{1214,1215}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2C9,{1216,1217}}, + {0,0,0,0,0,0,0,0x9C40,0x2D0,{1218,1219}}, + {0,0,0,0,0,0,0x4,0x9C40,0x1E6,{1220,1200}}, + {0,0,0,0,0,0,0x1,0x9C40,0x28D,{1221,1215}}, + {0,0,0,0,0,0,0xA,0x370,0x5D,{1222,1223}}, + {0,0,0,0,0,0,0xA,0x1310,0x140,{1224,1225}}, + {0,0,0,0,0,0,0x4,0x9C40,0x585,{1226,1227}}, + {0,0,0,0,0,0,0xA,0x2BC,0xE9,{1228,1229}}, + {0,0,0,0,0,0,0x6,0x2BC,0xE9,{1230,1229}}, + {0,0,0,0,0,0,0x7,0x9C40,0x175,{1231,1232}}, + {0,0,0,0,0,0,0,0x1FA4,0xAD5,{1233,1234}}, + {0,0,0,0,0,0,0x4,0xD5,0x52F8,{1235,1236}}, + {0,0,0,0,0,0,0x8,0x751,0x891,{1205,1237}}, + {0,0,0,0,0,0,0x8,0xF7E,0x251,{633,1238}}, + {0,0,0,0,0,0,0x6,0x9C40,0x862,{1239,1240}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{1241,1242}}, + {0,0,0,0,0,0,0xE,0x9C40,0x161,{1243,1244}}, + {0,0,0,0,0,0,0xA,0x640,0x8A5,{1245,1246}}, + {0,0,0,0,0,0,0x6,0x3C56,0x142E,{1076,1247}}, + {0,0,0,0,0,0,0xA,0x9C40,0x500,{1248,1249}}, + {0,0,0,0,0,0,0x6,0x9C40,0xAA0,{1250,1251}}, + {0,0,0,0,0,0,0xE,0x175,0x2D6,{1252,1253}}, + {0,0,0,0,0,0,0xE,0x9C40,0x16F8,{1254,1255}}, + {0,0,0,0,0,0,0,0x3BF9,0x5D,{1256,1257}}, + {0,0,0,0,0,0,0,0x4B6,0x2DD,{1258,1259}}, + {0,0,0,0,0,0,0,0x2266,0x14BA,{1260,1261}}, + {0,0,0,0,0,0,0xC,0x1720,0x21E1,{1262,1263}}, + {0,0,0,0,0,0,0xA,0x305,0xE2,{1264,1265}}, + {0,0,0,0,0,0,0xC,0xED1,0x5D,{1266,1267}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{412,413}}, + {0,0,0,0,0,0,0xE,0x9C40,0x64,{1268,1204}}, + {0,0,0,0,0,0,0xA,0xE31,0x10F4,{1176,1177}}, + {0,0,0,0,0,0,0x8,0x9C40,0x85,{1269,1270}}, + {0,0,0,0,0,0,0xA,0x9C40,0x56,{1271,1272}}, + {0,0,0,0,0,0,0x4,0x9C40,0x5D,{1273,1274}}, + {0,0,0,0,0,0,0x2,0x9C40,0x6A,{1275,1145}}, + {0,0,0,0,0,0,0,0x6A,0x71,{1276,1277}}, + {0,0,0,0,0,0,0xB,0x9C40,0x258,{1278,1279}}, + {0,0,0,0,0,0,0xA,0xF49,0x64,{1280,1281}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1282,1283}}, + {0,0,0,0,0,0,0x4,0x9C40,0x64,{1284,1285}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{1241,1286}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1287,1288}}, + {0,0,0,0,0,0,0x2,0x9C40,0x452,{1289,1290}}, + {0,0,0,0,0,0,0xE,0x9C40,0xE2,{1291,1292}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2C2,{1293,1294}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1295,1296}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1297,1124}}, + {0,0,0,0,0,0,0xC,0x9C40,0x71,{1298,1130}}, + {0,0,0,0,0,0,0x7,0x9C40,0x182,{1299,1300}}, + {0,0,0,0,0,0,0x6,0x9C40,0xA0D,{1301,1302}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2C2,{1303,1304}}, + {0,0,0,0,0,0,0x2,0xE8E,0x1144,{1305,1306}}, + {0,0,0,0,0,0,0xA,0x9C40,0x92,{1307,1308}}, + {0,0,0,0,0,0,0xE,0x924,0xAE2,{1309,1310}}, + {0,0,0,0,0,0,0xA,0x495,0x578,{1311,1312}}, + {0,0,0,0,0,0,0xE,0x32C8,0x39E4,{1313,1314}}, + {0,0,0,0,0,0,0x4,0x3C6,0x114A,{1315,1316}}, + {0,0,0,0,0,0,0xF,0x9C40,0x826,{1317,1318}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1319,1320}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{1321,1322}}, + {0,0,0,0,0,0,0x6,0x4DE,0x64,{1114,1323}}, + {0,0,0,0,0,0,0xE,0xE81,0x113D,{1324,1325}}, + {0,0,0,0,0,0,0x8,0x916,0xAD5,{1326,1327}}, + {0,0,0,0,0,0,0xA,0x4B6,0x58C,{1328,1329}}, + {0,0,0,0,0,0,0xE,0x125,0x2D6,{929,935}}, + {0,0,0,0,0,0,0xE,0x1FA,0xAD5,{942,710}}, + {0,0,0,0,0,0,0x2,0x3980,0x447D,{1305,1330}}, + {0,0,0,0,0,0,0x6,0x3882,0x42D9,{1331,1332}}, + {0,0,0,0,0,0,0xA,0x146A,0x8A5,{1333,1334}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2274,{1335,1336}}, + {0,0,0,0,0,0,0xE,0x9C40,0xAE2,{631,1337}}, + {0,0,0,0,0,0,0x6,0x9C40,0x21DA,{1338,1339}}, + {0,0,0,35,0x4,0,0,0x6,0,{1340,1340}}, + {0,0,0,12,0,0,0,0xAD,0x5D,{1341,1342}}, + {0,0,0,48,0,0,0,0xDC,0x5D,{693,1343}}, + {0,0,0,52,0,0,0xE,0x118,0x5D,{1344,1345}}, + {0,0,0,60,0,0,0xE,0xDC,0xFD,{1346,1347}}, + {0,0,0,60,0,0,0xE,0xDC,0x5D,{1348,1349}}, + {0,0,0,55,0,0,0x8,0x64,0x5D,{280,924}}, + {0,0,0,41,0,0,0x8,0x6A,0x5D,{280,924}}, + {0,0,0,60,0,0,0xE,0x8C,0x99,{1350,1351}}, + {0,0,0,84,0,0,0xE,0x15A,0x730,{709,710}}, + {0,0,0,48,0,0,0x8,0x64,0x5D,{280,924}}, + {0,0,0,60,0,0,0xE,0xDC,0xF6,{1352,1353}}, + {0,0,0,15,0,0,0,0x15A,0x189,{1354,1355}}, + {0,0,0,49,0,0,0x8,0xAD,0x5D,{955,845}}, + {0,0,0,16,0,0,0,0x15A,0x182,{1354,1355}}, + {0,0,0,12,0,0,0,0x15A,0x189,{1354,1355}}, + {0,0,0,48,0,0,0x4,0x1FA,0x891,{1315,1316}}, + {0,0,0,55,0,0,0xE,0xDC,0xF6,{1346,1347}}, + {0,0,0,95,0,0,0x6,0x74A,0x88A,{1331,1332}}, + {0,0,0,15,0,0,0x8,0xC8,0x5D,{955,845}}, + {0,0,0,17,0,0,0x8,0xC8,0x5D,{955,845}}, + {0,0,0,65,0,0,0,0xBA,0x5D,{1356,1357}}, + {0,0,0,20,0,0,0,0x272,0x2DD,{1358,1359}}, + {0,0,0,22,0,0,0,0x26C,0x2D6,{1358,1359}}, + {0,0,0,24,0,0,0,0x272,0x2DD,{1358,1359}}, + {0,0,0,12,0,0,0,0xC1,0x5D,{1360,1361}}, + {0,0,0,0,0,0,0,0x37DC,0x459,{1362,1363}}, + {0,0,0,0,0,0,0x6,0x375D,0x466,{1364,1365}}, + {0,0,0,0,0,0,0xC,0x3A26,0x481,{1366,1367}}, + {0,0,0,0,0,0,0,0x1C41,0x460,{1368,1369}}, + {0,0,0,0,0,0,0,0x3979,0x85,{1370,1371}}, + {0,0,0,0,0,0,0,0x3979,0x474,{1372,1373}}, + {0,0,0,0,0,0,0xE,0x38FA,0x24A,{1374,1375}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{1376,1377}}, + {0,0,0,0,0,0,0x9,0xB68,0x6E6,{1378,1379}}, + {0,0,0,0,0,0,0x1,0xBD2,0xAA6,{1380,1381}}, + {0,0,0,0,0,0,0xB,0x73D,0xAFD,{1382,1383}}, + {0,0,0,0,0,0,0x1,0x38F4,0x113D,{1384,1385}}, + {0,0,0,0,0,0,0x5,0x701,0x862,{1386,1387}}, + {0,0,0,0,0,0,0,0x3C6,0x466,{1388,1389}}, + {0,0,0,0,0,0,0xA,0xD7D,0xAA0,{1390,1391}}, + {0,0,0,0,0,0,0,0xB61,0x826,{1392,1393}}, + {0,0,0,0,0,0,0x7,0x9C40,0x5D,{1394,1395}}, + {0,0,0,0,0,0,0x5,0x9C40,0x5D,{1396,1397}}, + {0,0,0,0,0,0,0xB,0x9C40,0x3C0,{1398,1399}}, + {0,0,0,0,0,0,0x9,0x9C40,0x265,{1400,1401}}, + {0,0,0,0,0,0,0,0x9C40,0x132,{1402,1403}}, + {0,0,0,0,0,0,0xE,0x9C40,0x132,{1404,1405}}, + {0,0,0,0,0,0,0,0x9C40,0xC1,{1406,1407}}, + {0,0,0,0,0,0,0xE,0x9C40,0x24A,{1408,1409}}, + {0,0,0,0,0,0,0x4,0x1CC0,0xC1,{1410,1411}}, + {0,0,0,0,0,0,0,0x1906,0x140,{1412,1413}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1414,1415}}, + {0,0,0,0,0,0,0,0x9C40,0x50,{1416,1417}}, + {0,0,0,0,0,0,0x6,0x4BD,0x64,{1418,1419}}, + {0,0,0,0,0,0,0x6,0x9C40,0x78,{1420,1421}}, + {0,0,0,0,0,0,0,0x4498,0x5D,{1422,1423}}, + {0,0,0,0,0,0,0x8,0x91D,0x5D,{1424,1425}}, + {0,0,0,0,0,0,0,0x11BC,0x196,{1426,1427}}, + {0,0,0,0,0,0,0,0x9C40,0xAD,{1428,1429}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1430,1431}}, + {0,0,0,0,0,0,0xA,0x9C40,0xDC,{1432,1433}}, + {0,0,0,0,0,0,0x6,0x9CA,0x146,{1434,1435}}, + {0,0,0,0,0,0,0xC,0x9CA,0x146,{1436,1437}}, + {0,0,0,0,0,0,0x8,0x9C40,0x49,{1438,1439}}, + {0,0,0,0,0,0,0x8,0xD3A,0x71,{1440,1441}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{1442,1443}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{1444,1443}}, + {0,0,0,0,0,0,0xA,0x9C40,0x175,{1445,1446}}, + {0,0,0,0,0,0,0xC,0x9C40,0x1B8,{1447,1448}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2AE,{1449,1450}}, + {0,0,0,0,0,0,0x9,0x43E,0x2A8,{1451,1452}}, + {0,0,0,0,0,0,0xE,0xE1D,0x10B8,{1453,1454}}, + {0,0,0,0,0,0,0,0x4BD,0x599,{1455,1456}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2C9,{1457,1458}}, + {0,0,0,0,0,0,0xE,0x9C40,0x578,{1459,1460}}, + {0,0,0,0,0,0,0xE,0x9C40,0x279,{1461,1462}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{1463,1464}}, + {0,0,0,0,0,0,0x8,0x9C40,0x7E,{1465,1466}}, + {0,0,0,0,0,0,0,0x9C40,0x16E,{1467,1468}}, + {0,0,0,0,0,0,0,0x9C40,0x24A,{1469,1470}}, + {0,0,0,0,0,0,0xB,0x4A2,0x229,{1471,1472}}, + {0,0,0,0,0,0,0xE,0x9C40,0xAD,{1473,1474}}, + {0,0,0,0,0,0,0xE,0x9C40,0x8C,{1475,1476}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{1477,1478}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{1479,1480}}, + {0,0,0,0,0,0,0x8,0x9C40,0x78,{1481,1482}}, + {0,0,0,0,0,0,0xE,0x9C40,0x8C,{1483,1484}}, + {0,0,0,0,0,0,0xE,0x9C40,0x175,{1485,1486}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2C2,{1487,1488}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1489,1490}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1491,1492}}, + {0,0,0,0,0,0,0xC,0x9C40,0x6A,{1493,1494}}, + {0,0,0,0,0,0,0x8,0x9C40,0xDC,{1495,1496}}, + {0,0,0,0,0,0,0,0x9C40,0xC1,{1497,1498}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1499,1500}}, + {0,0,0,0,0,0,0xA,0x9C40,0x7E,{1501,1502}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{1503,1504}}, + {0,0,0,0,0,0,0,0x9C40,0xCE,{1505,1506}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1507,1508}}, + {0,0,0,0,0,0,0,0x9C40,0x8C,{1509,1510}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{1511,1512}}, + {0,0,0,0,0,0,0xE,0x9C40,0xCE,{1513,1514}}, + {0,0,0,0,0,0,0xE,0x9C40,0x12C,{1515,1516}}, + {0,0,0,0,0,0,0x1,0x9C40,0xE2,{1517,1518}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{1519,1520}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1521,1522}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1523,1524}}, + {0,0,0,0,0,0,0x2,0x9C40,0x11E,{1525,1526}}, + {0,0,0,0,0,0,0xE,0x9C40,0x7E,{1527,1528}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{1529,1530}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1531,1532}}, + {0,0,0,0,0,0,0x9,0x9C40,0xC1,{1533,1534}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1535,1536}}, + {0,0,0,0,0,0,0x1,0x9C40,0x49C,{1537,1538}}, + {0,0,0,0,0,0,0xE,0x9C40,0x52E,{1539,1540}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2D6,{1541,1542}}, + {0,0,0,0,0,0,0,0x9C40,0x14D,{1543,1544}}, + {0,0,0,0,0,0,0,0x9C40,0x495,{1545,1546}}, + {0,0,0,0,0,0,0x4,0x269E,0x571,{1547,1548}}, + {0,0,0,0,0,0,0xA,0x9C40,0x2B5,{1549,1550}}, + {0,0,0,0,0,0,0xA,0x9C40,0x55D,{1551,1552}}, + {0,0,0,0,0,0,0,0x38D9,0x251,{1553,1554}}, + {0,0,0,0,0,0,0x7,0x9C40,0x52E,{1555,1556}}, + {0,0,0,0,0,0,0,0x1212,0xABA,{1557,1558}}, + {0,0,0,0,0,0,0,0x2295,0x550,{1559,1560}}, + {0,0,0,0,0,0,0xE,0x230D,0xA99,{1561,1562}}, + {0,0,0,0,0,0,0xC,0x9C40,0x4EC,{1563,1564}}, + {0,0,0,0,0,0,0xE,0x9C40,0x26C,{1565,1566}}, + {0,0,0,0,0,0,0xA,0x9C40,0x564,{1567,1568}}, + {0,0,0,0,0,0,0x8,0x1194,0x2C9,{1569,1570}}, + {0,0,0,0,0,0,0xC,0x279,0xE2,{1571,1572}}, + {0,0,0,0,0,0,0xC,0xE81,0x474,{1573,1574}}, + {0,0,0,0,0,0,0x8,0x910,0x56A,{1575,1576}}, + {0,0,0,0,0,0,0,0x786,0x85C,{1577,1578}}, + {0,0,0,0,0,0,0x8,0x9C40,0xD5,{1579,1580}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{1581,1582}}, + {0,0,0,0,0,0,0xA,0x9C40,0xDC,{1583,1584}}, + {0,0,0,0,0,0,0,0xC15,0x2D0,{1585,1586}}, + {0,0,0,0,0,0,0xE,0x201,0xC1,{1587,1588}}, + {0,0,0,0,0,0,0x7,0x2B5,0x2D0,{1589,1590}}, + {0,0,0,0,0,0,0,0x175,0x6A,{680,681}}, + {0,0,0,0,0,0,0,0x424,0x5A0,{1591,1592}}, + {0,0,0,0,0,0,0x4,0x786,0x902,{1593,1594}}, + {0,0,0,0,0,0,0x8,0x4C4,0x542,{1595,1596}}, + {0,0,0,0,0,0,0xE,0x1061,0x64,{1597,1598}}, + {0,0,0,0,0,0,0,0x33A,0x140,{1599,1600}}, + {0,0,0,0,0,0,0xC,0x111,0x17C,{1601,1602}}, + {0,0,0,0,0,0,0xE,0x147E,0xAAD,{1603,1604}}, + {0,0,0,0,0,0,0,0x182,0x8C,{1605,1606}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{1607,1608}}, + {0,0,0,0,0,0,0x2,0x9C40,0x571,{1609,1610}}, + {0,0,0,0,0,0,0xE,0x9C40,0x3D4,{1611,1612}}, + {0,0,0,36,0,0,0xE,0xE9,0x64,{1613,1614}}, + {0,0,0,48,0,0,0x8,0xC1,0xB4,{1615,1616}}, + {0,0,0,36,0,0,0x8,0xE2,0xDC,{1615,1616}}, + {0,0,0,36,0,0,0,0x6A,0x71,{676,1617}}, + {0,0,0,32,0,0,0,0x85,0x71,{678,1618}}, + {0,0,0,96,0,0,0x1,0x6E6,0x640,{1380,1381}}, + {0,0,0,30,0,0,0x4,0xF6,0x71,{1619,1620}}, + {0,0,0,35,0,0,0x4,0x1A4,0x182,{1621,1622}}, + {0,0,0,60,0,0,0xE,0xF0,0x85,{1623,1624}}, + {0,0,0,59,0,0,0xE,0x92,0x5D,{1613,1614}}, + {0,0,0,44,0,0,0xE,0xF0,0x85,{1623,1624}}, + {0,0,0,41,0,0,0xD,0x2C9,0x33A,{804,805}}, + {0,0,0,47,0,0,0x6,0xAD,0xC1,{1625,1626}}, + {0,0,0,44,0,0,0xD,0x201,0x258,{804,805}}, + {0,0,0,48,0,0,0xD,0x201,0x258,{804,805}}, + {0,0,0,62,0,0,0x4,0x751,0xBA,{1627,1628}}, + {0,0,0,51,0,0,0xD,0x201,0x258,{804,805}}, + {0,0,0,54,0,0,0xD,0x201,0x258,{804,805}}, + {0,0,0,40,0,0,0xE,0x4DE,0xAB4,{810,1629}}, + {0,0,0,57,0,0,0xD,0x17C,0x1B8,{804,805}}, + {0,0,0,58,0,0,0xE,0x5D5,0x876,{707,708}}, + {0,0,0,97,0,0,0,0xE9,0xF6,{813,1630}}, + {0,0,0,50,0,0,0x8,0xDC,0xC1,{1631,1632}}, + {0,0,0,60,0,0,0xE,0x5C1,0x855,{707,708}}, + {0,0,0,53,0,0,0,0x85,0x85,{1633,1634}}, + {0,0,0,46,0,0,0,0xAD,0x14D,{1635,1636}}, + {0,0,0,57,0,0,0,0x85,0x85,{1633,1634}}, + {0,0,0,42,0,0,0xE,0x279,0x2DD,{1637,1638}}, + {0,0,0,37,0,0,0xE,0x279,0x2DD,{1637,1638}}, + {0,0,0,41,0,0,0x6,0x26C,0x2D6,{1639,1640}}, + {0,0,0,37,0,0,0x6,0x272,0x2DD,{1639,1640}}, + {0,0,0,77,0,0,0xE,0xAD,0x6A,{1587,1588}}, + {0,0,0,72,0,0,0xE,0xAD,0x6A,{1587,1588}}, + {0,0,0,70,0,0,0xE,0xD5,0xE2,{731,732}}, + {0,0,0,90,0,0,0xE,0xCE,0xE2,{731,732}}, + {0,0,0,39,0,0,0x4,0x104,0x64,{1641,1642}}, + {0,0,0,36,0,0,0,0x445,0x64,{1643,1644}}, + {0,0,0,46,0,0,0xA,0x78,0x64,{829,1645}}, + {0,0,0,48,0,0,0x8,0x2FE,0x64,{1646,1647}}, + {0,0,0,85,0,0,0x8,0x7E,0x5D,{1648,1649}}, + {0,0,0,66,0,0,0,0xB4,0x5D,{680,681}}, + {0,0,0,41,0,0,0,0xC1,0x64,{1650,1651}}, + {0,0,0,41,0,0,0,0x14D,0x161,{1652,1653}}, + {0,0,0,81,0,0,0x6,0x99,0x5D,{1654,1655}}, + {0,0,0,10,0,0,0x6,0x4A9,0x57E,{751,752}}, + {0,0,0,60,0,0,0,0x64,0x64,{676,1617}}, + {0,0,0,53,0,0,0,0x348,0x47A,{1591,1592}}, + {0,0,0,0,0,0,0,0x15CC,0x460,{1656,1657}}, + {0,0,0,0,0,0,0,0x38E0,0x466,{1658,1659}}, + {0,0,0,0,0,0,0,0x1B79,0x445,{1660,1661}}, + {0,0,0,0,0,0,0,0x1AC5,0x438,{1662,1663}}, + {0,0,0,0,0,0,0x5,0x23D5,0x182,{1,1664}}, + {0,0,0,0,0,0,0,0x38AA,0x460,{1665,1666}}, + {0,0,0,0,0,0,0xC,0x1BF8,0x140,{1667,1668}}, + {0,0,0,0,0,0,0,0x9C40,0x42,{1669,1670}}, + {0,0,0,0,0,0,0x6,0x744,0x56A,{1671,1672}}, + {0,0,0,0,0,0,0x1,0x488,0x564,{682,683}}, + {0,0,0,0,0,0,0x9,0x460,0x535,{1673,1674}}, + {0,0,0,0,0,0,0,0x3972,0x113D,{1675,1676}}, + {0,0,0,0,0,0,0xC,0x73D,0x88A,{1677,1678}}, + {0,0,0,0,0,0,0x9,0x3C6,0x459,{1679,1680}}, + {0,0,0,0,0,0,0,0x91D,0xABA,{1681,1682}}, + {0,0,0,0,0,0,0,0xBB1,0x862,{1683,1684}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{1685,1686}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{1687,1688}}, + {0,0,0,0,0,0,0x7,0x9C40,0x5D,{1689,1690}}, + {0,0,0,0,0,0,0xB,0x9C40,0x258,{1691,1692}}, + {0,0,0,0,0,0,0,0x9C40,0x132,{1402,1693}}, + {0,0,0,0,0,0,0xE,0x9C40,0x132,{1694,1695}}, + {0,0,0,0,0,0,0,0x9C40,0xC1,{1696,1697}}, + {0,0,0,0,0,0,0,0x9C40,0x132,{1698,1699}}, + {0,0,0,0,0,0,0xE,0x1CA5,0xC1,{1700,1701}}, + {0,0,0,0,0,0,0,0x1504,0x139,{1702,1703}}, + {0,0,0,0,0,0,0x8,0x9C40,0x56,{1704,1705}}, + {0,0,0,0,0,0,0xA,0x9C40,0x49,{1706,1707}}, + {0,0,0,0,0,0,0xA,0x938,0x64,{1708,1709}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1710,1711}}, + {0,0,0,0,0,0,0,0x9C40,0x8C,{1712,1713}}, + {0,0,0,0,0,0,0x4,0x177D,0x5D,{1714,1715}}, + {0,0,0,0,0,0,0,0xE7A,0x146,{1716,1717}}, + {0,0,0,0,0,0,0x8,0x44F5,0x5D,{1718,1719}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{1720,1721}}, + {0,0,0,0,0,0,0xA,0x9C40,0xBA,{1722,1723}}, + {0,0,0,0,0,0,0x8,0x9CA,0x146,{1724,1725}}, + {0,0,0,0,0,0,0xC,0xE4C,0x5D,{1726,1727}}, + {0,0,0,0,0,0,0xE,0x9C40,0x49,{1728,1729}}, + {0,0,0,0,0,0,0xA,0xD3A,0x71,{1730,1731}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{1442,1732}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{1444,1733}}, + {0,0,0,0,0,0,0xC,0x9C40,0xE9,{1734,1735}}, + {0,0,0,0,0,0,0xE,0x9C40,0x1B1,{1736,1737}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2A8,{1449,1738}}, + {0,0,0,0,0,0,0x9,0x474,0x2B5,{1739,1740}}, + {0,0,0,0,0,0,0xE,0x862,0x556,{1741,1742}}, + {0,0,0,0,0,0,0,0x32D,0x2D6,{1743,1744}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{1745,1746}}, + {0,0,0,0,0,0,0xE,0x9C40,0x556,{1747,1748}}, + {0,0,0,0,0,0,0xE,0x9C40,0x20E,{1749,1750}}, + {0,0,0,0,0,0,0xE,0x9C40,0x182,{1751,1752}}, + {0,0,0,0,0,0,0x6,0x9C40,0x85,{467,468}}, + {0,0,0,0,0,0,0,0x9C40,0x168,{1753,1754}}, + {0,0,0,0,0,0,0,0x9C40,0x244,{1469,1755}}, + {0,0,0,0,0,0,0xD,0x4A9,0x229,{1756,1472}}, + {0,0,0,0,0,0,0xE,0x9C40,0xBA,{1757,1758}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{1759,1760}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{1761,1762}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{1763,1764}}, + {0,0,0,0,0,0,0xC,0x9C40,0x78,{1765,1766}}, + {0,0,0,0,0,0,0xE,0x9C40,0xD5,{1767,1768}}, + {0,0,0,0,0,0,0xE,0x9C40,0x146,{1769,1770}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2BC,{1771,1772}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1773,1774}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1491,1775}}, + {0,0,0,0,0,0,0x8,0x9C40,0x42,{1776,1777}}, + {0,0,0,0,0,0,0x6,0x9C40,0xC1,{1778,1779}}, + {0,0,0,0,0,0,0,0x9C40,0x64,{1780,1781}}, + {0,0,0,0,0,0,0xA,0x9C40,0x71,{1782,1783}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1784,1785}}, + {0,0,0,0,0,0,0xE,0x9C40,0x64,{1786,1787}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{1788,1789}}, + {0,0,0,0,0,0,0,0x9C40,0x64,{1790,1791}}, + {0,0,0,0,0,0,0,0x9C40,0x85,{1792,1793}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{1794,1795}}, + {0,0,0,0,0,0,0xE,0x9C40,0xDC,{1796,1797}}, + {0,0,0,0,0,0,0xE,0x9C40,0x12C,{1798,1799}}, + {0,0,0,0,0,0,0x1,0x9C40,0xE2,{1517,1800}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{1801,1802}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1803,1804}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1805,1806}}, + {0,0,0,0,0,0,0xC,0x9C40,0x99,{1807,1808}}, + {0,0,0,0,0,0,0x8,0x9C40,0x7E,{1809,1810}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{1811,1812}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1813,1814}}, + {0,0,0,0,0,0,0xB,0x9C40,0xD5,{1815,1816}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1817,1818}}, + {0,0,0,0,0,0,0x5,0x9C40,0x3DA,{1819,1820}}, + {0,0,0,0,0,0,0xE,0x9C40,0x52E,{1821,1822}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2B5,{1823,1824}}, + {0,0,0,0,0,0,0,0x9C40,0x14D,{1825,1826}}, + {0,0,0,0,0,0,0,0x9C40,0x25E,{1827,1828}}, + {0,0,0,0,0,0,0x4,0x26AC,0x57E,{1829,1830}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2A8,{1831,1832}}, + {0,0,0,0,0,0,0xA,0x9C40,0x550,{1833,1834}}, + {0,0,0,0,0,0,0xE,0x4E41,0x2EA,{1835,1836}}, + {0,0,0,0,0,0,0xB,0x9C40,0x542,{1837,1838}}, + {0,0,0,0,0,0,0,0x11A1,0x556,{1839,1840}}, + {0,0,0,0,0,0,0x8,0x20C2,0x521,{1841,1842}}, + {0,0,0,0,0,0,0xE,0x2191,0x53C,{1843,1844}}, + {0,0,0,0,0,0,0xE,0x9C40,0x286,{1845,1846}}, + {0,0,0,0,0,0,0xE,0x9C40,0x272,{1847,1848}}, + {0,0,0,0,0,0,0xA,0x9C40,0x550,{1567,1849}}, + {0,0,0,0,0,0,0x8,0x113D,0x2B5,{1850,1851}}, + {0,0,0,0,0,0,0,0x6C5,0x132,{1852,1853}}, + {0,0,0,0,0,0,0xC,0xE74,0x474,{1854,1855}}, + {0,0,0,0,0,0,0,0x1136,0x550,{1856,1857}}, + {0,0,0,0,0,0,0xA,0x3EE,0x24A,{1858,1859}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{1860,1861}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{1862,1863}}, + {0,0,0,0,0,0,0,0x9C40,0xDC,{1864,1865}}, + {0,0,0,0,0,0,0,0xC0E,0x2D0,{1585,1866}}, + {0,0,0,0,0,0,0xE,0x201,0xC1,{825,826}}, + {0,0,0,0,0,0,0x5,0x286,0x2B5,{1867,1868}}, + {0,0,0,0,0,0,0,0x175,0x6A,{835,681}}, + {0,0,0,0,0,0,0xC,0x9C40,0x50,{841,842}}, + {0,0,0,0,0,0,0,0x3F5,0x438,{1869,1870}}, + {0,0,0,0,0,0,0xE,0x4A9,0x549,{1871,1872}}, + {0,0,0,0,0,0,0xE,0x1061,0x64,{1597,1873}}, + {0,0,0,0,0,0,0x8,0x33A,0x140,{1874,1600}}, + {0,0,0,0,0,0,0xE,0x2A1,0x2A8,{1875,1876}}, + {0,0,0,0,0,0,0xE,0x142E,0xA64,{1603,1877}}, + {0,0,0,0,0,0,0,0x23B4,0x99,{1878,1879}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{1607,1880}}, + {0,0,0,0,0,0,0xE,0x9C40,0x57E,{1881,1882}}, + {0,0,0,0,0,0,0xE,0x9C40,0x4CA,{1611,1883}}, + {0,0,0,0,0,0,0xE,0xD98,0x5D,{1884,1885}}, + {0,0,0,36,0,0,0xE,0x8C,0x64,{672,673}}, + {0,0,0,32,0,0,0x6,0x85,0x71,{1886,1887}}, + {0,0,0,96,0,0,0x1,0x2BC,0x33A,{682,683}}, + {0,0,0,30,0,0,0,0xC8,0x6A,{1888,1889}}, + {0,0,0,96,0,0,0x8,0x92,0x99,{1890,1891}}, + {0,0,0,60,0,0,0xC,0x222,0x236,{1892,1893}}, + {0,0,0,0,0,0,0,0x3598,0x438,{1894,1895}}, + {0,0,0,0,0,0,0xC,0x9C40,0xE2,{1896,1897}}, + {0,0,0,0,0,0,0,0x1F32,0x92,{1898,1899}}, + {0,0,0,0,0,0,0xC,0x9C40,0x258,{1900,1901}}, + {0,0,0,0,0,0,0x6,0x9C40,0x56,{344,345}}, + {0,0,0,0,0,0,0x8,0x3CD,0x474,{1902,1903}}, + {0,0,0,0,0,0,0x6,0x1C84,0x2216,{1904,1905}}, + {0,0,0,0,0,0,0,0xB96,0x84E,{1906,1907}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{1908,1909}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1910,1911}}, + {0,0,0,0,0,0,0xE,0x9C40,0x132,{1912,1913}}, + {0,0,0,0,0,0,0,0x150A,0x139,{1914,1703}}, + {0,0,0,0,0,0,0,0x9C40,0x50,{1915,1916}}, + {0,0,0,0,0,0,0,0x931,0x64,{1917,1918}}, + {0,0,0,0,0,0,0,0x9C40,0x78,{1919,1920}}, + {0,0,0,0,0,0,0xA,0x46D5,0x64,{1921,1922}}, + {0,0,0,0,0,0,0x8,0x47CC,0x189,{1923,1924}}, + {0,0,0,0,0,0,0xE,0x23FD,0x71,{1925,1926}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2D6,{1927,1928}}, + {0,0,0,0,0,0,0xA,0x9C40,0xC1,{1929,1930}}, + {0,0,0,0,0,0,0,0x445,0x146,{1931,1932}}, + {0,0,0,0,0,0,0,0xE81,0x5D,{1933,1934}}, + {0,0,0,0,0,0,0x8,0x49C,0x2C9,{1935,1936}}, + {0,0,0,0,0,0,0xC,0xD2D,0x71,{1937,1938}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2D0,{1939,1940}}, + {0,0,0,0,0,0,0xE,0x154,0x2A1,{1941,1942}}, + {0,0,0,0,0,0,0,0x4A2,0x564,{1943,1456}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2DD,{1944,1945}}, + {0,0,0,0,0,0,0xE,0x9C40,0x585,{1946,1947}}, + {0,0,0,0,0,0,0xE,0x9C40,0xBA,{1757,1948}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{1759,1949}}, + {0,0,0,0,0,0,0xE,0x9C40,0x175,{1950,1951}}, + {0,0,0,0,0,0,0xC,0x9C40,0x17C,{1952,1953}}, + {0,0,0,0,0,0,0xE,0x9C40,0xDC,{1954,1955}}, + {0,0,0,0,0,0,0xE,0x9C40,0x14D,{1769,1956}}, + {0,0,0,0,0,0,0,0x9C40,0xC1,{1780,1957}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1784,1958}}, + {0,0,0,0,0,0,0xE,0x9C40,0xD5,{1786,1959}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1790,1960}}, + {0,0,0,0,0,0,0xE,0x9C40,0x236,{1961,1962}}, + {0,0,0,0,0,0,0xC,0x24A,0x2AE,{1963,1964}}, + {0,0,0,0,0,0,0,0x9C40,0x17C,{1965,1966}}, + {0,0,0,0,0,0,0xE,0x4732,0x64,{1967,1968}}, + {0,0,0,0,0,0,0xC,0x34E,0xDC,{1969,1970}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{1971,1972}}, + {0,0,0,0,0,0,0xD,0x9C40,0xD5,{1973,1974}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1817,1975}}, + {0,0,0,0,0,0,0xE,0x9C40,0x535,{1976,1977}}, + {0,0,0,0,0,0,0,0x9C40,0x4D1,{1978,1979}}, + {0,0,0,0,0,0,0,0x9C40,0x891,{1980,1981}}, + {0,0,0,0,0,0,0,0x259A,0x14C1,{1982,1983}}, + {0,0,0,0,0,0,0xC,0x9C40,0x549,{1984,1985}}, + {0,0,0,0,0,0,0xE,0x9C40,0x696,{1986,1987}}, + {0,0,0,0,0,0,0xE,0x26DA,0xB11,{1988,1989}}, + {0,0,0,0,0,0,0xB,0x9C40,0x556,{1837,1990}}, + {0,0,0,0,0,0,0,0x3C6,0x146,{1991,1992}}, + {0,0,0,0,0,0,0xC,0x9C40,0xADC,{1993,1994}}, + {0,0,0,0,0,0,0xE,0x228E,0x55D,{1995,1996}}, + {0,0,0,0,0,0,0xE,0x9C40,0xAC8,{1997,1998}}, + {0,0,0,0,0,0,0,0x9C40,0x56A,{1999,2000}}, + {0,0,0,0,0,0,0,0x272,0x64,{2001,2002}}, + {0,0,0,0,0,0,0xC,0xE38,0x139,{2003,2004}}, + {0,0,0,0,0,0,0xA,0x9C40,0x85,{2005,2006}}, + {0,0,0,0,0,0,0x8,0x9C40,0x841,{2007,2008}}, + {0,0,0,0,0,0,0x4,0x9C40,0x6A4,{2009,2010}}, + {0,0,0,0,0,0,0x8,0x9C40,0x46D,{2011,2012}}, + {0,0,0,0,0,0,0xC,0x9C40,0x876,{2013,2014}}, + {0,0,0,0,0,0,0xA,0xDE1,0x29FA,{2015,2016}}, + {0,0,0,0,0,0,0xE,0x751,0x8B9,{2017,2018}}, + {0,0,0,0,0,0,0xA,0x9C40,0x945,{2019,2020}}, + {0,0,0,0,0,0,0xC,0x2C09,0xB2C,{2021,2022}}, + {0,0,0,0,0,0,0x8,0x9C40,0x988,{2023,2024}}, + {0,0,0,0,0,0,0x6,0x47A,0x92,{798,799}}, + {0,0,0,35,0,0,0,0x244,0x71,{2025,2026}}, + {0,0,0,77,0,0,0,0x118,0x85,{1991,1992}}, + {0,0,0,72,0,0,0,0x118,0x85,{1991,1992}}, + {0,0,0,0,0,0,0x8,0x2314,0x189,{0,1}}, + {0,0,0,0,0,0,0x8,0x23E2,0x189,{2,3}}, + {0,0,0,0,0,0,0x8,0x23F0,0x2D0,{4,5}}, + {0,0,0,0,0,0,0x6,0x245A,0x190,{6,7}}, + {0,0,0,0,0,0,0x8,0x1C8A,0x459,{10,11}}, + {0,0,0,0,0,0,0xA,0x23FD,0xE2,{12,13}}, + {0,0,0,0,0,0,0x2,0x1CA5,0x445C,{16,17}}, + {0,0,0,0,0,0,0x2,0x938,0xACE,{18,19}}, + {0,0,0,0,0,0,0x4,0x26C,0x2D6,{24,25}}, + {0,0,0,0,0,0,0xC,0x1220,0x1589,{26,27}}, + {0,0,0,0,0,0,0x4,0x4BD,0x56A,{28,29}}, + {0,0,0,0,0,0,0x6,0x11EA,0xE2,{52,53}}, + {0,0,0,0,0,0,0x8,0x9C40,0x8C,{56,57}}, + {0,0,0,0,0,0,0x8,0x9C40,0x42,{72,73}}, + {12,12,0,0,0,0,0xA,0x27A9,0x6D2,{2027,2028}}, + {12,12,0,0,0,0,0xA,0x2731,0x5F6,{2029,2028}}, + {12,12,0,0,0x3,0,0x108,0x24B1,0x5FD,{2030,2031,2032,2033} }, + {12,12,0,0,0x3,2,0x606,0x2975,0x661,{2034,2035,2036,2037} }, + {0,12,0,0,0,0,0x6,0x9C40,0xF0,{2038,2039}}, + {12,12,0,0,0x3,0,0x906,0x25D6,0x30C,{2040,2041,2042,2043} }, + {12,12,0,0,0,0,0x6,0x2788,0x625,{2044,2045}}, + {12,12,0,0,0,0,0xC,0x1E00,0xD5,{2046,2047}}, + {0,12,0,0,0,0,0x8,0x1CD4,0x8C0,{2048,2049}}, + {0,12,0,0,0,0,0x9,0x2CE5,0x37F6,{2050,2051}}, + {12,12,0,0,0,0,0,0x146A,0x1874,{2052,2053}}, + {12,12,0,0,0,0,0x1,0x2918,0xB82,{2054,2055}}, + {12,12,0,0,0,0,0x1,0x4B6,0x55D,{2056,2057}}, + {12,12,0,0,0,0,0x8,0x751,0xC65,{2058,2059}}, + {0,12,0,0,0,0,0xA,0x1205,0x1568,{2060,2061}}, + {12,12,0,0,0,0,0x8,0xEB6,0xBFA,{2062,2063}}, + {12,12,0,0,0,0,0x7,0x9C40,0x24A,{2064,2065}}, + {0,12,0,0,0,0,0x7,0x9C40,0x3A5,{2066,2067}}, + {0,12,0,0,0x3,10,0,0x9C40,0x17C,{2068,2069,2070,2071} }, + {12,12,0,0,0,0,0x909,0x9C40,0x60A,{2072,2073}}, + {12,12,0,0,0,0,0x6,0x9C40,0x189,{2074,2075}}, + {12,12,0,0,0x3,-3,0xA0A,0x9C40,0x196,{2076,2077,2078,2079} }, + {12,24,0,0,0,0,0x808,0x9C40,0x19D,{2080,2081}}, + {12,12,0,0,0x3,1,0x8,0x9C40,0x33A,{2082,2083,2082,2083} }, + {12,12,0,0,0,0,0,0x47B1,0x2D0,{2084,2085}}, + {12,12,0,0,0,0,0xA,0x145D,0xC51,{2086,2087}}, + {12,12,0,0,0,0,0xA,0x5A0,0xE9,{2088,2089}}, + {12,12,0,0,0,0,0x2,0x13A2,0xF6,{2090,2091}}, + {12,12,0,0,0,0,0,0x143C,0x341,{2092,2093}}, + {12,12,0,0,0,0,0xA,0x9C40,0x5D,{2094,2095}}, + {12,12,0,0,0,0,0xC,0x9C40,0x5D,{2096,2095}}, + {12,12,0,0,0,0,0,0x2940,0xFD,{2097,2098}}, + {12,12,0,0,0,0,0,0xA99,0x1B8,{2099,2100}}, + {12,12,0,0,0,0,0xA,0x264E,0xA0,{2101,2102}}, + {12,12,0,0,0,0,0x8,0x9C40,0x7E,{2103,2104}}, + {0,12,0,0,0x3,-2,0,0x9C40,0x208,{2105,2106,2107,2108} }, + {0,12,0,0,0,0,0xD00,0x9C40,0x104,{2109,2110}}, + {12,12,0,0,0,0,0x8,0x2918,0x32D,{2111,2112}}, + {12,12,0,0,0,0,0xA,0xA78,0x1B8,{2113,2114}}, + {12,12,0,0,0x3,-10,0xA0A,0x9C40,0xF0,{2115,2116,2115,2116} }, + {12,12,0,0,0,0,0x6,0x9C40,0x23D,{2117,2118}}, + {12,12,0,0,0,0,0x2,0x9C40,0x320,{2119,2120}}, + {0,12,0,0,0,0,0x6,0x9C40,0x161,{2121,2122}}, + {12,12,0,0,0,0,0x6,0x9C40,0x578,{2123,2124}}, + {0,12,0,0,0x3,11,0x606,0x9C40,0x5A0,{2125,2126,2127,2128} }, + {12,12,0,0,0,0,0xE,0x9C40,0xAD,{2129,2130}}, + {12,12,0,0,0,0,0,0x9C40,0x6AA,{2131,2132}}, + {12,12,0,0,0,0,0xA,0x1270,0xC58,{2133,2134}}, + {12,12,0,0,0x3,-8,0x604,0x9C40,0x618,{2135,2136,2137,2138} }, + {12,12,0,0,0x3,5,0x604,0x9C40,0x55D,{2139,2140,2141,2142} }, + {0,0,0,0,0x3,-5,0xA0A,0x9C40,0x2210,{2143,2144,2143,2144} }, + {12,12,0,0,0x3,4,0x800,0x9C40,0x9F2,{2145,2146,2147,2148} }, + {12,12,0,0,0x3,10,0,0x9C40,0xB0A,{2149,2150,2151,2152} }, + {12,0,0,0,0,0,0xC00,0x9C40,0x2F1,{2153,2154}}, + {12,12,0,0,0,0,0,0x9C40,0x66E,{2155,2156}}, + {-12,0,0,0,0x3,0,0x202,0x8FC,0x9CA,{2157,2158,2159,2160} }, + {12,12,0,0,0,0,0xA,0x9C40,0x168,{2161,2162}}, + {12,12,0,0,0,0,0xE,0x9C40,0x64,{2163,2164}}, + {12,12,0,0,0,0,0xC,0x9C40,0x1ED,{2165,2166}}, + {12,12,0,0,0,0,0xC,0x2925,0x1D9,{2167,2168}}, + {12,12,0,0,0x3,1,0xE0E,0x9C40,0x182,{2169,2170,2171,2170} }, + {12,12,0,0,0x3,3,0xE0A,0x9C40,0x17C,{2172,2162,2173,2174} }, + {12,12,0,0,0x3,6,0xC0C,0x9C40,0xC8,{2175,2176,2177,2178} }, + {12,12,0,0,0x3,6,0xA0C,0x9C40,0x99,{2179,2180,2181,2180} }, + {12,12,0,0,0,0,0x6,0x9C40,0x1AA,{2182,2183}}, + {12,12,0,0,0,0,0x6,0x9C40,0x1B8,{2184,2185}}, + {12,12,0,0,0,0,0xA,0x9C40,0x5D,{2186,2187}}, + {12,12,0,0,0,0,0xA,0x9C40,0x56,{2188,2189}}, + {12,12,0,0,0,0,0x6,0x9C40,0xE9,{2190,2191}}, + {12,12,0,0,0,0,0xA,0x9C40,0xF0,{2192,2193}}, + {12,12,0,0,0,0,0xA,0x9C40,0x5D,{2194,2195}}, + {12,12,0,0,0,0,0x8,0x9C40,0xF6,{2196,2197}}, + {12,12,0,0,0,0,0xE,0x9C40,0x64,{2198,2199}}, + {12,12,0,0,0,0,0x8,0x9C40,0x6A,{2200,2201}}, + {12,12,0,0,0,0,0xB,0x9C40,0x16E,{2202,2203}}, + {12,12,0,0,0,0,0xE09,0x9C40,0xF6,{2204,2205}}, + {12,12,0,0,0,0,0xE,0x9C40,0x14D,{2206,2207}}, + {0,12,0,0,0,0,0xE,0x9C40,0x5D,{2208,2209}}, + {12,12,0,0,0,0,0xB,0x9C40,0x320,{2210,2211}}, + {12,12,0,0,0,0,0xB,0x9C40,0x29A,{2212,2213}}, + {12,12,0,0,0x3,2,0,0x9C40,0x33A,{2214,2215,2216,2217} }, + {12,12,0,0,0x3,-1,0x808,0x9C40,0x334,{2218,2219,2220,2221} }, + {12,12,0,0,0,0,0xE,0x9C40,0x189,{2222,2223}}, + {12,12,0,0,0x3,2,0xE0E,0x9C40,0x5D,{2224,2225,2226,2227} }, + {12,12,0,0,0,0,0x8,0x9C40,0x5D,{2228,2229}}, + {12,12,0,0,0x3,-6,0x808,0x9C40,0xAA6,{2230,2231,2232,2233} }, + {12,7,0,0,0x3,-3,0xA0A,0x9C40,0xBAA,{2234,2235,2236,2237} }, + {0,12,0,0,0,0,0x9,0x9C40,0x17C,{2238,2239}}, + {12,12,0,0,0x3,2,0x909,0x9C40,0x51A,{2240,2241,2242,2243} }, + {12,12,0,0,0x3,2,0xC0C,0x9C40,0x15A,{2244,2245,2244,2245} }, + {12,12,0,0,0x3,11,0x101,0x9C40,0x722,{2246,2247,2248,2249} }, + {12,12,0,0,0,0,0x7,0x9C40,0x722,{2250,2251}}, + {12,12,0,0,0,0,0xE,0x17B2,0x1518,{2252,2253}}, + {12,12,0,0,0x3,-2,0,0x9C40,0x229,{2105,2106,2107,2108} }, + {12,12,0,0,0,0,0x8,0x9C40,0x150A,{2254,2255}}, + {12,12,0,0,0,0,0xB,0x9C40,0x12C,{2256,2257}}, + {0,7,0,0,0x3,8,0xA0A,0x9C40,0x47A,{2258,2259,2260,2261} }, + {-12,12,0,0,0,0,0,0xA64,0xAE2,{2262,2263}}, + {12,12,0,0,0x3,-2,0,0x9C40,0x4C4,{2264,2265,2266,2267} }, + {12,12,0,0,0x3,-12,0,0x2321,0x25BC,{2268,2269,2268,2270} }, + {0,12,0,0,0,0,0,0x9C40,0x1040,{2271,2272}}, + {12,12,0,0,0,0,0,0x9C40,0x16D6,{2273,2274}}, + {12,12,0,0,0,0,0xA,0x2572,0x2AD0,{2275,2276}}, + {12,12,0,0,0,0,0x2,0x9C40,0x71C,{2277,2278}}, + {12,12,0,0,0,0,0xF04,0x995,0x5F0,{2279,2280}}, + {12,12,0,0,0x3,0,0,0xB40,0x1360,{2281,2282,2283,2284} }, + {12,12,0,0,0,0,0x8,0x47D2,0xADC,{2285,2286}}, + {0,12,0,0,0,0,0x6,0x4A2,0x8AC,{2287,2288}}, + {12,12,0,0,0,0,0xA,0x9C40,0x189,{2289,2290}}, + {12,12,0,0,0,0,0xE,0x9C40,0x28D,{2291,2292}}, + {12,12,0,0,0,0,0x8,0x9C40,0x196,{2293,2294}}, + {5,12,0,0,0,0,0x1,0x21EE,0x2209,{2295,2296}}, + {12,12,0,0,0,0,0x4,0x125,0xF6,{2297,2298}}, + {12,12,0,0,0,0,0x6,0x9C40,0x58C,{2299,2300}}, + {12,12,0,0,0,0,0x6,0x1AA,0xA0,{2301,2302}}, + {0,12,0,0,0,0,0,0x3C0,0x46D,{2303,2304}}, + {0,12,0,0,0,0,0,0x236,0x189,{2305,2306}}, + {12,12,0,0,0,0,0,0xE9C,0x189,{2307,2308}}, + {0,12,0,0,0,0,0xE,0x909,0x5D,{2309,2310}}, + {12,12,0,0,0,0,0xE,0x5BA,0xF6,{2311,2312}}, + {12,12,0,0,0,0,0xE,0x5DC,0x58C,{2313,2314}}, + {0,12,0,0,0,0,0xE,0x1499,0x1589,{2315,2316}}, + {0,12,0,0,0,0,0x7,0x9C40,0xC36,{2317,2318}}, + {0,12,0,0,0,0,0x8,0x9C40,0x189,{2319,2320}}, + {-24,0,0,29,0,0,0x8,0x9C40,0x4A81,{898,2321}}, + {12,12,0,65,0,0,0xE,0x9C40,0x189C,{2322,2323}}, + {0,12,0,0,0,0,0xE,0x272,0x2DD,{2324,2325}}, + {12,12,0,38,0,0,0,0x1CC,0x21C,{684,685}}, + {12,12,0,25,0,0,0x6,0x272,0x2E4,{2326,2327}}, + {12,12,0,83,0,0,0x6,0xB4,0xA0,{2328,2329}}, + {12,12,0,32,0,0,0xE,0xF6,0x140,{2330,2331}}, + {12,12,0,60,0,0,0xF,0x9C40,0x56,{2332,2333}}, + {12,12,0,36,0,0,0xE,0x11E,0x6A,{2334,2335}}, + {0,0,0,27,0,0,0x7,0x23D,0xC8,{2336,2337}}, + {12,12,0,88,0,0,0xF,0x154,0x196,{695,696}}, + {0,0,0,31,0,0,0x7,0x2B5,0x154,{2338,2339}}, + {12,12,0,88,0,0,0xF,0x8C,0x64,{697,698}}, + {12,12,0,21,0,0,0x3,0x1F4,0x189,{2340,2341}}, + {12,12,0,79,0,0,0xE,0x8F5,0xBCC,{699,700}}, + {12,12,0,26,0,0,0x3,0x1F4,0x190,{2340,2341}}, + {12,12,0,28,0,0,0x3,0x1F4,0x189,{2340,2341}}, + {12,12,0,60,0,0,0xE,0x924,0xE16,{2342,2343}}, + {12,12,0,32,0,0,0x3,0x19D,0x146,{2340,2341}}, + {12,12,0,60,0,0,0xA,0x326,0x3AC,{2344,2345}}, + {12,12,0,96,0,0,0xE,0x46D,0x60A,{2346,2347}}, + {12,12,0,72,0,0,0xE,0x49C,0x729,{2348,2349}}, + {12,12,0,79,0,0,0xF,0x11E,0xF6,{2350,2351}}, + {12,12,0,69,0,0,0xE,0x4A9,0xE59,{2352,2353}}, + {12,12,0,71,0,0,0x6,0x154,0xB4,{2354,730}}, + {0,0,0,22,0,0,0xA,0x758,0x8C0,{2355,2356}}, + {12,12,0,60,0,0,0x4,0x1B1,0x1F4,{723,724}}, + {12,12,0,54,0,0,0x4,0x1E6,0x23D,{723,724}}, + {12,12,0,72,0,0,0,0xF6,0x118,{725,726}}, + {12,12,0,67,0,0,0,0xF0,0x118,{725,726}}, + {12,12,0,60,0,0,0,0xF6,0x118,{725,726}}, + {12,12,0,55,0,0,0,0xF6,0x118,{2357,726}}, + {12,12,0,48,0,0,0,0x118,0x140,{2357,726}}, + {12,12,0,77,0,0,0x8,0x154,0xAD,{729,730}}, + {12,12,0,72,0,0,0x8,0x154,0xAD,{729,730}}, + {12,12,0,60,0x4,0,0xA,0x28,0x5D,{2358,2359}}, + {12,12,0,49,0,0,0xA,0x28,0x5D,{2360,2361}}, + {12,12,0,73,0,0,0x6,0xA6,0x64,{2362,2302}}, + {12,12,0,68,0,0,0x6,0xA6,0x64,{2362,2302}}, + {12,12,0,61,0,0,0x6,0xC8,0x6A,{2362,2302}}, + {12,12,0,60,0x4,0,0xA,0x28,0x5D,{2363,2359}}, + {12,12,0,90,0,0,0x8,0xC1,0x5D,{743,744}}, + {12,12,0,90,0,0,0x8,0x319,0x6A,{745,746}}, + {12,12,0,0,0,0,0xA,0x9C40,0x161,{2364,2365}}, + {12,12,0,0,0,0,0x6,0x9C40,0x215,{2366,2367}}, + {12,12,0,0,0,0,0xC,0x9C40,0x140,{2368,2369}}, + {12,12,0,0,0,0,0x8,0x280D,0x1B1,{2370,2371}}, + {0,12,0,0,0x3,0,0xD00,0x9C40,0xF6,{2372,2110,2373,2374} }, + {12,12,0,0,0,0,0xC,0x9C40,0x201,{2375,2376}}, + {12,12,0,36,0x3,0,0xC00,0x175,0x190,{2377,2378,2379,2380} }, + {12,12,0,69,0,0,0xE,0x4A2,0xE52,{2381,2353}}, + {12,12,0,60,0,0,0xB,0x9C40,0,{2382,2383}}, + {12,12,0,0,0,0,0x2,0x9C40,0x5D,{2384,2095}}, + {0,12,0,0,0,0,0x2,0x9C40,0x140,{2385,63}}, + {0,0,0,22,0,0,0xA,0x758,0x8C0,{2386,2387}}, + {0,0,0,0,0,0,0x808,0x9C40,0x1AA,{1072,1073}}, + {0,0,0,0,0,0,0x808,0x9C40,0x1B8,{778,779}}, + {0,0,0,0,0,0,0x606,0x9C40,0x64,{2388,2389}}, + {0,0,0,0,0,0,0x808,0x9C40,0xF0,{783,784}}, + {0,0,0,0,0,0,0xA0A,0xD70,0xE2,{785,786}}, + {0,0,0,0,0,0,0,0xF42,0x57E,{787,2390}}, + {0,0,0,0,0,0,0x202,0x3584,0x4441,{789,790}}, + {0,0,0,0,0,0,0,0x23F0,0x2DD,{791,582}}, + {0,0,0,0,0,0,0x404,0x26C,0x2D6,{356,357}}, + {0,0,0,0,0,0,0xC0C,0x1220,0x1582,{2391,2392}}, + {0,0,0,0,0,0,0x404,0x4BD,0x56A,{362,2393}}, + {0,0,0,0,0,0,0x202,0x9C40,0x132,{2394,31}}, + {0,0,0,0,0,0,0x202,0x9C40,0xC1,{2395,33}}, + {0,0,0,0,0,0,0x404,0x9C40,0xC1,{2396,2397}}, + {0,0,0,0,0,0,0x404,0x9C40,0x84E,{36,2398}}, + {0,0,0,0,0,0,0,0x9C40,0x916,{2399,2400}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{40,2401}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x19D,{2402,43}}, + {0,0,0,0,0,0,0x606,0x9C40,0x189,{44,2403}}, + {0,0,0,0,0,0,0xC0C,0xFC1,0xE9,{46,2404}}, + {0,0,0,0,0,0,0x606,0x11EA,0x1561,{52,792}}, + {0,0,0,0,0,0,0x808,0x9C40,0x8C,{776,777}}, + {0,0,0,0,0,0,0x808,0x47CC,0xE2,{60,2405}}, + {0,0,0,0,0,0,0x202,0x9C40,0x140,{62,2406}}, + {0,0,0,0,0,0,0x808,0x21AC,0x5D,{793,71}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{2407,80}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{2408,94}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x506,{2409,2410}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5A0,{97,2410}}, + {0,0,0,0,0,0,0,0x9C40,0x488,{98,2411}}, + {0,0,0,0,0,0,0,0x9C40,0x10A,{2412,2413}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x47A,{2414,2415}}, + {0,0,0,0,0,0,0x808,0x459,0x55D,{2416,2417}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x139,{110,2418}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{2419,117}}, + {0,0,0,0,0,0,0,0x9C40,0xCE,{2420,794}}, + {0,0,0,0,0,0,0x808,0x9C40,0x64,{122,2421}}, + {0,0,0,0,0,0,0x808,0x9C40,0x92,{124,498}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x92,{126,2422}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{128,495}}, + {0,0,0,0,0,0,0x202,0x9C40,0x71,{2423,142}}, + {0,0,0,0,0,0,0,0x9C40,0x294,{145,2424}}, + {0,0,0,0,0,0,0,0x9C40,0x26C,{2425,2426}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x189,{2427,2428}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x189,{2429,2430}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{159,2431}}, + {0,0,0,0,0,0,0x202,0x9C40,0x190,{2432,2433}}, + {0,0,0,0,0,0,0,0x9C40,0x2BC,{165,2434}}, + {0,0,0,0,0,0,0x202,0x9C40,0x585,{2435,2436}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x1205,{2437,2438}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2BC,{2439,2440}}, + {0,0,0,0,0,0,0,0x9C40,0x1172,{2441,2442}}, + {0,0,0,0,0,0,0x808,0x9C40,0x495,{177,2443}}, + {0,0,0,0,0,0,0,0x9C40,0x146,{2444,180}}, + {0,0,0,0,0,0,0x202,0x1CE8,0x224C,{185,2445}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x28D,{191,2446}}, + {0,0,0,0,0,0,0,0x2349,0x564,{2447,2448}}, + {0,0,0,0,0,0,0x606,0x9C40,0x14A6,{2449,2450}}, + {0,0,0,0,0,0,0x808,0x3750,0x41E9,{602,2451}}, + {0,0,0,0,0,0,0xE0E,0xBCC,0,{231,1133}}, + {0,0,0,84,0,0,0xE0E,0x542,0x639,{711,712}}, + {0,0,0,24,0,0,0xC0C,0x73D,0x876,{2452,277}}, + {0,0,0,44,0,0,0xE0E,0xD5,0xAD,{2453,305}}, + {0,0,0,40,0,0,0xE0E,0x24A,0x190,{2454,307}}, + {0,0,0,60,0,0,0,0x3FC,0x445,{2455,2456}}, + {0,0,0,0,0,0,0x808,0x1A18,0x85,{2457,2458}}, + {0,0,0,0,0,0,0x202,0x1CAC,0x2238,{2459,2460}}, + {0,0,0,0,0,0,0x606,0x1220,0x157C,{2461,2462}}, + {0,0,0,0,0,0,0x607,0x9C40,0x4F9,{2463,2464}}, + {0,0,0,0,0,0,0xC0C,0x1BD6,0xC1,{2465,2466}}, + {0,0,0,0,0,0,0,0x9C40,0x2BC,{2467,2468}}, + {0,0,0,0,0,0,0,0x466,0x542,{2469,2470}}, + {0,0,0,0,0,0,0x202,0xF21,0x1165,{2471,2472}}, + {0,0,0,0,0,0,0x606,0x820,0x110E,{89,2473}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2AE,{2474,2475}}, + {0,0,0,0,0,0,0x606,0x9C40,0x52E,{2476,2477}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x320,{2478,2479}}, + {0,0,0,0,0,0,0,0x9C40,0x585,{2480,2481}}, + {0,0,0,0,0,0,0xE0E,0x7D0,0x98E,{2482,2483}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xCE,{2484,2485}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x17C,{2486,2487}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x146,{2488,111}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x182,{2489,2490}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xDC,{2491,2492}}, + {0,0,0,0,0,0,0x808,0x9C40,0x6A,{2493,131}}, + {0,0,0,0,0,0,0,0x9C40,0x7E,{2494,2495}}, + {0,0,0,0,0,0,0x404,0x9C40,0xDC,{2496,2497}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{2498,2499}}, + {0,0,0,0,0,0,0,0x9C40,0x8C,{2500,2501}}, + {0,0,0,0,0,0,0x808,0x9C40,0xA85,{2502,2503}}, + {0,0,0,0,0,0,0x606,0x924,0xAD5,{2504,2505}}, + {0,0,0,0,0,0,0xE0E,0x15A,0x189,{2506,2507}}, + {0,0,0,35,0,0,0x606,0x2C9,0x341,{2508,2509}}, + {0,0,0,49,0,0,0xA0A,0xAD,0xC1,{2510,2511}}, + {0,0,0,48,0,0,0xE0E,0x11E,0x146,{2506,2507}}, + {0,0,0,58,0,0,0xE0E,0xAD,0xC1,{731,2512}}, + {0,0,0,60,0,0,0xE0E,0x11E,0x146,{2506,2507}}, + {0,0,0,47,0,0,0x404,0x3D4,0x481,{2513,2514}}, + {0,0,0,60,0,0,0xE0E,0x92,0x99,{2515,259}}, + {0,0,0,49,0,0,0x404,0x3C6,0x46D,{2513,2514}}, + {0,0,0,72,0,0,0xE0E,0x1ED,0x236,{2516,2517}}, + {0,0,0,51,0,0,0x404,0x3C0,0x46D,{2513,2514}}, + {0,0,0,84,0,0,0xA0A,0x52E,0x632,{2518,2519}}, + {0,0,0,54,0,0,0x404,0x3C0,0x46D,{2513,2514}}, + {0,0,0,57,0,0,0x404,0x3B9,0x46D,{2513,2514}}, + {0,0,0,72,0,0,0xE0E,0x61E,0x736,{2520,2521}}, + {0,0,0,60,0,0,0x404,0x3C0,0x474,{2513,2514}}, + {0,0,0,36,0,0,0xE0E,0xA64,0xC44,{266,2522}}, + {0,0,0,93,0,0,0xA0A,0xE9,0xF6,{2523,2524}}, + {0,0,0,72,0,0,0xE0E,0x3C0,0x46D,{272,2525}}, + {0,0,0,84,0,0,0xE0E,0x550,0x646,{237,2526}}, + {0,0,0,36,0,0,0xC0C,0x53C,0x639,{2527,2528}}, + {0,0,0,64,0,0,0xE0E,0xDC,0xAD,{296,2529}}, + {0,0,0,68,0,0,0x606,0x78,0x244,{2530,2531}}, + {0,0,0,0,0,0,0x606,0x11B5,0x862,{2532,2533}}, + {0,0,0,0,0,0,0x606,0x1255,0x64,{1180,1181}}, + {0,0,0,0,0,0,0xE0E,0x8FC,0xABA,{1182,1183}}, + {0,0,0,0,0,0,0x202,0x9C40,0x140,{1184,1185}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{1186,1187}}, + {0,0,0,0,0,0,0x202,0x1686,0x114A,{1188,1189}}, + {0,0,0,0,0,0,0x808,0x744,0x89E,{1192,1193}}, + {0,0,0,0,0,0,0x202,0x9C40,0x47A,{2534,2535}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1090,2536}}, + {0,0,0,0,0,0,0x404,0x9C40,0x1E6,{1199,1200}}, + {0,0,0,0,0,0,0x808,0x805,0x556,{1201,2537}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{1203,1204}}, + {0,0,0,0,0,0,0xA0A,0x2231,0x425A,{1209,1210}}, + {0,0,0,0,0,0,0xE0E,0x786,0x5D,{1211,1212}}, + {0,0,0,0,0,0,0x606,0x2079,0x88A,{904,1213}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x2DD,{1214,2538}}, + {0,0,0,0,0,0,0x808,0xCA8,0xF3C,{2539,2540}}, + {0,0,0,0,0,0,0x404,0x9C40,0x1E6,{1220,1200}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{2541,2542}}, + {0,0,0,0,0,0,0xA0A,0x370,0x5D,{1222,1223}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x50,{2543,2544}}, + {0,0,0,0,0,0,0xA0A,0x2BC,0xE9,{1228,1229}}, + {0,0,0,0,0,0,0x606,0x2BC,0xE9,{1230,1229}}, + {0,0,0,0,0,0,0x808,0x9C40,0x62C,{2545,2546}}, + {0,0,0,0,0,0,0,0x1E00,0x113D,{2547,2548}}, + {0,0,0,0,0,0,0x404,0xD5,0x52F8,{2549,1236}}, + {0,0,0,0,0,0,0x808,0x9C40,0x64,{979,980}}, + {0,0,0,0,0,0,0x808,0xF7E,0x251,{633,1238}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1024,2550}}, + {0,0,0,0,0,0,0x808,0x1CAC,0x223E,{960,1165}}, + {0,0,0,0,0,0,0x606,0x9C40,0x862,{1239,1240}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{2551,1242}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x161,{2552,2553}}, + {0,0,0,0,0,0,0xA0A,0x640,0x8A5,{2554,2555}}, + {0,0,0,0,0,0,0x606,0x3C56,0x1428,{1076,2556}}, + {0,0,0,0,0,0,0x606,0x9C40,0x51A,{2557,2558}}, + {0,0,0,0,0,0,0x606,0x9C40,0xA0D,{1301,1302}}, + {0,0,0,0,0,0,0xE0E,0x175,0x2D6,{1252,1253}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x16F8,{2559,2560}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x125,{438,2561}}, + {0,0,0,0,0,0,0,0x3BF9,0x5D,{2562,2563}}, + {0,0,0,0,0,0,0xC0C,0x1720,0x21E1,{1262,1263}}, + {0,0,0,0,0,0,0xA0A,0x305,0xE2,{1264,1265}}, + {0,0,0,0,0,0,0xA0A,0xE81,0x1122,{2564,2565}}, + {0,0,0,0,0,0,0x808,0x9C40,0xCE,{2566,2567}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{1268,1204}}, + {0,0,0,0,0,0,0xA0A,0xE31,0x10F4,{1176,1177}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x56,{1271,1272}}, + {0,0,0,0,0,0,0x404,0x9C40,0x5D,{1273,1274}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{1275,1145}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x258,{1278,2568}}, + {0,0,0,0,0,0,0xA0A,0xF49,0x64,{1280,1281}}, + {0,0,0,0,0,0,0x404,0x9C40,0x64,{1284,1285}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1140,2569}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{2551,2570}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1287,2571}}, + {0,0,0,0,0,0,0x202,0x9C40,0x452,{1289,1290}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1123,2572}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1295,2573}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{2574,2572}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x71,{1298,1130}}, + {0,0,0,0,0,0,0x607,0x9C40,0x175,{2575,2576}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{2577,2578}}, + {0,0,0,0,0,0,0x202,0xE8E,0x1144,{1305,1306}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x92,{1307,1308}}, + {0,0,0,0,0,0,0xE0E,0x33F4,0x3F20,{2579,2580}}, + {0,0,0,0,0,0,0xA0A,0x495,0x578,{1311,1312}}, + {0,0,0,0,0,0,0xE0E,0x32C8,0x39E4,{2581,2582}}, + {0,0,0,0,0,0,0x404,0x3C6,0x114A,{2583,1316}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x826,{2584,1318}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{2585,1320}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{1144,2586}}, + {0,0,0,0,0,0,0x606,0x4DE,0x64,{1114,1323}}, + {0,0,0,0,0,0,0xE0E,0xE81,0x113D,{1324,1325}}, + {0,0,0,0,0,0,0xE0E,0x3E1,0xADC,{929,934}}, + {0,0,0,0,0,0,0xA0A,0x4B6,0x58C,{1328,1329}}, + {0,0,0,0,0,0,0xE0E,0x125,0x2D6,{929,935}}, + {0,0,0,0,0,0,0xE0E,0x1FA,0xAD5,{2587,710}}, + {0,0,0,0,0,0,0x404,0x118,0x10F4,{2588,2589}}, + {0,0,0,0,0,0,0x808,0x38D2,0x42E6,{2590,1332}}, + {0,0,0,0,0,0,0xA0A,0x146A,0x8A5,{2591,2592}}, + {0,0,0,0,0,0,0x808,0x3340,0x21DA,{633,2593}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xAE2,{631,1337}}, + {0,0,0,0,0,0,0x606,0x9C40,0x21DA,{1338,1339}}, + {0,0,0,0,0,0,0xE0E,0x201,0x258,{1346,1347}}, + {0,0,0,0,0,0,0x606,0x9C40,0x53AC,{1076,2594}}, + {0,0,0,55,0,0,0x808,0x64,0x5D,{280,924}}, + {0,0,0,60,0,0,0xE0E,0xDC,0xFD,{1346,1347}}, + {0,0,0,60,0,0,0xE0E,0xDC,0x5D,{1348,1349}}, + {0,0,0,41,0,0,0x808,0x6A,0x5D,{280,924}}, + {0,0,0,84,0,0,0xE0E,0xA0,0x64,{2595,2596}}, + {0,0,0,84,0,0,0xE0E,0x15A,0x730,{2595,710}}, + {0,0,0,48,0,0,0x808,0x64,0x5D,{280,924}}, + {0,0,0,49,0,0,0x808,0xAD,0x5D,{955,845}}, + {0,0,0,55,0,0,0xE0E,0xDC,0xF6,{1346,1347}}, + {0,0,0,18,0,0,0x808,0xC8,0x5D,{955,845}}, + {0,0,0,15,0,0,0x808,0xC8,0x5D,{955,845}}, + {0,0,0,17,0,0,0x808,0xC8,0x5D,{955,845}}, + {0,0,0,0,0x1,0,0x908,0x34F8,0x3F5,{2597,2598,2599,2600} }, + {0,0,0,0,0x1,0,0xB0A,0x1CE1,0x244,{2601,2602,2603,2604} }, + {0,0,0,0,0x1,0,0xE0E,0x2E39,0x460,{2605,2606,2607,2608} }, + {12,0,0,0,0x1,0,0xC0D,0x26C0,0x51A,{2609,2610,2611,2612} }, + {12,0,0,0,0x1,0,0x404,0x2795,0x71,{2613,2614,2615,2616} }, + {0,0,0,0,0x1,0,0xB0A,0x1FED,0x2579,{2617,2618,2619,2620} }, + {0,0,0,0,0x1,0,0x302,0x916,0xA85,{350,351,2621,2622} }, + {12,0,0,0,0x1,0,0xB0A,0x23E2,0x2DD,{2623,2624,2625,2626} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x64,{2627,2628,352,353} }, + {0,0,0,0,0x1,0,0xD0D,0x43E,0x4D1,{2629,362,2630,2631} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x6A,{2632,2633,2634,2635} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x104,{368,369,2636,2637} }, + {-12,0,0,0,0x1,0,0x908,0x9C40,0x71,{372,373,374,375} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x474,{2638,2639,2640,2641} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x488,{2642,2643,2644,2645} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{2646,410,2647,162} }, + {0,0,0,0,0x1,0,0,0x9C40,0x64,{2648,2649,2650,2651} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x99,{68,69,2652,2653} }, + {0,0,0,0,0x1,0,0x908,0x1F7C,0x5D,{70,71,2654,2655} }, + {0,0,0,0,0x1,0,0x706,0x1F11,0x5D,{793,71,2654,2655} }, + {0,0,0,0,0x1,0,0xA0A,0x1F32,0xDC,{2656,435,2657,437} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x294,{75,76,2658,2659} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{2660,76,2658,2659} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x57E,{2661,96,95,2662} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x599,{97,96,2663,2664} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x1ED,{2665,2666,2667,2668} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x2B5,{2669,2670,100,101} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x2DD,{2671,2672,2673,2674} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xBA,{106,107,2675,2676} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xC1,{2677,2678,2675,2679} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x17C,{475,111,476,477} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x85,{2680,2681,2682,2683} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x64,{2684,2685,2686,2687} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x71,{509,2688,2689,2690} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{2691,2692,138,139} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{2691,2692,140,139} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{2691,2693,2694,144} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x17C,{2695,2696,2697,2698} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xF0,{2699,2700,157,158} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x6A,{2701,2702,159,2703} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x92,{167,168,2704,2705} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x3EE,{2706,2707,2708,2709} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x42A,{2710,2711,179,180} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x398,{181,2711,2712,2713} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x182,{2714,184,2715,2716} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xA71,{2717,2718,2719,2720} }, + {0,0,0,0,0x1,0,0x908,0x1270,0x28C1,{2721,2722,189,190} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x58C,{2723,2724,2725,2726} }, + {0,0,0,0,0x1,0,0xF0E,0x33BE,0x578,{2727,2728,2729,2730} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x14D5,{2731,2732,2733,198} }, + {0,0,0,0,0x1,0,0x504,0x9C40,0xA99,{2734,2735,2736,2737} }, + {0,0,0,0,0x1,0,0x606,0x9C40,0x1324,{2738,2739,2740,200} }, + {0,0,0,0,0x1,0,0x706,0xFD5,0x585,{217,218,2741,2742} }, + {0,0,0,0,0x1,0,0xB0A,0xA6,0x438,{2743,2744,2745,224} }, + {0,0,0,0,0x1,0,0x706,0x10ED,0x156E,{225,226,2746,2747} }, + {0,0,0,0,0x1,0,0xF0E,0xD3A,0x7D0,{2748,2749,2750,2751} }, + {0,0,0,0,0x1,0,0xF0E,0xBCC,0,{2752,1133,2753,2754} }, + {0,0,0,0,0x1,0,0xF0E,0x5D5,0xA8C,{233,2755,2756,2757} }, + {0,0,0,0,0x1,0,0xF0E,0x98E,0x88A,{2758,2759,638,638} }, + {0,0,0,0,0x1,0,0xF0E,0x23F0,0xAD5,{244,2760,638,638} }, + {0,0,0,0,0x1,0,0x505,0x3C0,0xCE,{2761,638,2762,2763} }, + {1,0,0,0,0x1,0,0xB0A,0x35C,0x3C6,{2764,242,2765,2766} }, + {-36,0,0,0,0x1,0,0x908,0x9C40,0x1F4,{2767,2768,2769,2768} }, + {0,0,0,44,0x1,0,0x606,0x78,0x5D,{686,687,688,251} }, + {0,0,0,48,0x1,0,0xF0E,0x104,0x132,{252,253,2770,2771} }, + {0,0,0,58,0x1,0,0xF0E,0x146,0x182,{691,692,254,255} }, + {0,0,0,60,0x1,0,0xF0E,0xFD,0x12C,{252,253,2772,2773} }, + {0,0,0,48,0x1,0,0x100,0x1C5,0x215,{2774,2775,256,257} }, + {0,0,0,43,0x1,0,0xB0A,0xAD,0xC1,{258,259,258,259} }, + {0,0,0,49,0x1,0,0x100,0x1C5,0x215,{2774,2775,256,257} }, + {0,0,0,43,0x1,0,0xB0A,0xA6,0xAD,{258,2776,258,2776} }, + {0,0,0,51,0x1,0,0x100,0x1C5,0x20E,{2774,2775,256,257} }, + {0,0,0,43,0x1,0,0xB0A,0x701,0x819,{261,262,261,2777} }, + {0,0,0,54,0x1,0,0x100,0x1C5,0x215,{2774,2775,256,257} }, + {0,0,0,57,0x1,0,0x100,0x1C5,0x215,{2774,2775,256,257} }, + {0,0,0,72,0x1,0,0xE0E,0x625,0x74A,{715,716,717,718} }, + {0,0,0,60,0x1,0,0x100,0x1C5,0x215,{2774,2775,256,257} }, + {0,0,0,70,0x1,0,0x706,0x319,0x3AC,{2778,2779,2780,2781} }, + {0,0,0,60,0x1,0,0xE0E,0x3CD,0x47A,{703,704,705,706} }, + {0,0,0,36,0x1,0,0x706,0x481,0x549,{2778,2782,2783,2784} }, + {0,0,0,65,0x1,0,0,0x125,0x146,{2785,2786,2787,2788} }, + {0,0,0,84,0x1,0,0xE0E,0x549,0x3B2,{2789,2790,2791,2792} }, + {0,0,0,59,0x1,0,0x908,0x196,0x1CC,{274,2793,2794,275} }, + {0,0,0,84,0x1,0,0xE0E,0x632,0x751,{2795,716,2796,718} }, + {0,0,0,35,0x1,0,0xD0C,0x556,0x62C,{2797,2528,2797,277} }, + {0,0,0,44,0x1,0,0x706,0x39E,0x139,{2798,2799,2780,2800} }, + {0,0,0,67,0x1,0,0x706,0xF0,0x111,{2801,2802,2803,2804} }, + {0,0,0,66,0x1,0,0x706,0x140,0x265,{2805,2806,2807,2808} }, + {0,0,0,59,0x1,0,0x706,0xA0,0x140,{282,283,2809,2810} }, + {0,0,0,51,0x1,0,0x706,0x17C,0x488,{2811,327,2811,2812} }, + {0,0,0,45,0x1,0,0x706,0x104,0x258,{2813,287,2813,2814} }, + {0,0,0,71,0x1,0,0xF0E,0x1B1,0x1E6,{2815,2327,2815,2816} }, + {0,0,0,60,0x1,0,0xF0E,0x118,0x5D,{290,291,2817,2818} }, + {0,0,0,58,0x1,0,0xF0E,0x1FA,0x251,{2819,295,2820,2821} }, + {0,0,0,53,0x1,0,0xF0E,0x1E6,0x23D,{2822,2823,2822,2824} }, + {0,0,0,64,0x1,0,0xF0E,0xDC,0xB4,{747,297,2825,2826} }, + {0,0,0,71,0x1,0,0xF0E,0x6A,0x78,{2827,2828,2829,2830} }, + {0,0,0,61,0x1,0,0xF0E,0x3DA,0x46D,{2831,2832,2833,2834} }, + {0,0,0,61,0x1,0,0xF0E,0x6D2,0x812,{2835,2836,2835,2837} }, + {0,0,0,48,0x1,0,0xD0C,0x118,0x146,{737,738,739,739} }, + {0,0,0,48,0x1,0,0xD0C,0x17C,0x146,{737,738,740,740} }, + {0,0,0,69,0x1,0,0x100,0x78,0x140,{310,309,310,2838} }, + {0,0,0,68,0x1,0,0x100,0x78,0x140,{310,311,310,2839} }, + {0,0,0,63,0x1,0,0x100,0x8C,0x1B1,{310,311,310,2839} }, + {0,0,0,74,0x1,0,0x908,0x38A,0x3B9,{2840,2841,2842,2843} }, + {0,0,0,60,0x1,0,0xB0A,0x416,0x460,{2844,2845,2846,2847} }, + {0,0,0,80,0x1,0,0x908,0xD5,0xF0,{316,2848,316,2849} }, + {0,0,0,64,0x1,0,0x908,0x8E8,0xAE2,{318,2850,2851,2852} }, + {0,0,0,69,0x1,0,0xF0E,0x78,0x56,{2853,2854,2853,2855} }, + {0,0,0,55,0x1,0,0xF0E,0x5DC,0x244,{323,748,749,750} }, + {0,0,0,75,0x1,0,0xA0B,0x618,0x3AC,{2856,2857,2858,2859} }, + {0,0,0,68,0x1,0,0x908,0x78,0x140,{2860,309,2860,2838} }, + {0,0,0,48,0x1,0,0x706,0x190,0x495,{326,327,326,2812} }, + {0,0,0,53,0x1,0,0x706,0x244,0x8AC,{2861,2862,2861,2862} }, + {0,0,0,0,0,0,0xE0F,0x9C40,0x1596,{2863,2864}}, + {0,0,0,0,0,0,0x808,0x9C40,0x111C,{2865,2866}}, + {0,0,0,0,0,0,0x404,0x11B5,0xAA6,{2867,2868}}, + {0,0,0,0,0,0,0x606,0x9C40,0x57E,{2869,2870}}, + {0,0,0,0,0,0,0,0x9C40,0x14FD,{2871,2872}}, + {0,0,0,0,0,0,0x808,0x805,0x556,{1201,1202}}, + {0,0,0,0,0,0,0x808,0xE74,0x1136,{1205,1206}}, + {0,0,0,0,0,0,0xC0C,0xFBA,0x1309,{1207,1208}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x2DD,{1214,1215}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2C9,{1216,1217}}, + {0,0,0,0,0,0,0x202,0xCFE,0xAE2,{2873,2874}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0xAE2,{2875,2876}}, + {0,0,0,0,0,0,0,0x9C40,0xA92,{2877,2878}}, + {0,0,0,0,0,0,0x808,0x2F6C,0x1590,{2879,2880}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2881,1270}}, + {0,0,0,0,0,0,0x808,0x9C40,0x92,{2882,2883}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x92,{2884,2885}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2335,{2886,2887}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x92,{2888,2889}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2890,1270}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2891,1270}}, + {0,0,0,0,0,0,0,0x9C40,0xAB4,{2892,2893}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x161,{1243,1244}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2894,1270}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2895,1270}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2896,1270}}, + {0,0,0,0,0,0,0x808,0x9C40,0x251,{2897,2898}}, + {0,0,0,0,0,0,0xA0A,0xB75,0xB04,{2899,2900}}, + {0,0,0,0,0,0,0x606,0x9C40,0xAA0,{1250,1251}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x50D,{1248,2901}}, + {0,0,0,0,0,0,0xE0E,0x909,0x2D6,{2902,2903}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2B5,{2904,2905}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2C2,{2904,2906}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x58C,{2907,2908}}, + {0,0,0,0,0,0,0x606,0x9C40,0xAE2,{2909,2910}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{2911,2912}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x7E,{2913,2912}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{2914,2912}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{2915,2912}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{2916,2912}}, + {0,0,0,0,0,0,0x808,0x9C40,0x85,{2917,1270}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{2918,2919}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x1151,{2920,2921}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D5,{2922,2923}}, + {0,0,0,0,0,0,0x202,0x9C40,0x44C,{2924,2925}}, + {0,0,0,0,0,0,0x1,0x9C40,0xAC8,{2926,2927}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x258,{1278,1279}}, + {0,0,0,0,0,0,0x202,0x1CD4,0x2260,{2928,2929}}, + {0,0,0,0,0,0,0x808,0xE95,0x1158,{2930,2931}}, + {0,0,0,0,0,0,0x202,0x9C40,0x47A,{2932,2933}}, + {0,0,0,0,0,0,0x202,0x9C40,0x48E,{2934,1290}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2ADD,{2935,2936}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1140,1141}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{1241,1286}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1287,1288}}, + {0,0,0,0,0,0,0,0x9C40,0x55E9,{2937,2938}}, + {0,0,0,0,0,0,0,0x9C40,0x1511,{2939,2940}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2C2,{1303,1304}}, + {0,0,0,0,0,0,0x202,0xE8E,0x1144,{1305,2941}}, + {0,0,0,0,0,0,0xE0E,0x33F4,0x3F20,{2942,2943}}, + {0,0,0,0,0,0,0xA0A,0x1180,0x1504,{2944,2945}}, + {0,0,0,0,0,0,0xE0E,0x32C8,0x39E4,{1313,1314}}, + {0,0,0,0,0,0,0x404,0x3C6,0x114A,{1315,1316}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x826,{1317,1318}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1319,1320}}, + {0,0,0,0,0,0,0x607,0x9C40,0x182,{1299,1300}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{1321,1322}}, + {0,0,0,0,0,0,0x202,0x9C40,0x870,{2946,2947}}, + {0,0,0,0,0,0,0xA0A,0x18F2,0x585,{2948,2949}}, + {0,0,0,0,0,0,0xE0E,0x1FA,0xAD5,{942,710}}, + {0,0,0,0,0,0,0x202,0x3980,0x447D,{1305,1330}}, + {0,0,0,0,0,0,0x606,0x3882,0x42D9,{1331,1332}}, + {0,0,0,0,0,0,0xA0A,0x146A,0x8A5,{1333,1334}}, + {0,0,0,0,0,0,0x808,0x9C40,0xA78,{2950,2951}}, + {0,0,0,48,0,0,0xE0E,0x1CC,0x24A,{2952,2953}}, + {0,0,0,52,0,0,0xE0E,0x118,0x5D,{1344,1345}}, + {0,0,0,48,0,0,0x1,0x201,0x258,{2954,2955}}, + {0,0,0,36,0,0,0x1,0x2C9,0x33A,{2954,2955}}, + {0,0,0,60,0,0,0xE0E,0x8C,0x99,{1350,1351}}, + {0,0,0,84,0,0,0xE0E,0x15A,0x730,{709,710}}, + {0,0,0,60,0,0,0xE0E,0xDC,0xF6,{1352,1353}}, + {0,0,0,95,0,0,0x606,0x74A,0x88A,{1331,1332}}, + {0,0,0,84,0,0,0xE0E,0x182,0x1F4,{2952,2953}}, + {0,0,0,0,0,0,0xA0A,0x8B9,0x2C9,{2956,2957}}, + {0,0,0,0,0,0,0,0x8B2,0x2D0,{2958,2957}}, + {0,0,0,0,0,0,0xA0A,0x8B9,0x2E4,{2959,2957}}, + {0,0,0,0,0,0,0x404,0x88A,0x29A,{2960,2961}}, + {0,0,0,0,0,0,0x808,0x1D31,0x5D,{2962,2963}}, + {0,0,0,0,0,0,0,0x9C40,0xA6,{2964,2965}}, + {0,0,0,0,0,0,0xA0A,0xDA5,0x244,{2966,2967}}, + {0,0,0,0,0,0,0xE0E,0x6D2,0x5D,{2968,2969}}, + {0,0,0,0,0,0,0xE0E,0x42A,0x57E,{2970,2971}}, + {-12,0,0,0,0,0,0,0xD91,0x1590,{2972,2973}}, + {0,0,0,0,0,0,0,0x438,0x71,{2974,2975}}, + {0,0,0,0,0,0,0x203,0x9C40,0x564,{2976,2977}}, + {0,0,0,0,0,0,0x404,0x4BD,0x585,{2978,2979}}, + {0,0,0,0,0,0,0xC0C,0x258,0x189,{2980,2981}}, + {-12,0,0,0,0,0,0xE0E,0x1226,0x1590,{2982,2983}}, + {0,0,0,0,0,0,0,0x46D,0x92,{2984,2985}}, + {0,0,0,0,0,0,0xC0D,0x9C40,0x5D,{2986,2987}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x56,{2988,2989}}, + {0,0,0,0,0,0,0x607,0x9C40,0x5D,{2990,2991}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{376,377}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x64,{2992,377}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x64,{2993,2994}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{2995,2996}}, + {0,0,0,0,0,0,0,0x9C40,0x64,{2997,2998}}, + {0,0,0,0,0,0,0,0x18F2,0xBA,{2999,3000}}, + {0,0,0,0,0,0,0,0x18F2,0xBA,{3001,3000}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{3002,55}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x50,{3003,3004}}, + {0,0,0,0,0,0,0xE0E,0x75E,0x5D,{3005,3006}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{3007,3008}}, + {0,0,0,0,0,0,0,0x9C40,0x50,{3009,3010}}, + {0,0,0,0,0,0,0xC0C,0x5BA,0x71,{3011,3012}}, + {12,0,0,0,0,0,0x606,0x9C40,0x5D,{3013,3014}}, + {12,0,0,0,0,0,0x808,0x9C40,0x8C,{3015,3016}}, + {12,0,0,0,0,0,0xC0C,0x9C40,0x1B8,{3017,2898}}, + {12,0,0,0,0,0,0x808,0x9C40,0x5D,{3018,3019}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3020,3021}}, + {12,0,0,0,0,0,0x606,0x9C40,0x1B8,{3022,2898}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3023,3021}}, + {0,0,0,0,0,0,0x404,0x9C40,0x251,{3024,2898}}, + {0,0,0,0,0,0,0xE0E,0xE88,0x1144,{2982,2983}}, + {0,0,0,0,0,0,0,0x9C40,0x272,{3025,3026}}, + {0,0,0,0,0,0,0,0x9C40,0x286,{3027,3028}}, + {0,0,0,0,0,0,0,0x9C40,0x25E,{3029,3030}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xD5,{3031,3032}}, + {0,0,0,0,0,0,0,0x736,0x891,{3033,3034}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x56,{3035,3036}}, + {0,0,0,0,0,0,0,0x42A,0x4DE,{3037,3038}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xD5,{3039,3040}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x8A5,{3041,3042}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xD5,{3043,3044}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xDC,{3045,3046}}, + {0,0,0,0,0,0,0,0x9C40,0x488,{98,3047}}, + {0,0,0,0,0,0,0,0x9C40,0x139,{3048,3049}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x47A,{3050,3051}}, + {0,0,0,0,0,0,0x606,0x1A4,0x64,{3052,3053}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3054,3021}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{3055,3056}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x85,{3057,3058}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xE2,{3059,3060}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xE2,{3061,3062}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x50,{3063,3064}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x71,{3065,3066}}, + {0,0,0,0,0,0,0x606,0x9C40,0x85,{3067,3068}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x85,{3069,3068}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x8C,{3070,3071}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x8C,{3072,3071}}, + {0,0,0,0,0,0,0,0x9C40,0x1C5,{3073,3074}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{3075,3076}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{3077,3078}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x17C,{3079,3080}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x71,{3081,3082}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{3083,3082}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{3084,3085}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{3086,3087}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x92,{3088,3085}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{3089,3090}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3091,3021}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x11E,{3092,3093}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x92,{3094,3085}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{3095,3096}}, + {0,0,0,0,0,0,0,0x9C40,0xB4,{3097,3098}}, + {-12,0,0,0,0,0,0,0x9C40,0x92,{3099,3100}}, + {-24,0,0,0,0,0,0xA0B,0x9C40,0xAD,{3101,3102}}, + {0,0,0,0,0,0,0x808,0x9C40,0x56,{3103,3104}}, + {0,0,0,0,0,0,0,0x9C40,0x4E5,{3105,3106}}, + {0,0,0,0,0,0,0,0x9C40,0x24A,{3107,3108}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xDC,{3109,3110}}, + {0,0,0,0,0,0,0,0x9C40,0x8C6,{3111,3112}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x154D,{3113,3114}}, + {0,0,0,0,0,0,0,0x9C40,0x8B2,{3115,3042}}, + {0,0,0,0,0,0,0x606,0x9C40,0x265,{3116,3117}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x154,{3118,3119}}, + {0,0,0,0,0,0,0,0x2670,0x571,{3120,3121}}, + {-12,0,0,0,0,0,0x809,0x9C40,0xFD,{3122,3123}}, + {0,0,0,0,0,0,0xE0E,0xE95,0x1136,{3124,3125}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x64,{3126,3127}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{3128,3129}}, + {0,0,0,0,0,0,0,0x9C40,0xADC,{3130,3131}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{3132,3129}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2184,{3133,3134}}, + {0,0,0,0,0,0,0,0x1115,0x542,{3135,3136}}, + {-12,0,0,0,0,0,0xE0E,0x33A,0x2B5,{3137,3138}}, + {0,0,0,0,0,0,0xE0E,0xE24,0xC1,{3139,3140}}, + {-12,0,0,0,0,0,0,0x689,0xA28,{3141,3142}}, + {0,0,0,0,0,0,0,0x1C5,0x182,{3143,3144}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{3145,3146}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3147,3148}}, + {0,0,0,0,0,0,0,0x9C40,0x251,{3149,3150}}, + {-7,0,0,0,0,0,0,0x11E4,0x1511,{3151,3152}}, + {-7,0,0,0,0,0,0,0x161,0x189,{3153,3154}}, + {0,0,0,0,0,0,0,0x514,0x56A,{3155,3156}}, + {-7,0,0,0,0,0,0x404,0x11DD,0x1539,{3157,3158}}, + {2,0,0,0,0,0,0x404,0x286,0x2F1,{3159,3160}}, + {0,0,0,0,0,0,0xE0E,0x280,0x2DD,{3161,3160}}, + {0,0,0,0,0,0,0xE0E,0xBCC,0x56,{3162,3163}}, + {0,0,0,0,0,0,0xE0E,0x445,0x236,{3164,3165}}, + {0,0,0,0,0,0,0xE0E,0x1798,0x1115,{3166,3167}}, + {0,0,0,0,0,0,0,0x279,0x146,{3168,3169}}, + {-12,0,0,0,0,0,0xC0C,0x9C40,0x6A,{3170,3171}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3172,3173}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x1122,{3174,3175}}, + {0,0,0,0,0,0,0xE0E,0x272,0x2DD,{3176,3177}}, + {0,0,0,48,0,0,0xA0A,0x11E,0x139,{3178,3179}}, + {0,0,0,48,0,0,0,0x64,0x6A,{3180,3181}}, + {0,0,0,60,0,0,0xE0E,0xF0,0x14D,{3182,3183}}, + {0,0,0,60,0,0,0xE0E,0xA6,0xC1,{3184,3185}}, + {0,0,0,70,0,0,0xE0E,0x85,0x6A,{3186,3187}}, + {0,0,0,51,0,0,0x404,0x201,0x258,{3188,3189}}, + {0,0,0,60,0,0,0xE0E,0xAD,0xC1,{3190,3191}}, + {0,0,0,54,0,0,0x404,0x208,0x258,{3188,3189}}, + {0,0,0,60,0,0,0xC0C,0x99,0x85,{3192,3193}}, + {0,0,0,56,0,0,0x404,0x208,0x258,{3188,3189}}, + {0,0,0,60,0,0,0xE0E,0x2A1,0x251,{3194,3195}}, + {0,0,0,61,0,0,0x404,0x201,0x251,{3188,3189}}, + {0,0,0,63,0,0,0x404,0x201,0x258,{3188,3189}}, + {0,0,0,48,0,0,0xE0E,0x2A1,0x251,{3196,3195}}, + {0,0,0,68,0,0,0x404,0x1B8,0x1FA,{3188,3189}}, + {0,0,0,60,0,0,0xE0E,0x6E0,0x7D6,{3197,3198}}, + {0,0,0,60,0,0,0xE0E,0x2A1,0x251,{3199,3200}}, + {0,0,0,66,0,0,0xE0E,0x12C,0x139,{3201,3202}}, + {0,0,0,60,0,0,0,0x2A1,0x251,{3203,3195}}, + {0,0,0,59,0,0,0xE0E,0xAD,0xC1,{713,714}}, + {0,0,0,64,0,0,0xE0E,0x29A,0x251,{3196,3195}}, + {0,0,0,48,0,0,0x606,0x3EE,0x5D,{3204,3205}}, + {0,0,0,56,0,0,0,0x78,0x6A,{3206,3207}}, + {0,0,0,53,0,0,0,0x118,0x140,{3208,3209}}, + {0,0,0,65,0,0,0xE0E,0x64,0x6A,{3206,3210}}, + {0,0,0,49,0,0,0,0x11E,0x146,{3211,3209}}, + {0,0,0,43,0,0,0,0x11E,0x146,{3211,3209}}, + {0,0,0,65,0,0,0x808,0x3C6,0x8A5,{727,728}}, + {0,0,0,60,0,0,0x808,0x3F5,0x8CD,{727,728}}, + {0,0,0,70,0,0,0,0x104,0x118,{3212,3213}}, + {0,0,0,65,0,0,0,0x132,0x140,{3212,3213}}, + {0,0,0,60,0,0,0xE0E,0xF6,0x132,{3214,3215}}, + {0,0,0,60,0,0,0xE0E,0xBA,0xFD,{3216,3217}}, + {0,0,0,56,0,0,0xA0A,0xCE,0x5D,{3218,3219}}, + {0,0,0,53,0,0,0,0x1B1,0x64,{3220,3221}}, + {0,0,0,60,0,0,0xE0E,0xDC,0xF6,{3222,3223}}, + {0,0,0,48,0,0,0xE0E,0x12C,0x5D,{3224,3225}}, + {0,0,0,69,0,0,0x1,0x78,0,{3226,3227}}, + {0,0,0,67,0,0,0xE0E,0x85,0xA6,{618,619}}, + {0,0,0,62,0,0,0xE0E,0x92,0xBA,{618,619}}, + {0,0,0,65,0,0,0,0x1B1,0x12C,{3228,3229}}, + {0,0,0,60,0,0,0,0x1AA,0x12C,{3230,3231}}, + {0,0,0,63,0,0,0,0x78,0x78,{3232,3233}}, + {0,0,0,63,0,0,0,0x744,0x891,{3234,3235}}, + {0,0,0,67,0,0,0xE0E,0x10A,0xD5,{3236,3237}}, + {0,0,0,60,0,0,0,0x3B9,0x431,{3238,3239}}, + {0,0,0,72,0,0,0,0x320,0x391,{3238,3239}}, + {0,0,0,62,0,0,0,0x3C,0x5D,{753,754}}, + {0,0,0,48,0,0,0x202,0x78,0x85,{3240,3241}}, + {0,0,0,53,0,0,0x404,0x3C6,0x47A,{3242,3243}}, + {0,0,0,60,0,0,0,0x125,0x146,{3244,3154}}, + {0,0,0,60,0,0,0xE0E,0xA0,0x5D,{3245,3246}}, + {0,0,0,60,0,0,0xE0E,0x78,0x99,{3247,3248}}, + {0,0,0,60,0,0,0xE0E,0xAD,0xC1,{3249,3191}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x125,{3250,3251}}, + {0,0,0,0,0,0,0x809,0x9C40,0x460,{3252,3253}}, + {0,0,0,0,0,0,0x808,0xEC4,0x64,{3254,3255}}, + {0,0,0,0,0,0,0xE0E,0xED1,0x15E0,{3256,3257}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{1090,3258}}, + {0,0,0,0,0,0,0x202,0x9C40,0x46D,{2534,3259}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2D0,{3260,3261}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3262,3263}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x14D,{3264,3265}}, + {0,0,0,0,0,0,0,0x9C40,0x424,{3266,3267}}, + {0,0,0,0,0,0,0x606,0x16EA,0x2198,{3268,3269}}, + {0,0,0,0,0,0,0x606,0x1DF9,0x2238,{3270,3271}}, + {0,0,0,0,0,0,0x808,0x1219,0x891,{633,962}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x452,{3272,3273}}, + {0,0,0,0,0,0,0x606,0x9C40,0x639,{3274,3275}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x50,{3276,3277}}, + {0,0,0,0,0,0,0,0x4D1,0x578,{85,3278}}, + {0,0,0,0,0,0,0,0x256C,0x1596,{984,3279}}, + {0,0,0,0,0,0,0x808,0x9C40,0x10C5,{3280,3281}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x11E,{3250,3282}}, + {0,0,0,0,0,0,0,0x9C40,0x154,{352,3283}}, + {0,0,0,0,0,0,0x808,0x7FE,0x4D1,{3284,3285}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x71,{3286,3287}}, + {0,0,0,0,0,0,0,0x265,0x55D,{3288,3289}}, + {0,0,0,0,0,0,0x202,0x9C40,0x71,{3290,3291}}, + {0,0,0,0,0,0,0xE0E,0x1082,0x891,{3292,3293}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3294,3295}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x58C,{3296,3297}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x24A,{3298,3299}}, + {0,0,0,0,0,0,0x808,0x9C40,0x2A8,{3300,3301}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2A8,{3302,3303}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x8F5,{3304,3305}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x99,{3306,3307}}, + {0,0,0,0,0,0,0,0x780,0x876,{3308,3309}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{478,3310}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{3311,2572}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2DD,{3312,3313}}, + {0,0,0,0,0,0,0x202,0x9C40,0x44C,{3314,3315}}, + {0,0,0,0,0,0,0x606,0x1AE0,0x6A,{3316,3317}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2D0,{3318,3319}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3320,3321}}, + {0,0,0,0,0,0,0,0x201C,0x14FD,{3322,3323}}, + {0,0,0,0,0,0,0,0x9C40,0x146,{352,3324}}, + {0,0,0,0,0x4,0,0x202,0x9C40,0x481,{3325,3326}}, + {0,0,0,0,0,0,0,0x9C40,0x215,{3327,3328}}, + {0,0,0,0,0,0,0,0x9C40,0x2C9,{3329,3330}}, + {0,0,0,0,0,0,0,0x272,0x2DD,{3331,3332}}, + {0,0,0,0,0,0,0,0x8E8,0xA92,{3333,3334}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x549,{3335,3336}}, + {0,0,0,0,0,0,0,0x9C40,0x51A,{3337,3338}}, + {0,0,0,0,0,0,0,0x916,0xABA,{3339,3340}}, + {0,0,0,0,0x4,0,0x606,0xF56,0x474,{3341,3342}}, + {0,0,0,0,0,0,0xE0E,0x109D,0x898,{3292,3343}}, + {0,0,0,0,0,0,0x808,0x9C40,0x481,{3344,3345}}, + {0,0,0,0,0,0,0,0x9C40,0x251,{3346,3347}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x44C,{3272,3348}}, + {0,0,0,41,0,0,0x808,0x182,0x1B8,{248,3349}}, + {0,0,0,70,0,0,0xE0E,0x64,0x5D,{3350,3351}}, + {0,0,0,60,0,0,0xE0E,0x161,0x23D,{3352,3353}}, + {0,0,0,80,0,0,0,0x64,0x5D,{3354,3355}}, + {0,0,0,84,0,0,0xE0E,0x71,0x78,{3356,3357}}, + {0,0,0,72,0,0,0xE0E,0x1FA,0x744,{3358,3359}}, + {0,0,0,84,0,0,0,0x35C,0x74A,{3360,3361}}, + {0,0,0,70,0,0,0x808,0x64,0x5D,{250,251}}, + {0,0,0,60,0,0,0xA0A,0x92,0x99,{258,259}}, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x2E4,{3362,3363,3364,3365} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x1906,{3366,3367}}, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x64,{3368,3369,3370,3371} }, + {0,0,0,0,0x1,0,0xC0C,0x9C40,0x92,{3372,3373,3374,3375} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x71,{3376,3377,3378,3379} }, + {0,0,0,0,0,0,0xE0E,0x495,0x571,{884,885}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x8E1,{3380,3381}}, + {0,0,0,0,0,0,0x203,0x9C40,0x128A,{3382,3383}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xA50,{3384,3385}}, + {0,0,0,0,0,0,0x606,0x9C40,0x4BD,{3386,3387}}, + {0,0,0,0,0,0,0xE0E,0x66E,0xADC,{3388,3389}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x251,{3390,3391}}, + {0,0,0,0,0,0,0x606,0x9C40,0x28D,{3392,3393}}, + {0,0,0,0,0,0,0,0x765,0xAFD,{3394,3395}}, + {0,0,0,0,0,0,0xE0E,0x1212,0xACE,{3396,3397}}, + {0,0,0,0,0,0,0x606,0x9C40,0x64,{3398,3399}}, + {0,0,0,0,0,0,0x808,0x9C40,0x2DD,{3400,3401}}, + {0,0,0,0,0,0,0x607,0x9C40,0x17C,{3402,3403}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xC1,{3404,3405}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x14D,{3406,3407}}, + {0,0,0,0,0,0,0x808,0x1CC6,0x2259,{3408,1165}}, + {0,0,0,0,0,0,0x404,0x47A,0x55D,{3409,1312}}, + {0,0,0,0,0,0,0,0x9C40,0xA28,{3410,3411}}, + {0,0,0,0,0,0,0,0x9C40,0x521,{3412,3413}}, + {0,0,0,0,0,0,0,0x9C40,0xA56,{3414,3415}}, + {0,0,0,0,0,0,0x606,0x1270,0x2D6,{1157,1158}}, + {0,0,0,0,0,0,0x607,0x94C,0xAB4,{3416,3417}}, + {0,0,0,0,0,0,0x404,0x1C41,0x215C,{890,891}}, + {0,0,0,0,0,0,0xE0E,0x1E0,0x2C9,{925,926}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x140,{3418,3419}}, + {0,0,0,0,0,0,0xE0E,0x272,0x2BC,{3420,3421}}, + {0,0,0,0,0,0,0x404,0x91D,0xADC,{3422,3423}}, + {0,0,0,0,0,0,0x202,0x9C40,0x4372,{882,3424}}, + {0,0,0,0,0,0,0x808,0x272,0x2D6,{3425,952}}, + {0,0,0,0,0,0,0xE0E,0x924,0xAD5,{940,941}}, + {0,0,0,0,0,0,0x808,0x154,0x189,{3425,951}}, + {0,0,0,60,0,0,0xE0E,0x9C40,0x10A,{3418,3419}}, + {0,0,0,72,0,0,0xE0E,0x61E,0x744,{940,941}}, + {0,0,0,84,0,0,0x808,0xF6,0x118,{3425,951}}, + {0,0,0,0,0,0,0x404,0x9C40,0x506,{3426,3427}}, + {0,0,0,0,0,0,0x606,0xA92,0x855,{3428,3429}}, + {0,0,0,0,0,0,0x404,0x9C40,0x592,{3430,3431}}, + {0,0,0,0,0,0,0x808,0x9C40,0xA0,{3432,3433}}, + {0,0,0,0,0,0,0x606,0x9C40,0x99,{3434,3435}}, + {0,0,0,0,0,0,0,0x9C40,0xA0,{3436,3433}}, + {0,0,0,0,0,0,0x606,0x9C40,0x64,{3437,3438}}, + {0,0,0,0,0,0,0x808,0x812,0x2DD,{3439,3440}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x189,{3441,3442}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{3443,3444}}, + {0,0,0,0,0,0,0x202,0x9C40,0xC1,{3445,3446}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{3447,3448}}, + {0,0,0,0,0,0,0x404,0x9C40,0x848,{36,3449}}, + {0,0,0,0,0,0,0x202,0x9C40,0x891,{3450,3451}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x88A,{3452,3449}}, + {0,0,0,0,0,0,0x808,0x1CB2,0x24A,{3453,3454}}, + {0,0,0,0,0,0,0x404,0x1712,0x140,{3455,3456}}, + {0,0,0,0,0,0,0,0x1D02,0x2DD,{3457,3458}}, + {0,0,0,0,0,0,0,0x1D02,0x2DD,{3459,3458}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{3460,3461}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3462,3463}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3464,3465}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{3466,121}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xC8,{3467,3468}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xA6,{3469,3470}}, + {0,0,0,0,0,0,0x808,0x9C40,0x20EA,{3471,3472}}, + {0,0,0,0,0,0,0,0x9C40,0x10D2,{3473,3474}}, + {0,0,0,0,0,0,0,0x9C40,0x104D,{3475,3476}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x57E,{3477,3478}}, + {0,0,0,0,0,0,0x202,0x9C40,0x13F9,{3479,1154}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x215,{3480,3481}}, + {0,0,0,0,0,0,0x808,0x1220,0x8B2,{633,3482}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3483,3484}}, + {0,0,0,0,0,0,0,0x9C40,0x4178,{3485,3486}}, + {0,0,0,0,0,0,0x202,0x1E00,0x223E,{3487,3488}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x71,{3489,3490}}, + {0,0,0,0,0,0,0x607,0x1F7C,0x251C,{3491,3492}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xBA,{3493,3494}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xD5,{3495,3496}}, + {0,0,0,0,0,0,0x202,0xFFD,0x1518,{3497,3498}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{3499,1069}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xE2,{3500,3501}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2C2,{3502,3503}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{3504,3505}}, + {0,0,0,0,0,0,0,0x4B0,0xE2,{3506,3507}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5AD,{3508,3509}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x189,{3510,3511}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5B4,{3512,3513}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{3514,3515}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2B5,{3516,3517}}, + {0,0,0,0,0,0,0x202,0x481,0xE2,{3518,3519}}, + {0,0,0,0,0,0,0x606,0x1310,0x1540,{3520,3521}}, + {0,0,0,0,0,0,0x404,0xB75,0xA99,{3522,3523}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x8C,{3524,3525}}, + {0,0,0,0,0,0,0xC0C,0x952,0xADC,{3526,3527}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{3528,3529}}, + {0,0,0,0,0,0,0x606,0x9C40,0xD5,{3530,3531}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xD5,{3532,3533}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3534,3535}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3536,3537}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xAD,{3538,3539}}, + {0,0,0,0,0,0,0x202,0x9C40,0x64,{3540,3541}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{3540,3542}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{3543,3544}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{3545,3546}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{3547,3548}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{3549,3550}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{3551,3552}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{3553,3554}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2F1,{3555,3556}}, + {0,0,0,0,0,0,0,0x9C40,0x17C,{3557,3080}}, + {0,0,0,0,0,0,0,0x9C40,0x175,{3558,3080}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{3559,3560}}, + {0,0,0,0,0,0,0x202,0x9C40,0x56,{3561,133}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{3562,3563}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x190,{3564,3565}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x50,{3566,3567}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3568,3569}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{3570,3571}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{3572,3573}}, + {0,0,0,0,0,0,0x202,0x9C40,0x71,{3574,115}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3575,3576}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{3577,3578}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{3579,3580}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x578,{3581,3582}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x578,{3583,3584}}, + {0,0,0,0,0,0,0x202,0x9D8,0xADC,{3585,3586}}, + {0,0,0,0,0,0,0x202,0x361D,0x444E,{3587,790}}, + {0,0,0,0,0,0,0xA0A,0x1CD4,0x2266,{3588,3589}}, + {0,0,0,0,0,0,0x606,0x1C62,0x21E8,{3590,3591}}, + {0,0,0,0,0,0,0x404,0x272,0x2DD,{3592,3593}}, + {0,0,0,0,0,0,0x808,0x909,0xABA,{3594,3595}}, + {0,0,0,0,0,0,0x202,0x9C40,0x71,{3540,3548}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x161,{3596,3597}}, + {0,0,0,0,0,0,0x405,0x9C40,0x175,{3598,3599}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x49C,{3600,3601}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{3602,3603}}, + {0,0,0,0,0,0,0x202,0x1AD9,0x114A,{3604,90}}, + {0,0,0,0,0,0,0x404,0x9EC,0x8B9,{3605,3606}}, + {0,0,0,0,0,0,0xC0C,0xC8,0xE2,{3607,665}}, + {0,0,0,0,0,0,0xA0A,0xD5,0xF0,{3608,3609}}, + {0,0,0,0,0,0,0xA0A,0x168,0x189,{3610,3611}}, + {0,0,0,0,0,0,0x606,0x3F5,0x4D1,{3612,3613}}, + {0,0,0,0,0,0,0xE0E,0x10A,0x132,{3614,3615}}, + {0,0,0,0,0,0,0xE0E,0x758,0x8B2,{3616,3617}}, + {0,0,0,0,0,0,0x1,0x118,0x251,{3618,3619}}, + {0,0,0,0,0,0,0x808,0xE4C,0x11EA,{3620,3621}}, + {0,0,0,0,0,0,0xA0A,0x46D,0x578,{3622,2417}}, + {0,0,0,0,0,0,0xA0A,0x3354,0x21E1,{241,2593}}, + {0,0,0,0,0,0,0xE0F,0x14D,0x64,{3623,3624}}, + {0,0,0,0,0,0,0x404,0x1CC0,0x2252,{3625,3626}}, + {0,0,0,0,0,0,0x808,0x4EC,0x564,{3627,3628}}, + {0,0,0,51,0x4,0,0,0x6,0,{662,663}}, + {0,0,0,35,0,0,0x808,0x2BC,0x33A,{3629,3630}}, + {0,0,0,36,0,0,0x808,0x2BC,0x33A,{3629,3630}}, + {0,0,0,47,0,0,0xC0D,0x64,0x64,{3631,3632}}, + {0,0,0,38,0,0,0xE0E,0x154,0x189,{3633,3634}}, + {0,0,0,39,0,0,0xE0E,0xDC,0xF6,{3614,3615}}, + {0,0,0,45,0,0,0xE0E,0x118,0x140,{3635,3636}}, + {0,0,0,41,0,0,0x404,0x410,0x55D,{912,913}}, + {0,0,0,42,0,0,0xC0C,0xD5,0xF0,{3637,3638}}, + {0,0,0,44,0,0,0xE0E,0x1FA,0x251,{237,3639}}, + {0,0,0,48,0,0,0x404,0x341,0x445,{912,913}}, + {0,0,0,46,0,0,0xE0E,0x74A,0x898,{237,3640}}, + {0,0,0,53,0,0,0x404,0x355,0x481,{912,913}}, + {0,0,0,49,0,0,0xE0E,0xE60,0x1129,{237,263}}, + {0,0,0,56,0,0,0xE0E,0x279,0x466,{323,324}}, + {0,0,0,61,0,0,0xE0F,0x16E,0x1AA,{3641,3642}}, + {0,0,0,56,0,0,0x808,0x542,0x639,{3643,3644}}, + {0,0,0,60,0,0,0x607,0xC8,0x139,{280,3645}}, + {0,0,0,59,0,0,0x607,0xC8,0x139,{280,281}}, + {0,0,0,59,0,0,0x607,0x64,0x6A,{326,3646}}, + {0,0,0,51,0,0,0x607,0x168,0x474,{326,327}}, + {0,0,0,45,0,0,0x607,0x168,0x474,{326,327}}, + {0,0,0,72,0,0,0xE0F,0xF6,0x5D,{3647,3648}}, + {0,0,0,60,0,0,0xE0F,0x118,0x5D,{3623,3649}}, + {0,0,0,58,0,0,0xE0F,0x15A,0x460,{3650,3651}}, + {0,0,0,53,0,0,0xE0F,0x154,0x459,{3652,3651}}, + {0,0,0,73,0,0,0xC0C,0x78,0x5D,{3653,3654}}, + {0,0,0,75,0,0,0x1,0x78,0x140,{308,309}}, + {0,0,0,0,0,0,0x404,0x1B5E,0x10F4,{2532,3655}}, + {0,0,0,0,0,0,0xC0C,0x805,0x995,{3656,3657}}, + {0,0,0,0,0,0,0x202,0xE88,0x1130,{1305,3658}}, + {0,0,0,0,0,0,0xA0A,0x49C,0x2A5E,{3659,3660}}, + {0,0,0,0,0,0,0xA0A,0x4B0,0x2B05,{3661,3660}}, + {0,0,0,0,0,0,0x808,0x9C40,0x21FC,{3662,3663}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x58C,{3664,3665}}, + {0,0,0,0,0,0,0xC0C,0x3DA,0x21A5,{3666,3667}}, + {0,0,0,0,0,0,0,0x9C40,0x2252,{3668,3669}}, + {0,0,0,0,0,0,0,0x9C40,0x226D,{3670,3669}}, + {0,0,0,0,0,0,0x1,0x9C40,0x585,{3671,3672}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x8C0,{3673,3674}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{3675,3676}}, + {0,0,0,0,0,0,0x202,0x9C40,0x48E,{3677,3678}}, + {0,0,0,0,0,0,0xA0A,0x341,0x189,{3679,3680}}, + {0,0,0,0,0,0,0xA0A,0x689,0xADC,{3681,3682}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{3683,413}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{1311,3684}}, + {0,0,0,0,0,0,0x808,0x744,0x898,{1192,3685}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x514,{3686,3687}}, + {0,0,0,0,0,0,0xE0E,0x168,0x2FE,{3688,3689}}, + {0,0,0,0,0,0,0,0x2274,0x14C1,{1260,3690}}, + {0,0,0,0,0,0,0,0x9C40,0x1590,{3691,3692}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x514,{3686,3693}}, + {0,0,0,0,0,0,0x808,0x254A,0x155A,{3694,3695}}, + {0,0,0,0,0,0,0,0xCC9,0xF2E,{3696,3697}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3698,3699}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x175,{3700,1244}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x16F8,{1254,1255}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x71,{1298,3701}}, + {0,0,0,0,0,0,0,0x9C40,0x2DD,{1218,3702}}, + {0,0,0,0,0,0,0,0x9C40,0x2DD,{1218,3703}}, + {0,0,0,0,0,0,0x607,0x9C40,0x182,{3704,3705}}, + {0,0,0,0,0,0,0x607,0x9C40,0x168,{3704,3706}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x2DD,{1214,3707}}, + {0,0,0,0,0,0,0x202,0xE09,0x10B1,{1305,3708}}, + {0,0,0,0,0,0,0x202,0x9C40,0x146,{3709,3710}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2210,{3711,3712}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x62C,{3713,3714}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x11A1,{3715,3716}}, + {0,0,0,0,0,0,0x1,0x9C40,0x13DE,{3717,3718}}, + {0,0,0,0,0,0,0x606,0x9C40,0x4BA0,{3719,3720}}, + {0,0,0,0,0,0,0x202,0x9C40,0x1596,{3721,3722}}, + {0,0,0,0,0,0,0x203,0x9C40,0x1589,{3723,3724}}, + {0,0,0,0,0,0,0x809,0x9C40,0x1590,{3725,3726}}, + {0,0,0,0,0,0,0x809,0x9C40,0x15E6,{3727,3726}}, + {0,0,0,0,0,0,0x607,0x9C40,0x1590,{3728,3729}}, + {0,0,0,0,0,0,0,0x9C40,0x430E,{3730,3731}}, + {0,0,0,0,0,0,0,0x9C40,0x44C0,{3732,3733}}, + {0,0,0,0,0,0,0,0x533A,0x5599,{3734,3735}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2126,{3736,3737}}, + {0,0,0,0,0,0,0,0x46D5,0x51C5,{3738,3739}}, + {0,0,0,0,0,0,0,0x8FC,0xAE2,{3740,3741}}, + {0,0,0,0,0,0,0x808,0xAF6,0xE16,{3742,3743}}, + {0,0,0,0,0,0,0,0xC22,0xD55,{3744,3745}}, + {0,0,0,0,0,0,0xE0E,0x398,0x154D,{3746,3747}}, + {0,0,0,0,0,0,0xC0C,0x772,0x46D,{967,3748}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{3749,3750}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{3751,3750}}, + {0,0,0,0,0,0,0x404,0x4A9,0x1630,{3752,3753}}, + {0,0,0,0,0,0,0x202,0x3CD,0x115E,{3754,3755}}, + {0,0,0,0,0,0,0x808,0xC8,0x5D,{955,3756}}, + {0,0,0,0,0,0,0,0x272,0x2DD,{3757,3160}}, + {0,0,0,0,0,0,0xE0E,0xC36,0x2DD,{3758,3759}}, + {0,0,0,0,0,0,0x808,0x2F1,0x201,{3760,3761}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2AB5,{3762,3763}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2C9,{3764,3765}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2D6,{3766,3765}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2DD,{3767,3768}}, + {0,0,0,60,0,0,0x808,0xAD,0x5D,{955,845}}, + {0,0,0,12,0,0,0,0x26C,0x2DD,{1358,1359}}, + {0,0,0,89,0,0,0xE0F,0x6A,0x5D,{3769,3770}}, + {0,0,0,89,0,0,0xE0E,0x2B5,0x326,{3771,3772}}, + {0,0,0,14,0,0,0,0x26C,0x2DD,{1358,1359}}, + {0,0,0,16,0,0,0,0x272,0x2DD,{1358,1359}}, + {0,0,0,84,0,0,0xE0E,0x62C,0x73D,{3773,3774}}, + {0,0,0,19,0,0,0,0x272,0x2DD,{1358,1359}}, + {0,0,0,60,0,0,0xE0E,0x19D,0x869,{709,710}}, + {0,0,0,38,0,0,0x404,0xDC,0x1B8,{3775,3776}}, + {0,0,0,36,0,0,0xC0C,0x6D9,0xAF6,{3777,3778}}, + {0,0,0,28,0,0,0,0x26C,0x2D6,{1358,1359}}, + {0,0,0,26,0,0,0,0x272,0x2E4,{1358,1359}}, + {0,0,0,35,0,0,0,0x272,0x2E4,{1358,1359}}, + {0,0,0,30,0,0,0,0x272,0x2DD,{1358,1359}}, + {0,0,0,60,0,0,0xE0E,0xAD,0xA0,{3779,3780}}, + {0,0,0,60,0,0,0x808,0xAD,0x5D,{955,3756}}, + {0,0,0,55,0,0,0x808,0xAD,0x5D,{955,3756}}, + {0,0,0,94,0,0,0x606,0x744,0x884,{1331,1332}}, + {0,0,0,0,0,0,0x606,0x375D,0x466,{1364,1365}}, + {0,0,0,0,0,0,0xC0C,0x3A26,0x481,{1366,1367}}, + {0,0,0,0,0,0,0xE0E,0x38FA,0x24A,{1374,1375}}, + {0,0,0,0,0,0,0x809,0xB68,0x6E6,{1378,1379}}, + {0,0,0,0,0,0,0xA0B,0x73D,0xAFD,{1382,1383}}, + {0,0,0,0,0,0,0x405,0x701,0x862,{1386,1387}}, + {0,0,0,0,0,0,0xA0A,0xD7D,0xAA0,{1390,1391}}, + {0,0,0,0,0,0,0x607,0x9C40,0x5D,{1394,1395}}, + {0,0,0,0,0,0,0x405,0x9C40,0x5D,{1396,1397}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x3C0,{1398,1399}}, + {0,0,0,0,0,0,0x809,0x9C40,0x265,{1400,1401}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x132,{1404,1405}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x24A,{1408,1409}}, + {0,0,0,0,0,0,0x404,0x1CC0,0xC1,{1410,1411}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{1414,1415}}, + {0,0,0,0,0,0,0x808,0x4C4,0x64,{3781,3782}}, + {0,0,0,0,0,0,0x606,0x9C40,0x78,{1420,1421}}, + {0,0,0,0,0,0,0x808,0x91D,0x5D,{1424,1425}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{1430,1431}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xDC,{3783,3784}}, + {0,0,0,0,0,0,0x606,0x9CA,0x146,{1434,1435}}, + {0,0,0,0,0,0,0xC0C,0x9CA,0x146,{1436,1437}}, + {0,0,0,0,0,0,0x808,0x9C40,0x49,{1438,1439}}, + {0,0,0,0,0,0,0x808,0xD3A,0x71,{1440,1441}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xDC,{1442,1443}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xDC,{1444,1443}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x175,{1445,1446}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x1B8,{1447,1448}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2AE,{1449,1450}}, + {0,0,0,0,0,0,0x809,0x43E,0x2A8,{1451,1452}}, + {0,0,0,0,0,0,0xE0E,0xE1D,0x10B8,{1453,1454}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2C9,{1457,1458}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x578,{1459,1460}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x279,{1461,1462}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x189,{1463,3785}}, + {0,0,0,0,0,0,0x808,0x9C40,0x7E,{1465,1466}}, + {0,0,0,0,0,0,0xA0B,0x4A2,0x229,{1471,1472}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xAD,{1473,1474}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x8C,{3786,3787}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x92,{3788,3789}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{1479,1480}}, + {0,0,0,0,0,0,0x808,0x9C40,0x78,{1481,3790}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x8C,{1483,1484}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x17C,{3791,3792}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2C2,{1487,3793}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1489,3794}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{1491,1492}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{1493,3795}}, + {0,0,0,0,0,0,0x808,0x9C40,0xDC,{1495,1496}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{1499,3796}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x7E,{3797,3798}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{3799,3800}}, + {0,0,0,0,0,0,0,0x9C40,0x85,{3801,3802}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xCE,{1513,1514}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x12C,{1515,1516}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3803,3804}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{1523,1524}}, + {0,0,0,0,0,0,0x202,0x9C40,0x11E,{1525,1526}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x7E,{1527,1528}}, + {-12,0,0,0,0,0,0x809,0x9C40,0xC1,{1533,1534}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{1535,1536}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x52E,{1539,1540}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2D6,{1541,1542}}, + {0,0,0,0,0,0,0,0x9C40,0x481,{3805,3806}}, + {0,0,0,0,0,0,0x404,0x265C,0x556,{1547,3807}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2B5,{1549,1550}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x549,{3808,3809}}, + {-12,0,0,0,0,0,0x607,0x9C40,0x521,{1555,1556}}, + {0,0,0,0,0,0,0xE0E,0x230D,0xA99,{1561,1562}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x4EC,{1563,1564}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x26C,{1565,1566}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x564,{1567,1568}}, + {0,0,0,0,0,0,0x808,0x1194,0x2C9,{1569,1570}}, + {0,0,0,0,0,0,0xC0C,0x279,0xE2,{1571,1572}}, + {0,0,0,0,0,0,0xC0C,0xE81,0x474,{1573,1574}}, + {0,0,0,0,0,0,0x808,0x910,0x56A,{1575,1576}}, + {0,0,0,0,0,0,0x808,0x9C40,0xD5,{1579,1580}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xDC,{1583,1584}}, + {0,0,0,0,0,0,0xE0E,0x201,0xC1,{1587,1588}}, + {0,0,0,0,0,0,0x607,0x2B5,0x2D0,{1589,1590}}, + {0,0,0,0,0,0,0x404,0x786,0x902,{1593,1594}}, + {0,0,0,0,0,0,0x808,0x4C4,0x542,{1595,1596}}, + {0,0,0,0,0,0,0xE0E,0x1061,0x64,{1597,1598}}, + {0,0,0,0,0,0,0xC0C,0x111,0x17C,{1601,1602}}, + {0,0,0,0,0,0,0xE0E,0x147E,0xAAD,{1603,1604}}, + {-24,0,0,0,0,0,0,0x182,0x8C,{1605,1606}}, + {-36,0,0,0,0,0,0x202,0x9C40,0x49C,{1609,1610}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x3D4,{1611,1612}}, + {0,0,0,0,0,0,0xE0E,0xD91,0x5D,{3810,3811}}, + {0,0,0,36,0,0,0xE0E,0xE9,0x64,{1613,1614}}, + {0,0,0,48,0,0,0x808,0xC1,0xB4,{1615,1616}}, + {0,0,0,36,0,0,0x808,0xE2,0xDC,{1615,1616}}, + {0,0,0,30,0,0,0x404,0xF6,0x71,{1619,1620}}, + {0,0,0,35,0,0,0x404,0x1A4,0x182,{1621,1622}}, + {0,0,0,60,0,0,0xE0E,0xA0,0x85,{1623,3812}}, + {0,0,0,59,0,0,0xE0E,0x92,0x5D,{1613,1614}}, + {0,0,0,44,0,0,0xE0E,0xA0,0x85,{1623,3812}}, + {0,0,0,41,0,0,0xC0D,0x2C9,0x33A,{804,805}}, + {0,0,0,47,0,0,0x606,0xAD,0xC1,{1625,3813}}, + {0,0,0,44,0,0,0xC0D,0x201,0x258,{804,805}}, + {0,0,0,47,0,0,0x606,0xBA,0x85,{3814,3815}}, + {0,0,0,48,0,0,0xC0D,0x201,0x258,{804,805}}, + {0,0,0,62,0,0,0x404,0x76C,0xC1,{1627,3816}}, + {0,0,0,51,0,0,0xC0D,0x201,0x258,{804,805}}, + {0,0,0,54,0,0,0xC0D,0x201,0x258,{804,805}}, + {0,0,0,93,0,0,0xC0C,0x474,0x632,{3817,3818}}, + {0,0,0,57,0,0,0xC0D,0x17C,0x1B8,{804,805}}, + {0,0,0,50,0,0,0,0x118,0xC1,{3819,3820}}, + {0,0,0,40,0,0,0xC0C,0x78D,0xAA6,{3817,3818}}, + {0,0,0,60,0,0,0xE0E,0x5C1,0x855,{707,708}}, + {0,0,0,60,0,0,0,0x6A,0x85,{3821,3822}}, + {0,0,0,60,0,0,0,0xAD,0x14D,{1635,1636}}, + {0,0,0,57,0,0,0,0x6A,0x85,{3821,3822}}, + {0,0,0,42,0,0,0xE0E,0x279,0x2DD,{1637,1638}}, + {0,0,0,37,0,0,0xE0E,0x279,0x2DD,{1637,1638}}, + {0,0,0,42,0,0,0x606,0x26C,0x2D6,{1639,1640}}, + {0,0,0,38,0,0,0x606,0x272,0x2DD,{1639,1640}}, + {0,0,0,77,0,0,0xE0E,0xAD,0x6A,{1587,1588}}, + {0,0,0,72,0,0,0xE0E,0xAD,0x6A,{1587,1588}}, + {0,0,0,70,0,0,0xE0E,0xD5,0xE2,{731,732}}, + {0,0,0,39,0,0,0x404,0x104,0x64,{1641,1642}}, + {0,0,0,46,0,0,0xA0A,0x78,0x64,{829,1645}}, + {0,0,0,48,0,0,0x808,0x2FE,0x64,{1646,1647}}, + {0,0,0,85,0,0,0x808,0x7E,0x5D,{1648,1649}}, + {0,0,0,88,0,0,0x606,0x99,0x5D,{1654,1655}}, + {0,0,0,81,0,0,0x606,0x320,0x3AC,{751,752}}, + {0,0,0,76,0,0,0x606,0x320,0x3A5,{751,752}}, + {0,0,0,10,0,0,0x606,0x4A9,0x57E,{751,752}}, + {0,0,0,0,0,0,0x606,0x245A,0x190,{3823,3824}}, + {0,0,0,0,0,0,0x1,0x9C40,0x78,{3825,3826}}, + {0,0,0,0,0,0,0,0x11F1,0x57E,{14,3827}}, + {0,0,0,0,0,0,0,0x9C40,0xD5,{2420,119}}, + {0,0,0,0,0,0,0x1,0x9C40,0x7A1,{3828,3829}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x58C,{3830,3831}}, + {0,0,0,0,0,0,0,0x10FA,0x182,{3832,3833}}, + {0,0,0,0,0,0,0x808,0x115E,0xA5D,{3834,3835}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x71,{3836,3837}}, + {0,0,0,0,0,0,0xC0C,0x1220,0x1589,{3838,3839}}, + {0,0,0,0,0,0,0xE0E,0x3E1,0x460,{3840,3841}}, + {0,0,0,0,0,0,0xE0E,0x780,0x89E,{3842,3843}}, + {0,0,0,0,0,0,0xE0E,0x8E8,0xA85,{264,265}}, + {0,0,0,0,0,0,0x808,0x11E,0x47A,{325,309}}, + {0,0,0,0,0,0,0x808,0x1C20,0x2170,{318,319}}, + {0,0,0,0,0,0,0xE0E,0x312,0x58C,{323,324}}, + {0,0,0,65,0,0,0x606,0xAD,0xBA,{3844,3845}}, + {0,0,0,21,0,0,0xE0E,0x1D9,0x182,{3846,3847}}, + {12,0,0,0,0x1,0,0xD0C,0x1CA5,0xDC,{332,333,334,335} }, + {0,0,0,0,0x1,0,0,0x1205,0x2AC2,{3848,3849,3850,3851} }, + {0,0,0,0,0x1,0,0x908,0x1D2A,0x3965,{3852,3853,3854,3855} }, + {0,0,0,0,0x1,0,0x908,0x1A89,0x200E,{3856,3857,3858,1454} }, + {0,0,0,0,0x1,0,0xE0E,0x1852,0x2210,{3859,3860,3861,3862} }, + {-12,0,0,0,0x1,0,0x504,0x4060,0x4CA,{3863,3864,3865,3866} }, + {12,0,0,0,0x1,0,0xF0E,0x9C40,0xA85,{3867,3868,3869,3870} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xA71,{3867,3868,3869,3870} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x495,{567,174,568,569} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x898,{3871,3872,3873,3874} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x5AD,{3875,3876,3877,3878} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x57E,{3879,3880,524,3881} }, + {24,0,0,0,0x1,0,0xB0A,0x1AC5,0x779,{3882,3883,3884,3885} }, + {0,0,0,65,0,0,0x808,0xE2,0xFD,{248,249}}, + {0,0,0,72,0,0,0x808,0xB4,0xC8,{248,249}}, + {0,0,0,52,0x1,0,0x606,0x78,0x5D,{686,687,688,251} }, + {0,0,0,60,0x1,0,0xF0E,0xF6,0x111,{3886,253,3887,3888} }, + {0,0,0,47,0x1,0,0x100,0x1CC,0x215,{2774,2775,256,257} }, + {0,0,0,76,0x1,0,0x706,0x32D,0x3C0,{2778,2779,2780,2781} }, + {0,0,0,84,0x1,0,0xE0E,0x32D,0x3C0,{703,704,705,706} }, + {0,0,0,83,0x1,0,0x908,0xE2,0x104,{274,2793,2794,275} }, + {0,0,0,24,0x1,0,0xD0C,0x729,0x8C6,{2797,2528,2797,277} }, + {0,0,0,77,0x1,0,0x706,0x32D,0x3C6,{2778,2779,2780,2781} }, + {0,0,0,60,0x1,0,0x706,0x111,0x140,{2801,2802,2803,2804} }, + {0,0,0,65,0x1,0,0x706,0x140,0x265,{2805,2806,2807,2808} }, + {0,0,0,44,0x1,0,0xD0C,0x118,0x146,{737,738,739,739} }, + {0,0,0,40,0x1,0,0xD0C,0x1C5,0x1B8,{737,738,740,740} }, + {0,0,0,72,0x1,0,0xF0E,0x78,0x56,{2853,2854,2853,2855} }, + {0,0,0,73,0x1,0,0xF0E,0x4E5,0x1ED,{323,748,749,750} }, + {0,0,0,70,0x1,0,0xA0B,0x618,0x3AC,{2856,2857,2858,2859} }, + {0,0,0,0,0,0,0x202,0x9C40,0x47A,{1184,3889}}, + {0,0,0,0,0,0,0x202,0x9C40,0x46D,{1184,3890}}, + {0,0,0,0,0,0,0x606,0x16EA,0x2198,{3891,3269}}, + {0,0,0,0,0,0,0,0x1E00,0x113D,{3892,2548}}, + {0,0,0,0,0,0,0x404,0xD5,0x52F8,{1235,1236}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1024,1025}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{1241,1242}}, + {0,0,0,0,0,0,0xA0A,0x640,0x8A5,{1245,1246}}, + {0,0,0,0,0,0,0x606,0x9C40,0x53C,{1116,3893}}, + {0,0,0,0,0,0,0xE0E,0x460,0xAE2,{3894,3895}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{3896,3897}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{1144,1145}}, + {0,0,0,0,0,0,0xE0E,0x1158,0x5D,{3898,3899}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x140,{3900,3901}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1123,1124}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{1295,1296}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{1297,1124}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{3902,3903}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{3904,3905}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3906,3907}}, + {0,0,0,0,0,0,0,0x203D,0x157C,{3322,3908}}, + {0,0,0,0,0,0,0xC0C,0x3E1,0x466,{967,968}}, + {0,0,0,0,0,0,0x607,0x9C40,0x175,{2575,3909}}, + {0,0,0,0,0,0,0x808,0x6A,0x5D,{280,924}}, + {0,0,0,0,0,0,0x404,0x118,0x10F4,{2588,3910}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0,{3911,3912}}, + {0,0,0,41,0,0,0,0xFD,0x5D,{693,3913}}, + {0,0,0,84,0,0,0xE0E,0x99,0x64,{709,3914}}, + {0,0,0,72,0,0,0xE0E,0x1B8,0x1ED,{3915,3916}}, + {0,0,0,48,0,0,0xE0E,0xDC,0x5D,{1348,1349}}, + {0,0,0,0,0,0,0x404,0x88A,0x29A,{3917,3918}}, + {0,0,0,0,0,0,0,0x9C40,0xA6,{3919,2965}}, + {0,0,0,0,0,0,0x203,0x9C40,0x564,{2976,3920}}, + {-12,0,0,0,0,0,0xE0E,0x1226,0x1590,{3921,2983}}, + {0,0,0,0,0,0,0xC0D,0x9C40,0x5D,{3922,3923}}, + {0,0,0,0,0,0,0,0x9C40,0x64,{2997,3924}}, + {0,0,0,0,0,0,0xC0C,0x5BA,0x71,{3011,3925}}, + {12,0,0,0,0,0,0x808,0x9C40,0x5D,{3018,3926}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x251,{3927,3928}}, + {0,0,0,0,0,0,0,0x9C40,0x272,{3025,3929}}, + {0,0,0,0,0,0,0,0x9C40,0x286,{3027,3930}}, + {0,0,0,0,0,0,0,0x9C40,0x25E,{3029,3931}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xD5,{3932,3933}}, + {0,0,0,0,0,0,0,0x9C40,0x488,{98,3934}}, + {0,0,0,0,0,0,0,0x9C40,0x139,{3048,3935}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x47A,{3936,3937}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{3938,3021}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{3055,3939}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x85,{3057,3940}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xE2,{3941,3060}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x71,{3942,3082}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{3943,3082}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{3089,3944}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{3945,3946}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x92,{3947,3085}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{3095,3948}}, + {-12,0,0,0,0,0,0,0x9C40,0x92,{3949,3100}}, + {0,0,0,0,0,0,0,0x9C40,0x8C6,{3950,3951}}, + {0,0,0,0,0,0,0x606,0x9C40,0x265,{3116,3952}}, + {0,0,0,0,0,0,0,0x2670,0x571,{3953,3121}}, + {-12,0,0,0,0,0,0x809,0x9C40,0xFD,{3122,3954}}, + {0,0,0,0,0,0,0xE0E,0xE95,0x1136,{3955,3125}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{3128,3956}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{3132,3956}}, + {0,0,0,0,0,0,0xE0E,0xBCC,0x56,{3957,3958}}, + {0,0,0,0,0,0,0xE0E,0x1798,0x1115,{3166,3959}}, + {0,0,0,0,0,0,0,0x279,0x146,{3960,3169}}, + {-12,0,0,0,0,0,0xC0C,0x9C40,0x6A,{3961,3171}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{3962,3173}}, + {0,0,0,0,0,0,0xE0E,0x272,0x2DD,{3176,3963}}, + {0,0,0,60,0,0,0xE0E,0xAD,0xC1,{3964,3191}}, + {0,0,0,60,0,0,0xE0E,0x2A1,0x251,{3194,3965}}, + {0,0,0,48,0,0,0xE0E,0x2A1,0x251,{3966,3965}}, + {0,0,0,60,0,0,0xE0E,0x6E0,0x7D6,{3197,3967}}, + {0,0,0,60,0,0,0xE0E,0x2A1,0x251,{3199,3968}}, + {0,0,0,66,0,0,0xE0E,0x12C,0x139,{3201,3969}}, + {0,0,0,60,0,0,0,0x2A1,0x251,{3970,3965}}, + {0,0,0,64,0,0,0xE0E,0x29A,0x251,{3966,3965}}, + {0,0,0,60,0,0,0xE0E,0xF6,0x132,{3214,3971}}, + {0,0,0,60,0,0,0xE0E,0xBA,0xFD,{3216,3972}}, + {0,0,0,56,0,0,0xA0A,0xCE,0x5D,{3973,3974}}, + {0,0,0,53,0,0,0,0x1B1,0x64,{3975,3976}}, + {0,0,0,60,0,0,0xE0E,0xDC,0xF6,{3977,3223}}, + {0,0,0,48,0,0,0xE0E,0x12C,0x5D,{3224,3978}}, + {0,0,0,67,0,0,0xE0E,0x10A,0xD5,{3236,3979}}, + {0,0,0,60,0,0,0,0x3B9,0x431,{3238,3980}}, + {0,0,0,72,0,0,0,0x320,0x391,{3238,3980}}, + {0,0,0,60,0,0,0xE0E,0xAD,0xC1,{3981,3191}}, + {0,0,0,0,0,0,0x404,0x981,0xACE,{3982,3983}}, + {0,0,0,24,0,0,0x606,0xB4,0xC1,{3984,3985}}, + {0,0,0,72,0,0,0xA0A,0x7E,0x85,{258,259}}, + {0,0,0,36,0,0,0x606,0x8C,0x99,{3986,3987}}, + {0,0,0,36,0,0,0xE0E,0x8C,0x99,{645,646}}, + {0,0,0,0,0,0,0x606,0x15A,0x146,{653,654}}, + {0,0,0,12,0,0,0x606,0x1A4,0x189,{653,654}}, + {0,0,0,12,0,0,0x808,0x161,0xE2,{3988,3989}}, + {0,0,0,24,0,0,0x405,0x6A,0x6A,{3990,3991}}, + {0,0,0,36,0,0,0x405,0x64,0x64,{3990,3991}}, + {0,0,0,0,0,0,0xA0A,0x3EE,0x424,{3992,3993}}, + {0,0,0,24,0,0,0x808,0x125,0xC1,{3988,3989}}, + {0,0,0,88,0,0,0x203,0x459,0x118,{3994,3995}}, + {0,0,0,88,0,0,0x203,0x2A1,0x118,{3996,3997}}, + {0,0,0,13,0x4,0,0,0x28D,0x265,{3998,3999}}, + {0,0,0,0,0,0,0,0x3C0,0x474,{660,661}}, + {0,0,0,15,0x4,0,0,0x2AE,0x294,{3998,3999}}, + {0,0,0,0,0,0,0x606,0x11B5,0x862,{4000,4001}}, + {0,0,0,0,0,0,0x606,0x3C6A,0x1450,{1076,4002}}, + {0,0,0,0,0,0,0x606,0x1B1C,0x64,{3316,4003}}, + {0,0,0,0,0,0,0xA0A,0x786,0x189,{1080,1081}}, + {0,0,0,0,0,0,0x202,0x1AFA,0x221D,{789,4004}}, + {0,0,0,0,0,0,0,0x1DA9,0x1589,{1084,4005}}, + {0,0,0,0,0,0,0xA0A,0x495,0x578,{3664,1312}}, + {0,0,0,0,0,0,0x404,0x4A9,0x57E,{1088,4006}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x297C,{1066,4007}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xA8C,{1066,1092}}, + {0,0,0,0,0,0,0xE0E,0x11F1,0x876,{975,976}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x56,{4008,1098}}, + {0,0,0,0,0,0,0x606,0x11EA,0xAC8,{52,1099}}, + {0,0,0,0,0,0,0x808,0x47CC,0xAE9,{1100,4009}}, + {0,0,0,0,0,0,0xA0A,0x10ED,0x2EA,{1102,1103}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x7E,{4010,4011}}, + {0,0,0,0,0,0,0xA0A,0xFD,0x5D,{1028,994}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xA0,{1022,1023}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x535,{1106,1107}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2AE,{1108,1109}}, + {0,0,0,0,0,0,0xC0C,0x2C9,0x251,{4012,4013}}, + {0,0,0,0,0,0,0x606,0x938,0x5D,{1114,1115}}, + {0,0,0,0,0,0,0x606,0x9C40,0x175,{2557,4014}}, + {0,0,0,0,0,0,0,0x9C40,0x550,{1118,4015}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x51A,{1106,1120}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x514,{4016,1122}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2F8,{4017,4018}}, + {0,0,0,0,0,0,0xE0E,0x1090,0x474,{1126,1127}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{4019,4020}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{1035,1036}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x50,{4021,4022}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x7E,{4023,4024}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{4025,1137}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{1275,4026}}, + {0,0,0,0,0,0,0xA0B,0x3DCC,0x196,{4027,4028}}, + {0,0,0,0,0,0,0x202,0x2738,0x1136,{973,974}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x13F9,{1153,1154}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xD4E,{977,4029}}, + {0,0,0,0,0,0,0x808,0xAF6,0xE16,{4030,4031}}, + {0,0,0,0,0,0,0x404,0x71C,0x460,{1159,1160}}, + {0,0,0,0,0,0,0x808,0x9C40,0x4F74,{898,4032}}, + {0,0,0,0,0,0,0xE0E,0x2335,0x5D,{1131,1132}}, + {0,0,0,79,0,0,0x606,0x71,0xF0,{2532,4033}}, + {0,0,0,72,0,0,0x606,0x78,0x139,{2532,4033}}, + {0,0,0,72,0,0,0,0x64,0x5D,{4034,4035}}, + {0,0,0,79,0,0,0,0x64,0x5D,{4034,4035}}, + {0,0,0,35,0,0,0x404,0x898,0x71,{1004,1005}}, + {0,0,0,38,0,0,0xE0E,0x189,0x2D6,{689,690}}, + {0,0,0,39,0,0,0xE0E,0x6A,0x5D,{1008,1009}}, + {0,0,0,49,0,0,0xE0E,0xC1,0x140,{1010,1011}}, + {0,0,0,60,0,0,0xE0E,0x190,0x140,{1015,1016}}, + {0,0,0,72,0,0,0xE0E,0x319,0x1F4,{4036,4037}}, + {0,0,0,53,0,0,0xE0F,0x1F4,0x244,{292,293}}, + {0,0,0,84,0,0,0xE0E,0xE2,0x99,{4038,1169}}, + {0,0,0,50,0,0,0xE0E,0x71,0x7E,{298,299}}, + {0,0,0,66,0,0,0xA0A,0x6A,0x71,{1017,1018}}, + {0,0,0,0,0,0,0xE0E,0x94C,0xAA6,{4039,4040}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x541D,{4041,4041}}, + {0,0,0,0,0,0,0,0x2BC,0x2AE,{4042,4043}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{4044,4045}}, + {0,0,0,0,0,0,0xE0F,0x190,0x564,{3650,3651}}, + {0,0,0,0,0,0,0x404,0x46E2,0x54F2,{4046,4047}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x251,{4048,4049}}, + {0,0,0,0,0,0,0,0x190D,0x507E,{4050,4051}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x251,{4052,4049}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{4053,4054}}, + {0,0,0,0,0,0,0xE0E,0x111,0x50,{1019,756}}, + {0,0,0,0,0,0,0xE0E,0x377E,0x42AA,{4055,4056}}, + {0,0,0,0,0,0,0x606,0x16EA,0x2198,{4057,4058}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{1066,1067}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{4059,4060}}, + {0,0,0,0,0,0,0x606,0x9C40,0x1596,{4061,4062}}, + {0,0,0,0,0,0,0,0x4858,0x555D,{4063,4064}}, + {0,0,0,0,0,0,0xA0A,0x4808,0x5611,{4065,4066}}, + {0,0,0,0,0,0,0x808,0x477C,0x5549,{4067,4068}}, + {0,0,0,0,0,0,0,0x250E,0x1525,{4069,3279}}, + {0,0,0,0,0,0,0,0x2385,0x64,{4070,987}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xCAE,{4071,4072}}, + {0,0,0,0,0,0,0xE0E,0x3CFD,0x4B28,{4073,4074}}, + {0,0,0,0,0,0,0,0x9C40,0x152C,{4075,4076}}, + {0,0,0,0,0,0,0xE0E,0xBF4,0x85,{4077,4078}}, + {0,0,0,0,0,0,0x606,0x3951,0x445,{4079,4080}}, + {0,0,0,0,0,0,0xE0E,0xEBD,0xABA,{4081,4082}}, + {0,0,0,0,0,0,0xE0E,0x1D52,0x154D,{4083,4084}}, + {0,0,0,0,0,0,0xE0E,0x190,0x2DD,{689,690}}, + {0,0,0,0,0,0,0xE0F,0x6A,0xBA,{4085,4086}}, + {0,0,0,0,0,0,0xE0E,0x1F4,0x71,{4077,4087}}, + {0,0,0,0,0,0,0xA0A,0x3785,0x445,{4079,4080}}, + {0,0,0,0,0,0,0x607,0x5B4,0x2D6,{4088,4089}}, + {0,0,0,0,0,0,0x202,0x9C40,0x6A,{4090,4091}}, + {0,0,0,0,0,0,0x606,0x118,0x466,{2532,4033}}, + {0,0,0,0,0,0,0,0x6A,0x5D,{4034,4035}}, + {0,0,0,0,0,0,0,0x13DE,0x146,{4092,4093}}, + {0,0,0,0,0,0,0xE0E,0x22BD,0x2A9A,{4094,4095}}, + {0,0,0,0,0,0,0x808,0x1316,0x71,{4096,4097}}, + {0,0,0,0,0,0,0xE0E,0x111,0x49,{4098,4099}}, + {0,0,0,0,0,0,0xE0F,0x14D,0x5D,{3623,3649}}, + {0,0,0,0,0,0,0xC0C,0x16C9,0x2119,{4100,4101}}, + {0,0,0,0,0,0,0xE0E,0x64,0,{4102,4103}}, + {0,0,0,0,0,0,0x808,0x9C40,0x258,{4104,4105}}, + {0,0,0,0,0,0,0x606,0x1219,0x8A5,{4106,4107}}, + {0,0,0,0,0,0,0,0xD7D,0xE9,{4108,1079}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xD84,{4109,4110}}, + {0,0,0,0,0,0,0x808,0x21C,0x5D,{914,652}}, + {0,0,0,0,0,0,0xE0E,0x1395,0x156E,{4111,4112}}, + {0,0,0,0,0,0,0xE0E,0x1158,0x5D,{4113,4114}}, + {0,0,0,0,0,0,0xA0A,0x41A0,0x4351,{4115,4116}}, + {0,0,0,0,0,0,0,0x203D,0x157C,{3322,4117}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x58C,{4118,4119}}, + {0,0,0,0,0,0,0x808,0x24FA,0x1504,{4120,4121}}, + {0,0,0,0,0,0,0x607,0x9C40,0x175,{2575,4122}}, + {0,0,0,0,0,0,0x404,0x1CFC,0x251,{4123,4124}}, + {0,0,0,0,0,0,0x203,0x85,0x5D,{4125,4126}}, + {0,0,0,0,0,0,0xE0E,0x21C,0x5D,{651,652}}, + {0,0,0,0,0,0,0x808,0x9C40,0x506,{4127,4128}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x4DD6,{4129,4130}}, + {0,0,0,0,0,0,0xE0E,0x21A5,0x5D,{4131,4132}}, + {0,0,0,0,0,0,0xE0E,0x291E,0x1568,{4111,4133}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x55D,{584,4134}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2B5,{4135,4136}}, + {0,0,0,0,0,0,0,0xF6,0x5D,{4137,4138}}, + {0,0,0,0,0,0,0x808,0x201,0x258,{659,249}}, + {0,0,0,35,0x1,0,0x100,0x8C6,0xB18,{2774,4139,256,4140} }, + {0,0,0,52,0x1,0,0x606,0x78,0x5D,{686,4141,4142,4143} }, + {0,0,0,48,0x1,0,0xF0E,0x104,0x132,{4144,253,2770,2771} }, + {0,0,0,58,0,0,0,0x8C,0x1B1,{310,309}}, + {0,0,0,60,0x1,0,0xF0E,0x104,0x132,{4144,253,2770,2771} }, + {0,0,0,47,0x1,0,0x707,0x6D2,0x891,{4145,4146,4147,4148} }, + {0,0,0,43,0x1,0,0x707,0x6C5,0x87D,{4145,4146,4147,4148} }, + {0,0,0,49,0x1,0,0x707,0x6BE,0x884,{4145,4146,4147,4148} }, + {0,0,0,51,0x1,0,0x707,0x6C5,0x884,{4145,4146,4147,4148} }, + {0,0,0,54,0x1,0,0x707,0x6E0,0x89E,{4145,4146,4147,4148} }, + {0,0,0,57,0x1,0,0x707,0x708,0x8C6,{4145,4146,4147,4148} }, + {0,0,0,72,0x1,0,0x707,0x5F0,0x75E,{4145,4146,4147,4148} }, + {0,0,0,60,0x1,0,0x707,0x708,0x8C6,{4145,4146,4147,4148} }, + {0,0,0,76,0x1,0,0x707,0x5F0,0x765,{4145,4146,4147,4148} }, + {0,0,0,84,0x1,0,0x707,0x5F0,0x765,{4145,4146,4147,4148} }, + {0,0,0,36,0x1,0,0x707,0x876,0xA92,{4145,4146,4147,4148} }, + {0,0,0,65,0x1,0,0,0x125,0x258,{2785,2786,2787,4149} }, + {0,0,0,84,0x1,0,0xE0E,0x556,0x3B9,{4150,4151,4152,4153} }, + {0,0,0,83,0,0,0x808,0xDC,0xF6,{274,2793}}, + {0,0,0,84,0x1,0,0xE0E,0x62C,0x758,{715,716,717,718} }, + {0,0,0,24,0,0,0xC0C,0x715,0x884,{2797,2528}}, + {0,0,0,77,0x1,0,0x707,0x5F0,0x75E,{4145,4146,4147,4148} }, + {0,0,0,60,0x1,0,0xF0E,0x11E,0x1FA,{4154,4155,4156,4157} }, + {0,0,0,65,0x1,0,0x706,0x20E,0x410,{2805,4158,4156,4159} }, + {0,0,0,59,0,0,0x606,0x64,0x6A,{326,3646}}, + {0,0,0,51,0,0,0x606,0x17C,0x481,{326,4160}}, + {0,0,0,45,0,0,0x606,0x196,0x46D,{326,327}}, + {0,0,0,71,0,0,0xE0E,0x1B8,0x201,{4161,289}}, + {0,0,0,60,0,0,0xE0E,0x118,0x5D,{3623,3649}}, + {0,0,0,58,0,0,0xE0E,0x161,0x466,{3650,3651}}, + {0,0,0,53,0,0,0xE0E,0x161,0x466,{3652,3651}}, + {0,0,0,64,0,0,0xE0E,0xDC,0xAD,{747,297}}, + {0,0,0,71,0,0,0xE0E,0x6A,0x78,{4162,299}}, + {0,0,0,61,0,0,0xE0E,0x3CD,0x460,{2831,4163}}, + {0,0,0,61,0,0,0xE0E,0x758,0x898,{2835,4164}}, + {0,0,0,44,0x1,0,0xD0C,0x118,0x140,{4165,4166,739,739} }, + {0,0,0,40,0x1,0,0xD0C,0x1C5,0x1B1,{4165,4166,740,740} }, + {0,0,0,69,0,0,0,0x78,0x140,{310,309}}, + {0,0,0,68,0,0,0,0x78,0x140,{310,309}}, + {0,0,0,63,0,0,0,0x8C,0x1B1,{310,309}}, + {0,0,0,74,0x1,0,0x908,0x17C,0x10A,{4167,4168,4169,4170} }, + {0,0,0,60,0x1,0,0xB0A,0x3FC,0x44C,{4171,4172,4173,4174} }, + {0,0,0,80,0x1,0,0x100,0x9C40,0x15A,{4175,4176,4177,4178} }, + {0,0,0,64,0x1,0,0x100,0x9C40,0x17C,{4179,4180,4181,4182} }, + {0,0,0,72,0,0,0xE0E,0xC1,0xA0,{747,297}}, + {0,0,0,78,0x1,0,0x908,0xB18,0x3B2,{4183,4184,4185,4186} }, + {0,0,0,82,0x1,0,0xA0B,0x618,0x3AC,{2856,2857,2858,2859} }, + {0,0,0,48,0,0,0x606,0x64,0x6A,{326,3646}}, + {0,0,0,53,0,0,0x606,0x175,0x47A,{326,4160}}, + {0,0,0,0,0,0,0x606,0xE52,0x111C,{4187,2931}}, + {0,0,0,0,0x1,0,0xB0A,0x6D2,0x599,{1095,4188,4189,4190} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x50D,{4191,4192,4193,4194} }, + {0,0,0,0,0,0,0xC0C,0x224C,0x14A0,{4195,1261}}, + {-12,0,0,0,0,0,0x606,0xDAC,0xAD5,{4196,4197}}, + {0,0,0,0,0,0,0x606,0x9C40,0x506,{4198,4199}}, + {0,0,0,0,0,0,0x606,0x9C40,0x556,{4200,4201}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x7E,{4202,4203,4204,4205} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{4206,4207}}, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x154,{1298,4208,4209,4210} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x50,{1039,1038}}, + {12,0,0,0,0x1,0,0xA0A,0x9C40,0x64,{4211,4212,4213,4214} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x6A,{4215,4216,4217,4218} }, + {12,0,0,0,0x1,0,0xE0E,0x9C40,0x92,{4219,4220,4221,4222} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x4DE,{4223,4224,4225,4226} }, + {0,0,0,14,0,0,0x808,0xBA,0x5D,{4227,4228}}, + {0,0,0,35,0,0,0,0xF6,0x5D,{4229,1343}}, + {0,0,0,19,0,0,0x808,0xA6,0x5D,{4227,4228}}, + {0,0,0,43,0,0,0xE0E,0x11E,0x146,{4230,4231}}, + {0,0,0,41,0,0,0x809,0x12C,0x15A,{4232,4233}}, + {0,0,0,43,0,0,0x809,0xFD,0x11E,{4232,4233}}, + {0,0,0,45,0,0,0x809,0xF6,0x125,{4232,4233}}, + {0,0,0,47,0,0,0x809,0xF6,0x11E,{4232,4233}}, + {0,0,0,0,0x1,0,0x606,0x3929,0x466,{4234,4235,4236,4237} }, + {0,0,0,0,0,0,0x606,0x1CE1,0x1158,{4238,4239}}, + {0,0,0,0,0,0,0x606,0x132A,0x2DD,{1180,4240}}, + {0,0,0,0,0,0,0x808,0x13DE,0x84E,{4241,4242}}, + {0,0,0,0,0,0,0x808,0x535,0x17C,{4243,4244}}, + {0,0,0,0,0,0,0xE0E,0x826,0xB0A,{3256,4245}}, + {0,0,0,0,0,0,0x606,0xE6D,0x2C2,{4246,4247}}, + {0,0,0,0,0,0,0x808,0xD69,0x10B1,{2539,4248}}, + {0,0,0,0,0,0,0x808,0x1219,0x571,{4249,4250}}, + {0,0,0,0,0,0,0xE0E,0x395E,0x8A5,{4251,4252}}, + {0,0,0,0,0,0,0x202,0x9C40,0x585,{4253,4254}}, + {0,0,0,0,0,0,0x404,0xE66,0x251,{4255,4256}}, + {0,0,0,0,0,0,0xE0E,0x370,0x592,{4257,4258}}, + {0,0,0,0,0,0,0x808,0x1220,0x8B2,{4259,3482}}, + {0,0,0,0,0,0,0,0xE3E,0x1108,{4260,4261}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{4262,4263}}, + {0,0,0,0,0,0,0x809,0x9C40,0x64,{4264,4265}}, + {0,0,0,0,0,0,0x202,0x9C40,0x46D,{1184,4266}}, + {0,0,0,0,0,0,0x1,0x9C40,0x6A,{4267,4268}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{4269,4270}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{4271,4272}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x64,{4273,4274}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x6A,{4275,4272}}, + {0,0,0,0,0,0,0xA0A,0x74A,0x5C1,{1095,1096}}, + {0,0,0,0,0,0,0x606,0x348,0x2C9,{4276,4277}}, + {0,0,0,0,0,0,0x808,0x82D,0x92,{4278,4279}}, + {0,0,0,0,0,0,0x606,0x38A,0x5D,{4280,4281}}, + {0,0,0,0,0,0,0xE0E,0x111,0x49,{755,756}}, + {0,0,0,0,0,0,0x202,0x9C40,0xAA6,{4282,4283}}, + {0,0,0,0,0,0,0xA0A,0x1284,0xDC,{4284,4285}}, + {0,0,0,0,0,0,0x808,0x2C2,0xE2,{4286,1229}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2F1,{4287,4288}}, + {0,0,0,0,0,0,0,0xF56,0x283C,{4289,4290}}, + {12,0,0,0,0,0,0x606,0xD41,0x654,{4291,4292}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x50,{4293,4294}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x17C,{4295,441}}, + {0,0,0,0,0x1,0,0x706,0x9C40,0x1ED,{4296,4297,4298,4299} }, + {0,0,0,0,0,0,0xC0C,0x48E,0x870,{4300,4301}}, + {0,0,0,0,0x1,0,0x808,0x8AC,0x550,{4302,4303,4304,4305} }, + {0,0,0,0,0,0,0,0x9C40,0x8E8,{4306,4307}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{4308,4309}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x189,{4310,4311,4312,4313} }, + {12,0,0,0,0x1,0,0x908,0x9C40,0x294,{4314,4315,4316,4317} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x64,{4318,4319,4320,4321} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x50,{1037,1038}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x56,{4322,4323}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{4324,4325}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{4326,1025}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x182,{4327,4328,4329,4330} }, + {0,0,0,0,0,0,0,0x9C40,0x161,{4331,4332}}, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x521,{4333,4334,4335,4336} }, + {-12,0,0,0,0x1,0,0xE0E,0x9C40,0x15A,{4337,4338,4339,4340} }, + {0,0,0,0,0x1,0,0x706,0x6B8,0x2B5,{4341,4342,4343,4344} }, + {0,0,0,0,0x1,0,0,0x452,0x189,{4345,4346,4347,4348} }, + {0,0,0,0,0x1,0,0,0xE38,0x140,{4349,4350,4351,4352} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x71,{4327,4353,4354,4355} }, + {0,0,0,33,0,0,0xE0E,0x12C,0x2DD,{929,4356}}, + {0,0,0,38,0x1,0,0xB0A,0xCE,0x5D,{4357,4358,4359,4360} }, + {0,0,0,38,0,0,0xC0D,0x6A,0x71,{4361,4362}}, + {0,0,0,38,0,0,0xE0E,0x146,0x5D,{4363,4364}}, + {0,0,0,40,0,0,0x404,0x42,0x5D,{4365,4366}}, + {0,0,0,41,0x1,0,0xE0E,0x125,0x15A,{4367,4368,4369,4370} }, + {0,0,0,0,0,0,0x606,0x85,0x92,{4371,4372}}, + {0,0,0,41,0,0,0x606,0x85,0x92,{4371,4372}}, + {0,0,0,48,0,0,0x809,0xF0,0x11E,{4232,4233}}, + {0,0,0,17,0,0,0xE0E,0x109D,0x1421,{4373,4374}}, + {0,0,0,50,0,0,0x809,0xF0,0x118,{4232,4233}}, + {0,0,0,45,0,0,0x606,0x78,0x85,{4371,4372}}, + {0,0,0,254,0x4,0,0xA0A,0x6,0,{4375,4376}}, + {0,0,0,60,0,0,0xE0E,0xE9,0xC1,{4377,4378}}, + {0,0,0,56,0,0,0xE0E,0xE2,0xC1,{4379,4380}}, + {0,0,0,60,0,0,0x607,0x8C,0x85,{4381,4382}}, + {0,0,0,55,0,0,0x607,0x92,0x85,{4381,4382}}, + {0,0,0,63,0,0,0x809,0x10A,0x132,{4383,4384}}, + {0,0,0,57,0,0,0x607,0xAD,0xC1,{4385,4386}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x44C,{4387,4388}}, + {0,0,0,0,0,0,0,0x9C40,0xD2D,{4389,4390}}, + {0,0,0,0,0,0,0x202,0x9C40,0xA7E,{4391,4392}}, + {0,0,0,0,0,0,0x202,0x9C40,0x47A,{4393,4394}}, + {0,0,0,0,0,0,0,0x9C40,0x1151,{4395,4396}}, + {0,0,0,0,0,0,0xA0A,0x1310,0x140,{1224,1225}}, + {0,0,0,0,0,0,0x606,0x3C56,0x142E,{1076,1247}}, + {0,0,0,0,0,0,0,0x9C40,0x182,{4397,4398}}, + {0,0,0,0,0,0,0xC0C,0xED1,0x5D,{1266,1267}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x10D9,{4399,4400}}, + {0,0,0,0,0,0,0x808,0x9C40,0x47A,{4401,4402}}, + {0,0,0,0,0,0,0,0x475A,0x5535,{4403,4404}}, + {0,0,0,0,0,0,0xA0A,0x4A9,0x585,{2948,4405}}, + {0,0,0,55,0,0,0x808,0xAD,0x5D,{955,845}}, + {0,0,0,0,0,0,0x1,0xB25,0xADC,{4406,1381}}, + {0,0,0,0,0,0,0x606,0x4BD,0x64,{1418,1419}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0xDC,{1432,1433}}, + {0,0,0,0,0,0,0xC0C,0x9D1,0x146,{4407,1437}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x189,{1463,1464}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x8C,{1475,1476}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x92,{1477,1478}}, + {0,0,0,0,0,0,0x808,0x9C40,0x78,{1481,1482}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x175,{1485,1486}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2C2,{1487,1488}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x6A,{1493,1494}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x7E,{1501,1502}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{1521,1522}}, + {0,0,0,0,0,0,0x809,0x9C40,0xC1,{1533,1534}}, + {0,0,0,0,0,0,0x404,0x269E,0x571,{1547,1548}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x55D,{1551,1552}}, + {0,0,0,0,0,0,0x607,0x9C40,0x52E,{1555,1556}}, + {0,0,0,0,0,0,0xE0E,0x208,0xC1,{4408,4409}}, + {0,0,0,0,0,0,0xE0E,0x57E,0x190,{4410,4411}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xBA,{4412,4413}}, + {0,0,0,0,0,0,0xA0A,0x235D,0xE9,{4414,13}}, + {0,0,0,0,0,0,0xA0A,0xE7A,0xDC,{4415,4416}}, + {0,0,0,0,0,0,0xC0C,0x4524,0xDC,{4417,4418}}, + {0,0,0,0,0,0,0xC0C,0x242C,0xE2,{4419,4420}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x6A,{4421,4422}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x2C9,{4423,4424}}, + {0,0,0,0,0,0,0xE0E,0x132,0x6A,{1613,1614}}, + {0,0,0,28,0,0,0xE0E,0x132,0x6A,{1613,1614}}, + {0,0,0,29,0,0,0x808,0xE2,0xD5,{1615,4425}}, + {0,0,0,31,0,0,0,0x6A,0x71,{676,1617}}, + {0,0,0,32,0,0,0,0x85,0x71,{678,679}}, + {0,0,0,33,0,0,0,0x11E,0x64,{680,681}}, + {0,0,0,34,0,0,0x1,0xB1E,0xACE,{4406,1381}}, + {0,0,0,29,0,0,0x404,0xF6,0x71,{1619,1620}}, + {0,0,0,55,0,0,0,0x64,0x64,{676,1617}}, + {0,0,0,48,0,0,0xE0E,0xF0,0x85,{1623,1624}}, + {0,0,0,58,0,0,0xE0E,0x92,0x5D,{1613,1614}}, + {0,0,0,60,0,0,0xE0E,0xF0,0x85,{1623,1624}}, + {0,0,0,45,0,0,0x606,0xA6,0xBA,{1625,4426}}, + {0,0,0,43,0,0,0x606,0xA6,0xBA,{1625,4426}}, + {0,0,0,73,0,0,0x404,0x5A6,0xA0,{1627,4427}}, + {0,0,0,72,0,0,0xE0E,0x362,0x744,{4428,4429}}, + {0,0,0,76,0,0,0xE0E,0x4D1,0x6F4,{707,4430}}, + {0,0,0,84,0,0,0xE0E,0x362,0x744,{4428,4429}}, + {0,0,0,36,0,0,0xE0E,0x6FA,0xA7E,{707,4430}}, + {0,0,0,65,0,0,0,0x132,0x140,{813,4431}}, + {0,0,0,83,0,0,0x808,0xC1,0xAD,{4432,1632}}, + {0,0,0,50,0,0,0xC0C,0x3C0,0x146,{4433,4434}}, + {0,0,0,77,0,0,0xE0E,0x4D1,0x6ED,{707,4430}}, + {0,0,0,55,0,0,0,0x85,0x85,{1633,1634}}, + {0,0,0,60,0,0,0,0xB4,0x14D,{4435,1636}}, + {0,0,0,50,0,0,0,0x85,0x85,{1633,1634}}, + {0,0,0,42,0,0,0xE0E,0x279,0x2DD,{4436,1638}}, + {0,0,0,46,0,0,0xE0E,0x201,0x251,{4436,1638}}, + {0,0,0,71,0,0,0x606,0x1B1,0x1FA,{4437,4438}}, + {0,0,0,60,0,0,0x606,0x1FA,0x251,{4437,4438}}, + {0,0,0,58,0,0,0xE0E,0xDC,0x78,{4408,4409}}, + {0,0,0,53,0,0,0xE0E,0x11E,0x85,{4408,4409}}, + {0,0,0,91,0,0,0xE0E,0xBA,0xC8,{731,4439}}, + {0,0,0,61,0,0,0x404,0xE2,0x5D,{4440,4441}}, + {0,0,0,61,0,0,0,0x37D,0x64,{4442,4443}}, + {0,0,0,44,0,0,0xA0A,0x78,0x64,{829,4444}}, + {0,0,0,40,0,0,0x808,0x3A5,0x64,{1646,4445}}, + {0,0,0,69,0,0,0x808,0x92,0x64,{4446,4447}}, + {0,0,0,68,0,0,0,0x99,0x5D,{680,681}}, + {0,0,0,63,0,0,0,0xB4,0x5D,{680,681}}, + {0,0,0,74,0,0,0,0xA0,0x64,{1650,4448}}, + {0,0,0,60,0,0,0,0x118,0x125,{4449,4450}}, + {0,0,0,80,0,0,0x606,0x99,0x5D,{1654,1655}}, + {0,0,0,64,0,0,0x404,0x369,0x3E1,{4451,4452}}, + {0,0,0,73,0,0,0x404,0x2DD,0x334,{4451,4452}}, + {0,0,0,70,0,0,0x404,0x2DD,0x33A,{4451,4452}}, + {0,0,0,68,0,0,0,0x56,0x5D,{676,1617}}, + {0,0,0,48,0,0,0,0x64,0x6A,{676,1617}}, + {0,0,0,0,0,0,0x606,0x9C40,0x910,{4453,4454}}, + {0,0,0,0,0,0,0x808,0xC8D,0xF2E,{4455,4456}}, + {0,0,0,0,0,0,0,0x708,0x869,{4457,4458}}, + {0,0,0,0,0,0,0x808,0x1D02,0x2238,{2539,4459}}, + {0,0,0,0,0,0,0x404,0x9C40,0x160E,{4460,4461}}, + {0,0,0,0,0,0,0x606,0x9C40,0x51A,{4462,4463}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2AE,{4464,4465}}, + {0,0,0,0,0,0,0,0x9C40,0xBA,{4457,4466}}, + {0,0,0,0,0,0,0xA0A,0x128A,0xE2,{1020,4285}}, + {0,0,0,0,0,0,0x404,0x1831,0x2D0,{4467,4468}}, + {0,0,0,0,0,0,0x404,0x1838,0x2D0,{4469,4468}}, + {0,0,0,0,0,0,0x202,0x9C40,0x50,{4470,4471}}, + {12,0,0,0,0,0,0xA0A,0x632,0x64,{4472,4473}}, + {12,0,0,0,0,0,0xC0C,0x230,0x5D,{4474,4475}}, + {0,0,0,0,0,0,0x1,0x9C40,0x97A,{4476,4477}}, + {0,0,0,0,0,0,0x606,0x9C40,0xAD,{4478,4479}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{4480,4481}}, + {0,0,0,0,0,0,0x606,0x9C40,0x53C,{4482,4483}}, + {0,0,0,0,0,0,0xA0A,0x11E,0xE2,{4484,4485}}, + {-24,0,0,0,0,0,0x404,0x182A,0x2D0,{4486,4468}}, + {0,0,0,0,0,0,0x606,0x9C40,0x53C,{2557,4483}}, + {0,0,0,0,0,0,0x606,0x9C40,0x514,{4487,4488}}, + {0,0,0,0,0,0,0x606,0x9C40,0x53C,{2557,3893}}, + {0,0,0,0,0,0,0x606,0x9C40,0x2A8,{4489,4490}}, + {0,0,0,0,0,0,0x606,0x9C40,0x500,{4491,4492}}, + {0,0,0,0,0,0,0x405,0x9C40,0x175,{4493,4494}}, + {0,0,0,0,0,0,0x405,0x9C40,0x4DE,{4495,4496}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{4497,1124}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{4498,1124}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x15A,{4499,4500}}, + {0,0,0,0,0,0,0xA0A,0xF06,0x5D,{4501,4502}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x56,{4503,4504}}, + {12,0,0,0,0,0,0xE0E,0x9C40,0xD5,{4505,4506}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x83A,{4507,4508}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x1046,{4509,4510}}, + {0,0,0,0,0,0,0x606,0x9C40,0xCE,{4511,4512}}, + {0,0,0,0,0,0,0x808,0x9C40,0xAD,{4513,4514}}, + {0,0,0,0,0,0,0,0x1881,0x157C,{4515,4516}}, + {0,0,0,0,0,0,0x606,0x4970,0xAC1,{4517,4518}}, + {0,0,0,0,0,0,0x606,0x9C40,0x585,{4519,4520}}, + {0,0,0,0,0,0,0,0x9C40,0x7B5,{4521,4522}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x182,{4523,4524}}, + {0,0,0,0,0,0,0xE0E,0x115E,0x13D8,{4525,4526}}, + {0,0,0,30,0,0,0xE0E,0x21C,0x64,{651,652}}, + {0,0,0,31,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,32,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,33,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,34,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,35,0,0,0xE0E,0x19D,0x5D,{651,652}}, + {0,0,0,36,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,37,0,0,0xE0E,0x19D,0x5D,{651,652}}, + {0,0,0,38,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,39,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,40,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,41,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,42,0,0,0xE0E,0x196,0x5D,{651,652}}, + {0,0,0,43,0,0,0xE0E,0x132,0x5D,{651,652}}, + {0,0,0,44,0,0,0xE0E,0x139,0x5D,{651,652}}, + {0,0,0,45,0,0,0xE0E,0x139,0x5D,{651,652}}, + {0,0,0,46,0,0,0xE0E,0x139,0x5D,{651,652}}, + {0,0,0,47,0,0,0xE0E,0x139,0x5D,{651,652}}, + {0,0,0,48,0,0,0xE0E,0x132,0x5D,{651,652}}, + {0,0,0,49,0,0,0xE0E,0x139,0x64,{651,652}}, + {0,0,0,84,0,0,0xE0E,0x14D,0x730,{942,710}}, + {0,0,0,84,0,0,0xE0E,0x1B1,0x1ED,{3915,3916}}, + {0,0,0,55,0,0,0xA0A,0x64,0,{4527,4528}}, + {0,0,0,36,0,0,0x808,0x190,0x1BE,{4529,4530}}, + {0,0,0,38,0,0,0xE0E,0x132,0x2C9,{4531,4532}}, + {0,0,0,60,0,0,0xE0E,0x118,0x140,{666,933}}, + {0,0,0,38,0,0,0xC0C,0xC8,0xE2,{3607,4533}}, + {0,0,0,17,0,0,0x404,0x1831,0x2B5,{4486,4468}}, + {0,0,0,18,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,19,0,0,0x404,0x1831,0x2C9,{4486,4468}}, + {0,0,0,20,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,21,0,0,0x404,0x182A,0x2D0,{4486,4468}}, + {0,0,0,22,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,23,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,24,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,25,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,26,0,0,0x404,0x1831,0x2D0,{4486,4468}}, + {0,0,0,27,0,0,0x404,0x1831,0x2B5,{4486,4468}}, + {0,0,0,28,0,0,0x404,0x1831,0x2AE,{4486,4468}}, + {0,0,0,29,0,0,0x404,0x182A,0x2B5,{4486,4468}}, + {0,0,0,84,0,0,0x808,0x1AA,0x1E6,{4534,4535}}, + {0,0,0,48,0,0,0xC0C,0x118,0xC1,{4536,4537}}, + {0,0,0,65,0,0,0xE0E,0x488,0x474,{929,4538}}, + {0,0,0,65,0,0,0xE0E,0x736,0x891,{4539,4540}}, + {0,0,0,55,0,0,0x606,0x1BE,0x481,{3341,4541}}, + {0,0,0,41,0,0,0x606,0x236,0x571,{3341,4541}}, + {0,0,0,63,0,0,0xE0E,0xF6,0x64,{651,652}}, + {0,0,0,55,0,0,0xE0E,0xF6,0x5D,{651,652}}, + {0,0,0,55,0,0,0xA0A,0xA1A,0x251,{4542,4543}}, + {0,0,0,53,0,0,0xA0A,0xA1A,0x251,{4542,4543}}, + {0,0,0,50,0,0,0xC0C,0x118,0xC1,{4536,4537}}, + {0,0,0,84,0,0,0xE0E,0x2A1,0x744,{929,934}}, + {0,0,0,74,0,0,0xE0E,0x2A1,0x74A,{929,934}}, + {0,0,0,84,0,0,0xE0E,0x61E,0x744,{929,931}}, + {0,0,0,74,0,0,0xE0E,0x62C,0x74A,{929,931}}, + {0,0,0,84,0,0,0xE0E,0x1B1,0x5D,{4544,4545}}, + {0,0,0,74,0,0,0,0x78,0x5D,{957,958}}, + {0,0,0,48,0,0,0xE0E,0x1F4,0x23D,{3420,3421}}, + {0,0,0,36,0,0,0xE0E,0x25E,0x2BC,{3420,3421}}, + {0,0,0,74,0,0,0xE0E,0x279,0x6D9,{929,4546}}, + {0,0,0,0,0,0,0x606,0x1C76,0x5D,{4547,4548}}, + {0,0,0,0,0,0,0x808,0x9C40,0x1172,{4549,4550}}, + {0,0,0,0,0,0,0x808,0x9C40,0x56,{4551,4552}}, + {0,0,0,0,0,0,0xA0A,0x1220,0x5D,{4553,4554}}, + {0,0,0,0,0x1,0,0xB0A,0x1C0C,0x161,{4555,4556,4557,4558} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xBA,{4559,4560,4561,4562} }, + {0,0,0,0,0,0,0,0x23F0,0xE2,{4563,4564}}, + {0,0,0,0,0x1,0,0x504,0x1BA1,0x5D,{4565,4566,4567,4568} }, + {0,0,0,0,0,0,0x404,0x9C40,0x5D,{4569,4570}}, + {0,0,0,0,0,0,0x404,0x9C40,0x50,{4571,4572}}, + {0,0,0,0,0x1,0,0x908,0x9C40,0x5D,{4573,4574,4575,4576} }, + {0,0,0,0,0,0,0x404,0x9C40,0x41D,{4577,4578}}, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{4579,4580,2647,162} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x56,{4581,4582,4583,4584} }, + {0,0,0,0,0,0,0x808,0x9C40,0x495,{177,4585}}, + {0,0,0,0,0,0,0x202,0xFBA,0x64,{4586,4587}}, + {0,0,0,0,0x1,0,0x404,0x38B1,0x6A,{4588,4589,4590,4591} }, + {0,0,0,0,0,0,0xA0A,0x9C40,0x56,{4592,3104}}, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x5D,{4593,4594,4595,4596} }, + {0,0,0,0,0,0,0x606,0xFBA,0x64,{4597,4598}}, + {0,0,0,0,0,0,0x606,0x9C40,0x3C,{4599,4600}}, + {0,0,0,0,0,0,0x808,0x9C40,0x56,{4601,4602}}, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x175,{4603,4604,4605,4606} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xD5,{442,4607,443,4608} }, + {0,0,0,0,0,0,0x202,0x9C40,0x2C2,{3502,84}}, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{442,76,4609,4610} }, + {0,0,0,0,0,0,0x202,0x1CCD,0x5D,{4611,4612}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x190,{460,461,4613,463} }, + {0,0,0,0,0,0,0x808,0x9C40,0x92,{4614,4615}}, + {0,0,0,0,0,0,0x202,0x9C40,0x182,{3502,4616}}, + {0,0,0,0,0x1,0,0xE0E,0x4211,0x118D,{4617,4618,4619,4620} }, + {0,0,0,0,0x1,0,0xB0B,0x2BC,0xC8,{471,4621,4622,4623} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x5D,{4624,4625,4626,4627} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x64,{4628,4629,4630,4631} }, + {0,0,0,0,0,0,0xC0C,0x9C40,0x132,{4632,4633}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x8C,{106,4634}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x64,{4635,4636,4637,4638} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x5D,{4639,4640,4641,4642} }, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{4643,4644}}, + {0,0,0,0,0x1,0,0x908,0x9C40,0x6A,{4645,4646,4647,4648} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x5D,{4649,4650,4651,4652} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x1F4,{4653,4654,4655,4656} }, + {0,0,0,0,0,0,0x606,0x9C40,0x56,{4657,4658}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x7E,{4659,520}}, + {0,0,0,0,0,0,0x404,0x9C40,0xE2,{4660,4661}}, + {0,0,0,0,0x1,0,0x202,0x9C40,0x5D,{4662,4663,4664,4665} }, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{4666,4667}}, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{4668,4669,4670,4671} }, + {0,0,0,0,0,0,0,0x9C40,0xD5,{4672,4673}}, + {0,0,0,0,0,0,0x405,0x9C40,0x5D,{4674,544}}, + {0,0,0,0,0,0,0,0x37A6,0x6A,{4675,4676}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x201,{4677,4678}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x64,{4679,4680,4681,4682} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x6A,{4683,4684,559,4685} }, + {0,0,0,0,0x1,0,0xB0A,0x46D,0x5D,{4686,4687,4688,4689} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x11E4,{171,4690,4691,566} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x265,{567,4692,4693,4694} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x416,{4695,4696,4697,4698} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x452,{2710,4699,179,4700} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x410,{4701,4696,4702,4703} }, + {0,0,0,0,0x1,0,0xD0C,0x46D,0x542,{2717,2718,4704,4705} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0xA28,{4706,4707,4708,4709} }, + {0,0,0,0,0,0,0xC0C,0x9C40,0x76C,{2723,4710}}, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0xA7E,{4711,4712,4713,4714} }, + {0,0,0,0,0,0,0x606,0x9C40,0x56A,{4715,4716}}, + {0,0,0,0,0,0,0x404,0x730,0x5D,{4717,4718}}, + {0,0,0,0,0x1,0,0x908,0x6FA,0x848,{4719,4720,4721,4722} }, + {0,0,0,0,0x1,0,0xC0C,0x4232,0x1130,{4723,4724,4725,4620} }, + {0,0,0,0,0,0,0xA0A,0x9C40,0x8F5,{4726,4727}}, + {0,0,0,0,0x1,0,0xF0E,0xD41,0x56,{4728,4729,4730,4731} }, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{4732,4733}}, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{4734,4735,4736,4737} }, + {0,0,0,0,0,0,0xE0E,0x98E,0x85,{4738,4739}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x2BC,{4740,4741}}, + {0,0,0,0,0x1,0,0x505,0x3C0,0x6A,{4742,4743,4744,4745} }, + {0,0,0,0,0,0,0,0x9C40,0x2AE,{4746,4747}}, + {-36,0,0,0,0x1,0,0x504,0x9C40,0x5D,{4748,4749,4750,4749} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x5D,{4751,4752,4753,4754} }, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{4755,4756}}, + {0,0,0,35,0,0,0x808,0x272,0x5D,{4757,4758}}, + {0,0,0,35,0,0,0x808,0x132,0x5D,{248,4759}}, + {0,0,0,52,0,0,0x404,0x78,0x5D,{4760,4761}}, + {0,0,0,60,0,0,0xC0C,0x118,0x5D,{4762,4763}}, + {0,0,0,58,0,0,0x202,0x6A,0x5D,{4764,4765}}, + {0,0,0,60,0,0,0xC0C,0x17C,0x5D,{4766,4767}}, + {0,0,0,50,0,0,0x404,0x668,0x5D,{4768,4769}}, + {0,0,0,43,0,0,0xE0E,0x99,0x5D,{4770,4771}}, + {0,0,0,55,0,0,0x404,0x668,0x5D,{4768,4769}}, + {0,0,0,43,0,0,0xA0A,0xA0,0xA6,{258,2776}}, + {0,0,0,50,0,0,0x404,0x3C6,0x5D,{4772,4773}}, + {0,0,0,43,0,0,0xE0E,0x1BE,0x5D,{4774,4775}}, + {0,0,0,53,0,0,0x404,0x3D4,0x5D,{4772,4773}}, + {0,0,0,57,0,0,0x404,0x2BC,0x5D,{4772,4773}}, + {0,0,0,72,0,0,0xC0C,0x305,0x5D,{4776,4777}}, + {0,0,0,60,0,0,0x404,0x2B5,0x5D,{4772,4773}}, + {0,0,0,76,0,0,0xE0E,0x320,0x5D,{701,702}}, + {0,0,0,84,0,0,0xE0E,0x2C2,0x5D,{4778,4779}}, + {0,0,0,42,0,0,0x606,0x49C,0x5D,{4780,4781}}, + {0,0,0,65,0,0,0xE0E,0x125,0x5D,{4782,4783}}, + {0,0,0,84,0,0,0xE0E,0x175,0x5D,{4784,4785}}, + {0,0,0,84,0,0,0xC0C,0x535,0x5D,{4786,4787}}, + {0,0,0,24,0,0,0xC0C,0x3CD,0x64,{4788,4789}}, + {0,0,0,77,0,0,0xE0E,0x320,0x5D,{721,722}}, + {0,0,0,58,0,0,0xE0F,0x1AA,0x5D,{3650,4790}}, + {0,0,0,53,0,0,0xE0F,0x1AA,0x5D,{4791,4792}}, + {0,0,0,64,0,0,0xE0E,0xC8,0x5D,{296,4793}}, + {0,0,0,71,0,0,0xE0E,0x71,0x5D,{4794,4795}}, + {0,0,0,44,0,0,0xE0E,0x2F8,0x5D,{4796,4797}}, + {0,0,0,40,0,0,0x808,0x1CC,0x56,{4798,4799}}, + {0,0,0,69,0,0,0x1,0x78,0x5D,{308,4800}}, + {0,0,0,60,0,0,0,0x23D,0x5D,{4801,4802}}, + {0,0,0,80,0,0,0x808,0xDC,0x5D,{4803,4804}}, + {0,0,0,64,0,0,0x808,0xA14,0x5D,{4805,4806}}, + {0,0,0,72,0,0,0xE0E,0x78,0x56,{4807,4808}}, + {0,0,0,70,0,0,0xE0E,0x320,0x5D,{4809,4810}}, + {0,0,0,48,0,0,0x607,0xAD,0x5D,{4811,4812}}, + {0,0,0,53,0,0,0x404,0x3D4,0x64,{4813,4814}}, + {0,0,0,0,0x1,0,0xE0F,0x9C40,0x42A,{4815,4816,4817,4818} }, + {0,0,0,0,0x1,0,0x908,0x2EE6,0xDC,{4819,4820,4821,4822} }, + {0,0,0,0,0x1,0,0,0x17C,0x8C,{4823,4824,4825,4826} }, + {0,0,0,0,0x1,0,0xE0E,0x39AE,0x5D,{4827,4828,4829,4830} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{4831,4832,4833,4834} }, + {-12,0,0,0,0x1,0,0x908,0x9C40,0x71,{372,373,4835,4836} }, + {0,0,0,0,0x1,0,0x808,0x3CD,0x140,{401,4837,4838,4839} }, + {0,0,0,0,0x1,0,0x908,0x1082,0xE2,{4840,4841,407,4842} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{4843,4844,4845,4846} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{4827,4847,4848,4849} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{4850,4851,4852,4853} }, + {0,0,0,0,0x1,0,0x606,0x805,0xE2,{4854,4855,4856,4857} }, + {0,0,0,0,0x1,0,0x706,0x500,0x5D,{4858,4859,2654,2655} }, + {0,0,0,0,0x1,0,0xA0A,0x23D,0xDC,{4860,4861,4862,4863} }, + {0,0,0,0,0x1,0,0x302,0xD2D,0x46D,{89,4864,458,4865} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x4F9,{2661,96,95,4866} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{4668,4867,4868,4671} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x8C,{545,546,547,4869} }, + {0,0,0,0,0x1,0,0,0x9C40,0x92,{4870,4871,4872,4873} }, + {0,0,0,0,0x1,0,0x302,0x9C40,0x5D,{4874,4875,4876,4877} }, + {0,0,0,0,0x1,0,0xB0A,0x736,0x64,{4878,4879,4880,4881} }, + {0,0,0,0,0x1,0,0x302,0x9C40,0x5D,{4882,4883,4876,4877} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x3C6,{2714,184,4884,4885} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x175,{4886,4887,4888,4889} }, + {0,0,0,0,0x1,0,0x908,0x6FA,0x848,{4890,4720,4891,4722} }, + {0,0,0,0,0x1,0,0x1,0x2DD,0x5D,{4892,4893,4894,4895} }, + {0,0,0,0,0x1,0,0,0x11E,0x5D,{4896,4893,4897,4898} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x5D,{4899,4900,4901,4902} }, + {0,0,0,0,0x1,0,0xF0E,0x55D,0xA8C,{4903,4904,4905,4906} }, + {0,0,0,0,0x1,0,0xB0A,0x5CE,0xA71,{4907,4908,4909,4910} }, + {1,0,0,0,0x1,0,0xF0F,0x9C40,0x49,{4911,4912,4913,4914} }, + {0,0,0,0,0x1,0,0xE0E,0x7FE,0x92,{639,4915,641,4916} }, + {0,0,0,35,0,0,0x808,0x17C,0x1B8,{4917,4918}}, + {0,0,0,60,0,0,0xC0C,0x1ED,0x258,{4919,4920}}, + {0,0,0,43,0,0,0xE0E,0x78,0x85,{4921,4922}}, + {0,0,0,0,0,0,0xE0E,0xE88,0x1144,{3921,2983}}, + {0,0,0,0,0x1,0,0x404,0x39F1,0x47A,{4923,4924,4925,4926} }, + {12,0,0,0,0x1,0,0xC0C,0x27DE,0x33A,{4927,4928,4929,4930} }, + {0,0,0,0,0x1,0,0xD0C,0x3D75,0x168,{4931,4932,4933,4934} }, + {0,0,0,0,0x1,0,0xE0E,0x3861,0x460,{4935,4936,4937,4938} }, + {0,0,0,0,0x1,0,0x100,0x369C,0x862,{4939,4940,4941,4942} }, + {0,0,0,0,0x1,0,0xF0E,0x38E6,0x466,{4943,4944,4945,4946} }, + {12,0,0,0,0x1,0,0xE0E,0x28BA,0xF6,{4947,4948,4949,4950} }, + {12,0,0,0,0x1,0,0x707,0x9C40,0xBA,{4265,4951,4952,4953} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x319,{4954,4955,4956,4957} }, + {0,0,0,0,0x1,0,0x101,0x9C40,0x71,{4958,4959,4960,4961} }, + {0,0,0,0,0x1,0,0x505,0x9C40,0x71,{4962,4963,4964,4965} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x5D,{4966,4967,4968,4969} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x71,{4970,4971,4972,4973} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x5D,{4974,4975,4976,4977} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x64,{4978,4979,4980,4981} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x6A,{4982,4983,4984,4985} }, + {0,0,0,0,0x1,0,0xA0A,0x1C34,0x244,{4986,4987,4988,4989} }, + {12,0,0,0,0x1,0,0xE0E,0x283C,0xF6,{4990,4991,4992,4993} }, + {-12,0,0,0,0x1,0,0xE0E,0x9C40,0x2D0,{4994,4995,4996,4997} }, + {-12,0,0,0,0x1,0,0x908,0x2392,0xAE2,{4998,4999,5000,5001} }, + {0,0,0,0,0x1,0,0x908,0x1C55,0x8A5,{5002,5003,5004,5005} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0xC8,{5006,5007,5008,5009} }, + {0,0,0,0,0x1,0,0,0x9C40,0x56A,{5010,5011,5012,5013} }, + {0,0,0,0,0x1,0,0,0x9C40,0x14F6,{5010,5011,5014,5015} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xC8,{5016,5017,5018,5017} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x99C,{5019,5020,5021,5022} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x6A,{3791,5023,3791,5024} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{5025,5026,5027,5028} }, + {12,0,0,0,0x1,0,0xC0C,0x1194,0x64,{5029,5030,5031,5032} }, + {12,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{5033,5034,5035,5036} }, + {12,0,0,0,0x1,0,0x808,0x49C,0xDC,{5037,5038,5039,5040} }, + {12,0,0,0,0x1,0,0,0x3B9,0x189,{5041,5042,5043,5044} }, + {0,0,0,0,0x1,0,0xE0E,0x3965,0x146,{5045,5046,5047,5048} }, + {0,0,0,0,0x1,0,0xE0E,0x3965,0x24A,{5049,5050,5051,5052} }, + {0,0,0,0,0x1,0,0xC0C,0x3889,0x898,{5053,5054,5055,5056} }, + {0,0,0,0,0x1,0,0xC0C,0x898,0x71,{5057,5058,5059,5060} }, + {12,0,0,0,0x1,0,0x606,0x1ED,0x1BE,{428,429,430,431} }, + {0,0,0,0,0x1,0,0x706,0x182,0x99,{5061,5062,5063,5064} }, + {0,0,0,0,0x1,0,0xE0E,0x31EC,0x251,{5065,5066,5067,5068} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x64,{5069,5070,5071,5072} }, + {0,0,0,0,0x1,0,0xD0C,0x2288,0x17C,{5073,5074,5075,5076} }, + {0,0,0,0,0x1,0,0xE0E,0x9DE,0x459,{5077,5078,5079,5080} }, + {0,0,0,0,0x1,0,0xE0E,0x1B15,0x24A,{5081,5082,5083,5084} }, + {12,0,0,0,0x1,0,0xE0E,0x9C40,0x571,{5085,5086,5087,5088} }, + {0,0,0,0,0x1,0,0xA0A,0x12C6,0x116C,{5089,5090,5091,5092} }, + {0,0,0,0,0x1,0,0xD0C,0x3124,0x488,{5093,5094,5095,5096} }, + {0,0,0,0,0x1,0,0xA0A,0x74A,0x898,{5097,5098,5099,5100} }, + {12,0,0,0,0x1,0,0x302,0x14A6,0x320,{5101,5102,5103,5104} }, + {-12,0,0,0,0x1,0,0xE0E,0x9C40,0x2C9,{5105,4995,4996,5106} }, + {-12,0,0,0,0x1,0,0xE0E,0x9C40,0x2C9,{5107,5108,5109,3365} }, + {-12,0,0,0,0x1,0,0xE0E,0x9C40,0x2D6,{5110,5111,5112,5113} }, + {-12,0,0,0,0x1,0,0xF0E,0x9C40,0x5C1,{5114,5115,5116,5117} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x5DC,{5118,5119,5120,5121} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x294,{5122,5123,5124,5125} }, + {12,0,0,0,0,0,0xC0C,0x9A9,0xD41,{5126,5127}}, + {12,0,0,0,0,0,0xC0C,0x981,0xCDD,{5126,5128}}, + {0,0,0,0,0x1,0,0xE0E,0x11EA,0x71,{5129,5130,5131,5132} }, + {-12,0,0,0,0x1,0,0xF0E,0x9C40,0x5A0,{5133,5134,5135,5136} }, + {0,0,0,0,0x1,0,0xC0C,0x11C9,0xE2,{5137,5138,5139,5140} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x71,{5141,5142,5143,5144} }, + {12,0,0,0,0x1,0,0xB0A,0x1449,0x78,{5145,5146,5147,5148} }, + {12,0,0,0,0x1,0,0xD0C,0x138E,0xF6,{5149,5150,5151,5152} }, + {0,0,0,0,0,0,0x606,0x9C40,0x11E,{848,849}}, + {0,0,0,0,0x1,0,0xE0E,0x1B80,0x244,{5153,5154,5155,5156} }, + {12,0,0,0,0x1,0,0xE0E,0x1255,0xE2,{5157,5158,5159,5160} }, + {12,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{5161,5162,5163,5164} }, + {12,0,0,0,0x1,0,0xC0C,0x661,0x189,{5165,5166,5167,5168} }, + {0,0,0,0,0x1,0,0xE0E,0x1C62,0x244,{5169,5170,5171,5172} }, + {0,0,0,0,0x1,0,0xA0A,0x1CAC,0x1130,{5173,5174,5175,5176} }, + {12,0,0,0,0x1,0,0xE0E,0x11F8,0xE2,{5177,5178,5179,5180} }, + {12,0,0,0,0x1,0,0xA0A,0xD76,0xC6C,{5181,5182,5183,5092} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x64,{5184,5185,5186,5187} }, + {0,0,0,0,0,0,0x606,0x49E8,0x55D,{1116,5188}}, + {0,0,0,0,0,0,0xE0E,0x4858,0x5D,{5189,5190}}, + {0,0,0,0,0,0,0xE0E,0x481C,0x5D,{5191,5190}}, + {-12,0,0,0,0x1,0,0xF0E,0x9C40,0x182,{5192,4340,5193,5194} }, + {0,0,0,0,0,0,0xE0E,0x1FF4,0x189,{5195,5196}}, + {0,0,0,0,0,0,0xE0E,0x4865,0x56,{5197,5190}}, + {0,0,0,0,0,0,0xE0E,0x394A,0x445C,{5198,5199}}, + {0,0,0,0,0x1,0,0x908,0x9C40,0x85,{5200,5201,5202,5203} }, + {12,0,0,0,0x1,0,0,0x9C40,0x71,{5204,5205,5206,5207} }, + {12,0,0,0,0x1,0,0xE0E,0x47F4,0x92,{4219,4220,4221,5208} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{5209,1124}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{1128,1124}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xC8,{5210,5211,5212,5213} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xC1,{5214,5215,5216,5217} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x71,{5218,5219,5220,5221} }, + {12,0,0,0,0x1,0,0xF0E,0x468C,0x2D0,{5222,5223,5224,5225} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x64,{5226,5227,5228,5229} }, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{5230,1124}}, + {12,0,0,0,0x1,0,0x908,0x21EE,0x585,{5231,5232,5233,5234} }, + {0,0,0,0,0x1,0,0,0x3929,0x8B2,{5235,5236,5237,5238} }, + {12,0,0,0,0x1,0,0,0x23CE,0x57E,{5239,5240,5241,5242} }, + {0,0,0,0,0x1,0,0xF0E,0x2446,0x4E5,{5243,5244,5245,5246} }, + {0,0,0,0,0x1,0,0x908,0x2022,0x592,{5247,4250,5248,5249} }, + {12,0,0,0,0x1,0,0x101,0x11D6,0x3B9,{5250,5251,5252,5253} }, + {0,0,0,0,0x1,0,0,0x938,0x57E,{5254,5255,5256,5257} }, + {0,0,0,0,0x1,0,0xB0A,0x805,0x514,{5258,5259,5260,5261} }, + {0,0,0,0,0,0,0,0x9C40,0x182,{5262,5263}}, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0xE2,{5264,5265,5266,5267} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x71,{5268,5269,5270,5271} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x92,{5272,5273,5274,5275} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x92,{5276,5277,5278,5279} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x2E4,{5280,5281,5282,5283} }, + {0,0,0,0,0,0,0x606,0x272,0x5BA,{5284,4541}}, + {0,0,0,0,0,0,0x606,0x9C40,0x28D,{5285,5286}}, + {-12,0,0,0,0x1,0,0x100,0x4D1,0x585,{5287,5288,5289,5288} }, + {-12,0,0,0,0,0,0x606,0x1B58,0x1575,{4291,5290}}, + {-24,0,0,0,0,0,0xA0A,0xD5C,0x564,{4542,5291}}, + {0,0,0,0,0x1,0,0x706,0x1BF8,0x87D,{5292,5293,5294,5295} }, + {0,0,0,0,0,0,0x606,0x9C40,0x57E,{5296,5297}}, + {0,0,0,0,0,0,0xE0E,0x7A1,0xA92,{5298,5299}}, + {0,0,0,0,0x1,0,0xB0A,0x3ACD,0xAFD,{5300,5301,5302,5303} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x156E,{5304,5305,5306,5307} }, + {0,0,0,60,0x4,0,0,0x6,0,{795,1340}}, + {0,0,0,60,0,0,0xE0E,0xC8,0x140,{802,803}}, + {0,0,0,59,0,0,0xE0E,0x6A,0x5D,{672,673}}, + {0,0,0,44,0,0,0xE0E,0xC8,0x140,{802,803}}, + {0,0,0,41,0,0,0xE0F,0x2C9,0x33A,{804,805}}, + {0,0,0,44,0,0,0xE0F,0x201,0x258,{804,805}}, + {0,0,0,48,0,0,0xE0F,0x201,0x258,{804,805}}, + {0,0,0,96,0,0,0x808,0x2BC,0x99,{808,809}}, + {0,0,0,51,0,0,0xE0F,0x201,0x258,{804,805}}, + {0,0,0,54,0,0,0xE0F,0x201,0x258,{804,805}}, + {0,0,0,40,0,0,0xE0E,0x5C8,0xA7E,{810,811}}, + {0,0,0,57,0,0,0xE0F,0x17C,0x1B8,{804,805}}, + {0,0,0,58,0,0,0xE0E,0x5B4,0x862,{707,812}}, + {0,0,0,60,0,0,0xE0E,0x5A0,0x826,{707,812}}, + {0,0,0,42,0,0,0xE0E,0x280,0x2D6,{821,822}}, + {0,0,0,37,0,0,0xE0E,0x279,0x2D6,{821,822}}, + {0,0,0,41,0,0,0xA0A,0x272,0x2DD,{823,824}}, + {0,0,0,37,0,0,0xA0A,0x265,0x2D0,{823,824}}, + {0,0,0,70,0,0,0xE0E,0xE9,0x104,{827,828}}, + {0,0,0,90,0,0,0xE0E,0xE9,0x104,{827,828}}, + {0,0,0,46,0,0,0xC0C,0x85,0x64,{829,830}}, + {0,0,0,81,0,0,0x606,0xF0,0x5D,{751,840}}, + {0,0,0,53,0,0,0xC0C,0x9C40,0x50,{841,842}}, + {-12,0,0,0,0x1,0,0xE0E,0x9C40,0x2D0,{5308,4995,5309,5310} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xC8,{5311,5312,5313,5314} }, + {12,0,0,0,0x1,0,0xF0E,0x9C40,0x265,{5315,5316,5317,5318} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x2F1,{5319,5320,5321,5322} }, + {0,0,0,0,0,0,0xA0A,0x2120,0x8AC,{5323,5324}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x141A,{5325,5326}}, + {0,0,0,49,0,0,0xE0E,0x736,0x870,{4373,4374}}, + {0,0,0,61,0,0,0x808,0x71,0x5D,{4227,4228}}, + {0,0,0,56,0,0,0x808,0x71,0x5D,{4227,4228}}, + {0,0,0,58,0,0,0x808,0x71,0x5D,{4227,4228}}, + {0,0,0,49,0,0,0x808,0x7E,0x5D,{4227,4228}}, + {0,0,0,44,0,0,0x808,0x7E,0x5D,{4227,4228}}, + {0,0,0,0,0,0,0x606,0x9C40,0x53C,{2557,5327}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0,{3911,5328}}, + {0,0,0,84,0,0,0xE0E,0x99,0x64,{2595,3914}}, + {0,0,0,72,0,0,0xE0E,0x1B8,0x1ED,{5329,3916}}, + {0,0,0,0,0,0,0x606,0x2080,0x84E,{3426,5330}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x84E,{5331,5332}}, + {0,0,0,0,0,0,0x404,0x9C40,0x29A4,{5333,5334}}, + {0,0,0,0,0,0,0x606,0x2086,0x898,{5335,5330}}, + {0,0,0,0,0,0,0x808,0x3CD,0x8C6,{5336,5337}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{5338,5339}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x189,{5340,5341}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x182,{5342,5341}}, + {0,0,0,0,0,0,0x202,0x9C40,0x474,{5343,3259}}, + {0,0,0,0,0,0,0x404,0x9C40,0x1054,{5344,5345}}, + {0,0,0,0,0,0,0x202,0x9C40,0x1061,{5346,5347}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{5348,4045}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{5349,5350}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{5351,3461}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x56,{5352,5353}}, + {0,0,0,0,0,0,0x808,0x9C40,0x1AAA,{5354,5355}}, + {0,0,0,0,0,0,0xE0E,0x334,0x56,{5356,5357}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2D6,{5358,5359}}, + {0,0,0,0,0,0,0,0x9C40,0x2C9,{5360,5361}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x104,{438,5362}}, + {0,0,0,0,0,0,0,0x3A98,0x5D,{2562,5363}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2B5,{5364,5365}}, + {0,0,0,0,0,0,0xA0A,0x981,0xDC,{5366,5367}}, + {0,0,0,0,0,0,0xE0E,0x1219,0x159D,{5368,5369}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{5370,5371}}, + {0,0,0,0,0,0,0x606,0x9C40,0x85,{5372,5373}}, + {0,0,0,0,0,0,0x808,0x466,0x89E,{5374,5375}}, + {0,0,0,0,0,0,0x808,0x9C40,0,{5351,5376}}, + {0,0,0,0,0,0,0x202,0x9C40,0x107C,{5346,5377}}, + {0,0,0,0,0,0,0x808,0x122D,0x8B9,{5378,3482}}, + {0,0,0,0,0,0,0x202,0x9C40,0x106E,{5346,5379}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{3566,3567}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x5D,{5380,5381}}, + {0,0,0,0,0,0,0,0x9C40,0x14CE,{5382,5383}}, + {0,0,0,0,0,0,0xE0E,0xD5,0xE2,{5384,5385}}, + {0,0,0,0,0,0,0xA0A,0x118,0x139,{5386,3638}}, + {0,0,0,0,0,0,0,0x4A2,0x57E,{5387,5388}}, + {0,0,0,0,0,0,0x808,0x3728,0x3FCD,{5389,5390}}, + {0,0,0,0,0,0,0xA0A,0x410,0x409,{5391,5392}}, + {0,0,0,0,0,0,0x808,0x1644,0x219E,{5393,5394}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{5395,3560}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2D6,{5358,5396}}, + {0,0,0,36,0,0,0x808,0x17C,0x1B8,{659,249}}, + {0,0,0,37,0,0,0,0xD5,0x5D,{693,694}}, + {0,0,0,38,0,0,0xE0E,0xCE,0xE2,{5384,5385}}, + {0,0,0,24,0,0,0,0xC1,0x5D,{693,694}}, + {0,0,0,32,0,0,0xE0E,0xCE,0xE2,{5384,5385}}, + {0,0,0,48,0,0,0,0xBA,0x5D,{693,694}}, + {0,0,0,42,0,0,0xA0A,0xD5,0xF0,{5386,3638}}, + {0,0,0,50,0,0,0,0xBA,0x5D,{693,694}}, + {0,0,0,52,0,0,0,0xBA,0x5D,{693,694}}, + {0,0,0,54,0,0,0,0xBA,0x5D,{693,694}}, + {0,0,0,55,0,0,0,0xBA,0x5D,{693,694}}, + {0,0,0,57,0,0,0,0xBA,0x5D,{693,694}}, + {0,0,0,51,0,0,0,0x3B9,0x459,{5387,5388}}, + {0,0,0,61,0,0,0x607,0xC1,0x132,{280,281}}, + {0,0,0,0,0,0,0x607,0x20E4,0x1108,{2532,5397}}, + {0,0,0,63,0,0,0x607,0x178A,0xAE2,{2532,5397}}, + {0,0,0,64,0,0,0x607,0x1769,0xAC1,{2532,5397}}, + {0,0,0,40,0,0,0xE0E,0xCE,0xE2,{5398,5399}}, + {0,0,0,70,0,0,0xE0E,0xA0,0xAD,{5398,5399}}, + {0,0,0,0,0,0,0x606,0x9C40,0x64,{5400,5401}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x5D,{5402,5403}}, + {0,0,0,0,0,0,0x404,0x9C40,0x71,{5404,5405}}, + {0,0,0,0,0,0,0x404,0x9C40,0x71,{5406,5405}}, + {0,0,0,38,0,0,0xA0A,0xF6,0x5D,{4357,5407}}, + {0,0,0,57,0,0,0x809,0x104,0x12C,{4383,4384}}, + {0,0,0,63,0,0,0xE0E,0x92,0x111,{5408,5409}}, + {0,0,0,74,0,0,0xE0E,0x118,0x6A,{5410,5411}}, + {0,0,0,74,0,0,0xE0E,0x1E0,0x1D9,{5412,5413}}, + {0,0,0,60,0,0,0x606,0x2A1,0x6A,{5414,5415}}, + {0,0,0,35,0x1,0,0xF0E,0x88A,0xA14,{2835,2836,2835,2837} }, + {0,0,0,35,0x1,0,0x908,0x2E4,0x34E,{274,2793,2794,275} }, + {0,0,0,35,0x1,0,0xF0E,0x744,0x2C9,{323,748,749,750} }, + {0,0,0,35,0x1,0,0x100,0xD5,0x64,{2774,2775,256,256} }, + {0,0,0,35,0x1,0,0x706,0x49C,0x57E,{2778,2779,2780,2781} }, + {0,0,0,35,0x1,0,0x706,0x481,0x549,{2778,2782,2783,2784} }, + {0,0,0,35,0x1,0,0x706,0x474,0x175,{2798,2799,2780,2800} }, + {0,0,0,35,0x1,0,0xA0B,0x8EE,0x55D,{2856,2857,2858,2859} }, + {0,0,0,35,0x1,0,0x100,0xDC,0x33A,{310,309,310,2838} }, + {0,0,0,35,0x1,0,0x100,0xDC,0x348,{310,311,310,2839} }, + {0,0,0,35,0x1,0,0x908,0xDC,0x33A,{2860,309,2860,2838} }, + {0,0,0,35,0x1,0,0xF0E,0xFD,0xC8,{747,297,2825,2826} }, + {0,0,0,35,0x1,0,0xF0E,0x8C,0x49,{2853,2854,2853,2855} }, + {0,0,0,35,0x1,0,0x706,0xA6,0x17C,{282,283,2809,2810} }, + {0,0,0,35,0x1,0,0x706,0x208,0x5D5,{326,327,326,2812} }, + {0,0,0,35,0x1,0,0x706,0x1B8,0x58C,{2811,327,2811,2812} }, + {0,0,0,35,0x1,0,0x706,0x2DD,0xAF0,{2861,2862,2861,2862} }, + {0,0,0,35,0x1,0,0x100,0x229,0x29A,{2774,2775,256,257} }, + {0,0,0,35,0x1,0,0x606,0x92,0x5D,{686,687,688,251} }, + {0,0,0,35,0x1,0,0xF0E,0x132,0x16E,{252,253,2772,2773} }, + {0,0,0,35,0x1,0,0xB0A,0xDC,0xF6,{258,259,258,259} }, + {0,0,0,35,0x1,0,0xB0A,0xCE,0xD5,{258,2776,258,2776} }, + {0,0,0,35,0x1,0,0xF0E,0x132,0x16E,{252,253,2770,2771} }, + {0,0,0,35,0x1,0,0xB0A,0x94C,0xB0A,{261,262,261,2777} }, + {0,0,0,35,0x1,0,0,0x161,0x189,{2785,2786,2787,2788} }, + {0,0,0,35,0x1,0,0xE0E,0x7DD,0x578,{2789,2790,2791,2792} }, + {0,0,0,35,0x1,0,0x706,0x14D,0x182,{2801,2802,2803,2804} }, + {0,0,0,35,0x1,0,0x706,0x196,0x2D0,{2805,2806,2807,2808} }, + {0,0,0,35,0x1,0,0xF0E,0x280,0x2BC,{2815,2327,2815,2816} }, + {0,0,0,35,0x1,0,0xF0E,0x14D,0x5D,{290,291,2817,2818} }, + {0,0,0,35,0x1,0,0xF0E,0x279,0x2E4,{2819,295,2820,2821} }, + {0,0,0,35,0x1,0,0xF0E,0x4CA,0x571,{2831,2832,2833,2834} }, + {0,0,0,35,0x1,0,0x706,0x12C,0x2DD,{2813,287,2813,2814} }, + {0,0,0,35,0x1,0,0xF0E,0x258,0x2C2,{2822,2823,2822,2824} }, + {0,0,0,35,0x1,0,0xF0E,0x78,0x92,{2827,2828,2829,2830} }, + {0,0,0,35,0x1,0,0xB0A,0x528,0x571,{2844,2845,2846,2847} }, + {0,0,0,35,0x1,0,0x908,0x2C2,0x341,{316,2848,316,2849} }, + {0,0,0,35,0x1,0,0x908,0x11BC,0x15CC,{318,2850,2851,2852} }, + {0,0,0,35,0x1,0,0x908,0x4DE,0x53C,{2840,2841,2842,2843} }, + {0,0,0,35,0x1,0,0xE0E,0x4A2,0x57E,{703,704,705,706} }, + {0,0,0,35,0x1,0,0xE0E,0x91D,0xADC,{2795,716,2796,718} }, + {0,0,0,35,0x1,0,0x707,0x87D,0xA92,{4145,4146,4147,4148} }, + {0,0,0,35,0x1,0,0xF0E,0x16DD,0x57E,{244,5416,638,638} }, + {0,0,0,35,0x1,0,0xF0E,0x132,0x16E,{4144,253,2770,2771} }, + {0,0,0,35,0,0,0,0xDC,0x33A,{310,309}}, + {0,0,0,35,0x1,0,0x606,0x92,0x5D,{686,4141,4142,4143} }, + {0,0,0,35,0x1,0,0,0x161,0x2D0,{2785,2786,2787,4149} }, + {0,0,0,35,0x1,0,0xE0E,0x7DD,0x571,{4150,4151,4152,4153} }, + {0,0,0,35,0,0,0xC0C,0x528,0x618,{2797,2528}}, + {0,0,0,35,0x1,0,0xF0E,0x15A,0x2AE,{4154,4155,4156,4157} }, + {0,0,0,35,0x1,0,0x706,0x26C,0x528,{2805,4158,4156,4159} }, + {0,0,0,35,0,0,0x606,0x6A,0x71,{326,3646}}, + {0,0,0,35,0,0,0x606,0x1AA,0x57E,{326,4160}}, + {0,0,0,35,0,0,0x606,0x208,0x5CE,{326,327}}, + {0,0,0,35,0,0,0xE0E,0x280,0x2E4,{4161,289}}, + {0,0,0,35,0,0,0xE0E,0x146,0x5D,{3623,3649}}, + {0,0,0,35,0,0,0xE0E,0x19D,0x571,{3650,3651}}, + {0,0,0,35,0,0,0xE0E,0x1A4,0x578,{3652,3651}}, + {0,0,0,35,0,0,0xE0E,0x78,0x92,{4162,299}}, + {0,0,0,35,0,0,0xE0E,0x4B6,0x564,{2831,4163}}, + {0,0,0,35,0,0,0xE0E,0x92A,0xAB4,{2835,4164}}, + {0,0,0,35,0x1,0,0xD0C,0x17C,0x1B8,{4165,4166,739,739} }, + {0,0,0,35,0x1,0,0xD0C,0x1C5,0x1B8,{4165,4166,740,740} }, + {0,0,0,35,0x1,0,0x908,0x215,0x175,{4167,4168,4169,4170} }, + {0,0,0,35,0x1,0,0xB0A,0x4F2,0x55D,{4171,4172,4173,4174} }, + {0,0,0,35,0x1,0,0x100,0x9C40,0x1FA,{4175,4176,4177,4178} }, + {0,0,0,35,0x1,0,0x100,0x9C40,0x1CC,{4179,4180,4181,4182} }, + {5,0,0,35,0x1,0,0x908,0x100A,0x58C,{4183,4184,4185,4186} }, + {12,0,0,35,0x1,0,0xA0B,0x730,0x452,{2856,2857,2858,2859} }, + {0,0,0,35,0,0,0x808,0x2C9,0x341,{274,2793}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2D0,{5417,5418}}, + {0,0,0,0,0,0,0xE,0x17D4,0x189,{5419,5420}}, + {0,0,0,0,0,0,0x6,0x959,0x64,{1180,5421}}, + {0,0,0,0,0,0,0x4,0x10E6,0xBA,{5422,5423}}, + {0,0,0,0,0,0,0x9,0xD84,0x8C6,{5424,5425}}, + {0,0,0,0,0,0,0xC,0x19A6,0x21DA,{5426,5427}}, + {0,0,0,0,0,0,0x8,0xE60,0x10F4,{5428,5429}}, + {0,0,0,0,0,0,0xC,0x9C40,0x175,{5430,5431}}, + {0,0,0,0,0,0,0x8,0x119A,0x10C5,{5432,5433}}, + {0,0,0,0,0,0,0x6,0x9C40,0xA8C,{5434,5435}}, + {0,0,0,0,0,0,0x8,0x45DE,0x151E,{5436,5437}}, + {0,0,0,0,0,0,0x6,0x869,0x564,{5438,5439}}, + {0,0,0,0,0,0,0xA,0x48E,0x556,{3664,5440}}, + {0,0,0,0,0,0,0xE,0x2F1,0x56A,{5441,5442}}, + {0,0,0,0,0,0,0xE,0x37FD,0x4192,{5443,5444}}, + {0,0,0,0,0,0,0x6,0x3C3C,0x13F2,{5445,5446}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{5447,5448}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{5449,5450}}, + {0,0,0,0,0,0,0,0x1284,0xDC,{5451,5452}}, + {0,0,0,0,0,0,0xB,0x9C40,0x5D,{5453,5454}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5455,5456}}, + {0,0,0,0,0,0,0xE,0x9C40,0x64,{5457,5458}}, + {0,0,0,0,0,0,0xD,0x9C40,0x9A9,{1262,1263}}, + {0,0,0,0,0,0,0x4,0x2079,0x855,{5459,5460}}, + {0,0,0,0,0,0,0xA,0x1D81,0x140,{5461,5462}}, + {0,0,0,0,0,0,0xD,0x9C40,0x78,{5463,5464}}, + {0,0,0,0,0,0,0x6,0x9C40,0xB4,{5465,5466}}, + {0,0,0,0,0,0,0xA,0x15A,0x189,{5467,5468}}, + {0,0,0,0,0,0,0x4,0x9C40,0x118,{5469,5470}}, + {0,0,0,0,0,0,0x8,0x9C40,0x215,{5471,5472}}, + {0,0,0,0,0,0,0x8,0x10E6,0x156E,{5473,5474}}, + {0,0,0,0,0,0,0,0x891,0x6A,{5475,5476}}, + {0,0,0,0,0,0,0x6,0x12EE,0xC1,{5477,5478}}, + {0,0,0,0,0,0,0x4,0x31C4,0xC1,{5479,5480}}, + {0,0,0,0,0,0,0x4,0x1B22,0x251,{5481,5482}}, + {0,0,0,0,0,0,0x2,0x35CD,0x64,{5483,5484}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5485,5486}}, + {0,0,0,0,0,0,0x8,0x16B5,0x88A,{5487,5488}}, + {0,0,0,0,0,0,0xA,0x89E,0x64,{5489,5490}}, + {0,0,0,0,0,0,0xE,0x9C40,0x190,{5491,5492}}, + {0,0,0,0,0,0,0xE,0x9C40,0x7E,{5493,5494}}, + {0,0,0,0,0,0,0xE,0x9C40,0x14D,{5495,5496}}, + {0,0,0,0,0,0,0xE,0x9C40,0x190,{5491,5497}}, + {0,0,0,0,0,0,0xC,0x9C40,0x175,{5498,5499}}, + {0,0,0,0,0,0,0x8,0x168,0x175,{5500,5501}}, + {0,0,0,0,0,0,0,0x2252,0x1478,{5502,5503}}, + {0,0,0,0,0,0,0x2,0x251,0x92,{5504,5505}}, + {0,0,0,0,0,0,0xC,0x9C40,0x236,{5506,5507}}, + {0,0,0,0,0,0,0xA,0x9C40,0x244,{5508,5509}}, + {0,0,0,0,0,0,0xA,0x9C40,0x229,{5510,5511}}, + {0,0,0,0,0,0,0xA,0x9C40,0x23D,{5512,5513}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5514,5515}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5516,5517}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{5518,5519}}, + {0,0,0,0,0,0,0x8,0x2FE,0x2B5,{5520,5521}}, + {0,0,0,0,0,0,0xC,0x9C40,0x17C,{5522,5523}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2D0,{5524,5525}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{5526,5527}}, + {0,0,0,0,0,0,0xC,0x9C40,0x71,{5528,5529}}, + {0,0,0,0,0,0,0xC,0x9C40,0x189,{5530,5531}}, + {0,0,0,0,0,0,0xC,0x9C40,0x175,{5532,5533}}, + {0,0,0,0,0,0,0xE,0x9C40,0x17C,{5534,5535}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{5536,5537}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5538,5539}}, + {0,0,0,0,0,0,0xA,0x9C40,0x64,{5540,5541}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{5542,5543}}, + {0,0,0,0,0,0,0xC,0x9C40,0xBA,{1140,5544}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5545,5546}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{5547,5548}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{5549,5550}}, + {0,0,0,0,0,0,0x2,0x9C40,0x64,{5551,5552}}, + {0,0,0,0,0,0,0x2,0x9C40,0x64,{5551,5553}}, + {0,0,0,0,0,0,0xE,0x9C40,0xBA,{5554,5555}}, + {0,0,0,0,0,0,0x8,0x1511,0xDC,{5556,5557}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{5558,5559}}, + {0,0,0,0,0,0,0x2,0x44E8,0x71,{5560,5561}}, + {0,0,0,0,0,0,0xC,0x9C40,0xD5,{5562,5563}}, + {0,0,0,0,0,0,0xA,0x9C40,0xBA,{5564,5565}}, + {0,0,0,0,0,0,0,0x9C40,0x466,{5566,5567}}, + {0,0,0,0,0,0,0xC,0x9C40,0x1CCD,{5568,5569}}, + {0,0,0,0,0,0,0xF,0x4469,0x5D,{5570,5571}}, + {0,0,0,0,0,0,0x4,0x9C40,0xDC,{5572,5573}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5574,5575}}, + {0,0,0,0,0,0,0xC,0x15F4,0x24A,{5576,5577}}, + {0,0,0,0,0,0,0x8,0xE74,0x71,{5578,5579}}, + {0,0,0,0,0,0,0xE,0x9C40,0xC1,{5580,5581}}, + {0,0,0,0,0,0,0x8,0xABA,0x71,{5582,5583}}, + {0,0,0,0,0,0,0x8,0x215C,0x2A1,{5584,5585}}, + {0,0,0,0,0,0,0xA,0x8E8,0x83A,{5586,5587}}, + {0,0,0,0,0,0,0x8,0x154,0x17C,{5588,5589}}, + {0,0,0,0,0,0,0xE,0x4AD8,0x5201,{5590,5591}}, + {0,0,0,0,0,0,0x1,0x161,0x5D,{5592,5593}}, + {0,0,0,0,0,0,0xE,0x236,0x2BC,{5594,5595}}, + {0,0,0,0,0,0,0,0xE2,0x64,{5596,5597}}, + {0,0,0,0,0,0,0xE,0x9C40,0x71,{643,644}}, + {0,0,0,0,0,0,0xC,0x9C40,0xE2,{5598,5599}}, + {0,0,0,0,0,0,0x2,0x9C40,0xE2,{5600,5599}}, + {0,0,0,0,0,0,0x2,0x140,0x175,{647,648}}, + {0,0,0,0,0,0,0,0xD5,0x5D,{649,650}}, + {0,0,0,0,0,0,0xE,0x168,0x182,{5601,5602}}, + {0,0,0,0,0,0,0x8,0x16E,0x5D,{5603,5604}}, + {0,0,0,0,0,0,0,0xFD,0x5D,{693,1343}}, + {0,0,0,0,0,0,0xC,0x14D,0x64,{5605,5606}}, + {0,0,0,0,0,0,0xE,0x236,0x24A,{5607,5608}}, + {0,0,0,0,0,0,0,0x272,0x2D6,{5609,5610}}, + {0,0,0,0,0,0,0x2,0xE9,0xE2,{5611,5612}}, + {0,0,0,0,0,0,0,0x474,0x571,{5609,5613}}, + {0,0,0,0,0,0,0x8,0xAD,0x92,{5614,5615}}, + {0,0,0,0,0,0,0,0x46D,0x564,{5609,5616}}, + {0,0,0,0,0,0,0xA,0x32D,0xE2,{5617,5618}}, + {0,0,0,0,0,0,0x8,0x3F5,0x56A,{5619,5620}}, + {0,0,0,0,0,0,0x2,0x9C40,0x6F4,{5621,5622}}, + {0,0,0,0,0,0,0xC,0x9C40,0x78D,{5623,5624}}, + {0,0,0,0,0,0,0xA,0xB4,0x71,{5625,5626}}, + {0,0,0,0,0,0,0x4,0x9C40,0x6FA,{5627,5622}}, + {0,0,0,0,0,0,0x6,0x9C40,0x9B0,{5628,5629}}, + {0,0,0,0,0,0,0x6,0x132A,0x2DD,{5630,5631}}, + {0,0,0,0,0,0,0xA,0xD91,0x85,{5632,5633}}, + {0,0,0,0,0,0,0xA,0xDFC,0x85,{5632,5634}}, + {0,0,0,0,0,0,0x8,0x1212,0x898,{5635,5636}}, + {0,0,0,0,0,0,0x8,0x114A,0x219E,{5637,5638}}, + {0,0,0,0,0,0,0xE,0x33F4,0x3F20,{2942,5639}}, + {0,0,0,0,0,0,0xA,0x4A9,0x585,{5640,5641}}, + {0,0,0,0,0,0,0xE,0x2BC,0x5B4,{5642,5643}}, + {0,0,0,0,0,0,0x8,0x9C40,0x11E,{5644,5645}}, + {0,0,0,0,0,0,0x6,0x1205,0x88A,{4106,5646}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{5647,1069}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5648,5649}}, + {0,0,0,0,0,0,0x9,0x9C40,0x20E,{5650,5651}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{4059,5652}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{5653,5654}}, + {0,0,0,0,0,0,0xA,0x9C40,0x10A,{5655,5656}}, + {0,0,0,0,0,0,0xC,0x9C40,0x56,{5657,5658}}, + {0,0,0,0,0,0,0xA,0xE81,0x1122,{2564,2565}}, + {0,0,0,0,0,0,0,0xE4C,0x1096,{5659,2565}}, + {0,0,0,0,0,0,0,0x924,0xACE,{5660,5661}}, + {0,0,0,0,0,0,0x8,0x618,0x5D,{5662,5663}}, + {0,0,0,0,0,0,0x1,0x79A,0x2D6,{5664,5665}}, + {0,0,0,0,0,0,0xA,0x10F4,0x5D,{5666,5667}}, + {0,0,0,0,0,0,0xE,0x9C40,0x99,{5668,1065}}, + {0,0,0,0,0,0,0x8,0x9C40,0x71,{5669,5670}}, + {0,0,0,0,0,0,0xE,0x9C40,0x14D,{5671,5672}}, + {0,0,0,0,0,0,0,0x9C40,0x3B9,{5673,5674}}, + {0,0,0,0,0,0,0,0x3BBD,0x5D,{5675,5676}}, + {0,0,0,0,0,0,0x6,0x46B4,0x64,{5677,5678}}, + {0,0,0,0,0,0,0x6,0x9C40,0x53C,{1116,3893}}, + {0,0,0,0,0,0,0xE,0x7DD,0xDC,{5679,5680}}, + {0,0,0,0,0,0,0xE,0x1658,0x110E,{5681,5682}}, + {0,0,0,0,0,0,0xE,0x9C40,0x391,{5683,5684}}, + {0,0,0,0,0,0,0x6,0x9C40,0x52E,{5685,3893}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5686,5687}}, + {0,0,0,0,0,0,0xA,0x12B2,0x5D,{5688,5689}}, + {0,0,0,0,0,0,0x6,0x161C,0xA71,{5690,5691}}, + {0,0,0,0,0,0,0xC,0x506,0x564,{5692,5693}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1123,1124}}, + {0,0,0,0,0,0,0xE,0xA7E,0x2D6,{5694,5695}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{3904,3905}}, + {0,0,0,0,0,0,0xC,0x9C40,0x50,{5696,5697}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{5698,5699}}, + {0,0,0,0,0,0,0xA,0x9C40,0x50,{2543,5700}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5701,5702}}, + {0,0,0,0,0,0,0xA,0x9C40,0x56,{5703,5704}}, + {0,0,0,0,0,0,0xE,0xF50,0x64,{5705,5706}}, + {0,0,0,0,0,0,0xA,0x9C40,0x71,{5707,5708}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{1241,5709}}, + {0,0,0,0,0,0,0x2,0x9C40,0x71,{5710,5711}}, + {0,0,0,0,0,0,0x7,0x9C40,0x175,{2575,3909}}, + {0,0,0,0,0,0,0xC,0x9C40,0x8C,{5712,5713}}, + {0,0,0,0,0,0,0x2,0x9C40,0x6A,{5714,5715}}, + {0,0,0,0,0,0,0xE,0x9C40,0xFD,{5716,5717}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{2208,2209}}, + {0,0,0,0,0,0,0xD,0x9C40,0x47A,{5718,5719}}, + {0,0,0,0,0,0,0xA,0xF50,0x64,{5720,5721}}, + {0,0,0,0,0,0,0x8,0x16BC,0xAC1,{5722,865}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{5723,5724}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{2208,5725}}, + {0,0,0,0,0,0,0x8,0x571,0x578,{5726,5727}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{5728,5729}}, + {0,0,0,0,0,0,0xA,0x231A,0x29ED,{5730,5731}}, + {0,0,0,0,0,0,0x6,0x5C8,0xAFD,{5732,5733}}, + {0,0,0,0,0,0,0x5,0x9C40,0x7A8,{5734,5735}}, + {0,0,0,0,0,0,0,0x9C40,0x445,{5736,5737}}, + {0,0,0,0,0,0,0x4,0x23CE,0x2A8D,{5738,5739}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5740,5741}}, + {0,0,0,0,0,0,0x2,0xCFE,0xAE2,{2873,2874}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{870,5742}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5743,5742}}, + {0,0,0,0,0,0,0x6,0x9C40,0x1A61,{5744,5745}}, + {0,0,0,0,0,0,0x2,0x9C40,0x4016,{5746,5746}}, + {0,0,0,0,0,0,0x6,0x9C40,0x1A61,{5744,5747}}, + {0,0,0,0,0,0,0x6,0x9C40,0x12C,{5748,5749}}, + {0,0,0,0,0,0,0xE,0x9C40,0x4CE0,{5750,5751}}, + {0,0,0,0,0,0,0x4,0x9C40,0x4455,{5752,5753}}, + {0,0,0,0,0,0,0x8,0xAF6,0xE16,{4030,4031}}, + {0,0,0,0,0,0,0x6,0x122D,0x8C0,{2532,5754}}, + {0,0,0,0,0,0,0x8,0x305,0xE2,{1264,5755}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{3749,5756}}, + {0,0,0,0,0,0,0xE,0x9C40,0x870,{5757,5758}}, + {0,0,0,0,0,0,0xE,0x640,0x8A5,{5759,5760}}, + {0,0,0,0,0,0,0,0x924,0xAD5,{5761,5762}}, + {0,0,0,0,0,0,0xE,0x3C6,0x474,{5763,5764}}, + {0,0,0,0,0,0,0xA,0x4CA,0x571,{5765,584}}, + {0,0,0,0,0,0,0x1,0x104,0x190,{281,281}}, + {0,0,0,0,0,0,0,0x3C0,0x459,{2303,5766}}, + {0,0,0,0,0,0,0x4,0x111,0x42,{5767,5767}}, + {0,0,0,0,0,0,0,0x2D0,0x2BC,{5768,5769}}, + {0,0,0,0,0,0,0xE,0x4DA8,0x5592,{5770,5771}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5772,5773}}, + {0,0,0,0,0,0,0x8,0x9C40,0x4F74,{898,4032}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{757,758}}, + {0,0,0,0,0,0,0x6,0x1360,0x2C9,{5774,5775}}, + {0,0,0,0,0,0,0x6,0x134C,0x2D0,{5776,5775}}, + {0,0,0,0,0,0,0x6,0x134C,0x2C9,{5777,5775}}, + {0,0,0,0,0,0,0xA,0x11B5,0x15FA,{5778,5779}}, + {0,0,0,0,0,0,0xA,0x910,0xAA0,{5780,5781}}, + {0,0,0,0,0,0,0x6,0x1165,0x244,{5782,5783}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{5784,5785}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5786,5787}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{5788,5789}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{5790,5785}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2D0,{5791,5792}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2C9,{5793,5792}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2D0,{5794,5792}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2D0,{5795,5796}}, + {0,0,0,0,0,0,0x8,0x10A4,0x10F4,{5797,5798}}, + {0,0,0,0,0,0,0x8,0xEE5,0x10AA,{5799,5800}}, + {0,0,0,0,0,0,0x8,0x1205,0x87D,{5801,5802}}, + {0,0,0,0,0,0,0x8,0x4D1,0x64,{5803,5804}}, + {0,0,0,0,0,0,0x8,0x4D1,0x64,{5803,5805}}, + {0,0,0,0,0,0,0x8,0x4D1,0x64,{5806,5805}}, + {0,0,0,0,0,0,0x8,0x11A8,0x10F4,{5432,5807}}, + {0,0,0,0,0,0,0x8,0xE9C,0x10E6,{5432,5808}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{5809,5810}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{5811,5810}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{5812,5813}}, + {0,0,0,0,0,0,0xE,0x9C40,0x182,{5814,5815}}, + {0,0,0,0,0,0,0x6,0x9C40,0x118,{5816,5817}}, + {0,0,0,0,0,0,0x8,0x172D,0x23D,{5818,5819}}, + {0,0,0,0,0,0,0x8,0x1720,0x258,{5820,5821}}, + {0,0,0,0,0,0,0x8,0x16EA,0x5D,{5822,5823}}, + {0,0,0,0,0,0,0x2,0x4642,0x52C9,{5824,5825}}, + {0,0,0,0,0,0,0x2,0x9C40,0x3764,{5826,5827}}, + {0,0,0,0,0,0,0x2,0x9C40,0x71,{5828,5829}}, + {0,0,0,0,0,0,0x8,0x47CC,0x151E,{5830,5831}}, + {0,0,0,0,0,0,0x6,0x9C40,0x375D,{5832,5833}}, + {0,0,0,0,0,0,0,0x9C40,0x1129,{5834,5835}}, + {0,0,0,0,0,0,0x8,0x4628,0x5376,{5836,5837}}, + {0,0,0,0,0,0,0x8,0x3868,0xC1,{5838,5839}}, + {0,0,0,0,0,0,0x8,0x9C40,0x2954,{5840,5841}}, + {0,0,0,0,0,0,0x6,0x39B5,0x436C,{5842,5843}}, + {0,0,0,0,0,0,0xC,0x9C40,0xD5,{5844,5845}}, + {0,0,0,0,0,0,0,0x9C40,0x13CA,{5846,5847}}, + {0,0,0,0,0,0,0x8,0x9C40,0x244,{5848,5849}}, + {0,0,0,0,0,0,0x6,0x9C40,0x542,{5850,5851}}, + {0,0,0,0,0,0,0x8,0x3311,0x21CD,{5852,5853}}, + {0,0,0,0,0,0,0xA,0x9C40,0xDC,{5854,5855}}, + {0,0,0,0,0,0,0x6,0x9C40,0x1262,{5856,5857}}, + {0,0,0,0,0,0,0xA,0x9C40,0x51A,{5858,5859}}, + {0,0,0,0,0,0,0x2,0x9C40,0x528,{5856,5860}}, + {0,0,0,0,0,0,0xE,0x9C40,0xC8,{5861,5862}}, + {0,0,0,0,0,0,0xE,0x9C40,0x11E,{5491,5863}}, + {0,0,0,0,0,0,0xE,0x9C40,0x190,{5491,5864}}, + {0,0,0,0,0,0,0xE,0x9C40,0x7E,{5493,5865}}, + {0,0,0,0,0,0,0xE,0x9C40,0x154,{5495,5866}}, + {0,0,0,0,0,0,0,0x224C,0x1471,{1260,5503}}, + {0,0,0,0,0,0,0,0x1039,0x1456,{5867,5868}}, + {0,0,0,0,0,0,0x6,0x208D,0x82D,{5869,5870}}, + {0,0,0,0,0,0,0x6,0x208D,0x82D,{5871,5870}}, + {0,0,0,0,0,0,0x6,0x20B5,0x8B9,{5872,5870}}, + {0,0,0,0,0,0,0x6,0x20E4,0x855,{5873,5870}}, + {0,0,0,0,0,0,0,0x254A,0x1546,{984,5874}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5875,5876}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5877,5878}}, + {0,0,0,0,0,0,0x4,0x675,0xC1,{5879,5880}}, + {0,0,0,0,0,0,0x4,0xA92,0x64,{5881,5882}}, + {0,0,0,0,0,0,0x4,0x2DA0,0x5D,{5883,5884}}, + {0,0,0,0,0,0,0x4,0x195D,0x460,{5885,5886}}, + {0,0,0,0,0,0,0xA,0x9C40,0x49,{5887,5888}}, + {0,0,0,0,0,0,0xA,0x9C40,0x50,{5889,5890}}, + {0,0,0,0,0,0,0x6,0x9C40,0x71,{5891,5892}}, + {0,0,0,0,0,0,0x6,0x9C40,0x71,{5893,5892}}, + {0,0,0,0,0,0,0x2,0x9C40,0x71,{5894,5895}}, + {0,0,0,0,0,0,0x2,0x9C40,0x71,{5896,5895}}, + {0,0,0,0,0,0,0xA,0x9C40,0x71,{5897,5898}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5899,5900}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{5536,5901}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{5902,5901}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5903,5901}}, + {0,0,0,0,0,0,0xC,0x9C40,0x175,{5430,5904}}, + {0,0,0,0,0,0,0xC,0x9C40,0x265,{5905,5906}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{5907,5908}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{5542,5909}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{5910,5911}}, + {0,0,0,0,0,0,0xE,0x9C40,0x24A,{5912,5913}}, + {0,0,0,0,0,0,0xE,0x9C40,0x182,{5914,5915}}, + {0,0,0,0,0,0,0xC,0x9C40,0x258,{5916,5917}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2D6,{5918,5919}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2D6,{5524,5920}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2D6,{5921,5922}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{5923,5924}}, + {0,0,0,0,0,0,0xC,0x9C40,0x182,{5534,5925}}, + {0,0,0,0,0,0,0xE,0x9C40,0x161,{5926,5927}}, + {0,0,0,0,0,0,0x6,0x9C40,0x56A,{5928,5929}}, + {0,0,0,0,0,0,0x6,0x9C40,0x56A,{5930,5931}}, + {0,0,0,0,0,0,0xE,0xE4C,0x1108,{5932,2565}}, + {0,0,0,0,0,0,0xE,0x9C40,0xE38,{5933,5934}}, + {0,0,0,0,0,0,0x6,0x9C40,0xAAD,{5434,5935}}, + {0,0,0,0,0,0,0xE,0x380A,0x426E,{5443,5936}}, + {0,0,0,0,0,0,0,0x2DD,0x56A,{5937,5938}}, + {0,0,0,0,0,0,0xA,0x9C40,0x1589,{5939,5940}}, + {0,0,0,0,0,0,0x6,0x9C40,0x139,{5941,5942}}, + {0,0,0,0,0,0,0,0x9C40,0x215C,{5943,5944}}, + {0,0,0,0,0,0,0xC,0x15BE,0x1F46,{5945,5946}}, + {0,0,0,0,0,0,0x2,0x9C40,0x64,{5551,5947}}, + {0,0,0,0,0,0,0x6,0x9C40,0x21EE,{5744,5944}}, + {0,0,0,0,0,0,0xE,0x4CA,0xABA,{5948,5949}}, + {0,0,0,0,0,0,0xA,0x966,0x564,{5950,5951}}, + {0,0,0,0,0,0,0xE,0x26C,0x2D6,{5952,5953}}, + {0,0,0,0,0,0,0xE,0x111,0x49,{755,5954}}, + {0,0,0,0,0,0,0xE,0x21C,0x5D,{651,5955}}, + {0,0,0,0,0,0,0xE,0x21C,0x5D,{651,5956}}, + {0,0,0,0,0,0,0xE,0x21C,0x5D,{651,5957}}, + {0,0,0,0,0,0,0xE,0x460,0xAE2,{5958,3895}}, + {0,0,0,0,0,0,0x8,0x9C40,0xDC,{5959,5960}}, + {0,0,0,0,0,0,0xE,0x1C62,0x217D,{5961,5962}}, + {0,0,0,0,0,0,0xE,0x9C40,0x4DFE,{5963,5964}}, + {0,0,0,0,0,0,0x8,0x1C62,0x21C0,{960,5965}}, + {0,0,0,0,0,0,0,0xFD,0x5D,{5966,1343}}, + {0,0,0,0,0,0,0x1,0xFD,0x5D,{5967,1343}}, + {0,0,0,0,0,0,0x1,0x125,0x5D,{5968,1343}}, + {0,0,0,0,0,0,0x1,0x3C6,0x5D,{5969,1343}}, + {0,0,0,0,0,0,0x1,0x97A,0x5D,{5970,5971}}, + {0,0,0,65,0,0,0xE,0x125,0x140,{270,271}}, + {0,0,0,20,0,0,0xC,0x73D,0x87D,{276,277}}, + {0,0,0,40,0,0,0xE,0x24A,0x190,{306,307}}, + {0,0,0,0,0x1,0,0x908,0x34F8,0x3F5,{2597,2598,2599,2600} }, + {0,0,0,0,0x1,0,0xB0A,0x1CE1,0x244,{2601,2602,2603,2604} }, + {0,0,0,0,0x1,0,0xE0E,0x2E39,0x460,{2605,2606,2607,2608} }, + {12,0,0,0,0x1,0,0xC0D,0x26C0,0x51A,{2609,2610,2611,2612} }, + {0,0,0,0,0x1,0,0xD0C,0x1CA5,0xDC,{332,333,334,335} }, + {0,0,0,0,0x1,0,0x100,0x1AFA,0xE2,{336,337,338,339} }, + {0,0,0,0,0x1,0,0x808,0x1309,0x139,{340,341,342,343} }, + {12,0,0,0,0x1,0,0x404,0x2795,0x71,{2613,2614,2615,2616} }, + {0,0,0,0,0x1,0,0x100,0x100A,0x500,{346,347,348,349} }, + {0,0,0,0,0x1,0,0xB0A,0x1FED,0x2579,{2617,2618,2619,2620} }, + {12,0,0,0,0x1,0,0x302,0x91D,0xABA,{350,351,2621,2622} }, + {0,0,0,0,0x1,0,0xB0A,0x23CE,0x2DD,{5972,5973,5974,3885} }, + {12,0,0,0,0x1,0,0x706,0x9C40,0x5D,{2627,2628,352,353} }, + {0,0,0,0,0x1,0,0xB0A,0x251,0x2DD,{354,355,356,357} }, + {0,0,0,0,0x1,0,0x504,0x175C,0x1575,{358,359,360,361} }, + {0,0,0,0,0x1,0,0xD0D,0x43E,0x4D1,{2629,362,2630,2631} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x6A,{2632,2633,2634,2635} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x104,{368,369,2636,2637} }, + {-12,0,0,0,0x1,0,0x908,0x9C40,0x71,{372,373,374,375} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x341,{2638,2639,2640,2641} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x488,{2642,2643,2644,2645} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x6A,{378,379,380,381} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x92,{382,383,384,385} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{386,387,388,389} }, + {0,0,0,0,0x1,0,0xB0A,0xE81,0xE9,{390,391,392,393} }, + {0,0,0,0,0x1,0,0xC0C,0x395E,0x146,{394,395,396,49} }, + {0,0,0,0,0x1,0,0xA0A,0x2411,0x189,{397,398,399,400} }, + {0,0,0,0,0x1,0,0x808,0x3930,0x146,{401,402,403,404} }, + {0,0,0,0,0x1,0,0x908,0x1165,0xE2,{405,406,407,408} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{2646,410,2647,162} }, + {0,0,0,0,0x1,0,0,0x9C40,0x64,{2648,2649,2650,2651} }, + {0,0,0,0,0x1,0,0x908,0x42AA,0xE2,{60,414,415,416} }, + {0,0,0,0,0x1,0,0x302,0xFCE,0xDC,{417,418,419,420} }, + {0,0,0,0,0x1,0,0x404,0x38B1,0x251,{421,422,423,424} }, + {0,0,0,0,0x1,0,0x606,0xAFD,0xE2,{425,426,426,427} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x99,{68,69,2652,2653} }, + {0,0,0,0,0x1,0,0x908,0x1F7C,0x5D,{70,71,2654,2655} }, + {0,0,0,0,0x1,0,0x706,0x1F11,0x5D,{793,71,2654,2655} }, + {0,0,0,0,0x1,0,0xA0A,0x1F32,0xDC,{2656,435,2657,437} }, + {0,0,0,0,0x1,0,0xA0A,0x1F39,0xE2,{434,435,5975,437} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x294,{75,76,2658,2659} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{2660,76,2658,2659} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{442,76,443,444} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x196,{445,446,447,448} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x599,{449,450,451,452} }, + {0,0,0,0,0x1,0,0xE0E,0x3E1,0x44C,{453,454,455,456} }, + {0,0,0,0,0x1,0,0xE0E,0xCBC,0x1090,{453,454,455,457} }, + {0,0,0,0,0x1,0,0x302,0x1ACC,0x1130,{89,90,458,459} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x190,{460,461,462,463} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x189,{464,465,93,94} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x57E,{2661,96,95,2662} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x599,{97,96,2663,2664} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x1ED,{2665,2666,2667,2668} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x2B5,{2669,2670,100,101} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x2DD,{2671,2672,2673,2674} }, + {0,0,0,0,0x1,0,0xB0B,0x2BC,0x2A1,{471,472,473,474} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xBA,{106,107,2675,2676} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xC1,{2677,2678,2675,2679} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x17C,{475,111,476,477} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x85,{2680,2681,2682,2683} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x64,{2684,2685,2686,2687} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{482,483,484,485} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xD5,{486,487,488,489} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x64,{490,491,492,493} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0xF6,{494,495,496,497} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x104,{124,498,499,500} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x236,{501,502,503,504} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x21C,{505,506,507,508} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x71,{509,2688,2689,2690} }, + {0,0,0,0,0x1,0,0x202,0x9C40,0x92,{513,514,515,516} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x7E,{517,518,519,520} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x175,{136,137,136,521} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{2691,2692,138,139} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{2691,2692,140,139} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xE2,{522,523,524,525} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{2691,2693,2694,144} }, + {0,0,0,0,0x1,0,0xE0F,0x9C40,0x2A1,{528,529,530,146} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x272,{531,532,533,534} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x279,{535,536,537,538} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x17C,{2695,2696,2697,2698} }, + {0,0,0,0,0x1,0,0x404,0x9C40,0x5D,{541,542,543,544} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x8C,{545,546,547,548} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xF0,{2699,2700,157,158} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x6A,{2701,2702,159,2703} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{550,551,552,162} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x196,{553,554,555,556} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{557,558,559,560} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x92,{167,168,2704,2705} }, + {0,0,0,0,0x1,0,0x302,0x9C40,0x53C,{561,562,563,564} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x11E4,{171,172,565,566} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x495,{567,174,568,569} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x1179,{570,571,572,176} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x3EE,{2706,2707,2708,2709} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x42A,{2710,2711,179,180} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x398,{181,2711,2712,2713} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x182,{2714,184,2715,2716} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xA71,{2717,2718,2719,2720} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x141A,{577,578,579,580} }, + {0,0,0,0,0x1,0,0x908,0x1270,0x28C1,{2721,2722,189,190} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x58C,{2723,2724,2725,2726} }, + {0,0,0,0,0x1,0,0xF0E,0x33BE,0x578,{2727,2728,2729,2730} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x14D5,{2731,2732,2733,198} }, + {0,0,0,0,0x1,0,0x504,0x9C40,0xA99,{2734,2735,2736,2737} }, + {0,0,0,0,0x1,0,0x606,0x9C40,0x1324,{2738,2739,2740,200} }, + {0,0,0,0,0x1,0,0x100,0x3C28,0x2C9,{589,590,591,592} }, + {0,0,0,0,0x1,0,0,0x1C70,0x466,{593,594,595,596} }, + {0,0,0,0,0x1,0,0xE0E,0xDE1,0x43E,{597,598,599,600} }, + {0,0,0,0,0x1,0,0x908,0x362A,0x40DE,{207,601,602,603} }, + {0,0,0,0,0x1,0,0xD0C,0x4D8,0x5AD,{209,210,604,605} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x5D,{211,212,606,607} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x29A,{213,214,608,609} }, + {0,0,0,0,0x1,0,0x606,0x9C40,0x64,{610,611,612,613} }, + {0,0,0,0,0x1,0,0x706,0xFD5,0x585,{217,218,2741,2742} }, + {0,0,0,0,0x1,0,0xB0A,0x26C,0x2EA,{614,615,219,220} }, + {0,0,0,0,0x1,0,0x100,0x4C4,0x57E,{616,617,221,222} }, + {0,0,0,0,0x1,0,0xB0A,0xA6,0x438,{2743,2744,2745,224} }, + {0,0,0,0,0x1,0,0x706,0x10ED,0x156E,{225,226,2746,2747} }, + {0,0,0,0,0x1,0,0xF0E,0xD3A,0x7D0,{2748,2749,2750,2751} }, + {0,0,0,0,0x1,0,0xF0E,0x78D,0x49C,{622,623,624,623} }, + {0,0,0,0,0x1,0,0xF0E,0xBCC,0,{2752,1133,2753,2754} }, + {0,0,0,0,0x1,0,0xF0E,0x5D5,0xA8C,{233,2755,2756,2757} }, + {0,0,0,0,0x1,0,0x505,0x3C0,0xCE,{2761,638,2762,2763} }, + {0,0,0,0,0x1,0,0xB0A,0x35C,0x3C6,{2764,242,2765,2766} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2BC,{2767,2768,2769,2768} }, + {0,0,0,0,0x1,0,0xE0E,0x230,0x92,{639,640,641,642} }, + {0,0,0,35,0,0,0x8,0x17C,0x1B8,{248,249}}, + {0,0,0,39,0x1,0,0x100,0x26C,0x2DD,{5976,5977,257,256} }, + {0,0,0,44,0x1,0,0x606,0x78,0x5D,{686,687,688,251} }, + {0,0,0,48,0x1,0,0xF0E,0x104,0x132,{252,253,2770,2771} }, + {0,0,0,58,0x1,0,0xF0E,0xF0,0x12C,{691,5978,254,255} }, + {0,0,0,60,0x1,0,0xF0E,0xFD,0x12C,{252,253,2772,2773} }, + {0,0,0,48,0x1,0,0x100,0x208,0x258,{2774,5977,256,257} }, + {0,0,0,43,0x1,0,0xB0A,0xAD,0xC1,{258,259,258,259} }, + {0,0,0,49,0x1,0,0x100,0x201,0x258,{2774,5977,256,256} }, + {0,0,0,43,0x1,0,0xB0A,0xA6,0xAD,{258,2776,258,2776} }, + {0,0,0,51,0x1,0,0x100,0x201,0x258,{2774,5977,256,256} }, + {0,0,0,43,0x1,0,0xB0A,0x701,0x819,{261,262,261,2777} }, + {0,0,0,54,0x1,0,0x100,0x1FA,0x251,{2774,5977,256,256} }, + {0,0,0,57,0x1,0,0x100,0x1FA,0x251,{2774,5977,256,256} }, + {0,0,0,72,0x1,0,0xE0E,0x625,0x74A,{715,716,717,718} }, + {0,0,0,60,0x1,0,0x100,0x1FA,0x251,{2774,5977,256,256} }, + {0,0,0,70,0x1,0,0x706,0xB68,0xD76,{5979,5980,5981,2781} }, + {0,0,0,60,0x1,0,0xE0E,0x3CD,0x47A,{703,704,705,706} }, + {0,0,0,36,0x1,0,0x706,0x481,0x549,{2778,2782,2783,2784} }, + {0,0,0,65,0x1,0,0,0x125,0x146,{2785,2786,2787,2788} }, + {0,0,0,84,0x1,0,0xE0E,0x549,0x3B2,{2789,2790,2791,2792} }, + {0,0,0,80,0x1,0,0x908,0xE9,0x104,{274,2793,2794,275} }, + {0,0,0,84,0x1,0,0xE0E,0x632,0x751,{2795,716,2796,718} }, + {0,0,0,35,0x1,0,0xD0C,0x556,0x62C,{2797,2528,2797,277} }, + {0,0,0,44,0x1,0,0x706,0x708,0x83A,{5979,5982,2780,2800} }, + {0,0,0,67,0x1,0,0x706,0xF0,0x111,{2801,2802,2803,2804} }, + {0,0,0,66,0x1,0,0x706,0x140,0x265,{2805,2806,2807,2808} }, + {0,0,0,59,0x1,0,0x706,0xA0,0x140,{282,283,2809,2810} }, + {0,0,0,51,0x1,0,0x706,0x17C,0x488,{2811,327,2811,2812} }, + {0,0,0,45,0x1,0,0x706,0x104,0x258,{2813,287,2813,2814} }, + {0,0,0,71,0x1,0,0xF0E,0x1B1,0x1E6,{2815,2327,2815,2816} }, + {0,0,0,60,0x1,0,0xF0E,0x118,0x5D,{290,291,2817,2818} }, + {0,0,0,58,0x1,0,0xF0E,0x1FA,0x251,{2819,295,2820,2821} }, + {0,0,0,53,0x1,0,0xF0E,0x1E6,0x23D,{2822,2823,2822,2824} }, + {0,0,0,64,0x1,0,0xF0E,0xDC,0xB4,{747,297,2825,2826} }, + {0,0,0,71,0x1,0,0xF0E,0x6A,0x78,{2827,2828,2829,2830} }, + {0,0,0,61,0x1,0,0xF0E,0x3DA,0x46D,{2831,2832,2833,2834} }, + {0,0,0,61,0x1,0,0xF0E,0x6D2,0x812,{2835,2836,2835,2837} }, + {0,0,0,48,0x1,0,0xD0C,0x118,0x146,{737,738,739,739} }, + {0,0,0,48,0x1,0,0xD0C,0x17C,0x146,{737,738,740,740} }, + {0,0,0,69,0x1,0,0x100,0x78,0x140,{310,309,310,2838} }, + {0,0,0,68,0x1,0,0x100,0x78,0x140,{310,311,310,2839} }, + {0,0,0,63,0x1,0,0x100,0x8C,0x1B1,{310,311,310,2839} }, + {0,0,0,74,0x1,0,0x908,0x38A,0x3B9,{2840,2841,2842,2843} }, + {0,0,0,60,0x1,0,0xB0A,0x416,0x460,{2844,2845,2846,2847} }, + {0,0,0,80,0x1,0,0x908,0xD5,0xF0,{316,2848,316,2849} }, + {0,0,0,64,0x1,0,0x908,0x8E8,0xAE2,{318,2850,2851,2852} }, + {0,0,0,69,0x1,0,0xF0E,0x78,0x56,{2853,2854,2853,2855} }, + {0,0,0,55,0x1,0,0xF0E,0x5DC,0x244,{323,748,749,750} }, + {0,0,0,75,0x1,0,0xA0B,0x618,0x3AC,{2856,2857,2858,2859} }, + {0,0,0,68,0x1,0,0x908,0x78,0x140,{2860,309,2860,2838} }, + {0,0,0,48,0x1,0,0x706,0x190,0x495,{326,327,326,2812} }, + {0,0,0,53,0x1,0,0x706,0x244,0x8AC,{2861,2862,2861,2862} }, + {0,0,0,0,0,0,0x6,0x209A,0x898,{904,5983}}, + {0,0,0,0,0,0,0x6,0x209A,0x884,{5984,5985}}, + {0,0,0,0,0,0,0x8,0xEBD,0x64,{5986,5987}}, + {0,0,0,0,0,0,0x6,0x20A1,0x898,{5988,5330}}, + {0,0,0,0,0,0,0x6,0x1255,0x5D,{5989,5990}}, + {0,0,0,0,0,0,0xF,0x1CAC,0x8C,{5991,5992}}, + {0,0,0,0,0,0,0xA,0xDB2,0x85,{5993,5994}}, + {0,0,0,0,0,0,0x6,0x20A1,0x898,{904,5995}}, + {0,0,0,0,0,0,0x8,0xEB6,0x1122,{5996,5997}}, + {0,0,0,0,0,0,0x8,0x2321,0x14E2,{5998,5999}}, + {0,0,0,0,0,0,0,0x4A2,0x5D,{6000,6001}}, + {0,0,0,0,0,0,0,0x203D,0x157C,{6002,3908}}, + {0,0,0,0,0,0,0xA,0xE4C,0x110E,{6003,6004}}, + {0,0,0,0,0,0,0xE,0xCE,0xE2,{6005,6006}}, + {0,0,0,0,0,0,0x4,0x9C40,0x1B4A,{6007,6008}}, + {0,0,0,0,0,0,0,0x4B0,0x57E,{6009,6010}}, + {0,0,0,0,0,0,0x9,0x9C40,0x3A41,{6011,6012}}, + {0,0,0,0,0,0,0x9,0x9C40,0x3BC4,{6013,6014}}, + {0,0,0,0,0,0,0xE,0x9C40,0x466,{6015,6016}}, + {0,0,0,0,0,0,0x3,0x9C40,0x5D,{6017,6018}}, + {0,0,0,0,0,0,0xE,0x9C40,0xDC,{6019,6020}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{5653,6021}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{6022,6023}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{6024,6025}}, + {0,0,0,0,0,0,0,0x884,0x58C,{6026,6027}}, + {0,0,0,0,0,0,0xA,0x3965,0x2B69,{6028,6029}}, + {0,0,0,0,0,0,0xE,0x2AB5,0x42ED,{6030,6031}}, + {0,0,0,0,0,0,0xA,0x995,0xE2,{6032,6033}}, + {0,0,0,0,0,0,0xA,0xE2A,0x10ED,{6034,2931}}, + {0,0,0,0,0,0,0x8,0x9C40,0x182,{6035,6036}}, + {0,0,0,0,0,0,0x8,0x9C40,0xD5,{6037,6038}}, + {0,0,0,0,0,0,0x8,0x9C40,0xD5,{6039,6040}}, + {0,0,0,0,0,0,0xA,0x2496,0xE2,{1230,6041}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{6042,6043}}, + {0,0,0,0,0,0,0x8,0x9C40,0x369C,{6044,6045}}, + {0,0,0,0,0,0,0xA,0x9C40,0x7E,{6046,6047}}, + {0,0,0,0,0,0,0x6,0x64D,0x578,{5989,6048}}, + {0,0,0,0,0,0,0,0x1291,0x29C5,{6049,6050}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6051,1025}}, + {0,0,0,0,0,0,0x8,0x9C40,0x251,{6052,6053}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2F8,{6054,6055}}, + {0,0,0,0,0,0,0xE,0x9C40,0x305,{6056,6055}}, + {0,0,0,0,0,0,0,0x9C40,0x47A,{6057,6058}}, + {0,0,0,0,0,0,0x1,0x7BC,0x2C2,{6059,6060}}, + {0,0,0,0,0,0,0x6,0x9C40,0x535,{6061,6062}}, + {0,0,0,0,0,0,0x6,0x8DA,0x571,{6063,6064}}, + {0,0,0,0,0,0,0xC,0x9C40,0x14BA,{6065,6066}}, + {0,0,0,0,0,0,0,0x93E,0xABA,{6067,6068}}, + {0,0,0,0,0,0,0x6,0x9C40,0x52E,{6069,6070}}, + {0,0,0,0,0,0,0x6,0x9C40,0x52E,{6071,6072}}, + {0,0,0,0,0,0,0x6,0x9C40,0x909,{6073,6074}}, + {0,0,0,0,0,0,0x6,0x9C40,0x53C,{6075,6062}}, + {0,0,0,0,0,0,0,0x9C40,0x474,{6076,6077}}, + {0,0,0,0,0,0,0,0x9C40,0x2C9,{6078,6079}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{6080,6081}}, + {0,0,0,0,0,0,0,0x3A5,0x2E4,{6082,6083}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{6084,6085}}, + {0,0,0,0,0,0,0xE,0x9C40,0x8C,{6086,6087}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2D0,{6088,6089}}, + {0,0,0,0,0,0,0xE,0x9C40,0x8C,{6090,6091}}, + {0,0,0,0,0,0,0xC,0x9C40,0x71,{6092,6093}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6094,6095}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{6096,6097}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{6098,6097}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6099,6100}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6099,6101}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6102,6103}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6104,6105}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6104,6101}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6102,6106}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6107,6108}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{6109,6110}}, + {0,0,0,0,0,0,0xB,0x9C40,0x92,{6111,6112}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{6113,6114}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{6115,6116}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{6117,6114}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{6118,6119}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{6120,6121}}, + {0,0,0,0,0,0,0xD,0x9C40,0x47A,{6122,6123}}, + {0,0,0,0,0,0,0x7,0x9C40,0x50,{6124,6125}}, + {0,0,0,0,0,0,0x8,0x462E,0xE2,{6126,6127}}, + {0,0,0,0,0,0,0x8,0x47B1,0xE2,{6128,6129}}, + {0,0,0,0,0,0,0x6,0x10A,0x64,{6130,6131}}, + {0,0,0,0,0,0,0xA,0x9C40,0x92,{6132,6133}}, + {0,0,0,0,0,0,0xA,0x9C40,0xDC,{6134,6135}}, + {0,0,0,0,0,0,0xF,0x9C40,0x92,{6136,6137}}, + {0,0,0,0,0,0,0xD,0x9C40,0x17C,{6138,6139}}, + {0,0,0,0,0,0,0xC,0x9C40,0xD5,{6140,6141}}, + {0,0,0,0,0,0,0x5,0x9C40,0xD2D,{6142,6143}}, + {0,0,0,0,0,0,0,0x9C40,0x1D9,{6144,6145}}, + {0,0,0,0,0,0,0x8,0x9C40,0xD5,{6146,6147}}, + {0,0,0,0,0,0,0x8,0x9C40,0xABA,{6148,6149}}, + {0,0,0,0,0,0,0x6,0x9C40,0x44B9,{6150,6151}}, + {0,0,0,0,0,0,0xE,0x9C40,0x182,{6152,6153}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{6154,6155}}, + {0,0,0,0,0,0,0xA,0x9C40,0x40F9,{6156,6157}}, + {0,0,0,0,0,0,0xA,0x9C40,0x8B9,{6158,6159}}, + {0,0,0,0,0,0,0x6,0x9C40,0x521,{6160,6161}}, + {0,0,0,0,0,0,0,0x9C40,0x1546,{6162,6163}}, + {0,0,0,0,0,0,0x6,0x9C40,0x891,{6164,6165}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2281,{6166,6167}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2260,{6168,6169}}, + {0,0,0,0,0,0,0,0x9C40,0x2266,{6170,6171}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{6172,6173}}, + {0,0,0,0,0,0,0,0x256C,0x1596,{6174,6175}}, + {0,0,0,0,0,0,0x4,0x9C40,0x5D,{6176,6177}}, + {0,0,0,0,0,0,0,0x29B1,0xE2,{6174,6178}}, + {0,0,0,0,0,0,0x8,0x924,0xAE2,{6179,6180}}, + {0,0,0,0,0,0,0xA,0xE59,0x110E,{6181,6182}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{6183,6184}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{6054,6185}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6186,6101}}, + {0,0,0,0,0,0,0xC,0x8E1,0xAA0,{6187,6188}}, + {0,0,0,0,0,0,0xC,0x14D,0x182,{6189,6190}}, + {0,0,0,0,0,0,0,0x931,0xAAD,{6191,6192}}, + {0,0,0,0,0,0,0,0x11E,0x146,{6193,6194}}, + {0,0,0,0,0,0,0,0xE38,0x10E6,{6195,6196}}, + {0,0,0,0,0,0,0xE,0xE88,0x107C,{6197,6198}}, + {0,0,0,0,0,0,0,0xE74,0x1096,{6199,6200}}, + {0,0,0,0,0,0,0xA,0xBCC,0x5D,{6201,6202}}, + {0,0,0,0,0,0,0,0x319,0x4CA,{6203,6204}}, + {0,0,0,0,0,0,0x6,0x9C40,0x182,{6205,6206}}, + {0,0,0,0,0,0,0xA,0x9C40,0x2AD0,{6201,6207}}, + {0,0,0,0,0,0,0xE,0x111,0x50,{6208,6209}}, + {0,0,0,0,0,0,0x8,0x9C40,0x8C,{6210,6211}}, + {0,0,0,0,0,0,0x8,0x9C40,0x8C,{6212,6213}}, + {0,0,0,0,0,0,0xA,0x9C40,0x2AFE,{6201,6214}}, + {0,0,0,0,0,0,0xA,0x9C40,0x2DD,{6215,6216}}, + {0,0,0,0,0x4,0,0,0x6,0,{6217,6217}}, + {0,0,0,46,0,0,0,0xDC,0x5D,{693,1343}}, + {0,0,0,47,0,0,0x6,0x3CD,0xC1,{6218,6219}}, + {0,0,0,64,0,0,0xE,0x78,0x85,{6220,6221}}, + {0,0,0,40,0,0,0xE,0x154,0x189,{6222,6223}}, + {0,0,0,48,0,0,0xE,0x64,0x5D,{6224,6225}}, + {0,0,0,48,0,0,0xE,0x11E,0x146,{929,6226}}, + {0,0,0,46,0,0,0x1,0x1D9,0x229,{6227,6228}}, + {0,0,0,111,0,0,0xE,0xD5,0xF0,{6229,6230}}, + {0,0,0,49,0,0,0x1,0x1D2,0x229,{6227,6231}}, + {0,0,0,56,0,0,0xE,0x85,0x85,{6232,6233}}, + {0,0,0,52,0,0,0x1,0x208,0x258,{6227,6234}}, + {0,0,0,96,0,0,0xE,0x542,0x640,{6235,6236}}, + {0,0,0,54,0,0,0x1,0x208,0x258,{6227,6234}}, + {0,0,0,57,0,0,0x1,0x3CD,0x3DA,{6237,6238}}, + {0,0,0,82,0,0,0xE,0x62C,0x73D,{6239,6240}}, + {0,0,0,60,0,0,0x1,0x201,0x258,{6227,6234}}, + {0,0,0,60,0,0,0xE,0x744,0x884,{6241,6242}}, + {0,0,0,92,0,0,0xE,0x3C0,0x625,{6243,6244}}, + {0,0,0,60,0,0,0xE,0xB4,0xC1,{6245,6246}}, + {0,0,0,58,0,0,0x4,0xC1,0x24A,{6247,6248}}, + {0,0,0,22,0,0,0xE,0x924,0xAA0,{6249,6250}}, + {0,0,0,60,0,0,0xE,0x73D,0x85C,{6241,6251}}, + {0,0,0,72,0,0,0,0x104,0xC1,{6252,6253}}, + {0,0,0,77,0,0,0,0xFD,0xC1,{6254,6255}}, + {0,0,0,70,0,0,0,0xCE,0xAD,{6256,6257}}, + {0,0,0,75,0,0,0,0xAD,0xAD,{6258,6259}}, + {0,0,0,69,0,0,0,0x196,0x118,{6260,6261}}, + {0,0,0,59,0,0,0xC,0x17C,0x1B8,{6262,6263}}, + {0,0,0,48,0,0,0xC,0x175,0x6A,{6264,6265}}, + {0,0,0,89,0,0,0,0x1B1,0x1F4,{6266,6267}}, + {0,0,0,84,0,0,0,0x326,0x1F4,{6266,6268}}, + {0,0,0,33,0,0,0xE,0xF0,0x92,{6269,6270}}, + {0,0,0,55,0,0,0xE,0xDC,0xAD,{296,6271}}, + {0,0,0,58,0,0,0xC,0x208,0x23D,{6272,6273}}, + {0,0,0,52,0,0,0xC,0x208,0x23D,{6274,6273}}, + {0,0,0,57,0,0,0xE,0xA6,0x92,{6275,6276}}, + {0,0,0,57,0,0,0xE,0xF0,0xE9,{6275,6277}}, + {0,0,0,85,0,0,0x6,0xDC,0xF6,{6278,6279}}, + {0,0,0,68,0,0,0x6,0xAD,0xC1,{6280,6281}}, + {0,0,0,61,0,0,0x6,0xDC,0xF6,{6280,6281}}, + {0,0,0,64,0,0,0,0x154,0x2C2,{6282,6283}}, + {0,0,0,44,0,0,0,0x438,0x46D,{6282,6284}}, + {0,0,0,100,0,0,0xA,0xC1,0x5D,{6285,6286}}, + {0,0,0,100,0,0,0xA,0x319,0x64,{6287,6288}}, + {0,0,0,0,0x4,0,0,0x6,0,{1340,1340}}, + {0,0,0,0,0,0,0x6,0x11B5,0x862,{2532,2533}}, + {0,0,0,0,0,0,0,0x3818,0x460,{902,1373}}, + {0,0,0,0,0,0,0xE,0xF0D,0x15B1,{6289,6290}}, + {0,0,0,0,0,0,0xA,0xDFC,0x85,{5632,6291}}, + {0,0,0,0,0,0,0x8,0x1219,0x891,{633,962}}, + {0,0,0,0,0,0,0x8,0x1C62,0x21C0,{960,6292}}, + {0,0,0,0,0,0,0x8,0x3340,0x21DA,{633,2593}}, + {0,0,0,0,0,0,0xA,0x1194,0x1518,{6293,6294}}, + {0,0,0,0,0,0,0xE,0x1BE,0x592,{6295,6296}}, + {0,0,0,0,0,0,0x8,0x2349,0x2975,{6297,6298}}, + {0,0,0,0,0,0,0,0x1205,0x88A,{6299,5646}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{1068,6300}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{4059,6301}}, + {0,0,0,0,0,0,0x9,0x9C40,0x208,{6302,6303}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{4059,6304}}, + {0,0,0,0,0,0,0xE,0x9C40,0x64,{1268,6305}}, + {0,0,0,0,0,0,0xA,0x9C40,0xF6,{5655,6306}}, + {0,0,0,0,0,0,0xC,0x9C40,0x56,{6307,5658}}, + {0,0,0,0,0,0,0xA,0xE45,0x1108,{6308,2565}}, + {0,0,0,0,0,0,0,0xE1D,0x10CC,{6309,2565}}, + {0,0,0,0,0,0,0xE,0x1672,0x10FA,{6310,6311}}, + {0,0,0,0,0,0,0,0x92A,0xAE2,{5660,6312}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{850,6313}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{2543,6314}}, + {0,0,0,0,0,0,0xA,0x10F4,0x5D,{6315,5667}}, + {0,0,0,0,0,0,0,0xE74,0x92,{6316,853}}, + {0,0,0,0,0,0,0xE,0x9C40,0xA0,{1022,6317}}, + {0,0,0,0,0,0,0x6,0xE74,0x1144,{6318,6319}}, + {0,0,0,0,0,0,0,0x48E,0x182,{6320,6321}}, + {0,0,0,0,0,0,0xA,0x9C40,0x244,{6322,6323}}, + {0,0,0,0,0,0,0xE,0x9C40,0xF0,{6324,6325}}, + {0,0,0,0,0,0,0,0x394A,0x5D,{6326,6327}}, + {0,0,0,0,0,0,0,0x37D5,0x56,{6057,6328}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{6329,6330}}, + {0,0,0,0,0,0,0x6,0x9C40,0x51A,{1116,4463}}, + {0,0,0,0,0,0,0xE,0x9C40,0x1AA,{6331,6332}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2AE,{6333,6334}}, + {0,0,0,0,0,0,0xE,0x780,0x891,{670,6335}}, + {0,0,0,0,0,0,0xE,0x9C40,0x32D,{5683,6336}}, + {0,0,0,0,0,0,0xE,0x9C40,0x88A,{5757,6337}}, + {0,0,0,0,0,0,0xC,0x9C40,0x56,{6338,6339}}, + {0,0,0,0,0,0,0,0x9C40,0x64,{6340,6341}}, + {0,0,0,0,0,0,0x4,0x2350,0x2B05,{6342,6343}}, + {0,0,0,0,0,0,0x6,0x161C,0xA5D,{5690,6344}}, + {0,0,0,0,0,0,0,0x280,0x2D0,{6345,6346}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1123,6347}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1297,6348}}, + {0,0,0,0,0,0,0xE,0x9C40,0x1BE,{6349,6350}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{3904,6351}}, + {0,0,0,0,0,0,0xC,0x9C40,0x6A,{1298,6352}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{6353,6354}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{5698,6355}}, + {0,0,0,0,0,0,0xA,0x9C40,0x49,{2543,6356}}, + {0,0,0,0,0,0,0xA,0x9C40,0x56,{5701,6357}}, + {0,0,0,0,0,0,0xA,0xECA,0x64,{1280,6358}}, + {0,0,0,0,0,0,0xA,0x9C40,0x56,{6359,6360}}, + {0,0,0,0,0,0,0xE,0xECA,0x5D,{6361,6362}}, + {0,0,0,0,0,0,0xA,0x9C40,0x71,{6363,6364}}, + {0,0,0,0,0,0,0x2,0x9C40,0x56,{1241,6365}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{6366,6367}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{1140,6368}}, + {0,0,0,0,0,0,0xA,0x9C40,0x58C,{4118,6369}}, + {0,0,0,0,0,0,0x7,0x9C40,0x17C,{2575,6370}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{6371,6372}}, + {0,0,0,0,0,0,0xA,0x9C40,0x58C,{4118,6373}}, + {0,0,0,0,0,0,0x6,0x189,0x175,{6374,6375}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{1144,6376}}, + {0,0,0,0,0,0,0xD,0x9C40,0x47A,{6377,6378}}, + {0,0,0,0,0,0,0xA,0xEE5,0x5D,{5720,6379}}, + {0,0,0,0,0,0,0x8,0x169A,0xAC1,{6380,6381}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{6382,6383}}, + {0,0,0,0,0,0,0x4,0x9C40,0xBA,{6384,6385}}, + {0,0,0,0,0,0,0x8,0x32D,0x2C2,{5726,6386}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{5728,6387}}, + {0,0,0,0,0,0,0x4,0x9C40,0x2AE,{6388,6389}}, + {0,0,0,0,0,0,0xA,0x47B8,0xA85,{6390,6391}}, + {0,0,0,0,0,0,0xA,0x9C40,0xE9,{6392,6393}}, + {0,0,0,0,0,0,0x6,0x9C40,0x1A89,{6394,6395}}, + {0,0,0,0,0,0,0x8,0x9C40,0x459,{6396,6397}}, + {0,0,0,0,0,0,0x4,0x8C0,0xA42,{6398,6399}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5657,6400}}, + {0,0,0,0,0,0,0x3,0x9C40,0x3CCE,{6401,6402}}, + {0,0,0,0,0,0,0x2,0x916,0x571,{2873,6403}}, + {0,0,0,0,0,0,0x2,0x39C9,0x5D,{6404,6405}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{6406,6407}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6408,6409}}, + {0,0,0,0,0,0,0x2,0x9C40,0x1E8C,{6410,6411}}, + {0,0,0,0,0,0,0x6,0x9C40,0x1A1E,{6412,6413}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2B0C,{6414,6415}}, + {0,0,0,0,0,0,0x4,0x47B8,0x55D5,{6416,6417}}, + {0,0,0,0,0,0,0x2,0x466,0x506,{6418,6419}}, + {0,0,0,0,0,0,0xE,0x9C40,0x4BA0,{6420,6421}}, + {0,0,0,0,0,0,0x6,0x9C40,0x44B2,{6422,6423}}, + {0,0,0,0,0,0,0,0x9C40,0xF28,{984,6424}}, + {0,0,0,0,0,0,0x8,0xB2C,0xD76,{4030,6425}}, + {0,0,0,0,0,0,0x6,0x9C40,0x521,{2532,6426}}, + {0,0,0,0,0,0,0,0x9C40,0x8C,{6427,6428}}, + {0,0,0,0,0,0,0,0x9C40,0x100A,{1163,6429}}, + {0,0,0,0,0,0,0x2,0x9C40,0x56,{3749,6430}}, + {0,0,0,0,0,0,0xA,0x9C40,0x80C,{6431,6432}}, + {0,0,0,0,0,0,0xE,0x3DA,0x459,{6433,6434}}, + {0,0,0,0,0,0,0,0x729,0x87D,{6435,6436}}, + {0,0,0,0,0,0,0,0xC8,0x2D6,{6437,6438}}, + {0,0,0,0,0,0,0xA,0x48E,0x556,{6439,6440}}, + {0,0,0,0,0,0,0x1,0x104,0x190,{281,6441}}, + {0,0,0,0,0,0,0x5,0x146,0x17C,{1170,6442}}, + {0,0,0,0,0,0,0xA,0x196,0x2EA,{6443,6444}}, + {0,0,0,0,0,0,0xE,0x3E8,0xADC,{6445,934}}, + {0,0,0,0,0,0,0x6,0x111,0x49,{6446,6447}}, + {0,0,0,0,0,0,0x2,0x2C9,0x2BC,{5768,6448}}, + {0,0,0,0,0,0,0x4,0x189,0x16E,{6449,6450}}, + {0,0,0,0,0,0,0x2,0x9C40,0xF50,{6451,6452}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6453,6454}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{757,6455}}, + {0,0,0,0,0,0,0xE,0x4A9,0x585,{6456,6457}}, + {0,0,0,0,0,0,0xA,0x40E5,0x2D6,{6458,6459}}, + {0,0,0,0,0,0,0x8,0x1F54,0x2C2,{6460,6461}}, + {0,0,0,0,0,0,0xA,0x4711,0x189,{6462,6463}}, + {0,0,0,0,0,0,0x4,0x38AA,0x251,{6464,6465}}, + {0,0,0,0,0,0,0,0x1F2C,0x64,{6466,6467}}, + {0,0,0,0,0,0,0,0x1101,0x92,{6468,6469}}, + {0,0,0,0,0,0,0x6,0x11F1,0xE2,{6470,6471}}, + {0,0,0,0,0,0,0xA,0x21CD,0x175,{6472,6473}}, + {0,0,0,0,0,0,0x4,0xE45,0x89E,{6474,6475}}, + {0,0,0,0,0,0,0x2,0x73D,0x89E,{5434,6476}}, + {0,0,0,0,0,0,0x2,0x7FE,0xACE,{6477,6478}}, + {0,0,0,0,0,0,0,0x23CE,0x2DD,{6479,21}}, + {0,0,0,0,0,0,0,0x46D,0xE2,{6480,6481}}, + {0,0,0,0,0,0,0,0x265,0x2D0,{6482,25}}, + {0,0,0,0,0,0,0x8,0x229C,0x2968,{6483,6484}}, + {0,0,0,0,0,0,0,0x876,0x571,{6485,6486}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6487,6488}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6489,6490}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6491,6492}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6493,6494}}, + {0,0,0,0,0,0,0,0x9C40,0x49C,{6495,1058}}, + {0,0,0,0,0,0,0x6,0x9C40,0x481,{6496,6497}}, + {0,0,0,0,0,0,0xE,0x9C40,0x24A,{6498,6499}}, + {0,0,0,0,0,0,0,0x9C40,0x46D,{6500,6501}}, + {0,0,0,0,0,0,0xA,0x1220,0xE2,{6502,6503}}, + {0,0,0,0,0,0,0xE,0x1158,0x17C,{6504,6505}}, + {0,0,0,0,0,0,0x2,0x11F1,0xE2,{6506,6503}}, + {0,0,0,0,0,0,0x8,0x909,0x182,{6507,6508}}, + {0,0,0,0,0,0,0x6,0x91D,0x71,{6509,6510}}, + {0,0,50,0,0,0,0x8,0x9C40,0x5D,{6511,6512}}, + {0,0,20,0,0,0,0xC,0x25DD,0x236,{6513,6514}}, + {0,0,0,0,0,0,0,0x37DC,0x5D,{6515,6516}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5877,6517}}, + {0,0,0,0,0,0,0xA,0x9C40,0x146,{6518,6519}}, + {0,0,0,0,0,0,0xA,0x9C40,0x14D,{6520,6519}}, + {0,0,0,0,0,0,0xA,0x2184,0x5D,{5887,6521}}, + {0,0,0,0,0,0,0xC,0x9C40,0x8C,{6522,6523}}, + {0,0,0,0,0,0,0xC,0x9C40,0x8C,{6524,6523}}, + {0,0,0,0,0,0,0xA,0x9C40,0x8C,{6525,6523}}, + {0,0,0,0,0,0,0x8,0x9C40,0x56,{6526,6527}}, + {0,0,0,0,0,0,0xE,0x9C40,0x585,{6528,6529}}, + {0,0,0,0,0,0,0x8,0x9C40,0x272,{6530,6531}}, + {0,0,0,0,0,0,0xE,0x9C40,0x154,{5495,536}}, + {0,0,0,0,0,0,0xE,0x9C40,0x132,{6532,6533}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2C9,{6534,84}}, + {0,0,0,0,0,0,0,0x1CD4,0x10F4,{6535,6536}}, + {0,0,0,0,0,0,0,0xCD0,0x154D,{6537,6538}}, + {0,0,0,0,0,0,0,0xE81,0x1144,{6539,6540}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D5,{6054,6541}}, + {0,0,0,0,0,0,0xA,0x9C40,0x564,{6542,6543}}, + {0,0,0,0,0,0,0xC,0x9C40,0x58C,{6544,6545}}, + {0,0,0,0,0,0,0,0x9C40,0x146,{6546,6547}}, + {0,0,0,0,0,0,0,0x9C40,0x111,{6548,6549}}, + {0,0,0,0,0,0,0,0x9C40,0x111,{6550,6549}}, + {0,0,0,0,0,0,0x8,0x4BD,0x571,{6551,2417}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{6552,6553}}, + {0,0,0,0,0,0,0xC,0x9C40,0x182,{108,6554}}, + {0,0,0,0,0,0,0xC,0x9C40,0xE2,{6555,6556}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6557,6558}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2DD,{5921,6559}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{6560,6553}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6561,6562}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2DD,{6563,6559}}, + {0,0,0,0,0,0,0x8,0x9C40,0xE2,{6564,6565}}, + {0,0,0,0,0,0,0x8,0x9C40,0x92,{6566,6567}}, + {0,0,0,0,0,0,0xA,0x9C40,0xDC,{6568,6565}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6569,6570}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5907,6571}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{6572,6573}}, + {0,0,0,0,0,0,0x4,0x9C40,0x146,{6574,6575}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{6576,6577}}, + {0,0,0,0,0,0,0x6,0x9C40,0x71,{6578,6579}}, + {0,0,0,0,0,0,0xC,0x9C40,0x99,{6580,6581}}, + {0,0,0,0,0,0,0,0x9C40,0xDC,{6582,6583}}, + {0,0,0,0,0,0,0x8,0x9C40,0xE9,{6584,6585}}, + {0,0,0,0,0,0,0x4,0x9C40,0x16E,{6586,536}}, + {0,0,0,0,0,0,0x4,0x9C40,0x175,{6587,536}}, + {0,0,0,0,0,0,0,0x9C40,0x182,{6588,6589}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6590,6591}}, + {0,0,0,0,0,0,0,0x9C40,0x56,{6592,6593}}, + {0,0,0,0,0,0,0,0x9C40,0xCE,{6594,158}}, + {0,0,0,0,0,0,0x6,0x9C40,0x92,{159,6595}}, + {0,0,0,0,0,0,0xA,0x9C40,0x6A,{6596,6597}}, + {0,0,0,0,0,0,0,0x9C40,0x10A,{6598,6549}}, + {0,0,0,0,0,0,0,0x9C40,0x2C9,{6599,6600}}, + {0,0,0,0,0,0,0xA,0x9C40,0x8C,{6601,6602}}, + {0,0,0,0,0,0,0xE,0x9C40,0x58C,{6603,170}}, + {0,0,0,0,0,0,0xA,0x9C40,0x1205,{6604,6605}}, + {0,0,0,0,0,0,0xC,0x9C40,0xDC,{6606,6607}}, + {0,0,0,0,0,0,0,0x9C40,0x1180,{6608,6609}}, + {0,0,-50,0,0,0,0x6,0x9C40,0x27EC,{6610,6611}}, + {0,0,0,0,0,0,0,0x2CC4,0x5F0,{6612,6613}}, + {0,0,0,0,0,0,0,0x9C40,0x10ED,{6614,6615}}, + {0,0,-20,0,0,0,0,0x9C40,0x189,{6616,6617}}, + {0,0,0,0,0,0,0xA,0x3756,0x23AD,{6618,6619}}, + {0,0,0,0,0,0,0,0x9C40,0xA42,{6620,6621}}, + {0,0,0,0,0,0,0x2,0x938,0xAD5,{6622,6623}}, + {0,0,0,0,0,0,0,0x9C40,0x4D8,{6624,6625}}, + {0,0,0,0,0,0,0,0x1B1C,0x564,{6626,6627}}, + {0,0,0,0,0,0,0xC,0x9C40,0x148C,{6628,6629}}, + {0,0,0,0,0,0,0xA,0x9C40,0x14F0,{6630,6631}}, + {0,0,0,0,0,0,0,0x9C40,0x71,{6632,6633}}, + {0,0,0,0,0,0,0,0x2B55,0x585,{6634,6635}}, + {0,0,0,0,0,0,0,0x1964,0x460,{6636,6637}}, + {0,0,0,0,0,0,0x4,0xDA5,0x140,{6638,6639}}, + {0,0,0,0,0,0,0x8,0x1A75,0x2155,{6640,6641}}, + {0,0,0,0,0,0,0xE,0x4A2,0x578,{6642,6643}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{6644,212}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{6645,212}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6646,6647}}, + {0,0,0,0,0,0,0x6,0x11D0,0x578,{6648,6649}}, + {0,0,0,0,0,0,0xE,0x15A,0x190,{6650,6651}}, + {0,0,0,0,0,0,0xE,0x4BD,0x578,{6652,6653}}, + {0,0,0,0,0,0,0x8,0x53C,0x8B9,{6654,6655}}, + {0,0,0,0,0,0,0,0x4DE,0x571,{6656,584}}, + {0,0,0,0,0,0,0x4,0xE59,0x110E,{6657,6658}}, + {0,0,0,0,0,0,0x4,0xA92,0x564,{6659,6660}}, + {0,0,0,0,0,0,0xE,0x6F4,0x5D,{6661,6662}}, + {0,0,0,0,0,0,0xE,0x320,0x2A8,{233,6663}}, + {0,0,0,0,0,0,0xE,0x28D,0x229,{6664,6665}}, + {0,0,0,0,0,0,0xE,0x2F3D,0x5D,{6666,6667}}, + {0,0,0,0,0,0,0xE,0x111,0x49,{6668,6669}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6670,6671}}, + {0,0,0,0,0,0,0xE,0x17C,0x42,{6672,6673}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2B5,{6674,6675}}, + {0,0,0,0,0,0,0xE,0x24A,0x5D,{6676,6677}}, + {0,0,40,0,0x4,0,0xD,0x6,0,{6678,1340}}, + {0,0,33,44,0,0,0,0x33A,0x46D,{693,6679}}, + {0,0,33,36,0,0,0,0x1CC6,0x189,{6680,6681}}, + {0,0,40,32,0,0,0xF,0x64,0x64,{6682,6683}}, + {0,0,50,60,0,0,0xE,0x118,0x146,{3633,3634}}, + {0,0,40,24,0,0,0xE,0x64,0,{4102,4103}}, + {0,0,50,60,0,0,0xE,0x7E,0x85,{6684,6685}}, + {0,0,50,44,0,0,0x5,0x189,0xC1,{6686,6686}}, + {0,0,40,44,0,0,0xA,0xAD,0xBA,{258,259}}, + {0,0,50,47,0,0,0x5,0x189,0xC1,{6687,6686}}, + {0,0,40,44,0,0,0xE,0xD5,0xAD,{296,297}}, + {0,0,50,50,0,0,0x5,0x189,0xC1,{6686,6686}}, + {0,0,40,44,0,0,0xE,0x125,0x146,{270,271}}, + {0,0,50,54,0,0,0x5,0x189,0xC1,{6686,6686}}, + {0,0,50,57,0,0,0x5,0x189,0xC1,{6686,6686}}, + {0,0,40,60,0,0,0xE,0x74A,0x884,{6688,6242}}, + {0,0,50,60,0,0,0x5,0x189,0xC1,{6686,6686}}, + {0,0,30,60,0,0,0xE,0x744,0x884,{6241,6242}}, + {0,0,45,60,0,0,0xE,0x74A,0x884,{6689,6242}}, + {0,0,30,60,0,0,0xE,0x722,0x855,{6690,6691}}, + {0,0,40,60,0,0,0xE,0xB4,0xC1,{6245,6246}}, + {0,0,40,60,0,0,0xE,0x73D,0x884,{6689,6692}}, + {0,0,40,58,0,0,0x4,0xC1,0x24A,{6247,6248}}, + {0,0,40,60,0,0,0xE,0x744,0x87D,{6689,6693}}, + {0,0,40,44,0,0,0xE,0x3C0,0x466,{6694,6695}}, + {0,0,20,60,0,0,0xE,0x73D,0x85C,{6241,6251}}, + {0,0,40,44,0,0,0x7,0xD5,0x146,{280,3645}}, + {0,0,40,44,0,0,0x7,0xD5,0x140,{280,281}}, + {0,0,40,44,0,0,0x7,0x64,0x6A,{326,3646}}, + {0,0,40,44,0,0,0x7,0x168,0x46D,{326,6696}}, + {0,0,40,44,0,0,0xF,0x208,0x258,{288,289}}, + {0,0,40,45,0,0,0xB,0x10A,0x11E,{6697,6698}}, + {0,0,40,33,0,0,0xB,0x140,0x154,{6697,6699}}, + {0,0,40,56,0,0,0x4,0x1FA,0x24A,{6247,6700}}, + {0,0,40,51,0,0,0x4,0x1FA,0x24A,{6247,6700}}, + {0,0,40,55,0,0,0xE,0xDC,0xAD,{296,6271}}, + {0,0,40,44,0,0,0xE,0x7E,0x56,{6701,6702}}, + {0,0,40,44,0,0,0xE,0x229,0x23D,{6703,6704}}, + {0,0,40,57,0,0,0xE,0xA6,0x92,{6275,6276}}, + {0,0,40,56,0,0,0xE,0xF0,0xE9,{6275,6277}}, + {0,0,40,68,0,0,0x1,0x78,0x140,{308,309}}, + {0,0,40,51,0,0,0x1,0x1FA,0x251,{308,6705}}, + {0,0,40,46,0,0,0x1,0x201,0x258,{308,6706}}, + {0,0,40,64,0,0,0,0x154,0x2C2,{6282,6283}}, + {0,0,40,44,0,0,0,0x438,0x46D,{6282,6284}}, + {0,0,40,44,0,0,0x8,0x1FA,0x251,{6707,6708}}, + {0,0,40,44,0,0,0x8,0xE7A,0x1129,{6709,6710}}, + {0,0,20,45,0,0,0xE,0xDC,0xAD,{296,297}}, + {0,0,50,0,0,0,0xC,0x25DD,0x236,{6513,6514}}, + {0,0,20,0,0,0,0xA,0x9C40,0x11E,{6711,6712}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2C9,{6713,6714}}, + {0,0,50,0,0,0,0xE,0x9C40,0x2DD,{5921,6559}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{6715,6562}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{6716,6717}}, + {0,0,0,0,0,0,0,0x9C40,0xC1,{6718,6719}}, + {0,0,-18,0,0,0,0x6,0x122D,0x8C0,{2532,4107}}, + {0,0,10,0,0,0,0x8,0x1AAA,0x21C6,{6720,6641}}, + {0,0,0,0,0,0,0xE,0x4A2,0x578,{6721,6643}}, + {0,0,30,0,0,0,0,0x3EE,0x46D,{6722,6723}}, + {0,0,0,0,0,0,0xE,0x6FA,0x5D,{6724,6725}}, + {0,0,20,45,0,0,0,0x1712,0x146,{6680,6681}}, + {0,0,40,45,0,0,0xD,0x9C40,0x7A8,{1262,1263}}, + {0,0,60,60,0,0,0,0x78,0x229,{6726,6727}}, + {0,0,60,60,0,0,0xF,0x56,0x5D,{6682,6683}}, + {0,0,50,44,0,0,0x5,0x182,0xC1,{730,6728}}, + {0,0,127,57,0,0,0xE,0xA6,0x92,{6275,6729}}, + {0,0,127,56,0,0,0xE,0xF0,0xE9,{6275,6730}}, + {0,0,60,60,0,0,0x1,0x6A,0x5D,{6731,6732}}, + {0,0,60,60,0,0,0x1,0x6A,0x5D,{957,6733}}, + {0,0,20,45,0,0,0xD,0x9C40,0x7A8,{1262,1263}}, + {0,0,20,45,0,0,0x4,0xC1,0x24A,{6247,6248}}, + {12,12,0,0,0,0,0xC,0xFC1,0xE2,{6734,6735}}, + {12,12,0,0,0,0,0xA,0x1449,0xC44,{6736,2087}}, + {12,12,0,0,0,0,0xA,0x9C40,0x92,{6737,6738}}, + {12,12,0,0,0,0,0x8,0x2710,0x1B1,{6739,6740}}, + {12,12,0,0,0,10,0,0x9C40,0xAA0,{6741,6742}}, + {12,12,0,0,0x3,5,0x604,0x9C40,0x55D,{2139,6743,6744,6745} }, + {12,0,0,0,0,-5,0xA0A,0x9C40,0x30C0,{6746,6747}}, + {12,12,0,0,0,4,0x800,0x9C40,0xAFD,{6748,6749}}, + {12,12,0,0,0x3,10,0,0x9C40,0xAF6,{6750,6751,2151,2152} }, + {12,12,0,0,0,0,0xA,0x9C40,0x8C,{6752,6753}}, + {0,12,0,0,0,0,0,0x236,0x189,{6754,2306}}, + {12,12,0,32,0,0,0x50F,0x92,0xBA,{6755,6756}}, + {12,12,0,36,0,0,0xC01,0x111,0x154,{6757,2378}}, + {12,12,0,88,0,0,0x50F,0x15A,0x190,{6758,6759}}, + {0,0,0,0,0,0,0x8,0x2314,0x564,{6760,6761}}, + {0,0,0,0,0,0,0x8,0x23E2,0x585,{6762,6763}}, + {0,0,0,0,0,0,0x8,0x23F0,0x571,{6764,6763}}, + {0,0,0,0,0,0,0x6,0x245A,0x2E4,{6765,582}}, + {0,0,0,0,0,0,0,0x22A2,0x182,{6766,3}}, + {0,0,0,0,0,0,0,0x23F6,0x2E4,{6767,5}}, + {0,0,0,0,0,0,0x8,0x1C8A,0x459,{6768,11}}, + {0,0,0,0,0,0,0,0x11F1,0x57E,{6769,15}}, + {0,0,0,0,0,0,0,0x23F0,0x585,{6770,6771}}, + {0,0,0,0,0,0,0x2,0x9C40,0x24A,{6772,6773}}, + {0,0,0,0,0,0,0x2,0x9C40,0x251,{6774,6775}}, + {0,0,0,0,0,0,0x4,0x9C40,0x47A,{6776,6777}}, + {0,0,0,0,0,0,0x4,0x9C40,0x106E,{6778,6779}}, + {0,0,0,0,0,0,0xC,0x9C40,0x236,{6780,6781}}, + {0,0,0,0,0,0,0xA,0x9C40,0x305,{2402,6782}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2E4,{6783,6784}}, + {0,0,0,0,0,0,0xC,0xFBA,0x92,{6785,6786}}, + {0,0,0,0,0,0,0xC,0x3929,0x251,{6787,6788}}, + {0,0,0,0,0,0,0,0x23DC,0xE2,{6789,51}}, + {0,0,0,0,0,0,0x6,0x11EA,0x189,{6790,6791}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{54,6792}}, + {0,0,0,0,0,0,0x8,0x9C40,0x6A,{6793,6794}}, + {0,0,0,0,0,0,0x8,0x9C40,0x175,{6795,6796}}, + {0,0,0,0,0,0,0x8,0x47CC,0x189,{6797,6798}}, + {0,0,0,0,0,0,0x2,0x9C40,0x140,{6799,63}}, + {0,0,0,0,0,0,0xA,0x9C40,0x24A,{6800,6801}}, + {0,0,0,0,0,0,0xA,0x9C40,0x161,{6802,6803}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6804,6805}}, + {0,0,0,0,0,0,0x8,0x9C40,0x7E,{6806,6807}}, + {0,0,0,0,0,0,0x8,0x9C40,0x71,{6808,6809}}, + {0,0,0,0,0,0,0xA,0x9C40,0x29A,{6810,6811}}, + {0,0,0,0,0,0,0x6,0x9C40,0x182,{6812,6813}}, + {0,0,0,0,0,0,0x8,0x9C40,0x514,{6814,6815}}, + {0,0,0,0,0,0,0x8,0x9C40,0x2E4,{6816,6817}}, + {0,0,0,0,0,0,0x8,0x9C40,0x258,{6818,6819}}, + {0,0,0,0,0,0,0x2,0x9C40,0x58C,{6820,6821}}, + {0,0,0,0,0,0,0x2,0x9C40,0x564,{6822,6823}}, + {0,0,0,0,0,0,0,0x4DE,0x585,{6824,86}}, + {0,0,0,0,0,0,0,0x124E,0x157C,{6825,6826}}, + {0,0,0,0,0,0,0xE,0x9C40,0xE2,{6827,466}}, + {0,0,0,0,0,0,0,0x9C40,0xAD5,{6828,6829}}, + {0,0,0,0,0,0,0xA,0x9C40,0x1504,{6830,6831}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5BA,{6832,96}}, + {0,0,0,0,0,0,0,0x9C40,0x118D,{6833,6834}}, + {0,0,0,0,0,0,0,0x9C40,0x1E0,{100,6835}}, + {0,0,0,0,0,0,0xC,0x9C40,0x47A,{6836,103}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6837,6838}}, + {0,0,0,0,0,0,0xC,0x9C40,0x17C,{6839,6840}}, + {0,0,0,0,0,0,0xC,0x9C40,0x251,{110,6841}}, + {0,0,0,0,0,0,0x2,0x9C40,0x161,{112,6842}}, + {0,0,0,0,0,0,0x2,0x9C40,0x2DD,{6843,6844}}, + {0,0,0,0,0,0,0x8,0x9C40,0x182,{6845,6846}}, + {0,0,0,0,0,0,0,0x9C40,0x175,{6847,6848}}, + {0,0,0,0,0,0,0x8,0x9C40,0xDC,{6849,6850}}, + {0,0,0,0,0,0,0x8,0x9C40,0x189,{6851,6852}}, + {0,0,0,0,0,0,0x8,0x9C40,0x189,{6853,6852}}, + {0,0,0,0,0,0,0xA,0x9C40,0x196,{6854,6855}}, + {0,0,0,0,0,0,0x8,0x9C40,0x189,{6856,2487}}, + {0,0,0,0,0,0,0x6,0x9C40,0x92,{6857,6858}}, + {0,0,0,0,0,0,0x4,0x9C40,0xDC,{6859,6860}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{6861,6862}}, + {0,0,0,0,0,0,0,0x9C40,0x175,{6863,6862}}, + {0,0,0,0,0,0,0x2,0x9C40,0x196,{141,6864}}, + {0,0,0,0,0,0,0,0x9C40,0x182,{6865,1171}}, + {0,0,0,0,0,0,0,0x9C40,0xE2,{6866,6867}}, + {0,0,0,0,0,0,0,0x9C40,0x8C,{6868,6869}}, + {0,0,0,0,0,0,0,0x9C40,0x6A,{6870,162}}, + {0,0,0,0,0,0,0x2,0x9C40,0x578,{163,6871}}, + {0,0,0,0,0,0,0xA,0x9C40,0x92,{6872,6602}}, + {0,0,0,0,0,0,0x2,0x9C40,0x585,{6873,6874}}, + {0,0,0,0,0,0,0xC,0x9C40,0x549,{6875,6876}}, + {0,0,0,0,0,0,0,0x9C40,0x1172,{6877,176}}, + {0,0,0,0,0,0,0x8,0x9C40,0x495,{6878,178}}, + {0,0,0,0,0,0,0,0x9C40,0x116C,{6879,6880}}, + {0,0,0,0,0,0,0,0x9C40,0x189,{183,6881}}, + {0,0,0,0,0,0,0xC,0x9C40,0x4C4,{6882,6883}}, + {0,0,0,0,0,0,0,0x2356,0x564,{6884,6885}}, + {0,0,0,0,0,0,0x4,0x9C40,0x1309,{6886,6887}}, + {0,0,0,0,0,0,0,0x1C5C,0x89E,{6888,6889}}, + {0,0,0,0,0,0,0x6,0x9C40,0x182,{6890,6891}}, + {0,0,0,0,0,0,0xA,0x9C40,0x2C9,{6892,6893}}, + {0,0,0,0,0,0,0x6,0x9C40,0x189,{6894,6895}}, + {0,0,0,0,0,0,0x6,0x11F8,0x154D,{217,6896}}, + {0,0,0,0,0,0,0,0x9C40,0x118,{239,6897}}, + {0,0,0,0,0,0,0xA,0x9C40,0x1C5,{6898,6899}}, + {0,0,0,0,0,0,0xE,0x9C40,0x1E0,{6900,6901}}, + {0,0,0,0,0,0,0xE,0x265,0x2C2,{246,6902}}, + {0,0,0,34,0x8,0,0x8,0x3E8,0xA,{6903,6904}}, + {0,0,0,64,0x8,0,0xE,0x3E8,0xA,{6220,6221}}, + {0,0,0,19,0x10,0,0xE,0x3E8,0xA,{6905,6906}}, + {0,0,0,74,0x10,0,0xA,0x3E8,0xA,{6907,6908}}, + {0,0,0,29,0x10,0,0xE,0x3E8,0xA,{6909,6910}}, + {0,0,0,46,0x18,0,0,0x3E8,0xA,{6227,6228}}, + {0,0,0,48,0x28,0,0x8,0x3E8,0xA,{6911,6912}}, + {0,0,0,49,0x18,0,0,0x3E8,0xA,{6227,6231}}, + {0,0,0,48,0x28,0,0x8,0x3E8,0xA,{6913,6912}}, + {0,0,0,52,0x18,0,0,0x3E8,0xA,{6227,6234}}, + {0,0,0,48,0x28,0,0x8,0x3E8,0xA,{6914,6912}}, + {0,0,0,54,0x18,0,0,0x3E8,0xA,{6227,6234}}, + {0,0,0,57,0x18,0,0,0x3E8,0xA,{6237,6238}}, + {0,0,0,13,0x28,0,0xE,0x3E8,0xA,{6915,6916}}, + {0,0,0,60,0x18,0,0,0x3E8,0xA,{6227,6234}}, + {0,0,0,56,0x28,0,0x8,0x3E8,0xA,{6917,6912}}, + {0,0,0,13,0x28,0,0xE,0x3E8,0xA,{6918,6916}}, + {0,0,0,113,0x8,0,0xE,0x3E8,0xA,{6919,6920}}, + {0,0,0,91,0x10,0,0xE,0x3E8,0xA,{6921,6922}}, + {0,0,0,13,0x28,0,0xE,0x3E8,0xA,{6923,6916}}, + {0,0,0,83,0x8,0,0xE,0x3E8,0xA,{6924,6925}}, + {0,0,0,19,0x8,0,0xE,0x3E8,0xA,{6926,6927}}, + {0,0,0,54,0x28,0,0x8,0x3E8,0xA,{6917,6912}}, + {0,0,0,72,0x8,0,0,0x3E8,0xA,{6252,6253}}, + {0,0,0,77,0x8,0,0,0x3E8,0xA,{6254,6255}}, + {0,0,0,70,0x8,0,0,0x3E8,0xA,{6256,6257}}, + {0,0,0,75,0x8,0,0,0x3E8,0xA,{6258,6259}}, + {0,0,0,69,0x8,0,0,0x3E8,0xA,{6260,6261}}, + {0,0,0,59,0x8,0,0xC,0x3E8,0xA,{6262,6263}}, + {0,0,0,48,0x8,0,0xC,0x3E8,0xA,{6264,6265}}, + {0,0,0,89,0x8,0,0,0x3E8,0xA,{6266,6267}}, + {0,0,0,84,0x8,0,0,0x3E8,0xA,{6266,6268}}, + {0,0,0,33,0x8,0,0xE,0x3E8,0xA,{6269,6270}}, + {0,0,0,78,0x10,0,0xD,0x3E8,0xA,{6928,6929}}, + {0,0,0,58,0x8,0,0xC,0x3E8,0xA,{6272,6273}}, + {0,0,0,52,0x8,0,0xC,0x3E8,0xA,{6274,6273}}, + {0,0,0,49,0x28,0,0xE,0x3E8,0xA,{6930,6931}}, + {0,0,0,49,0x28,0,0xE,0x3E8,0xA,{6932,6931}}, + {0,0,0,85,0x8,0,0x6,0x3E8,0xA,{6278,6279}}, + {0,0,0,68,0x8,0,0x6,0x3E8,0xA,{6280,6281}}, + {0,0,0,61,0x8,0,0x6,0x3E8,0xA,{6280,6281}}, + {0,0,0,100,0x8,0,0xA,0x3E8,0xA,{6285,6286}}, + {0,0,0,100,0x8,0,0xA,0x3E8,0xA,{6287,6933}}, + {0,0,0,0,0,0,0x8,0x2335,0x2961,{6934,6935}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{4059,6936}}, + {0,0,0,0,0,0,0xA,0x9C40,0x92,{6937,6938}}, + {0,0,0,0,0,0,0xE,0x9C40,0x15A,{6939,5680}}, + {0,0,0,0,0,0,0x2,0x9C40,0x92,{6940,6941}}, + {0,0,0,0,0,0,0,0x9C40,0xBA,{6942,6943}}, + {0,0,0,0,0,0,0x6,0x46BA,0xAD5,{6944,6945}}, + {0,0,0,0,0,0,0x8,0x47BE,0x5599,{6946,6947}}, + {0,0,0,0,0,0,0,0xC8,0x2D6,{959,959}}, + {0,0,0,0,0,0,0x7,0x161,0x19D,{1170,1170}}, + {0,0,0,0,0,0,0xA,0x161,0x2D6,{6948,6948}}, + {0,0,0,47,0x8,0,0,0x3E8,0xA,{693,6679}}, + {0,0,0,36,0x8,0,0,0x3E8,0xA,{6949,6681}}, + {0,0,0,67,0x8,0,0xE,0x3E8,0xA,{6950,6951}}, + {0,0,0,60,0x10,0,0x2,0x3E8,0xA,{6952,6952}}, + {0,0,0,60,0x10,0,0x2,0x3E8,0xA,{6953,6953}}, + {0,0,0,60,0x10,0,0x1,0x3E8,0xA,{6954,6954}}, + {0,0,0,48,0x18,0,0x5,0x3E8,0xA,{6686,6686}}, + {0,0,0,60,0x28,0,0xD,0x3E8,0xA,{6955,6955}}, + {0,0,0,52,0x18,0,0x5,0x3E8,0xA,{6687,6686}}, + {0,0,0,60,0x28,0,0x3,0x3E8,0xA,{6956,6956}}, + {0,0,0,55,0x18,0,0x5,0x3E8,0xA,{6686,6686}}, + {0,0,0,60,0x28,0,0x3,0x3E8,0xA,{6957,6957}}, + {0,0,0,60,0x18,0,0x5,0x3E8,0xA,{6686,6686}}, + {0,0,0,64,0x18,0,0x5,0x3E8,0xA,{6686,6686}}, + {0,0,0,60,0x20,0,0x5,0x3E8,0xA,{6958,6958}}, + {0,0,0,67,0x18,0,0x5,0x3E8,0xA,{6686,6686}}, + {0,0,0,60,0x28,0,0x3,0x3E8,0xA,{6959,6959}}, + {0,0,0,60,0x20,0,0xC,0x3E8,0xA,{6960,6960}}, + {0,0,0,60,0x28,0,0xB,0x3E8,0xA,{6961,6961}}, + {0,0,0,60,0x28,0,0xB,0x3E8,0xA,{6962,6962}}, + {0,0,0,60,0x20,0,0x2,0x3E8,0xA,{6963,6963}}, + {0,0,0,48,0x20,0,0xA,0x3E8,0xA,{6964,6964}}, + {0,0,0,60,0x20,0,0xB,0x3E8,0xA,{2382,2382}}, + {0,0,0,60,0x20,0,0xD,0x3E8,0xA,{6965,6965}}, + {0,0,0,67,0x18,0,0x3,0x3E8,0xA,{6966,6966}}, + {0,0,0,62,0x18,0,0xB,0x3E8,0xA,{6966,6966}}, + {0,0,0,67,0x18,0,0xA,0x3E8,0xA,{6967,6967}}, + {0,0,0,67,0x18,0,0xA,0x3E8,0xA,{6968,6968}}, + {0,0,0,60,0x18,0,0xA,0x3E8,0xA,{6968,6968}}, + {0,0,0,53,0x20,0,0xA,0x3E8,0xA,{6964,6964}}, + {0,0,0,48,0x20,0,0xA,0x3E8,0xA,{6969,6969}}, + {0,0,0,60,0x10,0,0xA,0x3E8,0xA,{6970,6970}}, + {0,0,0,60,0x10,0,0xA,0x3E8,0xA,{2358,2358}}, + {0,0,0,79,0x18,0,0xB,0x3E8,0xA,{6971,6971}}, + {0,0,0,79,0x18,0,0xB,0x3E8,0xA,{6972,6972}}, + {0,0,0,60,0x10,0,0xA,0x3E8,0xA,{6973,6973}}, + {0,0,0,60,0x10,0,0xA,0x3E8,0xA,{6974,6974}}, + {0,0,0,91,0x18,0,0x2,0x3E8,0xA,{5764,5764}}, + {0,0,0,60,0x18,0,0x3,0x3E8,0xA,{6975,6975}}, + {0,0,0,53,0x18,0,0x3,0x3E8,0xA,{6976,6976}}, + {0,0,0,60,0x10,0,0xA,0x3E8,0xA,{2363,2363}}, + {0,0,0,60,0x10,0,0xA,0x3E8,0xA,{6977,6977}}, + {0,0,0,79,0x8,0,0x8,0x3E8,0xA,{743,6978}}, + {0,0,0,79,0x8,0,0x8,0x3E8,0xA,{743,6979}}, + {0,0,0,52,0,0,0xE,0x118,0x146,{252,253}}, + {0,0,0,48,0,0,0,0xAD,0xC1,{254,255}}, + {0,0,0,58,0,0,0xE,0x11E,0x146,{252,253}}, + {0,0,0,47,0,0,0xA,0xAD,0xBA,{258,259}}, + {0,0,0,43,0,0,0x4,0x334,0x445,{912,913}}, + {0,0,0,49,0,0,0xA,0xAD,0xBA,{258,259}}, + {0,0,0,51,0,0,0xA,0xAD,0xBA,{258,259}}, + {0,0,0,54,0,0,0xA,0xAD,0xC1,{258,259}}, + {0,0,0,57,0,0,0xA,0x92,0x99,{258,259}}, + {0,0,0,72,0,0,0x4,0x2AE,0x3A5,{912,913}}, + {0,0,0,60,0,0,0xA,0x92,0x99,{258,259}}, + {0,0,0,76,0,0,0xE,0x74A,0x8A5,{266,267}}, + {0,0,0,84,0,0,0x6,0x272,0x280,{268,269}}, + {0,0,0,36,0,0,0xE,0x161,0x182,{270,271}}, + {0,0,0,76,0,0,0xE,0x75E,0x8B2,{272,273}}, + {0,0,0,84,0,0,0x8,0xDC,0xF6,{274,275}}, + {0,0,0,83,0,0,0xE,0x549,0x640,{237,263}}, + {0,0,0,84,0,0,0xC,0x175,0x1B1,{276,277}}, + {0,0,0,24,0,0,0xE,0x8CD,0xA50,{264,6980}}, + {0,0,0,77,0,0,0xE,0x744,0x898,{266,267}}, + {0,0,0,60,0,0,0x7,0xC1,0x132,{280,281}}, + {0,0,0,65,0,0,0x6,0x99,0x140,{282,283}}, + {0,0,0,59,0,0,0x6,0xAD,0xC1,{284,285}}, + {0,0,0,51,0,0,0x6,0xFD,0x258,{286,287}}, + {0,0,0,45,0,0,0xE,0x201,0x24A,{288,289}}, + {0,0,0,71,0,0,0xE,0xF6,0x5D,{290,291}}, + {0,0,0,60,0,0,0xF,0x1F4,0x244,{292,293}}, + {0,0,0,58,0,0,0xF,0x1FA,0x251,{294,295}}, + {0,0,0,53,0,0,0xE,0xDC,0xAD,{296,297}}, + {0,0,0,64,0,0,0xE,0x71,0x7E,{298,299}}, + {0,0,0,71,0,0,0xE,0x341,0x3B9,{300,301}}, + {0,0,0,61,0,0,0xE,0xA6,0x92,{304,305}}, + {0,0,0,48,0,0,0x1,0xAD,0x24A,{308,309}}, + {0,0,0,69,0,0,0,0x78,0x140,{310,311}}, + {0,0,0,68,0,0,0x1,0x78,0x140,{308,311}}, + {0,0,0,63,0,0,0,0x146,0x132,{312,313}}, + {0,0,0,74,0,0,0,0x355,0x39E,{314,315}}, + {0,0,0,60,0,0,0x8,0x16E,0x1A4,{316,317}}, + {0,0,0,80,0,0,0x8,0x514,0x5BA,{318,319}}, + {0,0,0,64,0,0,0xE,0x85,0x56,{320,321}}, + {0,0,0,69,0,0,0x6,0x182,0x78,{268,322}}, + {0,0,0,73,0,0,0xE,0x215,0x3A5,{323,324}}, + {0,0,0,75,0,0,0x8,0x78,0x140,{325,309}}, + {0,0,0,68,0,0,0x7,0x132,0x3B2,{326,327}}, + {0,0,0,48,0,0,0x4,0x201,0x258,{256,257}}, + {0,0,0,53,0,0,0xD,0x9C40,0x7A1,{1262,1263}}, + {0,0,0,0,0x1,0,0x100,0x974,0x57E,{6981,6982,6983,6984} }, + {0,0,0,0,0x1,0,0x100,0x2126,0x5D5,{6985,6986,6987,6988} }, + {0,0,0,0,0x1,0,0xE0E,0x2E39,0x460,{2605,2606,2607,2608} }, + {12,0,0,0,0x1,0,0xC0D,0x26C0,0x51A,{2609,2610,2611,2612} }, + {0,0,0,0,0x1,0,0xD0C,0x1CA5,0xDC,{332,333,334,335} }, + {0,0,0,0,0x1,0,0x100,0x1B0E,0x452,{336,337,338,6989} }, + {12,0,0,0,0x1,0,0xE0E,0x2468,0x182,{6990,6991,6992,6993} }, + {12,0,0,0,0x1,0,0x404,0x2795,0x71,{2613,2614,2615,2616} }, + {0,0,0,0,0x1,0,0x100,0x100A,0x500,{346,347,348,349} }, + {0,0,0,0,0x1,0,0x302,0x1CE1,0x44C0,{16,17,6994,6995} }, + {12,0,0,0,0x1,0,0x302,0x91D,0xABA,{350,351,2621,2622} }, + {0,0,0,0,0x1,0,0x101,0x41F6,0x819,{6996,6997,6998,6999} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x64,{2627,2628,352,353} }, + {0,0,0,0,0x1,0,0xB0A,0x251,0x2DD,{354,355,356,357} }, + {-12,-12,0,0,0x3,4,0xA0A,0x1D02,0x12CD,{7000,7001,7002,7003} }, + {0,0,0,0,0x1,0,0x504,0x10B8,0x1AFA,{28,29,7004,7005} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x146,{7006,7007,7008,7009} }, + {0,0,0,0,0x1,0,0x707,0x9C40,0x104,{368,369,2636,2637} }, + {-12,0,0,0,0x1,0,0x908,0x9C40,0x71,{7010,7011,7012,7013} }, + {12,0,0,0,0x1,0,0x504,0x9C40,0x604,{36,37,7014,7015} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x488,{2642,2643,2644,2645} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x6A,{378,379,380,381} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x64,{7016,7017,7018,7019} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{386,387,388,389} }, + {12,0,0,0,0x1,0,0x606,0x470A,0x190,{7020,7021,7022,7023} }, + {12,0,0,0,0x1,0,0x606,0x4815,0x190,{7024,7025,7026,7023} }, + {0,0,0,0,0x1,0,0xA0A,0x2411,0x189,{397,398,399,400} }, + {0,0,0,0,0x1,0,0x808,0x3930,0x146,{401,402,403,404} }, + {0,0,0,0,0,0,0,0x9C40,0x6A,{54,55}}, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{2646,410,2647,162} }, + {0,0,0,0,0x1,0,0,0x9C40,0x64,{2648,2649,2650,2651} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x50,{60,61,7027,7028} }, + {12,0,0,0,0x1,0,0xE0E,0x45DE,0xE2,{7029,7030,7031,7032} }, + {12,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{7033,7034,7035,7036} }, + {12,0,0,0,0x1,0,0xE0E,0x9C40,0x5D,{7037,7038,7035,7036} }, + {12,0,0,0,0x1,0,0x100,0x9C40,0x8C,{7039,7040,7041,7042} }, + {12,0,0,0,0x1,0,0x808,0x4879,0xE2,{7043,7044,7045,7046} }, + {12,0,0,0,0x1,0,0x808,0x481C,0xE2,{7047,7048,7045,7046} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x7E,{7049,67,7050,7051} }, + {12,0,0,0,0x1,0,0xC0C,0x2371,0x2D6,{5029,7052,7053,7054} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x294,{75,76,2658,2659} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{2660,76,2658,2659} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{442,76,443,444} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x196,{445,446,447,448} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0x599,{449,450,451,452} }, + {0,0,0,0,0x1,0,0xE0E,0x3E1,0x44C,{453,454,455,456} }, + {0,0,0,0,0x1,0,0xE0E,0xCBC,0x1090,{453,454,455,457} }, + {0,0,0,0,0x1,0,0x302,0x1ACC,0x1130,{89,90,458,459} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x190,{460,461,462,463} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x8F5,{460,7055,7056,7057} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xA1A,{7058,96,7059,7060} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x599,{97,96,2663,2664} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x1ED,{2665,2666,2667,2668} }, + {0,0,0,0,0,0,0,0x9C40,0x111,{6548,6549}}, + {0,0,0,0,0x1,0,0x808,0x9C40,0x2DD,{2671,2672,2673,2674} }, + {0,0,0,0,0x1,0,0x908,0x945,0x6C5,{104,105,7061,7062} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xBA,{106,107,2675,2676} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xC1,{2677,2678,2675,2679} }, + {12,0,0,0,0x1,0,0xD0C,0x9C40,0x230,{475,6841,476,7063} }, + {-12,12,0,0,0,0,0x4,0x9C40,0x175,{7064,7065}}, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x2A1,{7066,2685,2686,7067} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x2DD,{7068,7069,484,485} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xC8,{7070,7071,7072,7071} }, + {0,0,0,0,0x1,0,0x70E,0x9C40,0x189,{7073,7074,7075,7076} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0xF6,{494,495,496,497} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x104,{124,498,499,500} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x236,{501,502,503,504} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x21C,{505,506,507,508} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x71,{7077,7078,7079,7080} }, + {0,0,0,0,0x1,0,0x202,0x9C40,0x92,{513,514,515,516} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x7E,{517,518,519,520} }, + {0,0,0,0,0x1,0,0x504,0x9C40,0x15A,{6859,137,7081,7082} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{2691,2692,138,139} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x6A,{2691,2692,140,139} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xE2,{522,523,524,525} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x71,{2691,2693,2694,144} }, + {0,0,0,0,0x3,3,0xE0E,0x9C40,0x14D,{7083,7084,7085,7086} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x272,{531,532,533,534} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x279,{535,536,537,538} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x17C,{2695,2696,2697,2698} }, + {0,0,0,0,0x1,0,0x404,0x9C40,0x5D,{541,542,543,544} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x8C,{7087,7088,7089,7090} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0xF0,{2699,2700,7091,7092} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x6A,{2701,2702,159,2703} }, + {0,0,0,0,0x1,0,0xA0A,0x9C40,0x6A,{550,551,552,162} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x196,{553,554,555,556} }, + {0,0,0,0,0x1,0,0x908,0x9C40,0x2A1,{557,558,559,560} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x92,{167,168,2704,2705} }, + {0,0,0,0,0x1,0,0x302,0x9C40,0x53C,{561,562,563,564} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x11EA,{171,172,7093,7094} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x495,{567,174,568,569} }, + {0,0,0,0,0,0,0,0x9C40,0x1180,{6608,6609}}, + {0,0,0,0,0x1,0,0x706,0x9C40,0x2619,{6610,6611,3892,7095} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x744,{179,180,7096,7097} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x9D8,{181,182,7098,7099} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x182,{183,184,3892,7095} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0xA71,{2717,2718,2719,2720} }, + {0,0,0,0,0x1,0,0x100,0x9C40,0x1C26,{187,188,7100,7101} }, + {0,0,0,0,0x1,0,0x908,0x1270,0x28C1,{2721,2722,189,190} }, + {0,0,0,0,0x1,0,0xD0C,0x9C40,0x58C,{2723,2724,2725,2726} }, + {0,0,0,0,0x1,0,0xD00,0x9C40,0x571,{7102,6627,7103,2726} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x14D5,{2731,2732,2733,198} }, + {0,0,0,0,0x1,0,0x504,0x9C40,0xA99,{2734,2735,2736,2737} }, + {0,0,0,0,0x1,0,0x606,0x9C40,0x1324,{2738,2739,2740,200} }, + {0,0,0,0,0x1,0,0x100,0x223E,0xF92,{201,202,4030,7104} }, + {0,0,0,0,0x3,0,0xA06,0x1719,0x779,{7105,7106,7107,7108} }, + {0,-12,0,0,0x3,2,0xA00,0x974,0x118D,{7109,7110,7111,7112} }, + {0,0,0,0,0x1,0,0x908,0x362A,0x40DE,{207,601,602,603} }, + {0,0,0,0,0x1,0,0xD0C,0x6AA,0x909,{209,210,7113,7114} }, + {0,0,0,0,0x3,4,0xA06,0x9C40,0x15A,{7115,7116,7117,7118} }, + {0,0,0,0,0x1,0,0xB0A,0x9C40,0x29A,{213,214,608,609} }, + {0,0,0,0,0x1,0,0x706,0x9C40,0xBA,{215,216,7119,7120} }, + {0,0,0,0,0x1,0,0x706,0x11F8,0x7A1,{217,218,7121,7122} }, + {0,0,0,0,0x1,0,0xB0A,0x341,0x2D0,{219,7123,7124,7125} }, + {0,0,0,0,0x3,2,0xA06,0x4B6,0x550,{7126,7127,7128,7129} }, + {0,0,0,0,0x1,0,0xB0A,0xA6,0x438,{2743,2744,2745,224} }, + {0,0,0,0,0x1,0,0x706,0x107C,0x13E5,{225,226,7130,7131} }, + {0,12,0,0,0x3,0,0xE00,0x229,0x17C,{7132,7133,7134,7135} }, + {0,0,0,0,0x1,0,0xF0E,0x78D,0x49C,{622,623,624,623} }, + {0,0,0,0,0x1,0,0xE0E,0x611,0x49,{231,232,731,7136} }, + {-14,12,0,0,0,0,0xE,0x265,0x132,{7137,7138}}, + {0,0,0,0,0x1,0,0xF0E,0x99C,0x8B9,{235,236,7139,7140} }, + {-23,-24,0,0,0x3,0,0xE0E,0x2E75,0x2A3D,{7141,7142,7143,7142} }, + {0,0,0,0,0x1,0,0x505,0x3C0,0xCE,{2761,638,2762,2763} }, + {0,0,0,0,0x1,0,0xB0A,0x1316,0x1852,{241,242,7144,7145} }, + {0,0,0,0,0x1,0,0xF0E,0x17C,0x1241,{237,243,898,7146} }, + {0,0,0,0,0x1,0,0xE0E,0x9C40,0x1546,{244,245,7147,7148} }, + {0,0,0,0,0,0,0xE,0x230,0x92,{246,247}}, + {0,0,0,48,0x1,0,0x706,0x190,0x495,{326,327,326,2812} }, + {0,0,0,53,0x1,0,0x706,0x244,0x8AC,{2861,2862,2861,2862} }, + {0,0,0,34,0,0,0xC,0x85,0x5D,{7149,7150}}, + {0,0,0,28,0,0,0xE,0xC1,0x71,{7151,7152}}, + {0,0,0,39,0x3,0,0x806,0x230,0x196,{7153,7154,7155,7156} }, + {0,0,0,33,0x3,0,0x806,0x230,0x19D,{7153,7154,7155,7156} }, + {-9,0,0,63,0x1,0,0xF0E,0x99,0xA6,{7157,7158,7159,7160} }, + {0,0,0,15,0,0,0xE,0x6A,0x71,{7161,7162}}, + {0,0,0,36,0,0,0x8,0x6A,0x71,{7163,7164}}, + {0,21,0,36,0x3,26,0x8,0x1CC,0x229,{7163,7164,7165,7166} }, + {0,0,0,35,0,0,0x8,0x2C2,0x341,{7167,2509}}, + {0,0,0,35,0,0,0x6,0x2C9,0x341,{2508,2509}}, + {0,0,0,44,0x1,0,0x606,0x78,0x5D,{686,687,688,251} }, + {0,12,0,38,0x3,0,0xC00,0xFD,0xE2,{7168,7169,7170,7171} }, + {0,0,0,58,0x1,0,0xF0E,0x146,0x182,{691,692,254,255} }, + {8,1,0,38,0x3,0,0xE00,0x15A,0xC1,{7172,7173,7174,7175} }, + {0,0,0,47,0,0,0x4,0x3D4,0x481,{2513,2514}}, + {-5,0,0,48,0x3,-122,0x806,0x118,0x140,{7176,7177,7176,7178} }, + {0,0,0,49,0,0,0x4,0x3C6,0x46D,{2513,2514}}, + {-5,12,0,48,0,0,0xA,0xB4,0xB4,{7179,7180}}, + {0,0,0,51,0,0,0x4,0x3C0,0x46D,{2513,2514}}, + {-5,0,0,48,0x3,-122,0x80A,0x3B9,0x452,{7181,7182,7183,7184} }, + {0,0,0,54,0,0,0x4,0x3C0,0x46D,{2513,2514}}, + {0,0,0,57,0,0,0x4,0x3B9,0x46D,{2513,2514}}, + {12,12,0,61,0x3,6,0x808,0xC72,0x708,{7185,7186,7185,7186} }, + {0,0,0,60,0,0,0x4,0x3C0,0x474,{2513,2514}}, + {0,0,0,70,0x1,0,0x706,0xB68,0xD76,{5979,5980,2780,2781} }, + {12,11,0,79,0x3,5,0x808,0x514,0x6CC,{7187,7188,7189,7190} }, + {0,12,0,62,0,0,0x8,0x1450,0x618,{7191,7192}}, + {0,0,0,65,0x1,0,0,0x125,0x146,{2785,2786,2787,2788} }, + {0,1,0,67,0x3,5,0xA0A,0x869,0xDFC,{7193,7194,7195,7196} }, + {0,0,0,83,0x1,0,0x908,0xE2,0x104,{274,2793,2794,275} }, + {12,12,0,62,0x3,6,0x808,0xC8D,0x73D,{7185,7197,7185,7197} }, + {0,0,0,35,0x1,0,0xD0C,0x556,0x62C,{2797,2528,2797,277} }, + {0,0,0,44,0x1,0,0x706,0x708,0x83A,{5979,5982,2780,2800} }, + {0,0,0,67,0x1,0,0x706,0xF0,0x111,{2801,2802,2803,2804} }, + {0,0,0,66,0x1,0,0x706,0x140,0x265,{2805,2806,2807,2808} }, + {0,0,0,59,0x1,0,0x706,0xA0,0x140,{282,283,2809,2810} }, + {0,0,0,51,0x1,0,0x706,0x17C,0x488,{2811,327,2811,2812} }, + {0,0,0,45,0x1,0,0x706,0x104,0x258,{2813,287,2813,2814} }, + {12,10,0,54,0x3,0,0xA0C,0x118,0x146,{7198,726,7199,7200} }, + {12,10,0,48,0x3,0,0xA0C,0x11E,0x146,{7198,726,7201,7200} }, + {0,0,0,58,0x1,0,0xF0E,0x1FA,0x251,{2819,295,2820,2821} }, + {0,0,0,53,0x1,0,0xF0E,0x1E6,0x23D,{2822,2823,2822,2824} }, + {12,12,0,88,0,0,0xF,0x8C,0x64,{697,698}}, + {0,0,0,71,0,0,0xF0E,0x6A,0x78,{2827,2828}}, + {0,0,0,42,0,0,0,0x10A,0x64,{733,734}}, + {0,0,0,36,0,0,0,0x258,0x64,{735,736}}, + {0,0,0,60,0x3,0,0xE0C,0x78,0x64,{1340,1340,7202,7203} }, + {0,-12,0,60,0x3,0,0x20E,0x175,0x64,{7202,7203,7204,7205} }, + {12,12,0,73,0,0,0x8,0xA6,0x64,{7206,2302}}, + {0,-2,0,68,0x3,0,0,0x99,0x6A,{7207,7208,7207,7209} }, + {12,12,0,61,0,0,0x6,0xC8,0x6A,{2362,2302}}, + {13,13,0,18,0x3,0,0x8,0xC8,0x92,{7210,7211,7212,7213} }, + {13,13,0,18,0x3,0,0xC,0xFD,0xAD,{7214,7215,7216,7217} }, + {0,0,0,80,0x1,0,0x908,0xD5,0xF0,{316,2848,316,2849} }, + {0,0,0,64,0x1,0,0x908,0x8EE,0x92,{318,7218,2851,7219} }, + {12,12,0,64,0x3,2,0xE0E,0x175,0x6A,{7220,7221,7222,7223} }, + {0,0,0,55,0x1,0,0xF0E,0x5DC,0x244,{323,748,749,750} }, + {0,0,0,75,0x1,0,0xA0B,0x618,0x3AC,{2856,2857,2858,2859} }, + {0,0,0,67,0,0,0xE,0x6A,0x5D,{7224,7225}}, + {0,0,0,0,0,0,0x8,0x4C4,0x64,{3781,3782}}, + {0,0,0,0,0,0,0xA,0x9C40,0xDC,{3783,3784}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{1463,3785}}, + {0,0,0,0,0,0,0xE,0x9C40,0x8C,{3786,3787}}, + {0,0,0,0,0,0,0xE,0x9C40,0x92,{3788,3789}}, + {0,0,0,0,0,0,0x8,0x9C40,0x78,{1481,3790}}, + {0,0,0,0,0,0,0xE,0x9C40,0x17C,{3791,3792}}, + {0,0,0,0,0,0,0xE,0x9C40,0x2C2,{1487,3793}}, + {0,0,0,0,0,0,0xC,0x9C40,0x6A,{1493,3795}}, + {0,0,0,0,0,0,0xA,0x9C40,0x7E,{3797,3798}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{3803,3804}}, + {0,0,0,244,0x4,0,0x9,0x6,0,{1533,1534}}, + {0,0,0,0,0,0,0x4,0x265C,0x556,{1547,3807}}, + {0,0,0,0,0,0,0xA,0x9C40,0x549,{3808,3809}}, + {0,0,0,244,0x4,0,0x7,0x6,0,{1555,1556}}, + {0,0,0,232,0,0,0,0xF6,0x71,{1605,1606}}, + {0,0,0,220,0,0,0x2,0x9C40,0x33A,{1609,1610}}, + {0,0,0,35,0,0,0,0x85,0x71,{678,1618}}, + {0,0,0,35,0,0,0xE,0xE9,0x64,{1613,1614}}, + {0,0,0,35,0,0,0x8,0xE2,0xCE,{1615,1616}}, + {0,0,0,35,0,0,0,0x6A,0x71,{676,1617}}, + {0,0,0,35,0,0,0,0x11E,0x64,{680,681}}, + {0,0,0,35,0,0,0x1,0xBB8,0xA8C,{1380,1381}}, + {0,0,0,35,0,0,0x4,0xF6,0x71,{1619,1620}}, + {0,0,0,35,0,0,0xE,0xBA,0x92,{1623,3812}}, + {0,0,0,35,0,0,0xD,0x2C9,0x33A,{804,805}}, + {0,0,0,35,0,0,0x6,0xC8,0xE2,{1625,3813}}, + {0,0,0,35,0,0,0x6,0xDC,0x8C,{3814,3815}}, + {0,0,0,35,0,0,0x4,0x938,0xDC,{1627,3816}}, + {0,0,0,35,0,0,0xC,0x786,0xAA6,{3817,3818}}, + {0,0,0,35,0,0,0xE,0x6B1,0xA35,{707,708}}, + {0,0,0,35,0,0,0,0x16E,0x17C,{813,1630}}, + {0,0,0,35,0,0,0,0x154,0xE2,{3819,3820}}, + {0,0,0,35,0,0,0xC,0x459,0x175,{719,720}}, + {0,0,0,35,0,0,0,0x71,0x92,{3821,3822}}, + {0,0,0,35,0,0,0,0xCE,0x189,{1635,1636}}, + {0,0,0,35,0,0,0xE,0x279,0x2DD,{1637,1638}}, + {0,0,0,35,0,0,0x6,0x272,0x2DD,{1639,1640}}, + {0,0,0,35,0,0,0xE,0x17C,0x99,{1587,1588}}, + {0,0,0,35,0,0,0xE,0x11E,0x12C,{731,732}}, + {0,0,0,35,0,0,0x4,0x104,0x64,{1641,1642}}, + {0,0,0,35,0,0,0,0x445,0x64,{1643,1644}}, + {0,0,0,35,0,0,0xA,0x7E,0x64,{829,1645}}, + {0,0,0,60,0,0,0xE,0xA0,0x85,{1623,3812}}, + {0,0,0,44,0,0,0xE,0xA0,0x85,{1623,3812}}, + {0,0,0,47,0,0,0x6,0xAD,0xC1,{1625,3813}}, + {0,0,0,47,0,0,0x6,0xBA,0x85,{3814,3815}}, + {0,0,0,62,0,0,0x4,0x76C,0xC1,{1627,3816}}, + {0,0,0,93,0,0,0xC,0x474,0x632,{3817,3818}}, + {0,0,0,40,0,0,0xC,0x78D,0xAA6,{3817,3818}}, + {0,0,0,42,0,0,0x6,0x26C,0x2D6,{1639,1640}}, + {0,0,0,38,0,0,0x6,0x272,0x2DD,{1639,1640}}, + {0,0,0,88,0,0,0x6,0x99,0x5D,{1654,1655}}, + {0,0,0,35,0x4,0,0,0x6,0,{6217,6217}}, + {0,0,0,0,0,0,0,0x37C8,0x452,{902,7226}}, + {0,0,0,0,0,0,0xF,0x1C55,0x876,{7227,7228}}, + {0,0,0,0,0,0,0x9,0x9C40,0x222,{6302,7229}}, + {0,0,0,0,0,0,0x9,0x9C40,0x208,{6302,7230}}, + {0,0,0,0,0,0,0x9,0x4185,0x2BC,{7231,7232}}, + {0,0,0,0,0,0,0xE,0x9C40,0x64,{1268,7233}}, + {0,0,0,0,0,0,0xA,0x9C40,0x416,{7234,7235}}, + {0,0,0,0,0,0,0x8,0x3E1,0x812,{7236,7237}}, + {0,0,0,0,0,0,0x6,0x9C40,0x92,{7238,7239}}, + {0,0,0,0,0,0,0x6,0x9C40,0x8C,{7238,7240}}, + {0,0,0,0,0,0,0x8,0x47C5,0xDC,{7241,7242}}, + {0,0,0,0,0,0,0xA,0x9C40,0xC1,{7243,7244}}, + {0,0,0,0,0,0,0xE,0x9C40,0x14D,{7245,7246}}, + {0,0,0,0,0,0,0xE,0x9C40,0xA6,{5668,7247}}, + {0,0,0,0,0,0,0xA,0x9C40,0x6E0,{858,7248}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{7249,7250}}, + {0,0,0,0,0,0,0xC,0x57E,0x1040,{7251,7252}}, + {0,0,0,0,0,0,0,0x20E,0x265,{7253,7254}}, + {0,0,0,0,0,0,0,0xE60,0x131D,{7255,7256}}, + {0,0,0,0,0,0,0,0x9C40,0x2C2,{7257,7258}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{6338,7259}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{7260,2578}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{1123,7261}}, + {0,0,0,0,0,0,0xE,0x9C40,0x50,{5696,7262}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{7263,7264}}, + {0,0,0,0,0,0,0xA,0x9C40,0x56,{6359,7265}}, + {0,0,0,0,0,0,0x4,0x9C40,0x190,{7266,7267}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{7268,7269}}, + {0,0,0,0,0,0,0xD,0x9C40,0x47A,{7270,7271}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{153,7272}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{7273,7274}}, + {0,0,0,0,0,0,0x6,0x9C40,0x5D,{7275,5742}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{7276,7277}}, + {0,0,0,0,0,0,0x4,0x9C40,0x1269,{199,7278}}, + {0,0,0,0,0,0,0xC,0xB11,0x251,{7279,7280}}, + {0,0,0,36,0,0,0x8,0x17C,0x1B8,{248,249}}, + {0,0,0,36,0,0,0xF,0x64,0x64,{6682,7281}}, + {0,0,0,36,0,0,0xE,0x15A,0x189,{3633,3634}}, + {0,0,0,48,0,0,0xE,0x56,0,{4102,4103}}, + {0,0,0,36,0,0,0xE,0x8C,0x92,{6684,6685}}, + {0,0,0,48,0,0,0,0x751,0x8B2,{7282,7283}}, + {0,0,0,69,0,0,0xA,0x7E,0x85,{258,259}}, + {0,0,0,52,0,0,0,0x74A,0x8AC,{7282,7283}}, + {0,0,0,48,0,0,0xE,0xDC,0xAD,{296,297}}, + {0,0,0,55,0,0,0,0x74A,0x8AC,{7282,7283}}, + {0,0,0,57,0,0,0xE,0x125,0x146,{270,271}}, + {0,0,0,58,0,0,0,0x744,0x8A5,{7282,7283}}, + {0,0,0,60,0,0,0,0x758,0x8A5,{7282,7283}}, + {0,0,0,62,0,0,0xC,0xA64,0xC51,{7284,7285}}, + {0,0,0,63,0,0,0,0x74A,0x8B2,{7282,7283}}, + {0,0,0,70,0,0,0xA,0x3B2,0x466,{261,262}}, + {0,0,0,70,0,0,0xA,0x3C0,0x46D,{261,7286}}, + {0,0,0,53,0,0,0xE,0x73D,0x870,{7287,6691}}, + {0,0,0,48,0,0,0xE,0xB4,0xC1,{6245,6246}}, + {0,0,0,84,0,0,0xC,0x528,0x625,{7279,7285}}, + {0,0,0,43,0,0,0x4,0x1FA,0x251,{6247,7288}}, + {0,0,0,56,0,0,0xE,0x549,0x646,{7289,7290}}, + {0,0,0,24,0,0,0xE,0x744,0x876,{6694,6695}}, + {0,0,0,65,0,0,0xA,0x535,0x632,{261,262}}, + {0,0,0,48,0,0,0x6,0xB4,0xC1,{284,285}}, + {0,0,0,54,0,0,0x6,0xAD,0xC1,{284,285}}, + {0,0,0,42,0,0,0xB,0xF0,0x17C,{7291,7292}}, + {0,0,0,39,0,0,0xB,0xF0,0x17C,{7291,7292}}, + {0,0,0,52,0,0,0xE,0x132,0x132,{6275,6730}}, + {0,0,0,52,0,0,0xE,0x19D,0x11E,{6275,7293}}, + {0,0,0,60,0,0,0x1,0x8C,0x1B1,{308,309}}, + {0,0,0,66,0,0,0x1,0x8C,0x1B1,{308,309}}, + {0,0,0,59,0,0,0x1,0x8C,0x1B1,{308,309}}, + {0,0,0,91,0,0,0,0x305,0x319,{6282,6284}}, + {0,0,0,109,0,0,0x8,0x1449,0x17E1,{6297,6298}}, + {0,0,0,79,0,0,0xE,0x20E,0x3A5,{7294,7295}}, + {0,0,0,0,0,0,0xE,0x2990,0x5D,{6666,7296}}, + {0,0,0,0,0x3,2,0x606,0x3332,0x819,{7297,7298,7299,7300} }, + {0,0,0,0,0x3,2,0x608,0x377E,0x82D,{7301,7302,7303,7304} }, + {0,0,0,0,0x3,3,0x404,0x2DD5,0x416,{7305,7306,7307,7308} }, + {0,0,0,0,0x3,10,0xA0A,0x38CC,0x8B9,{7309,7310,7311,7312} }, + {0,0,0,0,0x3,3,0xC,0x1C91,0xD5,{7313,7314,334,335} }, + {0,0,0,0,0x3,4,0xE,0x9C40,0x64,{7315,7316,7317,7318} }, + {0,0,0,0,0x3,0,0x606,0x3721,0x409,{7319,7320,7321,7322} }, + {0,0,0,0,0x3,0,0x906,0x37A0,0x140,{7323,7324,1340,7325} }, + {0,0,0,0,0x3,1,0x909,0x1CA5,0x891,{7326,7327,7328,7327} }, + {-12,-12,0,0,0x3,0,0xC,0x1331,0x2B62,{7329,7330,7331,7332} }, + {0,0,0,0,0x3,3,0x909,0x1CDA,0x21CD,{7333,7334,7335,7336} }, + {0,0,0,0,0x3,0,0x10F,0x22CA,0x2D0,{7337,7338,7339,7340} }, + {12,0,0,0,0x3,0,0x6,0x466,0x189,{7341,7342,7343,7344} }, + {-19,2,0,0,0x3,0,0x104,0x909,0x564,{7345,7346,1340,7347} }, + {-12,-12,0,0,0x3,2,0x606,0x11C9,0x151E,{7348,7349,7350,7349} }, + {0,0,0,0,0x3,2,0x808,0x9C40,0x1ED,{7351,7352,7351,7352} }, + {0,12,0,0,0x3,10,0x507,0x9C40,0xC1,{7353,7354,7355,7356} }, + {-12,-12,0,0,0x3,5,0x10E,0x9C40,0xDC,{7357,7358,7359,7360} }, + {0,0,0,0,0x3,10,0x404,0x9C40,0xBA,{34,7361,7362,7363} }, + {0,0,0,0,0x3,2,0xB0D,0x9C40,0x7F1,{7364,7365,7366,7367} }, + {0,0,0,0,0x3,4,0x604,0x9C40,0x182,{7368,7369,7370,7371} }, + {0,0,0,0,0x3,9,0x606,0x9C40,0x208,{7372,7373,7374,7375} }, + {0,0,0,0,0x3,0,0x80C,0x9C40,0x6A,{7376,7377,7378,7379} }, + {0,0,0,0,0x3,7,0x8,0x9C40,0x460,{7380,7381,7380,7381} }, + {0,-12,0,0,0x3,0,0xA06,0xE7A,0xDC,{7382,7383,7384,7385} }, + {0,0,0,0,0x3,1,0x6,0x1B8D,0x84E,{7386,7387,7388,7389} }, + {12,0,0,0,0x3,0,0xA0A,0x10E0,0xBA,{7390,7391,7392,7391} }, + {0,0,0,0,0x3,3,0x206,0x1C76,0x140,{7393,7394,7395,7396} }, + {0,0,0,0,0x3,0,0xE08,0xE16,0x452,{7397,7398,7399,7400} }, + {0,14,0,0,0x3,-125,0xC0A,0x9C40,0x16E,{7401,7402,7403,7404} }, + {12,14,0,0,0x3,-124,0xC0C,0x9C40,0x17C,{7405,7406,7407,7408} }, + {0,0,0,0,0x3,15,0xA0A,0x9C40,0x71,{7409,7410,7411,7412} }, + {0,0,0,0,0x3,2,0x400,0x3591,0x772,{7413,7414,7415,7416} }, + {12,12,0,0,0x3,0,0xA0A,0x2885,0xA0,{7417,7418,7419,7420} }, + {0,0,0,0,0x3,0,0x20A,0x32BA,0x355,{7421,7422,7423,7424} }, + {0,0,0,0,0x3,3,0x806,0x2E2C,0x39E,{7425,7426,7427,7428} }, + {0,0,0,0,0x3,0,0,0xFAD,0x222,{7429,7430,1430,7431} }, + {0,0,0,0,0x3,0,0,0x9C40,0x56,{7432,7433,1430,7434} }, + {12,12,0,0,0,0,0xA,0xA64,0x1B8,{7435,2114}}, + {0,0,0,0,0x3,5,0xA0C,0x39E4,0xC1,{7436,7437,7436,7437} }, + {0,0,0,0,0x3,0,0x80A,0x9C40,0x279,{7438,7439,7440,7441} }, + {0,12,0,0,0,0,0xA,0x9C40,0x43E,{7442,7443}}, + {0,0,0,0,0x3,1,0x2,0x9C40,0x175,{7444,7445,7446,7447} }, + {0,12,0,0,0,0,0x6,0x9C40,0x2D6,{7448,7449}}, + {12,0,0,0,0x3,5,0xC04,0x9C40,0x53C,{7450,7451,7452,7453} }, + {0,0,0,0,0x3,7,0xA06,0x7F8,0x88A,{7454,7455,7456,7457} }, + {0,0,0,0,0x3,2,0xE0E,0x38AA,0x213A,{7458,7459,7460,7461} }, + {-31,-19,0,0,0x3,2,0,0x1E3C,0xAA0,{7462,7463,7464,7465} }, + {0,0,0,0,0x3,4,0xA0C,0x9C40,0x592,{7466,7467,7468,7469} }, + {0,0,0,0,0x3,-4,0xA04,0x9C40,0xA8C,{7470,7471,7472,7473} }, + {0,0,0,0,0x3,5,0xB0B,0x9C40,0x10A4,{7474,7475,7474,7475} }, + {0,0,0,0,0x3,4,0xB0B,0x9C40,0x1EFD,{7476,7477,7476,7477} }, + {0,12,0,0,0x3,8,0,0x9C40,0x578,{7478,7479,7480,7481} }, + {0,0,0,0,0x3,9,0x6,0x9C40,0x189,{7482,7483,7484,7485} }, + {0,0,0,0,0x3,7,0,0x9C40,0x945,{7486,7487,7488,7489} }, + {0,0,0,0,0x3,8,0xA0A,0x6C5,0x765,{7490,7491,7492,7493} }, + {0,0,0,0,0x3,0,0xC0E,0x9C40,0x17C,{7494,7495,7496,7497} }, + {0,0,0,0,0x3,2,0xE0E,0x9C40,0x8C,{1475,7498,7499,7500} }, + {0,0,0,0,0,0,0xA,0x9C40,0x140,{7501,111}}, + {-12,12,0,0,0,0,0x4,0x9C40,0x175,{7064,7065}}, + {0,0,0,0,0x3,4,0,0x9C40,0x550,{7502,7503,7504,7505} }, + {0,0,0,0,0x3,4,0x80C,0x9C40,0x175,{7506,7507,7508,7509} }, + {0,0,0,0,0x3,6,0xE0E,0x9C40,0x140,{7510,7511,7512,7513} }, + {0,0,0,0,0x3,8,0xE0E,0x9C40,0xF6,{7514,7515,7514,7515} }, + {0,0,0,0,0x3,0,0xA0A,0x9C40,0x251,{7516,7517,7518,7519} }, + {0,12,0,0,0,0,0x6,0x9C40,0x24A,{7520,7521}}, + {12,12,0,0,0,0,0xA,0x9C40,0x5D,{7522,7523}}, + {12,12,0,0,0,0,0x8,0x9C40,0x56,{7524,7525}}, + {0,0,0,0,0x3,0,0x402,0x9C40,0x182,{7526,7527,7528,7529} }, + {0,12,0,0,0,0,0x6,0x9C40,0x146,{7530,7531}}, + {0,12,0,0,0,0,0xA,0x9C40,0x5D,{7532,7533}}, + {0,12,0,0,0x3,0,0xE0C,0x9C40,0x140,{7534,7535,7536,7537} }, + {0,12,0,0,0,0,0xE,0x9C40,0xBA,{7538,7539}}, + {0,12,0,0,0,0,0x8,0x9C40,0x6A,{7540,4671}}, + {0,12,0,0,0,0,0x6,0x9C40,0x161,{7541,7542}}, + {0,0,0,0,0x3,2,0xA04,0x9C40,0x236,{7543,7544,7545,7546} }, + {0,0,0,0,0x3,3,0xE0E,0x9C40,0x14D,{7083,7084,7085,7086} }, + {0,0,0,0,0x3,2,0x608,0x9C40,0x5D,{7547,7548,7549,7550} }, + {0,12,0,0,0,0,0xB,0x9C40,0x445,{7551,7552}}, + {0,12,0,0,0,0,0x6,0x9C40,0x78,{7553,7554}}, + {0,0,0,0,0x3,8,0x505,0x9C40,0x5D,{7555,7556,7557,7556} }, + {0,0,0,0,0x3,7,0,0x9C40,0xBA,{7558,7559,7560,7561} }, + {0,0,0,0,0x3,7,0xA,0x9C40,0x189,{7562,7563,7564,7563} }, + {0,0,0,0,0x3,-2,0xA08,0x9C40,0x5D,{7565,7566,7567,7568} }, + {0,12,0,0,0,0,0x8,0x9C40,0x5D,{7569,7570}}, + {0,0,0,0,0x3,10,0x608,0x9C40,0x2D6,{7571,7572,7573,7572} }, + {-36,-36,0,0,0x3,8,0x909,0x9C40,0x416,{7574,7575,7576,7577} }, + {12,12,0,0,0x3,2,0x606,0x9C40,0xE9,{7578,7579,7580,7581} }, + {0,0,0,0,0x3,5,0x402,0x9C40,0x1AF4,{7582,7583,7584,7585} }, + {0,0,0,0,0x3,7,0x404,0x9C40,0x55D,{7586,7587,7588,7589} }, + {0,0,0,0,0x3,5,0xC0C,0x9C40,0x279,{7590,7591,7592,7591} }, + {0,0,0,0,0x3,9,0x602,0x9C40,0x9F2,{7593,7594,7595,7596} }, + {0,0,0,0,0x3,7,0x6,0x9C40,0x7B5,{7597,7598,7599,7598} }, + {0,0,0,0,0x3,4,0xC0C,0x1381,0x1590,{7600,7601,7602,7603} }, + {0,0,0,0,0x3,6,0xA06,0x9C40,0x1359,{7604,7605,7606,7607} }, + {0,0,0,0,0x3,7,0x808,0x9C40,0x1561,{7608,7609,7610,7609} }, + {0,0,0,0,0x3,6,0x707,0x9C40,0x104,{7611,7612,7611,7613} }, + {0,7,0,0,0x3,8,0x406,0x9C40,0x1485,{7614,7615,7616,7617} }, + {0,0,0,0,0x3,7,0,0xA56,0xA8C,{7618,7619,7618,7619} }, + {0,0,0,0,0x3,-3,0,0x9C40,0x736,{7620,7621,7622,7623} }, + {0,0,0,0,0x3,8,0x60E,0x231A,0x2BC0,{7624,7625,7626,7625} }, + {0,0,0,0,0x3,-5,0x707,0x9C40,0x12B9,{7627,7628,7629,7630} }, + {0,0,0,0,0x3,9,0xA0A,0x9C40,0x1E3C,{7631,7632,7633,7634} }, + {0,0,0,0,0x3,5,0xA0E,0x9C40,0x779,{7635,7636,7637,7638} }, + {0,0,0,0,0x3,2,0x602,0x244D,0xAE2,{7639,7640,7641,7640} }, + {0,0,0,0,0x3,0,0xA06,0x1719,0x779,{7105,7106,7107,7108} }, + {0,-12,0,0,0x3,2,0xA00,0x974,0x118D,{7109,7110,7111,7112} }, + {0,12,0,0,0,0,0x8,0x4CA,0xAE9,{7642,7643}}, + {0,0,0,0,0x3,0,0x6,0x49C,0x2D0,{7644,7645,352,7646} }, + {0,0,0,0,0x3,4,0xA06,0x9C40,0x15A,{7115,7116,7117,7118} }, + {0,12,0,0,0,0,0xE,0x9C40,0x28D,{7647,7648}}, + {0,12,0,0,0,0,0x8,0x9C40,0x21C,{7649,7650}}, + {5,12,0,0,0,0,0x1,0x21DA,0x2202,{7651,2296}}, + {0,12,0,0,0,0,0x4,0x189,0x146,{7652,7653}}, + {0,0,0,0,0x3,2,0xA06,0x4B6,0x550,{7126,7127,7128,7129} }, + {0,12,0,0,0,0,0xC,0xF0,0xBA,{7654,7655}}, + {-12,0,0,0,0x3,0,0x4,0x79A,0x938,{7656,7657,7658,7659} }, + {0,12,0,0,0x3,0,0xE00,0x229,0x17C,{7132,7133,7134,7135} }, + {-12,0,0,0,0x3,0,0x608,0x10E6,0x175,{7660,7661,7662,7663} }, + {0,12,0,0,0x3,7,0xA0A,0xB39,0x5D,{7664,7665,7666,7667} }, + {-14,12,0,0,0,0,0xE,0x265,0x132,{7137,7138}}, + {0,0,0,0,0x3,0,0xE0C,0x9C40,0x6D2,{7668,7669,6661,7670} }, + {-23,-24,0,0,0x3,0,0xE0E,0x2E75,0x2A3D,{7141,7142,7143,7142} }, + {12,12,0,0,0,0,0x7,0x611,0x722,{7671,7672}}, + {-24,-20,0,0,0x3,0,0x404,0x9C40,0xA5D,{7673,7674,7675,7674} }, + {-36,-14,0,0,0x3,0,0xC0C,0x9C40,0x876,{7676,7677,7678,7679} }, + {-36,-35,0,0,0x3,0,0xE0E,0x9C40,0xAD5,{7680,7681,7680,7681} }, + {0,12,0,0,0,0,0xE,0x280,0x182,{7682,7683}}, + {0,0,0,0,0x1,2,0xF,0x9C40,0x9A2,{7684,7685,7686,7687} }, + {-12,-12,0,0,0x3,7,0xC,0x902,0xAA0,{7688,7689,7690,7691} }, + {0,0,0,0,0x3,0,0xA06,0xE66,0xD5,{7382,7692,7693,7694} }, + {0,-12,0,0,0x3,0,0xA06,0xE66,0xDC,{7695,7696,7697,7385} }, + {0,14,0,0,0x1,-122,0xE,0x9C40,0x17C,{7698,7699,7700,7701} }, + {0,0,0,0,0x3,4,0x606,0x9C40,0x25E,{7702,7521,7703,7521} }, + {0,0,0,0,0,0,0,0x9C40,0x64,{7704,7705}}, + {0,0,0,0,0x3,2,0x406,0x2DF0,0x424,{7706,7306,7707,7308} }, + {0,12,0,0,0x3,3,0x507,0x9C40,0xC8,{7708,7709,7710,7711} }, + {0,-12,0,0,0x3,0,0xA06,0x3DA,0xDC,{7382,7712,7713,7714} }, + {0,14,-32,0,0x1,-122,0x60E,0x9C40,0x189,{7698,7715,7716,7717} }, + {0,0,0,0,0x3,7,0x404,0x9C40,0x55D,{7586,7718,7588,7719} }, + {0,0,0,0,0x3,7,0x808,0x9C40,0x1582,{7720,7609,7721,7609} }, + {12,12,0,0,0x3,2,0x408,0x9C40,0x78,{7722,7723,7415,7724} }, + {12,0,0,0,0x3,5,0xC04,0x9C40,0x53C,{7725,7726,7727,7728} }, + {0,0,0,0,0x3,4,0xC0C,0x9C40,0x535,{7729,7730,7731,7732} }, + {0,0,0,0,0x3,0,0xE08,0x9C40,0x6A,{7733,7734,7735,7736} }, + {0,0,0,0,0x3,5,0x2,0x9C40,0x175,{7737,7738,7739,7740} }, + {0,0,0,0,0x3,4,0xA0C,0x9C40,0x564,{7466,7741,7742,7743} }, + {0,0,0,0,0x3,4,0xE0E,0x9C40,0x57E,{7744,7453,7745,7469} }, + {0,0,0,0,0x3,4,0x808,0x9C40,0x71,{7540,144,7540,7746} }, + {-12,0,0,0,0x3,7,0,0x9C40,0xC1,{7558,7559,7560,7561} }, + {0,0,0,0,0x3,7,0x404,0x9C40,0xC1,{7747,7361,7748,7363} }, + {0,0,0,34,0,0,0xC,0x85,0x5D,{7149,7150}}, + {0,0,0,28,0,0,0xE,0xC1,0x71,{7151,7152}}, + {0,0,0,39,0x3,0,0x806,0x230,0x196,{7153,7154,7155,7156} }, + {0,0,0,33,0x3,0,0x806,0x230,0x19D,{7153,7154,7155,7156} }, + {-9,0,0,63,0x3,0,0xE0E,0xA0,0xB4,{7157,7158,7749,7750} }, + {0,0,0,15,0,0,0xE,0x6A,0x71,{7161,7162}}, + {0,0,0,36,0,0,0x8,0x6A,0x71,{7163,7164}}, + {0,21,0,36,0x3,26,0x8,0x1CC,0x229,{7163,7164,7165,7166} }, + {0,0,0,25,0x3,0,0xC04,0x139,0x189,{7751,7752,7753,7754} }, + {12,0,0,25,0x3,0,0xC06,0xCE,0xE2,{7755,7756,7753,7754} }, + {12,12,0,61,0x3,0,0xE0E,0x99,0xA6,{7757,7758,7759,7760} }, + {-24,-12,0,38,0x3,0,0xC0D,0x154,0x17C,{7761,7762,7763,7764} }, + {0,-2,0,37,0x3,0,0xA00,0xD5,0xDC,{7765,7766,7767,7766} }, + {8,1,0,38,0x3,0,0xE00,0x15A,0xC1,{7172,7173,7174,7175} }, + {0,12,10,15,0x3,0,0xC01,0x154,0x190,{7768,7768,7769,7770} }, + {0,4,0,100,0x3,9,0x806,0x8C,0x99,{7771,7772,7773,7774} }, + {0,12,10,19,0x3,0,0xC01,0x21C,0x286,{7775,7768,7776,7770} }, + {-5,12,0,48,0,0,0xA,0xB4,0xB4,{7179,7180}}, + {0,12,20,15,0x3,0,0xC00,0x154,0x189,{7777,7778,7779,7770} }, + {-5,0,0,48,0x3,-122,0x80A,0x3B9,0x452,{7181,7182,7183,7184} }, + {0,12,20,12,0x3,0,0xC00,0x154,0x189,{7777,7780,7781,7782} }, + {0,12,20,11,0x3,0,0xC00,0x154,0x189,{7777,7783,7776,7784} }, + {12,12,0,61,0x3,6,0x808,0xA50,0xE1D,{7785,7786,7785,7787} }, + {0,12,20,8,0x3,0,0xC00,0x146,0x182,{7777,7788,7776,7784} }, + {12,11,0,91,0x3,-3,0,0x4CA,0x5C1,{7789,7790,7791,7792} }, + {12,11,0,79,0x3,5,0x808,0x514,0x6CC,{7187,7188,7189,7190} }, + {0,12,0,70,0,0,0x8,0x3C6,0x474,{7793,7794}}, + {12,12,0,80,0x3,8,0xE06,0x12C,0xFD,{7795,7796,7797,7796} }, + {0,1,0,67,0x3,5,0xA0A,0x869,0xDFC,{7193,7194,7195,7196} }, + {12,12,0,58,0,0,0xC,0xCE,0x78,{7798,7799}}, + {12,12,0,62,0x3,6,0x808,0x891,0xCA8,{7785,7800,7785,7787} }, + {12,12,0,31,0x3,0,0xB0A,0x2D0,0x222,{7801,7802,7803,7804} }, + {12,11,0,91,0x3,-2,0,0x4D1,0x5C8,{7789,7805,7791,7792} }, + {6,0,0,41,0x3,0,0x2,0x175,0x125,{7806,7807,7808,7809} }, + {12,0,0,35,0x3,0,0xC0E,0x196,0x146,{7806,7810,7811,7812} }, + {0,10,0,29,0x3,0,0xC0C,0x92,0xE2,{7813,7814,7815,7812} }, + {8,0,0,41,0x3,0,0xC0E,0x196,0x146,{7816,7817,7818,7819} }, + {8,0,0,37,0x3,0,0xC0E,0x196,0x140,{7816,7817,7818,7819} }, + {12,10,0,54,0x3,0,0xA0C,0x118,0x146,{7198,726,7199,7200} }, + {12,10,0,48,0x3,0,0xA0C,0x11E,0x146,{7198,726,7201,7200} }, + {12,6,0,77,0x3,0,0x808,0xC1,0xAD,{7820,7821,7822,7823} }, + {12,11,0,72,0x3,0,0x808,0xC8,0xA6,{7824,7825,7822,7826} }, + {12,12,0,88,0,0,0xF,0x8C,0x64,{697,698}}, + {12,12,0,40,0,0,0xE,0x201,0x5D,{7827,7828}}, + {12,12,0,38,0,0,0,0xC8,0x5D,{7829,7830}}, + {12,12,0,36,0,0,0xA,0x26C,0x5D,{7831,7832}}, + {0,0,0,60,0x3,0,0xE0C,0x78,0x64,{1340,1340,7202,7203} }, + {0,-12,0,60,0x3,0,0x20E,0x175,0x64,{7202,7203,7204,7205} }, + {12,12,0,73,0,0,0x8,0xA6,0x64,{7206,2302}}, + {0,-2,0,68,0x3,0,0,0x99,0x6A,{7207,7208,7207,7209} }, + {12,12,0,61,0,0,0x6,0xC8,0x6A,{2362,2302}}, + {13,13,0,18,0x3,0,0x8,0xC8,0x92,{7210,7211,7212,7213} }, + {13,13,0,18,0x3,0,0xC,0xFD,0xAD,{7214,7215,7216,7217} }, + {12,12,0,90,0,0,0x8,0xC1,0x5D,{7833,744}}, + {12,12,0,90,0,0,0x8,0x319,0x6A,{7834,746}}, + {12,12,0,64,0x3,2,0xE0E,0x175,0x6A,{7220,7221,7222,7223} }, + {12,12,0,80,0x3,2,0x606,0x19D,0x1A4,{7835,7836,7837,7836} }, + {0,3,0,64,0x3,0,0x101,0x76C,0x898,{7838,7839,7840,7841} }, + {0,0,0,67,0,0,0xE,0x6A,0x5D,{7224,7225}}, + {0,-7,0,50,0x3,0,0x8,0xAD,0x139,{7842,7843,7844,7845} }, + {0,0,0,36,0,0,0,0x11F1,0x14FD,{7846,7847}}, + {0,0,0,25,0x3,0,0x804,0x11E,0x189,{7751,7752,7848,7849} }, + {12,0,0,25,0x3,0,0x408,0x416,0x161,{7755,7756,7850,7851} }, + {0,0,20,43,0x1,0,0xE,0x1FA,0x24A,{7852,7853,7854,7855} }, + {0,12,10,15,0x3,0,0xC01,0x4B0,0x58C,{7856,7857,7858,7859} }, + {-5,0,0,48,0x3,-122,0x806,0x118,0x140,{7176,7177,7176,7178} }, + {0,12,10,19,0x3,0,0xC01,0x4A9,0x585,{7856,7857,7860,7859} }, + {0,12,10,22,0x3,0,0xC01,0x4A9,0x58C,{7856,7857,7858,7859} }, + {0,12,10,24,0x3,0,0xC01,0x4A9,0x585,{7856,7857,7858,7859} }, + {0,12,10,27,0x3,0,0x1,0x4A9,0x58C,{7856,7857,7858,7859} }, + {12,12,0,61,0x3,6,0x808,0xC72,0x708,{7185,7186,7185,7186} }, + {0,12,10,31,0x3,0,0xC01,0x4B0,0x58C,{7856,7857,7858,7859} }, + {12,12,0,60,0x3,2,0xA0E,0x320,0x3A5,{7861,7790,7862,7790} }, + {12,12,0,62,0x3,6,0x808,0xC8D,0x73D,{7185,7197,7185,7197} }, + {12,12,0,61,0,0,0x8,0x326,0x3B9,{7863,7864}}, + {0,12,0,49,0x3,0,0xC01,0x104,0x12C,{7865,7866,7170,7867} }, + {0,0,0,86,0x3,-122,0xE08,0x99,0xAD,{7868,7869,7870,7871} }, + {0,0,0,86,0x1,0,0xC0C,0x9C40,0xF0,{7872,7873,7874,7875} }, + {24,31,0,49,0x3,0,0,0x1AA,0x1F4,{7876,25,7877,25} }, + {12,0,0,0,0,0,0xA,0x9C40,0xC8,{7878,7879}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{7880,7881}}, + {12,0,0,0,0,0,0xA,0x855,0x960,{7882,7883}}, + {12,0,0,0,0,0,0x6,0x4D1,0x5D,{1180,7884}}, + {12,0,0,0,0,0,0xA,0x9C40,0x5D,{7885,7886}}, + {12,0,0,0,0,0,0x8,0x9C40,0x5D,{7887,7888}}, + {-12,0,0,0,0,0,0x4,0x9C40,0x5D,{7889,7890}}, + {12,0,0,0,0,0,0xE,0x9C40,0x6A,{7891,7892}}, + {12,0,0,0,0,0,0xC,0x9C40,0x5D,{7893,7894}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{1123,7895}}, + {0,0,0,73,0,0,0xE,0x9C40,0x5D,{1123,7895}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{4498,7896}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{7897,7898}}, + {0,0,0,0,0,0,0x8,0x1BB5,0x201C,{960,7899}}, + {-6,0,0,0,0,0,0,0x10E6,0x1366,{7900,7901}}, + {-18,0,0,0,0,0,0xE,0x286,0x5D,{651,7902}}, + {12,0,0,0,0,0,0,0xFD,0x5D,{7903,7904}}, + {12,0,0,12,0,0,0,0xFD,0x5D,{7903,7904}}, + {12,0,0,0,0,0,0xE,0x258,0xD5,{7905,7906}}, + {12,0,0,1,0,0,0xE,0x258,0xD5,{7905,7906}}, + {12,0,0,0,0,0,0,0x85,0xCE,{7907,7908}}, + {12,0,0,23,0,0,0,0x85,0xCE,{7907,7908}}, + {12,0,0,0,0,0,0xE,0x258,0xD5,{7909,7910}}, + {-12,0,0,0,0,0,0x8,0xE09,0x1316,{7911,7912}}, + {12,0,0,0,0,0,0xE,0x9C40,0x6A,{7913,7914}}, + {-12,0,0,0,0,0,0xA,0x9C40,0x5D,{7915,7916}}, + {12,0,0,0,0,0,0x8,0x9C40,0xAD,{7917,7918}}, + {-12,0,0,0,0,0,0x6,0x9C40,0x50,{7919,7920}}, + {-12,0,0,0,0,0,0,0xF6,0x5D,{7903,7921}}, + {21,0,0,0,0x4,0,0x8,0x6,0,{5397,7922}}, + {0,0,0,0,0,0,0x6,0x1352,0x2DD,{5776,7923}}, + {0,0,0,0,0,0,0x6,0x1352,0x2DD,{5777,7923}}, + {0,0,0,0,0,0,0x6,0x1352,0x2DD,{7924,7923}}, + {0,0,0,0,0,0,0x6,0x1172,0x251,{5782,7925}}, + {0,0,0,0,0,0,0,0x471E,0x5D,{5788,7926}}, + {0,0,0,0,0,0,0xA,0x924,0x189,{7927,7928}}, + {0,0,0,0,0,0,0x8,0x1212,0x89E,{5801,7929}}, + {0,0,0,0,0,0,0x8,0x4D1,0x64,{5806,5805}}, + {0,0,0,0,0,0,0x8,0x11C2,0x1136,{5432,7930}}, + {0,12,0,0,0,-128,0x8,0x46FD,0x54DE,{7931,7932}}, + {0,12,0,0,0,-128,0x8,0x49C,0x578,{7933,7934}}, + {0,0,0,0,0,0,0,0x11FE,0x2DD,{7935,7936}}, + {-12,0,0,0,0,0,0xE,0x30C,0x57E,{5441,7937}}, + {0,0,0,0,0,0,0xE,0x2BC,0x5B4,{5642,5643}}, + {0,0,0,0,0,0,0x8,0x16F1,0x5D,{7938,7939}}, + {0,0,0,0,0,0,0x1,0x9C40,0x5D,{5647,1069}}, + {-12,0,0,0,0,0,0,0x9C40,0x5D,{5790,7940}}, + {-12,0,0,0,0,0,0,0x9C40,0x5D,{5788,7941}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5786,7942}}, + {0,0,0,0,0,0,0x2,0x9C40,0x189,{5795,7943}}, + {0,0,0,0,0,0,0xE,0x9C40,0x258,{5912,7944}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{7945,7946}}, + {0,0,0,0,0,0,0x6,0x209A,0x8B9,{7947,7948}}, + {0,0,0,0,0,0,0x6,0x1DF2,0x251,{7949,7950}}, + {0,0,0,0,0,0,0xE,0x9C40,0x56,{1414,1415}}, + {0,0,0,0,0,0,0x4,0x1964,0x46D,{7951,7952}}, + {0,0,0,0,0,0,0x4,0x196A,0x46D,{7953,7954}}, + {0,12,0,0,0,-128,0x8,0x9C40,0x5D,{7955,7956}}, + {0,12,0,0,0,-128,0x8,0x9C40,0x5D,{7955,6512}}, + {0,0,0,0,0,0,0xC,0x9C40,0xA6,{7957,7958}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5875,7959}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{5877,7960}}, + {0,12,0,0,0,-128,0xA,0x9C40,0x5D,{5877,7960}}, + {12,0,0,0,0,0,0,0x959,0x64,{7961,7962}}, + {12,12,0,0,0,-128,0xE,0x9C40,0x5D,{5811,7963}}, + {0,12,0,0,0,-128,0x8,0x16EA,0x5D,{5822,7939}}, + {0,0,0,0,0,0,0xE,0x9C40,0x154,{5495,536}}, + {0,0,0,0,0,0,0xE,0x9C40,0x182,{7964,536}}, + {0,0,0,0,0,0,0xE,0x9C40,0x189,{7965,536}}, + {0,0,0,0,0,0,0xE,0x9C40,0x175,{5491,7966}}, + {12,0,0,0,0,0,0,0xFD,0x5D,{693,1343}}, + {0,0,0,0,0,0,0,0x2274,0x14C1,{1260,7967}}, + {-12,0,0,0,0,0,0xF,0x49C,0xB40,{7968,3895}}, + {0,12,0,0,0,-128,0,0x9C40,0x2AE,{7969,7970}}, + {0,12,0,0,0,-128,0,0x9C40,0x2A8,{7969,7971}}, + {0,12,0,0,0,-128,0,0x9C40,0x9DE,{5846,7972}}, + {0,0,0,0,0,0,0x8,0x9C40,0xAD,{7973,7974}}, + {0,0,0,0,0,0,0x2,0x9C40,0x92,{6940,6941}}, + {0,0,0,0,0,0,0x6,0x161C,0xA71,{5690,5691}}, + {-12,0,0,0,0,0,0x8,0x916,0xAC1,{7975,7976}}, + {0,12,0,0,0,-128,0xC,0x9C40,0x189,{5534,7977}}, + {0,0,0,0,0,0,0xC,0x9C40,0x2DD,{5524,7978}}, + {0,12,0,0,0,-128,0xC,0x9C40,0x2DD,{7979,7980}}, + {0,0,0,0,0,0,0xE,0x9C40,0x125,{5491,7981}}, + {0,12,0,0,0,-128,0xE,0x9C40,0x2DD,{5921,6559}}, + {0,0,0,0,0,0,0xE,0x9C40,0x16E,{5926,7982}}, + {0,12,0,0,0,-128,0xC,0x9C40,0x189,{7983,7977}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{5902,7984}}, + {0,0,0,0,0,0,0xC,0x9C40,0x5D,{5899,7985}}, + {0,0,0,0,0,0,0xC,0x9C40,0x64,{5536,7984}}, + {12,0,0,0,0,0,0xC,0x9C40,0x64,{5903,7984}}, + {12,0,0,0,0,0,0x2,0x9C40,0x5D,{5910,7986}}, + {12,0,0,0,0,0,0xE,0x9C40,0x5D,{7987,7988}}, + {0,0,0,0,0,0,0x2,0x9C40,0x5D,{7989,7990}}, + {0,12,0,0,0,-128,0xC,0x9C40,0x92,{5712,7991}}, + {-12,0,0,0,0,0,0x2,0x9C40,0x71,{5896,7992}}, + {0,12,0,0,0,-128,0x2,0x9C40,0x71,{5894,7992}}, + {-12,12,0,0,0,-128,0x2,0x9C40,0x71,{7993,7992}}, + {0,12,0,0,0,-128,0x2,0x9C40,0x71,{7994,7992}}, + {12,0,0,0,0,0,0x6,0x208,0x16E,{7995,7996}}, + {0,0,0,0,0,0,0xE,0x9C40,0x6A,{1144,1145}}, + {-31,0,0,0,0,0,0xD,0x9C40,0x58C,{7270,7997}}, + {0,0,0,0,0,0,0x8,0x9C40,0x5D,{5786,7998}}, + {0,0,0,0,0,0,0,0x9C40,0xDC,{7999,8000}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{8001,8002}}, + {-12,0,0,0,0,0,0x2,0x9C40,0x71,{8003,5895}}, + {0,0,0,0,0,0,0,0x2EB1,0x5D,{8004,8005}}, + {0,0,0,0,0,0,0xA,0x9C40,0x5D,{8006,8007}}, + {0,0,0,0,0,0,0x8,0x16EA,0x5D,{5822,7939}}, + {0,0,0,0,0,0,0x6,0x9C40,0x578,{5930,8008}}, + {0,0,0,0,0,0,0x6,0x9C40,0x12C0,{5856,8009}}, + {12,0,0,0,0,0,0xC,0x9C40,0xA35,{8010,8011}}, + {0,0,0,0,0,0,0xA,0x9C40,0x4E5,{8012,8013}}, + {-12,0,0,0,0,0,0xC,0x646,0x826,{7957,8014}}, + {0,0,0,0,0,0,0x8,0x47CC,0x151E,{5830,5831}}, + {0,0,0,0,0,0,0x8,0x3AC0,0xC1,{8015,8016}}, + {0,0,0,0,0,0,0x8,0x38D2,0xBA,{8017,8016}}, + {0,0,0,0,0,0,0xA,0x916,0xAD5,{8018,8019}}, + {0,0,0,0,0,0,0x6,0x9C40,0x3861,{5832,8020}}, + {12,0,0,0,0,0,0xE,0x9C40,0x27F9,{5443,8021}}, + {0,0,0,0,0,0,0,0x9C40,0x1179,{5834,8022}}, + {0,0,0,0,0,0,0x8,0x9C40,0x10ED,{5848,8023}}, + {0,0,0,0,0,0,0x2,0x9C40,0x53C,{5856,8024}}, + {0,0,0,0,0,0,0x8,0x9C40,0x1511,{5840,8025}}, + {0,0,0,0,0,0,0x6,0x9C40,0x2274,{5744,8026}}, + {0,0,0,0,0,0,0,0x256C,0x1596,{984,3279}}, + {0,0,0,0,0,0,0x8,0x2E4,0x370,{4030,8027}}, + {0,0,0,0,0,0,0xE,0x1C62,0x217D,{5961,5962}}, + {-12,0,0,0,0,0,0xE,0x48E,0xB40,{5958,3895}}, + {0,0,0,0,0,0,0xA,0x9C40,0xE2,{5854,8028}}, + {0,0,0,0,0,0,0xE,0x9C40,0x5D,{8029,8030}}, + {0,0,0,0,0,0,0x6,0x9C40,0xAD5,{5434,8031}}, + {12,12,0,0,0,0,0x4,0x125,0xF6,{2297,2298}}, + {0,0,0,0,0,0,0xA,0x96D,0x57E,{5950,8032}}, + {12,12,0,0,0,-128,0xE,0x19D,0x5D,{651,652}}, + {12,0,0,0,0,0,0x1,0x4BD,0x578,{8033,584}}, + {0,0,0,0,0,0,0xE,0x4B6,0xE2,{651,406}}, + {0,0,0,0,0,0,0x6,0x4DE,0x64,{1114,1323}}, + {12,12,0,0,0,-128,0xE,0x111,0x49,{755,756}}, + {12,12,0,0,0,0,0xE,0x5BA,0xF6,{2311,2312}}, + {-12,0,0,0,0,0,0xA,0x9C40,0x58C,{4118,8034}}, + {0,0,0,0,0,0,0xE,0x1435,0x2D0,{8035,8036}}, + {0,0,0,0,0,0,0xE,0x111,0x49,{6668,8037}}, + {0,0,0,0,0,0,0,0x9C40,0x2169,{5943,8038}}, + {0,0,0,0,0,0,0xE,0xECA,0x2D6,{8039,8040}}, + {0,0,0,0,0,0,0xE,0x272,0x2DD,{5952,8041}}, + {12,12,0,37,0,-128,0x6,0x3CD,0x5D,{1114,1323}}, + {12,12,0,48,0,-128,0xE,0x64,0x5D,{6224,6225}}, + {12,12,0,48,0,-128,0xE,0x11E,0x146,{929,6226}}, + {0,0,0,62,0,0,0xE,0xA6,0x85,{8042,8043}}, + {0,0,0,44,0,0,0x1,0x3D4,0x46D,{8033,584}}, + {0,0,0,80,0,0,0xE,0x64,0x5D,{6224,8044}}, + {0,0,0,50,0,0,0x1,0x3CD,0x474,{8033,584}}, + {12,12,0,48,0,-128,0xE,0x64,0x6A,{6224,8045}}, + {0,0,0,55,0,0,0x1,0x3CD,0x474,{8033,584}}, + {0,0,0,61,0,0,0xE,0x1FA,0x5D,{8046,8047}}, + {0,0,0,58,0,0,0x1,0x3CD,0x47A,{8033,584}}, + {0,0,0,63,0,0,0x1,0x3C6,0x47A,{8033,584}}, + {0,0,0,71,0,0,0xE,0x53C,0x74A,{8048,8049}}, + {0,0,0,72,0,0,0x1,0x32D,0x3C0,{8033,584}}, + {0,0,0,70,0,0,0,0x736,0x862,{8050,8051}}, + {0,0,0,88,0,0,0xE,0x53C,0x74A,{8048,8049}}, + {0,0,0,76,0,0,0,0x73D,0x876,{8050,8052}}, + {0,0,0,84,0,0,0xE,0x104,0x111,{8053,8054}}, + {0,0,0,68,0,0,0xE,0x52E,0x74A,{8048,8049}}, + {0,0,0,72,0,0,0x8,0x92,0x78,{8042,8043}}, + {0,0,0,28,0,0,0xA,0x4A2,0x564,{4531,8055}}, + {0,0,0,81,0,0,0,0x535,0x611,{8050,8051}}, + {24,12,0,58,0,-128,0x1,0xF6,0x118,{8056,8057}}, + {24,12,0,55,0,-128,0x1,0xF6,0x118,{8056,8057}}, + {24,12,0,44,0,-128,0x1,0xF6,0x118,{8056,8057}}, + {24,12,0,49,0,-128,0x1,0xF6,0x118,{8056,8057}}, + {24,12,0,40,0,-128,0x1,0x11E,0x146,{8056,8057}}, + {12,12,0,55,0,-128,0,0x2D6,0x744,{8058,8059}}, + {12,12,0,48,0,-128,0,0x35C,0x848,{8058,8059}}, + {0,0,0,52,0,0,0xF,0x1FA,0x251,{8060,8061}}, + {0,0,0,45,0,0,0xF,0x1FA,0x251,{8060,8061}}, + {12,12,0,48,0,-128,0xE,0x92,0x2BC,{8062,8063}}, + {12,12,0,48,0,-128,0xE,0x78,0x46D,{8062,8064}}, + {12,12,0,48,0,-128,0xE,0xF6,0x175,{8062,8065}}, + {12,12,0,73,0,-128,0xE,0xA0,0x5D,{651,652}}, + {12,12,0,68,0,-128,0xE,0xA0,0x5D,{651,652}}, + {12,12,0,63,0,-128,0xE,0xC1,0x5D,{651,652}}, + {12,12,0,0,0,0,0xA,0x28,0x5D,{2363,2359}}, + {0,0,0,108,0,0,0x8,0x19D,0x5D,{5803,8066}}, + {0,0,0,108,0,0,0x8,0x2E4,0x5D,{5803,8067}}, + {0,0,0,0,0,0,0,0x4A9,0x58C,{8068,8069}}, + {0,0,0,0,0,0,0x404,0x9C40,0xC1,{8070,8071}}, + {0,0,0,0,0,0,0x808,0x14E2,0x1129,{3254,8072}}, + {0,0,0,0,0,0,0x202,0x9C40,0x47A,{8073,8074}}, + {0,0,0,0,0,0,0x606,0x201,0x251,{4069,8075}}, + {0,0,0,0,0,0,0xC0C,0x2EA,0x64,{8076,8077}}, + {0,0,0,0,0,0,0x606,0x9C40,0x6A,{8078,8079}}, + {0,0,0,0,0,0,0x606,0xD76,0xE2,{8080,8081}}, + {0,0,0,0,0,0,0x606,0x9C40,0x5D,{4059,8082}}, + {0,0,0,0,0,0,0x606,0x9C40,0xC1,{2532,8083}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x42,{8084,8085}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x42,{8086,8085}}, + {0,0,0,0,0,0,0xE0E,0x6FA,0x64,{8087,8088}}, + {0,0,0,0,0,0,0x202,0x9C40,0x5D,{8089,8090}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{8091,8092}}, + {0,0,0,0,0,0,0,0x48E,0x564,{8093,8094}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x549,{584,8095}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x535,{8096,8097}}, + {0,0,0,0,0,0,0x808,0x9C40,0xA7E,{8098,8099}}, + {0,0,0,0,0,0,0xE0E,0x1C5,0x50,{5356,8100}}, + {0,0,0,0,0,0,0xA0B,0x9C40,0x5D,{8101,8101}}, + {0,0,0,0,0,0,0x808,0x26C,0x2D6,{948,949}}, + {0,0,0,0,0,0,0xE0E,0x460,0x71,{8102,8103}}, + {0,0,0,0,0,0,0,0x71,0x5D,{8104,8105}}, + {0,0,0,0,0,0,0xA0A,0x265,0x5D,{8106,8107}}, + {0,0,0,0,0,0,0xE0E,0x334,0x56,{8108,8109}}, + {0,0,0,0,0,0,0xE0F,0x99,0x6A,{8110,8111}}, + {0,0,0,0,0,0,0xE0F,0x6A,0x71,{8112,8111}}, + {0,0,0,0,0,0,0x808,0x71,0x6A,{8113,8114}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x9C4,{8115,8116}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xAE9,{8117,8118}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xAE2,{8119,8120}}, + {0,0,0,0,0,0,0xE0E,0xBA,0xC8,{8121,8122}}, + {0,0,0,0,0,0,0xE0E,0xB4,0xC8,{8123,8124}}, + {0,0,0,0,0,0,0x808,0x140,0x168,{3189,8125}}, + {0,0,0,0,0,0,0x808,0x1D9,0x64,{8126,8127}}, + {0,0,0,0,0,0,0x1,0x294,0x25E,{8128,8129}}, + {0,0,0,0,0,0,0,0x1810,0xAC8,{8130,8131}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{8132,8133}}, + {0,0,0,0,0,0,0xE0E,0x319,0x5D,{8132,8134}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x251,{8135,8136}}, + {0,0,0,0,0,0,0xE0E,0x272,0x5D,{8137,8138}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0xB61,{8139,8140}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2DD,{8141,8142}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x189,{8143,8144}}, + {0,0,0,0,0,0,0x808,0x9C40,0x5D,{8145,8146}}, + {0,0,0,0,0,0,0xE0E,0x125,0x168,{3189,928}}, + {0,0,0,0,0,0,0xE0E,0x2BC,0x2B5,{8147,8148}}, + {0,0,0,0,0,0,0xE0E,0x3D4,0x2AE,{8149,8150}}, + {0,0,0,0,0,0,0xE0E,0x118,0x50,{8151,8152}}, + {0,0,0,0,0,0,0,0x1FA,0x251,{8153,8154}}, + {0,0,0,0,0,0,0,0x6F4,0xA99,{8155,8156}}, + {0,0,0,0,0,0,0,0x1A4,0xC1,{8157,8158}}, + {0,0,0,0,0,0,0xE0E,0x1C5,0x42,{8159,8160}}, + {0,0,0,0,0,0,0xE0E,0x1C5,0x42,{8159,8161}}, + {0,0,0,0,0,0,0x808,0x9C40,0x409,{8162,8163}}, + {0,0,0,0,0,0,0xE0E,0x11E,0x146,{8164,8165}}, + {0,0,0,0,0,0,0,0x2C2,0x258,{8166,8167}}, + {0,0,0,0,0,0,0x606,0x161,0x5D,{8166,8168}}, + {0,0,0,0,0,0,0xE0E,0xD91,0x182,{8169,8170}}, + {0,0,0,0,0,0,0xC0C,0x15A,0x189,{8171,8172}}, + {0,0,0,0,0,0,0xE0E,0x154,0x5D,{8173,8174}}, + {0,0,0,0,0,0,0xE0E,0x154,0x5D,{8175,8176}}, + {0,0,0,0,0,0,0xE0E,0x1220,0x891,{8177,962}}, + {0,0,0,0,0,0,0xA0A,0x1220,0x898,{8177,962}}, + {0,0,0,0,0,0,0xE0E,0x320,0x466,{8178,8179}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x47A,{8180,8181}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x585,{8182,8183}}, + {0,0,0,0,0,0,0xE0E,0x21C,0x5D,{914,8184}}, + {0,0,0,0,0,0,0xE0E,0xB4,0x42,{8159,8185}}, + {0,0,0,0,0,0,0xE0E,0xF6,0xA6,{8159,8186}}, + {0,0,0,0,0,0,0xE0E,0x17C,0x42,{8187,8188}}, + {0,0,0,0,0,0,0xE0E,0x1FA,0x251,{8189,8190}}, + {0,0,0,0,0,0,0xE0E,0x1838,0x1C98,{8191,8192}}, + {0,0,0,0,0,0,0x808,0x1D2,0x64,{8126,8193}}, + {0,0,0,0,0,0,0,0x9C40,0x58C,{8194,8195}}, + {0,0,0,0,0,0,0,0x9C40,0x226D,{8196,8197}}, + {0,0,0,0,0,0,0,0x1A90,0x2176,{8198,8199}}, + {0,0,0,0,0,0,0,0x1A54,0x2134,{8200,8201}}, + {0,0,0,0,0,0,0x808,0x2086,0x215C,{8202,8203}}, + {0,0,0,0,0,0,0x808,0xA5D,0xAB4,{8204,8205}}, + {0,0,0,0,0,0,0,0x1FA,0x251,{8153,8206}}, + {0,0,0,0,0,0,0xE0E,0x1C5,0x71C,{8207,8208}}, + {0,0,0,0,0,0,0xC0C,0x1220,0x8AC,{8209,8210}}, + {0,0,0,0,0,0,0xE0E,0x123A,0x1568,{8211,8212}}, + {0,0,0,0,0,0,0xE0E,0x1130,0x1492,{8213,8214}}, + {0,0,0,0,0,0,0xE0E,0x7D0,0x139,{8215,8216}}, + {0,0,0,0,0,0,0xE0E,0x182,0x139,{8217,8218}}, + {0,0,0,0,0,0,0x606,0x1E0,0x251,{8219,8220}}, + {0,0,0,0,0,0,0x606,0x47A,0x64,{8221,8222}}, + {0,0,0,0,0,0,0xC0C,0x1D9,0x6A,{8223,8224}}, + {0,0,0,0,0,0,0x606,0x78,0x6A,{8225,8226}}, + {0,0,0,0,0,0,0x606,0x56,0x5D,{8080,8227}}, + {0,0,0,0,0,0,0x606,0x71,0x5D,{8080,8228}}, + {0,0,0,0,0,0,0x606,0x71,0x5D,{8229,8230}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x104D,{8231,8232}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xA8C,{8233,8234}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0xAE9,{8233,8235}}, + {0,0,0,0,0,0,0xE0E,0x111,0x49,{755,8236}}, + {0,0,0,0,0,0,0xE0E,0x265,0x26C,{8237,8238}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x5D,{8239,8240}}, + {0,0,0,0,0,0,0xE0E,0x168,0xC1,{8241,8242}}, + {0,0,0,0,0,0,0xE0E,0x3616,0x4455,{8243,8244}}, + {0,0,0,0,0,0,0xE0E,0x1BEA,0x2245,{8245,8246}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x2274,{8247,8248}}, + {0,0,0,0,0,0,0,0x4B0,0x58C,{8249,8250}}, + {0,0,0,0,0,0,0x606,0x4B0,0x58C,{8249,8250}}, + {0,0,0,0,0,0,0x808,0x9C40,0x8A5,{8251,8252}}, + {0,0,0,0,0,0,0xE0E,0x3D4,0xADC,{8253,934}}, + {0,0,0,0,0,0,0,0x474,0x5D,{8155,8254}}, + {0,0,0,0,0,0,0x808,0x848,0x258,{8255,8256}}, + {0,0,0,0,0,0,0xA0B,0x4E5,0x5BA,{8257,8257}}, + {0,0,0,0,0,0,0,0x85,0x64,{8258,8259}}, + {0,0,0,0,0,0,0x808,0x7AE,0x87D,{8251,8260}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x182,{8261,8262}}, + {0,0,0,0,0,0,0xE0E,0x179E,0x152C,{8263,8264}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x14D,{8265,8266}}, + {0,0,0,0,0,0,0,0x9C40,0x58C,{8267,8268}}, + {0,0,0,0,0,0,0,0x9C40,0x5D,{8269,8270}}, + {0,0,0,0,0,0,0x404,0x9C40,0x550,{8271,8272}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x182,{8273,8274}}, + {0,0,0,0,0,0,0xE0F,0x9C40,0x5D,{8275,8276}}, + {0,0,0,0,0,0,0xE0F,0x139,0xA0,{8277,8278}}, + {0,0,0,0,0,0,0,0x9C40,0x92,{8279,8280}}, + {0,0,0,0,0,0,0x404,0x15C5,0x2DD,{8281,8282}}, + {0,0,0,0,0,0,0x202,0x192E,0x258,{8283,8284}}, + {0,0,0,0,0,0,0x606,0x1040,0x44C,{8285,8286}}, + {0,0,0,0,0,0,0x606,0x1004,0x416,{8287,8288}}, + {0,0,0,0,0,0,0,0x71,0x5D,{8289,8290}}, + {0,0,0,0,0,0,0,0x85,0x64,{8291,8292}}, + {0,0,0,0,0,0,0xE0E,0x85,0x92,{8293,8294}}, + {0,0,0,0,0,0,0,0x4A9,0xAAD,{8295,8296}}, + {0,0,0,0,0,0,0,0x25E,0x2AE,{8093,8297}}, + {0,0,0,0,0,0,0x808,0x9C40,0x84E,{8298,8299}}, + {0,0,0,0,0,0,0xE0E,0xC8,0x64,{8300,8301}}, + {0,0,0,0,0,0,0xA0A,0x265,0x2D6,{8302,8303}}, + {0,0,0,0,0,0,0xA0A,0x1194,0x1518,{7935,8304}}, + {0,0,0,0,0,0,0xE0E,0x92,0x5D,{8305,8306}}, + {0,0,0,0,0,0,0xE0E,0x15A,0x190,{8307,8308}}, + {0,0,0,0,0,0,0x202,0x9C40,0x2C2,{8309,8310}}, + {0,0,0,0,0,0,0x202,0x9C40,0x542,{8311,8312}}, + {0,0,0,0,0,0,0xA0A,0x2FE,0x190,{8313,8314}}, + {0,0,0,0,0,0,0x404,0x15C5,0x2DD,{8315,8316}}, + {0,0,0,0,0,0,0x808,0x765,0x8B9,{8317,8318}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x4F2,{8319,8320}}, + {0,0,0,0,0,0,0x808,0x1068,0x474,{3254,8321}}, + {0,0,0,0,0,0,0x606,0x3C6A,0x1450,{5445,8322}}, + {0,0,0,0,0,0,0xC0C,0x9C40,0x500,{8323,8324}}, + {0,0,0,0,0,0,0x1,0x189,0x535,{3651,1343}}, + {0,0,0,0,0,0,0xA0A,0x9C40,0x222,{8325,8326}}, + {0,0,0,0,0,0,0xE0E,0x9C40,0x3CCE,{8327,8328}}, + {0,0,0,0,0,0,0,0x11E,0x5D,{8329,8330}}, + {0,0,0,0,0,0,0xA0A,0x2BC,0xDC,{8331,1229}}, + {0,0,0,0,0,0,0x404,0x9C40,0x1ED,{8332,8333}}, + {0,0,0,0,0,0,0x606,0x208,0x25E,{8334,8075}}, + {0,0,0,0,0,0,0x606,0x201,0x25E,{8335,8075}}, + {0,0,0,0,0,0,0x202,0x9C40,0x549,{8336,8312}}, + {0,0,0,60,0,0,0,0x64,0x6A,{8337,8338}}, + {0,0,0,36,0,0,0,0x6A,0x71,{8337,8338}}, + {0,0,0,12,0,0,0,0x71,0x71,{8337,8338}}, + {0,0,0,60,0,0,0,0xAD,0xC1,{8337,8339}}, + {0,0,0,36,0,0,0,0xC8,0xE2,{8337,8339}}, + {0,0,0,12,0,0,0,0xCE,0xE9,{8337,8339}}, + {0,0,0,12,0,0,0xE0E,0xCE,0xDC,{5384,5385}}, + {0,0,0,12,0,0,0xE0E,0x279,0x2DD,{8340,8341}}, + {0,0,0,58,0,0,0,0x1D2,0x5D,{8342,8222}}, + {0,0,0,53,0,0,0,0x265,0x5D,{8342,8222}}, + {0,0,0,55,0,0,0xE0E,0x146,0x334,{8343,8344}}, + {0,0,0,64,0,0,0xE0E,0x11E,0x140,{932,933}}, + {0,0,0,78,0,0,0xE0E,0xF6,0x111,{932,933}}, + {0,0,0,84,0,0,0xE0E,0xF6,0x111,{932,933}}, + {0,0,0,41,0,0,0x606,0x9C40,0x55D,{8345,859}}, + {0,0,0,84,0,0,0x808,0x146,0x118,{943,8346}}, + {0,0,0,84,0,0,0xE0E,0x9C40,0x5D,{8347,8348}}, + {0,0,0,48,0,0,0x606,0x9C40,0x3C6,{8345,859}}, + {0,0,0,84,0,0,0xE0E,0x9C40,0xF6,{8349,8074}}, + {0,0,0,55,0,0,0x606,0x9C40,0x2C2,{8345,859}}, + {0,0,0,72,0,0,0xE0E,0xD5,0x49,{755,756}}, + {0,0,0,84,0,0,0xE0E,0x92,0x50,{8350,8351}}, + {0,0,0,54,0,0,0xE0E,0x11E,0x146,{8352,8308}}, + {0,0,0,60,0,0,0xE0E,0xF0,0x49,{8353,8354}}, + {0,0,0,84,0,0,0xE0E,0x305,0x64,{8102,8355}}, + {0,0,0,32,0,0,0x808,0x2C2,0x64D,{5336,5337}}, + {0,0,0,48,0,0,0x808,0x1FA,0x251,{948,949}}, + {0,0,0,48,0,0,0x404,0x1FA,0x24A,{8356,8357}}, + {0,0,0,48,0,0,0xA0A,0x104,0x146,{8358,2378}}, + {0,0,0,80,0,0,0,0x8C,0x99,{8153,8206}}, + {0,0,0,55,0,0,0,0xDC,0xFD,{8153,8206}}, + {0,0,0,12,0,0,0,0x258,0x2C9,{8153,8206}}, + {0,0,0,55,0,0,0x808,0x500,0x891,{8359,8360}}, + {0,0,0,41,0,0,0x808,0x3AC,0x571,{8361,8362}}, + {0,0,0,60,0,0,0,0x5B4,0x87D,{8155,8156}}, + {0,0,0,84,0,0,0x606,0x9C40,0x175,{8345,859}}, + {0,0,0,84,0,0,0xE0E,0x29A,0x73D,{8253,934}}, + {0,0,0,84,0,0,0x606,0x6A,0x5D,{8080,8228}}, + {0,0,0,84,0,0,0x606,0x6A,0x5D,{8229,8230}}, + {0,0,0,84,0,0,0xE0E,0xD5,0x49,{755,8236}}, + {0,0,0,84,0,0,0xE0E,0x294,0x73D,{8363,934}}, + {0,0,0,84,0,0,0xE0E,0x2A1,0x744,{8364,934}}, + {0,0,0,48,0,0,0xE0E,0xA6,0x5D,{914,8365}}, + {0,0,0,64,0,0,0xA0A,0x208,0x251,{8366,8367}}, + {0,0,0,48,0,0,0xA0A,0x14D,0x146,{8368,8369}}, + {0,0,0,24,0,0,0xA0A,0x25E,0x258,{8370,8369}}, + {0,0,0,72,0,0,0xE0E,0x32D,0x3B2,{8371,8372}}, + {0,0,0,72,0,0,0xE0E,0x7E,0x5D,{8305,8306}}, + {0,0,0,72,0,0,0xE0E,0xF6,0x118,{8307,8308}}, + {0,0,0,72,0,0,0,0x99,0x5D,{8373,8374}}, + {0,0,0,0,0x4,0,0,0x6,0,{3651,6217}}, + {0,0,0,0,0x1,0,0,0x280,0x71,{8375,8376,8377,8378} }, + {0,0,0,0,0x1,0,0xF0E,0x41E9,0xB68,{8379,8380,8381,8382} }, + {0,0,0,0,0x1,0,0x405,0x9C40,0x2C2,{8383,8384,8385,8386} }, + {-12,0,0,0,0x1,0,0x908,0x9C40,0x2BC,{8387,8388,8389,8390} }, + {0,0,0,0,0x1,0,0x808,0x4A9,0xE2,{5037,5038,5039,5040} }, + {0,0,0,0,0x1,0,0xE0E,0x1CD4,0x251,{8391,8392,8393,5156} }, + {12,0,0,0,0x1,0,0xA0A,0x9C40,0x182,{4211,4212,4213,8394} }, + {0,0,0,0,0x1,0,0xE0E,0x3861,0x1108,{4935,4936,4937,8395} }, + {0,0,0,0,0x1,0,0x808,0x9C40,0x55D,{8396,8397,8398,8399} }, + {12,0,0,0,0x1,0,0x706,0x4509,0x556,{8400,8401,8402,8403} }, + {0,0,0,0,0x1,0,0xA0A,0x76C,0x8C6,{8404,8405,8406,8407} }, + {0,0,0,0,0x1,0,0xF0E,0x9C40,0x5DC,{5118,5119,5120,8408} }, + {12,0,0,0,0x1,0,0x808,0x85,0x92,{8409,8410,8411,8412} }, +}; + +const BanksDump::Operator g_embeddedBanksOperators[] = +{ + {0x0F4F201,0x8F},{0x0F7F201,0x06},{0x0F4F201,0x4B},{0x0F7F201,00},{0x0F4F201,0x49},{0x0F6F201,00},{0x0F7F281,0x12},{0x0F7F241,00},{0x0F7F101,0x57},{0x0F7F101,0x93},{0x0F2A101,0x80},{0x0F5F216,0x0E},{0x0F8C201,0x92},{0x0F8C201,00},{0x0F4F60C,0x5C},{0x0F5F381,00},{0x0F2F307,0x97},{0x0F1F211,0x80},{0x0F45417,0x21},{0x0F4F401,00},{0x0F6F398,0x62},{0x0F6F281,00},{0x0F6F618,0x23},{0x0F7E701,00},{0x0F6F615,0x91}, + {0x0F6F601,00},{0x0F3D345,0x59},{0x0F3A381,0x80},{0x1F57503,0x49},{0x0F5B581,0x80},{0x014F671,0x92},{0x007F131,00},{0x058C772,0x14},{0x008C730,00},{0x018AA70,0x44},{0x0088AB1,00},{0x1239723,0x93},{0x01455B1,00},{0x1049761,0x13},{0x00455B1,0x80},{0x12A9824,0x48},{0x01A46B1,00},{0x1069161,0x13},{0x0076121,00},{0x0067121,0x13},{0x00761A1,0x89},{0x194F302,0x9C},{0x0C8F341,0x80},{0x19AF303,0x54},{0x0E7F111,00}, + {0x03AF123,0x5F},{0x0F8F221,00},{0x122F603,0x87},{0x0F8F321,0x80},{0x054F903,0x47},{0x03AF621,00},{0x1419123,0x4A},{0x0198421,0x05},{0x1199523,0x4A},{0x0199421,00},{0x04F2009,0xA1},{0x0F8D184,0x80},{0x0069421,0x1E},{0x0A6C3A2,00},{0x028F131,0x12},{0x018F131,00},{0x0E8F131,0x8D},{0x078F131,00},{0x0285131,0x5B},{0x0487132,00},{0x09AA101,0x8B},{0x0DFF221,0x40},{0x016A221,0x8B},{0x0DFA121,0x08},{0x0E8F431,0x8B}, + {0x113DD31,0x15},{0x0265621,00},{0x113DD31,0x16},{0x0066621,00},{0x11CD171,0x49},{0x00C6131,00},{0x1127121,0x4D},{0x0067223,0x80},{0x121F1F1,0x40},{0x0166FE1,00},{0x175F502,0x1A},{0x0358501,0x80},{0x175F502,0x1D},{0x0F4F301,0x80},{0x105F510,0x41},{0x0C3F211,00},{0x125B121,0x9B},{0x00872A2,0x01},{0x1037FA1,0x98},{0x1073F21,00},{0x012C1A1,0x93},{0x0054F61,00},{0x022C121,0x18},{0x015F431,0x5B},{0x0058A72,0x83}, + {0x03974A1,0x90},{0x0677161,00},{0x0055471,0x57},{0x0057A72,00},{0x0635490,00},{0x045A541,00},{0x0178521,0x92},{0x0098F21,0x01},{0x0177521,0x94},{0x0098F21,0x05},{0x0157621,0x94},{0x0378261,00},{0x1179E31,0x43},{0x12C6221,00},{0x06A6121,0x9B},{0x00A7F21,00},{0x01F7561,0x8A},{0x00F7422,0x06},{0x15572A1,0x86},{0x0187121,0x83},{0x03C5421,0x4D},{0x01CA621,00},{0x1029331,0x8F},{0x00B7261,00},{0x1039331,0x8E}, + {0x0097261,00},{0x1039331,0x91},{0x0098261,00},{0x10F9331,0x8E},{0x00F7261,00},{0x116AA21,0x4B},{0x00A8F21,00},{0x1177E31,0x90},{0x10C8B21,00},{0x1197531,0x81},{0x0196132,00},{0x0219B32,0x90},{0x0177221,00},{0x05F85E1,0x1F},{0x01A65E1,00},{0x05F88E1,0x46},{0x01F75A1,0x9C},{0x00A7521,00},{0x0588431,0x8B},{0x01A6521,00},{0x05666E1,0x4C},{0x02665A1,00},{0x0467662,0xCB},{0x03655A1,00},{0x0075762,0x99}, + {0x00756A1,00},{0x0077762,0x93},{0x00776A1,00},{0x203FF22,0x59},{0x00FFF21,00},{0x10FFF21,0x0E},{0x10FFF21,00},{0x0558622,0x46},{0x0186421,0x80},{0x0126621,0x45},{0x00A96A1,00},{0x12A9221,0x8B},{0x02A9122,00},{0x005DFA2,0x9E},{0x0076F61,0x40},{0x001EF20,0x1A},{0x2068F60,00},{0x029F121,0x8F},{0x009F421,0x80},{0x0945377,0xA5},{0x005A0A1,00},{0x011A861,0x1F},{0x00325B1,0x80},{0x0349161,0x17},{0x0165561,00}, + {0x0015471,0x5D},{0x0036A72,00},{0x0432121,0x97},{0x03542A2,00},{0x177A1A1,0x1C},{0x1473121,00},{0x0331121,0x89},{0x0254261,0x03},{0x14711A1,0x15},{0x007CF21,00},{0x0F6F83A,0xCE},{0x0028651,00},{0x1232121,0x15},{0x0134121,00},{0x0957406,0x5B},{0x072A501,00},{0x081B122,0x92},{0x026F261,0x83},{0x151F141,0x4D},{0x0F5F242,00},{0x1511161,0x94},{0x01311A3,0x80},{0x0311161,0x8C},{0x0031DA1,0x80},{0x173F3A4,0x4C}, + {0x0238161,00},{0x053D202,0x85},{0x1F6F207,0x03},{0x111A311,0x0C},{0x0E5A213,0x80},{0x141F611,0x06},{0x2E6F211,00},{0x032D493,0x91},{0x111EB91,00},{0x056FA04,0x4F},{0x005C201,00},{0x0207C21,0x49},{0x10C6F22,00},{0x133DD31,0x85},{0x0165621,00},{0x205DA20,0x04},{0x00B8F21,0x81},{0x0E5F105,0x6A},{0x0E5C303,0x80},{0x026EC07,0x15},{0x016F802,00},{0x0356705,0x9D},{0x005DF01,00},{0x028FA18,0x96},{0x0E5F812,00}, + {0x007A810,0x86},{0x003FA00,0x03},{0x247F811,0x41},{0x003F310,0x03},{0x206F101,0x8E},{0x002F310,00},{0x0001F0E,00},{0x3FF1FC0,00},{0x024F806,0x80},{0x2845603,0x88},{0x000F80E,00},{0x30434D0,0x05},{0x000F60E,00},{0x3021FC0,00},{0x0A337D5,0x95},{0x03756DA,0x40},{0x261B235,0x5C},{0x015F414,0x08},{0x3F54FD0,00},{0x001FF26,00},{0x11612E4,00},{0x0F0F300,00},{0x2C9F600,00},{0x277F810,0x44},{0x006F311,00}, + {0x0FFF902,0x07},{0x0FFF811,00},{0x205FC00,00},{0x017FA00,00},{0x007FF00,0x02},{0x008FF01,00},{0x00CF600,00},{0x006F600,00},{0x008F60C,00},{0x247FB12,00},{0x2477B12,0x05},{0x002F60C,00},{0x243CB12,00},{0x3029FD0,00},{0x042F80E,0x08},{0x3E4F407,0x4A},{0x030F50E,00},{0x0029FD0,0x0A},{0x3E4E40E,0x0A},{0x1E5F507,0x5D},{0x004B402,0x03},{0x0F79705,0x0A},{0x000F64E,00},{0x3029F9E,00},{0x237F811,0x45}, + {0x005F310,0x08},{0x303FF80,00},{0x014FF10,0x0D},{0x00CF506,0x0B},{0x008F502,00},{0x0BFFA01,00},{0x097C802,00},{0x087FA01,0x51},{0x0B7FA01,00},{0x08DFA01,0x54},{0x0B8F802,00},{0x088FA01,0x59},{0x0B6F802,00},{0x30AF901,00},{0x006FA00,00},{0x389F900,0x80},{0x06CF600,00},{0x388F803,0x80},{0x0B6F60C,0x08},{0x388F803,0x85},{0x0B6F60C,00},{0x04F760E,0x40},{0x2187700,0x08},{0x049C80E,0x40},{0x2699B03,00}, + {0x305ADD7,0xDC},{0x0058DC7,00},{0x304A8D7,0xDC},{0x00488C7,00},{0x306F680,00},{0x3176711,00},{0x205F580,00},{0x3164611,0x09},{0x0F40006,0x3F},{0x0F5F715,00},{0x3F40006,0x3F},{0x0F5F712,00},{0x0E76701,0x58},{0x0077502,00},{0x048F841,0x45},{0x0057542,0x08},{0x3F0E00A,0x40},{0x005FF1E,0x4E},{0x3F0E00A,0x7C},{0x002FF1E,0x52},{0x04A7A0E,0x40},{0x21B7B00,0x08},{0x1395507,0x40},{0x332F905,0x05},{0x0A5D604,0x40}, + {0x3F30002,0x3F},{0x08DFA01,0x4F},{0x0B5F802,00},{0x054F231,0x4B},{0x056F221,00},{0x03BF2B1,0x0E},{0x00BF361,00},{0x0E7F21C,0x6F},{0x0B8F201,0x80},{0x0E5B111,0x9C},{0x0B8F211,0x80},{0x0E7C21C,0x3A},{0x0B8F301,0x80},{0x0F5B111,0x1B},{0x0D8F211,0x80},{0x031F031,0x90},{0x037F234,0x9F},{0x451F324,0x1C},{0x497F211,00},{0x010A831,0x0A},{0x1B9D234,0x03},{0x0E6CE02,0x25},{0x0E6F401,00},{0x0E6F507,0xA1},{0x0E5F341,00}, + {0x0045617,0x21},{0x004F601,00},{0x055F718,0x23},{0x0D8E521,00},{0x0D6F90A,0x53},{0x0D6F784,0x80},{0x0A6F615,0x91},{0x0E6F601,00},{0x0B3D441,0x8A},{0x0B4C280,0x13},{0x082D345,0x59},{0x0E3A381,0x80},{0x1557403,0x49},{0x005B381,0x80},{0x02FA2A0,0x85},{0x02FA522,0x9E},{0x02FA5A2,0x83},{0x02FA128,0x95},{0x02A91A0,0x85},{0x03AC821,0x0B},{0x03AC620,0x81},{0x05AF621,0x80},{0x12AA6E3,0x56},{0x00AAF61,0x83},{0x00AAFE1,0x91}, + {0x00AAF62,0x83},{0x10BF024,0x12},{0x20B5030,00},{0x71A7223,0xAC},{0x02A7221,0x83},{0x41A6223,0x22},{0x02A62A1,00},{0x006FF25,0xA1},{0x005FF23,0x2F},{0x405FFA1,0x1F},{0x0096F22,0x80},{0x11A6223,0x19},{0x02A7221,0x80},{0x41A6223,0x1E},{0x02A7222,0x83},{0x074F302,0x9C},{0x0B8F341,0x80},{0x274D302,0xA5},{0x0B8D382,0x40},{0x2F6F234,0x5B},{0x0F7F231,0x9E},{0x0F7F223,0xAB},{0x0FAF322,0x53},{0x0FAF223,0x66},{0x0FAC221,0xA7}, + {0x0F7C221,00},{0x022FA02,0x4C},{0x0F3F301,0x97},{0x1F3C204,0x9D},{0x0F7C111,00},{0x0AFC711,0x87},{0x0F8F501,00},{0x098C301,0x18},{0x0F8C302,00},{0x0F2B913,0x0D},{0x0119102,0x1A},{0x74A9221,0x8F},{0x103FF80,0x01},{0x3FFF021,00},{0x0F8D104,0x80},{0x2F8F802,0x87},{0x0F8F602,00},{0x015A701,0x4D},{0x0C8A301,00},{0x0317101,0x93},{0x0C87301,00},{0x0E5F111,0xA8},{0x0E5F312,0x57},{0x0E5E111,0x97},{0x0E6E111,00}, + {0x0C7F001,0xB3},{0x027F101,0x16},{0x028F101,00},{0x00C0300,0x30},{0x024FA20,0x03},{0x024F820,0x12},{0x056F510,00},{0x0EBF431,0x8B},{0x07AF131,00},{0x1C8F621,0x1C},{0x0C8F101,0x1F},{0x0425401,0x12},{0x0C8F201,00},{0x0035131,0x1C},{0x0675461,0x80},{0x21351A0,0x98},{0x2275360,0x01},{0x513DD31,0x95},{0x1038D13,0x95},{0x0866605,0x8C},{0x243CC70,0x92},{0x21774A0,0x03},{0x007BF21,0x95},{0x1076F21,00},{0x515C261,0x97}, + {0x0056FA1,00},{0x08FB563,0x13},{0x08FB5A5,0x94},{0x0848523,0xA7},{0x0748212,0xA4},{0x0748202,0x27},{0x0358511,00},{0x0338411,00},{0x005F511,0x01},{0x0C3F212,0x1E},{0x2036130,0x98},{0x21764A0,0x03},{0x1176561,0x92},{0x0176521,00},{0x2234130,0x98},{0x2174460,0x01},{0x0087262,0x01},{0x001D3E1,0xCA},{0x0396262,0x83},{0x2197320,0x22},{0x0297563,0x02},{0x2686500,00},{0x613C500,00},{0x606C800,00},{0x3077400,00}, + {0x0157620,0x94},{0x02661B1,0xD3},{0x0266171,0x80},{0x00B5131,0x1C},{0x13BB261,00},{0x0265121,0x18},{0x007F021,00},{0x0257221,0x16},{0x00A7F21,0x05},{0x0357A21,0x1D},{0x03A7A21,0x09},{0x035C221,0x16},{0x00ACF61,0x09},{0x04574A1,0x8A},{0x0087F21,00},{0x01A52A1,0x97},{0x01B8F61,00},{0x01A7521,0xA1},{0x01B8F21,00},{0x20F9331,0x96},{0x00F72A1,00},{0x0078521,0x96},{0x1278431,00},{0x00972A1,00},{0x006C524,0xA1}, + {0x1276431,00},{0x10693B1,0x8E},{0x0067271,00},{0x0088521,0x5D},{0x02884B1,00},{0x10F9331,0x93},{0x00F7272,00},{0x0068522,0x61},{0x01684B1,00},{0x02AA961,0xA3},{0x036A863,0x52},{0x016AA61,0x94},{0x00A8F61,0x80},{0x0297721,0x21},{0x1267A33,0x55},{0x0167AA1,0x93},{0x0197A22,00},{0x1077B21,0x2B},{0x0007F22,0x57},{0x0197531,0x51},{0x0196172,00},{0x0177221,0x13},{0x029C9A4,0xA2},{0x0086F21,0x80},{0x015CAA2,0xAA}, + {0x0086F21,00},{0x0AA7724,0x5B},{0x0173431,00},{0x0C676A1,0x0D},{0x0868726,0x59},{0x0566622,0x56},{0x0019F26,00},{0x0487664,0x25},{0x0465622,0xCB},{0x03645A1,00},{0x11467E1,0x67},{0x0175461,00},{0x1146721,0x6D},{0x0164421,00},{0x00F4032,0xDF},{0x0097021,00},{0x00FFF21,0x35},{0x00FFF21,0xB7},{0x00FFF21,0xB9},{0x60FFF21,0x80},{0x00FFF21,0x36},{0x00FFF21,0x1B},{0x00FFF21,0x1D},{0x409CF61,00},{0x0658722,0x46}, + {0x4F2B912,0x0D},{0x0119101,0x1A},{0x12A9221,0x99},{0x0157D61,0x40},{0x01572B1,0xA3},{0x005DFA2,0x5D},{0x0077F61,0x40},{0x001FF20,0x36},{0x4068F61,00},{0x00FFF21,0x27},{0x4078F61,00},{0x1035317,0x1A},{0x004F608,0x0D},{0x03241A1,0x9D},{0x0156161,00},{0x031A181,0xA1},{0x0032571,00},{0x0141161,0x17},{0x445C361,0x14},{0x025C361,00},{0x021542A,0x80},{0x0136A27,0xA6},{0x0015431,0x5D},{0x02542A1,0x03},{0x1471161,0x15}, + {0x1B1F2DE,0x57},{0x0B281D1,0x0A},{0x2322121,0x8C},{0x0133220,0x97},{0x1031121,0x0E},{0x0133121,00},{0x0F6F358,0x62},{0x0F6F241,00},{0x00F5F00,00},{0x005FF00,00},{0x03111A1,0x8C},{0x0031D61,0x80},{0x173F364,0x4C},{0x02381A1,00},{0x053F301,0x46},{0x1F6F101,0x80},{0x053F201,0x43},{0x0F6F208,0x40},{0x135A511,0x10},{0x133A517,0xA4},{0x141F611,0x0D},{0x2E5F211,00},{0x0F8F755,0x92},{0x1E4F752,0x9F},{0x0E4F341,0x13}, + {0x1E5F351,00},{0x111EB11,00},{0x032D453,0x91},{0x112EB13,0x0D},{0x3E5F720,00},{0x0E5F521,0x0C},{0x0207C21,0x09},{0x10C6F22,0x09},{0x133DD02,0x83},{0x0166601,0x80},{0x0298961,0x33},{0x406D8A3,0xA4},{0x005DA21,0x17},{0x00B8F22,0x80},{0x026EC08,0x15},{0x016F804,00},{0x024682C,0xAB},{0x035DF01,00},{0x0A3FD07,0xC0},{0x078F902,00},{0x055FC14,0x8D},{0x005F311,00},{0x455F811,0x86},{0x0E5F410,00},{0x155F311,0x9C}, + {0x0001E0E,00},{0x3FE1800,00},{0x05C5F0E,00},{0x16C870E,0x02},{0x0F0F00E,00},{0x0841300,00},{0x0F0F000,0x2E},{0x0F05F0C,00},{0x061F217,0x4F},{0x0B4F112,0x0A},{0x001EFEE,0x01},{0x0069FE0,0x04},{0x71612E4,00},{0x0F10001,0x3F},{0x059F200,00},{0x000F701,00},{0x0F0F301,00},{0x6C9F601,00},{0x029A100,0x02},{0x0696521,0x08},{0x29BF300,0x0C},{0x008F311,00},{0x068FAC0,0x02},{0x377F701,00},{0x0C4FA01,0x03}, + {0x33FF600,00},{0x0FFF832,0x44},{0x07FF511,00},{0x27AFB12,0x40},{0x047F611,00},{0x144F5C6,0x5C},{0x018F6C1,0x83},{0x0D0CCC0,0x10},{0x028EAC1,00},{0x2B7F811,0x46},{0x2BAE610,0x04},{0x005EA10,00},{0x0F70700,0xFF},{0x0F70710,0xFF},{0x218F401,00},{0x008F800,00},{0x0F0F009,0x0E},{0x0F7B700,00},{0x0FEF812,0x47},{0x07ED511,00},{0x005F010,0x25},{0x004D011,0x80},{0x00F9F30,00},{0x0FAE83A,00},{0x0976800,00}, + {0x3987802,00},{0x0FBF116,0x08},{0x069F911,0x02},{0x06CF800,00},{0x04AE80E,0x40},{0x0F2FA25,0x1B},{0x09AF612,00},{0x2F5F5C5,0x08},{0x005C301,0x06},{0x257F900,00},{0x046FB00,00},{0x0FEF512,0x11},{0x0FFF612,0xA2},{0x0FFF901,0x0F},{0x0F0F01E,00},{0x0B6F70E,00},{0x204FF82,00},{0x015FF10,0x06},{0x04CA800,0x0B},{0x13FD600,00},{0x25E980C,00},{0x306FB0F,00},{0x25E780C,00},{0x32B8A0A,0x80},{0x201C700,0x45}, + {0x233F90B,00},{0x04FF82E,0x07},{0x3EFF521,0x0B},{0x065F981,00},{0x030F241,00},{0x000FE46,00},{0x055F585,00},{0x0009429,0x10},{0x344F904,0x04},{0x282B2A4,00},{0x1D49703,0x80},{0x000F68E,00},{0x3029F5E,00},{0x152FE09,0xC0},{0x008F002,00},{0x055F201,00},{0x000F441,00},{0x000F301,00},{0x0A4F48F,00},{0x100FF80,00},{0x1F7F500,00},{0x05EFD2E,0x07},{0x3EFF527,0x0C},{0x256FB00,00},{0x026FA00,00}, + {0x256FB00,0x80},{0x017F700,00},{0x1779A01,00},{0x084F700,00},{0x367FD01,00},{0x098F601,00},{0x001FF0E,00},{0x377790E,0x02},{0x2079F20,0x1C},{0x22B950E,00},{0x2079F20,0x1E},{0x23B940E,00},{0x506F680,00},{0x016F610,00},{0x50F6F00,00},{0x50F4F00,00},{0x0FFEE03,0x40},{0x0FFE808,00},{0x060F2C5,0x4F},{0x07AF4D4,0x80},{0x160F285,0x4F},{0x0B7F294,0x80},{0x04F760F,0x40},{0x0A6D604,0x40},{0x332F805,0x05}, + {0x0A67404,0x40},{0x0F0F126,0x44},{0x0F5F527,0x40},{0x3948F03,00},{0x06FFA15,00},{0x0F0F007,00},{0x0DC5C00,00},{0x00FFF7E,00},{0x00F3F6E,00},{0x0B3FA00,00},{0x005D000,00},{0x0FFF832,0x84},{0x0089FD4,0xC0},{0x2F4F50E,00},{0x424120CA,0x51},{0x283E0C4,0x81},{0x14588C0,00},{0x0B0900E,0x03},{0x0BF990E,0x03},{0x0DFDCC2,0x17},{0x026C9C0,00},{0x0D0ACC0,0x18},{0x0A7CDC2,0x2B},{0x028EAC1,0x02},{0x0FE6227,00}, + {0x3D9950A,0x07},{0x1199523,0x48},{0x0198421,00},{0x055F231,0x49},{0x076F221,00},{0x038F101,0x57},{0x028F121,00},{0x038F101,0x93},{0x001A221,0x80},{0x0D5F136,0x0E},{0x0A8C201,0x92},{0x058C201,00},{0x054F60C,0x5C},{0x0B5F381,00},{0x032F607,0x97},{0x011F511,0x80},{0x0E6F318,0x62},{0x0F3F321,0x80},{0x09AA101,0x89},{0x0187121,0x0D},{0x0F00010,0x3F},{0x0F1F02E,00},{0x3487407,0x07},{0x0FE5229,00},{0x3D9850E,0x07}, + {0x0FDF800,0x0B},{0x0C7F601,00},{0x000FF26,00},{0x0A7F802,0x02},{0x01FFA06,0x0A},{0x0F5F511,00},{0x0F1F52E,0x05},{0x3F99906,0x02},{0x0F89227,00},{0x3D8750A,0x03},{0x2009F2C,00},{0x3A4C50E,0x09},{0x344F904,0x0C},{0x0F1F52E,0x09},{0x3F78706,0x02},{0x2F1F535,0x19},{0x028F703,0x02},{0x0FAFA25,0xCD},{0x0F99803,00},{0x1FAF825,0x1B},{0x0F7A803,00},{0x1FAF825,0x21},{0x0F69603,00},{0x2F5F504,0x16},{0x236F603,0x03}, + {0x091F015,0x1E},{0x0E8A617,0x04},{0x001FF0E,0x06},{0x077780E,0x04},{0x0F7F020,00},{0x33B8809,00},{0x0F7F420,0x03},{0x33B560A,00},{0x05BF714,0x4B},{0x089F712,00},{0x0F2FA27,0x22},{0x1F75020,0x09},{0x03B7708,0x05},{0x1077F26,0x29},{0x06B7703,0x05},{0x0FCF727,0x40},{0x0F3F821,0x1C},{0x0ADC620,00},{0x0FFFF01,0x3F},{0x4FFEE03,0x80},{0x0FFE804,00},{0x0F8F3A1,0x80},{0x005FA00,0x03},{0x053F131,0x48},{0x227F232,00}, + {0x01A9161,0x40},{0x01AC1E6,0x03},{0x071FB11,00},{0x0B9F301,00},{0x1B57231,0x0B},{0x098D523,00},{0x024D501,0x0F},{0x0228511,00},{0x025F911,0x05},{0x034F131,00},{0x01576A1,0x94},{0x1362261,0x10},{0x0084F22,0x40},{0x2363360,0x15},{0x007F804,0x0E},{0x0748201,0x05},{0x0E5F131,0x89},{0x174F131,00},{0x0E3F131,0x8A},{0x073F172,00},{0x0FFF101,0x0D},{0x0FF5091,0x80},{0x1473161,0x0F},{0x007AF61,00},{0x0D3B303,0x40}, + {0x024F204,0x80},{0x1037531,0x1A},{0x0445462,0x40},{0x021A1A1,0x92},{0x116C261,0x40},{0x0F0F240,00},{0x0F4F440,00},{0x003F1C0,0x4F},{0x001107E,0x0C},{0x0459BC0,0x05},{0x015F9C1,00},{0x0064F50,0x10},{0x003FF50,00},{0x2F0F005,0x08},{0x1B4F600,00},{0x0F2F931,0x40},{0x042F210,00},{0x00F2F6E,00},{0x2F95401,0x19},{0x2FB5401,00},{0x0665F53,0x05},{0x0077F00,00},{0x006707E,0x03},{0x1111EF0,00},{0x11411E2,0xC0}, + {0x0F0A006,00},{0x075C584,00},{0x1F5F213,0xC6},{0x0F5F111,0x05},{0x153F101,0x49},{0x274F111,0x02},{0x0E4F4D0,0x80},{0x006A29E,00},{0x0871321,0xCD},{0x0084221,0x80},{0x065B400,00},{0x075B400,00},{0x02AF800,0x03},{0x145F600,00},{0x0FFF830,0x44},{0x0F9F900,0x08},{0x023F110,00},{0x0F9F900,0x04},{0x026F180,00},{0x1FDF800,0xC4},{0x059F800,00},{0x06FFA00,0x0B},{0x08FF600,00},{0x023F191,00},{0x0BFDA02,00}, + {0x2F0FB01,0x10},{0x096F701,00},{0x002FF04,00},{0x007FF00,00},{0x0F0F006,00},{0x0B7F600,00},{0x034C4C4,0x03},{0x0F0F019,0x0E},{0x0F7B720,0x0A},{0x0B4F600,00},{0x0B6F800,00},{0x008F210,00},{0x0BFDA09,0x08},{0x210BA2E,0x0E},{0x2F4B40E,00},{0x210FA2E,0x0E},{0x2F4F40E,00},{0x2A2B2A4,0x02},{0x200FF04,00},{0x206FFC3,00},{0x2F5F6C3,00},{0x0E1C000,0x80},{0x153951E,0x80},{0x200FF03,00},{0x3F6F6C4,00}, + {0x202FF4E,00},{0x3F7F701,00},{0x3F6F601,00},{0x2588A51,00},{0x018A452,00},{0x0FFFB13,0x40},{0x0FFEE05,0x55},{0x0FF0006,0x3F},{0x0FDF715,0x0D},{0x0F6F80E,00},{0x060F207,0x4F},{0x072F212,0x09},{0x074F212,0x08},{0x022FB18,0x88},{0x012F425,0x80},{0x0F0FF04,00},{0x0B5F4C1,00},{0x02FC811,0x2D},{0x0F5F531,00},{0x03D6709,00},{0x3FC692C,00},{0x053D144,0x80},{0x05642B2,0x15},{0x253B1C4,0x8F},{0x083B1D2,0x84}, + {0x175F5C2,0x21},{0x074F2D1,0x83},{0x1F6FB34,0x83},{0x04394B1,00},{0x0BDF211,0x46},{0x09BA004,0x40},{0x144F221,0x8A},{0x3457122,0x40},{0x1447122,0x40},{0x053F101,0x40},{0x153F108,0x40},{0x102FF00,0x08},{0x3FFF200,00},{0x345A122,0x40},{0x028F131,0x0F},{0x018F031,00},{0x307D7E1,0x8D},{0x107B6E0,00},{0x03DD500,0x11},{0x02CD500,00},{0x1199563,0x46},{0x219C420,00},{0x044D08C,0xA1},{0x2F4D181,0x80},{0x0022171,0x93}, + {0x1035231,0x80},{0x1611161,0x91},{0x01311A2,0x80},{0x25666E1,0x4C},{0x038FB00,00},{0x0DAF400,00},{0x2BFFB15,0x0A},{0x31FF817,00},{0x0BFFBC6,00},{0x02FE8C9,00},{0x2F0F006,00},{0x2B7F800,00},{0x040E000,00},{0x00FFF2E,0x0A},{0x04AF602,0x1B},{0x3A5F0EE,00},{0x36786CE,00},{0x0B0FCD6,00},{0x008BDD6,0x05},{0x0F0F007,0x08},{0x0E7F301,0x58},{0x078F211,00},{0x0EFF230,0x1E},{0x078F521,00},{0x019D530,0x88}, + {0x01B6171,0x80},{0x001F201,0x0D},{0x0B7F211,0x0D},{0x03DD500,0x14},{0x010E032,0x87},{0x0337D16,0x84},{0x0F8F161,0x80},{0x008F062,0x80},{0x0745391,00},{0x0755451,00},{0x08E6121,0x15},{0x09E7231,00},{0x0BC7321,0x19},{0x0BC8121,00},{0x23C7320,0x19},{0x209A060,0x02},{0x20FF014,0x80},{0x064F207,0x73},{0x075F612,00},{0x054D221,0x4D},{0x075B231,0x80},{0x053D221,0x56},{0x073B231,0x80},{0x053D221,0x55},{0x201AF70,0x19}, + {0x0084F32,0x40},{0x0083F32,0x40},{0x0302221,0x99},{0x0064F32,00},{0x0006F71,0x99},{0x0074F32,0x80},{0x0006F71,0x9E},{0x0054F32,0x80},{0x0054F31,0x80},{0x0006F71,0x9C},{0x006F231,0xCF},{0x0811321,0xCD},{0x0074221,0x80},{0x074A401,00},{0x116C261,00},{0x078F522,00},{0x01FF003,0x5B},{0x01FF001,0x80},{0x00FFF24,0x80},{0x00FFF21,0x80},{0x00F4021,00},{0x10F1020,00},{0x045F221,0x8F},{0x076F221,0x06},{0x053B121,0x4F}, + {0x074C231,00},{0x011F111,0x4A},{0x0B3C101,0x80},{0x058F381,0x63},{0x058F201,0x80},{0x001F701,0x0D},{0x0B7F407,0x06},{0x060F206,0x4F},{0x072F211,0x0C},{0x0E3F318,0x62},{0x093F281,00},{0x326CE15,0x57},{0x025F901,00},{0x1558403,0x49},{0x005D381,0x80},{0x0F0FB3E,0x29},{0x09BA071,0x40},{0x014F001,0x88},{0x14941A1,0x15},{0x009CF21,00},{0x074A302,0x9A},{0x075C441,0x80},{0x01FF260,0x11},{0x07CF521,00},{0x0F4F321,0x80}, + {0x0442009,0xA1},{0x0F4D184,0x80},{0x066C101,0x9A},{0x066A201,0x40},{0x0236321,0x97},{0x0266421,00},{0x111C031,0x20},{0x1157221,0x06},{0x1107421,0x0C},{0x0165223,0x08},{0x1DBB851,0x17},{0x1567591,00},{0x075C502,0x29},{0x0F3C201,0x83},{0x0EFE800,0x0D},{0x0FFA401,00},{0x01171B1,0x8B},{0x1177261,0x40},{0x111F0F1,0x95},{0x1131121,00},{0x1159221,0x06},{0x111C0B1,0x20},{0x1159221,0x08},{0x00B4131,0x1C},{0x03B9261,0x80}, + {0x01F4131,0x1C},{0x0646300,0x1C},{0x0757211,00},{0x0014131,0x1C},{0x05A5321,0x9C},{0x01AAA21,0x80},{0x003F200,0x80},{0x0FFF220,00},{0x3F01FC0,00},{0x179A1A1,0x1C},{0x1495121,00},{0x0177EB1,0xC5},{0x00E7B22,0x05},{0x019D531,0xD1},{0x01B6132,0x80},{0x01B5132,0x9A},{0x03BA261,0x82},{0x1047021,0xC6},{0x06D6361,00},{0x08F6EE0,0xEC},{0x02A6561,00},{0x0297122,0x08},{0x0296431,0x04},{0x20FF2D0,0xEB},{0x08562C1,0x06}, + {0x0154221,0xE3},{0x0065021,00},{0x0439422,0x40},{0x05312C4,0x17},{0x07212F1,00},{0x0536244,0x56},{0x0046041,00},{0x0E6E800,0x0D},{0x0F6A300,00},{0x141FA11,0x06},{0x2F5F411,00},{0x0268721,0x07},{0x1188421,00},{0x055F502,0x99},{0x053F601,0x80},{0x072F212,00},{0x0105AEC,00},{0x1F454EE,00},{0x286F2A5,00},{0x228670E,00},{0x007FF01,00},{0x007FF21,00},{0x00CFF01,00},{0x00BFF21,00},{0x211BA12,0x0B}, + {0x2F5B400,00},{0x021FF13,0x51},{0x003FF10,0x40},{0x002F002,0xC0},{0x004D001,00},{0x050F101,0x4F},{0x07CD201,0x04},{0x2129A14,0x97},{0x004FA01,0x80},{0x0038165,0xD2},{0x007F171,00},{0x0AE7121,0x1C},{0x01ED320,00},{0x053F101,0xCF},{0x083F212,00},{0x154FF0A,0x04},{0x0F5F002,00},{0x035F813,0x12},{0x004FF11,00},{0x100FF22,0x92},{0x10BF020,00},{0x00FFF24,00},{0x00FFF21,0x40},{0x09BA071,00},{0x275F602,0x9B}, + {0x066F521,00},{0x315EF11,0x53},{0x0B5F481,00},{0x10BF224,0x50},{0x00B5231,00},{0x000EA36,0x8B},{0x003D01A,00},{0x1C3C223,0x14},{0x103D000,00},{0x001F211,0x0D},{0x0B1F215,0x0D},{0x0AFF832,0x45},{0x07FF310,00},{0x274F111,00},{0x0F7F000,0x30},{0x00687A1,00},{0x0009F71,0x45},{0x1069F62,00},{0x0009F71,0x51},{0x1069062,00},{0x275F602,0x1B},{0x0F7F001,00},{0x141B403,0x5E},{0x03FF311,00},{0x141B203,0x5E}, + {0x097F211,00},{0x101F901,0x34},{0x0F5F001,00},{0x0EFF201,0x1D},{0x078F501,00},{0x1EFF201,0x1D},{0x01774E1,0x83},{0x01765E2,00},{0x154F103,00},{0x054F10A,00},{0x001EF8F,0x81},{0x0F19801,00},{0x024DF1A,00},{0x076F212,00},{0x2298432,0x1A},{0x0448421,00},{0x0176EB1,0xC5},{0x00E8B22,0x05},{0x01572A1,0x1C},{0x02784A1,00},{0x0427887,0x4D},{0x0548594,00},{0x0B3F101,0x85},{0x0115172,0x89},{0x11552A2,00}, + {0x2F3F021,0x4F},{0x004F021,00},{0x095AB0E,0xC0},{0x0C6F702,00},{0x00351B2,0x1C},{0x01352A2,0x05},{0x01152B0,0xC5},{0x0FE31B1,0x40},{0x0B69401,00},{0x0268300,00},{0x075F502,0x29},{0x0F3F201,0x83},{0x243A321,0x11},{0x022C411,00},{0x01FF201,0x11},{0x088F501,00},{0x07D8207,0x8F},{0x07D8214,0x80},{0x00BF224,0x4F},{0x025DC03,0x90},{0x009F031,00},{0x02F2501,0x15},{0x06C6521,0x80},{0x0176E30,0x4B},{0x12F8B32,0x05}, + {0x08F7461,0x27},{0x0EBFA10,00},{0x0DAFA0E,00},{0x0F7F0F5,0x2E},{0x0068771,00},{0x0537101,0x4F},{0x07C5212,00},{0x3DFFF20,00},{0x20FFF21,00},{0x000FF24,0x97},{0x00BF020,00},{0x00E8BA2,0x05},{0x019D530,0xCD},{0x01B6171,0x40},{0x203B122,0x4F},{0x005F172,00},{0x0F16000,0x1D},{0x0F87001,00},{0x1009F71,0x45},{0x1069F22,00},{0x01D5321,0x1C},{0x03B5261,0x80},{0x01F41B1,0x1C},{0x05A5321,0x9F},{0x0078061,0x80}, + {0x0077062,00},{0x2D3B121,0x4F},{0x0149121,0x80},{0x1F27021,0x14},{0x0F68021,00},{0x2129A16,0x97},{0x0039A12,00},{0x01FF003,0x1F},{0x019F000,0x05},{0x204D983,0x17},{0x004D081,00},{0x025DA05,0x8E},{0x015F901,00},{0x112AA83,0x1C},{0x1119B91,00},{0x001FF64,0xDB},{0x0F3F53E,0xC0},{0x0AC9051,0x1A},{0x1F4F071,00},{0x22F5570,0x16},{0x31E87E0,0x80},{0x08F6EA0,0xEC},{0x02A65E1,00},{0x0FFA500,00},{0x102FD16,0x96}, + {0x0039F12,0x80},{0x035F803,0x12},{0x004FF01,00},{0x006FA15,0xD3},{0x025F501,00},{0x0019A12,00},{0x0F0E029,0x1A},{0x031FF1E,00},{0x0056581,0x83},{0x0743251,00},{0x2129FD6,0x17},{0x0F290D2,00},{0x0048C2C,00},{0x0111E00,00},{0x0A11220,00},{0x0F00000,0x3F},{0x0FFF000,00},{0x02FF607,00},{0x04FD600,00},{0x069F000,00},{0x0FFF633,00},{0x0F0F31E,00},{0x0F6F610,00},{0x00FFF2E,00},{0x04CF600,0x18}, + {0x3F6F01E,00},{0x307F01E,00},{0x30AFF2E,00},{0x306FF1E,00},{0x06F9A02,00},{0x007A006,00},{0x26EF800,0x08},{0x03FF600,0x02},{0x16FAA12,00},{0x006FF06,00},{0x0FFB000,00},{0x02F8607,00},{0x050B233,0x5A},{0x1F5B131,00},{0x153F231,0x49},{0x0F5F111,0x03},{0x183D131,0x95},{0x0F5C132,0x03},{0x163F334,0x9B},{0x1F59211,00},{0x2B7F827,0x28},{0x0F9F191,00},{0x1EEF31A,0x2D},{0x0F5F111,00},{0x158F235,0x95}, + {0x1F68132,0x02},{0x040C931,0x85},{0x1B9C235,00},{0x064C709,0x15},{0x035B201,0x05},{0x144F406,0x03},{0x034F201,0x1B},{0x124A904,0x06},{0x074F501,0x01},{0x033F6D4,00},{0x0E361F1,00},{0x0E8F7D4,00},{0x064A4D1,00},{0x0F7F736,0x16},{0x0F5B531,0x07},{0x043A203,0x1B},{0x074F300,00},{0x135F8C3,0x8E},{0x194C311,00},{0x11BF4E2,0x07},{0x10DF4E0,00},{0x02CF6F2,00},{0x10BF5F0,00},{0x015B6F1,0x06},{0x007BFF0,00}, + {0x1167922,0x03},{0x1086DE0,00},{0x0066331,0x27},{0x1175172,00},{0x11653B4,0x1D},{0x1175171,00},{0x0159725,0x29},{0x1085332,00},{0x0156724,0x9E},{0x1065331,00},{0x1B4A313,0x27},{0x0F8D231,00},{0x032F317,0xA3},{0x1C7E211,00},{0x1C1D233,0x24},{0x09CF131,00},{0x044F831,0x05},{0x1C9F232,0x02},{0x07B9C21,0x09},{0x0FB9502,0x03},{0x1988121,0x84},{0x059A121,0x04},{0x04378B1,0x0C},{0x3FC9122,0x03},{0x08C8200,0x0A}, + {0x0ECB408,0x02},{0x046AB21,0x13},{0x0F79321,00},{0x032F901,0x0A},{0x058C122,0x04},{0x077FA21,0x07},{0x06AC322,0x02},{0x0577121,0x17},{0x0876221,00},{0x178FA25,0x01},{0x097F312,00},{0x088FA21,0x03},{0x097B313,00},{0x17FF521,0x09},{0x0CCF323,0x04},{0x09BA301,0x10},{0x0AA9301,00},{0x129F6E2,0x19},{0x10878E1,00},{0x129F6E2,0x1C},{0x1166961,0x19},{0x1275461,00},{0x1318271,0x18},{0x0566132,00},{0x10670E2,0x23}, + {0x11675E1,00},{0x0E68802,00},{0x1F6F561,00},{0x1D5F612,0x20},{0x0E3F311,0x80},{0x1F4F461,0x0E},{0x0F5B500,00},{0x1049C61,0x1E},{0x0167121,0x80},{0x2D6C0A2,0x2A},{0x1553021,00},{0x1357261,0x21},{0x1366261,00},{0x1237221,0x1A},{0x0075121,0x02},{0x03197E1,0x16},{0x0396261,00},{0x0457922,0xC3},{0x0276621,00},{0x1556321,0xDE},{0x0467321,00},{0x0F78642,0x05},{0x1767450,00},{0x0026131,0x1C},{0x0389261,0x81}, + {0x0235271,0x1E},{0x0197161,0x02},{0x0167621,0x1A},{0x0098121,0x01},{0x22C8925,0x28},{0x24B8320,00},{0x0167921,0x1F},{0x05971A2,0x05},{0x0168721,0x19},{0x0398221,0x03},{0x0357521,0x17},{0x0178422,0x82},{0x0586221,0x22},{0x0167221,0x02},{0x10759B1,0x1B},{0x00A7BA1,00},{0x0049F21,0x16},{0x10C8521,00},{0x020A821,0x0F},{0x10A7B23,00},{0x0048821,0x0F},{0x1187926,00},{0x0058F31,0x18},{0x0087332,0x01},{0x1378CA1,0x0A}, + {0x00A7724,0x04},{0x067A831,0x04},{0x0195175,00},{0x12677A2,0x1F},{0x0097421,0x01},{0x194B8E1,0x07},{0x0286321,0x01},{0x05987A1,0x93},{0x00A65E1,00},{0x0389F22,0x10},{0x0296761,00},{0x19A88E2,0x0D},{0x0096721,00},{0x09498A2,0x10},{0x0286A21,0x01},{0x02686F1,0x1C},{0x02755F1,00},{0x0099FE1,0x3F},{0x0086FE1,00},{0x019F7E2,0x3B},{0x0077A21,00},{0x00C9222,0x1E},{0x00DA261,0x06},{0x122F421,0x15},{0x05FA321,00}, + {0x16647F2,0x20},{0x02742F1,00},{0x0288861,0x19},{0x049B261,0x05},{0x01B8221,0x16},{0x179B223,00},{0x093CA21,00},{0x01A7A22,00},{0x1C99223,00},{0x1288222,00},{0x07BF321,0x1D},{0x05FC322,0x02},{0x12581E1,00},{0x195C4A6,0x86},{0x0013121,0x27},{0x0154421,00},{0x2358360,0x14},{0x006D161,00},{0x101D3E1,0x5C},{0x0378262,00},{0x2863428,0x38},{0x0354121,00},{0x1F35224,0x12},{0x1F53223,0x02},{0x0A66261,0x1D}, + {0x02661A1,00},{0x1D52222,0x0F},{0x1053F21,0x84},{0x024F9E3,0x1F},{0x0F6D131,0x01},{0x1554163,00},{0x10541A2,00},{0x165A7C7,0x25},{0x0E4F3C1,0x05},{0x1B7F7E3,0x19},{0x1F59261,00},{0x044A866,0x9B},{0x1E4F241,0x04},{0x0752261,0x20},{0x0254561,00},{0x084F6E1,0x21},{0x036A3E1,0x01},{0x16473E2,0x14},{0x10598E1,0x01},{0x0347221,0x0B},{0x1F6A324,0x02},{0x053F421,0x16},{0x0F8F604,00},{0x002DA21,0x18},{0x0F5F335,00}, + {0x063FA25,0x0F},{0x1E59402,00},{0x096F932,0x07},{0x0448411,00},{0x2189720,0x0E},{0x1188325,0x03},{0x029F661,0x18},{0x1087862,0x01},{0x01976E6,0x21},{0x1088E61,0x03},{0x0D4F027,0x23},{0x046F205,0x09},{0x131F91C,0x0C},{0x1E89615,00},{0x2167502,00},{0x1F6F601,00},{0x093F502,0x1D},{0x045C600,00},{0x032F511,0x15},{0x0B4F410,00},{0x099FA22,0x06},{0x025D501,00},{0x200FF2E,00},{0x02D210E,0x0E},{0x1E45630,0x0B}, + {0x2875517,00},{0x003FF24,00},{0x1879805,0x08},{0x200F00E,00},{0x304170A,0x04},{0x0F7F620,0x08},{0x2F9770E,0x05},{0x008F120,0x14},{0x008F42E,0x02},{0x100F220,0x04},{0x1053623,00},{0x002FF2E,00},{0x355322A,0x05},{0x00F9F3E,00},{0x0FA8730,00},{0x0977801,00},{0x3988802,00},{0x069F911,00},{0x04AE80E,0x80},{0x0F3F900,00},{0x08AF701,00},{0x0FDFA01,0x07},{0x047F601,00},{0x000FF24,00},{0x0A9F702,00}, + {0x0FEF22C,00},{0x3D8B802,0x06},{0x0F6822E,00},{0x3F87404,0x10},{0x3D4C50E,0x05},{0x3F78706,0x03},{0x1A1F737,0x14},{0x028F603,00},{0x0FAFA25,0xC4},{0x0F99903,00},{0x1FAFB21,0x03},{0x0F7A802,00},{0x2FAF924,0x18},{0x0F6A603,00},{0x2F5F505,0x14},{0x236F603,00},{0x107AF20,0x15},{0x22BA50E,00},{0x107BF20,0x18},{0x23B930E,00},{0x33B8908,0x01},{0x0FAF320,00},{0x22B5308,0x0A},{0x19AF815,0x21},{0x089F613,00}, + {0x0075F20,0x01},{0x14B8708,00},{0x1F75725,0x12},{0x1677803,00},{0x0F0F122,0x2F},{0x0FCF827,0x02},{0x0E5AD37,0x40},{0x1A58211,00},{0x053F335,0xDA},{0x1F5F111,0x03},{0x163F435,0xCF},{0x1F5F211,0x03},{0x163F374,0xD3},{0x1F5F251,0x03},{0x2C9F887,0x15},{0x08EF63C,0x1B},{0x0F5F131,0x09},{0x20AFAB2,0x15},{0x1F7C231,0x05},{0x020F831,0x0F},{0x1DCF236,0x04},{0x234F825,0xA2},{0x085F401,0x07},{0x226F6C2,0x05},{0x075A501,0x05}, + {0x131F6F5,0x2A},{0x0E3F1F1,0x02},{0x0F8F8F8,0x1A},{0x064E4D1,0x07},{0x0F7F73C,0x0C},{0x0F5F531,0x06},{0x0F0B022,0x21},{0x0F4C425,0x08},{0x136F8C5,0x09},{0x194C311,0x06},{0x11BF4E2,0x08},{0x11DD4E0,0x04},{0x04CF7F2,0x02},{0x00BF5F0,0x04},{0x13DF4E0,0x03},{0x13BF5E0,00},{0x1166722,0x09},{0x1086DE0,0x05},{0x1175172,0x04},{0x11653B4,0x1B},{0x1175171,0x06},{0x1057824,0x1E},{0x1085333,0x09},{0x11653B3,0x1F},{0x1175172,0x05}, + {0x127F833,0x23},{0x0F8F231,0x04},{0x132F418,0x26},{0x1A7E211,0x03},{0x0C1A233,0x9D},{0x09CB131,0x85},{0x1F4F335,0x16},{0x1C9F232,0x07},{0x07B9C21,0x12},{0x0FB9402,0x03},{0x24C8120,0x06},{0x17AF126,0x0C},{0x28B7120,0x11},{0x378F120,0x06},{0x38C7205,0x13},{0x19CE203,0x0A},{0x0B6AF31,00},{0x0F78331,00},{0x068F321,0x17},{0x0FCC121,0x06},{0x077FB21,00},{0x06AC322,0x03},{0x047A131,0x97},{0x0878231,0x84},{0x0A8FA25,0x0D}, + {0x197F312,00},{0x06CFA21,0x05},{0x0FCF334,0x07},{0x17FF521,0x17},{0x0CCF322,0x03},{0x09BA301,0x13},{0x0AA9301,0x04},{0x10878E1,0x05},{0x10878E1,0x03},{0x0099861,0x20},{0x1087E61,0x03},{0x1017171,0x1E},{0x05651F1,0x06},{0x11675E1,0x04},{0x0E69802,0x05},{0x0F6F521,0x07},{0x075F602,0x2A},{0x0C5F401,0x82},{0x1BABF61,0x40},{0x0468501,00},{0x195CCE1,00},{0x12850E1,00},{0x2D6C0E2,0x27},{0x15530E1,0x09},{0x1556261,0x26}, + {0x1566261,0x03},{0x16372A1,0x18},{0x00751A1,0x07},{0x145B822,0xD2},{0x0278621,0x02},{0x0467321,0x05},{0x0F78642,0x0A},{0x0026131,0x1F},{0x0388261,0x87},{0x0135571,0x20},{0x0197061,0x0B},{0x0166621,0x1C},{0x0097121,0x06},{0x21C7824,0x19},{0x14B9321,0x84},{0x0167921,0x21},{0x05971A1,0x03},{0x0358221,0x1B},{0x0388221,0x07},{0x0357221,0x1A},{0x0378222,0x87},{0x0586221,0x23},{0x0167221,0x06},{0x10759F1,0x1B},{0x00A7B61,0x06}, + {0x10C8521,0x07},{0x010B821,0x04},{0x1DC72A6,0x04},{0x0096831,0x0B},{0x1086334,0x09},{0x1058F31,0x14},{0x00B5333,0x16},{0x1079FA1,0x1D},{0x00A7724,0x08},{0x009D531,0x1B},{0x01D6175,0x4C},{0x0076172,0x26},{0x01B6223,0x10},{0x194A8E1,0x0F},{0x0086221,0x04},{0x00986F1,0x9C},{0x00B75E1,0x0B},{0x008DF22,0x2C},{0x0297761,0x03},{0x27A88E2,0x2C},{0x0097721,00},{0x05488E2,0x17},{0x0087721,0x0B},{0x02686F1,0x1F},{0x02755F1,0x04}, + {0x0086FE1,0x05},{0x004A822,0xE6},{0x0096A21,0x05},{0x00C9222,0x1B},{0x00DA261,0x0A},{0x122F461,0x15},{0x05FA361,0x04},{0x10ABB21,0xD2},{0x0096FA1,0x03},{0x0387761,0x17},{0x0499261,0x09},{0x21D7120,0x08},{0x178F124,0x05},{0x193CA21,00},{0x01A7A21,0x03},{0x1C99223,0x06},{0x1089122,0x08},{0x01BF321,0x1D},{0x05FE122,0x04},{0x15562E1,0x01},{0x125FAC8,0x0B},{0x0012161,0x26},{0x01534E1,0x02},{0x0358361,0x19},{0x106D161,0x02}, + {0x101D3E1,0xDC},{0x0378262,0x82},{0x166446A,0x33},{0x0365161,0x04},{0x0F38262,0x0B},{0x1F53261,0x06},{0x1766261,0x9A},{0x02661A1,0x04},{0x1D52222,0x13},{0x1053F21,0x06},{0x0F4F2E1,0x9C},{0x0F69121,0x05},{0x1554163,0x0A},{0x10541A2,0x06},{0x005F604,0x18},{0x0E5F301,0x0E},{0x196F9E3,0x10},{0x1F5C261,00},{0x1C6A144,0xD2},{0x1E5B241,0x06},{0x1772261,0x94},{0x0264561,0x05},{0x184F5E1,0x19},{0x036A2E1,0x07},{0x10598E1,0x07}, + {0x0348321,0x0B},{0x1F6C324,0x09},{0x19AFB25,00},{0x1F7F432,0x03},{0x002DA21,0x1B},{0x0F5F335,0x04},{0x034F763,0x4E},{0x1E5F301,0x05},{0x296F931,0x0F},{0x0F6F531,0x04},{0x1176731,0x17},{0x01A7325,0x0A},{0x129F6E1,0x15},{0x20868E2,0x07},{0x019A6E6,0x23},{0x1088E61,0x05},{0x046F205,0x0C},{0x1167504,0x07},{0x1F6C601,00},{0x033F731,0x19},{0x085F510,00},{0x089FA22,0x0F},{0x025F501,0x05},{0x02D210E,0x18},{0x0F45630,00}, + {0x003FF20,00},{0x3967604,0x06},{0x304170A,0x13},{0x007F020,0x0C},{0x2F9920E,0x08},{0x008F42E,0x08},{0x100F220,0x09},{0x0052423,0x05},{0x325332E,0x0A},{0x0DF8120,00},{0x0DFF310,0x03},{0x1FCF720,00},{0x04AF80A,00},{0x053F600,0x0C},{0x07AF710,00},{0x0FEF227,00},{0x3D8980A,0x0C},{0x0F8F128,00},{0x3667606,0x0A},{0x050F335,0x69},{0x1F5F111,0x02},{0x2B49230,0x0F},{0x208A421,00},{0x0A7FB2C,0x16},{0x0C9F281,0x08}, + {0x08EA43A,0x35},{0x085A131,0x07},{0x0F7F838,0x13},{0x0F5F537,0x06},{0x061C21A,0x18},{0x072C212,0x03},{0x136F8C2,0x03},{0x194C311,0x03},{0x34FFAE1,0x07},{0x11AD4E0,0x07},{0x13DF9E3,00},{0x03BF5E0,00},{0x1F62334,0x1E},{0x1173131,0x06},{0x1F2F235,0x02},{0x084FA37,0x09},{0x1C9F232,00},{0x3CEFA21,0x03},{0x0FBF403,00},{0x2989120,0x06},{0x159B125,0x06},{0x073F9A1,0x0D},{0x3FCA120,0x04},{0x036F821,0x11},{0x0F7C123,00}, + {0x017F821,0x9E},{0x0FAF223,00},{0x146F821,0x0C},{0x006C322,0x07},{0x047F531,0x96},{0x087F233,0x80},{0x0B8FA21,0x04},{0x077F412,0x07},{0x08CF921,0x05},{0x0FCF334,00},{0x066F801,0x08},{0x1F6F521,0x06},{0x09BF501,0x19},{0x0AAF302,0x04},{0x124F661,0x17},{0x2065860,0x0B},{0x006F701,0x19},{0x3F6F720,0x08},{0x1F4F461,0x14},{0x104F6E1,0x23},{0x12670E1,0x05},{0x113F221,0x20},{0x0055121,0x09},{0x0388261,0x83},{0x0197061,0x06}, + {0x0157121,0x1C},{0x0177122,00},{0x0257521,0x21},{0x01771A1,00},{0x0358221,0x19},{0x0388221,0x03},{0x0378222,0x82},{0x0085333,0x0A},{0x01B6175,0x84},{0x0186223,0x0A},{0x00A75E1,0x05},{0x02384F1,0x1D},{0x01655F2,00},{0x2D86901,0x1B},{0x0B65701,00},{0x0C4FF22,00},{0x0077921,0x0D},{0x05FB9A2,0x0B},{0x0FB9121,0x0F},{0x072FA62,0x09},{0x198F541,00},{0x21D8120,0x08},{0x179F125,0x05},{0x1C99223,0x0C},{0x1089122,0x0E}, + {0x05FE121,0x0A},{0x001F1A1,0x27},{0x0153421,0x07},{0x2A2F120,0x14},{0x315F321,0x12},{0x034D2E8,0xDD},{0x1343261,0x8B},{0x053F265,0x0E},{0x1F33263,0x11},{0x0837222,0x19},{0x1055221,0x05},{0x074F161,0x22},{0x07441A1,0x06},{0x00553A1,0x25},{0x0F43221,00},{0x10541A2,0x03},{0x091F010,0x0C},{0x0E7A51E,00},{0x2B29130,0x10},{0x204A121,00},{0x0D6F662,0x22},{0x2E5B241,00},{0x104F021,0x2B},{0x0043221,0x06},{0x06473E4,0x25}, + {0x10548E1,0x08},{0x156FA23,00},{0x0FBF622,00},{0x28CFA21,0x13},{0x1F7F331,0x04},{0x0559131,0x0D},{0x3788133,0x02},{0x0411160,0x05},{0x14431E6,00},{0x0722121,0x0D},{0x2646129,0x0D},{0x3922220,0x84},{0x0A44125,0x82},{0x1023220,0x03},{0x3343120,00},{0x0B5F100,0x0B},{0x0C2D400,0x07},{0x300FF36,0x09},{0x2F4F41E,00},{0x0211131,0x0A},{0x0937122,0x02},{0x1728281,0x0E},{0x0743182,0x05},{0x0331221,00},{0x1243122,00}, + {0x0F9F700,0x08},{0x0CA8601,00},{0x1F3F030,0x54},{0x1F4F130,00},{0x0F3F030,0x52},{0x1F3E130,0x4E},{0x0F4F130,00},{0x015E811,00},{0x014F712,00},{0x153F110,0x4F},{0x0F4D110,00},{0x053F111,0x4F},{0x0F4D111,00},{0x051F121,0x66},{0x0E5D231,00},{0x0E6F130,0x51},{0x0E5F1B0,0x40},{0x079F212,0x43},{0x099F110,0x40},{0x201F230,0x87},{0x1F4C130,00},{0x162A190,0x8E},{0x1A79110,00},{0x164F228,0x4F},{0x0E4F231,00}, + {0x0119113,0x0E},{0x0347D14,00},{0x041F6B2,0x0F},{0x092D290,00},{0x0F3F1F0,0x02},{0x0F4F1F2,00},{0x0157980,00},{0x275F883,00},{0x093F614,0x1F},{0x053F610,00},{0x113B681,0x99},{0x013FF02,00},{0x0119130,0x47},{0x0535211,0x80},{0x016B1A0,0x88},{0x117D161,0x80},{0x105F130,00},{0x036F494,00},{0x017F2E2,0x9E},{0x107FF60,0x80},{0x117F2E0,0x9E},{0x007FFA0,0x80},{0x0043030,0x92},{0x1145431,0x80},{0x0178000,0x49}, + {0x1176081,0x80},{0x015A220,0x48},{0x1264131,00},{0x0158220,0x4A},{0x1264631,00},{0x03460B0,0x0C},{0x01642B2,0x80},{0x105F020,0x92},{0x2055231,00},{0x0F5F120,0x8D},{0x0F6F120,00},{0x1E4E130,0x0D},{0x0E3F230,00},{0x21FF100,0x21},{0x088F400,00},{0x132EA10,0x87},{0x2E7D210,00},{0x0F4E030,0x92},{0x0F5F230,0x80},{0x0FFF100,0x10},{0x1FFF051,00},{0x0FFF110,0x0D},{0x297A110,0x43},{0x0E7E111,00},{0x020C420,0x0E}, + {0x0F6C3B0,00},{0x0FFF030,0x96},{0x0F8F131,00},{0x014E020,0x8F},{0x0D6E130,0x80},{0x14551E1,0x4D},{0x14691A0,00},{0x14551A1,0x4D},{0x14681A0,00},{0x2E7F030,00},{0x047F131,00},{0x0E5F030,0x90},{0x0F5F131,0x80},{0x1F5F430,0x0A},{0x0F6F330,00},{0x1468330,0x15},{0x017D231,00},{0x1455060,0x17},{0x14661A1,00},{0x04460F0,0x8F},{0x0154171,00},{0x214D0B0,0x0F},{0x1176261,0x80},{0x211B1F0,0x8A},{0x115A020,0x80}, + {0x201C3F0,0x89},{0x0058361,0x40},{0x201B370,0x89},{0x1059360,0x40},{0x2F9F830,0x97},{0x0E67620,00},{0x035F131,0x24},{0x0B3F320,00},{0x0C8AA00,0x04},{0x0B3D210,00},{0x104C060,0x51},{0x10455B1,0x80},{0x10490A0,0x52},{0x1045531,0x80},{0x1059020,0x51},{0x10535A1,0x80},{0x10590A0,0x52},{0x1053521,0x80},{0x20569A1,0x93},{0x20266F1,00},{0x0031121,0x4D},{0x1043120,0x80},{0x2331100,0x82},{0x1363100,0x80},{0x0549060,0x56}, + {0x0047060,0x40},{0x0549020,0x92},{0x0047060,0xC0},{0x0B7B1A0,0x99},{0x08572A0,0x80},{0x05460B0,0x5A},{0x07430B0,0x80},{0x0433010,0x90},{0x0146410,00},{0x0425090,0x8F},{0x0455411,00},{0x1158020,0x8E},{0x0365130,00},{0x01F71B0,0x1A},{0x03B7220,0x80},{0x0468020,0x16},{0x1569220,00},{0x1E68080,0x8D},{0x1F65190,00},{0x0B87020,0x22},{0x0966120,0x80},{0x0B87020,0x23},{0x1156020,0x8E},{0x1177030,0x92},{0x1366130,00}, + {0x2A69120,0x4D},{0x1978120,00},{0x2A69120,0x8C},{0x1979120,00},{0x2A68130,0x50},{0x1976130,00},{0x2A68130,0x4A},{0x00560A0,0x96},{0x11652B1,00},{0x10670A0,0x89},{0x11662B0,00},{0x00B98A0,0x4A},{0x10B73B0,00},{0x10B90A0,0x85},{0x11B63B0,00},{0x0167070,0x90},{0x0085CA2,0x80},{0x007C820,0x4F},{0x1077331,00},{0x0199030,0x91},{0x01B6131,0x80},{0x017A530,0x8D},{0x01763B0,0x80},{0x08F6EF0,0x80},{0x02A3570,00}, + {0x08850A0,0x93},{0x02A5560,0x80},{0x0176520,0x0A},{0x02774A0,00},{0x12724B0,0x84},{0x01745B0,00},{0x00457E1,0xAD},{0x0375760,00},{0x33457F1,0x28},{0x05D67E1,00},{0x00F31D0,0xC7},{0x0053270,00},{0x00551B0,0xC7},{0x0294230,00},{0x15B5122,0x52},{0x1256030,00},{0x15B9122,0x4D},{0x125F030,00},{0x19BC120,0x43},{0x165C031,00},{0x1ABB160,0x41},{0x005F131,00},{0x33357F0,0x28},{0x00767E0,00},{0x30457E0,0x23}, + {0x04D67E0,00},{0x304F7E0,0x23},{0x04D87E0,00},{0x10B78A1,0x42},{0x12BF130,00},{0x0558060,0x21},{0x014F2E0,00},{0x0559020,0x21},{0x014A2A0,00},{0x195C120,0x43},{0x16370B0,0x80},{0x19591A0,0x49},{0x1636131,00},{0x1075124,0x40},{0x229FDA0,00},{0x0053280,0xC0},{0x0053360,00},{0x0053240,0x40},{0x00533E0,00},{0x2A5A1A0,0x8F},{0x196A1A0,00},{0x005F0E0,0x44},{0x0548160,00},{0x105F0E0,0x44},{0x0547160,0x80}, + {0x033A180,0x8A},{0x05452E0,00},{0x1528081,0x9D},{0x1532340,0x80},{0x15211E1,0x8C},{0x17380E0,0x80},{0x0477220,0x40},{0x019F883,00},{0x1028500,0xD2},{0x11245C1,00},{0x0034522,0xD2},{0x23535E3,00},{0x074F604,0xC0},{0x024A302,00},{0x0D2C090,0x8E},{0x0D2D130,00},{0x0D2D090,0x8E},{0x0D2F130,00},{0x0F390D0,0x12},{0x0F3C2C0,00},{0x0F2C2C0,0x80},{0x15213E0,0x1A},{0x21333F1,0x80},{0x0BA45E0,0x1A},{0x19132F0,00}, + {0x1025810,0x18},{0x0724202,00},{0x0B36320,0x08},{0x0B36324,00},{0x0127730,0x0D},{0x1F4F310,00},{0x033F900,0x80},{0x273F400,0x80},{0x2ACF907,0x1A},{0x229F90F,00},{0x153F220,0x21},{0x0E49122,00},{0x339F103,0x4F},{0x074D615,00},{0x1158930,0x42},{0x2076B21,00},{0x003A130,0x1F},{0x0265221,00},{0x0134030,0x13},{0x1166130,0x80},{0x032A113,00},{0x172B212,0x80},{0x001E795,0x81},{0x0679616,00},{0x104F003,0x49}, + {0x0058220,00},{0x0D1F813,0x44},{0x078F512,00},{0x0ECA710,0x0B},{0x0F5D510,00},{0x0C8A820,0x0B},{0x0B7D601,00},{0x0C4F800,0x0B},{0x0B7D300,00},{0x031410C,0x8F},{0x31D2110,0x80},{0x1B33432,0x21},{0x3F75431,00},{0x00437D1,0xAD},{0x0343750,00},{0x2013E02,00},{0x2F31408,00},{0x003EBF5,0xD4},{0x06845F6,00},{0x171DAF0,00},{0x117B0CA,0xC0},{0x11121E2,0xC0},{0x20053EF,0x86},{0x30210EF,0xC0},{0x2F0F00C,00}, + {0x0E6F604,00},{0x047FA00,00},{0x006F900,00},{0x067FD02,0x80},{0x078F703,00},{0x214F70F,0x05},{0x247F900,00},{0x3FB88E1,00},{0x2A8A6FF,00},{0x0FFAA06,00},{0x0FAF700,00},{0x06CF502,00},{0x138F703,00},{0x078F502,00},{0x137F700,00},{0x037F502,00},{0x137F702,00},{0x0E6C204,0x10},{0x343E800,00},{0x212FD03,0x80},{0x205FD02,0x80},{0x085E400,0x80},{0x234D7C0,0x80},{0x0E6E204,0x90},{0x144B801,00}, + {0x2777602,0x87},{0x3679801,00},{0x270F604,0x81},{0x3A3C607,00},{0x067FD00,00},{0x0F0F081,00},{0x004F49F,0xC3},{0x056FB03,0x81},{0x2D65A00,0x0E},{0x0FFFFBF,0xC0},{0x1C7F900,0x07},{0x0FFFF80,0xC0},{0x1D1F813,0x44},{0x1DC5E01,0x0B},{0x113F020,0x8C},{0x027E322,0x80},{0x125A020,0x86},{0x136B220,00},{0x015C520,0x28},{0x0A6D221,00},{0x1006010,0x1A},{0x0F68110,00},{0x2E7F030,0x12},{0x1E7F510,0x0D},{0x2E7F610,00}, + {0x0465020,0x96},{0x1569220,0x80},{0x075FC01,00},{0x037F800,00},{0x175F701,0xC0},{0x336FC00,00},{0x2709404,0x81},{0x0B5F901,0x07},{0x050D4BF,0xC0},{0x0FFF110,0x06},{0x0069421,0x0E},{0x000F081,00},{0x004F41F,0xC3},{0x03BF271,0x0E},{0x00BF3A1,00},{0x0B5F341,00},{0x082D385,0x59},{0x0E3A341,0x80},{0x005B341,0x80},{0x014F6B1,0x92},{0x058C7B2,0x14},{0x018AAB0,0x44},{0x0088A71,00},{0x0145571,00},{0x10497A1,0x13}, + {0x0045571,0x80},{0x01A4671,00},{0x10691A1,0x13},{0x0076161,0x89},{0x0C8F381,0x80},{0x0F8D144,0x80},{0x0A6C362,00},{0x11CD1B1,0x49},{0x1037F61,0x98},{0x012C161,0x93},{0x0054FA1,00},{0x0058AB2,0x83},{0x0397461,0x90},{0x06771A1,00},{0x00554B1,0x57},{0x0057AB2,00},{0x0635450,00},{0x045A581,00},{0x03782A1,00},{0x01F75A1,0x8A},{0x1557261,0x86},{0x00B72A1,00},{0x00982A1,00},{0x01F7561,0x9C},{0x0266561,00}, + {0x04676A2,0xCB},{0x0365561,00},{0x00757A2,0x99},{0x0075661,00},{0x00777A2,0x93},{0x0077661,00},{0x00A9661,00},{0x005DF62,0x9E},{0x0076FA1,0x40},{0x2068FA0,00},{0x09453B7,0xA5},{0x005A061,00},{0x011A8A1,0x1F},{0x0032571,0x80},{0x03491A1,0x17},{0x01655A1,00},{0x00154B1,0x5D},{0x0036AB2,00},{0x0354262,00},{0x177A161,0x1C},{0x0028691,00},{0x026F2A1,0x83},{0x151F181,0x4D},{0x0F5F282,00},{0x15111A1,0x94}, + {0x0131163,0x80},{0x111EB51,00},{0x303FF40,00},{0x306F640,00},{0x205F540,00},{0x048F881,0x45},{0x0057582,0x08},{0x132FA13,0x80},{0x1F9F211,0x0A},{0x0F2F409,0x1B},{0x0E2F211,0x80},{0x0F3D403,0x94},{0x0F3A340,0x40},{0x1058761,0x80},{0x0058730,0x03},{0x174A423,0x9D},{0x0F8F271,0x80},{0x0007FF1,0x8D},{0x1167F21,00},{0x0759511,0x0D},{0x1F5C501,0x80},{0x073F222,0x97},{0x0F3F331,0x80},{0x0C3F411,00},{0x01096C1,0x8B}, + {0x1166221,00},{0x01096C1,0x8E},{0x1153221,00},{0x012C4A1,0x97},{0x0065F61,00},{0x010E4B1,0xCD},{0x0056A62,0x83},{0x0F57591,0x0D},{0x144A440,00},{0x0256421,0x92},{0x0088F21,0x01},{0x0167421,0x93},{0x0078F21,00},{0x0176421,0x94},{0x0195361,0x94},{0x0077F21,0x04},{0x0187461,0x8F},{0x0088422,00},{0x016A571,0x4A},{0x00A8871,0x4A},{0x1198131,00},{0x0219632,0x4A},{0x0187261,00},{0x04A85E2,0x59},{0x01A85E1,00}, + {0x02887E1,0x48},{0x01975E1,00},{0x0451261,0x8E},{0x1045F21,0x84},{0x106A510,0x86},{0x004FA00,0x03},{0x202A50E,0x09},{0x017A700,00},{0x0F6B710,0x40},{0x005F011,00},{0x00BF506,0x07},{0x008F602,00},{0x008FF0E,00},{0x209F300,0x06},{0x005F600,00},{0x006F60C,00},{0x004F60C,00},{0x244CB12,0x05},{0x001F60C,00},{0x242CB12,00},{0x000F00E,00},{0x3049F40,00},{0x0039F50,0x04},{0x204940E,0x02},{0x0F78700,0x0A}, + {0x2039F1E,00},{0x3029F50,00},{0x100FF00,00},{0x014FF10,00},{0x2187700,0x03},{0x1F4FC02,00},{0x0F4F712,0x05},{0x053F101,0x4F},{0x074D211,00},{0x00381A5,0xD2},{0x005F1B2,0x80},{0x09BA0B1,00},{0x0B5F441,00},{0x0068761,00},{0x0100133,0x87},{0x0337D14,0x80},{0x1FFF000,0x0A},{0x1FFF001,00},{0x0AE71E1,0x16},{0x09E81E1,00},{0x2831621,0xDA},{0x0C31320,00},{0x0022A95,0x97},{0x0F34212,0x80},{0x001EF4F,0x81}, + {0x01B61B1,0x80},{0x0176E71,0xC5},{0x0157261,0x1C},{0x0278461,00},{0x0427847,0x4D},{0x0548554,00},{0x0B3F101,0x88},{0x0117171,0x8B},{0x11562A1,00},{0x0035172,0x1C},{0x0135262,0x05},{0x06754A1,0x80},{0x0115270,0xC5},{0x0FE3171,0x40},{0x021FF13,0x96},{0x003FF11,0x80},{0x01797F1,0x01},{0x018F121,0x0D},{0x00687B1,00},{0x03BA2A1,0x82},{0x00E8B62,0x05},{0x01B61B1,0x40},{0x03B92A1,0x80},{0x03B52A1,0x80},{0x01F4171,0x1C}, + {0x0177421,0x83},{0x0176562,00},{0x0AE7121,0x16},{0x09E8121,00},{0x212AA53,0x97},{0x021AC51,0x80},{0x112AA43,0x1C},{0x1119B51,00},{0x001FFA4,0xDB},{0x0AC9011,0x1A},{0x22F55B0,0x16},{0x02A65A1,00},{0x2A2B264,0x02},{0x0F3F8E2,0x86},{0x0F3F770,0x40},{0x0F0E026,0x03},{0x0056541,0x83},{0x0743291,00},{0x0B2F112,0x08},{0x061D001,0x40},{0x282B264,00},{0x1DA9803,00},{0x0B2F131,0x8F},{0x0AFF111,0x83},{0x0B2F131,0x19}, + {0x0D5C131,0x01},{0x0D2F111,0x4C},{0x0E6F211,0x83},{0x0D5C111,0x15},{0x0E6C231,00},{0x0D4F315,0x5F},{0x0E4B115,0x61},{0x0E4B111,0x5C},{0x0B5B111,00},{0x0D4F111,0x89},{0x0E4C302,0x5F},{0x035C100,0x9B},{0x0D5C111,00},{0x050F210,0x60},{0x0F0E131,0x5D},{0x040B230,0xA2},{0x5E9F111,0x80},{0x0E3F217,0x54},{0x0E2C211,0x06},{0x0C3F219,0x2B},{0x0D2F291,0x07},{0x004A61A,0x27},{0x004F600,0x0A},{0x0790824,0x9A},{0x0E6E384,0x5B}, + {0x0E6F314,0x62},{0x0E6F280,00},{0x055F71C,0xA3},{0x0D88520,0x0D},{0x0F7E701,0x84},{0x005B301,0x80},{0x0F77601,0x80},{0x02AA2A0,0x85},{0x02AA522,0x9E},{0x02AA5A2,0x83},{0x02AA128,0x95},{0x038C620,0x81},{0x057F621,0x80},{0x002B025,0x5F},{0x0057030,0x40},{0x002C031,0x46},{0x0056031,0x80},{0x015C821,0x93},{0x0056F31,00},{0x005CF31,0x16},{0x0057F32,0x87},{0x4F2B913,0x0D},{0x14A9221,0x99},{0x242F823,0x96},{0x2FA9122,0x1A}, + {0x0BA9221,0x99},{0x04A9122,00},{0x0487131,0x19},{0x0487131,00},{0x0DAF904,0x0B},{0x0DFF701,0x80},{0x0C8F621,0x1C},{0x0C8F101,0xD8},{0x1038D12,0x95},{0x0866503,0x8B},{0x113DD31,0x17},{0x012C121,0x1A},{0x0054F21,00},{0x022C122,0x0B},{0x0054F22,0x1C},{0x0F5A006,0x03},{0x035A3E4,0x23},{0x0077FA1,0x51},{0x0077F61,00},{0x0578402,0x05},{0x074A7E4,0x16},{0x054990A,0x65},{0x0639707,0x60},{0x1045FA1,0x59},{0x0066F61,00}, + {0x0178421,0x15},{0x008AF61,0x0B},{0x0178521,0x94},{0x0097F21,0x05},{0x008AF61,0x0D},{0x1277131,0x15},{0x0499161,0x83},{0x0277DB1,0x10},{0x0297A21,0x08},{0x00A6321,0x9F},{0x00B7F21,00},{0x00A65A1,0xA2},{0x00B7F61,00},{0x036A823,0x52},{0x016AAA1,0x94},{0x00A8F21,0x80},{0x011DA25,00},{0x068A6E3,0x2B},{0x068A623,0x1E},{0x0588821,0x8C},{0x001DF26,00},{0x03876E4,0x2B},{0x0369522,0xD8},{0x00776E1,00},{0x087C4A3,00}, + {0x076C626,0x57},{0x04AA321,0x48},{0x00A8621,00},{0x00A9621,00},{0x109F121,0x1D},{0x109F121,0x80},{0x0332121,0x97},{0x0454222,0x03},{0x0D421A1,0x99},{0x0D54221,0x03},{0x0336121,0x8D},{0x0354261,0x03},{0x0E42121,0x8C},{0x0D54261,0x03},{0x1471121,0x15},{0x0E41121,0x8C},{0x0D55261,00},{0x58AFE0F,0x83},{0x006FB04,0x85},{0x003A821,0x99},{0x004A722,00},{0x0937501,0x61},{0x0B4C502,0x80},{0x056B222,0x92},{0x056F261,0x8A}, + {0x2343121,0x9D},{0x00532A1,0x80},{0x088A324,0x40},{0x087A322,0x5B},{0x151F101,0x13},{0x0F5F241,00},{0x04211A1,0x10},{0x0731161,0x92},{0x0211161,0x98},{0x0167D62,0x57},{0x01672A2,0x80},{0x0069F61,0x5B},{0x0049FA1,00},{0x024A238,0x9F},{0x024F231,0x9C},{0x014F123,0x9F},{0x053C601,0x71},{0x0D5F583,0x40},{0x4FCFA15,0x11},{0x0ECFA12,0x80},{0x0FCFA18,0x9D},{0x007A801,0x5C},{0x083F600,0x03},{0x458F811,0x8F},{0x0E5F310,00}, + {0x154F610,0x92},{0x0E4F410,00},{0x0001F0F,00},{0x0001F0F,0x3F},{0x3F11FC0,0x3F},{0x7845603,0x88},{0x024D803,0x1E},{0x7846604,0x08},{0x001FF06,00},{0x3043414,00},{0x1841204,00},{0x0F86848,00},{0x0F86747,00},{0x0F8464C,00},{0x261B235,0x1C},{0x715FE11,0x20},{0x019F487,0xC0},{0x1112EF0,00},{0x11621E2,0xC0},{0x7112EF0,00},{0x007FC01,0x03},{0x638F802,0x03},{0x007FC00,0x03},{0x638F801,0x03},{0x00CFD01,0x07}, + {0x03CD600,00},{0x2477B12,00},{0x243CB12,0x15},{0x3E4E40F,00},{0x1E5F508,0x0A},{0x366F50F,00},{0x1A5F508,0x19},{0x1E5F507,0x11},{0x365F50F,00},{0x1A5F506,0x1E},{0x0C49406,00},{0x2F5F604,00},{0x004F902,00},{0x0F79705,0x03},{0x156F28F,0x03},{0x100F446,00},{0x000F38F,00},{0x0A5F442,0x06},{0x005F310,00},{0x037F811,0x05},{0x155F381,00},{0x000F341,00},{0x503FF80,00},{0x3E5E40F,00},{0x1E7F508,0x0A}, + {0x1A8F608,0x19},{0x00CF506,0xC8},{0x008F502,0x0B},{0x00CF506,0xC5},{0x007F501,0x03},{0x0BFFA01,0x8F},{0x096C802,0x80},{0x0BFFA01,0xCF},{0x096C802,0x0B},{0x087FA01,0x4F},{0x0B7FA01,0x08},{0x08DFA01,0x55},{0x0B5F802,0x12},{0x08DFA01,0x59},{0x0B6F802,0x12},{0x00AFA01,00},{0x006F900,0x0D},{0x089F900,0x80},{0x06CF600,0x08},{0x388F803,0x8D},{0x088F803,0x88},{0x0B8F80C,0x12},{0x388F803,0x88},{0x0B6F60C,0x03},{0x0B8F80C,0x0F}, + {0x04F760F,00},{0x2187700,0x12},{0x249C80F,0x40},{0x2699B02,0x80},{0x249C80F,0xC0},{0x2699B0F,0x19},{0x305AD57,0xDC},{0x0058D87,00},{0x305AD47,0xDC},{0x0058D87,0x12},{0x304A857,0xDC},{0x0048887,00},{0x0058887,0x08},{0x0F5F715,0x08},{0x0F5F712,0x08},{0x7476701,0xCD},{0x0476703,0x40},{0x0476701,0xC0},{0x0556501,00},{0x0A76701,0x17},{0x0356503,0x1E},{0x0777701,0x9D},{0x0057501,00},{0x005FF1F,0x40},{0x005FF1F,0x48}, + {0x002FF1F,0x40},{0x3E0F50A,0x7C},{0x003FF1F,0x40},{0x04F7F0F,0x40},{0x21E7E00,0x88},{0x21E7E00,0x14},{0x6E5E403,0x0D},{0x7E7F507,0x11},{0x366F500,0x1B},{0x4A8F604,0x15},{0x3F40003,0x3F},{0x084FA01,0x4F},{0x0B4F800,00},{0x0F3F040,0x30},{0x0038761,00},{0x033E813,0x12},{0x0F3F011,00},{0x133F721,0x48},{0x2F4F320,00},{0x1F4F201,00},{0x0F5F009,00},{0x1114070,0x84},{0x0034061,00},{0x0D3B305,0x40},{0x024F246,0x80}, + {0x106F90E,0x2F},{0x0F4F001,00},{0x0126E71,0x0D},{0x0045061,00},{0x2A31321,0x1A},{0x0F31220,00},{0x025DC03,0xA2},{0x025DC03,0x17},{0x009F021,00},{0x025DF23,0x20},{0x0F9F021,00},{0x1025161,0x52},{0x0024173,00},{0x0195132,0x5A},{0x0396061,0x85},{0x025DC03,0x9A},{0x025DC03,0x98},{0x1126EB1,0x47},{0x0045021,0x02},{0x025DC03,0x97},{0x025DC03,0x96},{0x025DC03,0x94},{0x025DB02,0x10},{0x006F030,00},{0x1145152,0x88}, + {0x0147242,00},{0x01572A2,00},{0x0F8AF00,0xC0},{0x0F6F401,00},{0x0009FB1,0x45},{0x1069FA2,0x0D},{0x1069FA2,0x08},{0x1016F00,0x19},{0x0F57001,00},{0x229FFF2,0x1A},{0x0F480E1,00},{0x025DC03,0x12},{0x009F032,00},{0x025DC03,0x10},{0x025DC03,0x0E},{0x025DC03,0x0C},{0x025DC03,0x0A},{0x025DC03,0x92},{0x1062F01,0x07},{0x0076521,00},{0x00470F5,0x1C},{0x0F38071,00},{0x0F77061,0x21},{0x0256061,00},{0x0C76012,0x28}, + {0x00550F1,00},{0x0049F21,00},{0x0049F62,00},{0x2119A16,0x14},{0x0029012,00},{0x033F813,0x0E},{0x003FF11,00},{0x0057F72,0x1D},{0x0F56071,00},{0x203B162,0x4A},{0x2027062,0x4A},{0x0029062,00},{0x0FF0F20,0xFF},{0x0F1F021,00},{0x0F28021,0x8F},{0x0037021,00},{0x0039012,00},{0x212AA93,0x97},{0x021AC91,0x80},{0x024DA05,0x8B},{0x013F901,00},{0x203B162,0xCF},{0x0046172,00},{0x006FA04,0xD3},{0x095F201,00}, + {0x0847162,0x21},{0x0246061,00},{0x3F27026,00},{0x0568705,00},{0x005FC11,00},{0x1F5DF12,00},{0x104F021,0xCF},{0x0D6F401,00},{0x104F021,0xC7},{0x004F021,0x1B},{0x104F061,0xCE},{0x1D6F441,00},{0x065F301,0x12},{0x07DF111,00},{0x254F5A8,0xE8},{0x0B7F321,00},{0x14FF101,0xC6},{0x3D6F311,0x06},{0x0ADF303,0x58},{0x15E8301,00},{0x01F4C28,0xD4},{0x045F601,00},{0x223F208,0x92},{0x073F414,0x80},{0x22F6216,0x64}, + {0x06AF401,0x41},{0x036F506,0x10},{0x025FDA1,0x80},{0x0176D0A,0xD5},{0x005F001,00},{0x265F812,0xC8},{0x0D7F601,00},{0x092FF43,00},{0x003F015,00},{0x0388B03,0xC0},{0x2398300,0x80},{0x00FF060,0xC0},{0x00FF062,0x06},{0x29FFF24,00},{0x10FF021,00},{0x11FFF30,00},{0x14C5E32,00},{0x10BF024,0x49},{0x00BF024,0xCC},{0x10B5031,0x0A},{0x12F6F24,0xCA},{0x20D4030,0x0A},{0x00BF022,0xCD},{0x10B5071,0x03},{0x105F003,0xCE}, + {0x1C8F211,00},{0x125FF03,0x49},{0x145F503,0xD3},{0x1269E03,0x90},{0x0BBF221,0x80},{0x047FF01,0xC0},{0x2BCF400,00},{0x04F6F20,0xE0},{0x31FFF20,0x01},{0x32F5F30,0xE0},{0x31FFE30,0x01},{0x3598600,0x42},{0x02A7284,0x80},{0x054FE10,00},{0x00FF030,00},{0x0397530,0xC2},{0x088F220,0x40},{0x125FF10,0x0A},{0x039F330,0x0F},{0x00CF0A0,00},{0x07FF420,0x18},{0x00FF021,00},{0x106F010,00},{0x05FF620,0x16},{0x006F010,0x08}, + {0x106F031,0xC5},{0x10650B1,00},{0x11FF431,0x40},{0x13653A1,00},{0x01FF431,0xC0},{0x13663A1,00},{0x043F271,0x1D},{0x1285161,00},{0x279A702,0xD2},{0x284F410,00},{0x194F622,0x1B},{0x09BF231,0x80},{0x126F801,0x40},{0x105F000,00},{0x043F231,0x1D},{0x1285121,00},{0x1011031,0x56},{0x2042030,00},{0x136F131,0x1B},{0x0286121,00},{0x034F131,0x1C},{0x0285121,00},{0x0056072,0x83},{0x172FCE1,0x46},{0x01762B1,00}, + {0x0053071,0x57},{0x0055072,00},{0x062F600,00},{0x01BF301,0x08},{0x06553B1,0x14},{0x0254231,0x56},{0x00FF0A1,0x01},{0x1255221,0x55},{0x02993A1,0x01},{0x07554B1,0x20},{0x0089021,00},{0x0375421,0x1B},{0x008F021,00},{0x1396521,0x16},{0x09EF221,00},{0x0375621,0x1E},{0x00AF021,00},{0x0046021,0x4E},{0x1095031,00},{0x0046021,0x8E},{0x0055021,0x8E},{0x1095021,00},{0x0055031,0x8E},{0x0038031,0x17},{0x136F132,00}, + {0x2066020,0x19},{0x10A7022,00},{0x1065020,0x1E},{0x00A6022,00},{0x0258C32,0x4C},{0x0176221,00},{0x00430B1,0x57},{0x00A5021,00},{0x04451B1,0x55},{0x20F4032,0xDF},{0x0095021,00},{0x39C4611,0x20},{0x05A6321,00},{0x39D7531,0x17},{0x35AF802,00},{0x02A42B1,00},{0x20FF022,0x5D},{0x0535231,0x0F},{0x147F221,00},{0x39D65B1,0x17},{0x05AF802,00},{0x22A42B0,00},{0x057F421,0xC0},{0x228F232,00},{0x29D6561,0xC6}, + {0x2095021,00},{0x358F423,0xC0},{0x3486422,0x10},{0x0EDF331,0xCB},{0x07DF131,00},{0x395FF09,0xC0},{0x02552E1,00},{0x0052031,0x58},{0x0063031,0x40},{0x0735421,0x0E},{0x008F021,0x07},{0x0033071,0x5D},{0x0044072,00},{0x2023034,0x27},{0x003F021,0x09},{0x3042001,0x63},{0x0585201,0x99},{0x0364161,00},{0x0261131,0x1B},{0x0071031,00},{0x0B4F251,0xD0},{0x075F101,00},{0x0572132,0x06},{0x01942A3,00},{0x3859F45,0x15}, + {0x043F311,00},{0x115F403,0xD7},{0x0C8F221,00},{0x295F300,0x11},{0x2B9F260,00},{0x0050021,0xCF},{0x2041020,00},{0x2A3F400,0x1B},{0x0644312,0x22},{0x2028030,00},{0x098F201,0x40},{0x1D5F307,0x09},{0x083FF00,00},{0x166F502,00},{0x275FF12,0x80},{0x2E8F310,00},{0x163F402,0x0F},{0x164F502,00},{0x064FB05,0xC9},{0x2579600,00},{0x1B2FF13,0x0C},{0x30F5030,0x0A},{0x21DF230,0x0E},{0x10C4021,00},{0x3023030,0xC0}, + {0x2064030,00},{0x375FF25,0xC0},{0x033FE03,00},{0x37DFE25,0xC0},{0x0079003,00},{0x0034007,0xDC},{0x0056001,00},{0x2B3F811,0xC1},{0x003F010,0x03},{0x00CF000,00},{0x006F000,00},{0x32C8F01,00},{0x2A2FF40,00},{0x30E104E,00},{0x092FF11,0xC0},{0x306301E,00},{0x003402E,00},{0x003105E,00},{0x2A3375B,0x95},{0x237461A,0x40},{0x344FF6B,0xC0},{0x02AF1EA,0x01},{0x10EF07E,00},{0x00E3030,0x0A},{0x003F02E,00}, + {0x00310FE,00},{0x023FCC0,00},{0x006F04E,00},{0x0A3FB00,0xC0},{0x007F000,00},{0x0C2FD05,0xC0},{0x3D9F910,00},{0x03A8F2E,00},{0x067A800,00},{0x22C8305,00},{0x0589903,00},{0x25C8400,00},{0x08AF800,00},{0x00CFF00,00},{0x006FF00,00},{0x004F041,0xC0},{0x308F009,00},{0x006F001,0x40},{0x339880D,00},{0x12FF201,0xC0},{0x356F54E,00},{0x12FF241,0xC0},{0x155AF00,00},{0x364FF4B,00},{0x1496401,0xC0}, + {0x356F54A,00},{0x2678900,00},{0x357874E,00},{0x02FF241,0xC0},{0x05FF210,00},{0x27FC40E,00},{0x00CF003,0xC0},{0x03AF802,00},{0x00BF003,0xC0},{0x037F702,00},{0x01AFD02,00},{0x00BF002,0xC0},{0x325FF25,0xC0},{0x0078003,00},{0x0089011,0xC0},{0x357894E,00},{0x11BF100,00},{0x3468B5E,00},{0x205508C,0x80},{0x05C855D,0x0A},{0x205504C,0x40},{0x05C858D,0x0A},{0x206F04B,00},{0x346F610,00},{0x392F700,00}, + {0x2AF475E,00},{0x30FF01D,00},{0x0F0F715,00},{0x0EB3402,0x87},{0x0075004,00},{0x0EF3301,0xCB},{0x0075002,00},{0x2B2FF04,0x80},{0x2188719,0x04},{0x27FFF06,0x80},{0x204F009,0x0A},{0x053F300,0x43},{0x247694E,00},{0x224F10E,0x40},{0x335FF4E,0x02},{0x274F911,0x41},{0x108F010,00},{0x288F911,0xC1},{0x004F010,0x03},{0x15DFD25,0xC0},{0x015FF0E,00},{0x0BFF800,00},{0x008A000,00},{0x1679810,00},{0x104F041,0xC0}, + {0x040F520,0x0D},{0x0F7F010,0x89},{0x0256361,00},{0x0099161,00},{0x060F101,0x4D},{0x07BD211,00},{0x013F202,0x22},{0x043F502,00},{0x09BA0B1,0x40},{0x005F1B1,0x40},{0x0F466E1,0x13},{0x086B0E1,00},{0x0014171,0x1C},{0x03B92A1,00},{0x0064131,0x1A},{0x03792A1,0x80},{0x175A563,0x0F},{0x045A421,0x8D},{0x002A474,0x47},{0x04245D7,0x40},{0x05331C5,0x8F},{0x07242D9,00},{0x1F07151,0x91},{0x1856092,0x80},{0x3D3B1E1,0x4F}, + {0x1741221,00},{0x00FF071,0x8D},{0x15F63B2,0x80},{0x0358501,0x88},{0x053F108,0x40},{0x114D1B1,0x46},{0x0036131,0x10},{0x0F7F010,0x90},{0x0D5E521,0x06},{0x0A4F3F0,00},{0x1F5F460,0x07},{0x03A4331,0x1C},{0x00AAA21,00},{0x055F518,0x23},{0x0F5E622,0x0E},{0x0051F21,0x98},{0x00A7121,00},{0x03FFA10,0x86},{0x064F210,0x0C},{0x0013171,0x1C},{0x03BF2A1,00},{0x0754231,0x98},{0x0F590A1,0x80},{0x0345160,0x8D},{0x12652A0,0x04}, + {0x02422E0,0x8D},{0x02640A0,0x09},{0x02452E0,0x8D},{0x026B0A0,0x09},{0x0044131,0x1A},{0x034F2A1,0x80},{0x0289130,0x58},{0x048C131,0x0E},{0x0F9F913,0x86},{0x0047310,0x06},{0x03BA2A1,0x40},{0x0175331,0x18},{0x0F463E0,0x1E},{0x08670E1,00},{0x2034122,0x4F},{0x10561F2,0x80},{0x1FAF000,0x02},{0x1FAF211,0x85},{0x1A57121,0x17},{0x0958121,00},{0x0AE7161,0x1C},{0x02E8160,00},{0x054F606,0x73},{0x0B3F241,0x0E},{0x0D5E521,0x0E}, + {0x0A21B14,0x7F},{0x0A4A0F0,0x7F},{0x05285E1,0x18},{0x05662E1,00},{0x2448711,00},{0x0B68041,0x84},{0x3F0FB02,00},{0x006F3C2,0x0D},{0x00C900C,00},{0x004F001,0x12},{0x1251041,00},{0x1042041,00},{0x3F0F781,00},{0x135FFE1,0x02},{0x00FBF0C,0x07},{0x004F001,0x0A},{0x053F101,0x7F},{0x074F211,0x3F},{0x064F210,0x06},{0x0431121,0x97},{0x0354262,0x07},{0x1F0F001,00},{0x136F7E4,0x0A},{0x1856092,0x85},{0x006F311,0x07}, + {0x200A01E,00},{0x0FFF810,0x0E},{0x018BF20,00},{0x066F800,0x11},{0x0FFF902,0x19},{0x0FFF811,0x06},{0x215CF3E,00},{0x0F9D92E,0x11},{0x2A0B26E,00},{0x2D4960E,00},{0x2E0136E,00},{0x1D4A502,00},{0x025F522,0x95},{0x005EF24,0x9A},{0x004EF26,0xA1},{0x0065F24,0x07},{0x1047B20,0x4B},{0x072F521,00},{0x019992F,00},{0x0BFFAA2,0x22},{0x015FAA1,0x55},{0x00B7F21,0x08},{0x0137221,0x94},{0x0B26425,0x3E},{0x0739321,0x38}, + {0x0099DA1,0x04},{0x0298421,0x9C},{0x0CFF828,0xB2},{0x0187521,0x22},{0x00A9F21,0x07},{0x0F3F211,0x0F},{0x034F2E1,00},{0x1039761,0x41},{0x004C770,00},{0x00221C1,0x1A},{0x014B421,00},{0x001F2F1,0xCE},{0x02562E1,0x40},{0x212F1C2,0x25},{0x054F743,0x03},{0x2017230,0x1C},{0x2269420,00},{0x021A161,0x92},{0x116C2A1,0x40},{0x046A502,0x64},{0x044F901,0x80},{0x175F403,0x31},{0x0F4F301,0x83},{0x0858300,0x2A},{0x0C872A0,0x80}, + {0x0437721,0x25},{0x006A5E1,0x80},{0x0177423,0x83},{0x017C563,0x8D},{0x0187132,0x9A},{0x038B2A1,0x82},{0x0065231,0x1B},{0x037F2A1,0x80},{0x060F207,0x13},{0x036BA02,0x0A},{0x024F621,0x13},{0x014C421,0x80},{0x025F521,0x17},{0x015C521,0x80},{0x02C6621,0x17},{0x014A521,0x80},{0x064E400,00},{0x074A400,00},{0x2F0F009,0x0D},{0x047F920,00},{0x0F6E901,0x15},{0x006D600,00},{0x0F0F280,00},{0x0F4F480,00},{0x00110BE,0x0C}, + {0x202FF8E,00},{0x053F101,0x4B},{0x074F131,00},{0x053F201,0x49},{0x064F311,00},{0x053F201,0x50},{0x064F331,00},{0x078C423,0x99},{0x048C231,00},{0x098C423,0x97},{0x058C231,00},{0x088C423,0x5E},{0x05AC421,0x4E},{0x03AC231,00},{0x056B301,0x8D},{0x056B301,00},{0x019D0A3,0x5C},{0x017F021,0x80},{0x018D0A3,0x64},{0x018F021,0x80},{0x018F6B3,0x61},{0x008F131,00},{0x09EAAB3,0x08},{0x03E80A1,00},{0x0144571,00}, + {0x12497A1,0x0D},{0x0145571,0x80},{0x1249761,0x8F},{0x000A121,0x80},{0x0F6F236,00},{0x085F211,0x87},{0x0B7F212,0x80},{0x054F607,0x73},{0x0B6F242,00},{0x054F60E,0x73},{0x1E26301,0x46},{0x01E8821,00},{0x24D7520,0x8B},{0x01D8921,0x80},{0x01C6421,0xC4},{0x03CD621,00},{0x03C6421,0x4A},{0x008F321,0x92},{0x228F322,0x80},{0x028F331,0x92},{0x038B1B1,00},{0x002DB77,0xE0},{0x0125831,00},{0x00211B1,0x93},{0x0034231,0x80}, + {0x0023AB1,0xAF},{0x0134232,0x80},{0x2556823,0xD2},{0x1055461,00},{0x05312C4,0x10},{0x1D6FB34,0x83},{0x0269471,00},{0x074F212,00},{0x0096821,0x11},{0x01B5731,0x80},{0x02FA433,0x14},{0x0117575,00},{0x078F71A,0xC6},{0x0024691,00},{0x0287C31,0x91},{0x01AAB23,00},{0x0124D01,0x02},{0x013F501,00},{0x118D671,0x1E},{0x018F571,00},{0x0287271,0x95},{0x0186361,00},{0x054F589,0x5E},{0x023F582,0x07},{0x20FFF22,0x5A}, + {0x125F121,0x56},{0x0087262,00},{0x121F131,0x40},{0x0166F21,00},{0x1388231,0x4B},{0x0086821,00},{0x175F502,0x58},{0x0F8F501,0x80},{0x11561B1,0x16},{0x00562A1,00},{0x01351A1,0x1E},{0x0175221,0x80},{0x1145131,0x92},{0x00552A1,00},{0x12CF131,0x8F},{0x01C61B1,00},{0x1228131,0x4D},{0x0167223,0x80},{0x171D201,0x55},{0x238F301,00},{0x114F413,0x49},{0x013F201,0x80},{0x154F203,0x4C},{0x044F301,0x40},{0x119F523,0x51}, + {0x019F421,00},{0x1547003,0x51},{0x004B301,0x80},{0x05FF561,0x21},{0x02AF562,00},{0x018F221,0x0F},{0x018F521,0x80},{0x038F2A1,0x93},{0x018F321,00},{0x13FF631,0x89},{0x01FF321,0x40},{0x13FF431,0x88},{0x01FF221,0x40},{0x04F6421,0x91},{0x028F231,00},{0x05FF561,0x1E},{0x05A6661,00},{0x02A7561,0x07},{0x03FF561,0x28},{0x01A7562,0x04},{0x01F7561,0x21},{0x02A7561,00},{0x05F8571,0x51},{0x01A6661,00},{0x13F93B1,0x45}, + {0x01F6221,0x80},{0x13FA3B1,0x89},{0x00F8221,0x80},{0x13F86B1,0x8F},{0x00F7221,0x80},{0x137C6B1,0x87},{0x0067221,0x80},{0x0217B32,0x95},{0x0219B32,0x97},{0x0115231,0xC5},{0x11E3132,00},{0x1177E31,0x43},{0x019D520,0x93},{0x11B6121,00},{0x0069161,0x12},{0x0076161,00},{0x00D5131,0x1C},{0x01F7221,0x80},{0x13DC231,0x8A},{0x00F7761,0x80},{0x02DF431,0x8B},{0x00F7321,0x80},{0x02DA831,0x8B},{0x00F8321,0x80},{0x06A6121,0x26}, + {0x01C8D21,0x90},{0x00FA521,00},{0x01F75A1,0x10},{0x00F7422,00},{0x11F75A0,0x15},{0x01F7521,00},{0x033F5C5,0x53},{0x025FDE1,0x80},{0x013F5C5,0x59},{0x005FDE1,0x80},{0x0248305,0x66},{0x014A301,00},{0x031A585,0xD3},{0x033F284,0xC7},{0x022F211,0x80},{0x122F210,0xC9},{0x012FC11,00},{0x206FB03,0xD2},{0x006D901,00},{0x024D443,0x51},{0x004E741,0x40},{0x0275722,0x59},{0x0275661,0x40},{0x0175622,0xA7},{0x0176361,0x40}, + {0x205A8F1,0x9B},{0x00563B1,00},{0x05F8571,0x4B},{0x00A6B61,00},{0x105F510,0x47},{0x247F811,0x47},{0x054F311,00},{0x21AF400,00},{0x01AF400,00},{0x038F800,00},{0x079F400,0x03},{0x017F600,00},{0x007A810,0x06},{0x115DA00,00},{0x009A810,0x07},{0x107DF10,00},{0x334F407,00},{0x2D4F415,00},{0x0F4000A,0x3F},{0x0F6F717,00},{0x0F2E00E,0x5E},{0x033FF1E,0x40},{0x0645451,00},{0x38CF800,0x80},{0x06BF600,00}, + {0x060F207,0x54},{0x072F212,0x80},{0x0557542,0x96},{0x0257541,0x87},{0x268F911,0x46},{0x005F211,00},{0x14BFA01,0x08},{0x03BFA08,00},{0x007FF21,0x80},{0x107F900,00},{0x20DFF20,00},{0x027FF02,00},{0x0C8F60C,0xC2},{0x257FF12,00},{0x3059F10,00},{0x3039F10,00},{0x0C5F59E,00},{0x2F7F70E,00},{0x2B7F811,0x45},{0x003F310,00},{0x097C803,00},{0x0BAFA03,00},{0x38FF801,0x47},{0x06FF600,00},{0x06EF600,00}, + {0x38CF803,0x80},{0x0B5F80C,00},{0x38CF803,0x83},{0x0DFF611,0x4F},{0x0DEF710,0x40},{0x0F3F211,0x80},{0x1C5C202,0x11},{0x104D000,00},{0x0039012,0x04},{0x0F3F507,0x19},{0x0F2F501,00},{0x2F3F507,0x19},{0x0229F16,0x16},{0x032B0D2,00},{0x025DA05,0x4E},{0x015F001,00},{0x025C811,0x29},{0x0F2F511,00},{0x012FF54,0x16},{0x0F2F051,00},{0x212FF54,0x16},{0x106DF24,0x15},{0x005FF21,00},{0x104F223,0x50},{0x0045231,0x80}, + {0x00BF223,0x4F},{0x00B5230,0x82},{0x2036162,0x4A},{0x0058172,00},{0x01CF201,0x10},{0x087F501,00},{0x014F201,0x10},{0x084F501,00},{0x103AF00,0x06},{0x06A5334,00},{0x004FF11,0x03},{0x0114172,0x89},{0x01562A2,0x40},{0x0F9F121,0x1C},{0x0F6F721,00},{0x0F3F201,00},{0x005FF00,0x18},{0x0F3F020,00},{0x01562A1,0x40},{0x2A32321,0x1A},{0x1F34221,00},{0x010A130,0x07},{0x0337D10,00},{0x01D5320,0x18},{0x03B6261,00}, + {0x01572A1,0x17},{0x01A8A21,00},{0x0069060,00},{0x0069062,00},{0x0077061,0x80},{0x0077062,0x80},{0x0077041,0x80},{0x00687A2,00},{0x1039012,0x04},{0x0037165,0xD2},{0x0076171,00},{0x0011E00,0x40},{0x0A11220,0x40},{0x0059221,0x1C},{0x1059421,00},{0x044FF25,0x15},{0x033F324,0x01},{0x0132F20,0x0D},{0x0132321,00},{0x0012E01,0x40},{0x0216221,0x40},{0x3134362,0x2E},{0x0038261,00},{0x2035FE6,0x0F},{0x00350E1,00}, + {0x3034F61,0x0D},{0x0035061,00},{0x1034F61,00},{0x3033F60,0x0D},{0x0033061,00},{0x112FF53,0x13},{0x0F1F071,00},{0x112FFD1,0x12},{0x0F1F0F1,00},{0x0E11126,0xA5},{0x0E11120,00},{0x30244A1,0x51},{0x04245E1,00},{0x0E1A126,0xA5},{0x0E1A120,0x0E},{0x054F101,0x40},{0x004F008,00},{0x011A131,0x47},{0x0437D16,0x40},{0x211A131,0x14},{0x0437D11,00},{0x091AB0E,0xC0},{0x0C3F702,00},{0x0F5F431,00},{0x1176E31,0x43}, + {0x20CAB22,0x08},{0x1176E31,0x4F},{0x002FF64,0xDB},{0x0F3F522,0x02},{0x001FF63,0xDB},{0x0F3F534,00},{0x0FFE802,00},{0x108FF00,00},{0x0F1100E,00},{0x0F61800,00},{0x1F18F2A,00},{0x1F63816,00},{0x0F0102E,00},{0x2821020,00},{0x201EFEE,0x10},{0x0069FEE,0x04},{0x201EFEE,0x01},{0x001F02E,00},{0x0064820,00},{0x3EFF71C,00},{0x08FFD0E,00},{0x202FF0E,00},{0x103FF1E,0x80},{0x202BF8E,00},{0x2049F0E,00}, + {0x003FF64,0xDB},{0x0F6F73E,00},{0x100F300,00},{0x054F600,00},{0x2F3F40C,00},{0x3D66E0E,00},{0x07B9C21,0x0A},{0x0FB9502,00},{0x0778121,0x17},{0x0879221,00},{0x0075121,0x06},{0x0295231,0x1E},{0x0197121,0x04},{0x0187621,0x1A},{0x0098121,0x05},{0x05971A1,00},{0x0257521,0x1A},{0x0178421,0x81},{0x0167221,0x01},{0x00A7BA1,0x05},{0x10A7B23,0x05},{0x00A7724,0x07},{0x06BFF31,0x04},{0x0195175,0x03},{0x0599BA1,0x8C}, + {0x00A75E1,00},{0x0389F22,0x1D},{0x0296761,0x01},{0x00C9222,0x1D},{0x00DA261,0x03},{0x2863428,0x39},{0x0354121,0x07},{0x1F53223,0x09},{0x1D52222,0x10},{0x1053F21,0x88},{0x0EFA120,00},{0x0DFF310,00},{0x0A9F802,0x03},{0x3D8B802,0x01},{0x0FE822C,00},{0x3D98802,0x07},{0x3F87404,0x09},{0x100FF2E,00},{0x334D609,0x01},{0x389F837,0x0C},{0x0F8F703,0x04},{0x0FAFA25,0x14},{0x0F9AA03,00},{0x0F7F241,0x12},{0x0F7F281,00}, + {0x10BD0E0,0x80},{0x109E0A4,0x8E},{0x0F5F341,00},{0x09612F3,0x45},{0x10430B1,0x86},{0x204F061,0x9D},{0x2055020,0x83},{0x236F312,0x2A},{0x2D7B300,00},{0x143F701,00},{0x1E4F3A2,00},{0x35B8721,0x99},{0x00A6021,00},{0x0F3D385,0x59},{0x0F3A341,0x80},{0x125FF10,0x56},{0x015F711,00},{0x04AFA02,0x16},{0x074F490,0x01},{0x045F668,00},{0x0289E87,0x01},{0x164F923,0x95},{0x177F607,00},{0x0E2CE02,0x25},{0x4E2F402,00}, + {0x0E2F507,0xA1},{0x0E2F341,00},{0x2E5F5D9,0x22},{0x0E5F251,00},{0x0E1F111,0x10},{0x0E1F251,0x08},{0x4B1F0C9,0x98},{0x0B2F251,0x01},{0x082F311,0x44},{0x0828523,0xB3},{0x0728212,0xA7},{0x0728201,0x27},{0x0328411,00},{0x4E5F111,0xA1},{0x4E5F312,0x40},{0x0E5F111,0x89},{0x0E6F111,00},{0x5047130,0x99},{0x01474A0,0x01},{0x1147561,0x88},{0x0147522,00},{0x7217230,0x1B},{0x604BF31,0x03},{0x0357A31,0x1D},{0x03A7A31,0x09}, + {0x06599E1,0x80},{0x0154825,0x85},{0x015AA62,0x94},{0x0058F21,0x80},{0x025C9A4,0xA2},{0x0056F21,0x80},{0x0056F21,00},{0x07E0824,0x80},{0x0E4E383,0x40},{0x0E6F314,0x63},{0x0E6F281,00},{0x205FC00,0x40},{0x007FC00,00},{0x638F801,0x80},{0x005F172,0x80},{0x005F171,0x40},{0x002A4B4,0x47},{0x0022A55,0x97},{0x1154261,0x40},{0x053090E,0x80},{0x094F702,00},{0x08F74A1,0x27},{0x02A65A1,0x80},{0x0667190,0x92},{0x08B5250,00}, + {0x0247332,0x16},{0x0577521,0x80},{0x28FA520,0x8E},{0x03D3621,00},{0x08C4321,0x19},{0x02F8521,0x80},{0x0AE71A1,0x1C},{0x02E81A0,00},{0x0B3F281,0x03},{0x01765A2,0x8D},{0x0F3F7B0,0x40},{0x0031801,0x80},{0x090F6B4,0xC1},{0x04FD600,0x03},{0x1DA9803,0x93},{0x0A0B2A4,0x02},{0x1D69603,0x80},{0x104F0A1,0xCE},{0x1D6F481,00},{0x254F568,0xE8},{0x025FD61,0x80},{0x092FF83,00},{0x00FF0A0,0xC0},{0x00FF0A2,0x06},{0x10B50B1,0x03}, + {0x02A7244,0x80},{0x00CF060,00},{0x1378D31,0x85},{0x0163871,00},{0x1065071,00},{0x1365361,00},{0x1366361,00},{0x043F2B1,0x1D},{0x12851A1,00},{0x00560B2,0x83},{0x0176271,00},{0x00530B1,0x57},{0x00550B2,00},{0x0655371,0x14},{0x00FF061,0x01},{0x0299361,0x01},{0x0755471,0x20},{0x0043071,0x57},{0x0445171,0x55},{0x02A4271,00},{0x08F4EE0,0xEC},{0x02A55A1,00},{0x39D6571,0x17},{0x22A4270,00},{0x29D65A1,0xC6}, + {0x00330B1,0x5D},{0x00440B2,00},{0x03641A1,00},{0x0B4F291,0xD0},{0x0194263,00},{0x3859F85,0x15},{0x2B9F2A0,00},{0x2A2FF80,00},{0x30E108E,00},{0x003109E,00},{0x2A3379B,0x95},{0x344FFAB,0xC0},{0x10EF0BE,00},{0x006F08E,00},{0x004F081,0xC0},{0x356F58E,00},{0x12FF281,0xC0},{0x364FF8B,00},{0x356F58A,00},{0x357878E,00},{0x02FF281,0xC0},{0x357898E,00},{0x3468B9E,00},{0x205504C,0x80},{0x05C859D,0x0A}, + {0x205508C,0x40},{0x05C854D,0x0A},{0x206F08B,00},{0x2AF479E,00},{0x247698E,00},{0x335FF8E,0x02},{0x104F081,0xC0},{0x215BFD1,0x9C},{0x20473C1,00},{0x177F810,0x91},{0x008F711,00},{0x277F810,0xF9},{0x108F311,0xC0},{0x25DFB14,0x80},{0x058F611,00},{0x12AF900,0x02},{0x22BFA01,00},{0x28268D1,0x42},{0x10563D0,00},{0x317B142,0x93},{0x317B101,00},{0x317B242,0x93},{0x317B201,00},{0x2BAE610,0x3F},{0x005EA10,0x3F}, + {0x053B101,0x4F},{0x074C211,00},{0x0B3F101,0x80},{0x1FAF211,0x80},{0x012F511,0x80},{0x093F241,00},{0x005D341,0x80},{0x012F001,0x92},{0x01FF2A0,0x11},{0x0F4D144,0x80},{0x08AE220,0x11},{0x0A8E420,00},{0x1DBB891,0x17},{0x1567551,00},{0x11772A1,0x40},{0x1151121,00},{0x111C071,0x20},{0x0C57461,0x0F},{0x165B220,0x08},{0x08153E1,0x9F},{0x0B962E1,0x05},{0x0AE71E1,0x19},{0x09E81E1,0x07},{0x0AE73E1,0x49},{0x09881E2,0x08}, + {0x0177E71,0xC5},{0x02A6561,0x80},{0x0D761E1,0x85},{0x0F793E1,0x80},{0x0439471,00},{0x011A131,0x87},{0x0437D16,0x80},{0x11111E2,0xC0},{0x1F5F718,00},{0x20CA808,0x09},{0x13FD903,00},{0x0A1B2E0,0x84},{0x1D6950E,00},{0x286F265,00},{0x256F605,0xC0},{0x2047404,00},{0x0111020,00},{0x1F085C1,0x47},{0x136C5C2,00},{0x00F3FF1,0x02},{0x06FF2F1,00},{0x0012F00,00},{0x001FF00,00},{0x08434F6,0xC0},{0x006A271,00}, + {0x101F310,0x40},{0x3B1F300,0x08},{0x08434F6,0x80},{0x00F4131,0x4F},{0x03F7221,00},{0x0F1F100,0x83},{0x0F1F110,00},{0x002A474,0x87},{0x04245D7,0x80},{0x0FFF001,0x4F},{0x00F6030,00},{0x0031D20,00},{0x0031D2C,00},{0x101F18A,00},{0x301F14E,00},{0x101F18E,00},{0x001F14E,00},{0x102FE00,00},{0x101F14E,00},{0x053F100,0x40},{0x302FF00,0x08},{0x072F423,0x99},{0x143F431,00},{0x121F193,0x80},{0x101F100,00}, + {0x101F1A9,00},{0x303F16E,00},{0x1F0F007,00},{0x2D91900,00},{0x2F48200,0x90},{0x3F57111,00},{0x0003F08,0x0F},{0x0042F0E,00},{0x000FE0E,00},{0x0031F0E,00},{0x31FF71A,0x07},{0x366A71E,0x3A},{0x2D94900,00},{0x0154D01,0x02},{0x016F501,00},{0x05FF771,0x39},{0x02ADC71,0x06},{0x098240A,0x4F},{0x0A71319,00},{0x0427F01,0x56},{0x0223501,00},{0x0732100,0x40},{0x07A5200,00},{0x0F0F09E,0x06},{0x1CC5C00,0x02}, + {0x254A321,0x13},{0x032C411,00},{0x3FFFFF0,0xC0},{0x0F0FBE5,00},{0x025F8B0,0x40},{0x085F1B1,00},{0x053F103,0x4F},{0x074F217,00},{0x058F341,0x63},{0x0C25240,0x80},{0x0632660,00},{0x2F0F000,00},{0x0934300,00},{0x0667150,0x92},{0x08B5290,00},{0x0F0103E,0x04},{0x1F111B0,0x03},{0x0B3F241,0x03},{0x0160020,0x5B},{0x0155022,0x80},{0x153F101,0x40},{0x353F108,0x40},{0x0176562,0x8D},{0x08434F2,0xC0},{0x0F6A271,00}, + {0x2FFFE00,0x03},{0x0FFF902,0x80},{0x01497F1,0x01},{0x0157121,0x0D},{0x010572A,0x01},{0x1111125,0x0B},{0x023F100,0x80},{0x0DFF200,00},{0x0931200,00},{0x305FF23,00},{0x0064F00,00},{0x306FF20,00},{0x0FFF900,0x03},{0x07F8700,00},{0x034D600,00},{0x004F600,00},{0x0FFF652,0xA2},{0x0FFF941,0x0F},{0x0FFF851,00},{0x205FC80,00},{0x034A501,00},{0x602FF01,00},{0x007FB00,0x09},{0x004A401,00},{0x0F69705,0x03}, + {0x156F284,0x03},{0x100F442,00},{0x000F34F,00},{0x0A5F48F,0x06},{0x0B6FA01,0x8A},{0x096C802,0x40},{0x00CF505,0xEC},{0x007F501,00},{0x095C802,0x80},{0x006F501,00},{0x0B5F803,00},{0x006FA01,00},{0x049C80F,0x40},{0x2058D47,00},{0x2048847,00},{0x506FF80,00},{0x016FF10,00},{0x7476601,0xCD},{0x0476603,0x40},{0x0476601,0xC0},{0x0576601,00},{0x0E56701,0x11},{0x0356503,0x24},{0x0757900,0x9A},{0x0057601,00}, + {0x0E6F622,0x1E},{0x0E5F923,0x03},{0x0E6F924,0x28},{0x0E4F623,00},{0x0E6F522,0x1E},{0x0E5F623,0x03},{0x0E6F524,0x28},{0x0E4F423,00},{0x0E5F108,0x66},{0x0E5C302,0x86},{0x052F605,0x69},{0x0D5F582,0x47},{0x131FF13,0x43},{0x075C401,0x80},{0x103E702,0x86},{0x005E604,0x40},{0x0145321,0x8B},{0x025D221,0x21},{0x104C3A1,0x9F},{0x0158221,0x0F},{0x075F502,0x20},{0x7D2FE85,0x8F},{0x074F342,0x80},{0x0119131,0x8A},{0x11572A1,00}, + {0x0013121,0x4D},{0x10545A1,0x82},{0x0075131,0x1D},{0x0399261,0x80},{0x00741B1,0x1C},{0x0398221,0x87},{0x21A73A0,0x95},{0x03A8523,00},{0x01A6C21,0x80},{0x0565321,0x18},{0x0277C21,00},{0x0299960,0xA3},{0x036F823,0x5D},{0x015FAA0,0x90},{0x00B8F22,0x08},{0x22871A0,0x23},{0x01A8124,00},{0x2287320,0x97},{0x01A8424,0x98},{0x0068B20,0x2F},{0x0008F21,0x20},{0x007CF20,0x5B},{0x0097F22,00},{0x0277784,0x9B},{0x01655A1,0x85}, + {0x01566A2,0x9B},{0x00566A1,0x06},{0x137FB00,0x05},{0x05CE711,00},{0x04CA900,0x0B},{0x023F302,0x08},{0x067F700,00},{0x017FB01,0x40},{0x008FD02,00},{0x0F4F306,0xA4},{0x0E4E203,0x6D},{0x0D4E101,0x53},{0x0E5E111,0x02},{0x053F241,0x9D},{0x0F3F213,00},{0x076D201,0x04},{0x053F101,0xC3},{0x0849212,0x09},{0x074F202,0x92},{0x077F401,0x83},{0x044F502,00},{0x475F113,0x96},{0x256F201,0x81},{0x033AD14,0x80},{0x0E5F14C,0x69}, + {0x0E5C301,0x06},{0x0E2660F,0x9D},{0x0E4C191,0x06},{0x033F584,0x59},{0x015FDA0,0x80},{0x0B5F615,0x97},{0x0E6F311,0x01},{0x0F8FF06,0x01},{0x055F8C4,00},{0x063F207,0x4F},{0x341F5A3,0x11},{0x203F811,00},{0x01AF003,0x5B},{0x01DF001,0x80},{0x22A9132,0xCD},{0x12A91B1,0x80},{0x005F171,0x80},{0x00AFF24,0x80},{0x00DFF21,0x80},{0x01CF003,0x54},{0x01EA001,0x84},{0x0186223,0x19},{0x02A6221,0x84},{0x0087224,0x4F},{0x00B4231,00}, + {0x0186222,0x19},{0x0C3C201,0x0A},{0x056F501,00},{0x034F401,0x13},{0x039F201,0x80},{0x07FC611,0x4D},{0x0DFF511,00},{0x4C5A421,0x20},{0x004F821,00},{0x0E78301,0x56},{0x078F201,00},{0x0AFF301,0x11},{0x114FF20,0xCB},{0x0D4F561,00},{0x1937510,00},{0x182F501,00},{0x01379C0,0x4F},{0x07472D2,00},{0x2355612,0x9C},{0x12D9531,00},{0x21351A0,0x9B},{0x163F2A1,0x48},{0x0368331,00},{0x171A501,0x0D},{0x2539600,0x02}, + {0x051F431,0x57},{0x074B711,00},{0x005F624,0xDB},{0x095C702,0x23},{0x095F422,0x22},{0x0D5F401,00},{0x016F521,0x8C},{0x03493A1,00},{0x01FB431,0x1A},{0x01FA2A1,0x80},{0x04654A1,0x1C},{0x0078FA1,0x07},{0x0466421,0x14},{0x0078FE1,0x01},{0x0796520,0x8C},{0x0268AA1,0x03},{0x2179280,0xCF},{0x03686A0,00},{0x03A5321,0x9C},{0x00B6521,0x01},{0x01C7321,0xC0},{0x02C7C21,0x97},{0x06581E1,0x51},{0x07C52F2,00},{0x22E71E0,0x23}, + {0x01E80E4,00},{0x019D530,0xC8},{0x01582A3,0x21},{0x007E562,0x9E},{0x005D224,0x9F},{0x0076F21,0x02},{0x48674A1,0x1F},{0x02765A1,00},{0x0277584,0xA0},{0x01655A1,0x81},{0x01566A2,0x8A},{0x00566A1,00},{0x016D322,0x9B},{0x07DE82F,0x2E},{0x006C524,0x62},{0x02764B2,0x04},{0x0557221,0x0B},{0x096F481,0x08},{0x0A6CF22,0xD5},{0x09C8410,0x0D},{0x001F501,0x37},{0x0F1F101,0x20},{0x0E3F201,0x11},{0x0E7F501,00},{0x03CF201,0x3F}, + {0x0E2F111,0x14},{0x0E6F541,0x13},{0x0E7F312,0x01},{0x00AF562,0xA3},{0x005F224,0xA2},{0x00A6F21,0x09},{0x2B6F800,00},{0x04CA900,0x07},{0x03FF600,00},{0x008B902,00},{0x01DFC03,00},{0x60AF905,00},{0x41CFC0A,00},{0x033F400,0x04},{0x4FFF700,00},{0x40AFF02,0xC0},{0x01CFF00,0x01},{0x003F902,00},{0x247FB00,00},{0x403FB02,00},{0x447FB01,00},{0x609F505,00},{0x709F30F,00},{0x201C687,0xC0},{0x023BC15,0x40}, + {0x435DE00,0xC0},{0x438F801,00},{0x30AF400,0x47},{0x278F700,0x04},{0x30AF400,0x4B},{0x278F700,0x02},{0x509F601,00},{0x429F701,00},{0x407FF00,00},{0x769A901,0x40},{0x408FA01,00},{0x769DB02,0x40},{0x112AA03,0x1C},{0x1F59011,00},{0x073F668,0x1B},{0x063F5A1,0x0D},{0x054F1A1,0x54},{0x0F4F060,00},{0x0038164,0xD2},{0x005D171,0x80},{0x0F1FB3E,0x29},{0x093A071,00},{0x022FE30,0x07},{0x007FB20,00},{0x0527101,0x8F}, + {0x0735012,00},{0x1249F16,0x11},{0x035B012,00},{0x1119183,0xD7},{0x0F1B142,00},{0x005FF01,00},{0x044F406,0x03},{0x088FA21,0x06},{0x031F91C,0x0C},{0x0E89615,00},{0x0F7F521,0x99},{0x0F7F521,0x80},{0x038B2F1,0x19},{0x0488122,0x40},{0x016D221,0x1D},{0x082D301,0x4E},{0x0B8D301,0x06},{0x0036101,0x14},{0x0F86101,0x0D},{0x017F321,0x17},{0x0E8F222,0x08},{0x0CEB161,0x13},{0x1BAD061,0x40},{0x075C130,0x10},{0x0659131,0x42}, + {0x0988802,00},{0x0D8B802,0x1A},{0x0F87404,0x27},{0x0009F2C,00},{0x0D4C50E,0x05},{0x044F904,0x04},{0x0F78706,0x03},{0x0A1F737,0x14},{0x000FF80,00},{0x0F7F500,00},{0x0FAFB21,0x03},{0x0FAF924,0x18},{0x0F5F505,0x14},{0x036F603,00},{0x077790E,0x02},{0x007AF20,0x15},{0x02BA50E,00},{0x007BF20,0x18},{0x03B930E,00},{0x03B8908,0x01},{0x02B5308,0x0A},{0x09AF815,0x21},{0x089F613,0x10},{0x04B8708,00},{0x0F75725,0x12}, + {0x0677803,00},{0x0F0F126,0x97},{0x0F5F527,0xA1},{0x054F123,0x66},{0x173F231,00},{0x010A132,0x87},{0x0337D16,0x80},{0x143F523,0x0E},{0x204F811,00},{0x0027D14,0x80},{0x001AF64,0xDB},{0x062A33F,0xC0},{0x0118171,0x8B},{0x1156261,0x40},{0x0127171,0x8B},{0x11652E1,0x40},{0x208F831,00},{0x054C701,0x4D},{0x096A201,00},{0x154C701,0x4D},{0x0C28621,0x16},{0x0BDF221,00},{0x08DF520,0x49},{0x08CF311,00},{0x09EF520,0x90}, + {0x05BF411,00},{0x5144261,0x87},{0x3344261,0x82},{0x02371A1,0x4F},{0x1286371,0x02},{0x11152F0,0xC5},{0x12E32F1,0x80},{0x01171F1,0x8B},{0x11542E1,0x40},{0x01FF201,0x17},{0x088F701,00},{0x054C701,0x8D},{0x053F121,0x4F},{0x1743232,00},{0x01271B1,0x8B},{0x1166261,0x40},{0x011A1B1,0x8B},{0x1159261,0x40},{0x5176261,0x80},{0x3176261,0x82},{0x5155261,0x80},{0x3166362,0x83},{0x0065131,0x1C},{0x01F61B1,0x1C},{0x0276561,0x83}, + {0x2275570,0x03},{0x0537101,0x4E},{0x07C6212,00},{0x0658181,0x93},{0x07C52B2,00},{0x02661B0,0x96},{0x0375271,00},{0x0A6FF64,0x8A},{0x01424B1,00},{0x0A4F724,0x5B},{0x0132431,00},{0x0384161,0x97},{0x028E1A1,00},{0x01797F1,0x06},{0x048F321,0x0D},{0x054F406,0x73},{0x053F281,0x03},{0x1E31111,0x09},{0x0D42101,0x05},{0x30217B1,0x29},{0x0057321,0x03},{0x08311E6,0x11},{0x0541120,00},{0x00361B1,0x1F},{0x0175461,0x01}, + {0x0F00000,0x02},{0x0A21B14,0x80},{0x03FB300,0x80},{0x0F0AB08,00},{0x1B29510,0x11},{0x0069510,00},{0x0F0F000,00},{0x0B69800,0x08},{0x008F800,0x08},{0x202FF4F,00},{0x3F6F601,0x0F},{0x300EF9E,0x80},{0x0D8A705,00},{0x035C4C4,0x03},{0x210BA2F,0x0E},{0x2F4B40F,00},{0x0B5F700,00},{0x013FA43,0xD6},{0x096F342,0x80},{0x030F930,0x01},{0x0FEF600,00},{0x0B4F600,0x20},{0x1DEB421,0x45},{0x0EEF231,00},{0x0135821,0x2B}, + {0x0031531,00},{0x0ADF321,0x08},{0x05DF321,00},{0x0EFD245,0x4F},{0x0EFA301,00},{0x0E7F217,0x54},{0x0E7C211,0x06},{0x0C7F219,0x2B},{0x0D7F291,0x07},{0x1084331,0x93},{0x0084232,00},{0x0084522,0x65},{0x01844F1,00},{0x0E8F318,0x62},{0x0F8F281,00},{0x0DFD441,0x8A},{0x0DFC280,0x0C},{0x0DFD345,0x93},{0x0FFA381,00},{0x02CA760,0xC6},{0x00DAFE1,0x80},{0x0EEF121,00},{0x17FD131,00},{0x02FA7A3,0x56},{0x00FAFE1,0x83}, + {0x00FAF61,0x91},{0x00FAFA2,0x83},{0x275A421,0x13},{0x1456161,00},{0x4FAB913,0x0D},{0x0DA9102,0x1A},{0x04FF923,0xA1},{0x2FF9122,0x16},{0x0BF9120,0x99},{0x04F9122,00},{0x0355222,00},{0x0AD9101,0x53},{0x0CD9301,00},{0x0EAF111,0xA8},{0x0EAF312,0x57},{0x0EAE111,0x97},{0x0EAE111,00},{0x0ECF131,0x8D},{0x02A5131,0x5B},{0x04A7132,00},{0x04A7131,0x19},{0x04A7131,00},{0x0AE9101,0x93},{0x0CE9302,00},{0x02FF120,0x8C}, + {0x3CFF220,00},{0x04FF220,0x94},{0x35FF222,00},{0x2036130,0x95},{0x21754A0,00},{0x3107560,0x89},{0x2176520,00},{0x0385621,00},{0x0786025,0x89},{0x1038D14,0x95},{0x0266620,0x89},{0x1FFF510,0x41},{0x0FFF211,00},{0x1176561,0x96},{0x2097861,0x16},{0x1095821,00},{0x0177C61,00},{0x6EF1F15,0xC0},{0x6E21115,0x40},{0x0E21111,0x40},{0x0E31111,00},{0x616C500,00},{0x6DAC600,00},{0x30E7400,00},{0x01C8521,0x92}, + {0x00C8F21,0x01},{0x01C8421,0x15},{0x00CAF61,0x0B},{0x01B8521,0x94},{0x00B7F21,0x05},{0x01B8421,0x15},{0x00BAF61,0x0D},{0x0158621,0x94},{0x0378221,00},{0x0098F61,00},{0x00A7321,0x9F},{0x00B8F21,00},{0x00A65A1,0x9B},{0x00B9F61,00},{0x02E7221,0x16},{0x00E8F21,00},{0x0EE7521,0x1D},{0x03E8A21,00},{0x0AC54A1,0x50},{0x01CA661,00},{0x2089331,0x96},{0x00A72A1,00},{0x0088521,0x96},{0x12A8431,00},{0x10A9331,0x8E}, + {0x00D72A1,00},{0x00AC524,0xA1},{0x12D6431,00},{0x10F9331,0x8D},{0x00F7271,00},{0x006A524,0x9D},{0x11664B1,00},{0x51E7E71,0x4D},{0x10F8B21,00},{0x1197531,0x8E},{0x0269B32,0x90},{0x0187321,00},{0x02F7721,0x21},{0x02F7A73,0x55},{0x01F7A21,0x93},{0x01F7A22,00},{0x01DAFA1,0x9C},{0x00D7521,00},{0x011DA65,00},{0x068A663,0x1E},{0x0588861,0x8C},{0x01A6561,00},{0x1282121,0x12},{0x0184161,00},{0x00FFF21,0x09}, + {0x3FAF100,0x8E},{0x3FAF111,00},{0x2C686A1,0x46},{0x0569321,0x80},{0x01B7D61,0x40},{0x01B72B1,0x23},{0x00BDFA2,0x5D},{0x00B7F61,0x80},{0x009FF20,0x36},{0x40A8F61,00},{0x40D8F61,00},{0x0FCF521,0x0F},{0x0FDF523,00},{0x0FDF926,0x16},{0x6FCF921,00},{0x0032531,0x80},{0x031A101,0xA1},{0x0175561,00},{0x446C361,0x14},{0x026C361,00},{0x63311E1,0x89},{0x0353261,0x03},{0x6E42161,0x8C},{0x6D53261,0x03},{0x0355261,0x03}, + {0x1471121,00},{0x03311E1,0x89},{0x0E42161,0x8C},{0x0D53261,0x03},{0x003A801,0x99},{0x005A742,00},{0x2332121,0x8C},{0x0143260,0x97},{0x1041161,0x0E},{0x0143121,00},{0x054F261,00},{0x04311A1,0x0E},{0x0741161,0x92},{0x0841161,0x8E},{0x0041DA1,0x80},{0x0346161,0x4C},{0x0055D21,0x80},{0x0CFF411,0x05},{0x1EFF411,00},{0x035D493,0x11},{0x114EB11,00},{0x035D453,0x11},{0x116EB13,0x0D},{0x1E31117,0x10},{0x2E31114,0x6E}, + {0x0E31111,0x80},{0x017A821,0x23},{0x0042571,00},{0x45FF811,0x4F},{0x0EFF310,00},{0x15FF630,0x12},{0x0EFF410,00},{0x00F4F2F,00},{0x30F3F20,00},{0x03FF923,0x23},{0x2FF9222,0x0A},{0x0BF9122,0x18},{0x04FA123,00},{0x000F80F,00},{0x3F93410,0x05},{0x034A121,0x17},{0x0166521,00},{0x0FA6848,00},{0x04AAA01,0x3F},{0x0FA6747,00},{0x0FA464C,00},{0x2037F21,0x18},{0x1065F61,00},{0x10C2EF0,00},{0x10C21E2,00}, + {0x70C2EF0,00},{0x039A321,0x8D},{0x03C7461,0x03},{0x179A3A1,0x1C},{0x14C2321,00},{0x01A7521,0x97},{0x00F8F21,00},{0x0FFF920,0xC0},{0x0FFF620,00},{0x0AFF611,00},{0x01FF933,0x80},{0x0FFF810,00},{0x2FFF500,00},{0x0FFF700,00},{0x0DFF712,0x08},{0x0DFF811,00},{0x0FFF210,00},{0x0FFF510,00},{0x1DFE920,00},{0x0CEF400,00},{0x2DFF50E,00},{0x0AFF712,00},{0x03FF800,0x03},{0x1FFF410,00},{0x2FFF012,0x11}, + {0x3BF8608,0x80},{0x0FFF20E,00},{0x2DF9502,00},{0x2DDF014,00},{0x0FF93F0,00},{0x3EFE40E,0x0A},{0x1EFF507,0x40},{0x0EFB402,0x03},{0x0FF9705,0x0A},{0x01FF66E,0x08},{0x3FF945E,00},{0x200F6CE,0x04},{0x3FFF21A,00},{0x3FFF040,00},{0x0FEF510,00},{0x0BCF60C,0x08},{0x38FF803,0x85},{0x0BFF60C,00},{0x2CF7800,0x08},{0x04FC80E,0x40},{0x26F9903,00},{0x1DF75CE,00},{0x2EF38E1,00},{0x03FF162,00},{0x0FF4B20,00}, + {0x0FBF715,00},{0x0FF47E1,00},{0x0FF47EA,00},{0x3FFE00A,0x40},{0x0FFF51E,0x0E},{0x3FFE00A,0x7C},{0x0FFF21E,0x52},{0x04E7A0E,0x81},{0x21E7B00,00},{0x35FF925,0x05},{0x0FFD524,0x40},{0x08FFA01,0x4F},{0x0FFF802,00},{0x0FFFC00,00},{0x0FFF520,00},{0x60FF331,0x94},{0x70FB135,0xD5},{0x302B133,0x63},{0x305B131,00},{0x04F270C,0x98},{0x0F8D104,0x90},{0x0F8F502,0x96},{0x0F8F402,00},{0x759F201,0x40},{0x600F701,00}, + {0x6F0F301,00},{0x7C9F601,00},{0x60FFF15,0xC0},{0x66FB115,0x40},{0x68FB111,0x40},{0x6EFB111,00},{0x44FF920,0x80},{0x2FF9122,0x09},{0x7BF9121,0x99},{0x64F9122,00},{0x00AAFE1,0x11},{0x00AAF62,00},{0x0F3F501,0x97},{0x1F3C504,0x9D},{0x0F7C511,00},{0x0AFC711,0x8D},{0x0F8F501,0x04},{0x0F8C302,0x06},{0x40FF923,0x90},{0x20F9122,0x1B},{0x00F9121,0x9F},{0x00F9122,00},{0x61FB015,0x40},{0x65FB111,0x40},{0x63FB011,00}, + {0x60FFF35,0xC0},{0x60FB135,0x40},{0x6BFB131,0x40},{0x60FB131,00},{0x0C8F121,0x13},{0x0C8F501,0x29},{0x0C8F501,0x14},{0x0C8F401,00},{0x09AF381,0x89},{0x0DFF521,0x40},{0x0C8F121,0x0F},{0x0C8F701,0x25},{0x0C8F601,0x12},{0x0C8F601,00},{0x0C5F411,00},{0x0C5F212,0x1E},{0x0076F21,00},{0x068A663,0x1B},{0x0588861,0x0A},{0x409CF61,0x05},{0x70FFF20,0x1A},{0x30FFF61,0x14},{0x00FFF61,0x1A},{0x609CF61,0x07},{0x10D5317,0x1A}, + {0x00E3608,0x0D},{0x03D41A1,0x9D},{0x01E6161,00},{0x0FC8561,0x15},{0x4FD8463,0x07},{0x0FD8966,0x1F},{0x6FC7761,00},{0x10A5317,0x1A},{0x0033608,0x0D},{0x0041121,0x8C},{0x3355261,00},{0x0C6F521,0x92},{0x096F461,0x8A},{0x266F521,0x90},{0x496F5A1,0x80},{0x035D493,0x91},{0x035D453,0x91},{0x56FF500,0x08},{0x40FF300,00},{0x65FF604,00},{0x38FF580,0x40},{0x66FF100,0x09},{0x65FF601,0x1C},{0x73FF580,00},{0x00F112F,00}, + {0x30F1120,00},{0x00F1129,0x38},{0x30F1120,0x35},{0x024F806,00},{0x7845603,0x04},{0x624D803,0x0B},{0x784F604,00},{0x624F802,00},{0x7845604,0x04},{0x624D800,0x0B},{0x784F603,00},{0x46FF220,0x14},{0x07FF400,00},{0x01FF501,00},{0x51FF487,0xC0},{0x700F701,00},{0x6C9F401,00},{0x0F7F810,0x40},{0x006F211,00},{0x002F010,00},{0x006FE00,00},{0x207F70E,00},{0x008FF12,00},{0x0F4C306,0xB5},{0x0E4C203,0x76}, + {0x0D4C101,0x53},{0x0E5B111,0x02},{0x0F3C301,0xA1},{0x0F3C307,0x70},{0x034B000,0xCC},{0x0F5A111,00},{0x034FB31,0x93},{0x0F7C131,00},{0x0DFB811,0x97},{0x0F7F121,0x8B},{0x0E4A115,0x6A},{0x0E4A115,0x67},{0x0E4A111,0x55},{0x0E5A111,0x03},{0x0E7C21A,0x33},{0x0E7C201,0x85},{0x0F4B111,0x1D},{0x0E4B111,0x83},{0x0E7C21C,0xBD},{0x0E6C201,0x8B},{0x0E4B111,0x52},{0x0E5B111,0x85},{0x050F210,0xA1},{0x0F0E12A,0x64},{0x020BD20,0x19}, + {0x0E7C112,0x03},{0x00AF021,0xA1},{0x038D620,0x03},{0x0B7F8A6,0x05},{0x017F820,0x94},{0x0057F31,0x08},{0x029F623,0x1E},{0x00A8F22,0x0B},{0x00AB028,0x5A},{0x00AB0A1,0x21},{0x00A8024,0xC0},{0x00AB021,0x09},{0x00AF0A2,0x06},{0x00AF024,0xA1},{0x00AF0A4,0x0A},{0x00AF021,0x06},{0x00FFF27,0x29},{0x00FFF21,0x07},{0x00FFF21,0x18},{0x00FFF22,0x06},{0x00AFF61,0x0E},{0x00AFF22,0xA1},{0x00AFF64,0x0A},{0x00AFF21,0x0B},{0x00FFF20,0x22}, + {0x00FFFA1,0x88},{0x00FFF22,0x56},{0x00FFFA1,0x84},{0x0F6EA09,0x0F},{0x0F4F518,0x8C},{0x00FEFA2,0x3E},{0x00B8F21,0x07},{0x0186223,0x1C},{0x02A6221,0x87},{0x1186223,0x19},{0x02A62A2,0x82},{0x001F201,0x21},{0x0F1F101,0x1D},{0x0E3F301,0x4B},{0x0E6F211,00},{0x030FE10,0x9F},{0x0F0E13A,0x65},{0x020BD20,0x8D},{0x0E7C112,0x07},{0x025F5E2,0x1E},{0x005EF24,0x9F},{0x004EF26,0x9E},{0x006CF24,0x06},{0x043D227,0x9A},{0x0E4E215,0x03}, + {0x023A7B7,0x19},{0x0E4C215,0x08},{0x043D223,0x98},{0x0E4E212,0x03},{0x023A7B3,0x19},{0x0E4C212,0x08},{0x0E6CE22,0x25},{0x0E6F421,0x03},{0x0E6F727,0x32},{0x0E5F521,0x09},{0x006F504,0x3F},{0x041F001,0x05},{0x035D208,00},{0x005F120,0x06},{0x034D201,00},{0x003F120,0x06},{0x0276621,0x1C},{0x0486621,00},{0x00A6621,0x94},{0x0E44100,0x91},{0x0046620,0x08},{0x0E65120,0x8E},{0x0066620,0x08},{0x00AAF21,0x08},{0x00AAF21,0x0C}, + {0x015A221,0x12},{0x00AAF21,0x02},{0x055F2A1,0x28},{0x00AAF21,0x05},{0x0CFF416,0x23},{0x0E6F205,0x69},{0x0D5F200,0x15},{0x0ECE301,00},{0x058F620,0x98},{0x05AF520,0x19},{0x009FF21,0x24},{0x00CFF20,00},{0x006F801,0x17},{0x0D5D500,0x17},{0x4E6F511,0x14},{0x0E8F500,00},{0x045FB01,0x10},{0x050FF12,0x0C},{0x034FF00,0x16},{0x027F300,00},{0x0EAF50C,0x21},{0x0E6F21F,0x21},{0x0F6F401,0x15},{0x0E7F113,0x03},{0x0E6F407,0x9B}, + {0x0F6A114,0x1D},{0x00FFF21,0x12},{0x0E6F112,0x04},{0x062F227,0x26},{0x062F231,0x18},{0x066F521,0x0E},{0x0E4F116,0x03},{0x015A221,0x13},{0x0DAC401,0x14},{0x055F221,0x2A},{0x0DAA401,00},{0x09CF901,00},{0x0F98701,0x03},{0x0ACF904,00},{0x0F98701,00},{0x025F261,0x22},{0x015F2A5,0x5E},{0x015F223,0x5B},{0x0C6E111,0x02},{0x006FF22,0x1C},{0x00B9F22,0x08},{0x005FA21,0x19},{0x00B9F21,0x07},{0x0F6D133,0x9A},{0x0F7F221,0x03}, + {0x0E4F22F,0x28},{0x0F7F224,0x8A},{0x03FF43A,0x64},{0x04FF231,0x5A},{0x024F211,0x25},{0x085F311,0x08},{0x026F211,0x23},{0x04FF43A,0x5F},{0x04FF231,0x63},{0x0D6F211,0x07},{0x03AA021,0x23},{0x097A123,0x21},{0x0F2A310,0x12},{0x0F5A020,0x05},{0x030F70C,0x23},{0x0A8F101,0x26},{0x0C6F201,0x13},{0x043F212,00},{0x054D41F,0x65},{0x0F5C411,0x42},{0x0F4B113,0x50},{0x0E5A111,0x05},{0x0AFF505,0x3F},{0x03DFD2C,0x13},{0x0B0F607,0x0F}, + {0x074F411,0x08},{0x022E832,0x08},{0x0F5B210,0x12},{0x021F730,0x08},{0x0F5B214,0x0D},{0x025F5E2,0x20},{0x0065F24,0x06},{0x004EFE2,0x24},{0x005EF24,0x21},{0x004EF26,0x9F},{0x002EFE2,0xAA},{0x003EF24,0xA1},{0x003EF26,0xA4},{0x0065F24,0x03},{0x016D122,0x9A},{0x0055572,0x06},{0x0F6C102,0xD9},{0x2055571,0x0D},{0x012F322,0x1D},{0x0054F22,0x04},{0x013F321,0x91},{0x0054F22,0x80},{0x015F322,0x1D},{0x0065F22,0x05},{0x015F321,0x91}, + {0x0075F23,0x80},{0x295F520,0x90},{0x353F411,00},{0x353F411,0x09},{0x0FAF52F,0xB2},{0x0FAF423,0x64},{0x0FAE323,0x66},{0x0FAF321,0x03},{0x036D122,0x9A},{0x0055572,00},{0x4F6C102,0xD9},{0x2055574,0x07},{0x0D6F328,0xA2},{0x0F9F423,0x5F},{0x0F8E223,0xA6},{0x0E8F301,0x03},{0x01AD1A1,0x2C},{0x00A9F22,0x8F},{0x00A9F22,0x0F},{0x00A9F22,0x08},{0x020FE70,0x13},{0x0E9C212,0x80},{0x07FBC20,0x11},{0x0E9C212,0x05},{0x020FE10,0x12}, + {0x0E7C212,00},{0x053BD00,0x15},{0x0E7C212,0x07},{0x0E54151,0xA9},{0x0E8F652,0x63},{0x0E8D151,0x9B},{0x0E6C251,0x80},{0x0C8F621,0x1D},{0x0F8F821,0x23},{0x0F8F420,0x20},{0x0F8F320,00},{0x058F520,0x9B},{0x059F520,0x19},{0x089F320,0x19},{0x00CFF20,0x07},{0x061F800,0x2B},{0x0EAF582,0x15},{0x0FFF420,0x1B},{0x097F400,00},{0x0E54711,0x29},{0x0E68511,0x1E},{0x0E8F512,0x5E},{0x0E6C251,0x40},{0x010F101,0x35},{0x0C2F101,0x17}, + {0x0C4F307,0x12},{0x0E3F212,00},{0x0DFF63C,0xA7},{0x0DFF521,0x18},{0x0D7F220,0x1A},{0x0E8F320,00},{0x0A0F400,0x05},{0x0A7F101,0x26},{0x0C5F201,0x12},{0x019AA2F,00},{0x0CFF9A2,0x1F},{0x015FAA1,0x9F},{0x00B7F21,0x06},{0x1E54141,0x40},{0x0AE7101,0x1E},{0x0EE8101,00},{0x0AE7101,0x20},{0x016D322,0x9A},{0x006C524,0x61},{0x02764B2,0x09},{0x0066231,0x1E},{0x0E7A241,0x80},{0x0AE7101,0x1C},{0x2129A13,0x97},{0x0119B91,0x80}, + {0x0056F22,0x56},{0x0094F31,0x0A},{0x0056F22,0x59},{0x0094FB1,0x0C},{0x1298920,0x1F},{0x1268532,0x5F},{0x0159AA0,0x4C},{0x01A8D22,0x03},{0x0E97102,00},{0x0014131,0x99},{0x0475421,0x1D},{0x0097F21,0x07},{0x0476421,0x19},{0x0087F61,0x0B},{0x0176421,0x98},{0x0098F21,0x07},{0x0176421,0x17},{0x0087F61,0x0F},{0x0296321,0x22},{0x00A7F21,0x03},{0x0186521,0x1B},{0x00A7F61,0x0D},{0x0156220,0x9A},{0x0E67141,00},{0x02651B1,0xDB}, + {0x0E65151,0x87},{0x02365A3,0x1C},{0x0059F21,0x1C},{0x003DFA1,0x1A},{0x00BDF21,0x07},{0x0014131,0x20},{0x04AF823,0xB5},{0x0C5D283,0x52},{0x0E6F414,0x99},{0x0D5F280,00},{0x0FAF40C,0x37},{0x0F4C212,0x2B},{0x053F685,0x64},{0x0E4F191,00},{0x006F600,0x35},{0x0E9F51F,0x25},{0x000F023,0x5E},{0x0E5F280,00},{0x0F5F50C,0xA9},{0x0F5F2A1,0x05},{0x0F6F307,0x31},{0x0F6F281,0x04},{0x0E5F14F,0x69},{0x052F605,0x2D},{0x0D5F281,0x03}, + {0x0E6F482,0x0F},{0x03AFE00,0x26},{0x0F6F380,0x03},{0x0F5F787,0x10},{0x0F5FD2C,0x8E},{0x0F5F427,0x20},{0x0F4F827,0x20},{0x0F5F421,00},{0x097CB05,0x9F},{0x0D5E801,00},{0x035F705,0x28},{0x0E6E401,0x05},{0x0095FE1,0x58},{0x0076FE1,0x03},{0x054890A,0x6C},{0x063A726,0x63},{0x0094F21,0xCE},{0x0083F61,0x02},{0x00F7F04,0x30},{0x0CFF5EA,0xA9},{0x00F5F21,0x1C},{0x00AAF61,0x06},{0x0549963,0x98},{0x06AA768,0xA9},{0x0095F61,0xD1}, + {0x0097F61,0x03},{0x0549963,0xD4},{0x06AA768,0x5E},{0x0095F61,0xC9},{0x0097F61,0x06},{0x0B643A1,0x2A},{0x0B6F6A3,0xB0},{0x0067FA1,0x2C},{0x0066F61,0x02},{0x053F101,0x73},{0x021A121,0x92},{0x116C221,0x40},{0x024A80F,0xB8},{0x005DF02,0x03},{0x035A70A,0xA2},{0x07372D2,00},{0x095F342,0x80},{0x020D933,0x08},{0x0E4B211,0x08},{0x02278B0,0x06},{0x0E4B214,0x0D},{0x10475A0,0x12},{0x0057221,0x40},{0x0F1F007,00},{0x0349800,00}, + {0x1137521,0x92},{0x0B47182,0x40},{0x6B5F100,0xD5},{0x6B8F100,0x51},{0x0F0F601,0x3F},{0x0E2F01C,0x1C},{0x003F103,00},{0x093F0A0,00},{0x025C5A2,0x20},{0x004EF26,0x9C},{0x0068F24,0x02},{0x0064131,0x1C},{0x03892A1,0x80},{0x0064131,0x1B},{0x02882A1,0x80},{0x0156220,0x98},{0x0267321,00},{0x02651B1,0xD1},{0x0265171,00},{0x0766321,0x93},{0x0167CA1,00},{0x1168321,0x4D},{0x0269CA1,00},{0x163F401,0x12},{0x174F111,00}, + {0x201F130,0x44},{0x083F001,0x83},{0x11542A1,0x40},{0x090F674,0xC1},{0x0A0B264,0x02},{0x074F111,00},{0x0117F27,0x0E},{0x0441122,00},{0x0111122,0x15},{0x0121123,00},{0x053F101,0x59},{0x0FFF691,00},{0x0F4F511,00},{0x3087631,0x08},{0x00F6531,00},{0x019D083,0x5D},{0x017F002,0x80},{0x019D083,0x58},{0x013F6A6,0xE5},{0x1239722,0x44},{0x013457A,00},{0x1239721,0x8A},{0x0134572,0x80},{0x0FFF4F1,0x02},{0x1E26301,0x16}, + {0x01EB821,00},{0x1226341,0x8F},{0x0024471,0x9D},{0x01E8831,00},{0x002A434,0x54},{0x0427575,0x40},{0x0FFF09E,0x07},{0x00F3F00,00},{0x1217131,0x40},{0x0066222,0x40},{0x131F231,0x47},{0x0066F21,00},{0x06764A1,0x80},{0x0FE4171,0x40},{0x1218131,0x4D},{0x0167423,0x40},{0x151D203,0x1D},{0x278F301,00},{0x0F0F09E,0x07},{0x063F300,00},{0x0F7B096,00},{0x00FFFE0,00},{0x3199B85,0x49},{0x0297424,00},{0x0FFA691,00}, + {0x0F45511,00},{0x000A821,00},{0x0136572,0x80},{0x061F217,0x6C},{0x0138572,0x80},{0x08C6320,0x19},{0x02F9520,0x80},{0x1F5E510,0x46},{0x162E231,00},{0x24FF60E,0x40},{0x318F700,00},{0x0C8F60C,0xC0},{0x354B506,00},{0x095D507,0xC0},{0x0F0E02A,0x52},{0x031FF1E,0x54},{0x0745451,00},{0x0756591,00},{0x002A414,0x54},{0x0427555,0x40},{0x0115F31,0xC5},{0x0069222,0x40},{0x0B5F704,00},{0x04FF60E,0x40},{0x218F700,00}, + {0x0297721,0x89},{0x00B9721,0x80},{0x12DC331,0x8A},{0x00F7861,00},{0x07A6161,0x99},{0x00AC121,0x80},{0x07A6161,0x9A},{0x04FF600,00},{0x075F80F,0x80},{0x2B78A03,00},{0x059A490,0x0B},{0x4C86590,00},{0x055A210,0x0A},{0x4766600,00},{0x059FA00,0x05},{0x09AF500,00},{0x3751304,00},{0x053F101,0x4E},{0x065D131,0x0C},{0x014F201,0x22},{0x097F201,0x08},{0x07CD301,0x10},{0x001F141,0x4E},{0x188D251,0x0A},{0x134A401,0x0A}, + {0x0A6C301,0x09},{0x103A361,0x28},{0x022C411,0x05},{0x010C733,0x84},{0x033D311,0x8A},{0x0188232,0x1C},{0x0076061,0x91},{0x0100132,0x80},{0x0337212,0x8F},{0x055F587,0x91},{0x054F022,0x13},{0x013F218,0x4D},{0x0E3C1E1,0x15},{0x043FA07,0x51},{0x045F341,0x11},{0x015F901,0x0C},{0x0F0FE04,00},{0x0B5F6C2,0x0C},{0x032B6B3,0x4A},{0x031D190,0x0E},{0x011F111,0x8A},{0x0B3F101,0x4F},{0x10FFF22,0x8D},{0x00FFF21,0x87},{0x0B5F708,0x07}, + {0x0CFD001,0x11},{0x107E465,0xD7},{0x078F241,0x8C},{0x11F4001,0x42},{0x11F8002,0x0B},{0x0038121,0x12},{0x00C6171,0x92},{0x00BD224,0x4F},{0x00B5231,0x16},{0x143F401,0x49},{0x074F111,0x11},{0x133FF01,0x80},{0x077F111,0x17},{0x249A320,0x0A},{0x039C411,0x0C},{0x1E7C271,0x09},{0x018F131,0x13},{0x01FF201,0x16},{0x047F701,0x0D},{0x10BB021,0x08},{0x057E221,0x14},{0x010F631,0x02},{0x016E233,0x1A},{0x267AA01,0x17},{0x013C603,0x80}, + {0x1539321,0x1B},{0x08AC311,0x0B},{0x07BE001,0x4E},{0x098E212,0x12},{0x126F531,0x49},{0x0C8E111,0x0F},{0x023F221,0x1C},{0x0D6B212,0x0D},{0x0B8F413,0x13},{0x0DBF111,0x18},{0x147D621,0x88},{0x00BF431,0x8E},{0x175A501,0x86},{0x0A48251,0x16},{0x019D531,0x89},{0x08B8352,0x91},{0x0035171,0x1C},{0x0175421,0x0D},{0x0155471,0x1C},{0x0495321,0x11},{0x0035171,0x56},{0x0175461,0x10},{0x0175421,0x0C},{0x10351F1,0x16},{0x01754A1,0x0D}, + {0x0038171,0x0E},{0x017B601,0x0E},{0x075F502,0x2A},{0x0F3F201,0x8B},{0x117ED40,0x80},{0x069C541,0x89},{0x1DAD0A1,0x17},{0x1D69012,0x0D},{0x1DAD0A1,0x11},{0x0D69012,0x16},{0x1DAD061,0x11},{0x1D69012,0x11},{0x2DAD021,0x11},{0x1D69091,0x11},{0x207F0A0,0x17},{0x03C7222,0x16},{0x307F020,0x1A},{0x00C7022,0x16},{0x3078020,0x32},{0x00C7022,0x12},{0x20B73A1,0x13},{0x246A500,0x09},{0x00753B1,0x19},{0x067D061,0x13},{0x0064131,0x1F}, + {0x036A061,0x0F},{0x0586361,0x19},{0x018A021,0x12},{0x05A6321,0x9F},{0x01A7A21,0x80},{0x0577261,0x19},{0x017A021,0x12},{0x0777261,0x15},{0x017A021,0x14},{0x0577361,0x19},{0x017A021,0x13},{0x00A6331,0x16},{0x00B63A1,0x12},{0x00E7321,0x0E},{0x00E6361,0x15},{0x00A6331,0x13},{0x00B6321,0x14},{0x0178E71,0xC3},{0x00E8B22,0x13},{0x0389261,0x89},{0x06FF4A1,0x27},{0x01D53A1,0x8A},{0x24369C1,0x1C},{0x00DBD21,0x0C},{0x0537901,0x0D}, + {0x20DBD21,0x0D},{0x0F0F530,0x35},{0x09BF034,0x13},{0x09BF032,0x10},{0x047F021,0x1B},{0x078F012,0x16},{0x0FFF001,0x0B},{0x088F202,0x17},{0x25368C1,0x14},{0x10DBD61,0x0C},{0x014F6A1,0x09},{0x0EAF102,0x19},{0x02811A1,0x20},{0x0187121,0x11},{0x047F121,0x11},{0x078D012,0x19},{0x232B583,0x52},{0x035D221,0x14},{0x1137323,0x1C},{0x0229331,0x14},{0x0BF1182,0x10},{0x38C9301,0x16},{0x1E884A1,0x19},{0x0487061,0x95},{0x357B260,0x0E}, + {0x13C9022,0x91},{0x3679400,0x4E},{0x056B191,0x0E},{0x23AACA3,0x18},{0x0BAC301,0x12},{0x068C2A1,0x20},{0x04872A1,0x0D},{0x23A9CA3,0x17},{0x04A9241,0x95},{0x1A3C282,0x18},{0x1F6E201,0x11},{0x3C3A621,0x14},{0x144E311,0x0C},{0x243F702,0x18},{0x027DC01,00},{0x001A021,0x02},{0x0612102,0x18},{0x24C5803,00},{0x11FF315,00},{0x049C441,0x08},{0x026F741,0x03},{0x038FA00,0x06},{0x07BF701,00},{0x20A60E0,0x1D},{0x228F00E,00}, + {0x10A60E0,0x1D},{0x227F0F0,0x0B},{0x017F6C1,00},{0x05CA800,0x0F},{0x07FD600,00},{0x218F201,0x09},{0x06BE601,0x04},{0x246A321,0x06},{0x026C511,0x04},{0x248A721,0x0A},{0x006C801,0x04},{0x047A34F,0x03},{0x138B703,00},{0x015C801,0x04},{0x017A30E,0x03},{0x119B602,00},{0x015C801,0x07},{0x286F30D,0x07},{0x148E404,0x03},{0x248A721,0x0C},{0x025C801,0x07},{0x473A128,0x07},{0x264A329,00},{0x344F427,0x09},{0x254F526,00}, + {0x15B8308,0x11},{0x32AC60A,00},{0x473A048,0x0D},{0x052F221,0x4F},{0x073D231,00},{0x050F201,0x4B},{0x076D201,0x03},{0x0F9F131,0x8E},{0x0F9F331,0x80},{0x0F9F332,0x81},{0x061F216,0x4F},{0x074F211,0x0A},{0x0617216,0x4F},{0x0B2F311,0x08},{0x021AC91,00},{0x016DA85,0x4D},{0x005F981,0x80},{0x065FE05,0x05},{0x085F8C4,00},{0x096F527,0x1F},{0x057F521,0x03},{0x074F217,0x0B},{0x00FFF64,0x86},{0x20BD8F0,0x93},{0x10BB3F2,0x07}, + {0x4069FB2,0x43},{0x10F95B0,00},{0x00F9033,0x05},{0x10BF224,0x4F},{0x00B5231,0x10},{0x0035121,0x15},{0x06742A2,0x80},{0x0AFF5E1,0xD0},{0x10FF4E1,00},{0x001FF11,0x8D},{0x031F121,0x40},{0x044F406,0x85},{0x0BF73C8,0x12},{0x09FF4C4,0x03},{0x0B69402,00},{0x0268301,00},{0x0EEC101,0x62},{0x0DEF302,00},{0x0EFF231,0x1E},{0x1B57431,0x0B},{0x0B8D423,00},{0x2035130,0x1C},{0x24753A0,00},{0x3115230,0xD0},{0x1254131,0x80}, + {0x11152B1,0xC5},{0x1FE41B2,0x80},{0x07572C1,0xCA},{0x1FE61C1,0x80},{0x0A7F131,0x50},{0x0C6F731,0x80},{0x171F502,0x60},{0x083F211,0x40},{0x2005130,0x1C},{0x2655420,00},{0x01151B1,0x8B},{0x1817021,0x16},{0x12C7322,0x07},{0x0537141,0x4F},{0x07C62C2,0x40},{0x173F141,0x4F},{0x074F241,0x10},{0x10691C1,0x0F},{0x20562C1,00},{0x0655201,0x1D},{0x0767301,00},{0x0AE71E1,0x15},{0x09E81E2,0x0A},{0x029BB21,0x8E},{0x00A9021,0x80}, + {0x09E81E1,0x0A},{0x2AE71E0,0x23},{0x19E80E2,00},{0x0687121,0x4E},{0x05E5232,00},{0x05B7111,0x56},{0x07B5212,00},{0x009F021,0x94},{0x00A9024,0x05},{0x00E8BA1,0x80},{0x02495A1,0x1D},{0x02A60A1,0x85},{0x0195132,0x9A},{0x0396061,0x8B},{0x030F5A2,0x12},{0x03A61A1,0x8B},{0x00457E2,0x6D},{0x0775761,00},{0x0C70CF1,0x9A},{0x0A560F1,0x80},{0x0537102,0x4F},{0x07C5211,0x05},{0x007F804,0x08},{0x04FF660,0x03},{0x00F7660,0x04}, + {0x00D67E1,0x04},{0x0F55551,0x80},{0x0F55501,00},{0x0339661,00},{0x02B5521,0x02},{0x0F2F251,0x0D},{0x2F2F241,00},{0x091A311,0x80},{0x094C503,0x80},{0x145F171,00},{0x044F423,00},{0x251B1E0,0x16},{0x275E0F0,0x03},{0x102FF51,0x03},{0x002FF01,0x08},{0x11122F1,0x46},{0x02E31F1,0x80},{0x0FF5011,0x80},{0x0FF1000,0x12},{0x002A4B4,0x87},{0x04245F5,0x80},{0x01111F1,0x41},{0x04245F7,0x80},{0x1007861,0x54},{0x247A260,0x03}, + {0x0417F21,0x56},{0x0213521,00},{0x301F171,00},{0x001F131,0x40},{0x074F219,00},{0x088F508,00},{0x20C8B22,0x05},{0x1037531,0x1C},{0x0445462,00},{0x0427880,0x4D},{0x0548595,00},{0x072F107,0x48},{0x004FC08,0x80},{0x0FFF835,0x44},{0x075F511,00},{0x1068F02,0xC0},{0x0F5D510,0x08},{0x10B5F01,0x80},{0x2056651,00},{0x0066642,0x05},{0x000200E,00},{0x001210E,00},{0x08785F4,0x50},{0x09974F3,0x80},{0x050F102,0x50}, + {0x076D201,0x0E},{0x050F101,0x4B},{0x050F113,0x50},{0x011FF32,0x92},{0x013FF01,0x8B},{0x010FF34,0x92},{0x004FF03,0x0B},{0x000F153,0x4E},{0x086D251,0x11},{0x0E5F828,0xCF},{0x0FFC021,0x0B},{0x0E5F8E2,0xCA},{0x00EC0E1,0x0B},{0x0FFF92C,0xD4},{0x0FFC0A1,0x0B},{0x0E5F82B,0xCA},{0x091F029,0xCD},{0x086E021,0x0B},{0x001F024,0xD0},{0x001F023,0xC8},{0x001B064,0xC9},{0x086F061,0x0B},{0x010A133,0x85},{0x0237215,0x8B},{0x010A131,0x85}, + {0x0337315,0x8B},{0x030A131,0x81},{0x074C216,0x8B},{0x07BF003,0x8A},{0x07BF402,0x8B},{0x07BF401,0x80},{0x07BF223,0x8A},{0x0337212,0x8B},{0x0337314,0x8B},{0x08E7331,0x16},{0x09E8021,0x0B},{0x07E7330,0x16},{0x0733331,0x94},{0x097A021,00},{0x073D331,0x94},{0x097A021,0x0C},{0x053F131,0x45},{0x027F232,0x0B},{0x001F213,0x0C},{0x0B6F215,0x18},{0x001F211,0x0C},{0x0B6F211,0x0B},{0x004FE11,0x0A},{0x0BDF211,0x0B},{0x011CA53,0x4D}, + {0x0F171E1,0x13},{0x011BA12,0x40},{0x03124F1,0x0C},{0x08E7261,0xA7},{0x01A50E1,0x8B},{0x0133218,0x4D},{0x0E351E1,0x0C},{0x0411217,0xC0},{0x0311331,0x8B},{0x055F503,0x8F},{0x033F321,0x8B},{0x011FA13,0x4D},{0x0F1F1E1,0x0C},{0x0154011,0x43},{0x0F8A1F1,0x0C},{0x0978211,0x03},{0x0F2F0E4,0x4C},{0x053D105,0x40},{0x0715114,0x0B},{0x01727F1,0x01},{0x0185120,0x0B},{0x01132F1,0x18},{0x013F1E1,0x0B},{0x053F173,0x48},{0x006F171,0x17}, + {0x0117171,0x8D},{0x0157261,0x4B},{0x061F2D7,0x4F},{0x0B2F1D2,0x0B},{0x0FFF001,0x11},{0x0F8F001,0x0B},{0x0114131,0x8B},{0x0132261,0x0B},{0x021FF31,0x8B},{0x0154461,0x0B},{0x0153261,0x0B},{0x013FD71,0x1C},{0x0D6E721,0x0B},{0x0675421,0x0B},{0x0175421,0x0B},{0x0495321,0x0B},{0x0175461,0x0B},{0x075F002,0x29},{0x033F401,0x8B},{0x053F101,0x49},{0x074F111,0x0B},{0x053F101,0x89},{0x053F102,0x89},{0x053F102,0x80},{0x053F108,0x4B}, + {0x02CD321,0x15},{0x02CC321,0x8B},{0x0F2D401,0x18},{0x08AC421,0x8B},{0x07BF001,0x4E},{0x0C8F411,0x0B},{0x0ABF001,0x44},{0x0ABF311,0x0B},{0x0C8F453,0x0E},{0x0BBF111,0x0B},{0x0C8F253,0x0B},{0x0C5F211,0x0B},{0x04CB421,0x15},{0x0AC9421,0x0B},{0x01C9421,0x15},{0x0AC6421,0x0B},{0x08F7721,0x16},{0x02A60A1,0x8B},{0x0BF7721,0x19},{0x0AFD6A1,0x13},{0x02A60E2,0x8B},{0x02495A2,0x1D},{0x130F4A4,0x12},{0x02A60E1,0x8B},{0x00E6321,0x16}, + {0x00E6321,0x0B},{0x00B6321,0x0B},{0x00A6321,0x1B},{0x00A6320,0x1B},{0x0076061,0x8B},{0x0145132,0x18},{0x03662E1,0x8B},{0x0178731,0xC3},{0x00E8B22,0x0B},{0x00E8B22,0x0F},{0x0176E70,0x8D},{0x00E6B22,0x0B},{0x006F224,0x4F},{0x0065231,0x0B},{0x0076431,0x1B},{0x067D061,0x0B},{0x0066131,0x1B},{0x036D261,0x0B},{0x0063131,0x1F},{0x0365061,0x0B},{0x036A061,0x0B},{0x0565321,0x9A},{0x016A021,0x8B},{0x0585361,0x19},{0x018A021,0x0B}, + {0x017A021,0x0B},{0x0A67121,0x1B},{0x096A121,0x0B},{0x044F585,0x91},{0x045F0A1,0x0B},{0x033F507,0x51},{0x025F061,0x0B},{0x021FF13,0x8C},{0x00DF338,0x8C},{0x033F5B1,0x40},{0x054F022,0x0B},{0x031D190,0x0B},{0x0F0FEC4,0x0E},{0x0B5F6C2,0x12},{0x015DA05,0x4E},{0x013F001,0x80},{0x09AF231,0x44},{0x027F032,0x0B},{0x002A4B0,0xC4},{0x04240D7,0x8B},{0x0F0F0CA,0x84},{0x06259CC,0x0B},{0x09BF035,0x0B},{0x0530907,0x40},{0x094F605,0x0B}, + {0x025DA09,0x4E},{0x015F101,0x0B},{0x0A0F406,00},{0x046F600,0x0B},{0x0DC5C00,0x0B},{0x07FF511,0x0B},{0x07FF511,0x0E},{0x07FF511,0x10},{0x0530900,0x40},{0x0A8F211,0x86},{0x0A8A001,0x8B},{0x070F200,0x50},{0x072F213,0x0B},{0x01111F0,00},{0x01111E0,0xCB},{0x072F212,0x0B},{0x04FA800,0x0B},{0x0BFF80C,00},{0x0BFF704,00},{0x0BFF501,00},{0x0BFF701,00},{0x00F10DE,00},{0x0790825,0x9A},{0x0E6E385,0x5B},{0x0E6F315,0x62}, + {0x042B401,0x12},{0x00AF601,0x07},{0x036D600,00},{0x055FF10,0x06},{0x3E2E20F,00},{0x1E3F308,0x0A},{0x366F30F,00},{0x1E4F408,0x0A},{0x074F111,0x04},{0x153F101,0x89},{0x074F111,0x07},{0x160F101,0x4D},{0x07BD211,0x01},{0x153F181,0x49},{0x150F101,0x4F},{0x07CD201,0x05},{0x118F603,0x1C},{0x0F9F212,0x04},{0x1F9F131,0x0E},{0x0F9F331,0x04},{0x074F111,0x01},{0x1100133,0x07},{0x0037D14,00},{0x1F0F517,0x53},{0x0F3F201,0x09}, + {0x1FFF5A3,0x47},{0x0FFF5A2,00},{0x154F606,0x73},{0x105F012,0x15},{0x003F011,0x80},{0x108F006,0x0E},{0x008F001,00},{0x101FF64,0x1B},{0x062F32E,00},{0x4049404,00},{0x0059500,00},{0x1118371,0x03},{0x0828F73,0x80},{0x111C371,0x03},{0x082CF73,0x80},{0x10381F0,0xD9},{0x005F171,0x85},{0x10F75F2,0x81},{0x00FFFF0,0x0E},{0x1037532,0x1C},{0x0F8B062,0x04},{0x00B5231,0x08},{0x1F09091,0x88},{0x0FC4082,0x80},{0x10BF261,0x68}, + {0x00B5270,0x10},{0x131F121,0x0F},{0x045C302,0x03},{0x112F101,0x10},{0x082F101,0x04},{0x1518503,0x5E},{0x071D211,0x07},{0x113F201,0x11},{0x0F88401,00},{0x121FF13,0x16},{0x14AF8F0,00},{0x047F022,0x0A},{0x11797F0,0x01},{0x018F161,0x0A},{0x11797F1,0x01},{0x018F126,0x08},{0x078F101,0x0A},{0x10FF7E1,0x9A},{0x00BF9B1,0x09},{0x1618221,0x12},{0x0619522,0x05},{0x18AE221,0x11},{0x0A8E421,00},{0x025F301,0x05},{0x1937511,0x4F}, + {0x082F501,0x05},{0x119D531,0x88},{0x125F871,0x40},{0x085F171,0x08},{0x1035131,0x1C},{0x0065461,0x04},{0x1035131,0x16},{0x11152B0,0xC5},{0x00531B1,0x82},{0x1B69401,00},{0x0268300,0x14},{0x11171B1,0x82},{0x0154261,0x04},{0x171E4B1,0x8B},{0x0E5E461,0x40},{0x1829531,0x9C},{0x0B1F130,0x88},{0x1847824,0x9A},{0x004B000,00},{0x111A1B1,0x81},{0x0157261,0x04},{0x11161B1,0x81},{0x0153261,0x04},{0x1339111,0x8A},{0x0345122,0x80}, + {0x11171B1,0x85},{0x015E5D1,0x5B},{0x0057B72,0x82},{0x04964F2,0x90},{0x0069261,0x06},{0x1537101,0x4F},{0x00CB222,0x08},{0x1526641,00},{0x0768501,00},{0x0177E61,0x92},{0x0098E21,00},{0x0176E60,0x92},{0x0096E21,0x10},{0x165C201,0x1D},{0x006F321,0x0C},{0x0177E61,0x8F},{0x0098E21,0x04},{0x15A5321,0x9F},{0x01AAA21,0x82},{0x1AE71E1,0x15},{0x00E81E2,0x08},{0x1AE7081,0x12},{0x09EB023,0x09},{0x1AE7081,0x18},{0x1FB7012,0x92}, + {0x0FF5014,0x04},{0x0FF5013,0x06},{0x1FB7011,0x92},{0x0FF5013,0x02},{0x1FB7010,0x92},{0x0FF5011,0x0A},{0x0FF5011,0x02},{0x119D530,0xC8},{0x01B6171,0x82},{0x11B5132,0x1A},{0x00BA261,0x0A},{0x1297461,0x12},{0x0097362,0x80},{0x05FF732,0x43},{0x01F65B1,0x80},{0x05F87B1,0x83},{0x01F67B0,0x83},{0x05F8732,0x83},{0x15F87A2,0x03},{0x01F65B1,00},{0x0177E62,0x92},{0x0098E21,0x0C},{0x1C70CB3,0x9A},{0x0A560B2,0x80},{0x15F6721,0x83}, + {0x0FF5501,0x86},{0x11797F1,00},{0x0E8F121,0x04},{0x31797F1,00},{0x0E8F121,0x06},{0x15F8781,0x83},{0x01B6580,0x80},{0x1F69401,0x80},{0x009F426,0x04},{0x1F69442,0x80},{0x008F423,0x04},{0x10875E6,0x66},{0x00963E3,00},{0x1177426,0x8E},{0x017F5A0,0x83},{0x116F1A1,0x88},{0x008F421,0x02},{0x143C373,0x0C},{0x0432370,00},{0x04914F2,0x90},{0x0665261,0x08},{0x11797B1,0x06},{0x018F161,0x08},{0x1176E81,0xC5},{0x0048B22,0x08}, + {0x100586E,0x18},{0x0012632,0x80},{0x104C113,0xD3},{0x0075161,0x0A},{0x107F021,0x8E},{0x0089022,0x40},{0x111D570,0xC8},{0x0112671,0x82},{0x1427887,0x4D},{0x00485B6,0x02},{0x11171B1,0x8B},{0x0154261,00},{0x654F699,0x33},{0x003F2A1,0x08},{0x1537101,0x49},{0x0047132,0x0A},{0x102A4B4,0x07},{0x00245F6,00},{0x10214B3,0x07},{0x00285F5,00},{0x015E5D1,0x9B},{0x0027B72,0x83},{0x1339660,00},{0x02B5520,0x03},{0x153F101,00}, + {0x053F108,00},{0x11FF721,0x0A},{0x03FF523,00},{0x088F108,00},{0x110F201,0x11},{0x004F508,00},{0x105F011,0x15},{0x003F010,0x40},{0x1176E30,0x61},{0x00C8B21,0x0C},{0x0075462,0x05},{0x2FB7010,0x52},{0x106FF09,0x4D},{0x004FF84,00},{0x106FF09,0x0D},{0x007FF84,00},{0x1847825,0x9A},{0x004B001,0x06},{0x340FF55,0x80},{0x007FF12,00},{0x340FF90,0x80},{0x003FF10,0x11},{0x040FF10,0x80},{0x003FF10,0x8C},{0x640FF10,0x37}, + {0x003FF10,0x0E},{0x000FF4E,00},{0x0FD1F40,00},{0x1945315,00},{0x0757800,00},{0x3063F72,0x85},{0x0075F20,0x0A},{0x0021E60,00},{0x1F0F000,0x2E},{0x0FF5F09,00},{0x111FE3E,00},{0x019F123,0xC0},{0x111FEB0,00},{0x019F1A0,0xC0},{0x0022C60,00},{0x000FF0D,00},{0x006F020,00},{0x0000000,00},{0x0E8E800,0x0D},{0x0F8A500,00},{0x038EC12,0x06},{0x009FA00,0x06},{0x2F5F02F,00},{0x207FA0F,00},{0x077F005,00}, + {0x0EDFA00,00},{0x0F7F700,00},{0x0F6F600,00},{0x097F700,0x03},{0x100F046,00},{0x067FE02,00},{0x0C7F700,0x03},{0x0F0F063,00},{0x2099902,0x03},{0x0C6F600,0x03},{0x1F0F043,00},{0x204FD02,0x03},{0x0F6F500,00},{0x0C5F500,0x03},{0x000F00F,00},{0x2F4F4A0,00},{0x342F809,0x06},{0x3E4F407,0x40},{0x320F413,0x4B},{0x254F800,00},{0x04F960E,0x40},{0x218B700,0x08},{0x276F502,0x1B},{0x0D6F809,0x05},{0x10070E1,00}, + {0x0F4A4E0,0x09},{0x3E4F404,0x44},{0x1F8F830,0x21},{0x0B6F511,0x08},{0x1F8F830,0x1E},{0x0A6F511,0x08},{0x248EB00,0x95},{0x078F700,0x0D},{0x259FB00,0x94},{0x038E700,0x0D},{0x256FB00,0x98},{0x0C7F600,0x0D},{0x1F8F832,0x85},{0x0F5F531,0x08},{0x1BAE812,0x80},{0x099F511,0x08},{0x387FD00,00},{0x0F6E622,0x08},{0x0F6F522,0x08},{0x0FEF025,00},{0x2586C03,0x93},{0x2187704,0x08},{0x3F77723,0x04},{0x2F68623,0x0A},{0x3F76623,0x04}, + {0x306FF80,00},{0x0176F11,0x0B},{0x0166F11,0x0B},{0x1D1F813,0x61},{0x0F5F532,0x0C},{0x1D1F813,0x6C},{0x0F6F632,0x08},{0x045FC41,0x45},{0x0C56943,00},{0x0056942,00},{0x060F205,0x51},{0x07AF414,0x80},{0x060F285,0x51},{0x0B8F294,0x80},{0x013F201,0x22},{0x043F501,00},{0x0F9F332,0x80},{0x072F212,0x0A},{0x015DA85,0x4E},{0x013F981,0x80},{0x0F0FF06,00},{0x0B5F8C4,00},{0x060F217,0x4F},{0x072F202,0x10},{0x053F103,0x0F}, + {0x00FFF22,0x40},{0x00F9031,00},{0x1069FB2,0xC0},{0x10FB4B0,0x80},{0x00F9033,0x08},{0x00B9231,0x10},{0x0677262,0x80},{0x1AFF5E0,0xCE},{0x021FF13,0x93},{0x101FF11,0x8B},{0x171F503,0x5E},{0x083F211,00},{0x044F406,0x80},{0x01AC1E5,0x03},{0x07EF0E7,0x40},{0x0EEC101,0x23},{0x071FB51,00},{0x078F520,00},{0x1889501,0x40},{0x003FF12,00},{0x1F7F501,0x10},{0x2F7F501,00},{0x029D521,0x4F},{0x006B332,00},{0x2035170,0x1C}, + {0x267B420,00},{0x21152F0,0xD0},{0x1FE91F1,0x40},{0x1FE71B1,0x80},{0x01152B1,0xC5},{0x1CF80B1,0x84},{0x0F9F131,0x9C},{0x0D5F531,0x80},{0x123B391,0x4F},{0x106F761,0x40},{0x004D010,0x80},{0x2656420,00},{0x1445462,0x02},{0x081B021,0x16},{0x12CD323,00},{0x10872E1,0xC0},{0x02BFAE2,0x89},{0x1C2F071,0x46},{0x0F2F2C1,00},{0x174F242,0x03},{0x0059100,0x0F},{0x3068200,00},{0x03BC262,0x80},{0x03BB261,0x80},{0x0655200,0x1D}, + {0x076A321,00},{0x12FA522,0x80},{0x11ABA21,0x80},{0x1AE91E1,0x55},{0x09EA1E1,0x0A},{0x00AB061,0x80},{0x19EA1E1,0x06},{0x19EA1E2,00},{0x07C9212,00},{0x0687120,0x4E},{0x05E9232,00},{0x05B7110,0x4F},{0x07B9250,00},{0x009F021,0x96},{0x10AC024,00},{0x10EDBA2,00},{0x019D531,0x4D},{0x00A9173,00},{0x03BB261,0x02},{0x015B022,00},{0x117A5A1,0x40},{0x18F7EE2,0xDB},{0x02A8661,00},{0x01560E1,0x40},{0x1063F54,0x85}, + {0x0077E01,00},{0x02AA661,00},{0x0C70CF4,0x9A},{0x0A580F3,0x40},{0x07C7211,00},{0x007F803,0x08},{0x074B201,00},{0x14FF661,0x0B},{0x00FA661,00},{0x0086882,0x90},{0x008C7F1,00},{0x1E65602,00},{0x02B6522,00},{0x303F660,0x07},{0x016F621,00},{0x0E1B311,0x85},{0x0E4A101,00},{0x1E9F251,0x41},{0x0B6F272,00},{0x002A4B3,0x87},{0x04285F5,00},{0x19041F1,0xC0},{0x005B2B1,00},{0x102FF52,0x03},{0x104FF01,0x01}, + {0x20FF4E0,00},{0x21133F4,0x02},{0x32E53F1,00},{0x125F243,00},{0x3CF7232,0x4D},{0x1EE5111,00},{0x0FF1001,0x12},{0x0FF5011,00},{0x00FFF7E,0x1A},{0x10F6F61,00},{0x01131F1,0x41},{0x11222F1,0x40},{0x203E5B6,0x4B},{0x14245F1,00},{0x1005872,0x18},{0x0022620,0x40},{0x202F950,0x90},{0x001FFC5,00},{0x00F4D20,0x03},{0x105FF00,00},{0x0427F35,0xD7},{0x02135A2,00},{0x303F17C,0x40},{0x001F130,00},{0x053F128,0x80}, + {0x0438D13,0x80},{0x074F237,00},{0x01FF201,0x0B},{0x188F521,00},{0x053F621,00},{0x10CABA1,00},{0x2035530,0x19},{0x1448461,00},{0x0427881,0x4B},{0x0558593,00},{0x272F107,0x46},{0x104FC18,00},{0x0E6F80E,00},{0x0F6F80F,00},{0x1078F03,0xC0},{0x1059F02,00},{0x097F802,00},{0x107FF00,00},{0x196C801,00},{0x086F800,00},{0x0B3F109,00},{0x00B5F01,0x80},{0x30F5F00,00},{0x2066642,00},{0x3665F54,0x0A}, + {0x0077F40,00},{0x005F1C0,0x51},{0x02394FB,00},{0x10FFFFC,0xC0},{0x30FFFF0,00},{0x00F5F6E,00},{0x0F0A00A,00},{0x075C586,00},{0x050F101,0x4E},{0x0D6D101,0x06},{0x054F231,0x48},{0x0C6F201,00},{0x023F503,0x47},{0x0E7D101,0x06},{0x000F113,0x54},{0x0F6D194,00},{0x15BF80C,0x71},{0x0CCD201,0x03},{0x0DAF101,0x93},{0x0E9F301,00},{0x128FB23,0x87},{0x0E8D301,0x40},{0x0A5C201,0x92},{0x0D7C201,00},{0x040FF36,0xC0}, + {0x0F4F311,0x80},{0x0C4F411,00},{0x0045616,0x21},{0x034F601,00},{0x0E6F318,0xD0},{0x0FFF718,0x21},{0x0D8B501,00},{0x0FFF816,0x98},{0x032FD13,0x86},{0x042FD00,0x03},{0x1058401,0x49},{0x0C5F481,0x82},{0x2E5F062,0x5D},{0x00EC060,00},{0x0FFF062,0xCF},{0x00FCF60,00},{0x00FAA30,0x57},{0x10FFF71,00},{0x14BF02C,0x55},{0x01B5071,0x08},{0x1059721,0x13},{0x1058721,0x8F},{0x0054F32,00},{0x006F223,0x53},{0x00642B1,0x0B}, + {0x1058721,0x50},{0x0054F31,00},{0x2F4F502,0x64},{0x0F8F301,00},{0x1FAF303,0x57},{0x0F7C301,00},{0x0F0F003,0xD5},{0x120F723,0x86},{0x0F7F401,0x40},{0x043F903,0xC0},{0x0FAF421,00},{0x0FFF101,0x43},{0x3FFF054,0x40},{0x353F100,0x49},{0x396F110,00},{0x15FF510,0x40},{0x1FFF134,00},{0x08AC321,0x80},{0x02FF131,0x8F},{0x086F131,00},{0x02FF131,0x8C},{0x0FC8201,00},{0x016F701,0x8E},{0x088F321,00},{0x016FD01,0x0D}, + {0x016F501,0x8C},{0x004F311,0x06},{0x06DF231,00},{0x1035171,0x1C},{0x0155221,00},{0x113FF31,0x16},{0x0366661,00},{0x0035171,0x1D},{0x0476421,00},{0x121F131,0x46},{0x0FFF611,0x05},{0x0F37211,00},{0x075F002,0x1D},{0x053F701,00},{0x1057510,0x41},{0x0F3F311,00},{0x0153061,00},{0x014C121,0x93},{0x0054161,00},{0x0223101,0x18},{0x0159041,00},{0x01FF421,0xDB},{0x0073F72,0x07},{0x0697961,0x96},{0x0677121,00}, + {0x069E961,0x96},{0x0665410,0x04},{0x0076431,0x1E},{0x067D021,00},{0x0078F21,0x80},{0x0586321,0x19},{0x018A021,00},{0x00F7321,0x16},{0x00F9321,00},{0x016A021,0x80},{0x0076431,0x18},{0x03E4131,0x16},{0x09EF022,00},{0x0566121,0x99},{0x100FF31,0x94},{0x0087F61,00},{0x1009831,0x8E},{0x0096F61,00},{0x1055E31,0x8D},{0x0178731,0xC1},{0x00E8BA2,00},{0x10E8BA2,00},{0x017FE71,0x0D},{0x00A6B22,00},{0x0219F32,0x48}, + {0x0F770B1,00},{0x03794A1,0x1F},{0x00A6521,00},{0x05F7621,0x19},{0x02A60A1,0x80},{0x0195131,0x9A},{0x0396021,0x80},{0x05084B2,0x8D},{0x0186721,00},{0x00457E2,0x52},{0x0876861,00},{0x1032171,0x96},{0x0031171,0xD6},{0x00FF032,0xF4},{0x0077621,00},{0x203F422,0xA1},{0x00CF061,00},{0x10FFC21,0x0E},{0x10FF9A1,00},{0x0558721,0x42},{0x0099021,00},{0x121A221,0x8E},{0x02A91A2,00},{0x069E962,0xAA},{0x0104100,0xC4}, + {0x206F760,00},{0x030F201,0x8F},{0x009F461,0x80},{0x0F45217,0xA7},{0x011E861,0x1F},{0x00327B1,0x80},{0x02C6161,0x16},{0x018F521,00},{0x001EF71,0x60},{0x0036172,00},{0x0935136,0xC4},{0x0714331,0x80},{0x175A1C1,0x51},{0x1752101,00},{0x010F4A1,0xDB},{0x0033F32,0x07},{0x1181121,0x15},{0x007CFA1,00},{0x0F1B061,0x1F},{0x0F2F1B1,00},{0x1051201,0x15},{0x0144121,00},{0x0156215,0x58},{0x004AD81,00},{0x056F523,0x48}, + {0x025F3A1,0x80},{0x151F261,0x4D},{0x0A5F242,00},{0x1511261,0x09},{0x0131123,0x80},{0x0F11141,0x8E},{0x0031DA1,0x06},{0x15AB061,0x94},{0x01AB0A3,0x80},{0x083F101,0x40},{0x085F108,0x40},{0x1119311,0x0C},{0x0C5A213,0x09},{0x1429811,0x06},{0x0D7F311,00},{0x0328513,0x91},{0x112E591,00},{0x2569D04,0x8F},{0x005F201,0x80},{0x1206721,0x41},{0x0206721,0x41},{0x1178731,0x48},{0x00E8B22,0x80},{0x0E5F105,0xD8},{0x0E5C302,0x80}, + {0x026EC07,0x0A},{0x087F702,00},{0x0155805,0x9D},{0x005EF01,00},{0x018FA17,0x18},{0x054F812,00},{0x0F3E900,0x11},{0x147F811,0x01},{0x003F310,0x80},{0x0696940,0x96},{0x0657300,00},{0x0F0F00C,00},{0x0DF270C,00},{0x2D65602,0x8D},{0x07DF011,0x0A},{0x0865611,0x89},{0x0FFF00B,00},{0x2FF120C,00},{0x05BE51C,0x1E},{0x0FA5D0C,00},{0x0FFD02C,0x40},{0x0FFF020,00},{0x200F600,00},{0x2FF4FD0,00},{0x001FF6C,00}, + {0x016126C,0x40},{0x0FFF30C,00},{0x1DFF60C,00},{0x0F00020,0x3F},{0x045D600,00},{0x0C8AA00,00},{0x0B7D200,00},{0x22BFB03,00},{0x00BF507,00},{0x00AFF21,0x80},{0x119F800,00},{0x098C601,0x08},{0x098C601,00},{0x342F80E,00},{0x342F80F,00},{0x342F804,00},{0x3E4F407,0x44},{0x3E4F40D,0x40},{0x3E4F408,0x40},{0x200F880,0x0D},{0x3049F90,00},{0x0B5F801,00},{0x0EFF702,00},{0x397C802,00},{0x397C802,0x40}, + {0x2D6F609,0x05},{0x05BE51C,0x16},{0x0FA7D07,00},{0x0FEE51C,0x16},{0x0067D07,00},{0x005F713,00},{0x005F712,00},{0x3F0E02A,0x40},{0x005FF1E,0x40},{0x3F0E02A,0x7C},{0x002FF1E,0x40},{0x053F171,0x48},{0x227F272,00},{0x121F1B1,0x46},{0x0166F61,00},{0x03EC131,0x1B},{0x203F4A2,0xA1},{0x00CF0F1,00},{0x008C782,0x0D},{0x00857F1,00},{0x0328513,0x90},{0x2569D04,0xCF},{0x0F2EB20,0x08},{0x005FF10,00},{0x0F0F029,00}, + {0x1DF2703,00},{0x0F6A90F,0x02},{0x2F6F90F,0xC0},{0x008CB00,00},{0x0176F11,00},{0x0166F11,00},{0x0F00006,0x3F},{0x0FFF816,00},{0x0FFF815,00},{0x094F3C1,0x8C},{0x0C8E3C1,0x40},{0x1E4E130,0x8D},{0x21FF120,0x21},{0x088F420,00},{0x100A010,0x15},{0x0F6B110,00},{0x054A1E0,0x4B},{0x0049160,0x40},{0x10575A1,0x80},{0x10580A0,0x52},{0x1056521,0x80},{0x10569A0,0x93},{0x10266E0,00},{0x0033221,0x4D},{0x1042120,0x80}, + {0x054A160,0x4D},{0x0049160,0x80},{0x10BA8A1,0x48},{0x128D330,00},{0x0C8A820,00},{0x117F7CE,0x21},{0x04CF9C0,00},{0x075FC01,0x21},{0x25E980C,0x80},{0x306FB0F,0x80},{0x0F5F201,0x8F},{0x0F5F201,0x06},{0x0F5F201,0x4B},{0x0F5F201,00},{0x0F5F201,0x49},{0x0F7F2C1,0x12},{0x0F9F181,0x57},{0x0F8F101,0x93},{0x0F3A101,0x80},{0x0F5F60C,0x5C},{0x0F5F3D8,0x62},{0x0F5F281,00},{0x01BF6F1,0x92},{0x006F171,00},{0x05FC772,0x14}, + {0x006C730,00},{0x01BAA70,0x44},{0x0058AB1,00},{0x1259723,0x93},{0x01355B1,00},{0x12998A4,0x48},{0x01646B1,00},{0x0066161,00},{0x0077121,0x13},{0x00661E1,0x89},{0x19BF302,0x9C},{0x0C9F341,0x80},{0x19EF303,0x54},{0x0E6F151,00},{0x03EF123,0x5F},{0x127F623,0x87},{0x0F7F321,0x80},{0x03FF621,00},{0x1479163,0x4A},{0x01A8421,0x05},{0x1189563,0x4A},{0x0179461,00},{0x0482029,0xA1},{0x0F7D1A4,0x80},{0x00694A1,0x1E}, + {0x078F171,0x13},{0x006F771,00},{0x0E8F171,0x8E},{0x076F171,00},{0x02F6131,0x5B},{0x01B7132,00},{0x097A101,0x8B},{0x0D7F221,0x40},{0x017A261,0x8A},{0x0D7A121,0x08},{0x0E5F431,0x8B},{0x075F131,00},{0x05AF2E1,0x0E},{0x007F121,00},{0x114DD31,0x15},{0x02556A1,00},{0x113DDB1,0x16},{0x00666E1,00},{0x116D171,0x49},{0x0066131,00},{0x11471A1,0x4D},{0x0057263,0x80},{0x124F1F1,0x40},{0x0156FE1,00},{0x176F502,0x1A}, + {0x175F422,0x1D},{0x0F3F301,0x80},{0x126B1E1,0x9B},{0x1057FA1,0x98},{0x0043F22,0x07},{0x03441A1,0x93},{0x0035161,00},{0x025C121,0x18},{0x013F431,0x5B},{0x0038A72,0x83},{0x0667161,00},{0x08662E1,0x57},{0x0198521,0x92},{0x00F8F21,0x01},{0x01775A1,0x94},{0x0078F21,0x05},{0x0368261,00},{0x1276261,00},{0x0676121,0x9B},{0x0067F21,00},{0x0177561,0x8A},{0x00774A2,0x06},{0x15772A1,0x86},{0x0177161,0x83},{0x03F5461,0x4D}, + {0x018A661,00},{0x1079331,0x8F},{0x0077261,00},{0x1079331,0x8E},{0x1079331,0x91},{0x0078261,00},{0x117AA61,0x4B},{0x1167E31,0x90},{0x1098B21,00},{0x02A9B32,0x90},{0x0187221,00},{0x05C85E1,0x1F},{0x01765E1,00},{0x05C88E1,0x46},{0x0077521,00},{0x2FFF122,0x51},{0x1FCF121,0x0E},{0x208FF21,00},{0x05A8622,0x46},{0x01964E1,0x80},{0x17A9221,0x8B},{0x0056F61,0x40},{0x0AFF121,0x8F},{0x0945337,0xA5},{0x005A0E1,00}, + {0x0759121,0x17},{0x0155561,00},{0x0035471,0x5D},{0x0432161,0x97},{0x173A161,0x1C},{0x1433161,00},{0x007CF61,00},{0x085B122,0x92},{0x025F261,0x83},{0x153F141,0x4D},{0x0F5F202,00},{0x173C3A4,0x4C},{0x02381E1,00},{0x1F3A131,0x0C},{0x0F4A233,0x80},{0x0277C21,0x49},{0x1076F22,00},{0x134DD31,0x85},{0x0165661,00},{0x207DA20,0x04},{0x0078F21,0x81},{0x0E3C303,0x80},{0x03756FA,0x40},{0x261B2B5,0x5C},{0x0A5F4B4,0x08}, + {0x001F6EE,00},{0x3A54FF0,00},{0x2C6F600,00},{0x277F810,0x86},{0x006FC11,00},{0x2E5F60F,00},{0x217FA0F,00},{0x037EC12,0x18},{0x2D68800,0x0F},{0x0FAAA06,00},{0x217F800,00},{0x077ED43,0x06},{0x205FD02,0x03},{0x087AD43,0x07},{0x164DD43,0x0E},{0x314EE9F,00},{0x2F4F4A0,0xCD},{0x064DD03,0x1D},{0x314FE9F,00},{0x320F413,0x8B},{0x244F800,0x47},{0x5777602,0x80},{0x2679801,0x08},{0x314FE9F,0xC0},{0x159FE01,0x41}, + {0x085F510,0x89},{0x60070E0,0xC0},{0x6F4A4E3,0xA0},{0x0F77720,0x11},{0x2F87811,0x13},{0x2F97869,0xC0},{0x0F9D721,00},{0x2F76769,0xC0},{0x0B2F294,0x80},{0x060F213,0x4F},{0x072F201,0x10},{0x00F9031,0x04},{0x09F8331,0x10},{0x078F422,0x04},{0x0A7F131,0x5A},{0x08B7261,0xA7},{0x01950E1,0x81},{0x0089782,0x0D},{0x00897F1,00},{0x0E1A311,0x80},{0x0E4A103,0x80},{0x003FF40,0x0D},{0x001FF08,00},{0x096D801,00},{0x0C8AA00,0x0B}, + {0x3F0F026,00},{0x3B7FA00,00},{0x2F5F710,0x07},{0x2F488F2,0x0A},{0x2F6A6D0,0x81},{0x1B5B801,0x03},{0x1A58801,0x08},{0x1A58601,0x09},{0x0F6C504,0x0C},{0x1D5F601,0x82},{0x078950A,0xC7},{0x115B50E,0x07},{0x1737701,0x07},{0x078950E,0xC7},{0x0679610,00},{0x165E7D1,0x05},{0x094E701,00},{0x0679601,00},{0x026B401,00},{0x0679611,00},{0x2DC5800,0x0E},{0x3044952,0x07},{0x3024152,0x07},{0x1D65A00,0x0E},{0x19F5310,0x0E}, + {0x1B6F804,00},{0x1B7F804,00},{0x1DC5C00,0x07},{0x07AF4D5,0x10},{0x072F2D5,0x10},{0x3E4F407,0x51},{0x37CFD23,0x15},{0x0F58401,0x08},{0x035F203,0x5D},{0x4F5F401,0x08},{0x0F5F303,0x7D},{0x4F5F301,0x08},{0x0F5F203,0x55},{0x4F5F201,0x08},{0x0D5F211,0x80},{0x005F276,0x25},{0x006F27A,0x29},{0x0F2F100,0x24},{0x0F7F200,00},{0x185DC85,0x91},{0x055F401,0x0E},{0x0F6E181,00},{0x0F6E798,0x2B},{0x0F4F194,00},{0x0A7E98A,0x15}, + {0x0B3D407,0x9A},{0x0B4C202,00},{0x082D307,0x9A},{0x0E3A302,00},{0x156940A,0xA7},{0x132F411,0x05},{0x027A2A0,0x85},{0x023A522,0x9E},{0x02AA5A2,0x80},{0x02AA168,0x8F},{0x02AA623,0x51},{0x00AAF61,0x80},{0x00AAF61,0x91},{0x00AAF22,0x80},{0x1069FB2,0x09},{0x10B55B0,0x22},{0x066752A,0x26},{0x067702A,0x2B},{0x013C321,0x22},{0x00B7022,00},{0x0F4F505,0x29},{0x0F9F200,0x1E},{0x0F1F101,0x2F},{0x0F7F100,00},{0x0F4F405,0x29}, + {0x0F6F110,0x19},{0x0F1F111,0x31},{0x19F53C8,0x1C},{0x07FFAE4,0x03},{0x0049420,0x2A},{0x0A5C523,0x24},{0x0F9F200,0x21},{0x0F8F101,00},{0x02BF82A,0x24},{0x02BF620,0x2D},{0x02BF420,0x12},{0x02BF420,00},{0x0ABF82A,0x23},{0x02BF620,0x32},{0x0285130,0x5B},{0x0487130,00},{0x0487130,0x1E},{0x048A130,00},{0x0F7F52F,0x14},{0x1C7F523,0x33},{0x097F320,0x20},{0x0F8F121,00},{0x0F7F52F,0x1B},{0x1C7F523,0x30},{0x0E8F431,0x15}, + {0x0E8F501,0x15},{0x078F101,00},{0x0E6F405,0x69},{0x0D6F200,0x14},{0x0E6E201,00},{0x20434A0,0x0B},{0x1156561,0x92},{0x0073521,0x01},{0x012D121,0x1A},{0x016C1A1,0x93},{0x0044F21,00},{0x0049100,0x0F},{0x2045240,00},{0x0276171,0x80},{0x118543A,0x1E},{0x5177472,00},{0x04A6121,0x9F},{0x0067F61,00},{0x0277221,0x16},{0x0067F21,0x05},{0x0866131,0x1A},{0x0D6C261,00},{0x0866131,0x16},{0x0678221,0x1A},{0x0179222,00}, + {0x0678221,0x15},{0x0179222,0x0A},{0x00AD961,0x28},{0x006A861,0x1E},{0x0069A21,0x25},{0x00ACF24,00},{0x01CB632,0x92},{0x01B66E1,0x82},{0x00457F2,0xA8},{0x0375761,00},{0x2545C73,00},{0x0776821,0x0D},{0x00FFF61,0x1C},{0x00FFF22,00},{0x00FFF21,0x1C},{0x009CF62,00},{0x0559622,0x46},{0x0187421,0x80},{0x09041F1,0xCB},{0x00322B1,0x07},{0x0F34212,0x86},{0x1D38201,0x40},{0x04442E1,0x0D},{0x2164460,0xAB},{0x00450E1,0x01}, + {0x1623524,0x20},{0x1023171,0x05},{0x155F261,0x4D},{0x2343161,0x9D},{0x0137D16,0x08},{0x1127533,0x58},{0x4F4F211,0x03},{0x3F0F014,0x40},{0x6F7F611,0x43},{0x033F201,0xD1},{0x373F402,0x8A},{0x6A7F907,0x1A},{0x229A904,00},{0x055C902,0x1A},{0x024A601,0x05},{0x1397931,0x80},{0x2099B22,00},{0x2137931,0x42},{0x1079B22,0xC2},{0x119FFA1,0x0C},{0x0089024,0x11},{0x004F007,0x51},{0x004F081,0x13},{0x016F801,00},{0x001FF17,0x1C}, + {0x0057A12,0x0B},{0x4046306,0xCA},{0x005A902,0x08},{0x0045413,0x51},{0x005A601,0x08},{0x09FF831,0x8B},{0x004FF10,0x05},{0x5C8FB00,00},{0x0B7E601,00},{0x2F0F00F,00},{0x0F8F800,0x40},{0x20F2F01,0x0D},{0x0534313,0x20},{0x7574A1F,0x03},{0x003FF15,0x09},{0x0934511,0x1F},{0x200C327,0x80},{0x6021300,0x12},{0x200C32B,0x80},{0x060F209,0x4F},{0x072F214,0x19},{0x11311E2,0xC5},{0x000FFEE,00},{0x30318EE,00},{0x059F802,0x11}, + {0x01CF600,00},{0x2159506,00},{0x65AB701,0x04},{0x10F5F81,00},{0x0164611,0x0A},{0x00F5F01,00},{0x20F5F00,00},{0x0D6D725,0x1F},{0x3A9A909,00},{0x0F0A00F,0x80},{0x0F8F80F,0x8C},{0x2FDFD00,00},{0x6FAFA00,00},{0x4F1F103,00},{0x6FAFA07,00},{0x0F0F007,0x27},{0x2F6F60F,00},{0x0F7B710,0x42},{0x6EF8801,0x0D},{0x608B502,00},{0x0F1F10F,00},{0x007840F,0x08},{0x6EF8800,0x13},{0x608F502,00},{0x0F1D101,00}, + {0x0078400,00},{0x254F307,0x04},{0x307F905,0x08},{0x207F905,0x08},{0x254D307,0x04},{0x3288905,0x03},{0x2F2E327,0x04},{0x3F5C525,0x08},{0x2F2F326,0x04},{0x2F5C525,0x08},{0x292F108,00},{0x354F201,0x08},{0x283E108,00},{0x334D700,0x08},{0x283E109,00},{0x334D500,0x08},{0x2E1F119,0x04},{0x3F3F11B,0x08},{0x251F206,0x04},{0x263C504,0x09},{0x241F287,0x05},{0x353B502,0x09},{0x354F201,0x03},{0x456FB02,0x81},{0x556FA01,00}, + {0x117F701,0x0D},{0x556FB02,0x81},{0x000F020,0x0A},{0x40A8A00,00},{0x70F5F20,00},{0x70F4F00,00},{0x0D1F815,0x44},{0x2D1F213,0x9D},{0x098F614,00},{0x098F614,0x21},{0x0985900,0x07},{0x039870F,00},{0x2F3F307,0x1D},{0x09C9B0F,00},{0x09C4B00,0x21},{0x43A6705,00},{0x0F7F907,0x1C},{0x2987805,00},{0x0F7F21F,0x40},{0x0FAF31F,0x40},{0x227A305,0x87},{0x36A560A,0x08},{0x247C345,0x87},{0x3697809,0x08},{0x037A309,0x11}, + {0x06DF904,00},{0x0F5F111,0x0A},{0x019F603,0x30},{0x0F4F212,0x10},{0x10F94B0,0x86},{0x10F94B0,0x80},{0x1F69182,0xC0},{0x1F69180,0x86},{0x00B5231,0x1B},{0x021FE13,0x96},{0x094F231,0x80},{0x153F201,0x4D},{0x174F511,00},{0x0199421,0x01},{0x0099428,0x09},{0x0099428,0x13},{0x06FFA24,0x8A},{0x0F891C2,0x03},{0x0CFF121,0x1A},{0x048F621,00},{0x022B701,0x1D},{0x037C422,00},{0x068F122,00},{0x034F131,0x09},{0x019D531,0x8A}, + {0x01B6172,00},{0x255A511,0x96},{0x1B3F511,0x80},{0x0058001,0x9C},{0x006F011,0x80},{0x243A5C0,0x0D},{0x123D400,00},{0x1E3C221,0x58},{0x3166120,00},{0x12CB322,00},{0x0AE7121,0x1D},{0x01B92F1,00},{0x09E81E2,0x03},{0x0537121,0x4F},{0x04C5232,00},{0x05E5231,00},{0x0219B32,0xC0},{0x0077221,00},{0x08F6EE1,0xEC},{0x02A6562,00},{0x0C70CF5,0x9A},{0x0A560F2,0x80},{0x00FFF21,0x08},{0x00E7121,0x1D},{0x00E8121,00}, + {0x0FFF100,0x0D},{0x0EF1100,0x10},{0x00FB031,0x80},{0x0238161,0x10},{0x200F601,00},{0x3061FDD,00},{0x00BF50F,00},{0x07CFA01,00},{0x004F200,00},{0x000F601,0x0C},{0x3029FDD,00},{0x213CB12,00},{0x342F80E,0x06},{0x0D6F609,00},{0x000F600,0x09},{0x24393DF,00},{0x0BFFA02,00},{0x097C804,00},{0x0164F11,00},{0x332F985,0x05},{0x0A5D684,0x40},{0x2FF220C,00},{0x223A133,0xD6},{0x4F4F131,0x09},{0x023B131,0xD3}, + {0x0F4F131,0x0A},{0x433F133,0xD6},{0x0F4F131,0x09},{0x2F3F132,0xD3},{0x4F6F131,0x0A},{0x2A4A112,0xD2},{0x4B5F211,0x05},{0x4A49112,0xCF},{0x2B5D110,0x05},{0x073FA31,0x8E},{0x4F4D111,0x08},{0x473FA32,0x8C},{0x4F4D111,0x09},{0x2E7F21A,0x6F},{0x0B8F201,0x48},{0x2C7F436,0x9D},{0x0D7F231,0x0A},{0x0C7F021,0x1E},{0x0F8F111,0x0F},{0x523F134,0x51},{0x4F5D111,0x0D},{0x203FC32,0x4B},{0x1F7D111,0x0D},{0x559F101,0x44},{0x0F7F111,0x08}, + {0x4F7F111,0x0D},{0x087F607,0x54},{0x0E4F231,0x08},{0x587F617,0x54},{0x0A5F33F,0xA1},{0x0F2C312,0x06},{0x0A5F43F,0xD5},{0x0F2F392,0x07},{0x462A417,0x9C},{0x0027A11,0x08},{0x062A416,0x99},{0x0028811,0x07},{0x0F6F2B2,0xE8},{0x0F6F281,0x05},{0x0F6F2A4,0x45},{0x007F08F,0x05},{0x0F6F618,0x63},{0x0F7E500,0x80},{0x5A6F40E,0x5B},{0x007D804,0x80},{0x2F6F71A,0x1F},{0x0F5F413,0x03},{0x1F7F715,00},{0x082F307,0x97},{0x0E3F302,0x8A}, + {0x082D307,0x97},{0x4109131,0x52},{0x3B5F322,0x88},{0x118B1A4,0x88},{0x11BD161,0x80},{0x108B1A3,0x88},{0x11BD161,0x88},{0x0F8F032,0x65},{0x0F8F001,0x07},{0x0F8F024,0x43},{0x008F009,0x07},{0x0088AB1,0x10},{0x118AA71,0x4B},{0x0088AB2,0x10},{0x1043031,0x92},{0x1145432,0x80},{0x1045033,0x92},{0x1145430,0x80},{0x1178001,0x5D},{0x1176082,0x83},{0x4178000,0x54},{0x1176081,0x83},{0x025A721,0x4D},{0x1264132,0x08},{0x1258621,0x4F}, + {0x1264633,0x08},{0x4FAF022,0x96},{0x01A6221,0x08},{0x105FF2C,0x9D},{0x01A6222,0x12},{0x107F021,0x92},{0x2055232,0x07},{0x574A613,0x9D},{0x4B8F401,0x0D},{0x2249134,0x61},{0x2B8D301,0x05},{0x5E5F133,0x99},{0x1E4F211,0x07},{0x1E5F133,0x9E},{0x5E4F211,0x0B},{0x21FF021,0xA5},{0x088F211,0x80},{0x11FF023,0x5E},{0x132ED11,0x87},{0x3E7D211,0x0A},{0x332ED12,0x80},{0x1E7D211,0x45},{0x0F4E431,0x97},{0x0F5F331,0x86},{0x3F0F701,00}, + {0x1F8F900,0x0D},{0x0F77111,0x48},{0x3F7F011,0x87},{0x0F78140,0x86},{0x3F7F040,00},{0x0F78140,0x07},{0x3F7F040,0x40},{0x0F78100,0x86},{0x3F7F000,0x03},{0x6F78AE8,0x03},{0x649B1F4,0x0A},{0x6F78AE8,0x43},{0x649B1F4,0x4B},{0x0609533,0x63},{0x4E5C131,0x05},{0x0608521,0xD4},{0x0E4A131,0x05},{0x0F9F030,0x9D},{0x0F8F131,0x05},{0x7F0F017,00},{0x7F9B700,0x0F},{0x026AA21,0xCF},{0x0D7F132,0x84},{0x5F9F40B,0x4B},{0x445F711,0x4D}, + {0x010D331,0x9A},{0x0B68112,0x40},{0x0404121,0x9B},{0x0B56113,0x4C},{0x2E69419,0x5E},{0x5B6B311,0x08},{0x0F79321,0x0D},{0x2E69515,0x17},{0x1B6B211,0x08},{0x06AC332,0x0D},{0x0F5F430,0x0E},{0x139A331,0x93},{0x0F8F133,0x08},{0x2257020,0x95},{0x4266161,0x05},{0x1257021,0x99},{0x0266141,0x07},{0x2426070,0x4F},{0x2154130,00},{0x214D070,0x0F},{0x1175222,0x88},{0x524D071,0x13},{0x5075222,0x88},{0x521F571,0x90},{0x4166022,0x09}, + {0x52151F0,0x97},{0x4156021,0x0D},{0x223F8F2,0x99},{0x4055421,0x8A},{0x4A35211,0x9C},{0x0E4C411,0x08},{0x2C79613,0xD7},{0x4E45411,0x08},{0x023E133,0xA2},{0x0F2F131,0x09},{0x023F132,0x24},{0x0F2F131,0x0A},{0x4C3C404,0x21},{0x4B4B519,0x05},{0x17A9913,0x0F},{0x0B4F213,00},{0x223F832,0x99},{0x4056421,0x8A},{0x433CB32,0x9B},{0x5057561,0x8A},{0x1029033,0x5B},{0x4044561,0x85},{0x4109033,0xA8},{0x2044520,0x85},{0x2034170,0x0B}, + {0x0043671,0x20},{0x1024171,0x0C},{0x0043671,0x17},{0x005A061,0x69},{0x0F55022,0x06},{0x0008060,0x33},{0x0F55021,0x08},{0x239B420,0x50},{0x0076121,0x05},{0x139B462,0x91},{0x00D7161,0x14},{0x05470F1,0x69},{0x07440B1,0x80},{0x054A0F1,0x5E},{0x07430B1,0x80},{0x2436110,0xCD},{0x714D211,00},{0x5436192,0xCB},{0x745F312,00},{0x0147421,0x94},{0x0077521,0x04},{0x0178461,0x10},{0x008AF28,0xA6},{0x0198161,0x08},{0x0235361,0x1D}, + {0x0196161,0x03},{0x0155331,0x94},{0x0365121,0x1E},{0x0257221,0x08},{0x2844521,0x23},{0x20592A0,0x03},{0x0578321,0x19},{0x117C021,0x03},{0x2E77530,0x10},{0x307F520,0x08},{0x036F121,0x95},{0x337F121,0x08},{0x0368121,0x95},{0x037F121,0x08},{0x0A66121,0x9B},{0x0976121,0x08},{0x5237731,0x4B},{0x1F65012,00},{0x0137732,0xC7},{0x0F65011,0x0A},{0x1067021,0x46},{0x1165231,00},{0x00B9820,0x8E},{0x10B5330,00},{0x10B8020,0x87}, + {0x11B6330,00},{0x1235031,0xC0},{0x0077C24,0x08},{0x045D933,0xD0},{0x4076C35,0x26},{0x6077831,0x1E},{0x2076331,00},{0x0199031,0x95},{0x01B6134,0x80},{0x0177532,0x93},{0x0174531,0x03},{0x0277530,0x14},{0x0174536,0x9C},{0x08B8EF1,0xC0},{0x0285571,00},{0x08860A1,0x5C},{0x2176522,0x5A},{0x0277421,00},{0x1267532,0x8D},{0x0166531,0x05},{0x2F0F011,0x03},{0x0987801,0x17},{0x5543737,0x28},{0x25D67A1,00},{0x6243371,0x20}, + {0x46D6331,00},{0x00F31D1,0xC7},{0x0053271,00},{0x00581A2,0x37},{0x0295231,00},{0x20FFF22,0x7F},{0x60FFF21,0x12},{0x30FFF22,0xBF},{0x39BC120,0xBF},{0x368C030,0x06},{0x3AB8120,0x9E},{0x308F130,0x06},{0x13357F1,0x21},{0x00767E1,00},{0x43357F2,0x28},{0x2444830,0x22},{0x21D67A1,00},{0x534B821,0x1F},{0x02D87A1,00},{0x32B7420,0x46},{0x12BF134,00},{0x5029072,0x96},{0x0069061,0x0C},{0x1019031,0x1A},{0x245C224,0x81}, + {0x2550133,0x80},{0x2459224,0x81},{0x2556133,0x80},{0x132ED10,0x87},{0x3E7D010,0x0D},{0x132ED30,0x87},{0x3E7D010,0x12},{0x073513A,0xA4},{0x013C121,0x0A},{0x273F325,0x20},{0x0228231,0x0A},{0x0031131,0xD4},{0x0054361,0x08},{0x20311B0,0xD9},{0x00543E1,0x08},{0x245A121,0x98},{0x126A121,0x05},{0x255A421,0x98},{0x50470E1,0x59},{0x1148161,0x03},{0x10460E2,0x5F},{0x4148161,0x83},{0x0336186,0xA7},{0x05452E1,00},{0x13351A6,0xA7}, + {0x2529084,0x9D},{0x1534341,0x80},{0x2529082,0x9D},{0x0534341,0x80},{0x2345231,0x98},{0x2135120,00},{0x410F422,0x20},{0x1233231,00},{0x1522162,0x99},{0x1633021,0x80},{0x1522161,0x99},{0x157B261,0x04},{0x019F806,0x40},{0x0145114,0x40},{0x2322122,0x8C},{0x0133221,0x92},{0x4033121,0x93},{0x0132122,0x48},{0x074F624,0xC0},{0x0249303,0x0D},{0x3D2C092,0x8E},{0x1D2D131,0x09},{0x0D2D091,0x8E},{0x1D23132,0x09},{0x5F29054,0x99}, + {0x0F2C241,0x06},{0x1F19011,0x1A},{0x05233E1,0x1A},{0x0131371,0x88},{0x5522363,0x1A},{0x0131331,0x8D},{0x0B67061,0x9C},{0x0928032,0x11},{0x0057F21,0x9C},{0x0038F62,0x11},{0x0625331,0x94},{0x1648221,0x06},{0x2645321,0x15},{0x2445521,0x0D},{0x0B37121,0x16},{0x5F48221,0x08},{0x2B37102,0x90},{0x5E2F321,0x1B},{0x6E4F523,0x08},{0x455F71C,0xA3},{0x0D68501,0x08},{0x0D6E501,0x08},{0x302A130,0x1E},{0x0266221,00},{0x0136031,0x12}, + {0x1169131,0x80},{0x032A115,00},{0x001E79A,0x81},{0x067961C,00},{0x4D1F214,0xA0},{0x098F715,00},{0x008F312,0x08},{0x004F600,0xC8},{0x27CFA01,0x08},{0x004F200,0x08},{0x518F890,00},{0x0E7F310,00},{0x250F610,00},{0x0E7F510,0xC8},{0x2114109,0x05},{0x51D2101,0x80},{0x2114108,0x05},{0x31D2101,0x80},{0x00437D2,0xA1},{0x0343471,0x07},{0x0F66700,0xCD},{0x003EBD7,0xD4},{0x06845D8,00},{0x62FDA20,0x42},{0x614B009,0x48}, + {0x62FDA20,0x82},{0x101FE30,00},{0x6142120,00},{0x6019460,0x26},{0x1142120,00},{0x200832F,0x80},{0x6044020,00},{0x2305431,00},{0x6E7F600,00},{0x023A121,0xA5},{0x0F4F33C,0x61},{0x023B113,0x24},{0x0F5F131,0x0A},{0x002D3C4,0xA3},{0x004F50B,0x4A},{0x013F5C4,0xA7},{0x004F60F,0x07},{0x4B8F401,0x05},{0x2249132,0x5C},{0x1B8D301,0x05},{0x574A412,0xDD},{0x2B8F400,0x05},{0x2249334,0x64},{0x0A78923,0x08},{0x0E5C162,0x1B}, + {0x0F6E041,0x17},{0x0F7F001,0x08},{0x106A021,0x8A},{0x1064021,0x8A},{0x3FBF000,0x9E},{0x0FBF001,0x08},{0x2A4A111,0xDD},{0x1A49113,0x5E},{0x018B1A4,0x88},{0x01BD161,0x80},{0x008B1A3,0x88},{0x01BD161,0x88},{0x4B8F501,0x0D},{0x2649334,0x5E},{0x2B8D501,0x05},{0x0E5C122,0x1B},{0x3F6E001,0x17},{0x6F7F001,0x01},{0x0054361,0x88},{0x00543E1,0x88},{0x5522123,0x99},{0x1522121,0x99},{0x0209220,0x97},{0x0E6C130,0x05},{0x0E6A130,0x05}, + {0x5316130,0x90},{0x4157021,0x0D},{0x223D832,0x99},{0x4057421,0x8A},{0x0364121,0x21},{0x02B7221,0x08},{0x026F021,0x26},{0x0056121,0x03},{0x0886021,0x5C},{0x01A6561,0x05},{0x3A8A760,0x4B},{0x21A6520,0x05},{0x214B070,0x0F},{0x1177222,0x88},{0x524B071,0x13},{0x5077222,0x88},{0x4059421,0x8A},{0x433BB32,0x9B},{0x5156571,0x8A},{0x223F832,0x94},{0x431CB32,0x93},{0x01A3521,0x0C},{0x518AA70,0x44},{0x518AA71,0x4B},{0x0F0A00F,00}, + {0x0F8F80F,0x0C},{0x559FA00,00},{0x047F800,00},{0x3F1F102,00},{0x0078400,0x26},{0x048FA00,00},{0x008F900,00},{0x287F702,0x80},{0x678F802,0x88},{0x2F7F602,00},{0x0F8F802,0x88},{0x008F700,00},{0x007F609,00},{0x0F1F105,00},{0x0078407,0x08},{0x05476C1,0x80},{0x30892C5,0x08},{0x05477C1,00},{0x007C604,0x08},{0x201F302,0x03},{0x057AB09,0x07},{0x058F30B,0x04},{0x308F90D,0x08},{0x255F308,0x04},{0x308F909,0x08}, + {0x006C604,0x08},{0x201F312,0x03},{0x0015500,0x0C},{0x007C716,00},{0x201F312,00},{0x007C718,00},{0x001F312,0x03},{0x047BB05,0x07},{0x007C71B,00},{0x047BB09,0x07},{0x291F108,00},{0x333F401,00},{0x333F501,00},{0x007C71F,00},{0x300F50C,0x07},{0x605FE05,0x8A},{0x310F508,0x86},{0x604FE05,0x8A},{0x2E1F11E,0x04},{0x3F3F318,00},{0x2777603,0x87},{0x3679601,0x08},{0x277C643,0x87},{0x366F905,00},{0x099F701,00}, + {0x334F401,00},{0x431A000,0x81},{0x085B41A,0x05},{0x459F640,00},{0x185B418,0x20},{0x605FE04,0x8A},{0x2A8F9E3,0x1E},{0x0779643,0x08},{0x0A5F7E8,0xDE},{0x0D89949,00},{0x0779643,00},{0x0A5F7E9,0xDE},{0x0D8994A,0x08},{0x0A8F7E9,0x08},{0x5D8990A,00},{0x0A5F7E9,0x29},{0x2A8F9E2,0x1E},{0x0779642,00},{0x0A5F7E9,0x08},{0x5D8994A,00},{0x367FE06,0x09},{0x668F701,0x08},{0x367FD10,00},{0x098F901,0x0D},{0x367FE05,0x09}, + {0x678F701,0x08},{0x078F901,0x0D},{0x098600F,0x08},{0x3FC8590,0xC0},{0x009F020,0x25},{0x27DA788,00},{0x00FC020,0x25},{0x22DA388,00},{0x160F2C6,0x4F},{0x160F286,0x4F},{0x4755406,0x87},{0x3667601,0x08},{0x275A346,0x87},{0x6E4840B,0x12},{0x6E4B409,0x09},{0x6E4440B,0x21},{0x6E46407,0x13},{0x6F9A902,00},{0x2F7C801,0x40},{0x4F9F901,0x1F},{0x4F7C713,0x48},{0x4B7C720,0x0B},{0x1F3F300,00},{0x0F1F600,00},{0x0078400,0x12}, + {0x0F1F802,00},{0x0058400,0x09},{0x7F0F312,0x80},{0x0F5F501,00},{0x100F010,0x0C},{0x6059110,00},{0x005C604,0x08},{0x005C604,00},{0x509F902,0x03},{0x057AB07,0x07},{0x509F912,0x03},{0x210F509,0x8A},{0x400F509,0x07},{0x212FD08,0x01},{0x305FD03,0x03},{0x0EFA901,0x0D},{0x009F902,00},{0x007E50F,0x08},{0x154F300,0x04},{0x008F80E,0x08},{0x054F100,0x04},{0x208F805,0x08},{0x051F00C,0x0C},{0x016FF28,0x12},{0x041F00C,00}, + {0x037D527,0x0C},{0x3F0F000,0xD2},{0x3F0F000,0xCD},{0x01BF4E0,0x8D},{0x018F3E0,0x23},{0x00FFFE4,0x8A},{0x00FFFE1,0xA9},{0x031FF10,0x07},{0x004FF01,0x25},{0x07CE401,0x22},{0x00361F0,0x86},{0x02CE371,0x1F},{0x00361B0,0x86},{0x02CE3F3,0x1F},{0x00331F2,0x4B},{0x02C53F4,0x21},{0x08FAEE2,0x11},{0x02A8561,0x23},{0x019D530,0x15},{0x01B6171,0x9B},{0x03B9261,0x99},{0x01B9261,0x9D},{0x04C6321,0x18},{0x00FC521,0xA0},{0x072F212,0x21}, + {0x053F401,0x40},{0x053F308,0x64},{0x07FF511,0x1F},{0x04CA700,00},{0x04FC600,0x22},{0x0F5F062,00},{0x0F8F60E,0x1F},{0x005FC4E,00},{0x0F8F90C,0x24},{0x005756E,00},{0x0F8F601,0x22},{0x011F131,0x90},{0x043D418,0xA5},{0x08FAEE0,0xE8},{0x00A8561,0x21},{0x02990F2,0x16},{0x02C61F2,0x22},{0x02BF4E0,0x8D},{0x048F3E0,0x1F},{0x023F331,0x45},{0x09C4333,0x25},{0x04FC600,0x2B},{0x002010C,00},{0x076D201,00},{0x054F113,0x53}, + {0x086D251,00},{0x0FFC1A1,00},{0x013FF34,0x92},{0x0F7F423,00},{0x074C216,0x80},{0x0337212,0x80},{0x011FA16,0x4D},{0x0F1F1E1,00},{0x011FAD6,0x4D},{0x0F5F561,00},{0x015DA45,0x4E},{0x0F6F361,0x80},{0x0B5F6C2,00},{0x004FE11,0x11},{0x0BDF211,00},{0x0FFC021,00},{0x0FFC0A1,00},{0x00EC0E1,00},{0x0877061,00},{0x0065231,00},{0x0FD5524,0x54},{0x02D5031,00},{0x055F101,0x4D},{0x074F111,0x02},{0x056F101,0x90}, + {0x076F111,0x04},{0x0C8F253,0x16},{0x0C5F211,0x40},{0x0C8F253,0x20},{0x0C5F211,00},{0x0FFF111,0x43},{0x3FFF054,00},{0x0F0F0CA,0x4E},{0x06859EC,00},{0x02CC321,0x80},{0x08AC421,0x80},{0x07AB400,0x1D},{0x07CC301,00},{0x09E8021,00},{0x0035171,0x20},{0x0035171,0x1E},{0x0175423,00},{0x0F3F201,0x80},{0x053F300,0x7F},{0x01432F1,0x18},{0x016F1E1,00},{0x01631E1,00},{0x014F1E1,00},{0x0154011,0x92},{0x03831F1,00}, + {0x0948411,0x03},{0x0F4F4E4,0x40},{0x017A021,00},{0x036A061,00},{0x0565361,0x19},{0x016A021,00},{0x0675421,00},{0x096A121,00},{0x0576361,0x1C},{0x00B6321,00},{0x00E6321,00},{0x00E6B22,00},{0x00E7170,0x16},{0x00E7823,0x07},{0x0178731,0x45},{0x00E8B22,00},{0x0396061,0x80},{0x02A60E2,0x80},{0x02498A2,0x1D},{0x04FD6A1,0x13},{0x1063F53,0x85},{0x0075F00,00},{0x0A560F6,0x80},{0x00E70E1,00},{0x30FF221,0x1D}, + {0x018F221,00},{0x0FFF041,0x11},{0x0FFF001,00},{0x030F4A4,0x12},{0x0BDF101,0xCE},{0x39FF102,0x80},{0x0FFF141,0x0E},{0x0FFF001,0x09},{0x025F061,00},{0x0132261,00},{0x049F430,0x90},{0x033F430,00},{0x021FF31,0x8E},{0x0159461,0x01},{0x06459CC,00},{0x0152011,0x43},{0x0F831F1,00},{0x0152011,0x92},{0x010FF34,0x91},{0x004FF03,00},{0x0311331,0x80},{0x031D1B0,00},{0x033F321,0x80},{0x003F171,0x0B},{0x0153261,00}, + {0x0F3F0E4,0x40},{0x04240D7,0x80},{0x0457D16,0x80},{0x0F8F001,00},{0x0EE7130,0x16},{0x01E8823,00},{0x054F022,00},{0x015F101,00},{0x0F33900,0x3F},{0x01550E2,0x80},{0x053D10F,0x40},{0x0562200,0x0B},{0x0FA5D0C,0x0B},{0x04240D7,0x89},{0x053D100,0x40},{0x0566200,0x0B},{0x046F600,00},{0x1FFF005,00},{0x0B9F800,00},{0x0FBFA00,00},{0x0EAFA00,00},{0x0FFF005,00},{0x0FFF600,0x06},{0x0C0F006,0x0E},{0x034C6CF,00}, + {0x360F207,0x0A},{0x352F212,0x0C},{0x352F212,0x0B},{0x0F0F406,00},{0x0F78700,0x0D},{0x0F5F500,0x09},{0x0590900,0x7F},{0x097F700,00},{0x052F301,0x40},{0x194F700,00},{0x0530907,0x7F},{0x096F605,00},{0x070F005,00},{0x0E57A00,0x10},{0x0E59A00,0x10},{0x0E55A00,0x10},{0x07BF502,0x80},{0x07BF402,0x80},{0x0064F80,00},{0x005FF04,00},{0x084E90A,00},{0x3A85036,00},{0x073D211,00},{0x104AC00,0x0F},{0x0F5F018,00}, + {0x006FF10,00},{0x29EF520,0x90},{0x35BF411,00},{0x0FA9000,0x02},{0x0FAB011,00},{0x21DFBA2,0xC0},{0x058F201,00},{0x00F9039,00},{0x3A850F5,00},{0x08FF022,0x0C},{0x0DFF520,00},{0x08FF022,00},{0x08FF320,00},{0x0DFF620,00},{0x3FFF003,0x02},{0x2FFF011,0x80},{0x00FFFBE,00},{0x00F3FAE,00},{0x005FF00,0xC0},{0x305FF00,00},{0x305AF20,00},{0x0052F00,00},{0x305FF20,00},{0x212FEF0,0x04},{0x314F9A5,0xC0}, + {0x00F4F00,00},{0x00FFF20,0x80},{0x08AF002,0x09},{0x0DAF500,00},{0x0534100,0x3F},{0x03CF814,00},{0x003FF10,00},{0x32FF310,00},{0x3FFF09E,0x07},{0x00F3F01,00},{0x24FA710,00},{0x0DA9C04,0x87},{0x00FFF00,0x3F},{0x05A4900,0x48},{0x0DA8C00,00},{0x0F5F0BE,0x39},{0x1043F20,00},{0x0F5F0BE,0x3F},{0x004FF20,00},{0x30DF9B0,0xFF},{0x0043AA0,00},{0x044FF00,00},{0x008FF90,00},{0x044FC00,00},{0x008A190,00}, + {0x307FF00,00},{0x004FF00,00},{0x30A4F00,00},{0x101FFC0,0x7D},{0x2065F5A,00},{0x004AC48,00},{0x33441C0,00},{0x05FF93E,00},{0x04FF030,0x80},{0x0BFF510,0x80},{0x057F9EE,00},{0x0A5F1E0,0x80},{0x05FF9EE,00},{0x0FFF6E0,0x80},{0x204FF20,0x5A},{0x004FF20,0x80},{0x272FEF0,0x04},{0x016F9E1,0xC0},{0x0F590A0,0x25},{0x0F7F0A0,00},{0x301FFA0,0x54},{0x20FFF20,0x80},{0x0017B00,00},{0x3066B00,00},{0x0014B00,00}, + {0x3064B00,00},{0x0025B00,00},{0x30B5B00,00},{0x2F6F690,00},{0x006DC11,00},{0x207FA40,00},{0x044F9C0,00},{0x0F0F900,0x3F},{0x028E412,00},{0x0FFF090,0x0C},{0x20F4F00,00},{0x20F4F00,0x0A},{0x004AC60,0x0F},{0x2F5F030,0x0F},{0x01BFC10,0x0F},{0x007FF14,00},{0x00F6300,00},{0x026E412,00},{0x02FE412,00},{0x097B530,0x40},{0x0A77300,00},{0x00DF913,0xDA},{0x007F6C2,0x80},{0x0EF7602,0x47},{0x05F7603,00}, + {0x0EF7602,0x45},{0x05F7603,0x02},{0x061F237,0x47},{0x065F431,0x47},{0x055F615,0x08},{0x156E500,0x0F},{0x0F5F012,00},{0x005DF20,0x04},{0x005DF20,00},{0x07FF510,00},{0x00F6F00,00},{0x0086F10,00},{0x0FFF09E,0x0C},{0x20F4F9E,00},{0x0F9F09E,0x0C},{0x206FF9E,00},{0x1E0620E,0xC2},{0x0324B14,0x40},{0x00A4F00,00},{0x00549C8,0x07},{0x03540C6,00},{0x00349D8,0x07},{0x03240D6,00},{0x01383D4,0x06},{0x02293D6,0x07}, + {0x11383D4,0x06},{0x12293D6,0x07},{0x11382D4,0x06},{0x12291D6,0x07},{0x115F2C4,0x46},{0x024F3C6,0x07},{0x006DC10,00},{0x101FF00,00},{0x2D45900,0x87},{0x056E502,0x50},{0x074F210,00},{0x072B400,0x1D},{0x073C301,00},{0x072B480,0x1D},{0x173C382,00},{0x172B480,0x16},{0x177C3D2,00},{0x1757480,0x96},{0x177C6D1,00},{0x053F100,0x60},{0x006FC10,00},{0x053F101,0xEC},{0x04CD390,00},{0x004FF00,0x07},{0x10A4F00,00}, + {0x2534101,0x4F},{0x03AF811,00},{0x01EF90E,00},{0x01EF70E,00},{0x2BDA0A2,0xC0},{0x01FF70E,00},{0x1F3FF32,00},{0x01393F1,00},{0x3F3E921,0x15},{0x204D620,00},{0x004D620,00},{0x0DC5C09,00},{0x0FFF09E,0x3F},{0x1067F00,00},{0x0014131,0x15},{0x03B93A1,0x83},{0x0F9F131,0x95},{0x0E6F731,0x80},{0x263D8F2,00},{0x011C3D1,00},{0x384FEF2,00},{0x012C3D1,00},{0x382FAF2,00},{0x002E1F1,00},{0x00549C4,0x07}, + {0x055E5C6,00},{0x00381A1,0x0C},{0x00461B1,0x80},{0x032FA06,00},{0x04FF3D0,00},{0x062F101,0x4D},{0x076D311,00},{0x005FF00,0x80},{0x30FFFC0,00},{0x01FF6C0,00},{0x0046191,0x80},{0x205CF10,0x07},{0x207E220,00},{0x211300E,00},{0x2032F0E,00},{0x1115132,0x9A},{0x037A2E3,0x80},{0x205FFA2,0x57},{0x005FF21,0x80},{0x0115230,0xC5},{0x02E3131,0x80},{0x105FF00,0x0E},{0x205AF20,00},{0x105FF00,0x82},{0x207DF20,00}, + {0x10AFF20,00},{0x00DFF40,0x80},{0x20F8FC0,0xC0},{0x2085F5E,0x80},{0x005FC08,0x07},{0x039C006,00},{0x105E2C0,0x05},{0x086B241,00},{0x2945251,0x40},{0x0C6B252,00},{0x054F101,0x4F},{0x075F211,00},{0x254F101,0x4F},{0x175F211,00},{0x3AFBFC0,00},{0x01FE7C0,00},{0x30FF6C0,00},{0x01FE6C0,00},{0x30DE01A,00},{0x009F002,00},{0x004AC00,0x13},{0x1E4F504,00},{0x306FF00,00},{0x0F2E026,0x03},{0x034FF3E,00}, + {0x10FF510,0x1C},{0x0DFF800,00},{0x026DA05,0x4E},{0x016F901,00},{0x013F941,0x80},{0x28EF0E2,00},{0x03EF700,00},{0x286F002,00},{0x037F700,00},{0x1146E31,0xC5},{0x1068BE4,0x05},{0x0126CF1,0xC0},{0x01556E5,0x05},{0x0EFF200,0x16},{0x077F501,00},{0x10532C1,0x05},{0x086B2C1,00},{0x104C1B1,0x8C},{0x0049D96,0x80},{0x0856321,0x19},{0x0258521,0x80},{0x075D211,00},{0x0B3F101,0x40},{0x0155321,0x1C},{0x03552A1,0x80}, + {0x10381B2,0x8C},{0x02663B5,0x80},{0x12263A2,0x9D},{0x051C5A1,0x80},{0x30FFFD0,00},{0x03FF5D0,00},{0x0EFF201,0x16},{0x212DCC0,0x28},{0x066B4E1,00},{0x007FF04,0x60},{0x007FF06,0x60},{0x2126CF1,0xC0},{0x0AFFF00,0x3F},{0x00AFC02,00},{0x008FC02,00},{0x042F200,0x80},{0x006F200,0x40},{0x00F8F00,0x0F},{0x0F0F016,00},{0x0B4F610,00},{0x053F101,0x60},{0x367F6C2,0x04},{0x03FD8F9,0x07},{0x03FE9F9,0x03},{0x156E507,0x0F}, + {0x35FC600,0x1C},{0x04E4C15,00},{0x086F002,00},{0x3F0F50E,0x87},{0x3DC5C00,00},{0x0DA950E,00},{0x0F0E028,0x03},{0x015E813,00},{0x29EF002,00},{0x200FF34,00},{0x364F6C0,0x84},{0x200FF84,00},{0x365F6C2,00},{0x232FA06,00},{0x332FA06,00},{0x05FF610,00},{0x220F203,00},{0x03696C3,00},{0x231F013,00},{0x016F4D0,00},{0x231F003,00},{0x243F2E0,00},{0x055F502,0x08},{0x207FA50,00},{0x04FF5D0,00}, + {0x0F9FD0C,0x8E},{0x0F9FA07,0x20},{0x0F9F807,0x20},{0x0FAF601,00},{0x042F00F,00},{0x0A41100,00},{0x050300F,0x3F},{0x0C13002,0x3F},{0x04667A3,0x13},{0x0668726,0x52},{0x0568722,0x52},{0x00655A1,00},{0x0567522,0x1F},{0x09A7262,0x0F},{0x0507002,0x26},{0x0C67002,0x02},{0x0E54150,0xA9},{0x0E8F651,0x63},{0x0E8D150,0x9B},{0x0078F22,0x08},{0x0E3A111,0x03},{0x003C821,0x21},{0x042D520,0x17},{0x033C520,0x14},{0x005C520,00}, + {0x011F610,0x06},{0x0F5F121,00},{0x024F300,0x09},{0x0B5F300,0x0C},{0x0AFF505,0x2E},{0x03DFD20,0x13},{0x0B0F602,0x0F},{0x074F411,00},{0x005FF22,0x80},{0x0612800,0x33},{0x001FCA1,0x08},{0x00FF420,0x1B},{0x009F900,00}, +}; + diff --git a/thirdparty/adlmidi/oplinst.h b/thirdparty/adlmidi/oplinst.h new file mode 100644 index 0000000..a78c6f3 --- /dev/null +++ b/thirdparty/adlmidi/oplinst.h @@ -0,0 +1,121 @@ +/* + * libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation + * + * Original ADLMIDI code: Copyright (c) 2010-2014 Joel Yliluoma + * ADLMIDI Library API: Copyright (c) 2015-2020 Vitaly Novichkov + * + * Library is based on the ADLMIDI, a MIDI player for Linux and Windows with OPL3 emulation: + * http://iki.fi/bisqwit/source/adlmidi.html + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef OPLINST_H +#define OPLINST_H + +#include +#include +#include + +#pragma pack(push, 1) +#define OPLINST_BYTE_COMPARABLE(T) \ + inline bool operator==(const T &a, const T &b) \ + { return !memcmp(&a, &b, sizeof(T)); } \ + inline bool operator!=(const T &a, const T &b) \ + { return !operator==(a, b); } + +/** + * @brief OPL3 Operator data for single tumbre + */ +struct OplTimbre +{ + //! WaveForm, Sustain/Release, AttackDecay, and AM/VIB/EG/KSR/F-Mult settings + uint32_t modulator_E862, carrier_E862; + //! KSL/attenuation settings + uint8_t modulator_40, carrier_40; + //! Feedback/connection bits for the channel + uint8_t feedconn; + //! Semi-tone offset + int8_t noteOffset; +}; +OPLINST_BYTE_COMPARABLE(struct OplTimbre) + + +enum { OPLNoteOnMaxTime = 40000 }; + + +/** + * @brief Instrument data with operators included + */ +struct OplInstMeta +{ + enum + { + Flag_Pseudo4op = 0x01, + Flag_NoSound = 0x02, + Flag_Real4op = 0x04 + }; + + enum + { + Flag_RM_BassDrum = 0x08, + Flag_RM_Snare = 0x10, + Flag_RM_TomTom = 0x18, + Flag_RM_Cymbal = 0x20, + Flag_RM_HiHat = 0x28, + Mask_RhythmMode = 0x38 + }; + + //! Operator data + OplTimbre op[2]; + //! Fixed note for drum instruments + uint8_t drumTone; + //! Instrument flags + uint8_t flags; + //! Number of milliseconds it produces sound while key on + uint16_t soundKeyOnMs; + //! Number of milliseconds it produces sound while releasing after key off + uint16_t soundKeyOffMs; + //! MIDI velocity offset + int8_t midiVelocityOffset; + //! Second voice detune + double voice2_fine_tune; +}; +OPLINST_BYTE_COMPARABLE(struct OplInstMeta) + +#undef OPLINST_BYTE_COMPARABLE +#pragma pack(pop) + +/** + * @brief Bank global setup + */ +struct OplBankSetup +{ + int volumeModel; + bool deepTremolo; + bool deepVibrato; + bool scaleModulators; +}; + +/** + * @brief Convert external instrument to internal instrument + */ +void cvt_ADLI_to_FMIns(OplInstMeta &dst, const struct ADL_Instrument &src); + +/** + * @brief Convert internal instrument to external instrument + */ +void cvt_FMIns_to_ADLI(struct ADL_Instrument &dst, const OplInstMeta &src); + +#endif // OPLINST_H diff --git a/thirdparty/adlmidi/structures/pl_list.hpp b/thirdparty/adlmidi/structures/pl_list.hpp new file mode 100644 index 0000000..0cbd233 --- /dev/null +++ b/thirdparty/adlmidi/structures/pl_list.hpp @@ -0,0 +1,133 @@ +// Copyright Jean Pierre Cimalando 2018. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef PL_LIST_HPP +#define PL_LIST_HPP + +#include +#include + +/* + pl_cell: the linked list cell + */ +template +struct pl_cell; + +template +struct pl_basic_cell +{ + pl_cell *prev, *next; +}; + +template +struct pl_cell : pl_basic_cell +{ + T value; +}; + +/* + pl_iterator: the linked list iterator + */ +template +class pl_iterator +{ +public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef Cell value_type; + typedef Cell &reference; + typedef Cell *pointer; + typedef std::ptrdiff_t difference_type; + + pl_iterator(Cell *cell = NULL); + bool is_end() const; + Cell &operator*() const; + Cell *operator->() const; + bool operator==(const pl_iterator &i) const; + bool operator!=(const pl_iterator &i) const; + pl_iterator &operator++(); + pl_iterator operator++(int); + pl_iterator &operator--(); + pl_iterator operator--(int); + +private: + Cell *cell_; +}; + +/* + pl_list: the preallocated linked list + */ +template +class pl_list +{ +public: + typedef pl_cell value_type; + typedef value_type *pointer; + typedef value_type &reference; + typedef const value_type *const_pointer; + typedef const value_type &const_reference; + typedef pl_iterator< pl_cell > iterator; + typedef pl_iterator< const pl_cell > const_iterator; + + pl_list(std::size_t capacity = 0); + ~pl_list(); + + struct external_storage_policy {}; + pl_list(pl_cell *cells, std::size_t ncells, external_storage_policy); + + pl_list(const pl_list &other); + pl_list &operator=(const pl_list &other); + + std::size_t size() const; + std::size_t capacity() const; + bool empty() const; + + iterator begin(); + iterator end(); + const_iterator begin() const; + const_iterator end() const; + + void clear(); + + pl_cell &front(); + const pl_cell &front() const; + pl_cell &back(); + const pl_cell &back() const; + + iterator insert(iterator pos, const T &x); + iterator erase(iterator pos); + void push_front(const T &x); + void push_back(const T &x); + void pop_front(); + void pop_back(); + + iterator find(const T &x); + const_iterator find(const T &x) const; + template iterator find_if(const Pred &p); + template const_iterator find_if(const Pred &p) const; + +private: + // number of cells in the list + std::size_t size_; + // number of cells allocated + std::size_t capacity_; + // array of cells allocated + pl_cell *cells_; + // pointer to the head cell + pl_cell *first_; + // pointer to the next free cell + pl_cell *free_; + // value-less cell which terminates the linked list + pl_basic_cell endcell_; + // whether cell storage is allocated + bool cells_allocd_; + + void initialize(std::size_t capacity, pl_cell *extcells = NULL); + pl_cell *allocate(pl_cell *pos); + void deallocate(pl_cell *cell); +}; + +#include "pl_list.tcc" + +#endif // PL_LIST_HPP diff --git a/thirdparty/adlmidi/structures/pl_list.tcc b/thirdparty/adlmidi/structures/pl_list.tcc new file mode 100644 index 0000000..959b085 --- /dev/null +++ b/thirdparty/adlmidi/structures/pl_list.tcc @@ -0,0 +1,338 @@ +// Copyright Jean Pierre Cimalando 2018. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#include "pl_list.hpp" + +template +pl_iterator::pl_iterator(Cell *cell) + : cell_(cell) +{ +} + +template +bool pl_iterator::is_end() const +{ + return cell_->next == NULL; +} + +template +Cell &pl_iterator::operator*() const +{ + return *cell_; +} + +template +Cell *pl_iterator::operator->() const +{ + return cell_; +} + +template +bool pl_iterator::operator==(const pl_iterator &i) const +{ + return cell_ == i.cell_; +} + +template +bool pl_iterator::operator!=(const pl_iterator &i) const +{ + return cell_ != i.cell_; +} + +template +pl_iterator &pl_iterator::operator++() +{ + cell_ = cell_->next; + return *this; +} + +template +pl_iterator pl_iterator::operator++(int) +{ + pl_iterator i(cell_); + cell_ = cell_->next; + return i; +} + +template +pl_iterator &pl_iterator::operator--() +{ + cell_ = cell_->prev; + return *this; +} + +template +pl_iterator pl_iterator::operator--(int) +{ + pl_iterator i(cell_); + cell_ = cell_->prev; + return i; +} + +template +pl_list::pl_list(std::size_t capacity) +{ + initialize(capacity); +} + +template +pl_list::~pl_list() +{ + if (cells_allocd_) + delete[] cells_; +} + +template +pl_list::pl_list(pl_cell *cells, std::size_t ncells, external_storage_policy) +{ + initialize(ncells, cells); +} + +template +pl_list::pl_list(const pl_list &other) +{ + initialize(other.capacity()); + for(const_iterator i = other.end(), b = other.begin(); i-- != b;) + push_front(i->value); +} + +template +pl_list &pl_list::operator=(const pl_list &other) +{ + if(this != &other) + { + std::size_t size = other.size(); + if(size > capacity()) + { + pl_cell *oldcells = cells_; + bool allocd = cells_allocd_; + initialize(other.capacity()); + if (allocd) + delete[] oldcells; + } + clear(); + for(const_iterator i = other.end(), b = other.begin(); i-- != b;) + push_front(i->value); + } + return *this; +} + +template +std::size_t pl_list::size() const +{ + return size_; +} + +template +std::size_t pl_list::capacity() const +{ + return capacity_; +} + +template +bool pl_list::empty() const +{ + return size_ == 0; +} + +template +typename pl_list::iterator pl_list::begin() +{ + return iterator(first_); +} + +template +typename pl_list::iterator pl_list::end() +{ + return iterator(reinterpret_cast *>(&endcell_)); +} + +template +typename pl_list::const_iterator pl_list::begin() const +{ + return const_iterator(first_); +} + +template +typename pl_list::const_iterator pl_list::end() const +{ + return const_iterator(reinterpret_cast *>(&endcell_)); +} + +template +void pl_list::clear() +{ + std::size_t capacity = capacity_; + pl_cell *cells = cells_; + pl_cell *endcell = &*end(); + size_ = 0; + first_ = endcell; + free_ = cells; + endcell->prev = NULL; + for(std::size_t i = 0; i < capacity; ++i) + { + cells[i].prev = (i > 0) ? &cells[i - 1] : NULL; + cells[i].next = (i + 1 < capacity) ? &cells[i + 1] : NULL; + cells[i].value = T(); + } +} + +template +pl_cell &pl_list::front() +{ + return *first_; +} + +template +const pl_cell &pl_list::front() const +{ + return *first_; +} + +template +pl_cell &pl_list::back() +{ + iterator i = end(); + return *--i; +} + +template +const pl_cell &pl_list::back() const +{ + const_iterator i = end(); + return *--i; +} + +template +typename pl_list::iterator pl_list::insert(iterator pos, const T &x) +{ + pl_cell *cell = allocate(&*pos); + if (!cell) + throw std::bad_alloc(); + cell->value = x; + return iterator(cell); +} + +template +typename pl_list::iterator pl_list::erase(iterator pos) +{ + deallocate(&*(pos++)); + return pos; +} + +template +void pl_list::push_front(const T &x) +{ + insert(begin(), x); +} + +template +void pl_list::push_back(const T &x) +{ + insert(end(), x); +} + +template +void pl_list::pop_front() +{ + deallocate(first_); +} + +template +void pl_list::pop_back() +{ + iterator i(&*end()); + deallocate(&*--i); +} + +template +typename pl_list::iterator pl_list::find(const T &x) +{ + const_iterator i = const_cast *>(this)->find(x); + return iterator(&const_cast(*i)); +} + +template +typename pl_list::const_iterator pl_list::find(const T &x) const +{ + const_iterator e = end(); + for (const_iterator i = begin(); i != e; ++i) + { + if(i->value == x) + return i; + } + return e; +} + +template +template +typename pl_list::iterator pl_list::find_if(const Pred &p) +{ + const_iterator i = const_cast *>(this)->find_if(p); + return iterator(&const_cast(*i)); +} + +template +template +typename pl_list::const_iterator pl_list::find_if(const Pred &p) const +{ + const_iterator e = end(); + for (const_iterator i = begin(); i != e; ++i) + { + if(p(i->value)) + return i; + } + return e; +} + +template +void pl_list::initialize(std::size_t capacity, pl_cell *extcells) +{ + cells_ = extcells ? extcells : new pl_cell[capacity]; + cells_allocd_ = extcells ? false : true; + capacity_ = capacity; + endcell_.next = NULL; + clear(); +} + +template +pl_cell *pl_list::allocate(pl_cell *pos) +{ + // remove free cells front + pl_cell *cell = free_; + if(!cell) + return NULL; + free_ = cell->next; + if(free_) + free_->prev = NULL; + + // insert at position + if (pos == first_) + first_ = cell; + cell->prev = pos->prev; + if (cell->prev) + cell->prev->next = cell; + cell->next = pos; + pos->prev = cell; + + ++size_; + return cell; +} + +template +void pl_list::deallocate(pl_cell *cell) +{ + if(cell->prev) + cell->prev->next = cell->next; + if(cell->next) + cell->next->prev = cell->prev; + if(cell == first_) + first_ = cell->next; + cell->prev = NULL; + cell->next = free_; + cell->value = T(); + free_ = cell; + --size_; +} diff --git a/thirdparty/adlmidi/wopl/wopl_file.c b/thirdparty/adlmidi/wopl/wopl_file.c index f018cbc..5c96e41 100644 --- a/thirdparty/adlmidi/wopl/wopl_file.c +++ b/thirdparty/adlmidi/wopl/wopl_file.c @@ -1,7 +1,7 @@ /* * Wohlstand's OPL3 Bank File - a bank format to store OPL3 timbre data and setup * - * Copyright (c) 2015-2018 Vitaly Novichkov + * Copyright (c) 2015-2020 Vitaly Novichkov * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the "Software"), @@ -77,18 +77,30 @@ static void fromSint16BE(int16_t in, uint8_t *arr) WOPLFile *WOPL_Init(uint16_t melodic_banks, uint16_t percussive_banks) { - WOPLFile *file = NULL; - if(melodic_banks == 0) - return NULL; - if(percussive_banks == 0) - return NULL; - file = (WOPLFile*)calloc(1, sizeof(WOPLFile)); + WOPLFile *file = (WOPLFile*)calloc(1, sizeof(WOPLFile)); if(!file) return NULL; - file->banks_count_melodic = melodic_banks; - file->banks_count_percussion = percussive_banks; - file->banks_melodic = (WOPLBank*)calloc(1, sizeof(WOPLBank) * melodic_banks ); - file->banks_percussive = (WOPLBank*)calloc(1, sizeof(WOPLBank) * percussive_banks ); + + file->banks_count_melodic = (melodic_banks != 0) ? melodic_banks : 1; + file->banks_melodic = (WOPLBank*)calloc(file->banks_count_melodic, sizeof(WOPLBank)); + + if(melodic_banks == 0) + { + unsigned i; + for(i = 0; i < 128; ++i) + file->banks_melodic[0].ins[i].inst_flags = WOPL_Ins_IsBlank; + } + + file->banks_count_percussion = (percussive_banks != 0) ? percussive_banks : 1; + file->banks_percussive = (WOPLBank*)calloc(file->banks_count_percussion, sizeof(WOPLBank)); + + if(percussive_banks == 0) + { + unsigned i; + for(i = 0; i < 128; ++i) + file->banks_percussive[0].ins[i].inst_flags = WOPL_Ins_IsBlank; + } + return file; } @@ -161,7 +173,8 @@ static void WOPL_parseInstrument(WOPLInstrument *ins, uint8_t *cursor, uint16_t static void WOPL_writeInstrument(WOPLInstrument *ins, uint8_t *cursor, uint16_t version, uint8_t has_sounding_delays) { int l; - strncpy((char*)cursor, ins->inst_name, 32); + memcpy((char*)cursor, ins->inst_name, 32); + cursor[32] = '\0'; fromSint16BE(ins->note_offset1, cursor + 32); fromSint16BE(ins->note_offset2, cursor + 34); cursor[36] = (uint8_t)ins->midi_velocity_offset; @@ -266,7 +279,7 @@ WOPLFile *WOPL_LoadBankFromMem(void *mem, size_t length, int *error) outFile->version = version; outFile->opl_flags = head[4]; outFile->volume_model = head[5]; - } + } bankslots_sizes[0] = count_melodic_banks; bankslots[0] = outFile->banks_melodic; diff --git a/thirdparty/adlmidi/wopl/wopl_file.h b/thirdparty/adlmidi/wopl/wopl_file.h index fa270b6..48cc665 100644 --- a/thirdparty/adlmidi/wopl/wopl_file.h +++ b/thirdparty/adlmidi/wopl/wopl_file.h @@ -1,7 +1,7 @@ /* * Wohlstand's OPL3 Bank File - a bank format to store OPL3 timbre data and setup * - * Copyright (c) 2015-2018 Vitaly Novichkov + * Copyright (c) 2015-2020 Vitaly Novichkov * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the "Software"), @@ -56,7 +56,12 @@ typedef enum WOPL_VolumeModel WOPL_VM_Native, WOPL_VM_DMX, WOPL_VM_Apogee, - WOPL_VM_Win9x + WOPL_VM_Win9x, + WOPL_VM_DMX_Fixed, + WOPL_VM_Apogee_Fixed, + WOPL_VM_AIL, + WOPL_VM_Win9x_GenericFM, + WOPL_VM_HMI } WOPL_VolumeModel; typedef enum WOPL_InstrumentFlags @@ -242,7 +247,7 @@ extern WOPLFile *WOPL_LoadBankFromMem(void *mem, size_t length, int *error); /** * @brief Load WOPI instrument file from the memory. * You must allocate WOPIFile structure by yourself and give the pointer to it. - * @param file Pointer to destinition WOPIFile structure to fill it with parsed data. + * @param file Pointer to destination WOPIFile structure to fill it with parsed data. * @param mem Pointer to memory block contains raw WOPI instrument file data * @param length Length of given memory block * @return 0 if no errors occouped, or an error code of WOPL_ErrorCodes enumeration @@ -252,7 +257,7 @@ extern int WOPL_LoadInstFromMem(WOPIFile *file, void *mem, size_t length); /** * @brief Calculate the size of the output memory block * @param file Heap-allocated WOPL file data structure - * @param version Destinition version of the file + * @param version Destination version of the file * @return Size of the raw WOPL file data */ extern size_t WOPL_CalculateBankFileSize(WOPLFile *file, uint16_t version); @@ -260,7 +265,7 @@ extern size_t WOPL_CalculateBankFileSize(WOPLFile *file, uint16_t version); /** * @brief Calculate the size of the output memory block * @param file Pointer to WOPI file data structure - * @param version Destinition version of the file + * @param version Destination version of the file * @return Size of the raw WOPI file data */ extern size_t WOPL_CalculateInstFileSize(WOPIFile *file, uint16_t version); @@ -268,8 +273,8 @@ extern size_t WOPL_CalculateInstFileSize(WOPIFile *file, uint16_t version); /** * @brief Write raw WOPL into given memory block * @param file Heap-allocated WOPL file data structure - * @param dest_mem Destinition memory block pointer - * @param length Length of destinition memory block + * @param dest_mem Destination memory block pointer + * @param length Length of destination memory block * @param version Wanted WOPL version * @param force_gm Force GM set in saved bank file * @return Error code or 0 on success @@ -279,8 +284,8 @@ extern int WOPL_SaveBankToMem(WOPLFile *file, void *dest_mem, size_t length, uin /** * @brief Write raw WOPI into given memory block * @param file Pointer to WOPI file data structure - * @param dest_mem Destinition memory block pointer - * @param length Length of destinition memory block + * @param dest_mem Destination memory block pointer + * @param length Length of destination memory block * @param version Wanted WOPI version * @return Error code or 0 on success */