#include "unitool.h" #include "sysfuncs.h" /* unicode_cat_data is a combination of the letter, digit, and * space information in a form that is quick to look up. * The information about each byte is stored in two bits * * 00 - neither letter, digit or space * 01 - letter * 10 - space * 11 - digit * * You can test for letter | space by looking at the right * column */ static mg_u_long *unicode_cat_data=NULL; typedef struct unidecompose { unsigned short ch; unsigned short str[3]; } unidecompose; typedef struct unirelate { unsigned short ch1; unsigned short ch2; } unirelate; typedef struct unirange { unsigned short first; unsigned short last; } unirange; /* This decomposition data only includes canonical decompositional * characters. Any unused bytes are set to 0x0. */ #define NUM_DECOMPOSE_INFO 1269 static const unidecompose decompose_info[NUM_DECOMPOSE_INFO] = { {0xC0,{0x41,0x300,0x0}}, {0xC1,{0x41,0x301,0x0}}, {0xC2,{0x41,0x302,0x0}}, {0xC3,{0x41,0x303,0x0}}, {0xC4,{0x41,0x308,0x0}}, {0xC5,{0x41,0x30A,0x0}}, {0xC7,{0x43,0x327,0x0}}, {0xC8,{0x45,0x300,0x0}}, {0xC9,{0x45,0x301,0x0}}, {0xCA,{0x45,0x302,0x0}}, {0xCB,{0x45,0x308,0x0}}, {0xCC,{0x49,0x300,0x0}}, {0xCD,{0x49,0x301,0x0}}, {0xCE,{0x49,0x302,0x0}}, {0xCF,{0x49,0x308,0x0}}, {0xD1,{0x4E,0x303,0x0}}, {0xD2,{0x4F,0x300,0x0}}, {0xD3,{0x4F,0x301,0x0}}, {0xD4,{0x4F,0x302,0x0}}, {0xD5,{0x4F,0x303,0x0}}, {0xD6,{0x4F,0x308,0x0}}, {0xD9,{0x55,0x300,0x0}}, {0xDA,{0x55,0x301,0x0}}, {0xDB,{0x55,0x302,0x0}}, {0xDC,{0x55,0x308,0x0}}, {0xDD,{0x59,0x301,0x0}}, {0xE0,{0x61,0x300,0x0}}, {0xE1,{0x61,0x301,0x0}}, {0xE2,{0x61,0x302,0x0}}, {0xE3,{0x61,0x303,0x0}}, {0xE4,{0x61,0x308,0x0}}, {0xE5,{0x61,0x30A,0x0}}, {0xE7,{0x63,0x327,0x0}}, {0xE8,{0x65,0x300,0x0}}, {0xE9,{0x65,0x301,0x0}}, {0xEA,{0x65,0x302,0x0}}, {0xEB,{0x65,0x308,0x0}}, {0xEC,{0x69,0x300,0x0}}, {0xED,{0x69,0x301,0x0}}, {0xEE,{0x69,0x302,0x0}}, {0xEF,{0x69,0x308,0x0}}, {0xF1,{0x6E,0x303,0x0}}, {0xF2,{0x6F,0x300,0x0}}, {0xF3,{0x6F,0x301,0x0}}, {0xF4,{0x6F,0x302,0x0}}, {0xF5,{0x6F,0x303,0x0}}, {0xF6,{0x6F,0x308,0x0}}, {0xF9,{0x75,0x300,0x0}}, {0xFA,{0x75,0x301,0x0}}, {0xFB,{0x75,0x302,0x0}}, {0xFC,{0x75,0x308,0x0}}, {0xFD,{0x79,0x301,0x0}}, {0xFF,{0x79,0x308,0x0}}, {0x100,{0x41,0x304,0x0}}, {0x101,{0x61,0x304,0x0}}, {0x102,{0x41,0x306,0x0}}, {0x103,{0x61,0x306,0x0}}, {0x104,{0x41,0x328,0x0}}, {0x105,{0x61,0x328,0x0}}, {0x106,{0x43,0x301,0x0}}, {0x107,{0x63,0x301,0x0}}, {0x108,{0x43,0x302,0x0}}, {0x109,{0x63,0x302,0x0}}, {0x10A,{0x43,0x307,0x0}}, {0x10B,{0x63,0x307,0x0}}, {0x10C,{0x43,0x30C,0x0}}, {0x10D,{0x63,0x30C,0x0}}, {0x10E,{0x44,0x30C,0x0}}, {0x10F,{0x64,0x30C,0x0}}, {0x112,{0x45,0x304,0x0}}, {0x113,{0x65,0x304,0x0}}, {0x114,{0x45,0x306,0x0}}, {0x115,{0x65,0x306,0x0}}, {0x116,{0x45,0x307,0x0}}, {0x117,{0x65,0x307,0x0}}, {0x118,{0x45,0x328,0x0}}, {0x119,{0x65,0x328,0x0}}, {0x11A,{0x45,0x30C,0x0}}, {0x11B,{0x65,0x30C,0x0}}, {0x11C,{0x47,0x302,0x0}}, {0x11D,{0x67,0x302,0x0}}, {0x11E,{0x47,0x306,0x0}}, {0x11F,{0x67,0x306,0x0}}, {0x120,{0x47,0x307,0x0}}, {0x121,{0x67,0x307,0x0}}, {0x122,{0x47,0x327,0x0}}, {0x123,{0x67,0x327,0x0}}, {0x124,{0x48,0x302,0x0}}, {0x125,{0x68,0x302,0x0}}, {0x128,{0x49,0x303,0x0}}, {0x129,{0x69,0x303,0x0}}, {0x12A,{0x49,0x304,0x0}}, {0x12B,{0x69,0x304,0x0}}, {0x12C,{0x49,0x306,0x0}}, {0x12D,{0x69,0x306,0x0}}, {0x12E,{0x49,0x328,0x0}}, {0x12F,{0x69,0x328,0x0}}, {0x130,{0x49,0x307,0x0}}, {0x134,{0x4A,0x302,0x0}}, {0x135,{0x6A,0x302,0x0}}, {0x136,{0x4B,0x327,0x0}}, {0x137,{0x6B,0x327,0x0}}, {0x139,{0x4C,0x301,0x0}}, {0x13A,{0x6C,0x301,0x0}}, {0x13B,{0x4C,0x327,0x0}}, {0x13C,{0x6C,0x327,0x0}}, {0x13D,{0x4C,0x30C,0x0}}, {0x13E,{0x6C,0x30C,0x0}}, {0x143,{0x4E,0x301,0x0}}, {0x144,{0x6E,0x301,0x0}}, {0x145,{0x4E,0x327,0x0}}, {0x146,{0x6E,0x327,0x0}}, {0x147,{0x4E,0x30C,0x0}}, {0x148,{0x6E,0x30C,0x0}}, {0x14C,{0x4F,0x304,0x0}}, {0x14D,{0x6F,0x304,0x0}}, {0x14E,{0x4F,0x306,0x0}}, {0x14F,{0x6F,0x306,0x0}}, {0x150,{0x4F,0x30B,0x0}}, {0x151,{0x6F,0x30B,0x0}}, {0x154,{0x52,0x301,0x0}}, {0x155,{0x72,0x301,0x0}}, {0x156,{0x52,0x327,0x0}}, {0x157,{0x72,0x327,0x0}}, {0x158,{0x52,0x30C,0x0}}, {0x159,{0x72,0x30C,0x0}}, {0x15A,{0x53,0x301,0x0}}, {0x15B,{0x73,0x301,0x0}}, {0x15C,{0x53,0x302,0x0}}, {0x15D,{0x73,0x302,0x0}}, {0x15E,{0x53,0x327,0x0}}, {0x15F,{0x73,0x327,0x0}}, {0x160,{0x53,0x30C,0x0}}, {0x161,{0x73,0x30C,0x0}}, {0x162,{0x54,0x327,0x0}}, {0x163,{0x74,0x327,0x0}}, {0x164,{0x54,0x30C,0x0}}, {0x165,{0x74,0x30C,0x0}}, {0x168,{0x55,0x303,0x0}}, {0x169,{0x75,0x303,0x0}}, {0x16A,{0x55,0x304,0x0}}, {0x16B,{0x75,0x304,0x0}}, {0x16C,{0x55,0x306,0x0}}, {0x16D,{0x75,0x306,0x0}}, {0x16E,{0x55,0x30A,0x0}}, {0x16F,{0x75,0x30A,0x0}}, {0x170,{0x55,0x30B,0x0}}, {0x171,{0x75,0x30B,0x0}}, {0x172,{0x55,0x328,0x0}}, {0x173,{0x75,0x328,0x0}}, {0x174,{0x57,0x302,0x0}}, {0x175,{0x77,0x302,0x0}}, {0x176,{0x59,0x302,0x0}}, {0x177,{0x79,0x302,0x0}}, {0x178,{0x59,0x308,0x0}}, {0x179,{0x5A,0x301,0x0}}, {0x17A,{0x7A,0x301,0x0}}, {0x17B,{0x5A,0x307,0x0}}, {0x17C,{0x7A,0x307,0x0}}, {0x17D,{0x5A,0x30C,0x0}}, {0x17E,{0x7A,0x30C,0x0}}, {0x1A0,{0x4F,0x31B,0x0}}, {0x1A1,{0x6F,0x31B,0x0}}, {0x1AF,{0x55,0x31B,0x0}}, {0x1B0,{0x75,0x31B,0x0}}, {0x1CD,{0x41,0x30C,0x0}}, {0x1CE,{0x61,0x30C,0x0}}, {0x1CF,{0x49,0x30C,0x0}}, {0x1D0,{0x69,0x30C,0x0}}, {0x1D1,{0x4F,0x30C,0x0}}, {0x1D2,{0x6F,0x30C,0x0}}, {0x1D3,{0x55,0x30C,0x0}}, {0x1D4,{0x75,0x30C,0x0}}, {0x1D5,{0xDC,0x304,0x0}}, {0x1D6,{0xFC,0x304,0x0}}, {0x1D7,{0xDC,0x301,0x0}}, {0x1D8,{0xFC,0x301,0x0}}, {0x1D9,{0xDC,0x30C,0x0}}, {0x1DA,{0xFC,0x30C,0x0}}, {0x1DB,{0xDC,0x300,0x0}}, {0x1DC,{0xFC,0x300,0x0}}, {0x1DE,{0xC4,0x304,0x0}}, {0x1DF,{0xE4,0x304,0x0}}, {0x1E0,{0x41,0x307,0x304}}, {0x1E1,{0x61,0x307,0x304}}, {0x1E2,{0xC6,0x304,0x0}}, {0x1E3,{0xE6,0x304,0x0}}, {0x1E6,{0x47,0x30C,0x0}}, {0x1E7,{0x67,0x30C,0x0}}, {0x1E8,{0x4B,0x30C,0x0}}, {0x1E9,{0x6B,0x30C,0x0}}, {0x1EA,{0x4F,0x328,0x0}}, {0x1EB,{0x6F,0x328,0x0}}, {0x1EC,{0x1EA,0x304,0x0}}, {0x1ED,{0x1EB,0x304,0x0}}, {0x1EE,{0x1B7,0x30C,0x0}}, {0x1EF,{0x292,0x30C,0x0}}, {0x1F0,{0x6A,0x30C,0x0}}, {0x1F4,{0x47,0x301,0x0}}, {0x1F5,{0x67,0x301,0x0}}, {0x1FA,{0xC5,0x301,0x0}}, {0x1FB,{0xE5,0x301,0x0}}, {0x1FC,{0xC6,0x301,0x0}}, {0x1FD,{0xE6,0x301,0x0}}, {0x1FE,{0xD8,0x301,0x0}}, {0x1FF,{0xF8,0x301,0x0}}, {0x200,{0x41,0x30F,0x0}}, {0x201,{0x61,0x30F,0x0}}, {0x202,{0x41,0x311,0x0}}, {0x203,{0x61,0x311,0x0}}, {0x204,{0x45,0x30F,0x0}}, {0x205,{0x65,0x30F,0x0}}, {0x206,{0x45,0x311,0x0}}, {0x207,{0x65,0x311,0x0}}, {0x208,{0x49,0x30F,0x0}}, {0x209,{0x69,0x30F,0x0}}, {0x20A,{0x49,0x311,0x0}}, {0x20B,{0x69,0x311,0x0}}, {0x20C,{0x4F,0x30F,0x0}}, {0x20D,{0x6F,0x30F,0x0}}, {0x20E,{0x4F,0x311,0x0}}, {0x20F,{0x6F,0x311,0x0}}, {0x210,{0x52,0x30F,0x0}}, {0x211,{0x72,0x30F,0x0}}, {0x212,{0x52,0x311,0x0}}, {0x213,{0x72,0x311,0x0}}, {0x214,{0x55,0x30F,0x0}}, {0x215,{0x75,0x30F,0x0}}, {0x216,{0x55,0x311,0x0}}, {0x217,{0x75,0x311,0x0}}, {0x310,{0x306,0x307,0x0}}, {0x340,{0x300,0x0,0x0}}, {0x341,{0x301,0x0,0x0}}, {0x343,{0x313,0x0,0x0}}, {0x344,{0x308,0x30D,0x0}}, {0x374,{0x2B9,0x0,0x0}}, {0x37E,{0x3B,0x0,0x0}}, {0x385,{0xA8,0x30D,0x0}}, {0x386,{0x391,0x30D,0x0}}, {0x387,{0xB7,0x0,0x0}}, {0x388,{0x395,0x30D,0x0}}, {0x389,{0x397,0x30D,0x0}}, {0x38A,{0x399,0x30D,0x0}}, {0x38C,{0x39F,0x30D,0x0}}, {0x38E,{0x3A5,0x30D,0x0}}, {0x38F,{0x3A9,0x30D,0x0}}, {0x390,{0x3B9,0x344,0x0}}, {0x3AA,{0x399,0x308,0x0}}, {0x3AB,{0x3A5,0x308,0x0}}, {0x3AC,{0x3B1,0x30D,0x0}}, {0x3AD,{0x3B5,0x30D,0x0}}, {0x3AE,{0x3B7,0x30D,0x0}}, {0x3AF,{0x3B9,0x30D,0x0}}, {0x3B0,{0x3C5,0x344,0x0}}, {0x3CA,{0x3B9,0x308,0x0}}, {0x3CB,{0x3C5,0x308,0x0}}, {0x3CC,{0x3BF,0x30D,0x0}}, {0x3CD,{0x3C5,0x30D,0x0}}, {0x3CE,{0x3C9,0x30D,0x0}}, {0x3D3,{0x3D2,0x30D,0x0}}, {0x3D4,{0x3D2,0x308,0x0}}, {0x401,{0x415,0x308,0x0}}, {0x403,{0x413,0x301,0x0}}, {0x407,{0x406,0x308,0x0}}, {0x40C,{0x41A,0x301,0x0}}, {0x40E,{0x423,0x306,0x0}}, {0x419,{0x418,0x306,0x0}}, {0x439,{0x438,0x306,0x0}}, {0x451,{0x435,0x308,0x0}}, {0x453,{0x433,0x301,0x0}}, {0x457,{0x456,0x308,0x0}}, {0x45C,{0x43A,0x301,0x0}}, {0x45E,{0x443,0x306,0x0}}, {0x476,{0x474,0x30F,0x0}}, {0x477,{0x475,0x30F,0x0}}, {0x4C1,{0x416,0x306,0x0}}, {0x4C2,{0x436,0x306,0x0}}, {0x4D0,{0x410,0x306,0x0}}, {0x4D1,{0x430,0x306,0x0}}, {0x4D2,{0x410,0x308,0x0}}, {0x4D3,{0x430,0x308,0x0}}, {0x4D6,{0x415,0x306,0x0}}, {0x4D7,{0x435,0x306,0x0}}, {0x4DA,{0x4D8,0x308,0x0}}, {0x4DB,{0x4D9,0x308,0x0}}, {0x4DC,{0x416,0x308,0x0}}, {0x4DD,{0x436,0x308,0x0}}, {0x4DE,{0x417,0x308,0x0}}, {0x4DF,{0x437,0x308,0x0}}, {0x4E2,{0x418,0x304,0x0}}, {0x4E3,{0x438,0x304,0x0}}, {0x4E4,{0x418,0x308,0x0}}, {0x4E5,{0x438,0x308,0x0}}, {0x4E6,{0x41E,0x308,0x0}}, {0x4E7,{0x43E,0x308,0x0}}, {0x4EA,{0x4E8,0x308,0x0}}, {0x4EB,{0x4E9,0x308,0x0}}, {0x4EE,{0x423,0x304,0x0}}, {0x4EF,{0x443,0x304,0x0}}, {0x4F0,{0x423,0x308,0x0}}, {0x4F1,{0x443,0x308,0x0}}, {0x4F2,{0x423,0x30B,0x0}}, {0x4F3,{0x443,0x30B,0x0}}, {0x4F4,{0x427,0x308,0x0}}, {0x4F5,{0x447,0x308,0x0}}, {0x4F8,{0x42B,0x308,0x0}}, {0x4F9,{0x44B,0x308,0x0}}, {0x929,{0x928,0x93C,0x0}}, {0x931,{0x930,0x93C,0x0}}, {0x934,{0x933,0x93C,0x0}}, {0x958,{0x915,0x93C,0x0}}, {0x959,{0x916,0x93C,0x0}}, {0x95A,{0x917,0x93C,0x0}}, {0x95B,{0x91C,0x93C,0x0}}, {0x95C,{0x921,0x93C,0x0}}, {0x95D,{0x922,0x93C,0x0}}, {0x95E,{0x92B,0x93C,0x0}}, {0x95F,{0x92F,0x93C,0x0}}, {0x9B0,{0x9AC,0x9BC,0x0}}, {0x9CB,{0x9C7,0x9BE,0x0}}, {0x9CC,{0x9C7,0x9D7,0x0}}, {0x9DC,{0x9A1,0x9BC,0x0}}, {0x9DD,{0x9A2,0x9BC,0x0}}, {0x9DF,{0x9AF,0x9BC,0x0}}, {0xA59,{0xA16,0xA3C,0x0}}, {0xA5A,{0xA17,0xA3C,0x0}}, {0xA5B,{0xA1C,0xA3C,0x0}}, {0xA5C,{0xA21,0xA3C,0x0}}, {0xA5E,{0xA2B,0xA3C,0x0}}, {0xB48,{0xB47,0xB56,0x0}}, {0xB4B,{0xB47,0xB3E,0x0}}, {0xB4C,{0xB47,0xB57,0x0}}, {0xB5C,{0xB21,0xB3C,0x0}}, {0xB5D,{0xB22,0xB3C,0x0}}, {0xB5F,{0xB2F,0xB3C,0x0}}, {0xB94,{0xB92,0xBD7,0x0}}, {0xBCA,{0xBC6,0xBBE,0x0}}, {0xBCB,{0xBC7,0xBBE,0x0}}, {0xBCC,{0xBC6,0xBD7,0x0}}, {0xC48,{0xC46,0xC56,0x0}}, {0xCC0,{0xCBF,0xCD5,0x0}}, {0xCC7,{0xCC6,0xCD5,0x0}}, {0xCC8,{0xCC6,0xCD6,0x0}}, {0xCCA,{0xCC6,0xCC2,0x0}}, {0xCCB,{0xCC6,0xCC2,0xCD5}}, {0xD4A,{0xD46,0xD3E,0x0}}, {0xD4B,{0xD47,0xD3E,0x0}}, {0xD4C,{0xD46,0xD57,0x0}}, {0xE33,{0xE4D,0xE32,0x0}}, {0xEB3,{0xECD,0xEB2,0x0}}, {0xF43,{0xF42,0xFB7,0x0}}, {0xF4D,{0xF4C,0xFB7,0x0}}, {0xF52,{0xF51,0xFB7,0x0}}, {0xF57,{0xF56,0xFB7,0x0}}, {0xF5C,{0xF5B,0xFB7,0x0}}, {0xF69,{0xF40,0xFB5,0x0}}, {0xF73,{0xF72,0xF71,0x0}}, {0xF75,{0xF71,0xF74,0x0}}, {0xF76,{0xFB2,0xF80,0x0}}, {0xF77,{0xF76,0xF71,0x0}}, {0xF78,{0xFB3,0xF80,0x0}}, {0xF79,{0xF78,0xF71,0x0}}, {0xF81,{0xF80,0xF71,0x0}}, {0xF93,{0xF92,0xFB7,0x0}}, {0xF9D,{0xF9C,0xFB7,0x0}}, {0xFA2,{0xFA1,0xFB7,0x0}}, {0xFA7,{0xFA6,0xFB7,0x0}}, {0xFAC,{0xFAB,0xFB7,0x0}}, {0xFB9,{0xF90,0xFB5,0x0}}, {0x1E00,{0x41,0x325,0x0}}, {0x1E01,{0x61,0x325,0x0}}, {0x1E02,{0x42,0x307,0x0}}, {0x1E03,{0x62,0x307,0x0}}, {0x1E04,{0x42,0x323,0x0}}, {0x1E05,{0x62,0x323,0x0}}, {0x1E06,{0x42,0x331,0x0}}, {0x1E07,{0x62,0x331,0x0}}, {0x1E08,{0xC7,0x301,0x0}}, {0x1E09,{0xE7,0x301,0x0}}, {0x1E0A,{0x44,0x307,0x0}}, {0x1E0B,{0x64,0x307,0x0}}, {0x1E0C,{0x44,0x323,0x0}}, {0x1E0D,{0x64,0x323,0x0}}, {0x1E0E,{0x44,0x331,0x0}}, {0x1E0F,{0x64,0x331,0x0}}, {0x1E10,{0x44,0x327,0x0}}, {0x1E11,{0x64,0x327,0x0}}, {0x1E12,{0x44,0x32D,0x0}}, {0x1E13,{0x64,0x32D,0x0}}, {0x1E14,{0x112,0x300,0x0}}, {0x1E15,{0x113,0x300,0x0}}, {0x1E16,{0x112,0x301,0x0}}, {0x1E17,{0x113,0x301,0x0}}, {0x1E18,{0x45,0x32D,0x0}}, {0x1E19,{0x65,0x32D,0x0}}, {0x1E1A,{0x45,0x330,0x0}}, {0x1E1B,{0x65,0x330,0x0}}, {0x1E1C,{0x114,0x327,0x0}}, {0x1E1D,{0x115,0x327,0x0}}, {0x1E1E,{0x46,0x307,0x0}}, {0x1E1F,{0x66,0x307,0x0}}, {0x1E20,{0x47,0x304,0x0}}, {0x1E21,{0x67,0x304,0x0}}, {0x1E22,{0x48,0x307,0x0}}, {0x1E23,{0x68,0x307,0x0}}, {0x1E24,{0x48,0x323,0x0}}, {0x1E25,{0x68,0x323,0x0}}, {0x1E26,{0x48,0x308,0x0}}, {0x1E27,{0x68,0x308,0x0}}, {0x1E28,{0x48,0x327,0x0}}, {0x1E29,{0x68,0x327,0x0}}, {0x1E2A,{0x48,0x32E,0x0}}, {0x1E2B,{0x68,0x32E,0x0}}, {0x1E2C,{0x49,0x330,0x0}}, {0x1E2D,{0x69,0x330,0x0}}, {0x1E2E,{0xCF,0x301,0x0}}, {0x1E2F,{0xEF,0x301,0x0}}, {0x1E30,{0x4B,0x301,0x0}}, {0x1E31,{0x6B,0x301,0x0}}, {0x1E32,{0x4B,0x323,0x0}}, {0x1E33,{0x6B,0x323,0x0}}, {0x1E34,{0x4B,0x331,0x0}}, {0x1E35,{0x6B,0x331,0x0}}, {0x1E36,{0x4C,0x323,0x0}}, {0x1E37,{0x6C,0x323,0x0}}, {0x1E38,{0x1E36,0x304,0x0}}, {0x1E39,{0x1E37,0x304,0x0}}, {0x1E3A,{0x4C,0x331,0x0}}, {0x1E3B,{0x6C,0x331,0x0}}, {0x1E3C,{0x4C,0x32D,0x0}}, {0x1E3D,{0x6C,0x32D,0x0}}, {0x1E3E,{0x4D,0x301,0x0}}, {0x1E3F,{0x6D,0x301,0x0}}, {0x1E40,{0x4D,0x307,0x0}}, {0x1E41,{0x6D,0x307,0x0}}, {0x1E42,{0x4D,0x323,0x0}}, {0x1E43,{0x6D,0x323,0x0}}, {0x1E44,{0x4E,0x307,0x0}}, {0x1E45,{0x6E,0x307,0x0}}, {0x1E46,{0x4E,0x323,0x0}}, {0x1E47,{0x6E,0x323,0x0}}, {0x1E48,{0x4E,0x331,0x0}}, {0x1E49,{0x6E,0x331,0x0}}, {0x1E4A,{0x4E,0x32D,0x0}}, {0x1E4B,{0x6E,0x32D,0x0}}, {0x1E4C,{0xD5,0x301,0x0}}, {0x1E4D,{0xF5,0x301,0x0}}, {0x1E4E,{0xD5,0x308,0x0}}, {0x1E4F,{0xF5,0x308,0x0}}, {0x1E50,{0x14C,0x300,0x0}}, {0x1E51,{0x14D,0x300,0x0}}, {0x1E52,{0x14C,0x301,0x0}}, {0x1E53,{0x14D,0x301,0x0}}, {0x1E54,{0x50,0x301,0x0}}, {0x1E55,{0x70,0x301,0x0}}, {0x1E56,{0x50,0x307,0x0}}, {0x1E57,{0x70,0x307,0x0}}, {0x1E58,{0x52,0x307,0x0}}, {0x1E59,{0x72,0x307,0x0}}, {0x1E5A,{0x52,0x323,0x0}}, {0x1E5B,{0x72,0x323,0x0}}, {0x1E5C,{0x1E5A,0x304,0x0}}, {0x1E5D,{0x1E5B,0x304,0x0}}, {0x1E5E,{0x52,0x331,0x0}}, {0x1E5F,{0x72,0x331,0x0}}, {0x1E60,{0x53,0x307,0x0}}, {0x1E61,{0x73,0x307,0x0}}, {0x1E62,{0x53,0x323,0x0}}, {0x1E63,{0x73,0x323,0x0}}, {0x1E64,{0x15A,0x307,0x0}}, {0x1E65,{0x15B,0x307,0x0}}, {0x1E66,{0x160,0x307,0x0}}, {0x1E67,{0x161,0x307,0x0}}, {0x1E68,{0x1E62,0x307,0x0}}, {0x1E69,{0x1E63,0x307,0x0}}, {0x1E6A,{0x54,0x307,0x0}}, {0x1E6B,{0x74,0x307,0x0}}, {0x1E6C,{0x54,0x323,0x0}}, {0x1E6D,{0x74,0x323,0x0}}, {0x1E6E,{0x54,0x331,0x0}}, {0x1E6F,{0x74,0x331,0x0}}, {0x1E70,{0x54,0x32D,0x0}}, {0x1E71,{0x74,0x32D,0x0}}, {0x1E72,{0x55,0x324,0x0}}, {0x1E73,{0x75,0x324,0x0}}, {0x1E74,{0x55,0x330,0x0}}, {0x1E75,{0x75,0x330,0x0}}, {0x1E76,{0x55,0x32D,0x0}}, {0x1E77,{0x75,0x32D,0x0}}, {0x1E78,{0x168,0x301,0x0}}, {0x1E79,{0x169,0x301,0x0}}, {0x1E7A,{0x16A,0x308,0x0}}, {0x1E7B,{0x16B,0x308,0x0}}, {0x1E7C,{0x56,0x303,0x0}}, {0x1E7D,{0x76,0x303,0x0}}, {0x1E7E,{0x56,0x323,0x0}}, {0x1E7F,{0x76,0x323,0x0}}, {0x1E80,{0x57,0x300,0x0}}, {0x1E81,{0x77,0x300,0x0}}, {0x1E82,{0x57,0x301,0x0}}, {0x1E83,{0x77,0x301,0x0}}, {0x1E84,{0x57,0x308,0x0}}, {0x1E85,{0x77,0x308,0x0}}, {0x1E86,{0x57,0x307,0x0}}, {0x1E87,{0x77,0x307,0x0}}, {0x1E88,{0x57,0x323,0x0}}, {0x1E89,{0x77,0x323,0x0}}, {0x1E8A,{0x58,0x307,0x0}}, {0x1E8B,{0x78,0x307,0x0}}, {0x1E8C,{0x58,0x308,0x0}}, {0x1E8D,{0x78,0x308,0x0}}, {0x1E8E,{0x59,0x307,0x0}}, {0x1E8F,{0x79,0x307,0x0}}, {0x1E90,{0x5A,0x302,0x0}}, {0x1E91,{0x7A,0x302,0x0}}, {0x1E92,{0x5A,0x323,0x0}}, {0x1E93,{0x7A,0x323,0x0}}, {0x1E94,{0x5A,0x331,0x0}}, {0x1E95,{0x7A,0x331,0x0}}, {0x1E96,{0x68,0x331,0x0}}, {0x1E97,{0x74,0x308,0x0}}, {0x1E98,{0x77,0x30A,0x0}}, {0x1E99,{0x79,0x30A,0x0}}, {0x1E9B,{0x17F,0x307,0x0}}, {0x1EA0,{0x41,0x323,0x0}}, {0x1EA1,{0x61,0x323,0x0}}, {0x1EA2,{0x41,0x309,0x0}}, {0x1EA3,{0x61,0x309,0x0}}, {0x1EA4,{0xC2,0x301,0x0}}, {0x1EA5,{0xE2,0x301,0x0}}, {0x1EA6,{0xC2,0x300,0x0}}, {0x1EA7,{0xE2,0x300,0x0}}, {0x1EA8,{0xC2,0x309,0x0}}, {0x1EA9,{0xE2,0x309,0x0}}, {0x1EAA,{0xC2,0x303,0x0}}, {0x1EAB,{0xE2,0x303,0x0}}, {0x1EAC,{0xC2,0x323,0x0}}, {0x1EAD,{0xE2,0x323,0x0}}, {0x1EAE,{0x102,0x301,0x0}}, {0x1EAF,{0x103,0x301,0x0}}, {0x1EB0,{0x102,0x300,0x0}}, {0x1EB1,{0x103,0x300,0x0}}, {0x1EB2,{0x102,0x309,0x0}}, {0x1EB3,{0x103,0x309,0x0}}, {0x1EB4,{0x102,0x303,0x0}}, {0x1EB5,{0x103,0x303,0x0}}, {0x1EB6,{0x102,0x323,0x0}}, {0x1EB7,{0x103,0x323,0x0}}, {0x1EB8,{0x45,0x323,0x0}}, {0x1EB9,{0x65,0x323,0x0}}, {0x1EBA,{0x45,0x309,0x0}}, {0x1EBB,{0x65,0x309,0x0}}, {0x1EBC,{0x45,0x303,0x0}}, {0x1EBD,{0x65,0x303,0x0}}, {0x1EBE,{0xCA,0x301,0x0}}, {0x1EBF,{0xEA,0x301,0x0}}, {0x1EC0,{0xCA,0x300,0x0}}, {0x1EC1,{0xEA,0x300,0x0}}, {0x1EC2,{0xCA,0x309,0x0}}, {0x1EC3,{0xEA,0x309,0x0}}, {0x1EC4,{0xCA,0x303,0x0}}, {0x1EC5,{0xEA,0x303,0x0}}, {0x1EC6,{0xCA,0x323,0x0}}, {0x1EC7,{0xEA,0x323,0x0}}, {0x1EC8,{0x49,0x309,0x0}}, {0x1EC9,{0x69,0x309,0x0}}, {0x1ECA,{0x49,0x323,0x0}}, {0x1ECB,{0x69,0x323,0x0}}, {0x1ECC,{0x4F,0x323,0x0}}, {0x1ECD,{0x6F,0x323,0x0}}, {0x1ECE,{0x4F,0x309,0x0}}, {0x1ECF,{0x6F,0x309,0x0}}, {0x1ED0,{0xD4,0x301,0x0}}, {0x1ED1,{0xF4,0x301,0x0}}, {0x1ED2,{0xD4,0x300,0x0}}, {0x1ED3,{0xF4,0x300,0x0}}, {0x1ED4,{0xD4,0x309,0x0}}, {0x1ED5,{0xF4,0x309,0x0}}, {0x1ED6,{0xD4,0x303,0x0}}, {0x1ED7,{0xF4,0x303,0x0}}, {0x1ED8,{0xD4,0x323,0x0}}, {0x1ED9,{0xF4,0x323,0x0}}, {0x1EDA,{0x1A0,0x301,0x0}}, {0x1EDB,{0x1A1,0x301,0x0}}, {0x1EDC,{0x1A0,0x300,0x0}}, {0x1EDD,{0x1A1,0x300,0x0}}, {0x1EDE,{0x1A0,0x309,0x0}}, {0x1EDF,{0x1A1,0x309,0x0}}, {0x1EE0,{0x1A0,0x303,0x0}}, {0x1EE1,{0x1A1,0x303,0x0}}, {0x1EE2,{0x1A0,0x323,0x0}}, {0x1EE3,{0x1A1,0x323,0x0}}, {0x1EE4,{0x55,0x323,0x0}}, {0x1EE5,{0x75,0x323,0x0}}, {0x1EE6,{0x55,0x309,0x0}}, {0x1EE7,{0x75,0x309,0x0}}, {0x1EE8,{0x1AF,0x301,0x0}}, {0x1EE9,{0x1B0,0x301,0x0}}, {0x1EEA,{0x1AF,0x300,0x0}}, {0x1EEB,{0x1B0,0x300,0x0}}, {0x1EEC,{0x1AF,0x309,0x0}}, {0x1EED,{0x1B0,0x309,0x0}}, {0x1EEE,{0x1AF,0x303,0x0}}, {0x1EEF,{0x1B0,0x303,0x0}}, {0x1EF0,{0x1AF,0x323,0x0}}, {0x1EF1,{0x1B0,0x323,0x0}}, {0x1EF2,{0x59,0x300,0x0}}, {0x1EF3,{0x79,0x300,0x0}}, {0x1EF4,{0x59,0x323,0x0}}, {0x1EF5,{0x79,0x323,0x0}}, {0x1EF6,{0x59,0x309,0x0}}, {0x1EF7,{0x79,0x309,0x0}}, {0x1EF8,{0x59,0x303,0x0}}, {0x1EF9,{0x79,0x303,0x0}}, {0x1F00,{0x3B1,0x313,0x0}}, {0x1F01,{0x3B1,0x314,0x0}}, {0x1F02,{0x1F00,0x300,0x0}}, {0x1F03,{0x1F01,0x300,0x0}}, {0x1F04,{0x1F00,0x301,0x0}}, {0x1F05,{0x1F01,0x301,0x0}}, {0x1F06,{0x1F00,0x342,0x0}}, {0x1F07,{0x1F01,0x342,0x0}}, {0x1F08,{0x391,0x313,0x0}}, {0x1F09,{0x391,0x314,0x0}}, {0x1F0A,{0x1F08,0x300,0x0}}, {0x1F0B,{0x1F09,0x300,0x0}}, {0x1F0C,{0x1F08,0x301,0x0}}, {0x1F0D,{0x1F09,0x301,0x0}}, {0x1F0E,{0x1F08,0x342,0x0}}, {0x1F0F,{0x1F09,0x342,0x0}}, {0x1F10,{0x3B5,0x313,0x0}}, {0x1F11,{0x3B5,0x314,0x0}}, {0x1F12,{0x1F10,0x300,0x0}}, {0x1F13,{0x1F11,0x300,0x0}}, {0x1F14,{0x1F10,0x301,0x0}}, {0x1F15,{0x1F11,0x301,0x0}}, {0x1F18,{0x395,0x313,0x0}}, {0x1F19,{0x395,0x314,0x0}}, {0x1F1A,{0x1F18,0x300,0x0}}, {0x1F1B,{0x1F19,0x300,0x0}}, {0x1F1C,{0x1F18,0x301,0x0}}, {0x1F1D,{0x1F19,0x301,0x0}}, {0x1F20,{0x3B7,0x313,0x0}}, {0x1F21,{0x3B7,0x314,0x0}}, {0x1F22,{0x1F20,0x300,0x0}}, {0x1F23,{0x1F21,0x300,0x0}}, {0x1F24,{0x1F20,0x301,0x0}}, {0x1F25,{0x1F21,0x301,0x0}}, {0x1F26,{0x1F20,0x342,0x0}}, {0x1F27,{0x1F21,0x342,0x0}}, {0x1F28,{0x397,0x313,0x0}}, {0x1F29,{0x397,0x314,0x0}}, {0x1F2A,{0x1F28,0x300,0x0}}, {0x1F2B,{0x1F29,0x300,0x0}}, {0x1F2C,{0x1F28,0x301,0x0}}, {0x1F2D,{0x1F29,0x301,0x0}}, {0x1F2E,{0x1F28,0x342,0x0}}, {0x1F2F,{0x1F29,0x342,0x0}}, {0x1F30,{0x3B9,0x313,0x0}}, {0x1F31,{0x3B9,0x314,0x0}}, {0x1F32,{0x1F30,0x300,0x0}}, {0x1F33,{0x1F31,0x300,0x0}}, {0x1F34,{0x1F30,0x301,0x0}}, {0x1F35,{0x1F31,0x301,0x0}}, {0x1F36,{0x1F30,0x342,0x0}}, {0x1F37,{0x1F31,0x342,0x0}}, {0x1F38,{0x399,0x313,0x0}}, {0x1F39,{0x399,0x314,0x0}}, {0x1F3A,{0x1F38,0x300,0x0}}, {0x1F3B,{0x1F39,0x300,0x0}}, {0x1F3C,{0x1F38,0x301,0x0}}, {0x1F3D,{0x1F39,0x301,0x0}}, {0x1F3E,{0x1F38,0x342,0x0}}, {0x1F3F,{0x1F39,0x342,0x0}}, {0x1F40,{0x3BF,0x313,0x0}}, {0x1F41,{0x3BF,0x314,0x0}}, {0x1F42,{0x1F40,0x300,0x0}}, {0x1F43,{0x1F41,0x300,0x0}}, {0x1F44,{0x1F40,0x301,0x0}}, {0x1F45,{0x1F41,0x301,0x0}}, {0x1F48,{0x39F,0x313,0x0}}, {0x1F49,{0x39F,0x314,0x0}}, {0x1F4A,{0x1F48,0x300,0x0}}, {0x1F4B,{0x1F49,0x300,0x0}}, {0x1F4C,{0x1F48,0x301,0x0}}, {0x1F4D,{0x1F49,0x301,0x0}}, {0x1F50,{0x3C5,0x313,0x0}}, {0x1F51,{0x3C5,0x314,0x0}}, {0x1F52,{0x1F50,0x300,0x0}}, {0x1F53,{0x1F51,0x300,0x0}}, {0x1F54,{0x1F50,0x301,0x0}}, {0x1F55,{0x1F51,0x301,0x0}}, {0x1F56,{0x1F50,0x342,0x0}}, {0x1F57,{0x1F51,0x342,0x0}}, {0x1F59,{0x3A5,0x314,0x0}}, {0x1F5B,{0x1F59,0x300,0x0}}, {0x1F5D,{0x1F59,0x301,0x0}}, {0x1F5F,{0x1F59,0x342,0x0}}, {0x1F60,{0x3C9,0x313,0x0}}, {0x1F61,{0x3C9,0x314,0x0}}, {0x1F62,{0x1F60,0x300,0x0}}, {0x1F63,{0x1F61,0x300,0x0}}, {0x1F64,{0x1F60,0x301,0x0}}, {0x1F65,{0x1F61,0x301,0x0}}, {0x1F66,{0x1F60,0x342,0x0}}, {0x1F67,{0x1F61,0x342,0x0}}, {0x1F68,{0x3A9,0x313,0x0}}, {0x1F69,{0x3A9,0x314,0x0}}, {0x1F6A,{0x1F68,0x300,0x0}}, {0x1F6B,{0x1F69,0x300,0x0}}, {0x1F6C,{0x1F68,0x301,0x0}}, {0x1F6D,{0x1F69,0x301,0x0}}, {0x1F6E,{0x1F68,0x342,0x0}}, {0x1F6F,{0x1F69,0x342,0x0}}, {0x1F70,{0x3B1,0x300,0x0}}, {0x1F71,{0x3B1,0x301,0x0}}, {0x1F72,{0x3B5,0x300,0x0}}, {0x1F73,{0x3B5,0x301,0x0}}, {0x1F74,{0x3B7,0x300,0x0}}, {0x1F75,{0x3B7,0x301,0x0}}, {0x1F76,{0x3B9,0x300,0x0}}, {0x1F77,{0x3B9,0x301,0x0}}, {0x1F78,{0x3BF,0x300,0x0}}, {0x1F79,{0x3BF,0x301,0x0}}, {0x1F7A,{0x3C5,0x300,0x0}}, {0x1F7B,{0x3C5,0x301,0x0}}, {0x1F7C,{0x3C9,0x300,0x0}}, {0x1F7D,{0x3C9,0x301,0x0}}, {0x1F80,{0x1F00,0x345,0x0}}, {0x1F81,{0x1F01,0x345,0x0}}, {0x1F82,{0x1F02,0x345,0x0}}, {0x1F83,{0x1F03,0x345,0x0}}, {0x1F84,{0x1F04,0x345,0x0}}, {0x1F85,{0x1F05,0x345,0x0}}, {0x1F86,{0x1F06,0x345,0x0}}, {0x1F87,{0x1F07,0x345,0x0}}, {0x1F88,{0x1F08,0x345,0x0}}, {0x1F89,{0x1F09,0x345,0x0}}, {0x1F8A,{0x1F0A,0x345,0x0}}, {0x1F8B,{0x1F0B,0x345,0x0}}, {0x1F8C,{0x1F0C,0x345,0x0}}, {0x1F8D,{0x1F0D,0x345,0x0}}, {0x1F8E,{0x1F0E,0x345,0x0}}, {0x1F8F,{0x1F0F,0x345,0x0}}, {0x1F90,{0x1F20,0x345,0x0}}, {0x1F91,{0x1F21,0x345,0x0}}, {0x1F92,{0x1F22,0x345,0x0}}, {0x1F93,{0x1F23,0x345,0x0}}, {0x1F94,{0x1F24,0x345,0x0}}, {0x1F95,{0x1F25,0x345,0x0}}, {0x1F96,{0x1F26,0x345,0x0}}, {0x1F97,{0x1F27,0x345,0x0}}, {0x1F98,{0x1F28,0x345,0x0}}, {0x1F99,{0x1F29,0x345,0x0}}, {0x1F9A,{0x1F2A,0x345,0x0}}, {0x1F9B,{0x1F2B,0x345,0x0}}, {0x1F9C,{0x1F2C,0x345,0x0}}, {0x1F9D,{0x1F2D,0x345,0x0}}, {0x1F9E,{0x1F2E,0x345,0x0}}, {0x1F9F,{0x1F2F,0x345,0x0}}, {0x1FA0,{0x1F60,0x345,0x0}}, {0x1FA1,{0x1F61,0x345,0x0}}, {0x1FA2,{0x1F62,0x345,0x0}}, {0x1FA3,{0x1F63,0x345,0x0}}, {0x1FA4,{0x1F64,0x345,0x0}}, {0x1FA5,{0x1F65,0x345,0x0}}, {0x1FA6,{0x1F66,0x345,0x0}}, {0x1FA7,{0x1F67,0x345,0x0}}, {0x1FA8,{0x1F68,0x345,0x0}}, {0x1FA9,{0x1F69,0x345,0x0}}, {0x1FAA,{0x1F6A,0x345,0x0}}, {0x1FAB,{0x1F6B,0x345,0x0}}, {0x1FAC,{0x1F6C,0x345,0x0}}, {0x1FAD,{0x1F6D,0x345,0x0}}, {0x1FAE,{0x1F6E,0x345,0x0}}, {0x1FAF,{0x1F6F,0x345,0x0}}, {0x1FB0,{0x3B1,0x306,0x0}}, {0x1FB1,{0x3B1,0x304,0x0}}, {0x1FB2,{0x1F70,0x345,0x0}}, {0x1FB3,{0x3B1,0x345,0x0}}, {0x1FB4,{0x1F71,0x345,0x0}}, {0x1FB6,{0x3B1,0x342,0x0}}, {0x1FB7,{0x1FB6,0x345,0x0}}, {0x1FB8,{0x391,0x306,0x0}}, {0x1FB9,{0x391,0x304,0x0}}, {0x1FBA,{0x391,0x300,0x0}}, {0x1FBB,{0x391,0x301,0x0}}, {0x1FBC,{0x391,0x345,0x0}}, {0x1FBE,{0x3B9,0x0,0x0}}, {0x1FC1,{0xA8,0x342,0x0}}, {0x1FC2,{0x1F74,0x345,0x0}}, {0x1FC3,{0x3B7,0x345,0x0}}, {0x1FC4,{0x1F75,0x345,0x0}}, {0x1FC6,{0x3B7,0x342,0x0}}, {0x1FC7,{0x1FC6,0x345,0x0}}, {0x1FC8,{0x395,0x300,0x0}}, {0x1FC9,{0x395,0x301,0x0}}, {0x1FCA,{0x397,0x300,0x0}}, {0x1FCB,{0x397,0x301,0x0}}, {0x1FCC,{0x397,0x345,0x0}}, {0x1FCD,{0x1FBF,0x300,0x0}}, {0x1FCE,{0x1FBF,0x301,0x0}}, {0x1FCF,{0x1FBF,0x342,0x0}}, {0x1FD0,{0x3B9,0x306,0x0}}, {0x1FD1,{0x3B9,0x304,0x0}}, {0x1FD2,{0x3CA,0x300,0x0}}, {0x1FD3,{0x3CA,0x301,0x0}}, {0x1FD6,{0x3B9,0x342,0x0}}, {0x1FD7,{0x3CA,0x342,0x0}}, {0x1FD8,{0x399,0x306,0x0}}, {0x1FD9,{0x399,0x304,0x0}}, {0x1FDA,{0x399,0x300,0x0}}, {0x1FDB,{0x399,0x301,0x0}}, {0x1FDD,{0x1FFE,0x300,0x0}}, {0x1FDE,{0x1FFE,0x301,0x0}}, {0x1FDF,{0x1FFE,0x342,0x0}}, {0x1FE0,{0x3C5,0x306,0x0}}, {0x1FE1,{0x3C5,0x304,0x0}}, {0x1FE2,{0x3CB,0x300,0x0}}, {0x1FE3,{0x3CB,0x301,0x0}}, {0x1FE4,{0x3C1,0x313,0x0}}, {0x1FE5,{0x3C1,0x314,0x0}}, {0x1FE6,{0x3C5,0x342,0x0}}, {0x1FE7,{0x3CB,0x342,0x0}}, {0x1FE8,{0x3A5,0x306,0x0}}, {0x1FE9,{0x3A5,0x304,0x0}}, {0x1FEA,{0x3A5,0x300,0x0}}, {0x1FEB,{0x3A5,0x301,0x0}}, {0x1FEC,{0x3A1,0x314,0x0}}, {0x1FED,{0xA8,0x300,0x0}}, {0x1FEE,{0xA8,0x301,0x0}}, {0x1FEF,{0x60,0x0,0x0}}, {0x1FF2,{0x1F7C,0x345,0x0}}, {0x1FF3,{0x3C9,0x345,0x0}}, {0x1FF4,{0x1F79,0x345,0x0}}, {0x1FF6,{0x3C9,0x342,0x0}}, {0x1FF7,{0x1FF6,0x345,0x0}}, {0x1FF8,{0x39F,0x300,0x0}}, {0x1FF9,{0x39F,0x301,0x0}}, {0x1FFA,{0x3A9,0x300,0x0}}, {0x1FFB,{0x3A9,0x301,0x0}}, {0x1FFC,{0x3A9,0x345,0x0}}, {0x1FFD,{0xB4,0x0,0x0}}, {0x2000,{0x2002,0x0,0x0}}, {0x2001,{0x2003,0x0,0x0}}, {0x2126,{0x3A9,0x0,0x0}}, {0x212A,{0x4B,0x0,0x0}}, {0x212B,{0xC5,0x0,0x0}}, {0x2204,{0x2203,0x338,0x0}}, {0x2209,{0x2208,0x338,0x0}}, {0x220C,{0x220B,0x338,0x0}}, {0x2224,{0x2223,0x338,0x0}}, {0x2226,{0x2225,0x338,0x0}}, {0x2241,{0x7E,0x338,0x0}}, {0x2244,{0x2243,0x338,0x0}}, {0x2247,{0x2245,0x338,0x0}}, {0x2249,{0x2248,0x338,0x0}}, {0x2260,{0x3D,0x338,0x0}}, {0x2262,{0x2261,0x338,0x0}}, {0x226D,{0x224D,0x338,0x0}}, {0x226E,{0x3C,0x338,0x0}}, {0x226F,{0x3E,0x338,0x0}}, {0x2270,{0x2264,0x338,0x0}}, {0x2271,{0x2265,0x338,0x0}}, {0x2274,{0x2272,0x338,0x0}}, {0x2275,{0x2273,0x338,0x0}}, {0x2278,{0x2276,0x338,0x0}}, {0x2279,{0x2277,0x338,0x0}}, {0x2280,{0x227A,0x338,0x0}}, {0x2281,{0x227B,0x338,0x0}}, {0x2284,{0x2282,0x338,0x0}}, {0x2285,{0x2283,0x338,0x0}}, {0x2288,{0x2286,0x338,0x0}}, {0x2289,{0x2287,0x338,0x0}}, {0x22AC,{0x22A2,0x338,0x0}}, {0x22AD,{0x22A8,0x338,0x0}}, {0x22AE,{0x22A9,0x338,0x0}}, {0x22AF,{0x22AB,0x338,0x0}}, {0x22E0,{0x227C,0x338,0x0}}, {0x22E1,{0x227D,0x338,0x0}}, {0x22E2,{0x2291,0x338,0x0}}, {0x22E3,{0x2292,0x338,0x0}}, {0x22EA,{0x22B2,0x338,0x0}}, {0x22EB,{0x22B3,0x338,0x0}}, {0x22EC,{0x22B4,0x338,0x0}}, {0x22ED,{0x22B5,0x338,0x0}}, {0x2329,{0x3008,0x0,0x0}}, {0x232A,{0x3009,0x0,0x0}}, {0x304C,{0x304B,0x3099,0x0}}, {0x304E,{0x304D,0x3099,0x0}}, {0x3050,{0x304F,0x3099,0x0}}, {0x3052,{0x3051,0x3099,0x0}}, {0x3054,{0x3053,0x3099,0x0}}, {0x3056,{0x3055,0x3099,0x0}}, {0x3058,{0x3057,0x3099,0x0}}, {0x305A,{0x3059,0x3099,0x0}}, {0x305C,{0x305B,0x3099,0x0}}, {0x305E,{0x305D,0x3099,0x0}}, {0x3060,{0x305F,0x3099,0x0}}, {0x3062,{0x3061,0x3099,0x0}}, {0x3065,{0x3064,0x3099,0x0}}, {0x3067,{0x3066,0x3099,0x0}}, {0x3069,{0x3068,0x3099,0x0}}, {0x3070,{0x306F,0x3099,0x0}}, {0x3071,{0x306F,0x309A,0x0}}, {0x3073,{0x3072,0x3099,0x0}}, {0x3074,{0x3072,0x309A,0x0}}, {0x3076,{0x3075,0x3099,0x0}}, {0x3077,{0x3075,0x309A,0x0}}, {0x3079,{0x3078,0x3099,0x0}}, {0x307A,{0x3078,0x309A,0x0}}, {0x307C,{0x307B,0x3099,0x0}}, {0x307D,{0x307B,0x309A,0x0}}, {0x3094,{0x3046,0x3099,0x0}}, {0x309E,{0x309D,0x3099,0x0}}, {0x30AC,{0x30AB,0x3099,0x0}}, {0x30AE,{0x30AD,0x3099,0x0}}, {0x30B0,{0x30AF,0x3099,0x0}}, {0x30B2,{0x30B1,0x3099,0x0}}, {0x30B4,{0x30B3,0x3099,0x0}}, {0x30B6,{0x30B5,0x3099,0x0}}, {0x30B8,{0x30B7,0x3099,0x0}}, {0x30BA,{0x30B9,0x3099,0x0}}, {0x30BC,{0x30BB,0x3099,0x0}}, {0x30BE,{0x30BD,0x3099,0x0}}, {0x30C0,{0x30BF,0x3099,0x0}}, {0x30C2,{0x30C1,0x3099,0x0}}, {0x30C5,{0x30C4,0x3099,0x0}}, {0x30C7,{0x30C6,0x3099,0x0}}, {0x30C9,{0x30C8,0x3099,0x0}}, {0x30D0,{0x30CF,0x3099,0x0}}, {0x30D1,{0x30CF,0x309A,0x0}}, {0x30D3,{0x30D2,0x3099,0x0}}, {0x30D4,{0x30D2,0x309A,0x0}}, {0x30D6,{0x30D5,0x3099,0x0}}, {0x30D7,{0x30D5,0x309A,0x0}}, {0x30D9,{0x30D8,0x3099,0x0}}, {0x30DA,{0x30D8,0x309A,0x0}}, {0x30DC,{0x30DB,0x3099,0x0}}, {0x30DD,{0x30DB,0x309A,0x0}}, {0x30F4,{0x30A6,0x3099,0x0}}, {0x30F7,{0x30EF,0x3099,0x0}}, {0x30F8,{0x30F0,0x3099,0x0}}, {0x30F9,{0x30F1,0x3099,0x0}}, {0x30FA,{0x30F2,0x3099,0x0}}, {0x30FE,{0x30FD,0x3099,0x0}}, {0xF900,{0x8C48,0x0,0x0}}, {0xF901,{0x66F4,0x0,0x0}}, {0xF902,{0x8ECA,0x0,0x0}}, {0xF903,{0x8CC8,0x0,0x0}}, {0xF904,{0x6ED1,0x0,0x0}}, {0xF905,{0x4E32,0x0,0x0}}, {0xF906,{0x53E5,0x0,0x0}}, {0xF907,{0x9F9C,0x0,0x0}}, {0xF908,{0x9F9C,0x0,0x0}}, {0xF909,{0x5951,0x0,0x0}}, {0xF90A,{0x91D1,0x0,0x0}}, {0xF90B,{0x5587,0x0,0x0}}, {0xF90C,{0x5948,0x0,0x0}}, {0xF90D,{0x61F6,0x0,0x0}}, {0xF90E,{0x7669,0x0,0x0}}, {0xF90F,{0x7F85,0x0,0x0}}, {0xF910,{0x863F,0x0,0x0}}, {0xF911,{0x87BA,0x0,0x0}}, {0xF912,{0x88F8,0x0,0x0}}, {0xF913,{0x908F,0x0,0x0}}, {0xF914,{0x6A02,0x0,0x0}}, {0xF915,{0x6D1B,0x0,0x0}}, {0xF916,{0x70D9,0x0,0x0}}, {0xF917,{0x73DE,0x0,0x0}}, {0xF918,{0x843D,0x0,0x0}}, {0xF919,{0x916A,0x0,0x0}}, {0xF91A,{0x99F1,0x0,0x0}}, {0xF91B,{0x4E82,0x0,0x0}}, {0xF91C,{0x5375,0x0,0x0}}, {0xF91D,{0x6B04,0x0,0x0}}, {0xF91E,{0x721B,0x0,0x0}}, {0xF91F,{0x862D,0x0,0x0}}, {0xF920,{0x9E1E,0x0,0x0}}, {0xF921,{0x5D50,0x0,0x0}}, {0xF922,{0x6FEB,0x0,0x0}}, {0xF923,{0x85CD,0x0,0x0}}, {0xF924,{0x8964,0x0,0x0}}, {0xF925,{0x62C9,0x0,0x0}}, {0xF926,{0x81D8,0x0,0x0}}, {0xF927,{0x881F,0x0,0x0}}, {0xF928,{0x5ECA,0x0,0x0}}, {0xF929,{0x6717,0x0,0x0}}, {0xF92A,{0x6D6A,0x0,0x0}}, {0xF92B,{0x72FC,0x0,0x0}}, {0xF92C,{0x90CE,0x0,0x0}}, {0xF92D,{0x4F86,0x0,0x0}}, {0xF92E,{0x51B7,0x0,0x0}}, {0xF92F,{0x52DE,0x0,0x0}}, {0xF930,{0x64C4,0x0,0x0}}, {0xF931,{0x6AD3,0x0,0x0}}, {0xF932,{0x7210,0x0,0x0}}, {0xF933,{0x76E7,0x0,0x0}}, {0xF934,{0x8001,0x0,0x0}}, {0xF935,{0x8606,0x0,0x0}}, {0xF936,{0x865C,0x0,0x0}}, {0xF937,{0x8DEF,0x0,0x0}}, {0xF938,{0x9732,0x0,0x0}}, {0xF939,{0x9B6F,0x0,0x0}}, {0xF93A,{0x9DFA,0x0,0x0}}, {0xF93B,{0x788C,0x0,0x0}}, {0xF93C,{0x797F,0x0,0x0}}, {0xF93D,{0x7DA0,0x0,0x0}}, {0xF93E,{0x83C9,0x0,0x0}}, {0xF93F,{0x9304,0x0,0x0}}, {0xF940,{0x9E7F,0x0,0x0}}, {0xF941,{0x8AD6,0x0,0x0}}, {0xF942,{0x58DF,0x0,0x0}}, {0xF943,{0x5F04,0x0,0x0}}, {0xF944,{0x7C60,0x0,0x0}}, {0xF945,{0x807E,0x0,0x0}}, {0xF946,{0x7262,0x0,0x0}}, {0xF947,{0x78CA,0x0,0x0}}, {0xF948,{0x8CC2,0x0,0x0}}, {0xF949,{0x96F7,0x0,0x0}}, {0xF94A,{0x58D8,0x0,0x0}}, {0xF94B,{0x5C62,0x0,0x0}}, {0xF94C,{0x6A13,0x0,0x0}}, {0xF94D,{0x6DDA,0x0,0x0}}, {0xF94E,{0x6F0F,0x0,0x0}}, {0xF94F,{0x7D2F,0x0,0x0}}, {0xF950,{0x7E37,0x0,0x0}}, {0xF951,{0x96FB,0x0,0x0}}, {0xF952,{0x52D2,0x0,0x0}}, {0xF953,{0x808B,0x0,0x0}}, {0xF954,{0x51DC,0x0,0x0}}, {0xF955,{0x51CC,0x0,0x0}}, {0xF956,{0x7A1C,0x0,0x0}}, {0xF957,{0x7DBE,0x0,0x0}}, {0xF958,{0x83F1,0x0,0x0}}, {0xF959,{0x9675,0x0,0x0}}, {0xF95A,{0x8B80,0x0,0x0}}, {0xF95B,{0x62CF,0x0,0x0}}, {0xF95C,{0x6A02,0x0,0x0}}, {0xF95D,{0x8AFE,0x0,0x0}}, {0xF95E,{0x4E39,0x0,0x0}}, {0xF95F,{0x5BE7,0x0,0x0}}, {0xF960,{0x6012,0x0,0x0}}, {0xF961,{0x7387,0x0,0x0}}, {0xF962,{0x7570,0x0,0x0}}, {0xF963,{0x5317,0x0,0x0}}, {0xF964,{0x78FB,0x0,0x0}}, {0xF965,{0x4FBF,0x0,0x0}}, {0xF966,{0x5FA9,0x0,0x0}}, {0xF967,{0x4E0D,0x0,0x0}}, {0xF968,{0x6CCC,0x0,0x0}}, {0xF969,{0x6578,0x0,0x0}}, {0xF96A,{0x7D22,0x0,0x0}}, {0xF96B,{0x53C3,0x0,0x0}}, {0xF96C,{0x585E,0x0,0x0}}, {0xF96D,{0x7701,0x0,0x0}}, {0xF96E,{0x8449,0x0,0x0}}, {0xF96F,{0x8AAA,0x0,0x0}}, {0xF970,{0x6BBA,0x0,0x0}}, {0xF971,{0x8FB0,0x0,0x0}}, {0xF972,{0x6C88,0x0,0x0}}, {0xF973,{0x62FE,0x0,0x0}}, {0xF974,{0x82E5,0x0,0x0}}, {0xF975,{0x63A0,0x0,0x0}}, {0xF976,{0x7565,0x0,0x0}}, {0xF977,{0x4EAE,0x0,0x0}}, {0xF978,{0x5169,0x0,0x0}}, {0xF979,{0x51C9,0x0,0x0}}, {0xF97A,{0x6881,0x0,0x0}}, {0xF97B,{0x7CE7,0x0,0x0}}, {0xF97C,{0x826F,0x0,0x0}}, {0xF97D,{0x8AD2,0x0,0x0}}, {0xF97E,{0x91CF,0x0,0x0}}, {0xF97F,{0x52F5,0x0,0x0}}, {0xF980,{0x5442,0x0,0x0}}, {0xF981,{0x5973,0x0,0x0}}, {0xF982,{0x5EEC,0x0,0x0}}, {0xF983,{0x65C5,0x0,0x0}}, {0xF984,{0x6FFE,0x0,0x0}}, {0xF985,{0x792A,0x0,0x0}}, {0xF986,{0x95AD,0x0,0x0}}, {0xF987,{0x9A6A,0x0,0x0}}, {0xF988,{0x9E97,0x0,0x0}}, {0xF989,{0x9ECE,0x0,0x0}}, {0xF98A,{0x529B,0x0,0x0}}, {0xF98B,{0x66C6,0x0,0x0}}, {0xF98C,{0x6B77,0x0,0x0}}, {0xF98D,{0x8F62,0x0,0x0}}, {0xF98E,{0x5E74,0x0,0x0}}, {0xF98F,{0x6190,0x0,0x0}}, {0xF990,{0x6200,0x0,0x0}}, {0xF991,{0x649A,0x0,0x0}}, {0xF992,{0x6F23,0x0,0x0}}, {0xF993,{0x7149,0x0,0x0}}, {0xF994,{0x7489,0x0,0x0}}, {0xF995,{0x79CA,0x0,0x0}}, {0xF996,{0x7DF4,0x0,0x0}}, {0xF997,{0x806F,0x0,0x0}}, {0xF998,{0x8F26,0x0,0x0}}, {0xF999,{0x84EE,0x0,0x0}}, {0xF99A,{0x9023,0x0,0x0}}, {0xF99B,{0x934A,0x0,0x0}}, {0xF99C,{0x5217,0x0,0x0}}, {0xF99D,{0x52A3,0x0,0x0}}, {0xF99E,{0x54BD,0x0,0x0}}, {0xF99F,{0x70C8,0x0,0x0}}, {0xF9A0,{0x88C2,0x0,0x0}}, {0xF9A1,{0x8AAA,0x0,0x0}}, {0xF9A2,{0x5EC9,0x0,0x0}}, {0xF9A3,{0x5FF5,0x0,0x0}}, {0xF9A4,{0x637B,0x0,0x0}}, {0xF9A5,{0x6BAE,0x0,0x0}}, {0xF9A6,{0x7C3E,0x0,0x0}}, {0xF9A7,{0x7375,0x0,0x0}}, {0xF9A8,{0x4EE4,0x0,0x0}}, {0xF9A9,{0x56F9,0x0,0x0}}, {0xF9AA,{0x5BE7,0x0,0x0}}, {0xF9AB,{0x5DBA,0x0,0x0}}, {0xF9AC,{0x601C,0x0,0x0}}, {0xF9AD,{0x73B2,0x0,0x0}}, {0xF9AE,{0x7469,0x0,0x0}}, {0xF9AF,{0x7F9A,0x0,0x0}}, {0xF9B0,{0x8046,0x0,0x0}}, {0xF9B1,{0x9234,0x0,0x0}}, {0xF9B2,{0x96F6,0x0,0x0}}, {0xF9B3,{0x9748,0x0,0x0}}, {0xF9B4,{0x9818,0x0,0x0}}, {0xF9B5,{0x4F8B,0x0,0x0}}, {0xF9B6,{0x79AE,0x0,0x0}}, {0xF9B7,{0x91B4,0x0,0x0}}, {0xF9B8,{0x96B8,0x0,0x0}}, {0xF9B9,{0x60E1,0x0,0x0}}, {0xF9BA,{0x4E86,0x0,0x0}}, {0xF9BB,{0x50DA,0x0,0x0}}, {0xF9BC,{0x5BEE,0x0,0x0}}, {0xF9BD,{0x5C3F,0x0,0x0}}, {0xF9BE,{0x6599,0x0,0x0}}, {0xF9BF,{0x6A02,0x0,0x0}}, {0xF9C0,{0x71CE,0x0,0x0}}, {0xF9C1,{0x7642,0x0,0x0}}, {0xF9C2,{0x84FC,0x0,0x0}}, {0xF9C3,{0x907C,0x0,0x0}}, {0xF9C4,{0x9F8D,0x0,0x0}}, {0xF9C5,{0x6688,0x0,0x0}}, {0xF9C6,{0x962E,0x0,0x0}}, {0xF9C7,{0x5289,0x0,0x0}}, {0xF9C8,{0x677B,0x0,0x0}}, {0xF9C9,{0x67F3,0x0,0x0}}, {0xF9CA,{0x6D41,0x0,0x0}}, {0xF9CB,{0x6E9C,0x0,0x0}}, {0xF9CC,{0x7409,0x0,0x0}}, {0xF9CD,{0x7559,0x0,0x0}}, {0xF9CE,{0x786B,0x0,0x0}}, {0xF9CF,{0x7D10,0x0,0x0}}, {0xF9D0,{0x985E,0x0,0x0}}, {0xF9D1,{0x516D,0x0,0x0}}, {0xF9D2,{0x622E,0x0,0x0}}, {0xF9D3,{0x9678,0x0,0x0}}, {0xF9D4,{0x502B,0x0,0x0}}, {0xF9D5,{0x5D19,0x0,0x0}}, {0xF9D6,{0x6DEA,0x0,0x0}}, {0xF9D7,{0x8F2A,0x0,0x0}}, {0xF9D8,{0x5F8B,0x0,0x0}}, {0xF9D9,{0x6144,0x0,0x0}}, {0xF9DA,{0x6817,0x0,0x0}}, {0xF9DB,{0x7387,0x0,0x0}}, {0xF9DC,{0x9686,0x0,0x0}}, {0xF9DD,{0x5229,0x0,0x0}}, {0xF9DE,{0x540F,0x0,0x0}}, {0xF9DF,{0x5C65,0x0,0x0}}, {0xF9E0,{0x6613,0x0,0x0}}, {0xF9E1,{0x674E,0x0,0x0}}, {0xF9E2,{0x68A8,0x0,0x0}}, {0xF9E3,{0x6CE5,0x0,0x0}}, {0xF9E4,{0x7406,0x0,0x0}}, {0xF9E5,{0x75E2,0x0,0x0}}, {0xF9E6,{0x7F79,0x0,0x0}}, {0xF9E7,{0x88CF,0x0,0x0}}, {0xF9E8,{0x88E1,0x0,0x0}}, {0xF9E9,{0x91CC,0x0,0x0}}, {0xF9EA,{0x96E2,0x0,0x0}}, {0xF9EB,{0x533F,0x0,0x0}}, {0xF9EC,{0x6EBA,0x0,0x0}}, {0xF9ED,{0x541D,0x0,0x0}}, {0xF9EE,{0x71D0,0x0,0x0}}, {0xF9EF,{0x7498,0x0,0x0}}, {0xF9F0,{0x85FA,0x0,0x0}}, {0xF9F1,{0x96A3,0x0,0x0}}, {0xF9F2,{0x9C57,0x0,0x0}}, {0xF9F3,{0x9E9F,0x0,0x0}}, {0xF9F4,{0x6797,0x0,0x0}}, {0xF9F5,{0x6DCB,0x0,0x0}}, {0xF9F6,{0x81E8,0x0,0x0}}, {0xF9F7,{0x7ACB,0x0,0x0}}, {0xF9F8,{0x7B20,0x0,0x0}}, {0xF9F9,{0x7C92,0x0,0x0}}, {0xF9FA,{0x72C0,0x0,0x0}}, {0xF9FB,{0x7099,0x0,0x0}}, {0xF9FC,{0x8B58,0x0,0x0}}, {0xF9FD,{0x4EC0,0x0,0x0}}, {0xF9FE,{0x8336,0x0,0x0}}, {0xF9FF,{0x523A,0x0,0x0}}, {0xFA00,{0x5207,0x0,0x0}}, {0xFA01,{0x5EA6,0x0,0x0}}, {0xFA02,{0x62D3,0x0,0x0}}, {0xFA03,{0x7CD6,0x0,0x0}}, {0xFA04,{0x5B85,0x0,0x0}}, {0xFA05,{0x6D1E,0x0,0x0}}, {0xFA06,{0x66B4,0x0,0x0}}, {0xFA07,{0x8F3B,0x0,0x0}}, {0xFA08,{0x884C,0x0,0x0}}, {0xFA09,{0x964D,0x0,0x0}}, {0xFA0A,{0x898B,0x0,0x0}}, {0xFA0B,{0x5ED3,0x0,0x0}}, {0xFA0C,{0x5140,0x0,0x0}}, {0xFA0D,{0x55C0,0x0,0x0}}, {0xFA10,{0x585A,0x0,0x0}}, {0xFA12,{0x6674,0x0,0x0}}, {0xFA15,{0x51DE,0x0,0x0}}, {0xFA16,{0x732A,0x0,0x0}}, {0xFA17,{0x76CA,0x0,0x0}}, {0xFA18,{0x793C,0x0,0x0}}, {0xFA19,{0x795E,0x0,0x0}}, {0xFA1A,{0x7965,0x0,0x0}}, {0xFA1B,{0x798F,0x0,0x0}}, {0xFA1C,{0x9756,0x0,0x0}}, {0xFA1D,{0x7CBE,0x0,0x0}}, {0xFA1E,{0x7FBD,0x0,0x0}}, {0xFA20,{0x8612,0x0,0x0}}, {0xFA22,{0x8AF8,0x0,0x0}}, {0xFA25,{0x9038,0x0,0x0}}, {0xFA26,{0x90FD,0x0,0x0}}, {0xFA2A,{0x98EF,0x0,0x0}}, {0xFA2B,{0x98FC,0x0,0x0}}, {0xFA2C,{0x9928,0x0,0x0}}, {0xFA2D,{0x9DB4,0x0,0x0}}, {0xFB1F,{0x5F2,0x5B7,0x0}}, {0xFB2A,{0x5E9,0x5C1,0x0}}, {0xFB2B,{0x5E9,0x5C2,0x0}}, {0xFB2C,{0x5E9,0x5BC,0x5C1}}, {0xFB2D,{0x5E9,0x5BC,0x5C2}}, {0xFB2E,{0x5D0,0x5B7,0x0}}, {0xFB2F,{0x5D0,0x5B8,0x0}}, {0xFB30,{0x5D0,0x5BC,0x0}}, {0xFB31,{0x5D1,0x5BC,0x0}}, {0xFB32,{0x5D2,0x5BC,0x0}}, {0xFB33,{0x5D3,0x5BC,0x0}}, {0xFB34,{0x5D4,0x5BC,0x0}}, {0xFB35,{0x5D5,0x5BC,0x0}}, {0xFB36,{0x5D6,0x5BC,0x0}}, {0xFB38,{0x5D8,0x5BC,0x0}}, {0xFB39,{0x5D9,0x5BC,0x0}}, {0xFB3A,{0x5DA,0x5BC,0x0}}, {0xFB3B,{0x5DB,0x5BC,0x0}}, {0xFB3C,{0x5DC,0x5BC,0x0}}, {0xFB3E,{0x5DE,0x5BC,0x0}}, {0xFB40,{0x5E0,0x5BC,0x0}}, {0xFB41,{0x5E1,0x5BC,0x0}}, {0xFB43,{0x5E3,0x5BC,0x0}}, {0xFB44,{0x5E4,0x5BC,0x0}}, {0xFB46,{0x5E6,0x5BC,0x0}}, {0xFB47,{0x5E7,0x5BC,0x0}}, {0xFB48,{0x5E8,0x5BC,0x0}}, {0xFB49,{0x5E9,0x5BC,0x0}}, {0xFB4A,{0x5EA,0x5BC,0x0}}, {0xFB4B,{0x5D5,0x5B9,0x0}}, {0xFB4C,{0x5D1,0x5BF,0x0}}, {0xFB4D,{0x5DB,0x5BF,0x0}}, {0xFB4E,{0x5E4,0x5BF,0x0}} }; /* All upper-case translations are included here */ #define NUM_TOUPPER_INFO 677 static const unirelate toupper_info[NUM_TOUPPER_INFO] = { {0x61,0x41}, {0x62,0x42}, {0x63,0x43}, {0x64,0x44}, {0x65,0x45}, {0x66,0x46}, {0x67,0x47}, {0x68,0x48}, {0x69,0x49}, {0x6A,0x4A}, {0x6B,0x4B}, {0x6C,0x4C}, {0x6D,0x4D}, {0x6E,0x4E}, {0x6F,0x4F}, {0x70,0x50}, {0x71,0x51}, {0x72,0x52}, {0x73,0x53}, {0x74,0x54}, {0x75,0x55}, {0x76,0x56}, {0x77,0x57}, {0x78,0x58}, {0x79,0x59}, {0x7A,0x5A}, {0xE0,0xC0}, {0xE1,0xC1}, {0xE2,0xC2}, {0xE3,0xC3}, {0xE4,0xC4}, {0xE5,0xC5}, {0xE6,0xC6}, {0xE7,0xC7}, {0xE8,0xC8}, {0xE9,0xC9}, {0xEA,0xCA}, {0xEB,0xCB}, {0xEC,0xCC}, {0xED,0xCD}, {0xEE,0xCE}, {0xEF,0xCF}, {0xF0,0xD0}, {0xF1,0xD1}, {0xF2,0xD2}, {0xF3,0xD3}, {0xF4,0xD4}, {0xF5,0xD5}, {0xF6,0xD6}, {0xF8,0xD8}, {0xF9,0xD9}, {0xFA,0xDA}, {0xFB,0xDB}, {0xFC,0xDC}, {0xFD,0xDD}, {0xFE,0xDE}, {0xFF,0x178}, {0x101,0x100}, {0x103,0x102}, {0x105,0x104}, {0x107,0x106}, {0x109,0x108}, {0x10B,0x10A}, {0x10D,0x10C}, {0x10F,0x10E}, {0x111,0x110}, {0x113,0x112}, {0x115,0x114}, {0x117,0x116}, {0x119,0x118}, {0x11B,0x11A}, {0x11D,0x11C}, {0x11F,0x11E}, {0x121,0x120}, {0x123,0x122}, {0x125,0x124}, {0x127,0x126}, {0x129,0x128}, {0x12B,0x12A}, {0x12D,0x12C}, {0x12F,0x12E}, {0x131,0x49}, {0x133,0x132}, {0x135,0x134}, {0x137,0x136}, {0x13A,0x139}, {0x13C,0x13B}, {0x13E,0x13D}, {0x140,0x13F}, {0x142,0x141}, {0x144,0x143}, {0x146,0x145}, {0x148,0x147}, {0x14B,0x14A}, {0x14D,0x14C}, {0x14F,0x14E}, {0x151,0x150}, {0x153,0x152}, {0x155,0x154}, {0x157,0x156}, {0x159,0x158}, {0x15B,0x15A}, {0x15D,0x15C}, {0x15F,0x15E}, {0x161,0x160}, {0x163,0x162}, {0x165,0x164}, {0x167,0x166}, {0x169,0x168}, {0x16B,0x16A}, {0x16D,0x16C}, {0x16F,0x16E}, {0x171,0x170}, {0x173,0x172}, {0x175,0x174}, {0x177,0x176}, {0x17A,0x179}, {0x17C,0x17B}, {0x17E,0x17D}, {0x17F,0x53}, {0x183,0x182}, {0x185,0x184}, {0x188,0x187}, {0x18C,0x18B}, {0x192,0x191}, {0x199,0x198}, {0x1A1,0x1A0}, {0x1A3,0x1A2}, {0x1A5,0x1A4}, {0x1A8,0x1A7}, {0x1AD,0x1AC}, {0x1B0,0x1AF}, {0x1B4,0x1B3}, {0x1B6,0x1B5}, {0x1B9,0x1B8}, {0x1BD,0x1BC}, {0x1C5,0x1C4}, {0x1C6,0x1C4}, {0x1C8,0x1C7}, {0x1C9,0x1C7}, {0x1CB,0x1CA}, {0x1CC,0x1CA}, {0x1CE,0x1CD}, {0x1D0,0x1CF}, {0x1D2,0x1D1}, {0x1D4,0x1D3}, {0x1D6,0x1D5}, {0x1D8,0x1D7}, {0x1DA,0x1D9}, {0x1DC,0x1DB}, {0x1DD,0x18E}, {0x1DF,0x1DE}, {0x1E1,0x1E0}, {0x1E3,0x1E2}, {0x1E5,0x1E4}, {0x1E7,0x1E6}, {0x1E9,0x1E8}, {0x1EB,0x1EA}, {0x1ED,0x1EC}, {0x1EF,0x1EE}, {0x1F2,0x1F1}, {0x1F3,0x1F1}, {0x1F5,0x1F4}, {0x1FB,0x1FA}, {0x1FD,0x1FC}, {0x1FF,0x1FE}, {0x201,0x200}, {0x203,0x202}, {0x205,0x204}, {0x207,0x206}, {0x209,0x208}, {0x20B,0x20A}, {0x20D,0x20C}, {0x20F,0x20E}, {0x211,0x210}, {0x213,0x212}, {0x215,0x214}, {0x217,0x216}, {0x253,0x181}, {0x254,0x186}, {0x256,0x189}, {0x257,0x18A}, {0x259,0x18F}, {0x25B,0x190}, {0x260,0x193}, {0x263,0x194}, {0x268,0x197}, {0x269,0x196}, {0x26F,0x19C}, {0x272,0x19D}, {0x275,0x19F}, {0x283,0x1A9}, {0x288,0x1AE}, {0x28A,0x1B1}, {0x28B,0x1B2}, {0x292,0x1B7}, {0x3AC,0x386}, {0x3AD,0x388}, {0x3AE,0x389}, {0x3AF,0x38A}, {0x3B1,0x391}, {0x3B2,0x392}, {0x3B3,0x393}, {0x3B4,0x394}, {0x3B5,0x395}, {0x3B6,0x396}, {0x3B7,0x397}, {0x3B8,0x398}, {0x3B9,0x399}, {0x3BA,0x39A}, {0x3BB,0x39B}, {0x3BC,0x39C}, {0x3BD,0x39D}, {0x3BE,0x39E}, {0x3BF,0x39F}, {0x3C0,0x3A0}, {0x3C1,0x3A1}, {0x3C2,0x3A3}, {0x3C3,0x3A3}, {0x3C4,0x3A4}, {0x3C5,0x3A5}, {0x3C6,0x3A6}, {0x3C7,0x3A7}, {0x3C8,0x3A8}, {0x3C9,0x3A9}, {0x3CA,0x3AA}, {0x3CB,0x3AB}, {0x3CC,0x38C}, {0x3CD,0x38E}, {0x3CE,0x38F}, {0x3D0,0x392}, {0x3D1,0x398}, {0x3D5,0x3A6}, {0x3D6,0x3A0}, {0x3E3,0x3E2}, {0x3E5,0x3E4}, {0x3E7,0x3E6}, {0x3E9,0x3E8}, {0x3EB,0x3EA}, {0x3ED,0x3EC}, {0x3EF,0x3EE}, {0x3F0,0x39A}, {0x3F1,0x3A1}, {0x3F2,0x3A3}, {0x430,0x410}, {0x431,0x411}, {0x432,0x412}, {0x433,0x413}, {0x434,0x414}, {0x435,0x415}, {0x436,0x416}, {0x437,0x417}, {0x438,0x418}, {0x439,0x419}, {0x43A,0x41A}, {0x43B,0x41B}, {0x43C,0x41C}, {0x43D,0x41D}, {0x43E,0x41E}, {0x43F,0x41F}, {0x440,0x420}, {0x441,0x421}, {0x442,0x422}, {0x443,0x423}, {0x444,0x424}, {0x445,0x425}, {0x446,0x426}, {0x447,0x427}, {0x448,0x428}, {0x449,0x429}, {0x44A,0x42A}, {0x44B,0x42B}, {0x44C,0x42C}, {0x44D,0x42D}, {0x44E,0x42E}, {0x44F,0x42F}, {0x451,0x401}, {0x452,0x402}, {0x453,0x403}, {0x454,0x404}, {0x455,0x405}, {0x456,0x406}, {0x457,0x407}, {0x458,0x408}, {0x459,0x409}, {0x45A,0x40A}, {0x45B,0x40B}, {0x45C,0x40C}, {0x45E,0x40E}, {0x45F,0x40F}, {0x461,0x460}, {0x463,0x462}, {0x465,0x464}, {0x467,0x466}, {0x469,0x468}, {0x46B,0x46A}, {0x46D,0x46C}, {0x46F,0x46E}, {0x471,0x470}, {0x473,0x472}, {0x475,0x474}, {0x477,0x476}, {0x479,0x478}, {0x47B,0x47A}, {0x47D,0x47C}, {0x47F,0x47E}, {0x481,0x480}, {0x491,0x490}, {0x493,0x492}, {0x495,0x494}, {0x497,0x496}, {0x499,0x498}, {0x49B,0x49A}, {0x49D,0x49C}, {0x49F,0x49E}, {0x4A1,0x4A0}, {0x4A3,0x4A2}, {0x4A5,0x4A4}, {0x4A7,0x4A6}, {0x4A9,0x4A8}, {0x4AB,0x4AA}, {0x4AD,0x4AC}, {0x4AF,0x4AE}, {0x4B1,0x4B0}, {0x4B3,0x4B2}, {0x4B5,0x4B4}, {0x4B7,0x4B6}, {0x4B9,0x4B8}, {0x4BB,0x4BA}, {0x4BD,0x4BC}, {0x4BF,0x4BE}, {0x4C2,0x4C1}, {0x4C4,0x4C3}, {0x4C8,0x4C7}, {0x4CC,0x4CB}, {0x4D1,0x4D0}, {0x4D3,0x4D2}, {0x4D5,0x4D4}, {0x4D7,0x4D6}, {0x4D9,0x4D8}, {0x4DB,0x4DA}, {0x4DD,0x4DC}, {0x4DF,0x4DE}, {0x4E1,0x4E0}, {0x4E3,0x4E2}, {0x4E5,0x4E4}, {0x4E7,0x4E6}, {0x4E9,0x4E8}, {0x4EB,0x4EA}, {0x4EF,0x4EE}, {0x4F1,0x4F0}, {0x4F3,0x4F2}, {0x4F5,0x4F4}, {0x4F9,0x4F8}, {0x561,0x531}, {0x562,0x532}, {0x563,0x533}, {0x564,0x534}, {0x565,0x535}, {0x566,0x536}, {0x567,0x537}, {0x568,0x538}, {0x569,0x539}, {0x56A,0x53A}, {0x56B,0x53B}, {0x56C,0x53C}, {0x56D,0x53D}, {0x56E,0x53E}, {0x56F,0x53F}, {0x570,0x540}, {0x571,0x541}, {0x572,0x542}, {0x573,0x543}, {0x574,0x544}, {0x575,0x545}, {0x576,0x546}, {0x577,0x547}, {0x578,0x548}, {0x579,0x549}, {0x57A,0x54A}, {0x57B,0x54B}, {0x57C,0x54C}, {0x57D,0x54D}, {0x57E,0x54E}, {0x57F,0x54F}, {0x580,0x550}, {0x581,0x551}, {0x582,0x552}, {0x583,0x553}, {0x584,0x554}, {0x585,0x555}, {0x586,0x556}, {0x1E01,0x1E00}, {0x1E03,0x1E02}, {0x1E05,0x1E04}, {0x1E07,0x1E06}, {0x1E09,0x1E08}, {0x1E0B,0x1E0A}, {0x1E0D,0x1E0C}, {0x1E0F,0x1E0E}, {0x1E11,0x1E10}, {0x1E13,0x1E12}, {0x1E15,0x1E14}, {0x1E17,0x1E16}, {0x1E19,0x1E18}, {0x1E1B,0x1E1A}, {0x1E1D,0x1E1C}, {0x1E1F,0x1E1E}, {0x1E21,0x1E20}, {0x1E23,0x1E22}, {0x1E25,0x1E24}, {0x1E27,0x1E26}, {0x1E29,0x1E28}, {0x1E2B,0x1E2A}, {0x1E2D,0x1E2C}, {0x1E2F,0x1E2E}, {0x1E31,0x1E30}, {0x1E33,0x1E32}, {0x1E35,0x1E34}, {0x1E37,0x1E36}, {0x1E39,0x1E38}, {0x1E3B,0x1E3A}, {0x1E3D,0x1E3C}, {0x1E3F,0x1E3E}, {0x1E41,0x1E40}, {0x1E43,0x1E42}, {0x1E45,0x1E44}, {0x1E47,0x1E46}, {0x1E49,0x1E48}, {0x1E4B,0x1E4A}, {0x1E4D,0x1E4C}, {0x1E4F,0x1E4E}, {0x1E51,0x1E50}, {0x1E53,0x1E52}, {0x1E55,0x1E54}, {0x1E57,0x1E56}, {0x1E59,0x1E58}, {0x1E5B,0x1E5A}, {0x1E5D,0x1E5C}, {0x1E5F,0x1E5E}, {0x1E61,0x1E60}, {0x1E63,0x1E62}, {0x1E65,0x1E64}, {0x1E67,0x1E66}, {0x1E69,0x1E68}, {0x1E6B,0x1E6A}, {0x1E6D,0x1E6C}, {0x1E6F,0x1E6E}, {0x1E71,0x1E70}, {0x1E73,0x1E72}, {0x1E75,0x1E74}, {0x1E77,0x1E76}, {0x1E79,0x1E78}, {0x1E7B,0x1E7A}, {0x1E7D,0x1E7C}, {0x1E7F,0x1E7E}, {0x1E81,0x1E80}, {0x1E83,0x1E82}, {0x1E85,0x1E84}, {0x1E87,0x1E86}, {0x1E89,0x1E88}, {0x1E8B,0x1E8A}, {0x1E8D,0x1E8C}, {0x1E8F,0x1E8E}, {0x1E91,0x1E90}, {0x1E93,0x1E92}, {0x1E95,0x1E94}, {0x1E9B,0x1E60}, {0x1EA1,0x1EA0}, {0x1EA3,0x1EA2}, {0x1EA5,0x1EA4}, {0x1EA7,0x1EA6}, {0x1EA9,0x1EA8}, {0x1EAB,0x1EAA}, {0x1EAD,0x1EAC}, {0x1EAF,0x1EAE}, {0x1EB1,0x1EB0}, {0x1EB3,0x1EB2}, {0x1EB5,0x1EB4}, {0x1EB7,0x1EB6}, {0x1EB9,0x1EB8}, {0x1EBB,0x1EBA}, {0x1EBD,0x1EBC}, {0x1EBF,0x1EBE}, {0x1EC1,0x1EC0}, {0x1EC3,0x1EC2}, {0x1EC5,0x1EC4}, {0x1EC7,0x1EC6}, {0x1EC9,0x1EC8}, {0x1ECB,0x1ECA}, {0x1ECD,0x1ECC}, {0x1ECF,0x1ECE}, {0x1ED1,0x1ED0}, {0x1ED3,0x1ED2}, {0x1ED5,0x1ED4}, {0x1ED7,0x1ED6}, {0x1ED9,0x1ED8}, {0x1EDB,0x1EDA}, {0x1EDD,0x1EDC}, {0x1EDF,0x1EDE}, {0x1EE1,0x1EE0}, {0x1EE3,0x1EE2}, {0x1EE5,0x1EE4}, {0x1EE7,0x1EE6}, {0x1EE9,0x1EE8}, {0x1EEB,0x1EEA}, {0x1EED,0x1EEC}, {0x1EEF,0x1EEE}, {0x1EF1,0x1EF0}, {0x1EF3,0x1EF2}, {0x1EF5,0x1EF4}, {0x1EF7,0x1EF6}, {0x1EF9,0x1EF8}, {0x1F00,0x1F08}, {0x1F01,0x1F09}, {0x1F02,0x1F0A}, {0x1F03,0x1F0B}, {0x1F04,0x1F0C}, {0x1F05,0x1F0D}, {0x1F06,0x1F0E}, {0x1F07,0x1F0F}, {0x1F10,0x1F18}, {0x1F11,0x1F19}, {0x1F12,0x1F1A}, {0x1F13,0x1F1B}, {0x1F14,0x1F1C}, {0x1F15,0x1F1D}, {0x1F20,0x1F28}, {0x1F21,0x1F29}, {0x1F22,0x1F2A}, {0x1F23,0x1F2B}, {0x1F24,0x1F2C}, {0x1F25,0x1F2D}, {0x1F26,0x1F2E}, {0x1F27,0x1F2F}, {0x1F30,0x1F38}, {0x1F31,0x1F39}, {0x1F32,0x1F3A}, {0x1F33,0x1F3B}, {0x1F34,0x1F3C}, {0x1F35,0x1F3D}, {0x1F36,0x1F3E}, {0x1F37,0x1F3F}, {0x1F40,0x1F48}, {0x1F41,0x1F49}, {0x1F42,0x1F4A}, {0x1F43,0x1F4B}, {0x1F44,0x1F4C}, {0x1F45,0x1F4D}, {0x1F51,0x1F59}, {0x1F53,0x1F5B}, {0x1F55,0x1F5D}, {0x1F57,0x1F5F}, {0x1F60,0x1F68}, {0x1F61,0x1F69}, {0x1F62,0x1F6A}, {0x1F63,0x1F6B}, {0x1F64,0x1F6C}, {0x1F65,0x1F6D}, {0x1F66,0x1F6E}, {0x1F67,0x1F6F}, {0x1F70,0x1FBA}, {0x1F71,0x1FBB}, {0x1F72,0x1FC8}, {0x1F73,0x1FC9}, {0x1F74,0x1FCA}, {0x1F75,0x1FCB}, {0x1F76,0x1FDA}, {0x1F77,0x1FDB}, {0x1F78,0x1FF8}, {0x1F79,0x1FF9}, {0x1F7A,0x1FEA}, {0x1F7B,0x1FEB}, {0x1F7C,0x1FFA}, {0x1F7D,0x1FFB}, {0x1F80,0x1F88}, {0x1F81,0x1F89}, {0x1F82,0x1F8A}, {0x1F83,0x1F8B}, {0x1F84,0x1F8C}, {0x1F85,0x1F8D}, {0x1F86,0x1F8E}, {0x1F87,0x1F8F}, {0x1F90,0x1F98}, {0x1F91,0x1F99}, {0x1F92,0x1F9A}, {0x1F93,0x1F9B}, {0x1F94,0x1F9C}, {0x1F95,0x1F9D}, {0x1F96,0x1F9E}, {0x1F97,0x1F9F}, {0x1FA0,0x1FA8}, {0x1FA1,0x1FA9}, {0x1FA2,0x1FAA}, {0x1FA3,0x1FAB}, {0x1FA4,0x1FAC}, {0x1FA5,0x1FAD}, {0x1FA6,0x1FAE}, {0x1FA7,0x1FAF}, {0x1FB0,0x1FB8}, {0x1FB1,0x1FB9}, {0x1FB3,0x1FBC}, {0x1FC3,0x1FCC}, {0x1FD0,0x1FD8}, {0x1FD1,0x1FD9}, {0x1FE0,0x1FE8}, {0x1FE1,0x1FE9}, {0x1FE5,0x1FEC}, {0x1FF3,0x1FFC}, {0x2170,0x2160}, {0x2171,0x2161}, {0x2172,0x2162}, {0x2173,0x2163}, {0x2174,0x2164}, {0x2175,0x2165}, {0x2176,0x2166}, {0x2177,0x2167}, {0x2178,0x2168}, {0x2179,0x2169}, {0x217A,0x216A}, {0x217B,0x216B}, {0x217C,0x216C}, {0x217D,0x216D}, {0x217E,0x216E}, {0x217F,0x216F}, {0x24D0,0x24B6}, {0x24D1,0x24B7}, {0x24D2,0x24B8}, {0x24D3,0x24B9}, {0x24D4,0x24BA}, {0x24D5,0x24BB}, {0x24D6,0x24BC}, {0x24D7,0x24BD}, {0x24D8,0x24BE}, {0x24D9,0x24BF}, {0x24DA,0x24C0}, {0x24DB,0x24C1}, {0x24DC,0x24C2}, {0x24DD,0x24C3}, {0x24DE,0x24C4}, {0x24DF,0x24C5}, {0x24E0,0x24C6}, {0x24E1,0x24C7}, {0x24E2,0x24C8}, {0x24E3,0x24C9}, {0x24E4,0x24CA}, {0x24E5,0x24CB}, {0x24E6,0x24CC}, {0x24E7,0x24CD}, {0x24E8,0x24CE}, {0x24E9,0x24CF}, {0xFF41,0xFF21}, {0xFF42,0xFF22}, {0xFF43,0xFF23}, {0xFF44,0xFF24}, {0xFF45,0xFF25}, {0xFF46,0xFF26}, {0xFF47,0xFF27}, {0xFF48,0xFF28}, {0xFF49,0xFF29}, {0xFF4A,0xFF2A}, {0xFF4B,0xFF2B}, {0xFF4C,0xFF2C}, {0xFF4D,0xFF2D}, {0xFF4E,0xFF2E}, {0xFF4F,0xFF2F}, {0xFF50,0xFF30}, {0xFF51,0xFF31}, {0xFF52,0xFF32}, {0xFF53,0xFF33}, {0xFF54,0xFF34}, {0xFF55,0xFF35}, {0xFF56,0xFF36}, {0xFF57,0xFF37}, {0xFF58,0xFF38}, {0xFF59,0xFF39}, {0xFF5A,0xFF3A} }; /* All lower-case translations are included here */ #define NUM_TOLOWER_INFO 705 static const unirelate tolower_info[NUM_TOLOWER_INFO] = { {0x41,0x61}, {0x42,0x62}, {0x43,0x63}, {0x44,0x64}, {0x45,0x65}, {0x46,0x66}, {0x47,0x67}, {0x48,0x68}, {0x49,0x69}, {0x4A,0x6A}, {0x4B,0x6B}, {0x4C,0x6C}, {0x4D,0x6D}, {0x4E,0x6E}, {0x4F,0x6F}, {0x50,0x70}, {0x51,0x71}, {0x52,0x72}, {0x53,0x73}, {0x54,0x74}, {0x55,0x75}, {0x56,0x76}, {0x57,0x77}, {0x58,0x78}, {0x59,0x79}, {0x5A,0x7A}, {0xC0,0xE0}, {0xC1,0xE1}, {0xC2,0xE2}, {0xC3,0xE3}, {0xC4,0xE4}, {0xC5,0xE5}, {0xC6,0xE6}, {0xC7,0xE7}, {0xC8,0xE8}, {0xC9,0xE9}, {0xCA,0xEA}, {0xCB,0xEB}, {0xCC,0xEC}, {0xCD,0xED}, {0xCE,0xEE}, {0xCF,0xEF}, {0xD0,0xF0}, {0xD1,0xF1}, {0xD2,0xF2}, {0xD3,0xF3}, {0xD4,0xF4}, {0xD5,0xF5}, {0xD6,0xF6}, {0xD8,0xF8}, {0xD9,0xF9}, {0xDA,0xFA}, {0xDB,0xFB}, {0xDC,0xFC}, {0xDD,0xFD}, {0xDE,0xFE}, {0x100,0x101}, {0x102,0x103}, {0x104,0x105}, {0x106,0x107}, {0x108,0x109}, {0x10A,0x10B}, {0x10C,0x10D}, {0x10E,0x10F}, {0x110,0x111}, {0x112,0x113}, {0x114,0x115}, {0x116,0x117}, {0x118,0x119}, {0x11A,0x11B}, {0x11C,0x11D}, {0x11E,0x11F}, {0x120,0x121}, {0x122,0x123}, {0x124,0x125}, {0x126,0x127}, {0x128,0x129}, {0x12A,0x12B}, {0x12C,0x12D}, {0x12E,0x12F}, {0x130,0x69}, {0x132,0x133}, {0x134,0x135}, {0x136,0x137}, {0x139,0x13A}, {0x13B,0x13C}, {0x13D,0x13E}, {0x13F,0x140}, {0x141,0x142}, {0x143,0x144}, {0x145,0x146}, {0x147,0x148}, {0x14A,0x14B}, {0x14C,0x14D}, {0x14E,0x14F}, {0x150,0x151}, {0x152,0x153}, {0x154,0x155}, {0x156,0x157}, {0x158,0x159}, {0x15A,0x15B}, {0x15C,0x15D}, {0x15E,0x15F}, {0x160,0x161}, {0x162,0x163}, {0x164,0x165}, {0x166,0x167}, {0x168,0x169}, {0x16A,0x16B}, {0x16C,0x16D}, {0x16E,0x16F}, {0x170,0x171}, {0x172,0x173}, {0x174,0x175}, {0x176,0x177}, {0x178,0xFF}, {0x179,0x17A}, {0x17B,0x17C}, {0x17D,0x17E}, {0x181,0x253}, {0x182,0x183}, {0x184,0x185}, {0x186,0x254}, {0x187,0x188}, {0x189,0x256}, {0x18A,0x257}, {0x18B,0x18C}, {0x18E,0x1DD}, {0x18F,0x259}, {0x190,0x25B}, {0x191,0x192}, {0x193,0x260}, {0x194,0x263}, {0x196,0x269}, {0x197,0x268}, {0x198,0x199}, {0x19C,0x26F}, {0x19D,0x272}, {0x19F,0x275}, {0x1A0,0x1A1}, {0x1A2,0x1A3}, {0x1A4,0x1A5}, {0x1A7,0x1A8}, {0x1A9,0x283}, {0x1AC,0x1AD}, {0x1AE,0x288}, {0x1AF,0x1B0}, {0x1B1,0x28A}, {0x1B2,0x28B}, {0x1B3,0x1B4}, {0x1B5,0x1B6}, {0x1B7,0x292}, {0x1B8,0x1B9}, {0x1BC,0x1BD}, {0x1C4,0x1C6}, {0x1C5,0x1C6}, {0x1C7,0x1C9}, {0x1C8,0x1C9}, {0x1CA,0x1CC}, {0x1CB,0x1CC}, {0x1CD,0x1CE}, {0x1CF,0x1D0}, {0x1D1,0x1D2}, {0x1D3,0x1D4}, {0x1D5,0x1D6}, {0x1D7,0x1D8}, {0x1D9,0x1DA}, {0x1DB,0x1DC}, {0x1DE,0x1DF}, {0x1E0,0x1E1}, {0x1E2,0x1E3}, {0x1E4,0x1E5}, {0x1E6,0x1E7}, {0x1E8,0x1E9}, {0x1EA,0x1EB}, {0x1EC,0x1ED}, {0x1EE,0x1EF}, {0x1F1,0x1F3}, {0x1F2,0x1F3}, {0x1F4,0x1F5}, {0x1FA,0x1FB}, {0x1FC,0x1FD}, {0x1FE,0x1FF}, {0x200,0x201}, {0x202,0x203}, {0x204,0x205}, {0x206,0x207}, {0x208,0x209}, {0x20A,0x20B}, {0x20C,0x20D}, {0x20E,0x20F}, {0x210,0x211}, {0x212,0x213}, {0x214,0x215}, {0x216,0x217}, {0x386,0x3AC}, {0x388,0x3AD}, {0x389,0x3AE}, {0x38A,0x3AF}, {0x38C,0x3CC}, {0x38E,0x3CD}, {0x38F,0x3CE}, {0x391,0x3B1}, {0x392,0x3B2}, {0x393,0x3B3}, {0x394,0x3B4}, {0x395,0x3B5}, {0x396,0x3B6}, {0x397,0x3B7}, {0x398,0x3B8}, {0x399,0x3B9}, {0x39A,0x3BA}, {0x39B,0x3BB}, {0x39C,0x3BC}, {0x39D,0x3BD}, {0x39E,0x3BE}, {0x39F,0x3BF}, {0x3A0,0x3C0}, {0x3A1,0x3C1}, {0x3A3,0x3C3}, {0x3A4,0x3C4}, {0x3A5,0x3C5}, {0x3A6,0x3C6}, {0x3A7,0x3C7}, {0x3A8,0x3C8}, {0x3A9,0x3C9}, {0x3AA,0x3CA}, {0x3AB,0x3CB}, {0x3E2,0x3E3}, {0x3E4,0x3E5}, {0x3E6,0x3E7}, {0x3E8,0x3E9}, {0x3EA,0x3EB}, {0x3EC,0x3ED}, {0x3EE,0x3EF}, {0x401,0x451}, {0x402,0x452}, {0x403,0x453}, {0x404,0x454}, {0x405,0x455}, {0x406,0x456}, {0x407,0x457}, {0x408,0x458}, {0x409,0x459}, {0x40A,0x45A}, {0x40B,0x45B}, {0x40C,0x45C}, {0x40E,0x45E}, {0x40F,0x45F}, {0x410,0x430}, {0x411,0x431}, {0x412,0x432}, {0x413,0x433}, {0x414,0x434}, {0x415,0x435}, {0x416,0x436}, {0x417,0x437}, {0x418,0x438}, {0x419,0x439}, {0x41A,0x43A}, {0x41B,0x43B}, {0x41C,0x43C}, {0x41D,0x43D}, {0x41E,0x43E}, {0x41F,0x43F}, {0x420,0x440}, {0x421,0x441}, {0x422,0x442}, {0x423,0x443}, {0x424,0x444}, {0x425,0x445}, {0x426,0x446}, {0x427,0x447}, {0x428,0x448}, {0x429,0x449}, {0x42A,0x44A}, {0x42B,0x44B}, {0x42C,0x44C}, {0x42D,0x44D}, {0x42E,0x44E}, {0x42F,0x44F}, {0x460,0x461}, {0x462,0x463}, {0x464,0x465}, {0x466,0x467}, {0x468,0x469}, {0x46A,0x46B}, {0x46C,0x46D}, {0x46E,0x46F}, {0x470,0x471}, {0x472,0x473}, {0x474,0x475}, {0x476,0x477}, {0x478,0x479}, {0x47A,0x47B}, {0x47C,0x47D}, {0x47E,0x47F}, {0x480,0x481}, {0x490,0x491}, {0x492,0x493}, {0x494,0x495}, {0x496,0x497}, {0x498,0x499}, {0x49A,0x49B}, {0x49C,0x49D}, {0x49E,0x49F}, {0x4A0,0x4A1}, {0x4A2,0x4A3}, {0x4A4,0x4A5}, {0x4A6,0x4A7}, {0x4A8,0x4A9}, {0x4AA,0x4AB}, {0x4AC,0x4AD}, {0x4AE,0x4AF}, {0x4B0,0x4B1}, {0x4B2,0x4B3}, {0x4B4,0x4B5}, {0x4B6,0x4B7}, {0x4B8,0x4B9}, {0x4BA,0x4BB}, {0x4BC,0x4BD}, {0x4BE,0x4BF}, {0x4C1,0x4C2}, {0x4C3,0x4C4}, {0x4C7,0x4C8}, {0x4CB,0x4CC}, {0x4D0,0x4D1}, {0x4D2,0x4D3}, {0x4D4,0x4D5}, {0x4D6,0x4D7}, {0x4D8,0x4D9}, {0x4DA,0x4DB}, {0x4DC,0x4DD}, {0x4DE,0x4DF}, {0x4E0,0x4E1}, {0x4E2,0x4E3}, {0x4E4,0x4E5}, {0x4E6,0x4E7}, {0x4E8,0x4E9}, {0x4EA,0x4EB}, {0x4EE,0x4EF}, {0x4F0,0x4F1}, {0x4F2,0x4F3}, {0x4F4,0x4F5}, {0x4F8,0x4F9}, {0x531,0x561}, {0x532,0x562}, {0x533,0x563}, {0x534,0x564}, {0x535,0x565}, {0x536,0x566}, {0x537,0x567}, {0x538,0x568}, {0x539,0x569}, {0x53A,0x56A}, {0x53B,0x56B}, {0x53C,0x56C}, {0x53D,0x56D}, {0x53E,0x56E}, {0x53F,0x56F}, {0x540,0x570}, {0x541,0x571}, {0x542,0x572}, {0x543,0x573}, {0x544,0x574}, {0x545,0x575}, {0x546,0x576}, {0x547,0x577}, {0x548,0x578}, {0x549,0x579}, {0x54A,0x57A}, {0x54B,0x57B}, {0x54C,0x57C}, {0x54D,0x57D}, {0x54E,0x57E}, {0x54F,0x57F}, {0x550,0x580}, {0x551,0x581}, {0x552,0x582}, {0x553,0x583}, {0x554,0x584}, {0x555,0x585}, {0x556,0x586}, {0x10A0,0x10D0}, {0x10A1,0x10D1}, {0x10A2,0x10D2}, {0x10A3,0x10D3}, {0x10A4,0x10D4}, {0x10A5,0x10D5}, {0x10A6,0x10D6}, {0x10A7,0x10D7}, {0x10A8,0x10D8}, {0x10A9,0x10D9}, {0x10AA,0x10DA}, {0x10AB,0x10DB}, {0x10AC,0x10DC}, {0x10AD,0x10DD}, {0x10AE,0x10DE}, {0x10AF,0x10DF}, {0x10B0,0x10E0}, {0x10B1,0x10E1}, {0x10B2,0x10E2}, {0x10B3,0x10E3}, {0x10B4,0x10E4}, {0x10B5,0x10E5}, {0x10B6,0x10E6}, {0x10B7,0x10E7}, {0x10B8,0x10E8}, {0x10B9,0x10E9}, {0x10BA,0x10EA}, {0x10BB,0x10EB}, {0x10BC,0x10EC}, {0x10BD,0x10ED}, {0x10BE,0x10EE}, {0x10BF,0x10EF}, {0x10C0,0x10F0}, {0x10C1,0x10F1}, {0x10C2,0x10F2}, {0x10C3,0x10F3}, {0x10C4,0x10F4}, {0x10C5,0x10F5}, {0x1E00,0x1E01}, {0x1E02,0x1E03}, {0x1E04,0x1E05}, {0x1E06,0x1E07}, {0x1E08,0x1E09}, {0x1E0A,0x1E0B}, {0x1E0C,0x1E0D}, {0x1E0E,0x1E0F}, {0x1E10,0x1E11}, {0x1E12,0x1E13}, {0x1E14,0x1E15}, {0x1E16,0x1E17}, {0x1E18,0x1E19}, {0x1E1A,0x1E1B}, {0x1E1C,0x1E1D}, {0x1E1E,0x1E1F}, {0x1E20,0x1E21}, {0x1E22,0x1E23}, {0x1E24,0x1E25}, {0x1E26,0x1E27}, {0x1E28,0x1E29}, {0x1E2A,0x1E2B}, {0x1E2C,0x1E2D}, {0x1E2E,0x1E2F}, {0x1E30,0x1E31}, {0x1E32,0x1E33}, {0x1E34,0x1E35}, {0x1E36,0x1E37}, {0x1E38,0x1E39}, {0x1E3A,0x1E3B}, {0x1E3C,0x1E3D}, {0x1E3E,0x1E3F}, {0x1E40,0x1E41}, {0x1E42,0x1E43}, {0x1E44,0x1E45}, {0x1E46,0x1E47}, {0x1E48,0x1E49}, {0x1E4A,0x1E4B}, {0x1E4C,0x1E4D}, {0x1E4E,0x1E4F}, {0x1E50,0x1E51}, {0x1E52,0x1E53}, {0x1E54,0x1E55}, {0x1E56,0x1E57}, {0x1E58,0x1E59}, {0x1E5A,0x1E5B}, {0x1E5C,0x1E5D}, {0x1E5E,0x1E5F}, {0x1E60,0x1E61}, {0x1E62,0x1E63}, {0x1E64,0x1E65}, {0x1E66,0x1E67}, {0x1E68,0x1E69}, {0x1E6A,0x1E6B}, {0x1E6C,0x1E6D}, {0x1E6E,0x1E6F}, {0x1E70,0x1E71}, {0x1E72,0x1E73}, {0x1E74,0x1E75}, {0x1E76,0x1E77}, {0x1E78,0x1E79}, {0x1E7A,0x1E7B}, {0x1E7C,0x1E7D}, {0x1E7E,0x1E7F}, {0x1E80,0x1E81}, {0x1E82,0x1E83}, {0x1E84,0x1E85}, {0x1E86,0x1E87}, {0x1E88,0x1E89}, {0x1E8A,0x1E8B}, {0x1E8C,0x1E8D}, {0x1E8E,0x1E8F}, {0x1E90,0x1E91}, {0x1E92,0x1E93}, {0x1E94,0x1E95}, {0x1EA0,0x1EA1}, {0x1EA2,0x1EA3}, {0x1EA4,0x1EA5}, {0x1EA6,0x1EA7}, {0x1EA8,0x1EA9}, {0x1EAA,0x1EAB}, {0x1EAC,0x1EAD}, {0x1EAE,0x1EAF}, {0x1EB0,0x1EB1}, {0x1EB2,0x1EB3}, {0x1EB4,0x1EB5}, {0x1EB6,0x1EB7}, {0x1EB8,0x1EB9}, {0x1EBA,0x1EBB}, {0x1EBC,0x1EBD}, {0x1EBE,0x1EBF}, {0x1EC0,0x1EC1}, {0x1EC2,0x1EC3}, {0x1EC4,0x1EC5}, {0x1EC6,0x1EC7}, {0x1EC8,0x1EC9}, {0x1ECA,0x1ECB}, {0x1ECC,0x1ECD}, {0x1ECE,0x1ECF}, {0x1ED0,0x1ED1}, {0x1ED2,0x1ED3}, {0x1ED4,0x1ED5}, {0x1ED6,0x1ED7}, {0x1ED8,0x1ED9}, {0x1EDA,0x1EDB}, {0x1EDC,0x1EDD}, {0x1EDE,0x1EDF}, {0x1EE0,0x1EE1}, {0x1EE2,0x1EE3}, {0x1EE4,0x1EE5}, {0x1EE6,0x1EE7}, {0x1EE8,0x1EE9}, {0x1EEA,0x1EEB}, {0x1EEC,0x1EED}, {0x1EEE,0x1EEF}, {0x1EF0,0x1EF1}, {0x1EF2,0x1EF3}, {0x1EF4,0x1EF5}, {0x1EF6,0x1EF7}, {0x1EF8,0x1EF9}, {0x1F08,0x1F00}, {0x1F09,0x1F01}, {0x1F0A,0x1F02}, {0x1F0B,0x1F03}, {0x1F0C,0x1F04}, {0x1F0D,0x1F05}, {0x1F0E,0x1F06}, {0x1F0F,0x1F07}, {0x1F18,0x1F10}, {0x1F19,0x1F11}, {0x1F1A,0x1F12}, {0x1F1B,0x1F13}, {0x1F1C,0x1F14}, {0x1F1D,0x1F15}, {0x1F28,0x1F20}, {0x1F29,0x1F21}, {0x1F2A,0x1F22}, {0x1F2B,0x1F23}, {0x1F2C,0x1F24}, {0x1F2D,0x1F25}, {0x1F2E,0x1F26}, {0x1F2F,0x1F27}, {0x1F38,0x1F30}, {0x1F39,0x1F31}, {0x1F3A,0x1F32}, {0x1F3B,0x1F33}, {0x1F3C,0x1F34}, {0x1F3D,0x1F35}, {0x1F3E,0x1F36}, {0x1F3F,0x1F37}, {0x1F48,0x1F40}, {0x1F49,0x1F41}, {0x1F4A,0x1F42}, {0x1F4B,0x1F43}, {0x1F4C,0x1F44}, {0x1F4D,0x1F45}, {0x1F59,0x1F51}, {0x1F5B,0x1F53}, {0x1F5D,0x1F55}, {0x1F5F,0x1F57}, {0x1F68,0x1F60}, {0x1F69,0x1F61}, {0x1F6A,0x1F62}, {0x1F6B,0x1F63}, {0x1F6C,0x1F64}, {0x1F6D,0x1F65}, {0x1F6E,0x1F66}, {0x1F6F,0x1F67}, {0x1F88,0x1F80}, {0x1F89,0x1F81}, {0x1F8A,0x1F82}, {0x1F8B,0x1F83}, {0x1F8C,0x1F84}, {0x1F8D,0x1F85}, {0x1F8E,0x1F86}, {0x1F8F,0x1F87}, {0x1F98,0x1F90}, {0x1F99,0x1F91}, {0x1F9A,0x1F92}, {0x1F9B,0x1F93}, {0x1F9C,0x1F94}, {0x1F9D,0x1F95}, {0x1F9E,0x1F96}, {0x1F9F,0x1F97}, {0x1FA8,0x1FA0}, {0x1FA9,0x1FA1}, {0x1FAA,0x1FA2}, {0x1FAB,0x1FA3}, {0x1FAC,0x1FA4}, {0x1FAD,0x1FA5}, {0x1FAE,0x1FA6}, {0x1FAF,0x1FA7}, {0x1FB8,0x1FB0}, {0x1FB9,0x1FB1}, {0x1FBA,0x1F70}, {0x1FBB,0x1F71}, {0x1FBC,0x1FB3}, {0x1FC8,0x1F72}, {0x1FC9,0x1F73}, {0x1FCA,0x1F74}, {0x1FCB,0x1F75}, {0x1FCC,0x1FC3}, {0x1FD8,0x1FD0}, {0x1FD9,0x1FD1}, {0x1FDA,0x1F76}, {0x1FDB,0x1F77}, {0x1FE8,0x1FE0}, {0x1FE9,0x1FE1}, {0x1FEA,0x1F7A}, {0x1FEB,0x1F7B}, {0x1FEC,0x1FE5}, {0x1FF8,0x1F78}, {0x1FF9,0x1F79}, {0x1FFA,0x1F7C}, {0x1FFB,0x1F7D}, {0x1FFC,0x1FF3}, {0x2160,0x2170}, {0x2161,0x2171}, {0x2162,0x2172}, {0x2163,0x2173}, {0x2164,0x2174}, {0x2165,0x2175}, {0x2166,0x2176}, {0x2167,0x2177}, {0x2168,0x2178}, {0x2169,0x2179}, {0x216A,0x217A}, {0x216B,0x217B}, {0x216C,0x217C}, {0x216D,0x217D}, {0x216E,0x217E}, {0x216F,0x217F}, {0x24B6,0x24D0}, {0x24B7,0x24D1}, {0x24B8,0x24D2}, {0x24B9,0x24D3}, {0x24BA,0x24D4}, {0x24BB,0x24D5}, {0x24BC,0x24D6}, {0x24BD,0x24D7}, {0x24BE,0x24D8}, {0x24BF,0x24D9}, {0x24C0,0x24DA}, {0x24C1,0x24DB}, {0x24C2,0x24DC}, {0x24C3,0x24DD}, {0x24C4,0x24DE}, {0x24C5,0x24DF}, {0x24C6,0x24E0}, {0x24C7,0x24E1}, {0x24C8,0x24E2}, {0x24C9,0x24E3}, {0x24CA,0x24E4}, {0x24CB,0x24E5}, {0x24CC,0x24E6}, {0x24CD,0x24E7}, {0x24CE,0x24E8}, {0x24CF,0x24E9}, {0xFF21,0xFF41}, {0xFF22,0xFF42}, {0xFF23,0xFF43}, {0xFF24,0xFF44}, {0xFF25,0xFF45}, {0xFF26,0xFF46}, {0xFF27,0xFF47}, {0xFF28,0xFF48}, {0xFF29,0xFF49}, {0xFF2A,0xFF4A}, {0xFF2B,0xFF4B}, {0xFF2C,0xFF4C}, {0xFF2D,0xFF4D}, {0xFF2E,0xFF4E}, {0xFF2F,0xFF4F}, {0xFF30,0xFF50}, {0xFF31,0xFF51}, {0xFF32,0xFF52}, {0xFF33,0xFF53}, {0xFF34,0xFF54}, {0xFF35,0xFF55}, {0xFF36,0xFF56}, {0xFF37,0xFF57}, {0xFF38,0xFF58}, {0xFF39,0xFF59}, {0xFF3A,0xFF5A} }; #define NUM_TOSIMPLIFIED_INFO 2145 static const unirelate tosimplified_info[NUM_TOSIMPLIFIED_INFO] = { {0x4E48,0x9EBD}, {0x4E82,0x4E71}, {0x4E9E,0x4E9A}, {0x4F47,0x4F2B}, {0x4F59,0x9980}, {0x4F86,0x6765}, {0x4F96,0x4ED1}, {0x4FE0,0x4FA0}, {0x5000,0x4F25}, {0x5006,0x4FE9}, {0x5009,0x4ED3}, {0x500B,0x4E2A}, {0x5011,0x4EEC}, {0x502B,0x4F26}, {0x5049,0x4F1F}, {0x5074,0x4FA7}, {0x5075,0x4FA6}, {0x5096,0x4F27}, {0x5098,0x4F1E}, {0x5099,0x5907}, {0x50AD,0x4F63}, {0x50B3,0x4F20}, {0x50B4,0x4F1B}, {0x50B5,0x503A}, {0x50B7,0x4F24}, {0x50BE,0x503E}, {0x50C2,0x507B}, {0x50C5,0x4EC5}, {0x50C9,0x4F65}, {0x50D1,0x4FA8}, {0x50D5,0x4EC6}, {0x50DE,0x4F2A}, {0x50E5,0x4FA5}, {0x50E8,0x507E}, {0x50F9,0x4EF7}, {0x5100,0x4EEA}, {0x5102,0x4FAC}, {0x5104,0x4EBF}, {0x5108,0x4FA9}, {0x5109,0x4FED}, {0x5110,0x50A7}, {0x5114,0x4FE6}, {0x5115,0x4FAA}, {0x511F,0x507F}, {0x512A,0x4F18}, {0x5132,0x50A8}, {0x5137,0x4FEA}, {0x513A,0x50A9}, {0x513B,0x50A5}, {0x513C,0x4FE8}, {0x5152,0x513F}, {0x5169,0x4E24}, {0x51C8,0x51C0}, {0x51CD,0x51BB}, {0x51F1,0x51EF}, {0x5244,0x522D}, {0x5247,0x5219}, {0x525B,0x521A}, {0x526E,0x5250}, {0x5274,0x5240}, {0x5275,0x521B}, {0x5283,0x5212}, {0x5287,0x5267}, {0x5289,0x5218}, {0x528A,0x523D}, {0x528C,0x523F}, {0x528D,0x5251}, {0x5291,0x5242}, {0x52C1,0x52B2}, {0x52D5,0x52A8}, {0x52D9,0x52A1}, {0x52DB,0x52CB}, {0x52DD,0x80DC}, {0x52DE,0x52B3}, {0x52E2,0x52BF}, {0x52F1,0x52A2}, {0x52F5,0x52B1}, {0x52F8,0x529D}, {0x532D,0x5326}, {0x532F,0x6C47}, {0x5331,0x532E}, {0x5340,0x533A}, {0x5354,0x534F}, {0x5399,0x538D}, {0x53A0,0x5395}, {0x53AD,0x538C}, {0x53B2,0x5389}, {0x53B4,0x53A3}, {0x53C3,0x53C2}, {0x53E2,0x4E1B}, {0x540E,0x5F8C}, {0x54BC,0x5459}, {0x54E1,0x5458}, {0x5504,0x5457}, {0x554F,0x95EE}, {0x5553,0x542F}, {0x555E,0x54D1}, {0x559A,0x5524}, {0x55AA,0x4E27}, {0x55AC,0x4E54}, {0x55AE,0x5355}, {0x55B2,0x54DF}, {0x55C6,0x545B}, {0x55C7,0x556C}, {0x55CE,0x5417}, {0x55DA,0x545C}, {0x55E9,0x5522}, {0x55F6,0x54D4}, {0x5606,0x53F9}, {0x560D,0x55BD}, {0x5614,0x5455}, {0x5616,0x5567}, {0x5617,0x5C1D}, {0x561C,0x551B}, {0x5629,0x54D7}, {0x562E,0x5520}, {0x562F,0x5578}, {0x5630,0x53FD}, {0x5635,0x54D3}, {0x5638,0x5452}, {0x565D,0x549D}, {0x5660,0x54D2}, {0x5665,0x54DD}, {0x5666,0x54D5}, {0x566F,0x55F3}, {0x5672,0x54D9}, {0x5674,0x55B7}, {0x5678,0x5428}, {0x5680,0x549B}, {0x5687,0x5413}, {0x568C,0x54DC}, {0x5695,0x565C}, {0x5699,0x556E}, {0x56A6,0x5456}, {0x56A8,0x5499}, {0x56B3,0x55BE}, {0x56B4,0x4E25}, {0x56B6,0x5624}, {0x56C0,0x556D}, {0x56C1,0x55EB}, {0x56C2,0x56A3}, {0x56C5,0x5181}, {0x56C8,0x5453}, {0x56D1,0x5631}, {0x5707,0x56F5}, {0x570B,0x56FD}, {0x570D,0x56F4}, {0x5712,0x56ED}, {0x5713,0x5706}, {0x5716,0x56FE}, {0x5718,0x56E2}, {0x57E1,0x57AD}, {0x57F7,0x6267}, {0x5805,0x575A}, {0x580A,0x57A9}, {0x5816,0x57B4}, {0x581D,0x57DA}, {0x582F,0x5C27}, {0x5831,0x62A5}, {0x5834,0x573A}, {0x584A,0x5757}, {0x584B,0x8314}, {0x584F,0x57B2}, {0x5852,0x57D8}, {0x5857,0x6D82}, {0x5862,0x575E}, {0x5864,0x57D9}, {0x5875,0x5C18}, {0x5879,0x5811}, {0x588A,0x57AB}, {0x589C,0x5760}, {0x58AE,0x5815}, {0x58B3,0x575F}, {0x58BB,0x5899}, {0x58BE,0x57A6}, {0x58C7,0x575B}, {0x58D3,0x538B}, {0x58D8,0x5792}, {0x58D9,0x5739}, {0x58DA,0x5786}, {0x58DE,0x574F}, {0x58DF,0x5784}, {0x58E0,0x5785}, {0x58E2,0x575C}, {0x58E9,0x575D}, {0x58EF,0x58EE}, {0x58FA,0x58F6}, {0x58FD,0x5BFF}, {0x5922,0x68A6}, {0x593E,0x5939}, {0x5950,0x5942}, {0x5969,0x5941}, {0x596A,0x593A}, {0x596C,0x5956}, {0x596E,0x594B}, {0x599D,0x5986}, {0x5A41,0x5A04}, {0x5A66,0x5987}, {0x5A6D,0x5A05}, {0x5AA7,0x5A32}, {0x5ABD,0x5988}, {0x5AD7,0x59AA}, {0x5AF5,0x59A9}, {0x5AFB,0x5A34}, {0x5B00,0x59AB}, {0x5B08,0x5A06}, {0x5B0B,0x5A75}, {0x5B0C,0x5A07}, {0x5B19,0x5AF1}, {0x5B21,0x5AD2}, {0x5B2A,0x5AD4}, {0x5B30,0x5A74}, {0x5B38,0x5A76}, {0x5B4C,0x5A08}, {0x5B6B,0x5B59}, {0x5B78,0x5B66}, {0x5B7F,0x5B6A}, {0x5BE2,0x5BDD}, {0x5BE6,0x5B9E}, {0x5BE7,0x5B81}, {0x5BE9,0x5BA1}, {0x5BEB,0x5199}, {0x5BEC,0x5BBD}, {0x5BF5,0x5BA0}, {0x5BF6,0x5B9D}, {0x5C07,0x5C06}, {0x5C08,0x4E13}, {0x5C0B,0x5BFB}, {0x5C0D,0x5BF9}, {0x5C0E,0x5BFC}, {0x5C37,0x5C34}, {0x5C62,0x5C61}, {0x5C64,0x5C42}, {0x5C68,0x5C66}, {0x5C6C,0x5C5E}, {0x5CA1,0x5188}, {0x5CF4,0x5C98}, {0x5CF6,0x5C9B}, {0x5CFD,0x5CE1}, {0x5D0D,0x5D03}, {0x5D17,0x5C97}, {0x5D22,0x5CE5}, {0x5D2C,0x5CBD}, {0x5D50,0x5C9A}, {0x5D81,0x5D5D}, {0x5D84,0x5D2D}, {0x5D87,0x5C96}, {0x5D97,0x5D02}, {0x5DA0,0x5CE4}, {0x5DA7,0x5CC4}, {0x5DB8,0x5D58}, {0x5DBA,0x5CAD}, {0x5DBC,0x5C7F}, {0x5DCB,0x5CBF}, {0x5DD2,0x5CE6}, {0x5DD4,0x5DC5}, {0x5DF0,0x5DEF}, {0x5E25,0x5E05}, {0x5E2B,0x5E08}, {0x5E33,0x5E10}, {0x5E36,0x5E26}, {0x5E40,0x5E27}, {0x5E43,0x5E0F}, {0x5E57,0x5E3C}, {0x5E58,0x5E3B}, {0x5E5F,0x5E1C}, {0x5E63,0x5E01}, {0x5E6B,0x5E2E}, {0x5E6C,0x5E31}, {0x5E79,0x5E72}, {0x5E7E,0x51E0}, {0x5EAB,0x5E93}, {0x5EDF,0x5E99}, {0x5EE0,0x5382}, {0x5EE1,0x5E91}, {0x5EE2,0x5E9F}, {0x5EE3,0x5E7F}, {0x5EEC,0x5E90}, {0x5EF3,0x5385}, {0x5F33,0x5F2A}, {0x5F35,0x5F20}, {0x5F48,0x5F39}, {0x5F4C,0x5F25}, {0x5F4E,0x5F2F}, {0x5F8C,0x540E}, {0x5F91,0x5F84}, {0x5F9E,0x4ECE}, {0x5FA0,0x5F95}, {0x5FA9,0x590D}, {0x5FB9,0x5F7B}, {0x60B5,0x6005}, {0x60B6,0x95F7}, {0x60E1,0x6076}, {0x60F1,0x607C}, {0x60F2,0x607D}, {0x60FB,0x607B}, {0x611B,0x7231}, {0x611C,0x60EC}, {0x6134,0x6006}, {0x6137,0x607A}, {0x613E,0x5FFE}, {0x614B,0x6001}, {0x6158,0x60E8}, {0x615A,0x60ED}, {0x615F,0x6078}, {0x6163,0x60EF}, {0x6164,0x60AB}, {0x616A,0x6004}, {0x616B,0x6002}, {0x616E,0x8651}, {0x6173,0x60AD}, {0x6176,0x5E86}, {0x6182,0x5FE7}, {0x618A,0x60EB}, {0x6190,0x601C}, {0x6191,0x51ED}, {0x6192,0x6126}, {0x619A,0x60EE}, {0x61A4,0x6124}, {0x61AB,0x60AF}, {0x61AE,0x6003}, {0x61B2,0x5BAA}, {0x61B6,0x5FC6}, {0x61C7,0x6073}, {0x61C9,0x5E94}, {0x61CC,0x603F}, {0x61DF,0x603C}, {0x61E3,0x61D1}, {0x61E8,0x6079}, {0x61F2,0x60E9}, {0x61F6,0x61D2}, {0x61F7,0x6000}, {0x61F8,0x60AC}, {0x61FA,0x5FCF}, {0x61FC,0x60E7}, {0x61FE,0x6151}, {0x6200,0x604B}, {0x6207,0x6206}, {0x6214,0x620B}, {0x6227,0x6217}, {0x6229,0x622C}, {0x6230,0x6218}, {0x6232,0x620F}, {0x633E,0x631F}, {0x6368,0x820D}, {0x636B,0x626A}, {0x6383,0x626B}, {0x6384,0x62A1}, {0x6399,0x6323}, {0x63C0,0x62E3}, {0x63DA,0x626C}, {0x63DB,0x6362}, {0x63EE,0x6325}, {0x640D,0x635F}, {0x6417,0x6363}, {0x6436,0x62A2}, {0x6451,0x63B4}, {0x645C,0x63BC}, {0x645F,0x6402}, {0x646F,0x631A}, {0x6473,0x62A0}, {0x6476,0x629F}, {0x647B,0x63BA}, {0x6488,0x635E}, {0x6493,0x6320}, {0x649F,0x6322}, {0x64A3,0x63B8}, {0x64A5,0x62E8}, {0x64AB,0x629A}, {0x64B2,0x6251}, {0x64B3,0x63FF}, {0x64BB,0x631E}, {0x64BE,0x631D}, {0x64BF,0x6361}, {0x64C1,0x62E5}, {0x64C4,0x63B3}, {0x64C7,0x62E9}, {0x64CA,0x51FB}, {0x64CB,0x6321}, {0x64D4,0x62C5}, {0x64DA,0x636E}, {0x64E0,0x6324}, {0x64EC,0x62DF}, {0x64EF,0x6448}, {0x64F0,0x62E7}, {0x64F1,0x6401}, {0x64F2,0x63B7}, {0x64F4,0x6269}, {0x64F7,0x64B7}, {0x64FA,0x6446}, {0x64FB,0x64DE}, {0x64FC,0x64B8}, {0x64FE,0x6270}, {0x6504,0x6445}, {0x6506,0x64B5}, {0x650F,0x62E2}, {0x6514,0x62E6}, {0x6516,0x6484}, {0x6519,0x6400}, {0x651B,0x64BA}, {0x651D,0x6444}, {0x6522,0x6512}, {0x6523,0x631B}, {0x6524,0x644A}, {0x652A,0x6405}, {0x652C,0x63FD}, {0x6557,0x8D25}, {0x6575,0x654C}, {0x6578,0x6570}, {0x6582,0x655B}, {0x6583,0x6BD9}, {0x6595,0x6593}, {0x65AC,0x65A9}, {0x65B7,0x65AD}, {0x6642,0x65F6}, {0x6649,0x664B}, {0x665D,0x663C}, {0x6688,0x6655}, {0x6689,0x6656}, {0x66A2,0x7545}, {0x66AB,0x6682}, {0x66C4,0x6654}, {0x66C7,0x6619}, {0x66C9,0x6653}, {0x66D6,0x66A7}, {0x66E0,0x65F7}, {0x66EC,0x6652}, {0x66F8,0x4E66}, {0x6703,0x4F1A}, {0x6727,0x80E7}, {0x6771,0x4E1C}, {0x6898,0x67A7}, {0x689D,0x6761}, {0x689F,0x67AD}, {0x68C4,0x5F03}, {0x68D6,0x67A8}, {0x68D7,0x67A3}, {0x68DF,0x680B}, {0x68E7,0x6808}, {0x68F2,0x6816}, {0x690F,0x6860}, {0x694A,0x6768}, {0x6953,0x67AB}, {0x6968,0x6862}, {0x696D,0x4E1A}, {0x6975,0x6781}, {0x69AA,0x6769}, {0x69AE,0x8363}, {0x69BF,0x6864}, {0x69CB,0x6784}, {0x69CD,0x67AA}, {0x69E7,0x6920}, {0x69F3,0x6868}, {0x6A01,0x6869}, {0x6A02,0x4E50}, {0x6A05,0x679E}, {0x6A13,0x697C}, {0x6A19,0x6807}, {0x6A1E,0x67A2}, {0x6A23,0x6837}, {0x6A38,0x6734}, {0x6A39,0x6811}, {0x6A3A,0x6866}, {0x6A48,0x6861}, {0x6A4B,0x6865}, {0x6A5F,0x673A}, {0x6A62,0x692D}, {0x6A89,0x67FD}, {0x6A94,0x6863}, {0x6A9C,0x6867}, {0x6AA2,0x68C0}, {0x6AA3,0x6A2F}, {0x6AB3,0x69DF}, {0x6AB8,0x67E0}, {0x6ABB,0x69DB}, {0x6AC3,0x67DC}, {0x6AD3,0x6A79}, {0x6ADA,0x6988}, {0x6ADB,0x6809}, {0x6ADD,0x691F}, {0x6ADE,0x6A7C}, {0x6ADF,0x680E}, {0x6AE7,0x69E0}, {0x6AE8,0x680C}, {0x6AEA,0x67A5}, {0x6AEC,0x6987}, {0x6AF3,0x680A}, {0x6AF8,0x6989}, {0x6AFB,0x6A31}, {0x6B04,0x680F}, {0x6B0A,0x6743}, {0x6B0F,0x6924}, {0x6B12,0x683E}, {0x6B16,0x6984}, {0x6B1E,0x68C2}, {0x6B3D,0x94A6}, {0x6B50,0x6B27}, {0x6B5F,0x6B24}, {0x6B61,0x6B22}, {0x6B72,0x5C81}, {0x6B77,0x5386}, {0x6B78,0x5F52}, {0x6B98,0x6B8B}, {0x6B9E,0x6B92}, {0x6BA4,0x6B87}, {0x6BAB,0x6B9A}, {0x6BAE,0x6B93}, {0x6BAF,0x6BA1}, {0x6BB2,0x6B7C}, {0x6BBA,0x6740}, {0x6BBB,0x58F3}, {0x6BC6,0x6BB4}, {0x6BFF,0x6BF5}, {0x6C08,0x6BE1}, {0x6C0C,0x6C07}, {0x6C23,0x6C14}, {0x6C2B,0x6C22}, {0x6C2C,0x6C29}, {0x6D79,0x6D43}, {0x6D87,0x6CFE}, {0x6DEA,0x6CA6}, {0x6DF5,0x6E0A}, {0x6DF6,0x6D9E}, {0x6DFA,0x6D45}, {0x6E19,0x6DA3}, {0x6E26,0x6DA1}, {0x6E2C,0x6D4B}, {0x6E3E,0x6D51}, {0x6E5E,0x6D48}, {0x6E6F,0x6C64}, {0x6E96,0x51C6}, {0x6E9D,0x6C9F}, {0x6EC4,0x6CA7}, {0x6EC5,0x706D}, {0x6ECC,0x6DA4}, {0x6ECE,0x8365}, {0x6EEC,0x6CAA}, {0x6EEF,0x6EDE}, {0x6EF2,0x6E17}, {0x6EF7,0x5364}, {0x6EF8,0x6D52}, {0x6EFF,0x6EE1}, {0x6F01,0x6E14}, {0x6F1A,0x6CA4}, {0x6F22,0x6C49}, {0x6F23,0x6D9F}, {0x6F2C,0x6E0D}, {0x6F32,0x6DA8}, {0x6F38,0x6E10}, {0x6F3F,0x6D46}, {0x6F41,0x988D}, {0x6F51,0x6CFC}, {0x6F54,0x6D01}, {0x6F59,0x6CA9}, {0x6F5B,0x6F5C}, {0x6F64,0x6DA6}, {0x6F6F,0x6D54}, {0x6F70,0x6E83}, {0x6F77,0x6ED7}, {0x6F7F,0x6DA0}, {0x6F80,0x6DA9}, {0x6F86,0x6D47}, {0x6F87,0x6D9D}, {0x6F97,0x6DA7}, {0x6FA0,0x6E11}, {0x6FA4,0x6CFD}, {0x6FA9,0x6CF6}, {0x6FAE,0x6D4D}, {0x6FB1,0x6DC0}, {0x6FC1,0x6D4A}, {0x6FC3,0x6D53}, {0x6FD5,0x6E7F}, {0x6FD8,0x6CDE}, {0x6FDF,0x6D4E}, {0x6FE4,0x6D9B}, {0x6FEB,0x6EE5}, {0x6FF0,0x6F4D}, {0x6FF1,0x6EE8}, {0x6FFA,0x6E85}, {0x6FFC,0x6CFA}, {0x6FFE,0x6EE4}, {0x7005,0x6EE2}, {0x7006,0x6E0E}, {0x7009,0x6CFB}, {0x700B,0x6E16}, {0x700F,0x6D4F}, {0x7015,0x6FD2}, {0x7018,0x6CF8}, {0x701D,0x6CA5}, {0x701F,0x6F47}, {0x7020,0x6F46}, {0x7027,0x6CF7}, {0x7028,0x6FD1}, {0x7032,0x6F4B}, {0x703E,0x6F9C}, {0x7043,0x6CA3}, {0x7044,0x6EE0}, {0x7051,0x6D12}, {0x7055,0x6F13}, {0x7058,0x6EE9}, {0x705D,0x704F}, {0x7063,0x6E7E}, {0x7064,0x6EE6}, {0x7067,0x6EDF}, {0x70CF,0x4E4C}, {0x70F4,0x70C3}, {0x7121,0x65E0}, {0x7149,0x70BC}, {0x7152,0x709C}, {0x7162,0x8315}, {0x7165,0x7115}, {0x7169,0x70E6}, {0x716C,0x7080}, {0x7192,0x8367}, {0x7197,0x709D}, {0x71B1,0x70ED}, {0x71BE,0x70BD}, {0x71C1,0x70E8}, {0x71C8,0x706F}, {0x71D2,0x70E7}, {0x71D9,0x70EB}, {0x71DC,0x7116}, {0x71DF,0x8425}, {0x71E6,0x707F}, {0x71ED,0x70DB}, {0x71F4,0x70E9}, {0x71FC,0x70EC}, {0x71FE,0x7118}, {0x720D,0x70C1}, {0x7210,0x7089}, {0x721B,0x70C2}, {0x722D,0x4E89}, {0x7232,0x4E3A}, {0x723A,0x7237}, {0x723E,0x5C14}, {0x7258,0x724D}, {0x727D,0x7275}, {0x7296,0x8366}, {0x72A2,0x728A}, {0x72A7,0x727A}, {0x72C0,0x72B6}, {0x72F9,0x72ED}, {0x72FD,0x72C8}, {0x7319,0x72F0}, {0x7336,0x72B9}, {0x733B,0x72F2}, {0x7341,0x72B8}, {0x7344,0x72F1}, {0x7345,0x72EE}, {0x7368,0x72EC}, {0x736A,0x72EF}, {0x736B,0x7303}, {0x7370,0x72DE}, {0x7372,0x83B7}, {0x7375,0x730E}, {0x7377,0x72B7}, {0x7378,0x517D}, {0x737A,0x736D}, {0x737B,0x732E}, {0x737C,0x7315}, {0x7380,0x7321}, {0x73FE,0x73B0}, {0x743F,0x73F2}, {0x744B,0x73AE}, {0x7463,0x7410}, {0x7469,0x83B9}, {0x746A,0x739B}, {0x7489,0x740F}, {0x74A3,0x7391}, {0x74A6,0x7477}, {0x74B0,0x73AF}, {0x74BD,0x73BA}, {0x74CA,0x743C}, {0x74CF,0x73D1}, {0x74D4,0x748E}, {0x74DA,0x74D2}, {0x750C,0x74EF}, {0x7523,0x4EA7}, {0x755D,0x4EA9}, {0x7562,0x6BD5}, {0x756B,0x753B}, {0x7576,0x5F53}, {0x7587,0x7574}, {0x758A,0x53E0}, {0x75D9,0x75C9}, {0x7602,0x75D6}, {0x760B,0x75AF}, {0x760D,0x75A1}, {0x7613,0x75EA}, {0x761E,0x7617}, {0x7621,0x75AE}, {0x7627,0x759F}, {0x763B,0x7618}, {0x7642,0x7597}, {0x7646,0x75E8}, {0x7647,0x75EB}, {0x7649,0x7605}, {0x7658,0x75A0}, {0x765F,0x762A}, {0x7662,0x75D2}, {0x7664,0x7596}, {0x7665,0x75C7}, {0x7667,0x75AC}, {0x7669,0x765E}, {0x766C,0x7663}, {0x766D,0x763F}, {0x766E,0x763E}, {0x7670,0x75C8}, {0x7671,0x762B}, {0x7672,0x766B}, {0x767C,0x53D1}, {0x769A,0x7691}, {0x76B8,0x76B2}, {0x76BA,0x76B1}, {0x76DE,0x76CF}, {0x76E1,0x5C3D}, {0x76E3,0x76D1}, {0x76E4,0x76D8}, {0x76E7,0x5362}, {0x775C,0x7741}, {0x775E,0x7750}, {0x7798,0x770D}, {0x779E,0x7792}, {0x77BC,0x7751}, {0x77DA,0x77A9}, {0x77EF,0x77EB}, {0x7864,0x7856}, {0x7868,0x7817}, {0x786F,0x781A}, {0x78A9,0x7855}, {0x78AD,0x7800}, {0x78B8,0x781C}, {0x78BA,0x786E}, {0x78BC,0x7801}, {0x78DA,0x7816}, {0x78E3,0x789C}, {0x78E7,0x789B}, {0x78EF,0x77F6}, {0x78FD,0x7857}, {0x790E,0x7840}, {0x7919,0x788D}, {0x7926,0x77FF}, {0x792A,0x783A}, {0x792B,0x783E}, {0x792C,0x77FE}, {0x7931,0x783B}, {0x798D,0x7978}, {0x798E,0x796F}, {0x79AA,0x7985}, {0x79AE,0x793C}, {0x79B0,0x7962}, {0x79B1,0x7977}, {0x7A2E,0x79CD}, {0x7A31,0x79F0}, {0x7A4C,0x7A23}, {0x7A4D,0x79EF}, {0x7A4E,0x9896}, {0x7A61,0x7A51}, {0x7A62,0x79FD}, {0x7A69,0x7A33}, {0x7AA9,0x7A9D}, {0x7AAA,0x6D3C}, {0x7AAE,0x7A77}, {0x7AB6,0x7AAD}, {0x7ABA,0x7AA5}, {0x7AC4,0x7A9C}, {0x7AC5,0x7A8D}, {0x7AC7,0x7AA6}, {0x7AC8,0x7076}, {0x7ACA,0x7A83}, {0x7AEA,0x7AD6}, {0x7AF6,0x7ADE}, {0x7B46,0x7B14}, {0x7B67,0x7B15}, {0x7B8B,0x7B3A}, {0x7B8F,0x7B5D}, {0x7BC0,0x8282}, {0x7BC4,0x8303}, {0x7BC9,0x7B51}, {0x7BCB,0x7BA7}, {0x7BE4,0x7B03}, {0x7BE9,0x7B5B}, {0x7BF3,0x7B5A}, {0x7C00,0x7BA6}, {0x7C0D,0x7BD3}, {0x7C1E,0x7BAA}, {0x7C21,0x7B80}, {0x7C23,0x7BD1}, {0x7C2B,0x7BAB}, {0x7C3D,0x7B7E}, {0x7C3E,0x5E18}, {0x7C43,0x7BEE}, {0x7C4C,0x7B79}, {0x7C5C,0x7BA8}, {0x7C5F,0x7C41}, {0x7C60,0x7B3C}, {0x7C69,0x7B3E}, {0x7C6A,0x7C16}, {0x7C6C,0x7BF1}, {0x7C6E,0x7BA9}, {0x7CDD,0x7CC1}, {0x7CDE,0x7CAA}, {0x7CE7,0x7CAE}, {0x7CF2,0x7C9D}, {0x7CF4,0x7C74}, {0x7CF6,0x7C9C}, {0x7CF9,0x7E9F}, {0x7CFE,0x7EA0}, {0x7D00,0x7EAA}, {0x7D02,0x7EA3}, {0x7D04,0x7EA6}, {0x7D05,0x7EA2}, {0x7D06,0x7EA1}, {0x7D07,0x7EA5}, {0x7D08,0x7EA8}, {0x7D09,0x7EAB}, {0x7D0B,0x7EB9}, {0x7D0D,0x7EB3}, {0x7D10,0x7EBD}, {0x7D13,0x7EBE}, {0x7D14,0x7EAF}, {0x7D15,0x7EB0}, {0x7D17,0x7EB1}, {0x7D19,0x7EB8}, {0x7D1A,0x7EA7}, {0x7D1B,0x7EB7}, {0x7D1C,0x7EAD}, {0x7D21,0x7EBA}, {0x7D30,0x7EC6}, {0x7D31,0x7EC2}, {0x7D32,0x7EC1}, {0x7D33,0x7EC5}, {0x7D39,0x7ECD}, {0x7D3A,0x7EC0}, {0x7D3C,0x7ECB}, {0x7D3F,0x7ED0}, {0x7D40,0x7ECC}, {0x7D42,0x7EC8}, {0x7D44,0x7EC4}, {0x7D46,0x7ECA}, {0x7D4E,0x7ED7}, {0x7D50,0x7ED3}, {0x7D5D,0x7ED4}, {0x7D5E,0x7EDE}, {0x7D61,0x7EDC}, {0x7D62,0x7EDA}, {0x7D66,0x7ED9}, {0x7D68,0x7ED2}, {0x7D71,0x7EDF}, {0x7D72,0x4E1D}, {0x7D73,0x7EDB}, {0x7D76,0x7EDD}, {0x7D79,0x7EE2}, {0x7D81,0x7ED1}, {0x7D83,0x7EE1}, {0x7D86,0x7EE0}, {0x7D88,0x7EE8}, {0x7D89,0x7EE3}, {0x7D8F,0x7EE5}, {0x7D93,0x7ECF}, {0x7D9C,0x7EFC}, {0x7D9E,0x7F0D}, {0x7DA2,0x7EF8}, {0x7DA3,0x7EFB}, {0x7DAB,0x7EBF}, {0x7DAC,0x7EF6}, {0x7DAD,0x7EF4}, {0x7DB0,0x7EFE}, {0x7DB1,0x7EB2}, {0x7DB2,0x7F51}, {0x7DB3,0x7EF7}, {0x7DB4,0x7F00}, {0x7DB8,0x7EB6}, {0x7DB9,0x7EFA}, {0x7DBA,0x7EEE}, {0x7DBB,0x7EFD}, {0x7DBD,0x7EF0}, {0x7DBE,0x7EEB}, {0x7DBF,0x7EF5}, {0x7DC4,0x7EF2}, {0x7DC7,0x7F01}, {0x7DCA,0x7D27}, {0x7DCB,0x7EEF}, {0x7DD1,0x7EFF}, {0x7DD2,0x7EEA}, {0x7DD4,0x7EF1}, {0x7DD7,0x7F03}, {0x7DD8,0x7F04}, {0x7DD9,0x7F02}, {0x7DDD,0x7F09}, {0x7DDE,0x7F0E}, {0x7DE0,0x7F14}, {0x7DE1,0x7F17}, {0x7DE3,0x7F18}, {0x7DE6,0x7F0C}, {0x7DE8,0x7F16}, {0x7DE9,0x7F13}, {0x7DEC,0x7F05}, {0x7DEF,0x7EAC}, {0x7DF1,0x7F11}, {0x7DF2,0x7F08}, {0x7DF4,0x7EC3}, {0x7DF6,0x7F0F}, {0x7DF9,0x7F07}, {0x7E08,0x8426}, {0x7E09,0x7F19}, {0x7E0A,0x7F22}, {0x7E0B,0x7F12}, {0x7E10,0x7EC9}, {0x7E11,0x7F23}, {0x7E1B,0x7F1A}, {0x7E1D,0x7F1C}, {0x7E1E,0x7F1F}, {0x7E1F,0x7F1B}, {0x7E23,0x53BF}, {0x7E27,0x7EE6}, {0x7E2B,0x7F1D}, {0x7E2D,0x7F21}, {0x7E2E,0x7F29}, {0x7E31,0x7EB5}, {0x7E32,0x7F27}, {0x7E35,0x7F26}, {0x7E36,0x7D77}, {0x7E37,0x7F15}, {0x7E39,0x7F25}, {0x7E3D,0x603B}, {0x7E3E,0x7EE9}, {0x7E45,0x7F2B}, {0x7E46,0x7F2A}, {0x7E52,0x7F2F}, {0x7E54,0x7EC7}, {0x7E55,0x7F2E}, {0x7E5A,0x7F2D}, {0x7E5E,0x7ED5}, {0x7E62,0x7F0B}, {0x7E69,0x7EF3}, {0x7E6A,0x7ED8}, {0x7E6D,0x8327}, {0x7E6E,0x7F30}, {0x7E6F,0x7F33}, {0x7E70,0x7F32}, {0x7E73,0x7F34}, {0x7E79,0x7ECE}, {0x7E7C,0x7EE7}, {0x7E7D,0x7F24}, {0x7E7E,0x7F31}, {0x7E88,0x7F2C}, {0x7E8A,0x7EA9}, {0x7E8C,0x7EED}, {0x7E8F,0x7F20}, {0x7E93,0x7F28}, {0x7E96,0x7EA4}, {0x7E98,0x7F35}, {0x7E9C,0x7F06}, {0x7F4C,0x7F42}, {0x7F70,0x7F5A}, {0x7F77,0x7F62}, {0x7F85,0x7F57}, {0x7F86,0x7F74}, {0x7F88,0x7F81}, {0x7FA5,0x7F9F}, {0x7FA9,0x4E49}, {0x7FD2,0x4E60}, {0x7FF9,0x7FD8}, {0x802C,0x8027}, {0x802E,0x8022}, {0x8056,0x5723}, {0x805E,0x95FB}, {0x806F,0x8054}, {0x8070,0x806A}, {0x8072,0x58F0}, {0x8073,0x8038}, {0x8075,0x8069}, {0x8076,0x8042}, {0x8077,0x804C}, {0x8079,0x804D}, {0x807D,0x542C}, {0x807E,0x804B}, {0x8085,0x8083}, {0x8105,0x80C1}, {0x811B,0x80EB}, {0x8139,0x80C0}, {0x814E,0x80BE}, {0x8156,0x80E8}, {0x8161,0x8136}, {0x8166,0x8111}, {0x816B,0x80BF}, {0x8178,0x80A0}, {0x819A,0x80A4}, {0x81A0,0x80F6}, {0x81A9,0x817B}, {0x81BD,0x80C6}, {0x81BE,0x810D}, {0x81BF,0x8113}, {0x81C9,0x8138}, {0x81CD,0x8110}, {0x81CF,0x8191}, {0x81D8,0x814A}, {0x81DA,0x80EA}, {0x81DF,0x810F}, {0x81E0,0x8114}, {0x81E8,0x4E34}, {0x81FA,0x53F0}, {0x8207,0x4E0E}, {0x8208,0x5174}, {0x8209,0x4E3E}, {0x820A,0x65E7}, {0x8259,0x8231}, {0x8264,0x8223}, {0x8266,0x8230}, {0x826B,0x823B}, {0x8271,0x8270}, {0x8277,0x8273}, {0x82BB,0x520D}, {0x82E7,0x82CE}, {0x838A,0x5E84}, {0x8396,0x830E}, {0x83A2,0x835A}, {0x83A7,0x82CB}, {0x83EF,0x534E}, {0x8407,0x82CC}, {0x840A,0x83B1}, {0x842C,0x4E07}, {0x8435,0x83B4}, {0x8449,0x53F6}, {0x8452,0x836D}, {0x8464,0x836E}, {0x8466,0x82C7}, {0x8477,0x8364}, {0x8493,0x83BC}, {0x8494,0x83B3}, {0x84BC,0x82CD}, {0x84C0,0x836A}, {0x84CB,0x76D6}, {0x84EE,0x83B2}, {0x84EF,0x82C1}, {0x84FD,0x835C}, {0x851E,0x848C}, {0x8523,0x848B}, {0x8526,0x8311}, {0x852D,0x836B}, {0x8541,0x8368}, {0x8546,0x8487}, {0x854E,0x835E}, {0x8552,0x836C}, {0x8553,0x82B8}, {0x8555,0x83B8}, {0x8558,0x835B}, {0x8562,0x8489}, {0x8569,0x8361}, {0x856A,0x829C}, {0x856D,0x8427}, {0x8577,0x84E3}, {0x8588,0x835F}, {0x858A,0x84DF}, {0x858C,0x8297}, {0x8594,0x8537}, {0x859F,0x83B6}, {0x85A6,0x8350}, {0x85A9,0x8428}, {0x85BA,0x8360}, {0x85CD,0x84DD}, {0x85CE,0x8369}, {0x85DD,0x827A}, {0x85E5,0x836F}, {0x85EA,0x85AE}, {0x85F4,0x8574}, {0x85F6,0x82C8}, {0x85F9,0x853C}, {0x85FA,0x853A}, {0x8604,0x8572}, {0x8606,0x82A6}, {0x8607,0x82CF}, {0x860B,0x82F9}, {0x861A,0x85D3}, {0x861E,0x8539}, {0x8622,0x830F}, {0x862D,0x5170}, {0x863A,0x84E0}, {0x863F,0x841D}, {0x8655,0x5904}, {0x865C,0x864F}, {0x865F,0x53F7}, {0x8667,0x4E8F}, {0x86FA,0x86F1}, {0x8706,0x86AC}, {0x8755,0x8680}, {0x8766,0x867E}, {0x8778,0x8717}, {0x8784,0x86F3}, {0x879E,0x8682}, {0x87A2,0x8424}, {0x87BB,0x877C}, {0x87C4,0x86F0}, {0x87C8,0x8748}, {0x87CE,0x87A8}, {0x87E3,0x866E}, {0x87EC,0x8749}, {0x87EF,0x86F2}, {0x87F2,0x866B}, {0x87F6,0x86CF}, {0x87FB,0x8681}, {0x8805,0x8747}, {0x8806,0x867F}, {0x8810,0x86F4}, {0x8811,0x877E}, {0x881F,0x8721}, {0x8823,0x86CE}, {0x8831,0x86CA}, {0x8836,0x8695}, {0x883B,0x86EE}, {0x8846,0x4F17}, {0x8853,0x672F}, {0x885B,0x536B}, {0x885D,0x51B2}, {0x8879,0x53EA}, {0x88CA,0x8885}, {0x88CF,0x91CC}, {0x88DC,0x8865}, {0x88DD,0x88C5}, {0x8932,0x88E4}, {0x8933,0x88E2}, {0x8938,0x891B}, {0x893B,0x4EB5}, {0x8947,0x88E5}, {0x8956,0x8884}, {0x895D,0x88E3}, {0x8960,0x88C6}, {0x8964,0x8934}, {0x896A,0x889C}, {0x896F,0x886C}, {0x8972,0x88AD}, {0x898B,0x89C1}, {0x898F,0x89C4}, {0x8993,0x89C5}, {0x8996,0x89C6}, {0x8998,0x89C7}, {0x89A1,0x89CB}, {0x89A6,0x89CE}, {0x89AA,0x4EB2}, {0x89AC,0x89CA}, {0x89AF,0x89CF}, {0x89B2,0x89D0}, {0x89B7,0x89D1}, {0x89BA,0x89C9}, {0x89BD,0x89C8}, {0x89BF,0x89CC}, {0x89C0,0x89C2}, {0x89F4,0x89DE}, {0x89F6,0x89EF}, {0x89F8,0x89E6}, {0x8A01,0x8BA0}, {0x8A02,0x8BA2}, {0x8A03,0x8BA3}, {0x8A08,0x8BA1}, {0x8A0A,0x8BAF}, {0x8A0C,0x8BA7}, {0x8A0E,0x8BA8}, {0x8A10,0x8BA6}, {0x8A13,0x8BAD}, {0x8A15,0x8BAA}, {0x8A16,0x8BAB}, {0x8A18,0x8BB0}, {0x8A1B,0x8BB9}, {0x8A1D,0x8BB6}, {0x8A1F,0x8BBC}, {0x8A23,0x8BC0}, {0x8A25,0x8BB7}, {0x8A2A,0x8BBF}, {0x8A2D,0x8BBE}, {0x8A31,0x8BB8}, {0x8A34,0x8BC9}, {0x8A36,0x8BC3}, {0x8A3A,0x8BCA}, {0x8A41,0x8BC2}, {0x8A46,0x8BCB}, {0x8A4E,0x8BB5}, {0x8A50,0x8BC8}, {0x8A52,0x8BD2}, {0x8A54,0x8BCF}, {0x8A55,0x8BC4}, {0x8A58,0x8BCE}, {0x8A5B,0x8BC5}, {0x8A5E,0x8BCD}, {0x8A61,0x8BE9}, {0x8A62,0x8BE2}, {0x8A63,0x8BE3}, {0x8A66,0x8BD5}, {0x8A69,0x8BD7}, {0x8A6B,0x8BE7}, {0x8A6C,0x8BDF}, {0x8A6D,0x8BE1}, {0x8A6E,0x8BE0}, {0x8A70,0x8BD8}, {0x8A71,0x8BDD}, {0x8A72,0x8BE5}, {0x8A73,0x8BE6}, {0x8A75,0x8BDC}, {0x8A7C,0x8BD9}, {0x8A7F,0x8BD6}, {0x8A84,0x8BD4}, {0x8A85,0x8BDB}, {0x8A86,0x8BD3}, {0x8A87,0x5938}, {0x8A8D,0x8BA4}, {0x8A91,0x8BF3}, {0x8A92,0x8BF6}, {0x8A95,0x8BDE}, {0x8A98,0x8BF1}, {0x8A9A,0x8BEE}, {0x8A9E,0x8BED}, {0x8AA0,0x8BDA}, {0x8AA1,0x8BEB}, {0x8AA3,0x8BEC}, {0x8AA4,0x8BEF}, {0x8AA5,0x8BF0}, {0x8AA6,0x8BF5}, {0x8AA8,0x8BF2}, {0x8AAC,0x8BF4}, {0x8AB0,0x8C01}, {0x8AB2,0x8BFE}, {0x8AB6,0x8C07}, {0x8AB9,0x8BFD}, {0x8ABC,0x8C0A}, {0x8ABF,0x8C03}, {0x8AC2,0x8C04}, {0x8AC4,0x8C06}, {0x8AC7,0x8C08}, {0x8AC9,0x8BFF}, {0x8ACB,0x8BF7}, {0x8ACD,0x8BE4}, {0x8ACF,0x8BF9}, {0x8AD1,0x8BFC}, {0x8AD2,0x8C05}, {0x8AD6,0x8BBA}, {0x8AD7,0x8C02}, {0x8ADB,0x8C00}, {0x8ADC,0x8C0D}, {0x8ADE,0x8C1D}, {0x8AE2,0x8BE8}, {0x8AE4,0x8C14}, {0x8AE6,0x8C1B}, {0x8AE7,0x8C10}, {0x8AEB,0x8C0F}, {0x8AED,0x8C15}, {0x8AEE,0x8C18}, {0x8AF1,0x8BB3}, {0x8AF3,0x8C19}, {0x8AF6,0x8C0C}, {0x8AF7,0x8BBD}, {0x8AF8,0x8BF8}, {0x8AFA,0x8C1A}, {0x8AFC,0x8C16}, {0x8AFE,0x8BFA}, {0x8B00,0x8C0B}, {0x8B01,0x8C12}, {0x8B02,0x8C13}, {0x8B04,0x8A8A}, {0x8B05,0x8BCC}, {0x8B0A,0x8C0E}, {0x8B0E,0x8C1C}, {0x8B10,0x8C27}, {0x8B14,0x8C11}, {0x8B16,0x8C21}, {0x8B17,0x8C24}, {0x8B19,0x8C26}, {0x8B1A,0x8C25}, {0x8B1B,0x8BB2}, {0x8B1D,0x8C22}, {0x8B21,0x8C23}, {0x8B28,0x8C1F}, {0x8B2B,0x8C2A}, {0x8B2C,0x8C2C}, {0x8B2D,0x8C2B}, {0x8B33,0x8BB4}, {0x8B39,0x8C28}, {0x8B3E,0x8C29}, {0x8B49,0x8BC1}, {0x8B4E,0x8C32}, {0x8B4F,0x8BA5}, {0x8B56,0x8C2E}, {0x8B58,0x8BC6}, {0x8B59,0x8C2F}, {0x8B5A,0x8C2D}, {0x8B5C,0x8C31}, {0x8B6B,0x8C35}, {0x8B6F,0x8BD1}, {0x8B70,0x8BAE}, {0x8B74,0x8C34}, {0x8B77,0x62A4}, {0x8B7D,0x8A89}, {0x8B80,0x8BFB}, {0x8B8A,0x53D8}, {0x8B8E,0x96E0}, {0x8B92,0x8C17}, {0x8B93,0x8BA9}, {0x8B95,0x8C30}, {0x8B96,0x8C36}, {0x8B9C,0x8C20}, {0x8B9E,0x8C33}, {0x8C48,0x5C82}, {0x8C50,0x4E30}, {0x8C9D,0x8D1D}, {0x8C9E,0x8D1E}, {0x8CA0,0x8D1F}, {0x8CA1,0x8D22}, {0x8CA2,0x8D21}, {0x8CA7,0x8D2B}, {0x8CA8,0x8D27}, {0x8CA9,0x8D29}, {0x8CAA,0x8D2A}, {0x8CAB,0x8D2F}, {0x8CAC,0x8D23}, {0x8CAF,0x8D2E}, {0x8CB0,0x8D33}, {0x8CB2,0x8D40}, {0x8CB3,0x8D30}, {0x8CB4,0x8D35}, {0x8CB6,0x8D2C}, {0x8CB7,0x4E70}, {0x8CB8,0x8D37}, {0x8CBA,0x8D36}, {0x8CBB,0x8D39}, {0x8CBC,0x8D34}, {0x8CBD,0x8D3B}, {0x8CBF,0x8D38}, {0x8CC0,0x8D3A}, {0x8CC1,0x8D32}, {0x8CC2,0x8D42}, {0x8CC3,0x8D41}, {0x8CC4,0x8D3F}, {0x8CC5,0x8D45}, {0x8CC7,0x8D44}, {0x8CC8,0x8D3E}, {0x8CCA,0x8D3C}, {0x8CD1,0x8D48}, {0x8CD2,0x8D4A}, {0x8CD3,0x5BBE}, {0x8CD5,0x8D47}, {0x8CDA,0x8D49}, {0x8CDC,0x8D50}, {0x8CDE,0x8D4F}, {0x8CE0,0x8D54}, {0x8CE1,0x8D53}, {0x8CE2,0x8D24}, {0x8CE3,0x5356}, {0x8CE4,0x8D31}, {0x8CE6,0x8D4B}, {0x8CE7,0x8D55}, {0x8CEA,0x8D28}, {0x8CEB,0x8D4D}, {0x8CEC,0x8D26}, {0x8CED,0x8D4C}, {0x8CF4,0x8D56}, {0x8CFA,0x8D5A}, {0x8CFB,0x8D59}, {0x8CFC,0x8D2D}, {0x8CFD,0x8D5B}, {0x8CFE,0x8D5C}, {0x8D04,0x8D3D}, {0x8D05,0x8D58}, {0x8D08,0x8D60}, {0x8D0A,0x8D5E}, {0x8D0B,0x8D5D}, {0x8D0D,0x8D61}, {0x8D0F,0x8D62}, {0x8D10,0x8D46}, {0x8D16,0x8D4E}, {0x8D1B,0x8D63}, {0x8D1C,0x8D43}, {0x8D95,0x8D76}, {0x8D99,0x8D75}, {0x8DA8,0x8D8B}, {0x8DB2,0x8DB1}, {0x8E10,0x8DF5}, {0x8E34,0x8E0A}, {0x8E4C,0x8DC4}, {0x8E55,0x8DF8}, {0x8E63,0x8E52}, {0x8E7A,0x8DF7}, {0x8E89,0x8DB8}, {0x8E8A,0x8E0C}, {0x8E8B,0x8DFB}, {0x8E8D,0x8DC3}, {0x8E91,0x8E2F}, {0x8E92,0x8DDE}, {0x8E93,0x8E2C}, {0x8E9A,0x8DF9}, {0x8EA1,0x8E51}, {0x8EA5,0x8E7F}, {0x8EA6,0x8E9C}, {0x8EAA,0x8E8F}, {0x8EC0,0x8EAF}, {0x8ECA,0x8F66}, {0x8ECB,0x8F67}, {0x8ECC,0x8F68}, {0x8ECD,0x519B}, {0x8ED2,0x8F69}, {0x8ED4,0x8F6B}, {0x8EDB,0x8F6D}, {0x8EDF,0x8F6F}, {0x8EE4,0x8F77}, {0x8EEB,0x8F78}, {0x8EF2,0x8F71}, {0x8EF8,0x8F74}, {0x8EF9,0x8F75}, {0x8EFA,0x8F7A}, {0x8EFB,0x8F72}, {0x8EFC,0x8F76}, {0x8EFE,0x8F7C}, {0x8F03,0x8F83}, {0x8F05,0x8F82}, {0x8F07,0x8F81}, {0x8F09,0x8F7D}, {0x8F0A,0x8F7E}, {0x8F12,0x8F84}, {0x8F14,0x8F85}, {0x8F15,0x8F7B}, {0x8F1B,0x8F86}, {0x8F1C,0x8F8E}, {0x8F1D,0x8F89}, {0x8F1E,0x8F8B}, {0x8F1F,0x8F8D}, {0x8F25,0x8F8A}, {0x8F26,0x8F87}, {0x8F29,0x8F88}, {0x8F2A,0x8F6E}, {0x8F2F,0x8F91}, {0x8F33,0x8F8F}, {0x8F38,0x8F93}, {0x8F3B,0x8F90}, {0x8F3E,0x8F97}, {0x8F3F,0x8206}, {0x8F42,0x6BC2}, {0x8F44,0x8F96}, {0x8F45,0x8F95}, {0x8F46,0x8F98}, {0x8F49,0x8F6C}, {0x8F4D,0x8F99}, {0x8F4E,0x8F7F}, {0x8F54,0x8F9A}, {0x8F5F,0x8F70}, {0x8F61,0x8F94}, {0x8F62,0x8F79}, {0x8F64,0x8F73}, {0x8FA6,0x529E}, {0x8FAD,0x8F9E}, {0x8FAE,0x8FAB}, {0x8FAF,0x8FA9}, {0x8FB2,0x519C}, {0x9015,0x8FF3}, {0x9019,0x8FD9}, {0x9023,0x8FDE}, {0x9032,0x8FDB}, {0x904B,0x8FD0}, {0x904E,0x8FC7}, {0x9054,0x8FBE}, {0x9055,0x8FDD}, {0x905C,0x900A}, {0x905E,0x9012}, {0x9060,0x8FDC}, {0x9069,0x9002}, {0x9072,0x8FDF}, {0x9077,0x8FC1}, {0x9078,0x9009}, {0x907A,0x9057}, {0x907C,0x8FBD}, {0x9081,0x8FC8}, {0x9084,0x8FD8}, {0x9087,0x8FE9}, {0x908A,0x8FB9}, {0x908F,0x903B}, {0x9090,0x9026}, {0x90DF,0x90CF}, {0x90F5,0x90AE}, {0x9106,0x90D3}, {0x9109,0x4E61}, {0x9112,0x90B9}, {0x9114,0x90AC}, {0x9116,0x90E7}, {0x9127,0x9093}, {0x912D,0x90D1}, {0x9130,0x90BB}, {0x9132,0x90F8}, {0x9134,0x90BA}, {0x9136,0x90D0}, {0x913A,0x909D}, {0x9148,0x90E6}, {0x9196,0x915D}, {0x919C,0x4E11}, {0x91AB,0x533B}, {0x91AC,0x9171}, {0x91C0,0x917F}, {0x91C1,0x8845}, {0x91C3,0x917E}, {0x91C5,0x917D}, {0x91CB,0x91CA}, {0x91D2,0x9485}, {0x91D3,0x9486}, {0x91D4,0x9487}, {0x91D5,0x948C}, {0x91D7,0x948A}, {0x91D8,0x9489}, {0x91D9,0x948B}, {0x91DD,0x9488}, {0x91E3,0x9493}, {0x91E4,0x9490}, {0x91E7,0x948F}, {0x91E9,0x9492}, {0x91F5,0x9497}, {0x91F7,0x948D}, {0x91F9,0x9495}, {0x91FA,0x948E}, {0x9200,0x94AF}, {0x9201,0x94AB}, {0x9204,0x94AD}, {0x9208,0x949A}, {0x9209,0x94A0}, {0x920D,0x949D}, {0x920E,0x94A9}, {0x9210,0x94A4}, {0x9211,0x94A3}, {0x9214,0x949E}, {0x9215,0x94AE}, {0x921E,0x94A7}, {0x9223,0x9499}, {0x9225,0x94AC}, {0x9226,0x949B}, {0x9227,0x94AA}, {0x922E,0x94CC}, {0x9230,0x94C8}, {0x9233,0x94B6}, {0x9234,0x94C3}, {0x9237,0x94B4}, {0x9238,0x94B9}, {0x9239,0x94CD}, {0x923A,0x94B0}, {0x923D,0x94B8}, {0x923E,0x94C0}, {0x923F,0x94BF}, {0x9240,0x94BE}, {0x9245,0x949C}, {0x9248,0x94CA}, {0x9249,0x94C9}, {0x924D,0x94CB}, {0x9251,0x94C2}, {0x9255,0x94B7}, {0x9257,0x94B3}, {0x925A,0x94C6}, {0x925B,0x94C5}, {0x925E,0x94BA}, {0x9262,0x94B5}, {0x9266,0x94B2}, {0x926C,0x94BC}, {0x926D,0x94BD}, {0x9278,0x94F0}, {0x927A,0x94D2}, {0x927B,0x94EC}, {0x927F,0x94EA}, {0x9280,0x94F6}, {0x9283,0x94F3}, {0x9285,0x94DC}, {0x9291,0x94E3}, {0x9293,0x94E8}, {0x9296,0x94E2}, {0x9298,0x94ED}, {0x929A,0x94EB}, {0x929C,0x8854}, {0x92A0,0x94D1}, {0x92A3,0x94F7}, {0x92A5,0x94F1}, {0x92A6,0x94DF}, {0x92A8,0x94F5}, {0x92A9,0x94E5}, {0x92AA,0x94D5}, {0x92AB,0x94EF}, {0x92AC,0x94D0}, {0x92B1,0x94DE}, {0x92B7,0x9500}, {0x92B9,0x9508}, {0x92BB,0x9511}, {0x92BC,0x9509}, {0x92C1,0x94DD}, {0x92C3,0x9512}, {0x92C5,0x950C}, {0x92C7,0x94A1}, {0x92CC,0x94E4}, {0x92CF,0x94D7}, {0x92D2,0x950B}, {0x92DD,0x950A}, {0x92DF,0x9513}, {0x92E3,0x94D8}, {0x92E4,0x9504}, {0x92E5,0x9503}, {0x92E6,0x9514}, {0x92E8,0x9507}, {0x92EA,0x94FA}, {0x92ED,0x9510}, {0x92EE,0x94D6}, {0x92EF,0x9506}, {0x92F0,0x9502}, {0x92F1,0x94FD}, {0x92F6,0x950D}, {0x92F8,0x952F}, {0x92FC,0x94A2}, {0x9301,0x951E}, {0x9306,0x9516}, {0x9307,0x952B}, {0x9308,0x9529}, {0x9310,0x9525}, {0x9312,0x9515}, {0x9315,0x951F}, {0x9318,0x9524}, {0x9319,0x9531}, {0x931A,0x94EE}, {0x931B,0x951B}, {0x931F,0x952C}, {0x9320,0x952D}, {0x9322,0x94B1}, {0x9326,0x9526}, {0x9328,0x951A}, {0x932B,0x9521}, {0x932E,0x9522}, {0x932F,0x9519}, {0x9332,0x5F55}, {0x9333,0x9530}, {0x9338,0x94FC}, {0x9340,0x951D}, {0x9341,0x9528}, {0x9343,0x952A}, {0x9346,0x9494}, {0x9347,0x9534}, {0x934B,0x9505}, {0x934D,0x9540}, {0x9354,0x9537}, {0x9358,0x94E1}, {0x935B,0x953B}, {0x9364,0x9538}, {0x9365,0x9532}, {0x9369,0x9518}, {0x936C,0x9539}, {0x9370,0x953E}, {0x9375,0x952E}, {0x9376,0x9536}, {0x937A,0x9517}, {0x937E,0x953A}, {0x9382,0x9541}, {0x9384,0x953F}, {0x9387,0x9545}, {0x938A,0x9551}, {0x9396,0x9501}, {0x9398,0x9549}, {0x93A2,0x94A8}, {0x93A3,0x84E5}, {0x93A6,0x954F}, {0x93A7,0x94E0}, {0x93A9,0x94E9}, {0x93AA,0x953C}, {0x93AC,0x9550}, {0x93AE,0x9547}, {0x93B0,0x9552}, {0x93B3,0x954D}, {0x93B5,0x9553}, {0x93B8,0x954C}, {0x93BF,0x954E}, {0x93C3,0x955E}, {0x93C7,0x955F}, {0x93C8,0x94FE}, {0x93CC,0x9546}, {0x93CD,0x9559}, {0x93D1,0x955D}, {0x93D7,0x94FF}, {0x93D8,0x9535}, {0x93DC,0x9557}, {0x93DD,0x9558}, {0x93DE,0x955B}, {0x93DF,0x94F2}, {0x93E1,0x955C}, {0x93E2,0x9556}, {0x93E4,0x9542}, {0x93E8,0x933E}, {0x93F5,0x94E7}, {0x93F7,0x9564}, {0x93F9,0x956A}, {0x9403,0x94D9}, {0x940B,0x94F4}, {0x9410,0x9563}, {0x9412,0x94F9}, {0x9413,0x9566}, {0x9414,0x9561}, {0x9418,0x949F}, {0x9419,0x956B}, {0x941D,0x9562}, {0x9420,0x9568}, {0x9426,0x950E}, {0x9427,0x950F}, {0x9428,0x9544}, {0x942E,0x9570}, {0x9432,0x956F}, {0x9433,0x956D}, {0x9435,0x94C1}, {0x9438,0x94CE}, {0x943A,0x94DB}, {0x943F,0x9571}, {0x9444,0x94F8}, {0x944A,0x956C}, {0x944C,0x9554}, {0x9452,0x9274}, {0x9454,0x9572}, {0x9460,0x94C4}, {0x9463,0x9573}, {0x9465,0x9565}, {0x946D,0x9567}, {0x9470,0x94A5}, {0x9472,0x9576}, {0x9477,0x954A}, {0x9479,0x9569}, {0x947C,0x9523}, {0x947D,0x94BB}, {0x947E,0x92AE}, {0x947F,0x51FF}, {0x9577,0x957F}, {0x9580,0x95E8}, {0x9582,0x95E9}, {0x9583,0x95EA}, {0x9586,0x95EB}, {0x9589,0x95ED}, {0x958B,0x5F00}, {0x958C,0x95F6}, {0x958E,0x95F3}, {0x958F,0x95F0}, {0x9591,0x95F2}, {0x9593,0x95F4}, {0x9594,0x95F5}, {0x9598,0x95F8}, {0x95A1,0x9602}, {0x95A3,0x9601}, {0x95A5,0x9600}, {0x95A8,0x95FA}, {0x95A9,0x95FD}, {0x95AB,0x9603}, {0x95AC,0x9606}, {0x95AD,0x95FE}, {0x95B2,0x9605}, {0x95B6,0x960A}, {0x95B9,0x9609}, {0x95BB,0x960E}, {0x95BC,0x960F}, {0x95BD,0x960D}, {0x95BE,0x9608}, {0x95BF,0x960C}, {0x95C3,0x9612}, {0x95C8,0x95F1}, {0x95CA,0x9614}, {0x95CB,0x9615}, {0x95CC,0x9611}, {0x95D0,0x9617}, {0x95D4,0x9616}, {0x95D5,0x9619}, {0x95D6,0x95EF}, {0x95DC,0x5173}, {0x95DE,0x961A}, {0x95E1,0x9610}, {0x95E5,0x95FC}, {0x9658,0x9649}, {0x965D,0x9655}, {0x9663,0x9635}, {0x9670,0x9634}, {0x9673,0x9648}, {0x9678,0x9646}, {0x967D,0x9633}, {0x9689,0x9667}, {0x968A,0x961F}, {0x968E,0x9636}, {0x9695,0x9668}, {0x969B,0x9645}, {0x96A8,0x968F}, {0x96AA,0x9669}, {0x96B1,0x9690}, {0x96B4,0x9647}, {0x96B8,0x96B6}, {0x96D6,0x867D}, {0x96D9,0x53CC}, {0x96DB,0x96CF}, {0x96DC,0x6742}, {0x96E2,0x79BB}, {0x96E3,0x96BE}, {0x96F2,0x4E91}, {0x96FB,0x7535}, {0x9727,0x96FE}, {0x973D,0x9701}, {0x9742,0x96F3}, {0x9744,0x972D}, {0x9748,0x7075}, {0x975A,0x9753}, {0x975C,0x9759}, {0x9768,0x9765}, {0x978F,0x5DE9}, {0x97BD,0x9792}, {0x97C3,0x9791}, {0x97C9,0x97AF}, {0x97CB,0x97E6}, {0x97CC,0x97E7}, {0x97D3,0x97E9}, {0x97D9,0x97EA}, {0x97DC,0x97EC}, {0x97DE,0x97EB}, {0x97FF,0x54CD}, {0x9801,0x9875}, {0x9802,0x9876}, {0x9803,0x9877}, {0x9805,0x9879}, {0x9806,0x987A}, {0x9807,0x9878}, {0x9808,0x987B}, {0x980A,0x987C}, {0x980C,0x9882}, {0x980E,0x9880}, {0x980F,0x9883}, {0x9810,0x9884}, {0x9811,0x987D}, {0x9812,0x9881}, {0x9813,0x987F}, {0x9817,0x9887}, {0x9818,0x9886}, {0x981C,0x988C}, {0x9821,0x9889}, {0x9824,0x9890}, {0x9826,0x988F}, {0x982D,0x5934}, {0x9830,0x988A}, {0x9837,0x9894}, {0x9838,0x9888}, {0x983B,0x9891}, {0x983D,0x9893}, {0x9846,0x9897}, {0x984C,0x9898}, {0x984D,0x989D}, {0x984E,0x989A}, {0x9853,0x989B}, {0x9854,0x989C}, {0x9858,0x613F}, {0x9859,0x98A1}, {0x985B,0x98A0}, {0x985E,0x7C7B}, {0x9862,0x989F}, {0x9865,0x98A2}, {0x9867,0x987E}, {0x986B,0x98A4}, {0x986C,0x98A5}, {0x986F,0x663E}, {0x9870,0x98A6}, {0x9871,0x9885}, {0x9873,0x989E}, {0x9874,0x98A7}, {0x98A8,0x98CE}, {0x98AE,0x98D1}, {0x98AF,0x98D2}, {0x98B6,0x98D3}, {0x98BC,0x98D5}, {0x98C4,0x98D8}, {0x98C6,0x98D9}, {0x98C8,0x98DA}, {0x98DB,0x98DE}, {0x98E0,0x9963}, {0x98E9,0x9968}, {0x98EA,0x996A}, {0x98EB,0x996B}, {0x98ED,0x996C}, {0x98EF,0x996D}, {0x98F2,0x996E}, {0x98F4,0x9974}, {0x98FC,0x9972}, {0x98FD,0x9971}, {0x98FE,0x9970}, {0x9903,0x997A}, {0x9905,0x997C}, {0x9909,0x9977}, {0x990A,0x517B}, {0x990C,0x9975}, {0x9911,0x997D}, {0x9912,0x9981}, {0x9913,0x997F}, {0x9918,0x4F59}, {0x991B,0x9984}, {0x991E,0x996F}, {0x9921,0x9985}, {0x9928,0x9986}, {0x9933,0x9967}, {0x9937,0x9987}, {0x993C,0x9969}, {0x993E,0x998F}, {0x993F,0x998A}, {0x9943,0x998D}, {0x9945,0x9992}, {0x9948,0x9990}, {0x9949,0x9991}, {0x994A,0x9993}, {0x994B,0x9988}, {0x994C,0x9994}, {0x9951,0x9965}, {0x9952,0x9976}, {0x9957,0x98E8}, {0x995C,0x990D}, {0x995E,0x998B}, {0x9962,0x9995}, {0x99AC,0x9A6C}, {0x99AD,0x9A6D}, {0x99AE,0x51AF}, {0x99B1,0x9A6E}, {0x99B3,0x9A70}, {0x99B4,0x9A6F}, {0x99C1,0x9A73}, {0x99D0,0x9A7B}, {0x99D1,0x9A7D}, {0x99D2,0x9A79}, {0x99D4,0x9A75}, {0x99D5,0x9A7E}, {0x99D8,0x9A80}, {0x99D9,0x9A78}, {0x99DB,0x9A76}, {0x99DD,0x9A7C}, {0x99DF,0x9A77}, {0x99E1,0x9A82}, {0x99E2,0x9A88}, {0x99ED,0x9A87}, {0x99F1,0x9A86}, {0x99FF,0x9A8F}, {0x9A01,0x9A8B}, {0x9A05,0x9A93}, {0x9A0D,0x9A92}, {0x9A0E,0x9A91}, {0x9A0F,0x9A90}, {0x9A16,0x9A9B}, {0x9A19,0x9A97}, {0x9A2B,0x9A9E}, {0x9A2D,0x9A98}, {0x9A2E,0x9A9D}, {0x9A30,0x817E}, {0x9A36,0x9A7A}, {0x9A37,0x9A9A}, {0x9A38,0x9A9F}, {0x9A3E,0x9AA1}, {0x9A40,0x84E6}, {0x9A41,0x9A9C}, {0x9A42,0x9A96}, {0x9A43,0x9AA0}, {0x9A44,0x9AA2}, {0x9A45,0x9A71}, {0x9A4A,0x9A85}, {0x9A4D,0x9A81}, {0x9A4F,0x9AA3}, {0x9A55,0x9A84}, {0x9A57,0x9A8C}, {0x9A5A,0x60CA}, {0x9A5B,0x9A7F}, {0x9A5F,0x9AA4}, {0x9A62,0x9A74}, {0x9A64,0x9AA7}, {0x9A65,0x9AA5}, {0x9A6A,0x9A8A}, {0x9AAF,0x80AE}, {0x9ACF,0x9AC5}, {0x9AD4,0x4F53}, {0x9AD5,0x9ACC}, {0x9AD6,0x9ACB}, {0x9B06,0x677E}, {0x9B22,0x9B13}, {0x9B25,0x6597}, {0x9B27,0x95F9}, {0x9B29,0x960B}, {0x9B2E,0x9604}, {0x9B31,0x90C1}, {0x9B4E,0x9B49}, {0x9B58,0x9B47}, {0x9B5A,0x9C7C}, {0x9B6F,0x9C81}, {0x9B74,0x9C82}, {0x9B77,0x9C7F}, {0x9B81,0x9C85}, {0x9B83,0x9C86}, {0x9B8E,0x9C87}, {0x9B90,0x9C90}, {0x9B91,0x9C8D}, {0x9B92,0x9C8B}, {0x9B9A,0x9C92}, {0x9B9D,0x9C9E}, {0x9B9E,0x9C95}, {0x9BAA,0x9C94}, {0x9BAB,0x9C9B}, {0x9BAD,0x9C91}, {0x9BAE,0x9C9C}, {0x9BC0,0x9CA7}, {0x9BC1,0x9CA0}, {0x9BC7,0x9CA9}, {0x9BC9,0x9CA4}, {0x9BCA,0x9CA8}, {0x9BD4,0x9CBB}, {0x9BD6,0x9CAD}, {0x9BDB,0x9CB7}, {0x9BDD,0x9CB4}, {0x9BE1,0x9CB1}, {0x9BE2,0x9CB5}, {0x9BE4,0x9CB2}, {0x9BE7,0x9CB3}, {0x9BE8,0x9CB8}, {0x9BEA,0x9CAE}, {0x9BEB,0x9CB0}, {0x9BF0,0x9CB6}, {0x9BF4,0x9CBA}, {0x9BFD,0x9CAB}, {0x9BFF,0x9CCA}, {0x9C08,0x9CBD}, {0x9C09,0x9CC7}, {0x9C0D,0x9CC5}, {0x9C10,0x9CC4}, {0x9C12,0x9CC6}, {0x9C13,0x9CC3}, {0x9C20,0x9CCB}, {0x9C23,0x9CA5}, {0x9C25,0x9CCF}, {0x9C28,0x9CCE}, {0x9C29,0x9CD0}, {0x9C2D,0x9CCD}, {0x9C31,0x9CA2}, {0x9C32,0x9CCC}, {0x9C33,0x9CD3}, {0x9C35,0x9CD8}, {0x9C37,0x9CA6}, {0x9C39,0x9CA3}, {0x9C3B,0x9CD7}, {0x9C3E,0x9CD4}, {0x9C45,0x9CD9}, {0x9C48,0x9CD5}, {0x9C49,0x9CD6}, {0x9C52,0x9CDF}, {0x9C54,0x9CDD}, {0x9C56,0x9CDC}, {0x9C57,0x9CDE}, {0x9C58,0x9C9F}, {0x9C5D,0x9CBC}, {0x9C5F,0x9C8E}, {0x9C67,0x9CE2}, {0x9C6D,0x9C9A}, {0x9C78,0x9C88}, {0x9C7A,0x9CA1}, {0x9CE5,0x9E1F}, {0x9CE9,0x9E20}, {0x9CEC,0x51EB}, {0x9CF3,0x51E4}, {0x9CF4,0x9E23}, {0x9CF6,0x9E22}, {0x9D06,0x9E29}, {0x9D07,0x9E28}, {0x9D09,0x9E26}, {0x9D15,0x9E35}, {0x9D1B,0x9E33}, {0x9D1D,0x9E32}, {0x9D1F,0x9E31}, {0x9D23,0x9E2A}, {0x9D26,0x9E2F}, {0x9D28,0x9E2D}, {0x9D2F,0x9E38}, {0x9D30,0x9E39}, {0x9D3B,0x9E3F}, {0x9D3F,0x9E3D}, {0x9D42,0x9E3A}, {0x9D51,0x9E43}, {0x9D52,0x9E46}, {0x9D53,0x9E41}, {0x9D5C,0x9E48}, {0x9D5D,0x9E45}, {0x9D60,0x9E44}, {0x9D61,0x9E49}, {0x9D6A,0x9E4C}, {0x9D6C,0x9E4F}, {0x9D6F,0x9E4E}, {0x9D72,0x9E4A}, {0x9D87,0x9E2B}, {0x9D89,0x9E51}, {0x9D93,0x9E4B}, {0x9D98,0x9E55}, {0x9D9A,0x9E57}, {0x9DA5,0x9E5B}, {0x9DA9,0x9E5C}, {0x9DAF,0x83BA}, {0x9DB4,0x9E64}, {0x9DBB,0x9E58}, {0x9DBC,0x9E63}, {0x9DC0,0x9E5A}, {0x9DC2,0x9E5E}, {0x9DC4,0x9E21}, {0x9DD3,0x9E67}, {0x9DD7,0x9E25}, {0x9DD9,0x9E37}, {0x9DDA,0x9E68}, {0x9DE5,0x9E36}, {0x9DE6,0x9E6A}, {0x9DEF,0x9E69}, {0x9DF2,0x9E6B}, {0x9DF3,0x9E47}, {0x9DF8,0x9E6C}, {0x9DF9,0x9E70}, {0x9DFA,0x9E6D}, {0x9E0C,0x9E71}, {0x9E15,0x9E2C}, {0x9E1A,0x9E66}, {0x9E1B,0x9E73}, {0x9E1D,0x9E42}, {0x9E1E,0x9E3E}, {0x9E7A,0x9E7E}, {0x9E7C,0x7877}, {0x9E7D,0x76D0}, {0x9E97,0x4E3D}, {0x9EA5,0x9EA6}, {0x9EA9,0x9EB8}, {0x9EBD,0x4E48}, {0x9ECC,0x9EC9}, {0x9EDE,0x70B9}, {0x9EE8,0x515A}, {0x9EF2,0x9EEA}, {0x9EF7,0x9EE9}, {0x9EFD,0x9EFE}, {0x9EFF,0x9F0B}, {0x9F09,0x9F0D}, {0x9F4A,0x9F50}, {0x9F4B,0x658B}, {0x9F4F,0x9F51}, {0x9F52,0x9F7F}, {0x9F54,0x9F80}, {0x9F59,0x9F85}, {0x9F5C,0x9F87}, {0x9F5F,0x9F83}, {0x9F60,0x9F86}, {0x9F61,0x9F84}, {0x9F66,0x9F88}, {0x9F6A,0x9F8A}, {0x9F6C,0x9F89}, {0x9F72,0x9F8B}, {0x9F77,0x9F8C}, {0x9F8D,0x9F99}, {0x9F90,0x5E9E}, {0x9F94,0x9F9A}, {0x9F95,0x9F9B}, {0x9F9C,0x9F9F} }; /* the letters correspond to unicode characters which * have Lu, Ll, Lt, Lm, Lo, Mn, Mc, or Me in their * GENERAL CATEGORY */ #define NUM_LETTER_INFO 277 static const unirange letter_info[NUM_LETTER_INFO] = { {0x41,0x5a}, {0x61,0x7a}, {0xaa,0xaa}, {0xb5,0xb5}, {0xba,0xba}, {0xc0,0xd6}, {0xd8,0xf6}, {0xf8,0x1f5}, {0x1fa,0x217}, {0x250,0x2a8}, {0x2b0,0x2b8}, {0x2bb,0x2c1}, {0x2d0,0x2d1}, {0x2e0,0x2e4}, {0x300,0x345}, {0x360,0x361}, {0x37a,0x37a}, {0x386,0x386}, {0x388,0x38a}, {0x38c,0x38c}, {0x38e,0x3a1}, {0x3a3,0x3ce}, {0x3d0,0x3d6}, {0x3da,0x3da}, {0x3dc,0x3dc}, {0x3de,0x3de}, {0x3e0,0x3e0}, {0x3e2,0x3f3}, {0x401,0x40c}, {0x40e,0x44f}, {0x451,0x45c}, {0x45e,0x481}, {0x483,0x486}, {0x490,0x4c4}, {0x4c7,0x4c8}, {0x4cb,0x4cc}, {0x4d0,0x4eb}, {0x4ee,0x4f5}, {0x4f8,0x4f9}, {0x531,0x556}, {0x559,0x559}, {0x561,0x587}, {0x591,0x5a1}, {0x5a3,0x5b9}, {0x5bb,0x5bd}, {0x5bf,0x5bf}, {0x5c1,0x5c2}, {0x5c4,0x5c4}, {0x5d0,0x5ea}, {0x5f0,0x5f2}, {0x621,0x63a}, {0x640,0x652}, {0x670,0x6b7}, {0x6ba,0x6be}, {0x6c0,0x6ce}, {0x6d0,0x6d3}, {0x6d5,0x6e8}, {0x6ea,0x6ed}, {0x780,0x7b1}, {0x901,0x903}, {0x905,0x939}, {0x93c,0x94d}, {0x951,0x954}, {0x958,0x963}, {0x981,0x983}, {0x985,0x98c}, {0x98f,0x990}, {0x993,0x9a8}, {0x9aa,0x9b0}, {0x9b2,0x9b2}, {0x9b6,0x9b9}, {0x9bc,0x9bc}, {0x9be,0x9c4}, {0x9c7,0x9c8}, {0x9cb,0x9cd}, {0x9d7,0x9d7}, {0x9dc,0x9dd}, {0x9df,0x9e3}, {0x9f0,0x9f1}, {0xa02,0xa02}, {0xa05,0xa0a}, {0xa0f,0xa10}, {0xa13,0xa28}, {0xa2a,0xa30}, {0xa32,0xa33}, {0xa35,0xa36}, {0xa38,0xa39}, {0xa3c,0xa3c}, {0xa3e,0xa42}, {0xa47,0xa48}, {0xa4b,0xa4d}, {0xa59,0xa5c}, {0xa5e,0xa5e}, {0xa70,0xa74}, {0xa81,0xa83}, {0xa85,0xa8b}, {0xa8d,0xa8d}, {0xa8f,0xa91}, {0xa93,0xaa8}, {0xaaa,0xab0}, {0xab2,0xab3}, {0xab5,0xab9}, {0xabc,0xac5}, {0xac7,0xac9}, {0xacb,0xacd}, {0xae0,0xae0}, {0xb01,0xb03}, {0xb05,0xb0c}, {0xb0f,0xb10}, {0xb13,0xb28}, {0xb2a,0xb30}, {0xb32,0xb33}, {0xb36,0xb39}, {0xb3c,0xb43}, {0xb47,0xb48}, {0xb4b,0xb4d}, {0xb56,0xb57}, {0xb5c,0xb5d}, {0xb5f,0xb61}, {0xb82,0xb83}, {0xb85,0xb8a}, {0xb8e,0xb90}, {0xb92,0xb95}, {0xb99,0xb9a}, {0xb9c,0xb9c}, {0xb9e,0xb9f}, {0xba3,0xba4}, {0xba8,0xbaa}, {0xbae,0xbb5}, {0xbb7,0xbb9}, {0xbbe,0xbc2}, {0xbc6,0xbc8}, {0xbca,0xbcd}, {0xbd7,0xbd7}, {0xc01,0xc03}, {0xc05,0xc0c}, {0xc0e,0xc10}, {0xc12,0xc28}, {0xc2a,0xc33}, {0xc35,0xc39}, {0xc3e,0xc44}, {0xc46,0xc48}, {0xc4a,0xc4d}, {0xc55,0xc56}, {0xc60,0xc61}, {0xc82,0xc83}, {0xc85,0xc8c}, {0xc8e,0xc90}, {0xc92,0xca8}, {0xcaa,0xcb3}, {0xcb5,0xcb9}, {0xcbe,0xcc4}, {0xcc6,0xcc8}, {0xcca,0xccd}, {0xcd5,0xcd6}, {0xcde,0xcde}, {0xce0,0xce1}, {0xd02,0xd03}, {0xd05,0xd0c}, {0xd0e,0xd10}, {0xd12,0xd28}, {0xd2a,0xd39}, {0xd3e,0xd43}, {0xd46,0xd48}, {0xd4a,0xd4d}, {0xd57,0xd57}, {0xd60,0xd61}, {0xe01,0xe2e}, {0xe30,0xe3a}, {0xe40,0xe4e}, {0xe81,0xe82}, {0xe84,0xe84}, {0xe87,0xe88}, {0xe8a,0xe8a}, {0xe8d,0xe8d}, {0xe94,0xe97}, {0xe99,0xe9f}, {0xea1,0xea3}, {0xea5,0xea5}, {0xea7,0xea7}, {0xeaa,0xeab}, {0xead,0xeae}, {0xeb0,0xeb9}, {0xebb,0xebd}, {0xec0,0xec4}, {0xec6,0xec6}, {0xec8,0xecd}, {0xedc,0xedd}, {0xf18,0xf19}, {0xf35,0xf35}, {0xf37,0xf37}, {0xf39,0xf39}, {0xf40,0xf47}, {0xf49,0xf69}, {0xf71,0xf84}, {0xf86,0xf87}, {0xf90,0xf95}, {0xf97,0xf97}, {0xf99,0xfad}, {0xfb1,0xfb7}, {0xfb9,0xfb9}, {0x10a0,0x10c5}, {0x10d0,0x10f6}, {0x1100,0x1159}, {0x115f,0x11a2}, {0x11a8,0x11f9}, {0x1820,0x1877}, {0x1880,0x18a9}, {0x1e00,0x1e9b}, {0x1ea0,0x1ef9}, {0x1f00,0x1f15}, {0x1f18,0x1f1d}, {0x1f20,0x1f45}, {0x1f48,0x1f4d}, {0x1f50,0x1f57}, {0x1f59,0x1f59}, {0x1f5b,0x1f5b}, {0x1f5d,0x1f5d}, {0x1f5f,0x1f7d}, {0x1f80,0x1fb4}, {0x1fb6,0x1fbc}, {0x1fbe,0x1fbe}, {0x1fc2,0x1fc4}, {0x1fc6,0x1fcc}, {0x1fd0,0x1fd3}, {0x1fd6,0x1fdb}, {0x1fe0,0x1fec}, {0x1ff2,0x1ff4}, {0x1ff6,0x1ffc}, {0x207f,0x207f}, {0x20d0,0x20e1}, {0x2102,0x2102}, {0x2107,0x2107}, {0x210a,0x2113}, {0x2115,0x2115}, {0x2118,0x211d}, {0x2124,0x2124}, {0x2126,0x2126}, {0x2128,0x2128}, {0x212a,0x2131}, {0x2133,0x2138}, {0x3005,0x3005}, {0x302a,0x302f}, {0x3031,0x3035}, {0x3041,0x3094}, {0x3099,0x309e}, {0x30a1,0x30fa}, {0x30fc,0x30fe}, {0x3105,0x312c}, {0x3131,0x318e}, {0x4e00,0x9fa5}, {0xac00,0xd7a3}, {0xf900,0xfa2d}, {0xfb00,0xfb06}, {0xfb13,0xfb17}, {0xfb1e,0xfb28}, {0xfb2a,0xfb36}, {0xfb38,0xfb3c}, {0xfb3e,0xfb3e}, {0xfb40,0xfb41}, {0xfb43,0xfb44}, {0xfb46,0xfbb1}, {0xfbd3,0xfd3d}, {0xfd50,0xfd8f}, {0xfd92,0xfdc7}, {0xfdf0,0xfdfb}, {0xfe20,0xfe23}, {0xfe70,0xfe72}, {0xfe74,0xfe74}, {0xfe76,0xfefc}, {0xff21,0xff3a}, {0xff41,0xff5a}, {0xff66,0xffbe}, {0xffc2,0xffc7}, {0xffca,0xffcf}, {0xffd2,0xffd7}, {0xffda,0xffdc} }; /* the digits correspond to unicode characters which * have Nd in their GENERAL CATEGORY */ #define NUM_DIGIT_INFO 17 static const unirange digit_info[NUM_DIGIT_INFO] = { {0x30,0x39}, {0x660,0x669}, {0x6f0,0x6f9}, {0x966,0x96f}, {0x9e6,0x9ef}, {0xa66,0xa6f}, {0xae6,0xaef}, {0xb66,0xb6f}, {0xbe7,0xbef}, {0xc66,0xc6f}, {0xce6,0xcef}, {0xd66,0xd6f}, {0xe50,0xe59}, {0xed0,0xed9}, {0xf20,0xf29}, {0xff10,0xff19}, {0x1810,0x1819} }; /* the spaces correspond to unicode characters which * have Zs, Zl, or Zp in their GENERAL CATEGORY */ #define NUM_SPACE_INFO 5 static const unirange space_info[NUM_SPACE_INFO] = { {0x20,0x20}, {0xa0,0xa0}, {0x2000,0x200b}, {0x2028,0x2029}, {0x3000,0x3000} }; /* parse_utf8_char parses the next utf-8 character, placing its * unicode equivalent in *value. The length of the utf-8 character * is returned */ int parse_utf8_char(const unsigned char *here, const unsigned char *end, unsigned short *value) { unsigned short c1; unsigned short c2; unsigned short c3; *value = 0; /* will be the value for illegal characters */ if (here <= end) { c1 = (unsigned short)(*here); if (c1 <= 0x7f) { /* found a one-byte character */ *value = c1; return 1; } else if (c1 >= 0xc0 && c1 <= 0xdf && here+1 <= end && (c2=(unsigned short)(*(here+1))) >= 0x80) { /* found a two-byte character */ *value = ((c1 & 0x1f) << 6) + (c2 & 0x3f); return 2; } else if (c1 >= 0xe0 && c1 <= 0xef && here+2 <= end && (c2=(unsigned int)(*(here+1))) >= 0x80 && (c3=(unsigned int)(*(here+2))) >= 0x80) { /* found a three-byte character */ *value = ((c1 & 0xf) << 12) + ((c2 & 0x3f) << 6) + (c3 & 0x3f); return 3; } else { /* error in encoding, return the length as 1 */ return 1; } } /* end of string */ return 0; } /* output_utf8_char encodes a unicode character as a UTF-8 character. * The length of the encoding is returned. If the string was not * long enough to encode the character 0 is returned. */ int output_utf8_char (unsigned short value, unsigned char *here, unsigned char *end) { int len = (int)(end - here + 1); /* end is the last character */ if (value < 0x80) { /* will be encoded in one byte */ if (len >= 1) { *here = (unsigned char)value; return 1; } } else if (value < 0x800) { /* will be encoded in two bytes */ if (len >= 2) { *here++ = 0xc0 | (unsigned char)((value >> 6) & 0x1f); *here = 0x80 | (unsigned char)(value & 0x3f); return 2; } } else { /* will be encoded in three bytes */ if (len >= 3) { *here++ = 0xe0 | (unsigned char)((value >> 12) & 0xf); *here++ = 0x80 | (unsigned char)((value >> 6) & 0x3f); *here = 0x80 | (unsigned char)(value & 0x3f); return 3; } } return 0; } static int lookup_decompose_table (unsigned short value) { int first = 0; int last = NUM_DECOMPOSE_INFO; int here; while (first < last) { here = (last-first)/2 + first; if (value < decompose_info[here].ch) { last = here; } else if (value > decompose_info[here].ch) { first = here+1; } else { return here; } } return -1; } /* decompose_str will decompose a unicode string into its canonical * equivalents. NULL is returned if the input array was not * large enough to contain the fully decomposed string (the array * will be in a correct, but partially decomposed state). The input * must be null-terminated. */ unsigned short *decompose_str (unsigned short *input, int max_output_len) { int curpos = 0; int curlen = unicode_strlen (input); int tablepos = 0; int leninc; int i; while (input[curpos] != 0) { tablepos = lookup_decompose_table (input[curpos]); if (tablepos >= 0) { /* found a decomposition */ leninc = unicode_strnlen (decompose_info[tablepos].str, 3)-1; if (curlen+leninc < max_output_len) { /* enough space for this decomposition */ if (leninc > 1) { /* we have to shift the array along */ for (i=curlen-1; i>=curpos; --i) { input[i+leninc] = input[i]; } input[curlen+leninc] = 0; curlen += leninc; } /* decompose the character */ for (i=0; i<=leninc; ++i) { input[curpos+i] = decompose_info[tablepos].str[i]; } /* note: curpos is not incremented because the decomposed */ /* characters might need decomposing */ } else { /* no space left in string */ return NULL; } } else { /* the character cannot be decomposed */ ++curpos; } } return input; } /* unicode_cat_data is a combination of the letter, digit, and * space information in a form that is quick to look up. * The information about each byte is stored in two bits * * 00 - neither letter, digit or space * 01 - letter * 10 - space * 11 - digit * * You can test for letter | space by looking at the right * column */ /*mg_u_long *unicode_cat_data;*/ void create_unicat_data () { int i=0; int min_start=0; int min_end=0; register mg_u_long min_value=0; /* filling the whole byte */ const unirange *letter_here = letter_info; const unirange *letter_end = letter_info+NUM_LETTER_INFO; const unirange *digit_here = digit_info; const unirange *digit_end = digit_info+NUM_DIGIT_INFO; const unirange *space_here = space_info; const unirange *space_end = space_info+NUM_SPACE_INFO; if (unicode_cat_data != NULL) return; // 64-BIT FIX: The old malloc() parameter calculation assumed that an unsigned long was always 4 bytes, but this // isn't true on 64-bit machines. Although the space required for this structure is actually the same on 64-bit // machines (2 bits are needed for each of 65536 values), the rest of the code assumes the machine is 32-bit // and there are 16 values per array entry. Rather than trying to change the rest of the code to work on both // 32-bit and 64-bit machines, I've just changed this calculation so the block allocated is twice the size on // 64-bit machines. This is a bit wasteful because half the space isn't used, but it's only 16KB so I don't // think it's worth worrying about. [Michael Dewsnip, DL Consulting Ltd.] unicode_cat_data = (mg_u_long *) malloc((0x10000 / 16) * sizeof(mg_u_long)); if (unicode_cat_data == NULL) return; while (i <= 0xffff) { /* decide what to fill with next */ min_start = i; min_end = 0xffff; min_value = 0; /* 00 */ while (letter_here < letter_end && letter_here->last < i) ++letter_here; if (letter_here < letter_end && letter_here->last <= min_end) { min_start = letter_here->first; min_end = letter_here->last; min_value = 0x55555555; /* 01 */ } while (digit_here < digit_end && digit_here->last < i) ++digit_here; if (digit_here < digit_end && digit_here->last <= min_end) { min_start = digit_here->first; min_end = digit_here->last; min_value = 0xffffffff; /* 11 */ } while (space_here < space_end && space_here->last < i) ++space_here; if (space_here < space_end && space_here->last <= min_end) { min_start = space_here->first; min_end = space_here->last; min_value = 0xaaaaaaaa; /* 10 */ } if (min_start < i) min_start = i; else if (min_start > i) { min_end = min_start-1; min_start = i; min_value = 0; /* 00 */ } /* fill the entries from min_start to min_end with min_value */ while (i <= min_end) { /* special version for common case */ if (i % 16 == 0) { unicode_cat_data[i/16] = min_value; /* doesn't matter if too long */ i += 16; if (i > min_end) { i = min_end+1; break; } } else { register mg_u_long mask = 3 << ((i % 16) * 2); unicode_cat_data[i/16] = (unicode_cat_data[i/16] & (~mask)) | (min_value & mask); ++i; } } } } /* does a binary search on a range table */ static int in_unirange (const unirange *info, int num_info, unsigned short value) { int first = 0; int last = num_info; int here; while (first < last) { here = (last-first)/2 + first; if (value < info[here].first) { last = here; } else if (value > info[here].last) { first = here+1; } else { return 1; } } return 0; } /* tests to see whether 'value' is a valid Unicode letter */ int is_unicode_letter (unsigned short value) { if (unicode_cat_data == NULL) create_unicat_data (); if (unicode_cat_data == NULL) { /* use old method */ return in_unirange(letter_info, NUM_LETTER_INFO, value); } return (((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x3) == 0x1); } /* tests to see whether 'value' is a valid Unicode digit */ int is_unicode_digit (unsigned short value) { if (unicode_cat_data == NULL) create_unicat_data (); if (unicode_cat_data == NULL) { /* use old method */ return in_unirange(digit_info, NUM_DIGIT_INFO, value); } return (((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x3) == 0x3); } /* tests to see whether 'value' is a valid Unicode letter or * digit */ int is_unicode_letdig (unsigned short value) { if (unicode_cat_data == NULL) create_unicat_data (); if (unicode_cat_data == NULL) { /* use old method */ return (in_unirange(letter_info, NUM_LETTER_INFO, value) || in_unirange(digit_info, NUM_DIGIT_INFO, value)); } return ((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x1); } /* tests to see whether 'value' is a valid space * The test includes both "C" spaces and "Unicode" spaces, i.e. * form-feed, newline, carriage return, horizontal tab, * vertical tab, and the Zs, Zl, and Zp Unicode categorizations */ int is_unicode_space (unsigned short value) { if (value < 0x80) return isspace (value); if (unicode_cat_data == NULL) create_unicat_data (); if (unicode_cat_data == NULL) { /* use old method */ return in_unirange(space_info, NUM_SPACE_INFO, value); } return (((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x3) == 0x2); } /* returns the length of the unicode string */ int unicode_strlen (const unsigned short *str) { int len = 0; /* keep going till you find the null-terminator */ while (*str != 0) { ++len; ++str; } return len; } /* returns the length of the unicode string, up to a maximum */ int unicode_strnlen (const unsigned short *str, int max_length) { int len = 0; /* keep going till you find the null-terminator */ while (*str != 0 && len < max_length ) { ++len; ++str; } return len; } /* Does a binary search on a relate table, returns -1 if it is not * found. */ static int search_unirelate (const unirelate *info, int num_info, unsigned short value) { int first = 0; int last = num_info; int here; while (first < last) { here = (last-first)/2 + first; if (value < info[here].ch1) { last = here; } else if (value > info[here].ch1) { first = here+1; } else { return here; } } return -1; } /* returns the upper-case equivalent of value */ unsigned short unicode_toupper (unsigned short value) { int related = search_unirelate (toupper_info, NUM_TOUPPER_INFO, value); if (related >= 0) { value = toupper_info[related].ch2; } return value; } /* returns the lower-case equivalent of value */ unsigned short unicode_tolower (unsigned short value) { int related = search_unirelate (tolower_info, NUM_TOLOWER_INFO, value); if (related >= 0) { value = tolower_info[related].ch2; } return value; } /* returns the simplified Chinese character equivalent of * another Chinese character */ unsigned short unicode_tosimplified (unsigned short value) { int related = search_unirelate (tosimplified_info, NUM_TOSIMPLIFIED_INFO, value); if (related >= 0) { value = tosimplified_info[related].ch2; } return value; } /* converts a utf-8 word (string with length stored in the first byte * to a Unicode array. To handle all situations the output buffer should * be 256 unsigned shorts long. The output will also have the length as * the first entry. */ unsigned short *utf8_word_to_unicode (const unsigned char *input, unsigned short *output, int max_output_length) { int inlen = *input; const unsigned char *inhere = input+1; const unsigned char *inend = &inhere[inlen-1]; unsigned short c; int clen; int outlen = 0; unsigned short *outhere = output+1; while (inhere <= inend && inlen < max_output_length-1) { /* decode the character */ clen = parse_utf8_char (inhere, inend, &c); inhere += clen; if (clen > 0) { /* store the character */ *outhere = c; ++outhere; ++outlen; } } output[0] = outlen; return output; } /* converts a unicode word buffer (with the length stored in the * entry) to a utf8 encoded word output (with the length stored in * the first byte. Only 255 bytes (not characters) can be stored * in the output. */ unsigned char *unicode_to_utf8_word (const unsigned short *input, unsigned char *output, int max_output_length) { int inlen = *input; const unsigned short *word = input + 1; int in_i = 0; int clen; int outlen = 0; unsigned char *outhere = output+1; unsigned char *outend = output+max_output_length; while (in_i < inlen) { if ((clen=output_utf8_char(word[in_i], outhere, outend)) == 0) { /* ran out of space to encode the character */ break; } outhere += clen; outlen += clen; ++in_i; } output[0] = outlen; return output; }